{"version":3,"sources":["node_modules/@arcgis/core/renderers/support/DictionaryLoader.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport e from \"../../Color.js\";\nimport t from \"../../request.js\";\nimport s from \"../../core/Error.js\";\nimport \"../../core/has.js\";\nimport i from \"../../core/Logger.js\";\nimport { LRUCache as o } from \"../../core/LRUCache.js\";\nimport { isAbortError as r } from \"../../core/promiseUtils.js\";\nimport { numericHash as n } from \"../../core/string.js\";\nimport { Version as l } from \"../../core/Version.js\";\nimport a from \"../../layers/support/FieldsIndex.js\";\nimport { loadArcade as c, createDictionaryExpression as m } from \"../../support/arcadeOnDemand.js\";\nimport f from \"../../symbols/CIMSymbol.js\";\nconst h = \"esri.renderers.support.DictionaryLoader\",\n u = {\n type: \"CIMSimpleLineCallout\",\n lineSymbol: {\n type: \"CIMLineSymbol\",\n symbolLayers: [{\n type: \"CIMSolidStroke\",\n width: .5,\n color: [0, 0, 0, 255]\n }]\n }\n };\nclass y {\n constructor(e, t, s) {\n this.config = null, this.fieldMap = null, this.url = null, this._ongoingRequests = new Map(), this._symbolCache = new o(100), this._dictionaryVersion = null, this._fieldIndex = null, this._dictionaryPromise = null, this.url = e, this.config = t, this.fieldMap = s;\n }\n getSymbolFields() {\n return this._symbolFields;\n }\n async getSymbolAsync(t, s) {\n let i;\n this._dictionaryPromise || (this._dictionaryPromise = this.fetchResources(s));\n try {\n i = await this._dictionaryPromise;\n } catch (d) {\n if (r(d)) return this._dictionaryPromise = null, null;\n }\n const o = this._dictionaryVersion && this._dictionaryVersion.since(4, 0),\n l = {};\n if (this.fieldMap) for (const e of this._symbolFields) {\n const s = this._getFieldName(this.fieldMap[e]);\n if (s) {\n const i = t.attributes[s];\n l[e] = o ? i : null != i ? \"\" + t.attributes[s] : \"\";\n } else l[e] = \"\";\n }\n let a = null;\n try {\n a = i?.(l, s);\n } catch (g) {\n return null;\n }\n if (!a || \"string\" != typeof a) return null;\n const c = n(a).toString(),\n m = this._symbolCache.get(c);\n if (m) return m.catch(() => {\n this._symbolCache.pop(c);\n }), m;\n const f = a.split(\";\"),\n h = [],\n u = [];\n for (const r of f) if (r) if (r.includes(\"po:\")) {\n const t = r.substr(3).split(\"|\");\n if (3 === t.length) {\n const s = t[0],\n i = t[1];\n let o = t[2];\n if (\"DashTemplate\" === i) o = o.split(\" \").map(e => Number(e));else if (\"Color\" === i) {\n const t = new e(o).toRgba();\n o = [t[0], t[1], t[2], 255 * t[3]];\n } else o = Number(o);\n u.push({\n primitiveName: s,\n propertyName: i,\n value: o\n });\n }\n } else if (r.includes(\"|\")) {\n for (const e of r.split(\"|\")) if (this._itemNames.has(e)) {\n h.push(e);\n break;\n }\n } else this._itemNames.has(r) && h.push(r);\n const y = null == t.geometry || !t.geometry.hasZ && \"point\" === t.geometry.type,\n p = this._cimPartsToCIMSymbol(h, u, y, s);\n return this._symbolCache.put(c, p, 1), p;\n }\n async fetchResources(e) {\n if (this._dictionaryPromise) return this._dictionaryPromise;\n if (!this.url) return void i.getLogger(h).error(\"no valid URL!\");\n const o = t(this.url + \"/resources/styles/dictionary-info.json\", {\n responseType: \"json\",\n query: {\n f: \"json\"\n },\n signal: null != e ? e.signal : null\n }),\n [{\n data: r\n }] = await Promise.all([o, c()]);\n if (!r) throw this._dictionaryPromise = null, new s(\"esri.renderers.DictionaryRenderer\", \"Bad dictionary data!\");\n const {\n authoringInfo: n,\n dictionary_version: f,\n expression: u,\n itemsNames: y\n } = r,\n p = u;\n let d = !1;\n f && (this._dictionaryVersion = l.parse(f), d = this._dictionaryVersion.since(4, 0)), this._refSymbolUrlTemplate = this.url + \"/\" + r.cimRefTemplateUrl, this._itemNames = new Set(y), this._symbolFields = n.symbol;\n const g = {};\n if (this.config) {\n const e = this.config;\n for (const t in e) g[t] = e[t];\n }\n if (n.configuration) for (const t of n.configuration) g.hasOwnProperty(t.name) || (g[t.name] = t.value);\n const b = [];\n if (e?.fields && this.fieldMap) for (const t of this._symbolFields) {\n const s = this.fieldMap[t],\n i = e.fields.filter(e => e.name.toLowerCase() === s?.toLowerCase());\n i.length > 0 && b.push({\n ...i[0],\n type: d ? i[0].type : \"esriFieldTypeString\"\n });\n }\n b.length > 0 && (this._fieldIndex = new a(b));\n const _ = m(p, null != e ? e.spatialReference : null, b, g).then(e => {\n const t = {\n scale: 0\n };\n return (s, i) => {\n if (null == e) return null;\n const o = e.repurposeFeature({\n geometry: null,\n attributes: s\n });\n return t.scale = null != i ? i.scale ?? void 0 : void 0, e.evaluate({\n $feature: o,\n $view: t\n }, e.services);\n };\n }).catch(e => (i.getLogger(h).error(\"Creating dictinoary expression failed:\", e), null));\n return this._dictionaryPromise = _, _;\n }\n async _cimPartsToCIMSymbol(e, t, s, i) {\n const o = new Array(e.length);\n for (let l = 0; l < e.length; l++) o[l] = this._getSymbolPart(e[l], i);\n const r = await Promise.all(o),\n n = this.fieldMap;\n if (n) for (const l of r) p(l, n);\n return new f({\n data: this._combineSymbolParts(r, t, s)\n });\n }\n async _getSymbolPart(e, s) {\n if (this._ongoingRequests.has(e)) return this._ongoingRequests.get(e).then(e => e.data);\n const i = this._refSymbolUrlTemplate.replaceAll(/\\{itemName\\}/gi, e),\n o = t(i, {\n responseType: \"json\",\n query: {\n f: \"json\"\n },\n ...s\n });\n this._ongoingRequests.set(e, o);\n try {\n return (await o).data;\n } catch (r) {\n throw this._ongoingRequests.delete(e), r;\n }\n }\n _combineSymbolParts(e, t, s) {\n if (!e || 0 === e.length) return null;\n const i = {\n ...e[0]\n };\n if (e.length > 1) {\n i.symbolLayers = [];\n for (const t of e) {\n const e = t;\n i.symbolLayers.unshift(...e.symbolLayers);\n }\n }\n return s && (i.callout = u), {\n type: \"CIMSymbolReference\",\n symbol: i,\n primitiveOverrides: t\n };\n }\n _getFieldName(e) {\n if (null !== this._fieldIndex) {\n const t = this._fieldIndex.get(e);\n return t ? t.name : e;\n }\n return e;\n }\n}\nfunction p(e, t) {\n if (!e) return;\n const s = e.symbolLayers;\n if (!s) return;\n let i = s.length;\n for (; i--;) {\n const e = s[i];\n if (e && !1 !== e.enable && \"CIMVectorMarker\" === e.type) d(e, t);\n }\n}\nfunction d(e, t) {\n const s = e.markerGraphics;\n if (s) for (const i of s) {\n if (!i) continue;\n const e = i.symbol;\n if (e) switch (e.type) {\n case \"CIMPointSymbol\":\n case \"CIMLineSymbol\":\n case \"CIMPolygonSymbol\":\n p(e, t);\n break;\n case \"CIMTextSymbol\":\n e.fieldMap = t;\n }\n }\n}\nexport { y as DictionaryLoader };"],"mappings":"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","names":["u","e","s","i","d","l","c","h","r","t","o","y","p","b"],"x_google_ignoreList":[0]}