@arcgis/core 5.2.0-next.103 → 5.2.0-next.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/arcgisGlobal.d.ts +2 -0
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/{ec5542d6ecc0622f7705.js → 1ec01fd6330d011c76d6.js} +1 -1
  4. package/assets/esri/core/workers/chunks/{c91905b5808b8049f96d.js → 2168ee64fd32f160dcf1.js} +3 -3
  5. package/assets/esri/core/workers/chunks/{ffca0b2333e760b66d3a.js → 262052dfaec3af8a58b9.js} +1 -1
  6. package/assets/esri/core/workers/chunks/33e583166ab3943ecf0e.js +1 -0
  7. package/assets/esri/core/workers/chunks/{2350f1eb70819cc06bb6.js → 4c00a46bf0345f99a9bb.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{240bee7d0dc5e5dab826.js → 91e545745706111f5f62.js} +1 -1
  9. package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +1 -0
  10. package/assets/esri/core/workers/chunks/d0eb609a214d85d21ed5.js +1 -0
  11. package/assets/esri/core/workers/chunks/{a4dc1a80ed6604d71722.js → dc1b38f490142f7273ef.js} +1 -1
  12. package/chunks/GlobalIllumination.glsl.js +4 -4
  13. package/config.js +1 -1
  14. package/kernel.js +1 -1
  15. package/package.json +6 -6
  16. package/support/revision.js +1 -1
  17. package/symbols/TextSymbol3DLayer.js +1 -1
  18. package/symbols/cim/TextRasterizer.js +1 -1
  19. package/symbols/cim/richTextUtils.js +1 -1
  20. package/symbols/support/Symbol3DTextBorder.js +2 -0
  21. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  22. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  23. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  24. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  25. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
  26. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  27. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  28. package/views/3d/support/QualityProfile.js +1 -1
  29. package/views/3d/terrain/TerrainData.js +1 -1
  30. package/views/3d/terrain/TileRenderer.js +1 -1
  31. package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
  32. package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
  33. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  34. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  35. package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
  36. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  37. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  38. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  39. package/widgets/Editor/EditorViewModel.d.ts +3 -2
  40. package/widgets/Editor/types.d.ts +19 -1
  41. package/widgets/Editor.d.ts +3 -2
  42. package/widgets/support/SelectionToolbar/VisibleElements.d.ts +60 -0
  43. package/widgets/support/SelectionToolbar.d.ts +202 -0
  44. package/assets/esri/core/workers/chunks/a191ddb3b59ec1a7d818.js +0 -1
  45. package/assets/esri/core/workers/chunks/ad695de9f73b268af139.js +0 -1
  46. package/assets/esri/core/workers/chunks/b4e5027c121d848c3d5a.js +0 -1
@@ -0,0 +1,202 @@
1
+ import type SelectionManager from "../../views/SelectionManager.js";
2
+ import type SelectionOperation from "../../views/selection/SelectionOperation.js";
3
+ import type Widget from "../Widget.js";
4
+ import type VisibleElements from "./SelectionToolbar/VisibleElements.js";
5
+ import type { SelectableViewUnion, SelectionOperationType, SelectionSource } from "../../views/selection/types.js";
6
+ import type { WidgetProperties } from "../Widget.js";
7
+ import type { SelectionToolConfig, SelectionToolOptions, SelectionToolbarState } from "./SelectionToolbar/types.js";
8
+ import type { VisibleElementsProperties } from "./SelectionToolbar/VisibleElements.js";
9
+
10
+ /**
11
+ * Properties for customizing the SelectionToolbar widget.
12
+ *
13
+ * @internal
14
+ */
15
+ export interface SelectionToolbarProperties extends WidgetProperties, Partial<Pick<SelectionToolbar, "availableOperationTypes" | "continuousSelectionEnabled" | "defaultLassoToolOptions" | "defaultOperationType" | "defaultPointToolOptions" | "defaultRectangleToolOptions" | "disabled" | "layers" | "layerViewPreferenceEnabled" | "layout" | "persistSelection" | "returnFeatureTitleFields" | "returnGeometry" | "selectionManager" | "selectOnComplete" | "sources" | "toolConfigs" | "view">> {
16
+ /**
17
+ * The SelectionToolbar widget's default label.
18
+ *
19
+ * @internal
20
+ * @since 4.11
21
+ */
22
+ label?: string | null;
23
+ /**
24
+ * The visible elements that are displayed within the widget.
25
+ * This property provides the ability to turn individual elements of the widget's display on/off.
26
+ *
27
+ * @internal
28
+ */
29
+ visibleElements?: VisibleElementsProperties;
30
+ }
31
+
32
+ /**
33
+ * A toolbar widget for performing selection operations on a view.
34
+ *
35
+ * @internal
36
+ */
37
+ export default class SelectionToolbar extends Widget<SelectionToolbarProperties> {
38
+ /** @internal */
39
+ constructor(properties?: SelectionToolbarProperties, parentNode?: string | Element);
40
+ /**
41
+ * Reference to the active operation.
42
+ *
43
+ * @internal
44
+ */
45
+ get activeOperation(): SelectionOperation | null | undefined;
46
+ /**
47
+ * An array of operation type names that determines what operation types appear in the associated dropdown component.
48
+ *
49
+ * @internal
50
+ */
51
+ accessor availableOperationTypes: SelectionOperationType[];
52
+ /**
53
+ * Determines if the selection tool should automatically reactivate a new selection operation
54
+ * after the completion of an active selection operation, using options from the previous operation.
55
+ * This only applies if the previous selection operation was completed, and not cancelled.
56
+ *
57
+ * @internal
58
+ */
59
+ accessor continuousSelectionEnabled: boolean;
60
+ /**
61
+ * Default configuration for the lasso tool.
62
+ *
63
+ * @internal
64
+ */
65
+ accessor defaultLassoToolOptions: SelectionToolOptions;
66
+ /**
67
+ * The type of operation used by default by new selection operations.
68
+ *
69
+ * @internal
70
+ */
71
+ accessor defaultOperationType: SelectionOperationType;
72
+ /**
73
+ * Default configuration for the point tool.
74
+ *
75
+ * @internal
76
+ */
77
+ accessor defaultPointToolOptions: SelectionToolOptions;
78
+ /**
79
+ * Default configuration for the rectangle tool.
80
+ *
81
+ * @internal
82
+ */
83
+ accessor defaultRectangleToolOptions: SelectionToolOptions;
84
+ /**
85
+ * Disables the widget UI. Setting this property to true while an
86
+ * operation is active does not cancel the operation.
87
+ *
88
+ * @default false
89
+ * @internal
90
+ */
91
+ accessor disabled: boolean;
92
+ /**
93
+ * Reference to the selection manager being used, if any.
94
+ *
95
+ * @internal
96
+ */
97
+ get effectiveSelectionManager(): SelectionManager | null | undefined;
98
+ /**
99
+ * Reference to validated sources. Includes associated layer views if `layerViewPreferenceEnabled` is true.
100
+ *
101
+ * @internal
102
+ */
103
+ get effectiveSources(): SelectionSource[];
104
+ /**
105
+ * The SelectionToolbar widget's default label.
106
+ *
107
+ * @internal
108
+ * @since 4.11
109
+ */
110
+ get label(): string;
111
+ set label(value: string | null | undefined);
112
+ /**
113
+ * An array of [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/), containing selection candidates.
114
+ *
115
+ * @internal
116
+ */
117
+ accessor layers: SelectionSource[] | null | undefined;
118
+ /**
119
+ * Indicates if selection operations should prefer layer view queries for determining
120
+ * selection results. When this is false, the selection operation will query layer targets
121
+ * directly.
122
+ *
123
+ * @internal
124
+ */
125
+ accessor layerViewPreferenceEnabled: boolean;
126
+ /**
127
+ * Controls the orientation of the rendered
128
+ * calcite action group.
129
+ *
130
+ * @default "horizontal"
131
+ * @internal
132
+ */
133
+ accessor layout: "horizontal" | "vertical";
134
+ /**
135
+ * Determines if new selection results should be persisted by
136
+ * the associated SelectionManager.
137
+ *
138
+ * @internal
139
+ */
140
+ accessor persistSelection: boolean;
141
+ /**
142
+ * Determines if selected features should be returned with fields
143
+ * necessary for displaying feature titles as defined by the WebMap.
144
+ *
145
+ * @internal
146
+ */
147
+ accessor returnFeatureTitleFields: boolean;
148
+ /**
149
+ * Determines if selected features should be returned with geometries.
150
+ * Set this value to false to improve selection response time.
151
+ *
152
+ * @internal
153
+ */
154
+ accessor returnGeometry: boolean;
155
+ /**
156
+ * Reference to a unique selection manager to use instead of the view's default selection manager.
157
+ *
158
+ * @internal
159
+ */
160
+ accessor selectionManager: SelectionManager | null | undefined;
161
+ /**
162
+ * Determines if the tool should actively determine the potential selection while
163
+ * the associated draw tool is active, or only a single time when drawing is complete.
164
+ *
165
+ * @internal
166
+ */
167
+ accessor selectOnComplete: boolean;
168
+ /**
169
+ * An array of layer or layer views that selection is derived from.
170
+ *
171
+ * @internal
172
+ */
173
+ accessor sources: SelectionSource[] | null | undefined;
174
+ /**
175
+ * State of the toolbar widget.
176
+ *
177
+ * @internal
178
+ */
179
+ get state(): SelectionToolbarState;
180
+ /**
181
+ * An array of configurations for custom selection tools to display in the widget UI.
182
+ *
183
+ * @internal
184
+ */
185
+ accessor toolConfigs: SelectionToolConfig[];
186
+ /**
187
+ * The view from which the widget will operate.
188
+ *
189
+ * @internal
190
+ */
191
+ accessor view: SelectableViewUnion | null | undefined;
192
+ /**
193
+ * The visible elements that are displayed within the widget.
194
+ * This property provides the ability to turn individual elements of the widget's display on/off.
195
+ *
196
+ * @internal
197
+ */
198
+ get visibleElements(): VisibleElements;
199
+ set visibleElements(value: VisibleElementsProperties);
200
+ /** @internal */
201
+ get visibleToolCount(): number;
202
+ }
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6678],{6371(t,e,r){r.d(e,{y:()=>n});const i=new(r(32488).A);function n(t,e=!0){if(!i.hasBidiChar(t))return[t,!1,{...i}];let r;r="rtl"===i.checkContextual(t)?"IDNNN":"ICNNN";const n=e?"VLYSN":"VLYNN";return[i.bidiTransform(t,r,n),!0,{...i}]}},40804(t,e,r){function i(t,e=0){let r=0;for(let i=0;i<4;i++)r+=t[e+i]*n[i];return r}r(34727);const n=[1/256,1/65536,1/16777216,1/4294967296];i(new Uint8ClampedArray([255,255,255,255])),i(new Uint8ClampedArray([255,255,255,0]))},18370(t,e,r){r.d(e,{z:()=>n});class i{constructor(t){this._import=t,this.module=null,this._promise=null}getImportPromise(){return null==this._promise&&(this._promise=this._import().then(async t=>(this.module=t,t))),this._promise}}function n(t){return new i(t)}},56512(t,e,r){function i(t){let e,r,i=[],n=!1;return function(...s){return n&&e===this&&function(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}(s,i)||(r=t.apply(this,s),e=this,i=s,n=!0),r}}r.d(e,{B:()=>i})},31411(t,e,r){r.d(e,{GS:()=>w,gh:()=>I});var i=r(49186),n=r(56512),s=r(65864),o=r(4305),a=r(50954),l=r(52006),c=r(49663),h=r(46068),u=r(15507);const f=1e-6,m=[0,0];function d(t){return{maxSegmentLength:t.maxSegmentLength??0,maxDeviation:t.maxDeviation??0,maxSegmentsPerCurve:t.maxSegmentsPerCurve??12e3,minSegmentsPerCurve:Math.max(t.minSegmentsPerCurve??1,1)}}class p{constructor(t,e){this.curveStart=t,this.curveEnd=e,this.tStart=0,this.tEnd=0,this.tEndStack=[],this.arcEndStack=[]}get stackSize(){return this.tEndStack.length}initialize(t,e){this.tStart=0,this.arcStart=t,this.tEndStack.push(1),this.arcEndStack.push(e)}splitAt(t){this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this.tEndStack.push(t),this.arcEndStack.push(this.interpolate(t))}splitInHalf(){return this.splitAt((this.tStart+this.tEnd)/2)}pop(){this.tEnd=this.tEndStack.pop(),this.arcEnd=this.arcEndStack.pop()}next(){this.tStart=this.tEnd,this.arcStart=this.arcEnd}densify(t,{maxDeviation:e,maxSegmentLength:r,maxSegmentsPerCurve:i,minSegmentsPerCurve:n}){const s=r*r,o=e*e,a=1/i,l=this.interpolate(0),c=this.interpolate(1);(0,u.kb)(this.curveStart,l)>f&&t.push(l),this.initialize(l,c);const h=1/n;for(let t=n-1;t>0;t--){const e=t*h;this.pop(),this.splitAt(e)}for(;this.stackSize>0;)this.pop(),this.tStart===this.tEnd||this.tEnd-this.tStart<a||(0===s||!isFinite(s)||(0,u.kb)(this.arcStart,this.arcEnd)<s)&&(0===o||!isFinite(o)||this.getDeviation2()<o)?(t.push(this.arcEnd),this.next()):this.splitInHalf();return(0,u.kb)(this.curveEnd,c)>f&&t.push([...this.curveEnd]),t}}class y extends p{constructor(t,e){const[r,i,n]=e.b;super(t,r),this._controlPointsStack=[],this._curveControlPoints=[i,n],this._arcControlPoints=[i,n],this._controlPointsStack.push(this._arcControlPoints)}splitAt(t){const{arcStart:e,arcEnd:r,tStart:i,tEnd:n}=this,[s,o]=this._arcControlPoints,a=(t-i)/(n-i),l=(0,u.RS)([],e,s,a),c=(0,u.RS)(m,s,o,a),h=(0,u.RS)([],o,r,a),f=(0,u.RS)([],l,c,a),d=(0,u.RS)([],c,h,a),p=(0,u.RS)([],f,d,a);this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this._controlPointsStack.push([d,h]),this.tEndStack.push(t),this.arcEndStack.push(p),this._arcControlPoints[0]=l,this._arcControlPoints[1]=f,this._controlPointsStack.push(this._arcControlPoints)}pop(){super.pop(),this._arcControlPoints=this._controlPointsStack.pop()}interpolate(t){const{curveStart:e,curveEnd:r}=this,[i,n]=this._curveControlPoints;return(0,o.B4)(e,i,n,r,t)}getDeviation2(){const{arcStart:t,arcEnd:e}=this,[r,i]=this._arcControlPoints;return Math.max((0,u.yE)(r,t,e),(0,u.yE)(i,t,e))}}class g extends p{constructor(t,e){const[r]=e.a;super(t,r),this._derivedEllipse=(0,h.SW)(t,e)}pop(){super.pop(),this._tMid=(this.tStart+this.tEnd)/2,this._arcMid=this.interpolate(this._tMid)}splitInHalf(){this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this.tEndStack.push(this._tMid),this.arcEndStack.push(this._arcMid)}interpolate(t){return(0,h.Uk)(this._derivedEllipse,t)}getDeviation2(){return(0,u.yE)(this._arcMid,this.arcStart,this.arcEnd)}}function S(t,e,r,{cx:i,cy:n,radius:s,thetaStart:o,thetaEnd:a,isInvalid:l},{maxDeviation:c,maxSegmentLength:h,maxSegmentsPerCurve:m,minSegmentsPerCurve:d}){if(l)return t.push([...r]),t;const p=2*s,y=[i+s*Math.cos(o),n+s*Math.sin(o)],g=[i+s*Math.cos(a),n+s*Math.sin(a)];(0,u.kb)(e,y)>f&&t.push(y);const S=Math.abs(a-o),M=h>0&&h<p?2*Math.asin(h/p):S,C=c>0&&c<=s?2*Math.acos(1-c/s):S,b=Math.min(M,C),x=Math.min(m,Math.max(d,Math.ceil(Math.abs(S/b)))),_=1/x;for(let e=1;e<x;e++){const r=e*_,l=o*(1-r)+a*r;t.push([i+s*Math.cos(l),n+s*Math.sin(l)])}return t.push(g),(0,u.kb)(r,g)>f&&t.push([...r]),t}function M(t,e,r,i){return new y(e,r).densify(t,i)}function C(t,e,r,i){const n=(0,a.pM)(e,r),[s]=r.c;return S(t,e,s,n,i)}function b(t,e,r,i){const n=(0,c.io)(e,r),[s]=r.a;return S(t,e,s,n,i)}function x(t,e,r,i){const[n,s,o,a,l,c,h]=r.a;return 0===c||0===h?(t.push([...n]),t):new g(e,r).densify(t,i)}function _(t,e,r,i){return(0,l.Xq)(r)?(t.push([...r]),t):(0,l.n1)(r)?M(t,e,r,i):(0,l.aO)(r)?C(t,e,r,i):(0,l.DA)(r)?b(t,e,r,i):x(t,e,r,i)}function w(t,e={}){if(!(0,l.Ed)(t))return t;const r=d(e),i=(0,l.FD)(t),n=[];for(const t of i){const e=[];for(let i=0;i<t.length-1;i++){const n=i+1,s=[...(0,l.yP)(t[i])];0===i&&e.push(s),_(e,s,t[n],r)}n.push(e)}return"curvePaths"in t?{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},paths:n,spatialReference:t.spatialReference}:{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},rings:n,spatialReference:t.spatialReference}}const k=(0,n.B)(t=>({maxDeviation:0,maxSegmentLength:100*t,maxSegmentsPerCurve:12e3,minSegmentsPerCurve:1}));async function I(t,e,n){const o=new Set(e);return await async function(t,e,n){let s=null;for(const o of t)if(o&&(0,l.Ed)(o)&&null==o.spatialReference.xyTolerance&&(0,l.V8)(o,e)){const t=o.spatialReference;if(!t)throw new i.A("geometry:missing-spatial-reference","Geometry contains an unsupported curve type, but it cannot be densified because it has no spatial reference.");const e=P(t);if(n.has(e))o.spatialReference=n.get(e);else{s||(s=await Promise.all([r.e(9187),r.e(8885),r.e(9117),r.e(3299),r.e(1550)]).then(()=>r(78125)));const a=s.fromSpatialReference(t),l=a?.getTolerance();if(null==l)throw new i.A("geometry:missing-tolerance","Geometry contains an unsupported curve type, but it cannot be densified because the tolerance of its spatial reference is unknown. Set the `xyTolerance` property of the spatial reference.");const c=o.spatialReference.clone();c.read({xyTolerance:l}),o.spatialReference=c,n.set(e,c)}}}(t,o,n),t.map(t=>{if(!t||!(0,l.Ed)(t))return t;const r=t.spatialReference.xyTolerance;if(null==r)return t;const i=k(r);return(0,s.rS)(function(t,e,r){if(!(0,l.Ed)(t))return t;const i=new Set(e),n=d(r),s=(0,l.FD)(t),o=[];let a=!1;for(const t of s){const e=[];for(let r=0;r<t.length-1;r++){const s=r+1,o=[...(0,l.yP)(t[r])];0===r&&e.push(o);const c=t[s];(0,l.Xq)(c)?e.push([...c]):(0,l.n1)(c)&&!i.has("cubic-bezier")?M(e,o,c,n):(0,l.aO)(c)&&!i.has("circular-arc")?C(e,o,c,n):(0,l.DA)(c)&&!i.has("elliptic-arc")?b(e,o,c,n):(0,l.wY)(c)&&!i.has("elliptic-arc")?x(e,o,c,n):(e.push((0,l.tk)(c)),a=!0)}o.push(e)}return"curvePaths"in t?{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},spatialReference:t.spatialReference,...a?{curvePaths:o}:{paths:o}}:{hasZ:t.hasZ,hasM:t.hasM,spatialReference:t.spatialReference,...a?{curveRings:o}:{rings:o}}}(t,e,i))})}function P(t){if(null!=t.wkid)return`${t.wkid}`;if(null!=t.wkt)return t.wkt;const e="toJSON"in t&&"function"==typeof t.toJSON?t.toJSON():t;return JSON.stringify(e)}},72726(t,e,r){r.d(e,{Rj:()=>F,mx:()=>D,IT:()=>A,QF:()=>O});var i=r(57582),n=(r(44208),r(4718)),s=r(53966),o=r(34727),a=r(93687),l=r(90629),c=r(36745),h=r(19419),u=r(537),f=r(12359),m=(r(12176),r(60408)),d=r(35833);class p{applyColorSubstitution(t,e){if(!e)return t;this._rasterizationCanvas||(this._rasterizationCanvas=document.createElement("canvas"));const{width:r,height:i}=t,n=this._rasterizationCanvas,s=n.getContext("2d",{willReadFrequently:!0});t!==n&&(n.width=r,n.height=i,s.drawImage(t,0,0,r,i));const o=s.getImageData(0,0,r,i).data;if(e)for(const t of e)if(t&&t.oldColor&&4===t.oldColor.length&&t.newColor&&4===t.newColor.length){const[e,r,i,n]=t.oldColor,[s,a,l,c]=t.newColor;if(e===s&&r===a&&i===l&&n===c)continue;for(let t=0;t<o.length;t+=4)e===o[t]&&r===o[t+1]&&i===o[t+2]&&n===o[t+3]&&(o[t]=s,o[t+1]=a,o[t+2]=l,o[t+3]=c)}const a=new ImageData(o,r,i);return s.putImageData(a,0,0),n}tintImageData(t,e){if(!e||e.length<4)return t;this._rasterizationCanvas||(this._rasterizationCanvas=document.createElement("canvas"));const{width:r,height:i}=t,n=this._rasterizationCanvas,s=n.getContext("2d",{willReadFrequently:!0});t!==n&&(n.width=r,n.height=i,s.drawImage(t,0,0,r,i));const o=s.getImageData(0,0,r,i),a=new Uint8Array(o.data),l=[e[0]/255,e[1]/255,e[2]/255,e[3]/255];for(let t=0;t<a.length;t+=4)a[t]*=l[0],a[t+1]*=l[1],a[t+2]*=l[2],a[t+3]*=l[3];const c=new ImageData(new Uint8ClampedArray(a.buffer),r,i);return s.putImageData(c,0,0),n}}var y=r(26937),g=r(98939),S=r(28076);function M(t){const e=t.getFrame(0);if(e instanceof HTMLImageElement||e instanceof HTMLCanvasElement)return e;const r=document.createElement("canvas");r.width=t.width,r.height=t.height;const i=r.getContext("2d");return e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0),r}function C(t,e=0){if(0===e)return t;const r=Math.cos(e),i=Math.sin(e),[n,s]=t;return[n*r+s*-i,n*i+s*r]}var b=r(44589);class x{constructor(t=0,e=0,r=0,i=0){this.x=t,this.y=e,this.width=r,this.height=i}static fromExtent(t){return new x(t.xmin,-t.ymax,t.xmax-t.xmin,t.ymax-t.ymin)}get isEmpty(){return this.width<=0||this.height<=0}union(t){this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.width=Math.max(this.width,t.width),this.height=Math.max(this.height,t.height)}}var _=r(69754);function w(t){return`rgb(${t.slice(0,3).toString()})`}function k(t){return`rgba(${t.slice(0,3).toString()},${t[3]})`}r(5760);class I{constructor(t){t&&(this._textRasterizationCanvas=t)}rasterizeRichText(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const r=this._textRasterizationCanvas,i=r.getContext("2d",{willReadFrequently:!0}),n=this._layoutRichTextRuns(i,t,e);this._parameters=e,this._lineHeight=Math.max(...n.map(t=>t.height),this._measureLineHeight(e));const{decoration:s,weight:o}=e.font;this._lineThroughWidthOffset=s&&"line-through"===s?.1*this._lineHeight:0;const a=null!=e.backgroundColor||null!=e.borderLine,l=a?8:0,c=Math.max(...n.map(t=>t.width),0)+2*l,h=n.reduce((t,e)=>t+e.height,0)+2*l;if(r.width=c+2*this._lineThroughWidthOffset,r.height=h,0===r.width||0===r.height)return r.width=r.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:r};this._renderedWidth=c,this._renderedHeight=h,this._renderedOutlineSize=(e.outline.size||0)*e.pixelRatio,this._renderedHaloSize=(e.halo.size||0)*e.pixelRatio,this._lineThroughWidthOffset*=e.pixelRatio;const u=(e.outline&&e.outline.color)??[0,0,0,0],f=e.color??[0,0,0,0],m=e.halo&&e.halo.color?e.halo.color:[0,0,0,0];this._fillStyle=k(f),this._outlineStyle=k(u),this._haloStyle=w(m);const d=this._renderedOutlineSize,p=this._renderedHaloSize;i.save(),i.clearRect(0,0,r.width,r.height);const y=l*e.pixelRatio,g=v("left",this._renderedWidth-2*y,p+d)+y,S=p+d+y;let M=this._lineThroughWidthOffset,C=0;if(a){i.save();const t=e.backgroundColor??[0,0,0,0],n=e.borderLine?.color??[0,0,0,0],s=2*(e.borderLine?.size??0);i.fillStyle=k(t),i.strokeStyle=k(n),i.lineWidth=s,i.fillRect(0,0,r.width,r.height),i.strokeRect(0,0,r.width,r.height),i.restore()}C+=S,M+=g,p>0&&this._renderRichTextOutline(i,n,M,C,e,this._renderedHaloSize+this._renderedOutlineSize),d>0&&this._renderRichTextOutline(i,n,M,C,e,this._renderedOutlineSize);for(const t of n){let r=M;"center"===e.horizontalAlignment?r+=(this._renderedWidth-2*y-t.width)/2:"right"===e.horizontalAlignment&&(r+=this._renderedWidth-2*y-t.width-p-d);let n=r;for(const e of t.segments)P(i,e.parameters,"left",e.characterSpacing),p>0&&(i.globalCompositeOperation="destination-out",i.fillStyle="rgb(0, 0, 0)",this._renderRichTextSegment(i,e,n,C,"fill"),i.globalCompositeOperation="source-over"),i.fillStyle=k(e.parameters.color??f),this._renderRichTextSegment(i,e,n,C,"fill"),n+=e.width;if(s&&"none"!==s){const e=this._renderedWidth;this._renderedWidth=t.width,i.textAlign="left",this._renderDecoration(i,r,C,s,o),this._renderedWidth=e}C+=t.height}i.restore();const b=this._renderedWidth+2*this._lineThroughWidthOffset,x=this._renderedHeight,_=i.getImageData(0,0,b,x),I=new Uint8Array(_.data);if(e.premultiplyColors){let t;for(let e=0;e<I.length;e+=4)t=I[e+3]/255,I[e]=I[e]*t,I[e+1]=I[e+1]*t,I[e+2]=I[e+2]*t}let z,R;switch(e.horizontalAlignment){case"left":z=-.5;break;case"right":z=.5;break;default:z=0}switch(e.verticalAlignment){case"bottom":R=-.5;break;case"top":R=.5;break;case"baseline":R=-1/6;break;default:R=0}return{size:[b,x],image:new Uint32Array(I.buffer),sdf:!1,simplePattern:!1,anchorX:z,anchorY:R,canvas:r}}rasterizeText(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const r=this._textRasterizationCanvas,i=r.getContext("2d",{willReadFrequently:!0});P(i,e),this._parameters=e,this._textLines=t.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const{decoration:n,weight:s}=e.font;this._lineThroughWidthOffset=n&&"line-through"===n?.1*this._lineHeight:0;const o=null!=e.backgroundColor||null!=e.borderLine,a=o?8:0,l=this._computeTextWidth(i,e)+2*a,c=this._lineHeight*this._textLines.length+2*a;if(r.width=l+2*this._lineThroughWidthOffset,r.height=c,0===r.width||0===r.height)return r.width=r.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:r};this._renderedLineHeight=Math.round(this._lineHeight),this._renderedOutlineSize=(e.outline.size||0)*e.pixelRatio,this._renderedHaloSize=(e.halo.size||0)*e.pixelRatio,this._renderedWidth=l,this._renderedHeight=c,this._lineThroughWidthOffset*=e.pixelRatio;const h=(e.outline&&e.outline.color)??[0,0,0,0],u=e.color??[0,0,0,0],f=e.halo&&e.halo.color?e.halo.color:[0,0,0,0];this._fillStyle=k(u),this._outlineStyle=k(h),this._haloStyle=w(f);const m=this._renderedLineHeight,d=this._renderedOutlineSize,p=this._renderedHaloSize;i.save(),i.clearRect(0,0,r.width,r.height),P(i,e);const y=a*e.pixelRatio,g=v(i.textAlign,this._renderedWidth-2*y,this._renderedHaloSize+this._renderedOutlineSize)+y,S=p+d+y,M=p>0;let C=this._lineThroughWidthOffset,b=0;if(o){i.save();const t=e.backgroundColor??[0,0,0,0],n=e.borderLine?.color??[0,0,0,0],s=2*(e.borderLine?.size??0);i.fillStyle=k(t),i.strokeStyle=k(n),i.lineWidth=s,i.fillRect(0,0,r.width,r.height),i.strokeRect(0,0,r.width,r.height),i.restore()}M&&this._renderHalo(i,g,S,C,b,e),d>0&&this._renderOutline(i,g,S,C,b,e),b+=S,C+=g;for(const t of this._textLines)M?(i.globalCompositeOperation="destination-out",i.fillStyle="rgb(0, 0, 0)",i.fillText(t,C,b),i.globalCompositeOperation="source-over",i.fillStyle=this._fillStyle,i.fillText(t,C,b)):(i.fillStyle=this._fillStyle,i.fillText(t,C,b)),n&&"none"!==n&&this._renderDecoration(i,C,b,n,s),b+=m;i.restore();const x=this._renderedWidth+2*this._lineThroughWidthOffset,_=this._renderedHeight,I=i.getImageData(0,0,x,_),z=new Uint8Array(I.data);if(e.premultiplyColors){let t;for(let e=0;e<z.length;e+=4)t=z[e+3]/255,z[e]=z[e]*t,z[e+1]=z[e+1]*t,z[e+2]=z[e+2]*t}let R,L;switch(e.horizontalAlignment){case"left":R=-.5;break;case"right":R=.5;break;default:R=0}switch(e.verticalAlignment){case"bottom":L=-.5;break;case"top":L=.5;break;case"baseline":L=-1/6;break;default:L=0}return{size:[x,_],image:new Uint32Array(z.buffer),sdf:!1,simplePattern:!1,anchorX:R,anchorY:L,canvas:r}}_renderHalo(t,e,r,i,n,s){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,c=l.getContext("2d");c.clearRect(0,0,o,a),P(c,s);const{decoration:h,weight:u}=s.font;c.fillStyle=this._haloStyle,c.strokeStyle=this._haloStyle,c.lineJoin="round",this._renderOutlineNative(c,e,r,h,u,this._renderedHaloSize+this._renderedOutlineSize),t.globalAlpha=this._parameters.halo.color[3],t.drawImage(l,0,0,o,a,i,n,o,a),t.globalAlpha=1}_renderOutline(t,e,r,i,n,s){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,c=l.getContext("2d");c.clearRect(0,0,o,a),P(c,s);const{decoration:h,weight:u}=s.font;c.fillStyle=this._outlineStyle,c.strokeStyle=this._outlineStyle,c.lineJoin="round",this._renderOutlineNative(c,e,r,h,u,this._renderedOutlineSize),t.globalAlpha=this._parameters.outline.color[3],t.drawImage(l,0,0,o,a,i,n,o,a),t.globalAlpha=1}_renderOutlineNative(t,e,r,i,n,s){const o=this._renderedLineHeight;for(const a of this._textLines){const l=2*s,c=5,h=.1;for(let s=0;s<c;s++){const o=(1-(c-1)*h+s*h)*l;t.lineWidth=o,t.strokeText(a,e,r),i&&"none"!==i&&this._renderDecoration(t,e,r,i,n,o)}r+=o}}computeTextSize(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const r=this._textRasterizationCanvas,i=r.getContext("2d");P(i,e),this._parameters=e,this._textLines=t.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const n=this._computeTextWidth(i,e),s=this._lineHeight*this._textLines.length;return r.width=n,r.height=s,[n*e.pixelRatio,s*e.pixelRatio]}computeRichTextSize(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const r=this._textRasterizationCanvas.getContext("2d"),i=this._layoutRichTextRuns(r,t,e),n=Math.max(...i.map(t=>t.width),0),s=i.reduce((t,e)=>t+e.height,0);return[n*e.pixelRatio,s*e.pixelRatio]}_renderRichTextOutline(t,e,r,i,n,s){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,c=l.getContext("2d");c.clearRect(0,0,o,a),c.fillStyle=s===this._renderedOutlineSize?this._outlineStyle:this._haloStyle,c.strokeStyle=c.fillStyle,c.lineJoin="round";let h=i;for(const t of e){let e=r;"center"===n.horizontalAlignment?e+=(this._renderedWidth-t.width)/2:"right"===n.horizontalAlignment&&(e+=this._renderedWidth-t.width-this._renderedHaloSize-this._renderedOutlineSize);let i=e;for(const e of t.segments){P(c,e.parameters,"left",e.characterSpacing);const t=2*s,r=5,n=.1;for(let s=0;s<r;s++){const o=1-(r-1)*n+s*n;c.lineWidth=o*t,this._renderRichTextSegment(c,e,i,h,"stroke")}i+=e.width}if(n.font.decoration&&"none"!==n.font.decoration){const r=this._renderedWidth;this._renderedWidth=t.width,c.textAlign="left",this._renderDecoration(c,e,h,n.font.decoration,n.font.weight,2*s),this._renderedWidth=r}h+=t.height}s===this._renderedOutlineSize?t.globalAlpha=this._parameters.outline.color[3]:t.globalAlpha=this._parameters.halo.color[3],t.drawImage(l,0,0,o,a,this._lineThroughWidthOffset,0,o,a),t.globalAlpha=1}_layoutRichTextRuns(t,e,r){const i=[{segments:[],width:0,height:this._measureLineHeight(r)}];for(const n of e){const e=n.text.split(/\r?\n/),s=z(r,n);for(let o=0;o<e.length;o++){const a=e[o],l=i[i.length-1];if(a.length>0){const e=this._measureRichTextSegmentWidth(t,a,s,n.characterSpacing);l.segments.push({text:a,width:e,parameters:s,characterSpacing:n.characterSpacing}),l.width+=e,l.height=Math.max(l.height,this._measureLineHeight(s))}o<e.length-1&&i.push({segments:[],width:0,height:this._measureLineHeight(r)})}}return i}_measureTextWidthWithSpacing(t,e,r,i){const n=this._parameters,s=this._textLines;this._parameters=r,this._textLines=[e],P(t,r,"left",i);const o=this._computeTextWidth(t,r);return this._parameters=n,this._textLines=s,o}_measureRichTextSegmentWidth(t,e,r,i){return this._measureTextWidthWithSpacing(t,e,r,i)}_renderRichTextSegment(t,e,r,i,n){"fill"===n?t.fillText(e.text,r,i):t.strokeText(e.text,r,i)}_measureLineHeight(t){const e=this._parameters;this._parameters=t;const r=this._computeLineHeight();return this._parameters=e,r}_computeTextWidth(t,e){let r=0;for(const e of this._textLines)r=Math.max(r,t.measureText(e).width);const i=e.font;return("italic"===i.style||"oblique"===i.style||"string"==typeof i.weight&&("bold"===i.weight||"bolder"===i.weight)||"number"==typeof i.weight&&i.weight>600)&&(r+=.3*t.measureText("w").width),r+=2*(0,l.Lz)(this._parameters.halo.size),Math.round(r)}_computeLineHeightBase(){return 1.275*this._parameters.size}_computeLineHeight(){let t=this._computeLineHeightBase();const e=this._parameters.font.decoration;return e&&"underline"===e&&(t*=1.3),Math.round(t+2*(0,l.Lz)(this._parameters.halo.size))}_renderDecoration(t,e,r,i,n,s){let o=.9*this._lineHeight;const a="bold"===n?.06:"bolder"===n?.09:.04;switch(t.textAlign){case"center":e-=this._renderedWidth/2;break;case"right":e-=this._renderedWidth}const l=t.textBaseline;if("underline"===i)switch(o=.9*this._computeLineHeightBase(),l){case"top":r+=o;break;case"middle":r+=o/2}else if("line-through"===i)switch(l){case"top":r+=o/1.5;break;case"middle":r+=o/3}const c=s?1.5*s:Math.ceil(o*a);t.save(),t.beginPath(),t.strokeStyle=t.fillStyle,t.lineWidth=c,t.moveTo(e-this._lineThroughWidthOffset,r),t.lineTo(e+this._renderedWidth+2*this._lineThroughWidthOffset,r),t.stroke(),t.restore()}}function P(t,e,r,i=0){const n=Math.max(e.size,.5),s=e.font,o=`${s.style} ${s.weight} ${(0,l.Lz)(n).toFixed(1)}px ${s.family}, sans-serif`;t.font=o,t.textBaseline="top",function(t,e){t.letterSpacing=e>0?`${e}em`:"0px"}(t,i);let a=r??"left";if(!r)switch(e.horizontalAlignment){case"left":default:a="left";break;case"right":a="right";break;case"center":a="center"}t.textAlign=a}function z(t,e){return{...t,color:e.color??t.color,font:{...t.font,family:e.font.family??t.font.family,style:e.font.style??t.font.style,weight:e.font.weight??t.font.weight},size:e.fontSize}}function v(t,e,r){return"center"===t?.5*e:"right"===t?e-r:r}var R=r(93397);r(75434),r(69221);const L=Math.PI/180,T=()=>s.A.getLogger("esri.symbols.cim.CIMSymbolDrawHelper");class A{constructor(t){this._t=t}static createIdentity(){return new A([1,0,0,0,1,0])}clone(){const t=this._t;return new A(t.slice())}transform(t){const e=this._t;return[e[0]*t[0]+e[1]*t[1]+e[2],e[3]*t[0]+e[4]*t[1]+e[5]]}static createScale(t,e){return new A([t,0,0,0,e,0])}scale(t,e){const r=this._t;return r[0]*=t,r[1]*=t,r[2]*=t,r[3]*=e,r[4]*=e,r[5]*=e,this}scaleRatio(){return Math.sqrt(this._t[0]*this._t[0]+this._t[1]*this._t[1])}static createTranslate(t,e){return new A([0,0,t,0,0,e])}translate(t,e){const r=this._t;return r[2]+=t,r[5]+=e,this}static createRotate(t){const e=Math.cos(t),r=Math.sin(t);return new A([e,-r,0,r,e,0])}rotate(t){return A.multiply(this,A.createRotate(t),this)}angle(){const t=this._t[0],e=this._t[3],r=Math.sqrt(t*t+e*e);return[t/r,e/r]}static multiply(t,e,r){const i=t._t,n=e._t,s=i[0]*n[0]+i[3]*n[1],o=i[1]*n[0]+i[4]*n[1],a=i[2]*n[0]+i[5]*n[1]+n[2],l=i[0]*n[3]+i[3]*n[4],c=i[1]*n[3]+i[4]*n[4],h=i[2]*n[3]+i[5]*n[4]+n[5],u=r._t;return u[0]=s,u[1]=o,u[2]=a,u[3]=l,u[4]=c,u[5]=h,r}invert(){const t=this._t;let e=t[0]*t[4]-t[1]*t[3];if(0===e)return new A([0,0,0,0,0,0]);e=1/e;const r=(t[1]*t[5]-t[2]*t[4])*e,i=(t[2]*t[3]-t[0]*t[5])*e,n=t[4]*e,s=-t[1]*e,o=-t[3]*e,a=t[0]*e;return new A([n,s,r,o,a,i])}}class E{constructor(t,e){this._resourceManager=t,this._transfos=[],this._sizeTransfos=[],this._textScaling=[],this._geomUnitsPerPoint=1,this._placementPool=new a.A(()=>new g.W,void 0,void 0,100),this._earlyReturn=!1,this._mapRotation=0,this._transfos.push(e||A.createIdentity()),this._sizeTransfos.push(e?e.scaleRatio():1),this._textScaling.push(1)}setTransform(t,e){this._transfos=[t||A.createIdentity()],this._sizeTransfos=[e||(t?t.scaleRatio():1)],this._textScaling=[1]}setGeomUnitsPerPoint(t){this._geomUnitsPerPoint=t}transformPt(t){return this._transfos[this._transfos.length-1].transform(t)}transformSize(t){return t*this._sizeTransfos[this._sizeTransfos.length-1]}scaleText(t){return t*this._textScaling[this._textScaling.length-1]}reverseTransformPt(t){return this._transfos[this._transfos.length-1].invert().transform(t)}reverseTransformSize(t){return t/this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformScalar(t){return t/this._transfos[this._transfos.length-1].scaleRatio()}reverseScaleText(t){return t/this._textScaling[this._textScaling.length-1]}getTransformAngle(){return this._transfos[this._transfos.length-1].angle()}geomUnitsPerPoint(){return this.isEmbedded()?1:this._geomUnitsPerPoint}prevGeomUnitsPerPoint(){return this._transfos.length>2?1:this._geomUnitsPerPoint}isEmbedded(){return this._transfos.length>1}back(){return this._transfos[this._transfos.length-1]}push(t,e=!1,r=1){const i=e?t.scaleRatio():1;A.multiply(t,this.back(),t),this._transfos.push(t),this._sizeTransfos.push(this._sizeTransfos[this._sizeTransfos.length-1]*i),this._textScaling.push(this._textScaling[this._textScaling.length-1]*r)}pop(){this._transfos.splice(-1,1),this._sizeTransfos.splice(-1,1),this._textScaling.splice(-1,1)}drawSymbol(t,e,r){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this.drawMultiLayerSymbol(t,e);break;case"CIMTextSymbol":this.drawTextSymbol(t,e,r)}}drawMultiLayerSymbol(t,e){if(!t||!e)return;const r=t.symbolLayers;if(!r)return;const i=t.effects;if(i&&i.length>0){const t=this.executeEffects(i,e);if(t){let e=t.next();for(;e;)this.drawSymbolLayers(r,e.asJSON()),e=t.next()}}else this.drawSymbolLayers(r,e)}executeEffects(t,e){const r=this.geomUnitsPerPoint(),i=(0,R.ll)(t);let n=new d.kT(c.z.fromJSONCIM(e));for(const s of t){const t=(0,y.A)(s);t&&(n=t.execute(n,s,{geomUnitsPerPoint:r,tileKey:null,maxInflateSize:i,scale:null,spatialReference:e.spatialReference,preventClipping:!1}))}return n}drawSymbolLayers(t,e){let r=t.length;for(;r--;){const i=t[r];if(!i||!1===i.enable)continue;const n=i.effects;if(n&&n.length>0){const t=this.executeEffects(n,e);if(t){let e=null;for(;(e=t.next())&&(this.drawSymbolLayer(i,e.asJSON()),!this._earlyReturn););}}else this.drawSymbolLayer(i,e);if(this._earlyReturn)return}}drawSymbolLayer(t,e){switch(t.type){case"CIMSolidFill":this.drawSolidFill(e,t.color,t.path);break;case"CIMHatchFill":this.drawHatchFill(e,t);break;case"CIMPictureFill":this.drawPictureFill(e,t);break;case"CIMGradientFill":this.drawGradientFill(e,t);break;case"CIMSolidStroke":this.drawSolidStroke(e,t.color,t.width,t.capStyle,t.joinStyle,t.miterLimit,t.path);break;case"CIMPictureStroke":this.drawPictureStroke(e,t);break;case"CIMGradientStroke":this.drawGradientStroke(e,t);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":this.drawMarkerLayer(t,e)}}drawHatchFill(t,e){const r=function(t,e,r){let i=(0,R.$w)(t.separation,S.D.CIMHatchFill.separation)*r,n=(0,R.$w)(t.rotation);if(0===i)return null;i<0&&(i=-i);let s=0;const o=.5*i;for(;s>o;)s-=i;for(;s<-o;)s+=i;const a=(0,h.vt)();(0,u.Rg)(a,e),a[0]-=o,a[1]-=o,a[2]+=o,a[3]+=o;const l=[[a[0],a[1]],[a[0],a[3]],[a[2],a[3]],[a[2],a[1]]];for(;n>180;)n-=180;for(;n<0;)n+=180;const c=Math.cos(n*L),f=Math.sin(n*L),m=-i*f,d=i*c;let p,y,g,M;s=(0,R.$w)(t.offsetX)*r*f-(0,R.$w)(t.offsetY)*r*c,p=g=Number.MAX_VALUE,y=M=-Number.MAX_VALUE;for(const t of l){const e=t[0],r=t[1],i=c*e+f*r,n=-f*e+c*r;p=Math.min(p,i),g=Math.min(g,n),y=Math.max(y,i),M=Math.max(M,n)}g=Math.floor(g/i)*i;let C=c*p-f*g-m*s/i,b=f*p+c*g-d*s/i,x=c*y-f*g-m*s/i,_=f*y+c*g-d*s/i;const w=1+Math.round((M-g)/i),k=[];for(let t=0;t<w;t++)C+=m,b+=d,x+=m,_+=d,k.push([[C,b],[x,_]]);return{paths:k}}(e,t,this.geomUnitsPerPoint());r&&(this.pushClipPath(t),this.drawMultiLayerSymbol(e.lineSymbol,r),this.popClipPath())}drawPictureFill(t,e){}drawGradientFill(t,e){}drawPictureStroke(t,e){}drawGradientStroke(t,e){}drawMarkerLayer(t,e){const r=t.markerPlacement;if(r){const i=(0,y.c)(r);if(i){const n="CIMMarkerPlacementInsidePolygon"===r.type||"CIMMarkerPlacementPolygonCenter"===r.type&&r.clipAtBoundary;n&&this.pushClipPath(e);const s=i.execute(c.z.fromJSONCIM(e),r,this.geomUnitsPerPoint(),null);if(s){let e=null;for(;(e=s.next())&&(this.drawMarker(t,e),!this._earlyReturn););}n&&this.popClipPath()}}else{const r=this._placementPool.acquire();if((0,m.fT)(e))r.tx=e.x,r.ty=e.y,this.drawMarker(t,r);else if((0,m.Bi)(e)){const i=(0,f.l8)(e);i&&([r.tx,r.ty]=i,this.drawMarker(t,r))}else if((0,m.Rg)(e)){for(const i of e.paths)for(const e of i)if(r.tx=e[0],r.ty=e[1],this.drawMarker(t,r),this._earlyReturn)break}else for(const i of e.points)if(r.tx=i[0],r.ty=i[1],this.drawMarker(t,r),this._earlyReturn)break;this._placementPool.release(r)}}drawMarker(t,e){switch(t.type){case"CIMCharacterMarker":case"CIMPictureMarker":this.drawPictureMarker(t,e);break;case"CIMVectorMarker":this.drawVectorMarker(t,e)}}drawPictureMarker(t,e){if(!t)return;const r=this._resourceManager.getResource(t.url),i=(0,R.$w)(t.size,S.D.CIMPictureMarker.size);if(null==r||i<=0)return;const n=r.width,s=r.height;if(!n||!s)return;const o=n/s,a=(0,R.$w)(t.scaleX,1),l=A.createIdentity(),c=t.anchorPoint;if(c){let e=c.x,r=c.y;"Absolute"!==t.anchorPointUnits&&(e*=i*o*a,r*=i),l.translate(-e,-r)}let h=(0,R.$w)(t.rotation);t.rotateClockwise&&(h=-h),this._mapRotation&&(h+=this._mapRotation),h&&l.rotate(h*L);let u=(0,R.$w)(t.offsetX),f=(0,R.$w)(t.offsetY);if(u||f){if(this._mapRotation){const t=L*this._mapRotation,e=Math.cos(t),r=Math.sin(t),i=u*r+f*e;u=u*e-f*r,f=i}l.translate(u,f)}const m=this.geomUnitsPerPoint();1!==m&&l.scale(m,m);const d=e.getAngle();d&&l.rotate(d),l.translate(e.tx,e.ty),this.push(l),this.drawImage(t,i),this.pop()}drawVectorMarker(t,e){if(!t)return;const r=t.markerGraphics;if(!r)return;const i=(0,R.$w)(t.size,S.D.CIMVectorMarker.size),n=t.frame,s=n?n.ymax-n.ymin:0,o=i&&s?i/s:1,a=A.createIdentity();n&&a.translate(.5*-(n.xmax+n.xmin),.5*-(n.ymax+n.ymin));const l=t.anchorPoint;if(l){let e=l.x,r=l.y;"Absolute"!==t.anchorPointUnits?n&&(e*=n.xmax-n.xmin,r*=n.ymax-n.ymin):(e/=o,r/=o),a.translate(-e,-r)}1!==o&&a.scale(o,o);let c=(0,R.$w)(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&a.rotate(c*L);let h=(0,R.$w)(t.offsetX),u=(0,R.$w)(t.offsetY);if(h||u){if(this._mapRotation){const t=L*this._mapRotation,e=Math.cos(t),r=Math.sin(t),i=h*r+u*e;h=h*e-u*r,u=i}a.translate(h,u)}const f=this.geomUnitsPerPoint();1!==f&&a.scale(f,f);const m=e.getAngle();m&&a.rotate(m),a.translate(e.tx,e.ty);const d=t.scaleSymbolsProportionally?1:o;this.push(a,t.scaleSymbolsProportionally,d);for(const t of r){t?.symbol&&t.geometry||T().error("Invalid marker graphic",t);let e=t.textString;if("number"==typeof e&&(e=e.toString()),this.drawSymbol(t.symbol,t.geometry,e),this._earlyReturn)break}this.pop()}drawTextSymbol(t,e,r){if(!t)return;if(!(0,m.fT)(e))return;if((0,R.$w)(t.height,S.D.CIMTextSymbol.height)<=0)return;const i=A.createIdentity();let n=(0,R.$w)(t.angle);n=-n,n&&i.rotate(n*L);const s=(0,R.$w)(t.offsetX),o=(0,R.$w)(t.offsetY);(s||o)&&i.translate(s,o);const a=this.geomUnitsPerPoint();1!==a&&i.scale(a,a),i.translate(e.x,e.y),this.push(i),this.drawText(t,r),this.pop()}}class D extends E{constructor(t,e){super(t,e),this.reset()}reset(){this._xmin=this._ymin=1/0,this._xmax=this._ymax=-1/0,this._clipCount=0}envelope(){return new x(this._xmin,this._ymin,this._xmax-this._xmin,this._ymax-this._ymin)}bounds(){return(0,h.fA)(this._xmin,this._ymin,this._xmax,this._ymax)}drawSolidFill(t){if(t&&!(this._clipCount>0))if((0,m.Bi)(t))this._processPath(t.rings,0);else if((0,m.Rg)(t))this._processPath(t.paths,0);else if((0,m.ZC)(t)){const e=H(t);e&&this._processPath(e.rings,0)}else console.error("drawSolidFill Unexpected geometry type!")}drawSolidStroke(t,e,r){if(!t||this._clipCount>0||null==r||r<=0)return;const i=Math.max(.5*this.transformSize((0,R.$w)(r,S.D.CIMSolidStroke.width)),.25);if((0,m.Bi)(t))this._processPath(t.rings,i);else if((0,m.Rg)(t))this._processPath(t.paths,i);else if((0,m.ZC)(t)){const e=H(t);e&&this._processPath(e.rings,i)}else console.error("drawSolidStroke unexpected geometry type!")}drawMarkerLayer(t,e){(0,m.Bi)(e)&&t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._processPath(e.rings,0):super.drawMarkerLayer(t,e)}drawHatchFill(t,e){this.drawSolidFill(t)}drawPictureFill(t,e){this.drawSolidFill(t)}drawGradientFill(t,e){this.drawSolidFill(t)}drawPictureStroke(t,e){this.drawSolidStroke(t,null,e.width)}drawGradientStroke(t,e){this.drawSolidStroke(t,null,e.width)}pushClipPath(t){this.drawSolidFill(t),this._clipCount++}popClipPath(){this._clipCount--}drawImage(t,e){const{url:r}=t,i=(0,R.$w)(t.scaleX,1);let n=i*e,s=e;const o=this._resourceManager.getResource(r);if(null!=o){const t=o.height/o.width;n=i*(e?t>1?e:e/t:o.width),s=e?t>1?e*t:e:o.height}this._merge(this.transformPt([-n/2,-s/2]),0),this._merge(this.transformPt([-n/2,s/2]),0),this._merge(this.transformPt([n/2,-s/2]),0),this._merge(this.transformPt([n/2,s/2]),0)}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new I);const r=W(t),i=(0,_.Z)({textString:e,font:r.font,symbol:t,supportsRichText:(0,_.q)(e)});let[n,s]=i?this._textRasterizer.computeRichTextSize(i,r):this._textRasterizer.computeTextSize(e,r);n=(0,l.PN)(n),s=(0,l.PN)(s);const o=this.transformSize(1)*this.reverseTransformScalar(1);n*=o,s*=o;const a=t.horizontalAlignment??S.D.CIMTextSymbol.horizontalalignment,c=t.verticalAlignment??S.D.CIMTextSymbol.verticalalignment;let h=0;switch(a){case"Left":h=n/2;break;case"Right":h=-n/2}let u=0;switch(c){case"Bottom":u=s/2;break;case"Top":u=-s/2;break;case"Baseline":u=s/6}this._merge(this.transformPt([-n/2+h,-s/2+u]),0),this._merge(this.transformPt([-n/2+h,s/2+u]),0),this._merge(this.transformPt([n/2+h,-s/2+u]),0),this._merge(this.transformPt([n/2+h,s/2+u]),0)}_processPath(t,e){if(t)for(const r of t){const t=r?r.length:0;if(t>1){this._merge(this.transformPt(r[0]),e);for(let i=1;i<t;i++)this._merge(this.transformPt(r[i]),e)}}}_merge(t,e){t[0]-e<this._xmin&&(this._xmin=t[0]-e),t[0]+e>this._xmax&&(this._xmax=t[0]+e),t[1]-e<this._ymin&&(this._ymin=t[1]-e),t[1]+e>this._ymax&&(this._ymax=t[1]+e)}}class F extends E{constructor(t,e,r,i){super(e,r),this._applyAdditionalRenderProps=i,this._colorSubstitutionHelper=new p,this._ctx=t}drawSolidFill(t,e){if(!t)return;if((0,m.Bi)(t))this._buildPath(t.rings,!0);else if((0,m.Rg)(t))this._buildPath(t.paths,!0);else if((0,m.ZC)(t))this._buildPath(H(t).rings,!0);else{if(!(0,m.U9)(t))return;console.log("CanvasDrawHelper.drawSolidFill - No implementation!")}const r=this._ctx;r.fillStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",r.fill("evenodd")}drawSolidStroke(t,e,r,i,n,s){if(!t||!e||0===r)return;if((0,m.Bi)(t))this._buildPath(t.rings,!0);else if((0,m.Rg)(t))this._buildPath(t.paths,!1);else{if(!(0,m.ZC)(t))return void console.log("CanvasDrawHelper.drawSolidStroke isn't implemented!");this._buildPath(H(t).rings,!0)}const o=this._ctx;o.strokeStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",o.lineWidth=Math.max(this.transformSize(r),.5),this._setCapStyle(i),this._setJoinStyle(n),o.miterLimit=s,o.stroke()}pushClipPath(t){if(this._ctx.save(),(0,m.Bi)(t))this._buildPath(t.rings,!0);else if((0,m.Rg)(t))this._buildPath(t.paths,!0);else{if(!(0,m.ZC)(t))return;this._buildPath(H(t).rings,!0)}this._ctx.clip("evenodd")}popClipPath(){this._ctx.restore()}drawImage(t,e){const{colorSubstitutions:r,url:i,tintColor:n}=t,s=(0,R.$w)(t.scaleX,1),o=this._resourceManager.getResource(i);if(null==o)return;let a=e*(o.width/o.height),l=e;e||(a=o.width,l=o.height);const c=(0,R.UE)(i)||"src"in o&&(0,R.UE)(o.src);let h="getFrame"in o?M(o):o;r&&(h=this._colorSubstitutionHelper.applyColorSubstitution(h,r)),this._applyAdditionalRenderProps&&!c&&n&&(h=this._colorSubstitutionHelper.tintImageData(h,n));const u=this.transformPt([0,0]),[f,m]=this.getTransformAngle(),d=this.transformSize(1),p=this._ctx;p.save(),p.setTransform({m11:s*d*f,m12:s*d*m,m21:-d*m,m22:d*f,m41:u[0],m42:u[1]}),p.drawImage(h,-a/2,-l/2,a,l),p.restore()}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new I);const r=W(t,this.transformSize((0,l.PN)(1))),i=(0,_.Z)({textString:e,font:r.font,symbol:t,supportsRichText:(0,_.q)(e)}),n=i?this._textRasterizer.rasterizeRichText(i,r):this._textRasterizer.rasterizeText(e,r);if(!n)return;const{size:s,anchorX:o,anchorY:a,canvas:c}=n,h=s[0]*(o+.5),u=s[1]*(a-.5),f=this._ctx,m=this.transformPt([0,0]),[d,p]=this.getTransformAngle();f.save(),f.setTransform({m11:1*d,m12:1*p,m21:-1*p,m22:1*d,m41:m[0]-1*h,m42:m[1]+1*u}),f.drawImage(c,0,0),f.restore()}drawPictureFill(t,e){if(!t)return;let{colorSubstitutions:r,height:i,offsetX:n,offsetY:s,rotation:o,scaleX:a,tintColor:l,url:c}=e;const h=this._resourceManager.getResource(c);if(null==h)return;if((0,m.Bi)(t))this._buildPath(t.rings,!0);else if((0,m.Rg)(t))this._buildPath(t.paths,!0);else if((0,m.ZC)(t))this._buildPath(H(t).rings,!0);else{if(!(0,m.U9)(t))return;console.log("CanvasDrawHelper.drawPictureFill - No implementation!")}const u=this._ctx,f=(0,R.UE)(c)||"src"in h&&(0,R.UE)(h.src);let d,p="getFrame"in h?M(h):h;if(r&&(p=this._colorSubstitutionHelper.applyColorSubstitution(p,r)),this._applyAdditionalRenderProps){f||l&&(p=this._colorSubstitutionHelper.tintImageData(p,l)),d=u.createPattern(p,"repeat");const t=this.transformSize(1);o||(o=0),n?n*=t:n=0,s?s*=t:s=0,i&&(i*=t);const e=i?i/h.height:1,r=a&&i?a*i/h.width:1;if(0!==o||1!==e||1!==r||0!==n||0!==s){const t=new DOMMatrix;t.rotateSelf(0,0,-o).translateSelf(n,s).scaleSelf(r,e,1),d.setTransform(t)}}else d=u.createPattern(p,"repeat");u.save(),u.fillStyle=d,u.fill("evenodd"),u.restore()}drawPictureStroke(t,e){if(!t)return;let{colorSubstitutions:r,capStyle:i,joinStyle:s,miterLimit:o,tintColor:a,url:c,width:h}=e;const u=this._resourceManager.getResource(c);if(null==u)return;let f;if((0,m.Bi)(t))f=t.rings;else if((0,m.Rg)(t))f=t.paths;else{if(!(0,m.ZC)(t))return(0,m.U9)(t)?void console.log("CanvasDrawHelper.drawPictureStroke - No implementation!"):void 0;f=H(t).rings}h||(h=u.width);const d=(0,R.UE)(c)||"src"in u&&(0,R.UE)(u.src);let p="getFrame"in u?M(u):u;r&&(p=this._colorSubstitutionHelper.applyColorSubstitution(p,r)),this._applyAdditionalRenderProps&&(d||a&&(p=this._colorSubstitutionHelper.tintImageData(p,a)));const y=Math.max(this.transformSize((0,l.Lz)(h)),.5),g=y/p.width,S=this._ctx,C=S.createPattern(p,"repeat-y");let b,x;S.save(),this._setCapStyle(i),this._setJoinStyle(s),void 0!==o&&(S.miterLimit=o),S.lineWidth=y;for(let t of f)if(t=(0,n.o8)(t),$(t),t&&!(t.length<=1)){b=this.transformPt(t[0]);for(let e=1;e<t.length;e++){x=this.transformPt(t[e]);const r=G(b,x),i=new DOMMatrix;i.translateSelf(0,b[1]-y/2).scaleSelf(g,g,1).rotateSelf(0,0,90-r),C.setTransform(i),S.strokeStyle=C,S.beginPath(),S.moveTo(b[0],b[1]),S.lineTo(x[0],x[1]),S.stroke(),b=x}}S.restore()}drawGradientFill(t,e){if(!t)return;let r;if((0,m.Bi)(t))r=t.rings;else if((0,m.Rg)(t))r=t.paths;else{if(!(0,m.ZC)(t))return void T().error("Unable to draw gradient fill");r=H(t).rings}this._buildPath(r,!0);const{angle:i,gradientMethod:n,gradientSize:s,gradientSizeUnits:a}=e,c=S.D.CIMGradientFill,u=e.gradientType??c.gradientType,f=-(0,o.kU)(i??0),d=(0,h.Ie)();for(const t of r){const e=t?t.length:0;if(e>1)for(let r=0;r<e;r++){let e=this.transformPt(t[r]);"Linear"!==n&&"Rectangular"!==n||(e=C(e,-f)),(0,h.tK)(d,e)}}const[p,y,g,M]=d,x=this._ctx;switch(x.save(),n){case"Buffered":T().error(`Gradient method "${n}" currently unsupported.`);break;case"Linear":{const t=(y+M)/2,r="Absolute"===a?this.transformSize((0,l.Lz)(s)):(0,R.yX)(s,c.gradientSize)*(g-p),[i,n]="Discrete"===u?[g,g-r]:[p+r,p],o=C([i,t],f),h=C([n,t],f),m=x.createLinearGradient(o[0],o[1],h[0],h[1]);(0,b.AH)(m,e),x.fillStyle=m,x.fill("evenodd");break}case"Circular":{const t=(0,h.gX)(d),r=(0,h.ib)(d)/2,i="Absolute"===a?this.transformSize((0,l.Lz)(s)):(0,R.yX)(s,c.gradientSize)*r,[n,o]="Discrete"===u?[r,r-i]:[i,0],f=x.createRadialGradient(t[0],t[1],n,t[0],t[1],o);(0,b.AH)(f,e),x.fillStyle=f,x.fill("evenodd");break}case"Rectangular":{const r=(0,h.gX)(d),i=r[0],n=r[1],o=C(r,f),m=(r,i,n,s,a,l,c,h)=>{x.save(),this.pushClipPath(t);const u=C([a,l],f),m=C([c,h],f);x.beginPath(),x.moveTo(o[0],o[1]),x.lineTo(u[0],u[1]),x.lineTo(m[0],m[1]),x.lineTo(o[0],o[1]),x.clip();const d=C([r,i],f),p=C([n,s],f),y=x.createLinearGradient(d[0],d[1],p[0],p[1]);(0,b.AH)(y,e),x.fillStyle=y,x.fill("evenodd"),x.restore()};let S="Absolute"===a?this.transformSize((0,l.Lz)(s)):(0,R.yX)(s,c.gradientSize)*((0,h.VL)(d)/2),[_,w]="Discrete"===u?[g,g-S]:[i+S,i];m(_,n,w,n,g,y,g,M),[_,w]="Discrete"===u?[p,p+S]:[i-S,i],m(_,n,w,n,p,M,p,y),S="Absolute"===a?this.transformSize((0,l.Lz)(s)):(0,R.yX)(s,c.gradientSize)*((0,h.uJ)(d)/2);let[k,I]="Discrete"===u?[M,M-S]:[n+S,n];m(i,k,i,I,g,M,p,M),[k,I]="Discrete"===u?[y,y+S]:[n-S,n],m(i,k,i,I,p,y,g,y);break}}x.restore()}drawGradientStroke(t,e){const{capStyle:r,gradientMethod:i,gradientSize:s,gradientSizeUnits:o,joinStyle:a,miterLimit:c,width:h}=e;if(!t||0===h)return;let u;if((0,m.Bi)(t))u=t.rings;else if((0,m.Rg)(t))u=t.paths;else{if(!(0,m.ZC)(t))return void T().error("Unable to draw gradient stroke");u=H(t).rings}const f=e.gradientType??S.D.CIMGradientStroke.gradientType,d=Math.max(this.transformSize((0,l.Lz)(h)),.5),p=this._ctx;let y,g;p.save(),this._setCapStyle(r),this._setJoinStyle(a),void 0!==c&&(p.miterLimit=c),p.lineWidth=d;for(let t of u){if(t=(0,n.o8)(t),$(t),!t||t.length<=1)continue;let r=0;y=this.transformPt(t[0]);for(let e=1;e<t.length;e++){g=this.transformPt(t[e]);const i=g[0]-y[0],n=g[1]-y[1];r+=Math.sqrt(i*i+n*n),y=g}const a="Absolute"===o?this.transformSize((0,l.Lz)(s)):(0,R.yX)(s,S.D.CIMGradientStroke.gradientSize)*("AcrossLine"===i?d:r);let c=0;y=this.transformPt(t[0]);for(let n=1;n<t.length;n++){g=this.transformPt(t[n]);const s=g[0]-y[0],o=g[1]-y[1],l=Math.sqrt(s*s+o*o);let h,u,m,S;switch(i){case"AcrossLine":{const[t,e]=C([s/l,o/l],-Math.PI/2),r=d/2,i="Discrete"===f?r:a-r;h=(y[0]+g[0])/2+t*i,u=(y[1]+g[1])/2+e*i,m=h-t*a,S=u-e*a;break}case"AlongLine":{const t=s/l,e=o/l;"Discrete"===f?(h=y[0]-t*c,u=y[1]-e*c,m=h+t*a,S=u+e*a):(m=y[0]+t*(r-c),S=y[1]+e*(r-c),h=m-t*a,u=S-e*a);break}default:return T().error("Unrecognized gradient method:",i),void p.restore()}const M=p.createLinearGradient(h,u,m,S);(0,b.AH)(M,e),p.strokeStyle=M,p.beginPath(),p.moveTo(y[0],y[1]),p.lineTo(g[0],g[1]),p.stroke(),c+=l,y=g}}p.restore()}_buildPath(t,e){const r=this._ctx;if(r.beginPath(),t)for(const i of t){const t=i?i.length:0;if(t>1){let n=this.transformPt(i[0]);r.moveTo(n[0],n[1]);for(let e=1;e<t;e++)n=this.transformPt(i[e]),r.lineTo(n[0],n[1]);e&&r.closePath()}}}_setCapStyle(t){switch(t){case"Butt":this._ctx.lineCap="butt";break;case"Round":this._ctx.lineCap="round";break;case"Square":this._ctx.lineCap="square"}}_setJoinStyle(t){switch(t){case"Bevel":this._ctx.lineJoin="bevel";break;case"Round":this._ctx.lineJoin="round";break;case"Miter":this._ctx.lineJoin="miter"}}}function G(t,e){const r=e[0]-t[0],i=e[1]-t[1];return 180/Math.PI*Math.atan2(i,r)}const H=t=>t?{spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]}:null,O=(t,e,r)=>{switch(t){case"ExtraLeading":return 1+e/r;case"Multiple":return e;case"Exact":return e/r}};function W(t,e=1){const r=(0,R.DW)(t),n=(0,R._d)(t.fontStyleName),s=t.fontFamilyName??i.Vb,{weight:o,style:a}=n,l=e*(t.height||5),c=(0,R.Bu)(t.horizontalAlignment),h=(0,R.Nl)(t.verticalAlignment),u=(0,R.pM)(t),f=(0,R.pM)(t.haloSymbol),m=null!=f?e*(t.haloSize??0):0,d=(0,R._1)(t.symbol),p=e*((0,R.xo)(t.symbol)||0),y="CIMBackgroundCallout"===t.callout?.type?t.callout.backgroundSymbol:null,g=(0,R.pM)(y),S=(0,R.xo)(y),M=(0,R._1)(y);return{color:u,size:l,horizontalAlignment:c,verticalAlignment:h,font:{family:s,style:(0,R.pV)(a),weight:(0,R.Kn)(o),decoration:r},outline:{size:p||0,color:d},halo:{size:m||0,color:f,style:a},backgroundColor:g,borderLine:null!=S&&null!=M?{size:S,color:M}:null,pixelRatio:1,premultiplyColors:!0}}function $(t){let e,r,i,n,s,o=t[0],a=1;for(;a<t.length;)e=t[a][0]-o[0],r=t[a][1]-o[1],n=0!==e?r/e:Math.PI/2,void 0!==i&&Math.abs(n-i)<=1e-4?(t.splice(a-1,1),o=s):(s=o,o=t[a],a++),i=n}},15867(t,e,r){r.r(e),r.d(e,{CIMSymbolHelper:()=>L,CIMSymbolInflatedSizeHelper:()=>R,forEachSymbolLayer:()=>T,symbolToCIM:()=>P});var i=r(6371),n=r(4718),s=r(53966),o=r(87811),a=r(90629),l=r(19419),c=r(537),h=r(52006),u=r(31411),f=r(11831),m=r(35833),d=r(98939),p=r(72726),y=r(28076),g=r(93397),S=r(59868),M=r(13195),C=r(75434),b=r(69221);const x=Math.PI,_=x/2,w=Math.PI/180,k=96/72,I=()=>s.A.getLogger("esri.symbols.cim.CIMSymbolHelper");function P(t){let e;switch(t.type){case"cim":return t.data;case"web-style":return t;case"simple-marker":{const r=L.fromSimpleMarker(t);if(!r)throw new Error("InternalError: Cannot convert symbol to CIM");e=r;break}case"picture-marker":e=L.fromPictureMarker(t);break;case"simple-line":e=L.fromSimpleLineSymbol(t);break;case"simple-fill":e=L.fromSimpleFillSymbol(t);break;case"picture-fill":e=L.fromPictureFillSymbol(t);break;case"text":e=L.fromTextSymbol(t)}return{type:"CIMSymbolReference",symbol:e}}function z(t,e,r){switch(e.type){case"CIMSymbolReference":return z(t,e.symbol,r);case"CIMPointSymbol":null==r&&(r={x:0,y:0}),t.drawSymbol(e,r);break;case"CIMLineSymbol":null==r&&(r={paths:[[[0,0],[10,0]]]}),t.drawSymbol(e,r);break;case"CIMPolygonSymbol":null==r&&(r={rings:[[[0,0],[0,10],[10,10],[10,0],[0,0]]]}),t.drawSymbol(e,r);break;case"CIMTextSymbol":{const r={x:0,y:0};t.drawSymbol(e,r);break}case"CIMVectorMarker":{const r=new d.W;t.drawMarker(e,r);break}}return t.envelope()}function v(t){if(!t)return 0;switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(t.offset??0);default:return 0}}class R{static getSymbolInflateSize(t,e,r,i,n){return t||(t=[0,0,0,0]),e?this._getInflateSize(t,e,r,i,n):t}static safeSize(t){const e=Math.max(Math.abs(t[0]),Math.abs(t[2])),r=Math.max(Math.abs(t[1]),Math.abs(t[3]));return Math.sqrt(e*e+r*r)}static getPointSymbolHaloPadding(t,e){const r=(0,g.$w)(t.haloSize);if(r<=0||!t.haloSymbol?.symbolLayers?.some(t=>!1!==t.enable))return 0;const i=this.getSymbolInflateSize([0,0,0,0],t.haloSymbol,e,0,null);return r+this.safeSize(i)}static _vectorMarkerBounds(t,e,r,i){let n=!0;const s=(0,l.vt)();if(e?.markerGraphics)for(const o of e.markerGraphics){const e=[0,0,0,0];o.geometry&&((0,c.Rg)(s,o.geometry),e[0]=0,e[1]=0,e[2]=0,e[3]=0,this.getSymbolInflateSize(e,o.symbol,r,0,i),s[0]+=e[0],s[1]+=e[1],s[2]+=e[2],s[3]+=e[3],n?(t[0]=s[0],t[1]=s[1],t[2]=s[2],t[3]=s[3],n=!1):(t[0]=Math.min(t[0],s[0]),t[1]=Math.min(t[1],s[1]),t[2]=Math.max(t[2],s[2]),t[3]=Math.max(t[3],s[3])))}return t}static _getInflateSize(t,e,r,i,n){if(function(t){return void 0!==t.symbolLayers}(e)){const s=this._getLayersInflateSize(t,e.symbolLayers,r,i,n),o=(0,g.ll)(e.effects);if(o>0&&(s[0]-=o,s[1]-=o,s[2]+=o,s[3]+=o),"CIMPointSymbol"===e.type){const t=this.getPointSymbolHaloPadding(e,r);t>0&&(s[0]-=t,s[1]-=t,s[2]+=t,s[3]+=t)}return s}return this._getTextInflatedSize(t,e,n)}static _getLayersInflateSize(t,e,r,i,n){let s=!0;if(!e)return t;for(const o of e){if(!o)continue;let e=[0,0,0,0];switch(o.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const t=o;let r=t.width;null!=r&&("Square"===t.capStyle||"Miter"===t.joinStyle?r/=1.4142135623730951:r/=2,e[0]=-r,e[1]=-r,e[2]=r,e[3]=r);break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const t=o;if("CIMVectorMarker"===o.type){const t=o;if(e=this._vectorMarkerBounds(e,t,r,n),t.frame){const r=(t.frame.xmin+t.frame.xmax)/2,i=(t.frame.ymin+t.frame.ymax)/2;if(e[0]-=r,e[1]-=i,e[2]-=r,e[3]-=i,null!=t.size){const r=t.size/(t.frame.ymax-t.frame.ymin);e[0]*=r,e[1]*=r,e[2]*=r,e[3]*=r}}}else if("CIMPictureMarker"===o.type){const i=o,n=r.getResource(i.url);let s=1;if(null!=n&&n.height&&(s=n.width/n.height),null!=t.size){const r=t.size/2,n=t.size*s*(i.scaleX??1)/2;e=[-n,-r,n,r]}}else if(null!=t.size){const r=t.size/2;e=[-r,-r,r,r]}if(t.anchorPoint){let r,i;"Absolute"===t.anchorPointUnits?(r=t.anchorPoint.x,i=t.anchorPoint.y):(r=t.anchorPoint.x*(e[2]-e[0]),i=t.anchorPoint.y*(e[3]-e[1]));const n=1.25*Math.sqrt(r*r+i*i);e[0]-=n,e[1]-=n,e[2]+=n,e[3]+=n}let s=(0,g.$w)(t.rotation);if(t.rotateClockwise&&(s=-s),i&&(s-=i),s){const t=w*s,r=Math.cos(t),i=Math.sin(t),n=(0,l.vt)([M.MG,M.MG,-M.MG,-M.MG]);(0,l.tK)(n,[e[0]*r-e[1]*i,e[0]*i+e[1]*r]),(0,l.tK)(n,[e[0]*r-e[3]*i,e[0]*i+e[3]*r]),(0,l.tK)(n,[e[2]*r-e[1]*i,e[2]*i+e[1]*r]),(0,l.tK)(n,[e[2]*r-e[3]*i,e[2]*i+e[3]*r]),e=n}let a=(0,g.$w)(t.offsetX),c=(0,g.$w)(t.offsetY);if(i){const t=w*i,e=Math.cos(t),r=Math.sin(t),n=a*r+c*e;a=a*e-c*r,c=n}e[0]+=a,e[1]+=c,e[2]+=a,e[3]+=c;const h=v(t.markerPlacement);h>0&&(e[0]-=h,e[1]-=h,e[2]+=h,e[3]+=h);break}}const a=(0,g.ll)(o.effects);a>0&&(e[0]-=a,e[1]-=a,e[2]+=a,e[3]+=a),s?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],s=!1):(t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[2]),t[3]=Math.max(t[3],e[3]))}return t}static _getTextInflatedSize(t,e,r){const i=(0,b.hV)(e.height??y.D.CIMTextSymbol.height);if(t[0]=-i/2,t[1]=-i/2,t[2]=i/2,t[3]=i/2,!r)return t;const n=r.get(e);if(!n)return t;if(!function(t){return"glyphs"===t.type?t.glyphs.length>0:t.runs.some(t=>t.glyphs.glyphs.length>0)}(n.glyphMosaicItems))return t;const{lineGapType:s,lineGap:o}=e,a=s?(0,p.QF)(s,o??0,i):0,l=e.horizontalAlignment??y.D.CIMTextSymbol.horizontalalignment,c=e.verticalAlignment??y.D.CIMTextSymbol.verticalalignment,h="CIMBackgroundCallout"===e.callout?.type,u=(0,C.tA)(n.glyphMosaicItems,{scale:i/24,angle:(0,g.$w)(e.angle),xOffset:(0,g.$w)(e.offsetX),yOffset:(0,g.$w)(e.offsetY),horizontalAlignment:l,verticalAlignment:c,maxLineWidth:(0,b.Lu)(e.lineWidth),lineHeight:29*Math.max(.25,Math.min(a||1,4)),decoration:e.font.decoration||"none",useCIMAngleBehavior:!0,hasBackground:h}).boundsT,f=Math.sqrt(u.width*u.width+u.height*u.height);return t[0]-=u.x+f,t[1]-=u.y-f,t[2]+=u.x+f,t[3]+=-u.y+f,t}}class L{static getEnvelope(t,e,r,i){if(!t)return null;const n=new p.mx(r,i);if(Array.isArray(t)){let r;for(const i of t)r?r.union(z(n,i,e)):r=z(n,i,e);return r}return z(n,t,e)}static expandEnvelopeForPointSymbolHalo(t,e,r,i=0){const n=R.getPointSymbolHaloPadding(e,r);if(n<=0)return;const s=n+i;t.x-=s,t.y-=s,t.width+=2*s,t.height+=2*s}static getTextureInfo(t,e,r,i,n,s=0){const o=i??this.getEnvelope(t,null,e);if(!o)return[0,0,0,0,1];const a=Math.max(o.width,o.height)*k;let l=null!=n?Math.max(n/a,1):1;l*=k,o.x*=l,o.y*=l,o.width*=l,o.height*=l,o.width=Math.max(Math.ceil(o.x+o.width)-Math.floor(o.x),1)-1,o.height=Math.max(Math.ceil(o.y+o.height)-Math.floor(o.y),1)-1;let c=o.x+.5*o.width,h=o.y+.5*o.height;if(c+=o.x-Math.floor(o.x),h+=o.y-Math.floor(o.y),!i){const t=Math.ceil(s*l);o.width+=r+2*t,o.height+=r+2*t,c+=r/2,h+=r/2}return[o.width,o.height,c,h,l]}static getTextureAnchor(t,e,r,i=0){const[n,s,o,a,l]=this.getTextureInfo(t,e,2,null,r,i);return[-o/n,-a/s,s/l*k]}static rasterize(t,e,r,i,n=!0,s,o=0){const[a,l,c,h,u]=this.getTextureInfo(e,i,2,r,s,o);t.width=a,t.height=l;const f=t.getContext("2d",{willReadFrequently:!0}),m=p.IT.createScale(u,-u);m.translate(.5*a-c,.5*l+h);const y=new p.Rj(f,i,m);switch(e.type){case"CIMPointSymbol":{const t={type:"point",x:0,y:0};y.drawSymbol(e,t);break}case"CIMVectorMarker":{const t=new d.W;y.drawMarker(e,t);break}}const g=f.getImageData(0,0,t.width,t.height),S=new Uint8Array(g.data);if(n){let t;for(let e=0;e<S.length;e+=4)t=S[e+3]/255,S[e]=S[e]*t,S[e+1]=S[e+1]*t,S[e+2]=S[e+2]*t}return[S,t.width,t.height,-c/a,-h/l,u]}static fromTextSymbol(t){const{text:e}=t;return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,anchorPointUnits:"Relative",dominantSizeAxis3D:"Y",size:10,billboardMode3D:"FaceNearPlane",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:L.createCIMTextSymbolfromTextSymbol(t),textString:e}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(t){const{height:e,outline:r,width:i,xoffset:n,xscale:s,yoffset:o,yscale:a}=t,l=[],c={type:"CIMPolygonSymbol",symbolLayers:l};if(r){const t=U(r);t&&l.push(t)}let h=t.url;"esriPFS"===t.type&&t.imageData&&(h=t.imageData);const u="angle"in t?t.angle??0:0,f=(i??0)*(s||1),m=(e??0)*(a||1);return l.push({type:"CIMPictureFill",enable:!0,invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:h,height:m,width:f,offsetX:(0,g.$w)(n),offsetY:(0,g.$w)(o),rotation:(0,g.$w)(-u),colorSubstitutions:null}),c}static fromSimpleFillSymbol(t){const{color:e,style:r,outline:i}=t,s=[],o={type:"CIMPolygonSymbol",symbolLayers:s};if(i){const t=U(i);t&&s.push(t)}if(r&&"solid"!==r&&"none"!==r&&"esriSFSSolid"!==r&&"esriSFSNull"!==r){const t={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:G(e),capStyle:"Butt",joinStyle:"Miter",width:.75}]};let i=0;const o=(0,a.PN)(N(r)?8:10);switch(r){case"vertical":case"esriSFSVertical":i=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":i=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":i=45;break;case"cross":case"esriSFSCross":i=0}s.push({type:"CIMHatchFill",lineSymbol:t,offsetX:0,offsetY:0,rotation:i,separation:o}),"cross"===r||"esriSFSCross"===r?s.push({type:"CIMHatchFill",lineSymbol:(0,n.o8)(t),offsetX:0,offsetY:0,rotation:90,separation:o}):"diagonal-cross"!==r&&"esriSFSDiagonalCross"!==r||s.push({type:"CIMHatchFill",lineSymbol:(0,n.o8)(t),offsetX:0,offsetY:0,rotation:45,separation:o})}else!r||"solid"!==r&&"esriSFSSolid"!==r||s.push({type:"CIMSolidFill",enable:!0,color:G(e)});return o}static fromSimpleLineSymbol(t){const{cap:e,color:r,join:i,marker:n,miterLimit:s,style:o,width:a}=t;let l=null;"solid"!==o&&"none"!==o&&"esriSLSSolid"!==o&&"esriSLSNull"!==o&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:$(o,e),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]);const c=[];if(n){let t;switch(n.placement){case"begin-end":t="Both";break;case"begin":t="JustBegin";break;case"end":t="JustEnd";break;default:t="None"}const e=L.fromSimpleMarker(n,a,r).symbolLayers[0];e.markerPlacement={type:"CIMMarkerPlacementAtExtremities",placePerPart:!1,angleToLine:!0,keepUpright:!1,offset:0,extremityPlacement:t,offsetAlongLine:0},c.push(e)}return c.push({type:"CIMSolidStroke",color:"none"!==o&&"esriSLSNull"!==o?G(r):[0,0,0,0],capStyle:A(e),joinStyle:E(i),miterLimit:s,width:a,effects:l}),{type:"CIMLineSymbol",symbolLayers:c}}static fromPictureMarker(t){const{angle:e,height:r,width:i,xoffset:n,yoffset:s}=t;let o=t.url;return"esriPMS"===t.type&&t.imageData&&(o=t.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:o,size:r,width:i,offsetX:(0,g.$w)(n),offsetY:(0,g.$w)(s),rotation:(0,g.$w)(-e)}]}}static createCIMTextSymbolfromTextSymbol(t){const{angle:e,color:r,font:n,haloColor:s,haloSize:o,horizontalAlignment:a,kerning:l,lineWidth:c,text:h,verticalAlignment:u,xoffset:f,yoffset:m,backgroundColor:d,borderLineColor:p,borderLineSize:y}=t;let S,M,C,b,x,_;n&&(S=n.family,M=n.style,C=n.weight,b=n.size,x=n.decoration);let w=!1;return h&&(w=(0,i.y)(h)[1]),(d||y)&&(_={type:"CIMBackgroundCallout",margin:null,backgroundSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:G(d)},{type:"CIMSolidStroke",enable:!0,color:G(p),width:y??0}]},accentBarSymbol:null,gap:null,leaderLineSymbol:null,lineStyle:null}),{type:"CIMTextSymbol",angle:e,blockProgression:2,depth3D:1,extrapolateBaselines:!0,fontEffects:0,fontEncoding:1,fontFamilyName:S||"Arial",fontStyleName:H(M,C),fontType:0,haloSize:o,height:b,hinting:1,horizontalAlignment:D(a??"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",lineWidth:c,offsetX:(0,g.$w)(f),offsetY:(0,g.$w)(m),strikethrough:"line-through"===x,underline:"underline"===x,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:G(r)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:G(s)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:w?1:0,verticalAlignment:F(u??"baseline"),verticalGlyphOrientation:0,wordSpacing:100,billboardMode3D:2,callout:_}}static createPictureMarkerRasterizationParam(t){const{angle:e,height:r,width:i,xoffset:n,yoffset:s}=t,o=t.url??t.source?.url??t.source?.imageData;return o?{type:"sprite-rasterization-param",overrides:[],resource:{type:"CIMPictureMarker",enable:!0,invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:o,size:r,width:i,offsetX:(0,g.$w)(n),offsetY:(0,g.$w)(s),rotation:(0,g.$w)(-e)}}:null}static createPictureFillRasterizationParam(t){const{width:e,height:r,xoffset:i,yoffset:n,url:s}=t;return s?{type:"sprite-rasterization-param",overrides:[],resource:{type:"CIMPictureFill",enable:!0,scaleX:1,textureFilter:"Picture",tintColor:null,url:s,width:e,height:r,offsetX:(0,g.$w)(i),offsetY:(0,g.$w)(n),rotation:0}}:null}static fromSimpleMarker(t,e,r){const{style:i}=t,n=t.color??r;if("path"===i||"esriSMSPath"===i){const e=[];if("outline"in t&&t.outline){const r=t.outline;e.push({type:"CIMSolidStroke",enable:!0,width:r.width,color:G(r.color),path:t.path})}e.push({type:"CIMSolidFill",enable:!0,color:G(n),path:t.path});const[r,i]=B("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:-(0,g.$w)(t.angle),size:(0,g.$w)(t.size||6),offsetX:(0,g.$w)(t.xoffset),offsetY:(0,g.$w)(t.yoffset),scaleSymbolsProportionally:!1,frame:r,markerGraphics:[{type:"CIMMarkerGraphic",geometry:i,symbol:{type:"CIMPolygonSymbol",symbolLayers:e}}]}]}}const s=[];let o,a,l=t.size;if("outline"in t&&t.outline&&"none"!==t.outline.style&&"esriSLSNull"!==t.outline.style){const e=t.outline,r="solid"!==e.style&&"esriSLSSolid"!==e.style;[o,a]=r?B(i,t.size):B(i);const n=e.width??S.A7.width;if(r){const e=n/t.size,r=(o.xmax-o.xmin)*e/2,i=(o.ymax-o.ymin)*e/2;o.xmin-=r,o.xmax+=r,o.ymin-=i,o.ymax+=i,l&&(l+=n)}const c="cross"!==t.style&&"x"!==t.style||"dot"===t?.outline.style||"short-dot"===t?.outline.style?"HalfGap":"FullPattern",h=r?[{type:"CIMGeometricEffectAddControlPoints"},{type:"CIMGeometricEffectDashes",dashTemplate:$(e.style,null).map(t=>e.width&&e.width>0?t*e.width:t),lineDashEnding:c,controlPointEnding:"FullPattern"}]:void 0;s.push({type:"CIMSolidStroke",capStyle:r?"Round":"Butt",enable:!0,width:n,color:G(e.color),effects:h})}else!e||"line-marker"!==t.type||"cross"!==t.style&&"x"!==t.style?[o,a]=B(i):([o,a]=B(i),s.push({type:"CIMSolidStroke",enable:!0,width:e,color:G(n)}));s.push({type:"CIMSolidFill",enable:!0,color:G(n)});const c={type:"CIMPolygonSymbol",symbolLayers:s};return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:(0,g.$w)(-t.angle),size:(0,g.$w)(l||6*e),offsetX:(0,g.$w)(t.xoffset),offsetY:(0,g.$w)(t.yoffset),scaleSymbolsProportionally:!1,frame:o,markerGraphics:[{type:"CIMMarkerGraphic",geometry:a,symbol:c}]}]}}static fromCIMHatchFill(t,e){const r=e*(t.separation??y.D.CIMHatchFill.separation),i=r/2,s=(0,n.o8)(t.lineSymbol);s.symbolLayers?.forEach(t=>{switch(t.type){case"CIMSolidStroke":null!=t.width&&(t.width*=e),t.effects?.forEach(t=>{if("CIMGeometricEffectDashes"===t.type){const r=t.dashTemplate;t.dashTemplate=r?.map(t=>t*e)}});break;case"CIMVectorMarker":{null!=t.size&&(t.size*=e);const r=t.markerPlacement;null!=r&&"placementTemplate"in r&&(r.placementTemplate=r.placementTemplate.map(t=>t*e));break}}});let o=this._getLineSymbolPeriod(s)||4;for(;o<4;)o*=2;const a=o/2;return{type:"CIMVectorMarker",enable:!0,frame:{xmin:-a,xmax:a,ymin:-i,ymax:i},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-a,0],[a,0]]]},symbol:s}],size:r}}static async normalizeSymbolAndFetchResources(t,e,r=null){if(!t)return;const i=[];if("effects"in t&&t.effects)for(const e of t.effects)i.push((0,m.ai)(e));i.push(s(t));const n=t=>{if(t.effects)for(const e of t.effects)i.push((0,m.ai)(e));if("CIMVectorMarker"===t.type){for(const e of t.markerGraphics)(0,h.Ed)(e.geometry)&&(e.geometry=(0,u.GS)(e.geometry,{maxDeviation:.01}));t.markerPlacement&&i.push((0,m.g1)(t.markerPlacement))}"url"in t&&t.url&&i.push(e.fetchResource(t.url,{signal:r})),"symbol"in t&&i.push(s(t.symbol))};async function s(t){if("CIMTextSymbol"!==t.type)return;const{fontFamilyName:r,fontStyleName:i}=t;if("calcitewebcoreicons"===r?.toLowerCase())return;const{style:n,weight:s}=(0,g._d)(i),o=(0,g.DW)(t),a=new f.A({family:r,style:n,weight:s,decoration:o});try{await e.loadFont(a)}catch{I().error(`Unsupported font ${r} in CIM symbol`)}}T(t,n),"haloSymbol"in t&&T(t.haloSymbol,n),await Promise.all(i)}static _getLineSymbolPeriod(t){if(t){const e=this._getEffectsRepeat(t.effects);if(e)return e;if(t.symbolLayers)for(const e of t.symbolLayers)if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;switch(e.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=this._getPlacementRepeat(e.markerPlacement);if(t)return t}}}}return 0}static _getEffectsRepeat(t){if(t)for(const e of t)if(e)switch(e.type){case"CIMGeometricEffectDashes":{const t=e.dashTemplate;if(t&&t.length){let e=0;for(const r of t)e+=r;return 1&t.length&&(e*=2),e}break}case"CIMGeometricEffectWave":return e.period;default:I().error(`unsupported geometric effect type ${e.type}`)}return 0}static _getPlacementRepeat(t){if(t)switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const e=t.placementTemplate;if(e&&e.length){let t=0;for(const r of e)t+=+r;return 1&e.length&&(t*=2),t}break}}return 0}static fromCIMInsidePolygon(t){const e=t.markerPlacement,r={...t};r.markerPlacement=null,r.anchorPoint=null;const i=Math.abs(e.stepX),n=Math.abs(e.stepY),s=(e.randomness??100)/100;let l,c,h,u;if("Random"===e.gridType){const t=(0,a.PN)(1024),r=Math.max(Math.floor(t/i),1),f=Math.max(Math.floor(t/n),1);l=r*i/2,c=f*n/2,h=2*c;const m=new o.A(e.seed),d=s*i/1.5,p=s*n/1.5;u=[];for(let t=0;t<r;t++)for(let e=0;e<f;e++){const r=t*i-l+d*(.5-m.getFloat()),s=e*n-c+p*(.5-m.getFloat());u.push({x:r,y:s}),0===t&&u.push({x:r+2*l,y:s}),0===e&&u.push({x:r,y:s+2*c})}}else!0===e.shiftOddRows?(l=i/2,c=n,h=2*n,u=[{x:-l,y:0},{x:l,y:0},{x:0,y:c},{x:0,y:-c}]):(l=i/2,c=n/2,h=n,u=[{x:-i,y:0},{x:0,y:-n},{x:-i,y:-n},{x:0,y:0},{x:i,y:0},{x:0,y:n},{x:i,y:n},{x:-i,y:n},{x:i,y:-n}]);return{type:"CIMVectorMarker",enable:!0,frame:{xmin:-l,xmax:l,ymin:-c,ymax:c},markerGraphics:u.map(t=>({type:"CIMMarkerGraphic",geometry:t,symbol:{type:"CIMPointSymbol",symbolLayers:[r]}})),size:h}}}function T(t,e){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const r=t.symbolLayers;if(!r)return;for(const t of r)if(e(t),"CIMVectorMarker"===t.type){const r=t.markerGraphics;if(!r)continue;for(const t of r)if(t){const r=t.symbol;r&&T(r,e)}}break}}}const A=t=>{if(!t)return"Butt";switch(t){case"butt":return"Butt";case"square":return"Square";case"round":return"Round"}},E=t=>{if(!t)return"Miter";switch(t){case"miter":return"Miter";case"round":return"Round";case"bevel":return"Bevel"}},D=t=>{if(null==t)return"Center";switch(t){case"left":return"Left";case"right":return"Right";case"center":return"Center";case"justify":return"Justify"}},F=t=>{if(null==t)return"Center";switch(t){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},G=t=>{if(!t)return[0,0,0,0];const{r:e,g:r,b:i,a:n}=t;return[e,r,i,255*n]},H=(t,e)=>{const r=O(e),i=W(t);return r&&i?`${r}-${i}`:`${r}${i}`},O=t=>{if(!t)return"";switch(t.toLowerCase()){case"bold":case"bolder":return"bold"}return""},W=t=>{if(!t)return"";switch(t.toLowerCase()){case"italic":case"oblique":return"italic"}return""},$=(t,e)=>{const r=.001,i="butt"===e;switch(t){case"dash":case"esriSLSDash":return i?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return i?[4,3,1,3]:[3,4,r,4];case"dot":case"esriSLSDot":return i?[1,3]:[r,4];case"long-dash":case"esriSLSLongDash":return i?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return i?[8,3,1,3]:[7,4,r,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return i?[8,3,1,3,1,3]:[7,4,r,4,r,4];case"short-dash":case"esriSLSShortDash":return i?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return i?[4,1,1,1]:[3,2,r,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return i?[4,1,1,1,1,1]:[3,2,r,2,r,2];case"short-dot":case"esriSLSShortDot":return i?[1,1]:[r,2];case"solid":case"esriSLSSolid":case"none":return I().error("Unexpected: style does not require rasterization"),[0,0];default:return I().error(`Tried to rasterize SLS, but found an unexpected style: ${t}!`),[0,0]}},B=(t,e=100)=>{const r=e/2;let i,n;const s=t;if("circle"===s||"esriSMSCircle"===s){const t=.25;let e=Math.acos(1-t/r),s=Math.ceil(x/e/4);0===s&&(s=1),e=_/s,s*=4;const o=[];o.push([r,0]);for(let t=1;t<s;t++)o.push([r*Math.cos(t*e),-r*Math.sin(t*e)]);o.push([r,0]),i={rings:[o]},n={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("cross"===s||"esriSMSCross"===s){const t=0;i={paths:[[[t,r],[t,-r]],[[r,t],[-r,t]]]},n={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("diamond"===s||"esriSMSDiamond"===s)i={rings:[[[-r,0],[0,r],[r,0],[0,-r],[-r,0]]]},n={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("square"===s||"esriSMSSquare"===s)i={rings:[[[-r,-r],[-r,r],[r,r],[r,-r],[-r,-r]]]},n={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("x"===s||"esriSMSX"===s)i={paths:[[[r,r],[-r,-r]],[[r,-r],[-r,r]]]},n={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("triangle"===s||"esriSMSTriangle"===s){const t=.5773502691896257*e,r=-t,s=2/3*e,o=s-e;i={rings:[[[r,o],[0,s],[t,o],[r,o]]]},n={xmin:r,ymin:o,xmax:t,ymax:s}}else"arrow"===s&&(i={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},n={xmin:-r,ymin:-r,xmax:r,ymax:r});return[n,i]},N=t=>"vertical"===t||"horizontal"===t||"cross"===t||"esriSFSCross"===t||"esriSFSVertical"===t||"esriSFSHorizontal"===t;function U(t){if(!t)return null;let e=null;const{cap:r,color:i,join:n,miterLimit:s,style:o,width:a}=t;return"solid"!==o&&"none"!==o&&"esriSLSSolid"!==o&&"esriSLSNull"!==o&&(e=[{type:"CIMGeometricEffectDashes",dashTemplate:$(o,r),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),{type:"CIMSolidStroke",color:"esriSLSNull"!==o&&"none"!==o?G(i):[0,0,0,0],capStyle:A(r),joinStyle:E(n),miterLimit:s,width:a,effects:e}}r.d(e,["capTypeToEnum",0,A,"slsDashToTemplateArray",0,$])},28076(t,e,r){var i=r(13337);const n={CIMVectorMarker:{scalesymbolsproportionally:!1,respectframe:!0,anchorpointunits:"Relative",offsetx:0,offsety:0,rotateclockwise:!1,rotation:0,size:10,enable:!0,colorlocked:!1},CIMPictureMarker:{scalex:1,texturefilter:"Draft",anchorpointunits:"Relative",offsetx:0,offsety:0,rotateclockwise:!1,rotation:0,size:10,enable:!0,colorlocked:!1},CIMTextSymbol:{angle:0,anglex:0,angley:0,halosize:1,height:10,horizontalalignment:"Left",kerning:!0,letterspacing:0,letterwidth:100,ligatures:!0,linegap:0,offsetx:0,offsety:0,strikethrough:!1,textcase:"Normal",textstring:"",underline:!1,verticalalignment:"Bottom",enable:!0,colorlocked:!1},CIMSolidStroke:{capstyle:"Round",joinstyle:"Round",miterlimit:4,width:4,enable:!0,colorlocked:!1},CIMPictureStroke:{texturefilter:"Draft",capstyle:"Round",joinstyle:"Round",miterlimit:4,width:4,enable:!0,colorlocked:!1},CIMGradientStroke:{capstyle:"Round",joinstyle:"Round",miterlimit:4,width:4,enable:!0,colorlocked:!1,gradientMethod:"AcrossLine",gradientSize:75,gradientSizeUnits:i.h.Relative,gradientType:"Discrete",interval:5},CIMSolidFill:{enable:!0,colorlocked:!1},CIMPictureFill:{offsetx:0,offsety:0,rotation:0,scalex:1,height:10,texturefilter:"Draft",enable:!0,colorlocked:!1},CIMHatchFill:{offsetx:0,offsety:0,rotation:0,separation:4,enable:!0,colorlocked:!1},CIMGradientFill:{enable:!0,angle:90,gradientMethod:"Linear",gradientSize:75,gradientSizeUnits:i.h.Relative,gradientType:"Discrete",interval:5},CIMGeometricEffectAddControlPoints:{angletolerance:120},CIMGeometricEffectArrow:{arrowtype:"OpenEnded",width:5},CIMGeometricEffectBuffer:{size:1},CIMGeometricEffectCircularSector:{radius:25,startangle:0,endangle:45},CIMGeometricEffectCut:{begincut:1,endcut:1,middlecut:0,invert:!1},CIMGeometricEffectDashes:{customendingoffset:0,linedashending:"NoConstraint",offsetalongline:0},CIMGeometricEffectDonut:{method:"Mitered",option:"Accurate",width:2},CIMGeometricEffectJog:{angle:225,length:20,position:50},CIMGeometricEffectControlMeasureLine:{rule:"FullGeometry",width:25},CIMGeometricEffectMove:{offsetx:1,offsety:-1},CIMGeometricEffectOffset:{method:"Square",offset:1,option:"Fast"},CIMGeometricEffectRadial:{angle:0,length:5},CIMGeometricEffectRotate:{angle:15},CIMGeometricEffectScale:{xscalefactor:1.15,yscalefactor:1.15},CIMGeometricEffectWave:{amplitude:2,period:3,seed:1,waveform:"Sinus"},CIMMarkerPlacementAlongLine:{customendingoffset:0,endings:"WithHalfGap",offsetalongline:0,placeperpart:!0,angletoline:!0,offset:0},CIMMarkerPlacementAtExtremities:{extremityplacement:"Both",offsetalongline:0,angletoline:!0,offset:0},CIMMarkerPlacementAtRatioPositions:{beginposition:0,endposition:0,flipfirst:!0,angletoline:!0,offset:0},CIMMarkerPlacementInsidePolygon:{gridangle:0,gridtype:"Fixed",offsetx:0,offsety:0,randomness:100,seed:0,shiftoddrows:!1,stepx:16,stepy:16,clipping:"ClipAtBoundary"},CIMMarkerPlacementOnLine:{relativeto:"LineMiddle",startpointoffset:0,angletoline:!0,offset:0},CIMMarkerPlacementOnVertices:{placeperpart:!0,placeoncontrolpoints:!0,placeonendpoints:!0,placeonregularvertices:!0,angletoline:!0,offset:0},CIMMarkerPlacementPolygonCenter:{method:"OnPolygon",offsetx:0,offsety:0,clipatboundary:!1},CIMAnimatedSymbolProperties:{playanimation:!1,reverseanimation:!1,randomizestarttime:!1,randomizestartseed:0,starttimeoffset:0,duration:3,endingduration:3,useendingduration:!1,repeattype:"Loop",repeatdelay:0,easing:"Linear"},CIMSymbolAnimationSize:{tosize:10},CIMSymbolAnimationScale:{scalefactor:1},CIMSymbolAnimationColor:{tocolor:[255,255,255,1],colormode:"Multiply"},CIMSymbolAnimationTransparency:{totransparency:0},CIMSymbolAnimationRotation:{torotation:0,rotateclockwise:!1},CIMSymbolAnimationOffset:{offsetx:0,offsety:0},CIMSymbolAnimationMoveAlongLine:{speed:30,distancealong:100,movementtype:"Distance"}};r.d(e,["D",0,n])},44589(t,e,r){r.d(e,{AH:()=>a}),r(40804);var i=r(53966),n=(r(34727),r(35521),r(28076));const s=()=>i.A.getLogger("esri.symbols.cim.rasterizingUtils");let o;function a(t,e){const{colorRamp:r,gradientType:i}=e,s=l(r),a="CIMFixedColorRamp"===r.type;if("Continuous"===i&&!a)return c(t,s);const h=e.interval??n.D.CIMGradientFill.interval;if(a)return c(t,function(t,e){const r=[],i=(t.length-1)/(e-1);for(let n=0;n<e;n++){const s=t[Math.round(n*i)].color;r.push({offset:n/e,color:s}),r.push({offset:(n+1)/e,color:s})}return r}(s,h));const u=[];o??=document.createElement("canvas"),function(t,e,r,i,n){const s=r+2*n;t.width=s,t.height=i;const o=(n+1)/s,a=t.getContext("2d",{willReadFrequently:!0});if(e.length>0){const t=a.createLinearGradient(0,0,s,i);c(t,e,o),a.fillStyle=t}else a.fillStyle="rgba(128, 128, 128, 1)";a.fillRect(0,0,s,i)}(o,s,h,1,0);const f=o.getContext("2d").getImageData(0,0,h,1).data;for(let t=0,e=0;t<h;t++,e=4*t){const r=[f[e+0],f[e+1],f[e+2],f[e+3]];u.push({offset:t/h,color:r}),u.push({offset:(t+1)/h,color:r})}return c(t,u)}function l(t){const e=[];switch(t.type){case"CIMPolarContinuousColorRamp":case"CIMLinearContinuousColorRamp":{"CIMPolarContinuousColorRamp"===t.type&&s().warnOnce("CIMPolarContinuousColorRamp is currently unsupported. Falling back to CIMLinearContinuousColorRamp.");const r=t;e.push({offset:0,color:[r.fromColor[0],r.fromColor[1],r.fromColor[2],r.fromColor[3]/255]}),e.push({offset:1,color:[r.toColor[0],r.toColor[1],r.toColor[2],r.toColor[3]/255]});break}case"CIMFixedColorRamp":{const r=t,i=1/(r.colors.length-1);let n=0;for(const t of r.colors)e.push({offset:n,color:[t[0],t[1],t[2],t[3]/255]}),n+=i;break}case"CIMMultipartColorRamp":{const r=t,i=r.weights.reduce((t,e)=>t+e,0);let n=0;for(let t=0;t<r.colorRamps.length;t++){const s=r.colorRamps[t],o=r.weights[t],a=l(s);for(const t of a)e.push({offset:(n+t.offset*o)/i,color:t.color});n+=o}break}default:s().error(`Color ramp "${t.type}" currently unsupported.`)}return e}function c(t,e,r=0){for(const{offset:i,color:n}of e)t.addColorStop(Math.min(Math.max(i,r),1-r),`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${n[3]})`)}},13337(t,e,r){r.d(e,["h",0,{Relative:0,Absolute:1}])},93397(t,e,r){r.d(e,{Bu:()=>_,DW:()=>M,FH:()=>z,FM:()=>a,Kn:()=>g,Kq:()=>W,MM:()=>u,Nl:()=>w,O2:()=>k,YC:()=>R,YF:()=>I,_1:()=>b,_d:()=>S,_h:()=>o,bs:()=>v,e6:()=>c,gQ:()=>s,jn:()=>m,lW:()=>h,ll:()=>E,mA:()=>f,oI:()=>$,pM:()=>C,pV:()=>y,pk:()=>T,rB:()=>A,xo:()=>x,yX:()=>O,zb:()=>P,zr:()=>d});var i=r(28076);function n(t){let e=t.length;for(;e--;)if(!" /-,\n".includes(t.charAt(e)))return!1;return!0}function s(t,e){const r=[];let i=0,s=-1;do{if(s=t.indexOf("[",i),s>=i){if(s>i){const e=t.slice(i,s);r.push([e,null,n(e)])}if(i=s+1,s=t.indexOf("]",i),s>=i){if(s>i){const n=e[t.slice(i,s)];n&&r.push([null,n,!1])}i=s+1}}}while(-1!==s);if(i<t.length){const e=t.slice(i);r.push([e,null,n(e)])}return r}function o(t,e,r){let i="",n=null;for(const r of e){const[e,s,o]=r;if(null!=e&&""!==e)o?n=e:(null!=n&&(i+=n,n=null),i+=e);else{const e=t.readAttribute(s);null!=e&&""!==e&&(null!==n&&(i+=n,n=null),i+=e)}}return l(i,r)}function a(t,e,r,i){let n="",s=null;for(const i of e){const[e,o,a]=i;if(null!=e&&""!==e)a?s=e:(null!=s&&(n+=s,s=null),n+=e);else{let e=o;null!=r&&(e=L(o,r));const i=t.attributes[e];null!=i&&""!==i&&(null!=s&&(n+=s,s=null),n+=i)}}return l(n,i)}function l(t,e){switch("string"!=typeof t&&(t=String(t)),e){case"LowerCase":return t.toLowerCase();case"Allcaps":return t.toUpperCase();default:return t}}function c(t){return t?[t[0],t[1],t[2],t[3]/255]:[0,0,0,0]}function h(t){return t.data?.symbol??null}function u(t){return"CIMVectorMarker"===t.type||"CIMPictureMarker"===t.type||"CIMBarChartMarker"===t.type||"CIMCharacterMarker"===t.type||"CIMPieChartMarker"===t.type||"CIMStackedBarChartMarker"===t.type}function f(t){return"CIMGradientStroke"===t.type||"CIMPictureStroke"===t.type||"CIMSolidStroke"===t.type}function m(t){return null!=t&&("CIMGradientFill"===t.type||"CIMHatchFill"===t.type||"CIMPictureFill"===t.type||"CIMSolidFill"===t.type||"CIMWaterFill"===t.type)}function d(t){return null!=t&&("CIMMarkerPlacementAlongLineRandomSize"===t.type||"CIMMarkerPlacementAlongLineSameSize"===t.type||"CIMMarkerPlacementAlongLineVariableSize"===t.type||"CIMMarkerPlacementAtExtremities"===t.type||"CIMMarkerPlacementAtMeasuredUnits"===t.type||"CIMMarkerPlacementAtRatioPositions"===t.type||"CIMMarkerPlacementOnLine"===t.type||"CIMMarkerPlacementOnVertices"===t.type)}const p=(t,e=0)=>null==t||isNaN(t)?e:t;function y(t){if(!t)return"normal";switch(t.toLowerCase()){case"italic":return"italic";case"oblique":return"oblique";default:return"normal"}}function g(t){if(!t)return"normal";switch(t.toLowerCase()){case"bold":return"bold";case"bolder":return"bolder";case"lighter":return"lighter";default:return"normal"}}function S(t){let e="normal",r="normal";if(t){const i=t.toLowerCase();i.includes("italic")?e="italic":i.includes("oblique")&&(e="oblique"),i.includes("bold")?r="bold":i.includes("light")&&(r="lighter")}return{style:e,weight:r}}function M(t){return t.underline?"underline":t.strikethrough?"line-through":"none"}function C(t){if(!t)return null;switch(t.type){case"CIMPolygonSymbol":if(t.symbolLayers)for(const e of t.symbolLayers){const t=C(e);if(null!=t)return t}break;case"CIMTextSymbol":return C(t.symbol);case"CIMSolidFill":return t.color}return null}function b(t){if(t)switch(t.type){case"CIMPolygonSymbol":case"CIMLineSymbol":{const e=t.symbolLayers;if(e)for(const t of e){const e=b(t);if(null!=e)return e}break}case"CIMTextSymbol":return b(t.symbol);case"CIMSolidStroke":return t.color}}function x(t){if(t)switch(t.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(t.symbolLayers)for(const e of t.symbolLayers){const t=x(e);if(void 0!==t)return t}break;case"CIMTextSymbol":return x(t.symbol);case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return t.width}}function _(t){switch(t){case"Left":default:return"left";case"Right":return"right";case"Center":return"center";case"Justify":return"justify"}}function w(t){switch(t){default:case"Bottom":return"bottom";case"Top":return"top";case"Center":return"middle";case"Baseline":return"baseline"}}function k(t){return(t?Object.keys(t):[]).map(e=>({name:e,alias:e,type:"string"==typeof t[e]?"esriFieldTypeString":"esriFieldTypeDouble"}))}function I(t){return t?t.charAt(0).toLowerCase()+t.slice(1):t}function P(t,e,r,i,n,s,o=!0){const{infos:a}=s;let l=1,c=0,h=0,u=0,f=1;for(const{absoluteAnchorPoint:t,offsetX:e,offsetY:r,rotation:i,size:n,frameHeight:s,rotateClockWise:m,scaleSymbolsProportionally:d}of a)f=t?1:l,h=G(e,r,c,f,h),u=F(e,r,c,f,u),s&&(d||o)&&(l*=n/s),c=H(i,m,c);const m=G(i,n,c,f,h),d=F(i,n,c,f,u);return{size:t*l,rotation:H(e,r,c),offsetX:m,offsetY:d}}function z(t){return t?.dashTemplate&&(t.dashTemplate=function(t){return"string"==typeof t?function(t){return t.split(" ").map(t=>Number(t))}(t):t}(t.dashTemplate)),t}function v(t){if(null==t)return"Normal";switch(t.type){case"CIMTextSymbol":return t.textCase??"Normal";case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const e=t.symbolLayers;if(!e)return"Normal";for(const t of e)if("CIMVectorMarker"===t.type)return v(t)}break;case"CIMVectorMarker":{const e=t.markerGraphics;if(!e)return"Normal";for(const t of e)if(t.symbol)return v(t.symbol)}}return"Normal"}function R(t){if(t)switch(t.type){case"CIMTextSymbol":return t.height;case"CIMPointSymbol":{let e=0;if(t.symbolLayers)for(const r of t.symbolLayers)if(r)switch(r.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=r.size??i.D.CIMVectorMarker.size;t>e&&(e=t);break}}return e}case"CIMLineSymbol":case"CIMPolygonSymbol":{let e=0;if(t.symbolLayers)for(const r of t.symbolLayers)if(r)switch(r.type){case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const t=r.width;null!=t&&t>e&&(e=t);break}case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":if(r.markerPlacement&&d(r.markerPlacement)){const t=r.size??i.D.CIMVectorMarker.size;t>e&&(e=t)}break;case"CIMPictureFill":{const t=r.height;null!=t&&t>e&&(e=t)}}return e}}}function L(t,e){if(null!==e){const r=e.get(t);return r?r.name:t}return t}function T(t){return t.map(t=>({...t,propertyName:I(t.propertyName)}))}function A(t){const e={};for(const r in t){const i=t[r];e[I(r)]=i}return e}function E(t){if(!t)return 0;let e=0;for(const r of t)e+=D(r);return e}function D(t){if(!t)return 0;if(W(t))return t.inflateSize??256;switch(t.type){case"CIMGeometricEffectArrow":return Math.abs(.5*t.width);case"CIMGeometricEffectBuffer":return Math.abs(t.size);case"CIMGeometricEffectCircularSector":return Math.abs(t.radius??25);case"CIMGeometricEffectControlMeasureLine":return 500;case"CIMGeometricEffectExtension":return Math.abs(t.length);case"CIMGeometricEffectJog":return Math.abs(.5*t.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(p(t.offsetX)),Math.abs(p(t.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(t.offset);case"CIMGeometricEffectRadial":return Math.abs(t.length??5);case"CIMGeometricEffectRegularPolygon":return Math.abs(t.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(t.fromWidth),Math.abs(t.toWidth));case"CIMGeometricEffectWave":return Math.abs(t.amplitude);case"CIMGeometricEffectDonut":return Math.abs(t.width)}}function F(t,e,r,i,n){const s=r*Math.PI/180;if(s){const r=Math.cos(s);return(Math.sin(s)*t+r*e)*i+n}return e*i+n}function G(t,e,r,i,n){const s=r*Math.PI/180;return s?(Math.cos(s)*t-Math.sin(s)*e)*i+n:t*i+n}function H(t,e,r){return e?r-t:r+t}function O(t,e){return Math.max(Math.min((t??e)/100,1),0)}function W(t){return t.type.startsWith("Private")}function $(t){return null!=t&&function(t){return"setControlPoint"in t&&"getControlPoint"in t&&"setControlPointAt"in t&&"getControlPointAt"in t}(t)?t:void 0}r.d(e,["$w",0,p,"UE",0,t=>t.includes("data:image/svg+xml")])}}]);