{"version":3,"sources":["node_modules/@arcgis/core/symbols/support/previewSymbol3D.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 { getAssetUrl as e } from \"../../assets.js\";\nimport { toHSV as t, toRGB as l } from \"../../core/colorUtils.js\";\nimport \"../../core/has.js\";\nimport a from \"../../core/Error.js\";\nimport s from \"../../core/Logger.js\";\nimport { pt2px as n } from \"../../core/screenUtils.js\";\nimport { defaultThematicColor as r, getPatternUrlWithColor as o, dekebabifyLineStyle as i } from \"./gfxUtils.js\";\nimport { defaultPrimitive as c } from \"./IconSymbol3DLayerResource.js\";\nimport { defaultPrimitive as p } from \"./ObjectSymbol3DLayerResource.js\";\nimport { SymbolSizeDefaults as u, adjustColorComponentBrightness as h, getPathSymbolShapes as m, shapes as f, getExtrudeSymbolShapes as y, getTetrahedronShapes as d, getDiamondShapes as b, getCylinderShapes as k, getCubeShapes as w, getInvertedConeShapes as v, getConeShapes as g, getWaterSymbolShapes as x } from \"./previewUtils.js\";\nimport { tintImageWithColor as M, renderSymbol as L } from \"./renderUtils.js\";\nimport { isVolumetricSymbol as j, getIconHref as z } from \"./utils.js\";\nimport { resolveWebStyleSymbol as S } from \"./webStyleSymbolUtils.js\";\nconst P = u.size,\n D = u.maxSize,\n U = u.maxOutlineSize,\n O = u.lineWidth,\n C = u.tallSymbolWidth;\nfunction R(e) {\n const t = e.outline,\n l = null != e.material ? e.material.color : null,\n a = null != l ? l.toHex() : null;\n if (null == t || \"pattern\" in t && null != t.pattern && \"style\" === t.pattern.type && \"none\" === t.pattern.style) return \"fill\" === e.type && \"#ffffff\" === a ? {\n color: \"#bdc3c7\",\n width: .75\n } : null;\n const s = n(t.size) || 0;\n return {\n color: \"rgba(\" + (null != t.color ? t.color.toRgba() : \"255,255,255,1\") + \")\",\n width: Math.min(s, U),\n style: \"pattern\" in t && null != t.pattern && \"style\" === t.pattern.type ? i(t.pattern.style) : null,\n join: \"butt\",\n cap: \"patternCap\" in t ? t.patternCap : \"butt\"\n };\n}\nasync function E(t, l) {\n if (t.thumbnail?.url) return t.thumbnail.url;\n if (\"icon\" === l.type) {\n const e = l?.resource?.href;\n if (e) return z(l);\n }\n const a = e(\"esri/images/Legend/legend3dsymboldefault.png\");\n if (t.styleOrigin && (t.styleOrigin.styleName || t.styleOrigin.styleUrl)) {\n const e = await S(t.styleOrigin, {\n portal: t.styleOrigin.portal\n }, \"webRef\").catch(() => null);\n if (e && \"thumbnail\" in e && e.thumbnail?.url) return e.thumbnail.url;\n }\n return a;\n}\nfunction I(e, a = 1) {\n const s = e.a,\n n = t(e),\n r = n.h,\n o = n.s / a,\n i = 100 - (100 - n.v) / a,\n {\n r: c,\n g: p,\n b: u\n } = l({\n h: r,\n s: o,\n v: i\n });\n return [c, p, u, s];\n}\nfunction Z(e) {\n return \"water\" === e.type ? null == e.color ? null : e.color : null == e.material?.color ? null : e.material.color;\n}\nfunction q(e, t = 0) {\n const l = Z(e);\n if (!l) {\n if (\"fill\" === e.type) return null;\n const l = r.r,\n a = h(l, t);\n return [a, a, a, 100];\n }\n const a = l.toRgba();\n for (let s = 0; s < 3; s++) a[s] = h(a[s], t);\n return a;\n}\nasync function H(t, l) {\n const a = t.style;\n if (\"none\" === a) return null;\n return {\n type: \"pattern\",\n x: 0,\n y: 0,\n src: await o(e(`esri/symbols/patterns/${a}.png`), l.toCss(!0)),\n width: 5,\n height: 5\n };\n}\nfunction N(e) {\n return e.outline ? R(e) : {\n color: \"rgba(0, 0, 0, 1)\",\n width: 1.5\n };\n}\nfunction T(e, t) {\n const l = Z(e);\n if (!l) return null;\n let a = \"rgba(\";\n return a += h(l.r, t) + \",\", a += h(l.g, t) + \",\", a += h(l.b, t) + \",\", a + l.a + \");\";\n}\nfunction W(e, t) {\n const l = T(e, t);\n if (!l) return {};\n if (\"pattern\" in e && null != e.pattern && \"style\" === e.pattern.type && \"none\" === e.pattern.style) return null;\n return {\n color: l,\n width: Math.min(e.size ? n(e.size) : .75, U),\n style: \"pattern\" in e && null != e.pattern && \"style\" === e.pattern.type ? i(e.pattern.style) : null,\n cap: \"cap\" in e ? e.cap : null,\n join: \"join\" in e ? \"miter\" === e.join ? n(2) : e.join : null\n };\n}\nfunction F(e, t, l) {\n const a = null != l ? .75 * l : 0;\n return {\n type: \"linear\",\n x1: a ? .25 * a : 0,\n y1: a ? .5 * a : 0,\n x2: a || 4,\n y2: a ? .5 * a : 4,\n colors: [{\n color: e,\n offset: 0\n }, {\n color: t,\n offset: 1\n }]\n };\n}\nfunction $(e) {\n const t = e.depth,\n l = e.height,\n a = e.width;\n return 0 !== a && 0 !== t && 0 !== l && a === t && null != a && null != l && a < l;\n}\nfunction A(e, t, l) {\n const a = [];\n if (!e) return a;\n switch (e.type) {\n case \"icon\":\n {\n const l = 0,\n s = 0,\n n = t,\n r = t;\n switch (e.resource && e.resource.primitive || c) {\n case \"circle\":\n a.push({\n shape: {\n type: \"circle\",\n cx: 0,\n cy: 0,\n r: .5 * t\n },\n fill: q(e, 0),\n stroke: R(e)\n });\n break;\n case \"square\":\n a.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [l, r]\n }, {\n command: \"L\",\n values: [l, s]\n }, {\n command: \"L\",\n values: [n, s]\n }, {\n command: \"L\",\n values: [n, r]\n }, {\n command: \"Z\",\n values: []\n }]\n },\n fill: q(e, 0),\n stroke: R(e)\n });\n break;\n case \"triangle\":\n a.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [l, r]\n }, {\n command: \"L\",\n values: [.5 * n, s]\n }, {\n command: \"L\",\n values: [n, r]\n }, {\n command: \"Z\",\n values: []\n }]\n },\n fill: q(e, 0),\n stroke: R(e)\n });\n break;\n case \"cross\":\n a.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [.5 * n, s]\n }, {\n command: \"L\",\n values: [.5 * n, r]\n }, {\n command: \"M\",\n values: [l, .5 * r]\n }, {\n command: \"L\",\n values: [n, .5 * r]\n }]\n },\n stroke: N(e)\n });\n break;\n case \"x\":\n a.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [l, s]\n }, {\n command: \"L\",\n values: [n, r]\n }, {\n command: \"M\",\n values: [n, s]\n }, {\n command: \"L\",\n values: [l, r]\n }]\n },\n stroke: N(e)\n });\n break;\n case \"kite\":\n a.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [l, .5 * r]\n }, {\n command: \"L\",\n values: [.5 * n, s]\n }, {\n command: \"L\",\n values: [n, .5 * r]\n }, {\n command: \"L\",\n values: [.5 * n, r]\n }, {\n command: \"Z\",\n values: []\n }]\n },\n fill: q(e, 0),\n stroke: R(e)\n });\n }\n break;\n }\n case \"object\":\n switch (e.resource && e.resource.primitive || p) {\n case \"cone\":\n {\n const s = F(q(e, 0), q(e, -.6), l ? C : t),\n n = g(t, l);\n a.push({\n shape: n[0],\n fill: s\n }, {\n shape: n[1],\n fill: s\n });\n break;\n }\n case \"inverted-cone\":\n {\n const l = q(e, 0),\n s = F(l, q(e, -.6), t),\n n = v(t);\n a.push({\n shape: n[0],\n fill: s\n }, {\n shape: n[1],\n fill: l\n });\n break;\n }\n case \"cube\":\n {\n const s = w(t, l);\n a.push({\n shape: s[0],\n fill: q(e, 0)\n }, {\n shape: s[1],\n fill: q(e, -.3)\n }, {\n shape: s[2],\n fill: q(e, -.5)\n });\n break;\n }\n case \"cylinder\":\n {\n const s = F(q(e, 0), q(e, -.6), l ? C : t),\n n = k(t, l);\n a.push({\n shape: n[0],\n fill: s\n }, {\n shape: n[1],\n fill: s\n }, {\n shape: n[2],\n fill: q(e, 0)\n });\n break;\n }\n case \"diamond\":\n {\n const l = b(t);\n a.push({\n shape: l[0],\n fill: q(e, -.3)\n }, {\n shape: l[1],\n fill: q(e, 0)\n }, {\n shape: l[2],\n fill: q(e, -.3)\n }, {\n shape: l[3],\n fill: q(e, -.7)\n });\n break;\n }\n case \"sphere\":\n {\n const l = F(q(e, 0), q(e, -.6));\n l.x1 = 0, l.y1 = 0, l.x2 = .25 * t, l.y2 = .25 * t, a.push({\n shape: {\n type: \"circle\",\n cx: 0,\n cy: 0,\n r: .5 * t\n },\n fill: l\n });\n break;\n }\n case \"tetrahedron\":\n {\n const l = d(t);\n a.push({\n shape: l[0],\n fill: q(e, -.3)\n }, {\n shape: l[1],\n fill: q(e, 0)\n }, {\n shape: l[2],\n fill: q(e, -.6)\n });\n break;\n }\n }\n break;\n }\n return a;\n}\nfunction B(e) {\n const t = \"number\" == typeof e?.size ? e?.size : null;\n return t ? n(t) : null;\n}\nfunction G(e) {\n return \"icon\" === e.type ? \"multiply\" : \"tint\";\n}\nasync function J(e, t) {\n const l = B(t),\n a = t?.maxSize ? n(t.maxSize) : null,\n r = t?.disableUpsampling ?? !1,\n o = e.symbolLayers,\n i = [];\n let c = 0,\n p = 0;\n const u = o.at(-1);\n let h;\n u && \"icon\" === u.type && (h = u.size && n(u.size)), o.forEach(s => {\n if (\"icon\" !== s.type && \"object\" !== s.type) return;\n const o = \"icon\" === s.type ? s.size && n(s.size) : 0,\n u = l || o ? Math.ceil(Math.min(l || o, a || D)) : P;\n if (s?.resource?.href) {\n const t = E(e, s).then(e => {\n const t = s?.material?.color,\n l = G(s);\n return M(e, u, t, l, r);\n }).then(e => {\n const t = e.width,\n l = e.height;\n return c = Math.max(c, t), p = Math.max(p, l), [{\n shape: {\n type: \"image\",\n x: 0,\n y: 0,\n width: t,\n height: l,\n src: e.url\n },\n fill: null,\n stroke: null\n }];\n });\n i.push(t);\n } else {\n let e = u;\n \"icon\" === s.type && h && l && (e = u * (o / h));\n const a = \"tall\" === t?.symbolConfig || t?.symbolConfig?.isTall || \"object\" === s.type && $(s);\n c = Math.max(c, a ? C : e), p = Math.max(p, e), i.push(Promise.resolve(A(s, e, a)));\n }\n });\n const m = await Promise.allSettled(i),\n f = [];\n return m.forEach(e => {\n \"fulfilled\" === e.status ? f.push(e.value) : e.reason && s.getLogger(\"esri.symbols.support.previewSymbol3D\").warn(\"error while building swatchInfo!\", e.reason);\n }), L(f, [c, p], {\n node: t?.node,\n scale: !1,\n opacity: t?.opacity,\n ariaLabel: t?.ariaLabel\n });\n}\nfunction K(e, t) {\n const l = e.symbolLayers,\n a = [],\n s = j(e),\n r = B(t),\n o = (t?.maxSize ? n(t.maxSize) : null) || U;\n let i,\n c = 0,\n p = 0;\n return l.forEach((e, t) => {\n if (!e) return;\n if (\"line\" !== e.type && \"path\" !== e.type) return;\n const l = [];\n switch (e.type) {\n case \"line\":\n {\n const a = W(e, 0);\n if (null == a) break;\n const s = a?.width || 0;\n 0 === t && (i = s);\n const n = Math.min(r || s, o),\n u = 0 === t ? n : r ? n * (s / i) : n,\n h = u > O / 2 ? 2 * u : O;\n p = Math.max(p, u), c = Math.max(c, h), a.width = u, l.push({\n shape: {\n type: \"path\",\n path: [{\n command: \"M\",\n values: [0, .5 * p]\n }, {\n command: \"L\",\n values: [c, .5 * p]\n }]\n },\n stroke: a\n });\n break;\n }\n case \"path\":\n {\n const t = Math.min(r || P, o),\n a = q(e, 0),\n s = q(e, -.2),\n n = T(e, -.4),\n i = n ? {\n color: n,\n width: 1\n } : {};\n if (\"quad\" === e.profile) {\n const t = e.width,\n n = e.height,\n r = m(t && n ? t / n : 1, 0 === n, 0 === t),\n o = {\n ...i,\n join: \"bevel\"\n };\n l.push({\n shape: r[0],\n fill: s,\n stroke: o\n }, {\n shape: r[1],\n fill: s,\n stroke: o\n }, {\n shape: r[2],\n fill: a,\n stroke: o\n });\n } else l.push({\n shape: f.pathSymbol3DLayer[0],\n fill: s,\n stroke: i\n }, {\n shape: f.pathSymbol3DLayer[1],\n fill: a,\n stroke: i\n });\n p = Math.max(p, t), c = p;\n }\n }\n a.push(l);\n }), Promise.resolve(L(a, [c, p], {\n node: t?.node,\n scale: s,\n opacity: t?.opacity,\n ariaLabel: t?.ariaLabel\n }));\n}\nasync function Q(e, t) {\n const l = \"mesh-3d\" === e.type,\n a = e.symbolLayers,\n s = B(t),\n r = t?.maxSize ? n(t.maxSize) : null,\n o = s || P,\n i = [];\n let c = 0,\n p = 0,\n u = !1;\n for (let n = 0; n < a.length; n++) {\n const e = a.at(n),\n t = [];\n if (!l || \"fill\" === e.type) {\n switch (e.type) {\n case \"fill\":\n {\n const a = Math.min(o, r || D);\n if (c = Math.max(c, a), p = Math.max(p, a), u = !0, l) {\n const l = f.meshSymbol3DFill,\n a = T(e, -.4),\n s = a ? {\n color: a,\n width: 1,\n join: \"round\"\n } : {};\n t.push({\n shape: l[0],\n fill: q(e, 0),\n stroke: s\n }, {\n shape: l[1],\n fill: q(e, -.2),\n stroke: s\n }, {\n shape: l[2],\n fill: q(e, -.6),\n stroke: s\n });\n } else {\n let l = q(e, 0);\n const a = \"pattern\" in e ? e.pattern : null,\n s = R(e),\n n = Z(e);\n null != a && \"style\" === a.type && \"solid\" !== a.style && n && (l = await H(a, n)), t.push({\n shape: f.fill[0],\n fill: l,\n stroke: s\n });\n }\n break;\n }\n case \"line\":\n {\n const l = W(e, 0);\n if (null == l) break;\n const a = {\n stroke: l,\n shape: f.fill[0]\n };\n c = Math.max(c, P), p = Math.max(p, P), t.push(a);\n break;\n }\n case \"extrude\":\n {\n const l = {\n join: \"round\",\n width: 1,\n ...W(e, -.4)\n },\n a = q(e, 0),\n s = q(e, -.2),\n n = Math.min(o, r || D),\n i = y(n);\n l.width = 1, t.push({\n shape: i[0],\n fill: s,\n stroke: l\n }, {\n shape: i[1],\n fill: s,\n stroke: l\n }, {\n shape: i[2],\n fill: a,\n stroke: l\n });\n const u = P,\n h = .7 * P + .5 * n;\n c = Math.max(c, u), p = Math.max(p, h);\n break;\n }\n case \"water\":\n {\n const l = Z(e),\n a = I(l),\n s = I(l, 2),\n n = I(l, 3),\n i = x();\n u = !0, t.push({\n shape: i[0],\n fill: a\n }, {\n shape: i[1],\n fill: s\n }, {\n shape: i[2],\n fill: n\n });\n const h = Math.min(o, r || D);\n c = Math.max(c, h), p = Math.max(p, h);\n break;\n }\n }\n i.push(t);\n }\n }\n return L(i, [c, p], {\n node: t?.node,\n scale: u,\n opacity: t?.opacity,\n ariaLabel: t?.ariaLabel\n });\n}\nfunction V(e, t) {\n if (0 === e.symbolLayers.length) return Promise.reject(new a(\"symbolPreview: renderPreviewHTML3D\", \"No symbolLayers in the symbol.\"));\n switch (e.type) {\n case \"point-3d\":\n return J(e, t);\n case \"line-3d\":\n return K(e, t);\n case \"polygon-3d\":\n case \"mesh-3d\":\n return Q(e, t);\n }\n return Promise.reject(new a(\"symbolPreview: swatchInfo3D\", \"symbol not supported.\"));\n}\nexport { H as getPatternDescriptor, B as getSizeFromOptions, q as getSymbolLayerFill, V as previewSymbol3D };"],"mappings":"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","names":["e","t","l","a","s","d","n","o","c","p","u","g","h","m","y","i","r"],"x_google_ignoreList":[0]}