/* COPYRIGHT Esri - https://js.arcgis.com/5.1.0/LICENSE.txt */
import{__decorate as e}from"tslib";import{JSONMap as t}from"../../core/jsonMap.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import{Integer as n}from"../../core/accessorSupport/ensureType.js";import{fromJSON as l,types as a}from"./domains.js";import{kebabDict as s}from"./fieldType.js";import{reader as p}from"../../core/accessorSupport/decorators/reader.js";import{enumeration as d}from"../../core/accessorSupport/decorators/enumeration.js";var u;const c=new t({binary:"binary",coordinate:"coordinate",countOrAmount:"count-or-amount",currency:"currency",dateAndTime:"date-and-time",description:"description",emailAddress:"email-address",locationOrPlaceName:"location-or-place-name",measurement:"measurement",nameOrTitle:"name-or-title",none:"none",orderedOrRanked:"ordered-or-ranked",percentageOrRatio:"percentage-or-ratio",phoneNumber:"phone-number",typeOrCategory:"type-or-category",uniqueIdentifier:"unique-identifier",url:"url"});let m=class extends o{static{u=this}constructor(e){super(e),this.alias=null,this.defaultValue=void 0,this.description=null,this.domain=null,this.editable=!0,this.length=void 0,this.name=null,this.nullable=!0,this.type=null,this.valueType=null,this.visible=!0}readDescription(e,{description:t}){let o=null;try{o=t?JSON.parse(t):null}catch(r){}return o?.value??null}readValueType(e,{description:t}){let o=null;try{o=t?JSON.parse(t):null}catch(r){}return o?c.fromJSON(o.fieldValueType):null}clone(){return new u({alias:this.alias,defaultValue:this.defaultValue,description:this.description,domain:this.domain?.clone()??null,editable:this.editable,length:this.length,name:this.name,nullable:this.nullable,type:this.type,valueType:this.valueType,visible:this.visible})}};e([r({type:String,json:{write:!0}})],m.prototype,"alias",void 0),e([r({type:[String,Number],json:{write:{allowNull:!0}}})],m.prototype,"defaultValue",void 0),e([r()],m.prototype,"description",void 0),e([p("description")],m.prototype,"readDescription",null),e([r({types:a,json:{read:{reader:l},write:!0}})],m.prototype,"domain",void 0),e([r({type:Boolean,json:{write:!0}})],m.prototype,"editable",void 0),e([r({type:n,json:{write:{overridePolicy:e=>({enabled:Number.isFinite(e)})}}})],m.prototype,"length",void 0),e([r({type:String,json:{write:!0}})],m.prototype,"name",void 0),e([r({type:Boolean,json:{write:!0}})],m.prototype,"nullable",void 0),e([d(s)],m.prototype,"type",void 0),e([r()],m.prototype,"valueType",void 0),e([p("valueType",["description"])],m.prototype,"readValueType",null),e([r({type:Boolean,json:{read:!1}})],m.prototype,"visible",void 0),m=u=e([i("esri.layers.support.Field")],m);export{m as default};
