UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 7.05 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as e}from"../../chunks/tslib.es6.js";import"../../core/has.js";import{JSONMap as r}from"../../core/jsonMap.js";import t from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{toPt as i}from"../../core/screenUtils.js";import{property as l}from"../../core/accessorSupport/decorators/property.js";import"../../core/Logger.js";import{reader as s}from"../../core/accessorSupport/decorators/reader.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";import p from"./LabelExpressionInfo.js";import{templateStringToSql as c,getSingleFieldArcadeExpression as b,getLabelExpression as m,getLabelExpressionArcade as u,getLabelExpressionSingleField as f}from"./labelUtils.js";import{isSceneServiceLayer as v}from"./layerUtils.js";import{defaultTextSymbol2D as w}from"../../symbols/support/defaults.js";import{writeLabelSymbol as y}from"../../symbols/support/jsonUtils.js";import{symbolTypesLabel3D as d,symbolTypesLabel as h}from"../../symbols/support/typeUtils.js";var S;const L=new r({esriServerPointLabelPlacementAboveCenter:"above-center",esriServerPointLabelPlacementAboveLeft:"above-left",esriServerPointLabelPlacementAboveRight:"above-right",esriServerPointLabelPlacementBelowCenter:"below-center",esriServerPointLabelPlacementBelowLeft:"below-left",esriServerPointLabelPlacementBelowRight:"below-right",esriServerPointLabelPlacementCenterCenter:"center-center",esriServerPointLabelPlacementCenterLeft:"center-left",esriServerPointLabelPlacementCenterRight:"center-right",esriServerLinePlacementAboveAfter:"above-after",esriServerLinePlacementAboveAlong:"above-along",esriServerLinePlacementAboveBefore:"above-before",esriServerLinePlacementAboveStart:"above-start",esriServerLinePlacementAboveEnd:"above-end",esriServerLinePlacementBelowAfter:"below-after",esriServerLinePlacementBelowAlong:"below-along",esriServerLinePlacementBelowBefore:"below-before",esriServerLinePlacementBelowStart:"below-start",esriServerLinePlacementBelowEnd:"below-end",esriServerLinePlacementCenterAfter:"center-after",esriServerLinePlacementCenterAlong:"center-along",esriServerLinePlacementCenterBefore:"center-before",esriServerLinePlacementCenterStart:"center-start",esriServerLinePlacementCenterEnd:"center-end",esriServerPolygonPlacementAlwaysHorizontal:"always-horizontal"},{ignoreUnknown:!0});function P(e,r,t){return{enabled:!v(t?.layer)}}function x(e){return!e||"service"!==e.origin&&!("map-image"===e.layer?.type)}function g(e){return"map-image"===e?.type}function E(e){return!!g(e)&&!!e.capabilities?.exportMap?.supportsArcadeExpressionForLabeling}function j(e){return x(e)||E(e?.layer)}let A=class extends t{static{S=this}static evaluateWhere(e,r){const t=(e,r,t)=>{switch(r){case"=":return e==t;case"<>":return e!=t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t}return!1};try{if(null==e)return!0;const o=e.split(" ");if(3===o.length)return t(r[o[0]],o[1],o[2]);if(7===o.length){const e=t(r[o[0]],o[1],o[2]),i=o[3],l=t(r[o[4]],o[5],o[6]);switch(i){case"AND":return e&&l;case"OR":return e||l}}return!1}catch(o){}}constructor(e){super(e),this.type="label",this.name=null,this.allowOverrun=!1,this.deconflictionStrategy="static",this.labelExpression=null,this.labelExpressionInfo=null,this.labelPlacement=null,this.labelPosition="curved",this.maxScale=0,this.minScale=0,this.repeatLabel=!0,this.repeatLabelDistance=null,this.symbol=w,this.useCodedValues=void 0,this.where=null}readLabelExpression(e,r){const t=r.labelExpressionInfo;if(!t||!t.value&&!t.expression)return e}writeLabelExpression(e,r,t){if(this.labelExpressionInfo)if(null!=this.labelExpressionInfo.value)e=c(this.labelExpressionInfo.value);else if(null!=this.labelExpressionInfo.expression){const r=b(this.labelExpressionInfo.expression);r&&(e="["+r+"]")}null!=e&&(r[t]=e)}writeLabelExpressionInfo(e,r,t,o){if(null==e&&null!=this.labelExpression&&x(o))e=new p({expression:this.getLabelExpressionArcade()});else if(!e)return;const i=e.toJSON(o);i.expression&&(r[t]=i)}writeMaxScale(e,r){(e||this.minScale)&&(r.maxScale=e)}writeMinScale(e,r){(e||this.maxScale)&&(r.minScale=e)}getLabelExpression(){return m(this)}getLabelExpressionArcade(){return u(this)}getLabelExpressionSingleField(){return f(this)}hash(){return JSON.stringify(this)}clone(){return new S({allowOverrun:this.allowOverrun,deconflictionStrategy:this.deconflictionStrategy,labelExpression:this.labelExpression,labelExpressionInfo:o(this.labelExpressionInfo),labelPosition:this.labelPosition,labelPlacement:this.labelPlacement,maxScale:this.maxScale,minScale:this.minScale,name:this.name,repeatLabel:this.repeatLabel,repeatLabelDistance:this.repeatLabelDistance,symbol:o(this.symbol),where:this.where,useCodedValues:this.useCodedValues})}};e([l({type:String,json:{write:!0}})],A.prototype,"name",void 0),e([l({type:Boolean,json:{write:!0,default:!1,origins:{"web-scene":{write:!1},"portal-item":{default:!1,write:{overridePolicy:P}}}}})],A.prototype,"allowOverrun",void 0),e([l({type:String,json:{write:!0,default:"static",origins:{"web-scene":{write:!1},"portal-item":{default:"static",write:{overridePolicy:P}}}}})],A.prototype,"deconflictionStrategy",void 0),e([l({type:String,json:{write:{overridePolicy(e,r,t){return this.labelExpressionInfo&&"service"===t?.origin&&E(t.layer)?{enabled:!1}:{allowNull:!0}}}}})],A.prototype,"labelExpression",void 0),e([s("labelExpression")],A.prototype,"readLabelExpression",null),e([a("labelExpression")],A.prototype,"writeLabelExpression",null),e([l({type:p,json:{write:{overridePolicy:(e,r,t)=>j(t)?{allowNull:!0}:{enabled:!1}}}})],A.prototype,"labelExpressionInfo",void 0),e([a("labelExpressionInfo")],A.prototype,"writeLabelExpressionInfo",null),e([l({type:L.apiValues,json:{type:L.jsonValues,read:L.read,write:L.write}})],A.prototype,"labelPlacement",void 0),e([l({type:["curved","parallel"],json:{write:!0,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],A.prototype,"labelPosition",void 0),e([l({type:Number})],A.prototype,"maxScale",void 0),e([a("maxScale")],A.prototype,"writeMaxScale",null),e([l({type:Number})],A.prototype,"minScale",void 0),e([a("minScale")],A.prototype,"writeMinScale",null),e([l({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:P}}}}})],A.prototype,"repeatLabel",void 0),e([l({type:Number,cast:i,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:P}}}}})],A.prototype,"repeatLabelDistance",void 0),e([l({types:h,json:{origins:{"web-scene":{types:d,write:y,default:null}},write:y,default:null}})],A.prototype,"symbol",void 0),e([l({type:Boolean,json:{write:!0}})],A.prototype,"useCodedValues",void 0),e([l({type:String,json:{write:!0}})],A.prototype,"where",void 0),A=S=e([n("esri.layers.support.LabelClass")],A);export{A as default};