@esri/solutions-components 5.1.0-next.135 → 5.1.0-next.137
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.
- package/dist/cdn/{JSQHZGE3.js → 33UAZ7BX.js} +42 -42
- package/dist/cdn/3CSMIYZV.js +2 -0
- package/dist/cdn/{PYXXT5H5.js → 3RSUBJQ5.js} +1 -1
- package/dist/cdn/{SAWMNQJD.js → 4753O4WX.js} +1 -1
- package/dist/cdn/{FOTFZKKU.js → 52QHFDTC.js} +1 -1
- package/dist/cdn/{YZVDT3ZT.js → 6RHH635X.js} +1 -1
- package/dist/cdn/{S5F6KJQM.js → 7J2F4TFI.js} +1 -1
- package/dist/cdn/{K4XOBDPS.js → 7MFLK6JZ.js} +1 -1
- package/dist/cdn/{6SSQ6MIC.js → 7NAC32PQ.js} +1 -1
- package/dist/cdn/{WQVOA4KV.js → AYQT4HC4.js} +1 -1
- package/dist/cdn/BNRFT546.js +2 -0
- package/dist/cdn/{ZF5NIURZ.js → BQE2XAKC.js} +1 -1
- package/dist/cdn/{75WQ7UGJ.js → D4MZYBH7.js} +1 -1
- package/dist/cdn/DGNAMFJN.js +9 -0
- package/dist/cdn/{ADNSBINK.js → DNZ5U52C.js} +1 -1
- package/dist/cdn/{ZTO4S3BZ.js → E5EU4SVV.js} +1 -1
- package/dist/cdn/F3NG6RFP.js +117 -0
- package/dist/cdn/GLQZHYJP.js +4 -0
- package/dist/cdn/GWWU6HWB.js +48 -0
- package/dist/cdn/{DW44YGCV.js → JMCZPJDW.js} +1 -1
- package/dist/cdn/{TWJSFINX.js → KGSB4I6Y.js} +1 -1
- package/dist/cdn/{PX4CIW7K.js → NPYWZIAM.js} +1 -1
- package/dist/cdn/{VFBFI3KQ.js → NWCKV677.js} +1 -1
- package/dist/cdn/{P6ANTPJW.js → OYBEDO63.js} +1 -1
- package/dist/cdn/{SNK53NIO.js → P2TNN5UL.js} +1 -1
- package/dist/cdn/{JW3GYKLH.js → RDAHPMNW.js} +1 -1
- package/dist/cdn/{TV3ZHJ7B.js → SAJPXZDW.js} +1 -1
- package/dist/cdn/SEHNIZKR.js +2 -0
- package/dist/cdn/WGOI2WQZ.js +2 -0
- package/dist/cdn/{Z4BCFJUQ.js → XVRJTKAB.js} +25 -25
- package/dist/cdn/{L3CMOE2U.js → Z6UCVV4K.js} +1 -1
- package/dist/cdn/{PPRV6EZZ.js → ZIX74MNU.js} +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/assistantResponse.js +51 -0
- package/dist/chunks/classifyIntent.js +120 -0
- package/dist/chunks/description.js +7 -31
- package/dist/chunks/description2.js +36 -0
- package/dist/chunks/solution-builder-assistant.js +935 -0
- package/dist/chunks/validators.js +1 -1
- package/dist/components/arcgis-solutions-assistant/customElement.js +599 -560
- package/dist/components/crowdsource-manager/customElement.js +7 -6
- package/dist/components/solution-builder-assistant/customElement.d.ts +62 -2
- package/dist/components/solution-builder-assistant/customElement.js +14 -872
- package/dist/components/solutions-deploy-app/customElement.js +21 -20
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/solutions-components_commit.txt +6 -6
- package/package.json +5 -4
- package/dist/cdn/6SJB46SK.js +0 -2
- package/dist/cdn/BTVZM7QH.js +0 -2
- package/dist/cdn/DJMULVG5.js +0 -2
- package/dist/cdn/JMO7ZFWL.js +0 -26
- package/dist/cdn/JQLLXM7G.js +0 -11
- package/dist/cdn/LQPPEXL2.js +0 -4
- package/dist/cdn/ZS3UOY5Q.js +0 -2
- package/dist/chunks/solutions_assistant_description.js +0 -14
- package/dist/chunks/solutions_assistant_prompts.js +0 -29
- /package/dist/cdn/{GYL4W6ZG.js → JDCZUOU6.js} +0 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import"./QPIMTXPL.js";var e=`# Your Role\r
|
|
3
|
+
You are a tool selector for the ArcGIS Solutions assistant. Your job is to select the single most appropriate tool based strictly on the User Query and the chat history provided.\r
|
|
4
|
+
\r
|
|
5
|
+
# Your Task\r
|
|
6
|
+
- Analyze the User Query and chat history\r
|
|
7
|
+
- Select exactly ONE tool\r
|
|
8
|
+
- Return a confidence score (0.00\u20131.00) and a brief rationale (\u2264140 characters)\r
|
|
9
|
+
- Use chat history to resolve intent, but prioritize the latest User Query if there is conflict\r
|
|
10
|
+
\r
|
|
11
|
+
# Design Context\r
|
|
12
|
+
An active solution design may or may not be available.\r
|
|
13
|
+
- \`activeSolutionDesign\`: {activeSolutionDesign}\r
|
|
14
|
+
\r
|
|
15
|
+
If \`activeSolutionDesign\` is true, the user may refer to the solution implicitly (e.g., \u201Cthis solution\u201D, \u201Cthe design\u201D, \u201Cit\u201D) or request changes without restating build intent.\r
|
|
16
|
+
\r
|
|
17
|
+
# Scope Context\r
|
|
18
|
+
ArcGIS Solutions are a set of pre-configured applications and tools designed to address specific industry needs and workflows within the ArcGIS platform. They provide users with ready-to-use capabilities that can help streamline processes, improve decision-making, and enhance productivity. ArcGIS Solutions support the following industries:\r
|
|
19
|
+
- Architecture, Engineering, and Construction (AEC)\r
|
|
20
|
+
- Airports, Ports, and Rails\r
|
|
21
|
+
- Business\r
|
|
22
|
+
- Conservation\r
|
|
23
|
+
- Defense\r
|
|
24
|
+
- Facilities\r
|
|
25
|
+
- Health and Human Services\r
|
|
26
|
+
- Pipeline\r
|
|
27
|
+
- Public Safety\r
|
|
28
|
+
- Renewables\r
|
|
29
|
+
- State and Local Government\r
|
|
30
|
+
- Telecommunications\r
|
|
31
|
+
- Utilities\r
|
|
32
|
+
\r
|
|
33
|
+
# Rules\r
|
|
34
|
+
You must follow all rules below at all times. If a request conflicts with these rules, prioritize the rules in this order:\r
|
|
35
|
+
1) Builder Exclusions Override\r
|
|
36
|
+
2) Active Design\r
|
|
37
|
+
3) Context-Aware Builder\r
|
|
38
|
+
4) General ArcGIS Help\r
|
|
39
|
+
5) Uncertainty\r
|
|
40
|
+
\r
|
|
41
|
+
## Builder Exclusion Override\r
|
|
42
|
+
The following are unsupported capabilities of the \`builder\` tool. If the request matches any of the following criteria, you MUST select \`other\`, even if the user explicitly says they want to build a solution:\r
|
|
43
|
+
1) References to ArcGIS products, services or capabilities:\r
|
|
44
|
+
- Request references an ArcGIS product, app, or capability.\r
|
|
45
|
+
- Request references the Utility Network, Parcel Fabric, Branch Versioned, or other advanced service types\r
|
|
46
|
+
2) Build/derive from an existing solution or schema:\r
|
|
47
|
+
- Reuqest to build a solution from an existing solution or schema from an existing solution\r
|
|
48
|
+
- Request to clone/copy/import/convert/recreate from an existing schema/geodatabase/feature service\r
|
|
49
|
+
3) External resources or URLs as the source of truth:\r
|
|
50
|
+
- Request includes a URL/file/reference and to use as a source for the solution\r
|
|
51
|
+
- Builder cannot fetch or ingest external resources\r
|
|
52
|
+
\r
|
|
53
|
+
If you select \`other\`, your rationale MUST explicitly state:\r
|
|
54
|
+
- Which exclusion was triggered, and\r
|
|
55
|
+
- That \`builder\` could not be selected because the request includes an unsupported capability.\r
|
|
56
|
+
\r
|
|
57
|
+
## Context-Aware Builder\r
|
|
58
|
+
If prior chat has established intent to build a solution, ANY subsequent user message that describes a workflow, use case, or requirements MUST be treated as input to the solution being built and MUST select \`builder\`.\r
|
|
59
|
+
\r
|
|
60
|
+
## Active Design\r
|
|
61
|
+
If \`activeSolutionDesign\` is true and the user requests changes, updates, refinements, or adjustments to a solution or its components\u2014even without explicitly stating build intent\u2014you MUST select \`builder\`.\r
|
|
62
|
+
\r
|
|
63
|
+
Examples include:\r
|
|
64
|
+
- \u201CAdd a status field\u201D\r
|
|
65
|
+
- \u201CRename the inspections layer\u201D\r
|
|
66
|
+
- \u201CUpdate the domain values\u201D\r
|
|
67
|
+
- \u201CChange the title\u201D\r
|
|
68
|
+
\r
|
|
69
|
+
## General ArcGIS Help\r
|
|
70
|
+
If the user asks to define, explain, use, configure, or understand an ArcGIS product or service you MUST select \`other\` unless the query explicitly mentions ArcGIS Solutions or a specific solution.\r
|
|
71
|
+
\r
|
|
72
|
+
## Uncertainty\r
|
|
73
|
+
If you are not confident that a request clearly matches a specific tool, you MUST return \`other\`.\r
|
|
74
|
+
\r
|
|
75
|
+
# Available Tools\r
|
|
76
|
+
Return exactly one of the following tool names:\r
|
|
77
|
+
- explorer\r
|
|
78
|
+
- builder\r
|
|
79
|
+
- other\r
|
|
80
|
+
\r
|
|
81
|
+
## builder\r
|
|
82
|
+
Select \`builder\` when the user explicitly intends to build, create, design, or update a custom solution.\r
|
|
83
|
+
\r
|
|
84
|
+
Use this tool when the user:\r
|
|
85
|
+
- Asks how to build a solution or what kinds of solutions they can build\r
|
|
86
|
+
- Asks to create, build, or design a solution\r
|
|
87
|
+
- Asks to update, modify, or refine an existing solution design:\r
|
|
88
|
+
- Updating solution metadata (title, description, tags)\r
|
|
89
|
+
- Modifying existing layers, fields, or attributes\r
|
|
90
|
+
- Adding or removing layers or fields\r
|
|
91
|
+
\r
|
|
92
|
+
## explorer\r
|
|
93
|
+
Select \`explorer\` when the user is discovering, understanding, or evaluating existing ArcGIS Solutions using official documentation.\r
|
|
94
|
+
\r
|
|
95
|
+
Use this tool when the user:\r
|
|
96
|
+
- Asks what solutions exist for a workflow, role, or domain\r
|
|
97
|
+
- Describes a real-world workflow commonly addressed by ArcGIS Solutions (even without mentioning ArcGIS)\r
|
|
98
|
+
- Asks general questions about ArcGIS Solutions (what they are, how they work, what\u2019s included)\r
|
|
99
|
+
- Asks how to deploy a solution (e.g., \u201CHow do I deploy a solution?\u201D)\r
|
|
100
|
+
- Asks for steps, guidance, or explanations about deployment\r
|
|
101
|
+
- Asks about a specific solution\u2019s details or configuration (how to configure/use the solution)\r
|
|
102
|
+
- Asks about solution implementation guidance\r
|
|
103
|
+
\r
|
|
104
|
+
## other\r
|
|
105
|
+
Select \`other\` when:\r
|
|
106
|
+
- The request does not match any available tool or you are uncertain between tools\r
|
|
107
|
+
- The topic is unrelated to ArcGIS Solutions or clearly outside supported workflows/domains\r
|
|
108
|
+
- The request is about an ArcGIS product or service and does not mention ArcGIS Solutions or a specific solution.\r
|
|
109
|
+
- The request is about general GIS or unrelated software without reference to ArcGIS Solutions\r
|
|
110
|
+
- The request is instucting the assistant to deploy a solution\r
|
|
111
|
+
- The request is a meta question about the assistant itself (Who are you?, What do you do?, What can I do here?)\r
|
|
112
|
+
- The request is ambiguous or cannot be confidently classified\r
|
|
113
|
+
- The request includes harmful, hateful, or otherwise inappropriate content for an organization to engage with\r
|
|
114
|
+
- The message is conversational and does not introduce a new task\r
|
|
115
|
+
\r
|
|
116
|
+
# User Query\r
|
|
117
|
+
{query}`;export{e as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import"./QPIMTXPL.js";function yt(n,o){(o==null||o>n.length)&&(o=n.length);for(var a=0,s=Array(o);a<o;a++)s[a]=n[a];return s}function nn(n){if(Array.isArray(n))return n}function on(n,o){var a=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(a!=null){var s,f,p,b,te=[],I=!0,ne=!1;try{if(p=(a=a.call(n)).next,o!==0)for(;!(I=(s=p.call(a)).done)&&(te.push(s.value),te.length!==o);I=!0);}catch(Le){ne=!0,f=Le}finally{try{if(!I&&a.return!=null&&(b=a.return(),Object(b)!==b))return}finally{if(ne)throw f}}return te}}function rn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function an(n,o){return nn(n)||on(n,o)||sn(n,o)||rn()}function sn(n,o){if(n){if(typeof n=="string")return yt(n,o);var a={}.toString.call(n).slice(8,-1);return a==="Object"&&n.constructor&&(a=n.constructor.name),a==="Map"||a==="Set"?Array.from(n):a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?yt(n,o):void 0}}var kt=Object.entries,bt=Object.setPrototypeOf,ln=Object.isFrozen,cn=Object.getPrototypeOf,fn=Object.getOwnPropertyDescriptor,D=Object.freeze,C=Object.seal,ee=Object.create,Ft=typeof Reflect<"u"&&Reflect,Ke=Ft.apply,Ze=Ft.construct;D||(D=function(o){return o});C||(C=function(o){return o});Ke||(Ke=function(o,a){for(var s=arguments.length,f=new Array(s>2?s-2:0),p=2;p<s;p++)f[p-2]=arguments[p];return o.apply(a,f)});Ze||(Ze=function(o){for(var a=arguments.length,s=new Array(a>1?a-1:0),f=1;f<a;f++)s[f-1]=arguments[f];return new o(...s)});var Z=A(Array.prototype.forEach),un=A(Array.prototype.lastIndexOf),Rt=A(Array.prototype.pop),J=A(Array.prototype.push),mn=A(Array.prototype.splice),N=Array.isArray,ue=A(String.prototype.toLowerCase),Ye=A(String.prototype.toString),Ot=A(String.prototype.match),Q=A(String.prototype.replace),Nt=A(String.prototype.indexOf),pn=A(String.prototype.trim),dn=A(Number.prototype.toString),Tn=A(Boolean.prototype.toString),Dt=typeof BigInt>"u"?null:A(BigInt.prototype.toString),It=typeof Symbol>"u"?null:A(Symbol.prototype.toString),d=A(Object.prototype.hasOwnProperty),ce=A(Object.prototype.toString),y=A(RegExp.prototype.test),fe=gn(TypeError);function A(n){return function(o){o instanceof RegExp&&(o.lastIndex=0);for(var a=arguments.length,s=new Array(a>1?a-1:0),f=1;f<a;f++)s[f-1]=arguments[f];return Ke(n,o,s)}}function gn(n){return function(){for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];return Ze(n,a)}}function l(n,o){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ue;if(bt&&bt(n,null),!N(o))return n;let s=o.length;for(;s--;){let f=o[s];if(typeof f=="string"){let p=a(f);p!==f&&(ln(o)||(o[s]=p),f=p)}n[f]=!0}return n}function _n(n){for(let o=0;o<n.length;o++)d(n,o)||(n[o]=null);return n}function R(n){let o=ee(null);for(let s of kt(n)){var a=an(s,2);let f=a[0],p=a[1];d(n,f)&&(N(p)?o[f]=_n(p):p&&typeof p=="object"&&p.constructor===Object?o[f]=R(p):o[f]=p)}return o}function hn(n){switch(typeof n){case"string":return n;case"number":return dn(n);case"boolean":return Tn(n);case"bigint":return Dt?Dt(n):"0";case"symbol":return It?It(n):"Symbol()";case"undefined":return ce(n);case"function":case"object":{if(n===null)return ce(n);let o=n,a=U(o,"toString");if(typeof a=="function"){let s=a(o);return typeof s=="string"?s:ce(s)}return ce(n)}default:return ce(n)}}function U(n,o){for(;n!==null;){let s=fn(n,o);if(s){if(s.get)return A(s.get);if(typeof s.value=="function")return A(s.value)}n=cn(n)}function a(){return null}return a}function An(n){try{return y(n,""),!0}catch{return!1}}var Lt=D(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),$e=D(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Xe=D(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),En=D(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Ve=D(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Sn=D(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ct=D(["#text"]),wt=D(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),qe=D(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Mt=D(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ie=D(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),yn=C(/{{[\w\W]*|^[\w\W]*}}/g),bn=C(/<%[\w\W]*|^[\w\W]*%>/g),Rn=C(/\${[\w\W]*/g),On=C(/^data-[\-\w.\u00B7-\uFFFF]+$/),Nn=C(/^aria-[\-\w]+$/),xt=C(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Dn=C(/^(?:\w+script|data):/i),In=C(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ln=C(/^html$/i),Cn=C(/^[a-z][.\w]*(-[.\w]+)+$/i),v={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},wn=function(){return typeof window>"u"?null:window},Mn=function(o,a){if(typeof o!="object"||typeof o.createPolicy!="function")return null;let s=null,f="data-tt-policy-suffix";a&&a.hasAttribute(f)&&(s=a.getAttribute(f));let p="dompurify"+(s?"#"+s:"");try{return o.createPolicy(p,{createHTML(b){return b},createScriptURL(b){return b}})}catch{return console.warn("TrustedTypes policy "+p+" could not be created."),null}},Pt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function vt(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:wn(),o=i=>vt(i);if(o.version="3.4.7",o.removed=[],!n||!n.document||n.document.nodeType!==v.document||!n.Element)return o.isSupported=!1,o;let a=n.document,s=a,f=s.currentScript;n.DocumentFragment;let p=n.HTMLTemplateElement,b=n.Node,te=n.Element,I=n.NodeFilter,ne=n.NamedNodeMap;ne===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let Le=n.DOMParser,me=n.trustedTypes,W=te.prototype,Ut=U(W,"cloneNode"),Ht=U(W,"remove"),zt=U(W,"nextSibling"),pe=U(W,"childNodes"),de=U(W,"parentNode"),Te=U(W,"shadowRoot"),Gt=U(W,"attributes"),w=b&&b.prototype?U(b.prototype,"nodeType"):null,Y=b&&b.prototype?U(b.prototype,"nodeName"):null;if(typeof p=="function"){let i=a.createElement("template");i.content&&i.content.ownerDocument&&(a=i.content.ownerDocument)}let O,oe="",ge=a,Ce=ge.implementation,Je=ge.createNodeIterator,Wt=ge.createDocumentFragment,Bt=ge.getElementsByTagName,jt=s.importNode,E=Pt();o.isSupported=typeof kt=="function"&&typeof de=="function"&&Ce&&Ce.createHTMLDocument!==void 0;let _e=yn,he=bn,Ae=Rn,Yt=On,$t=Nn,Xt=Dn,Qe=In,Vt=Cn,et=xt,T=null,we=l({},[...Lt,...$e,...Xe,...Ve,...Ct]),h=null,Me=l({},[...wt,...qe,...Mt,...Ie]),g=Object.seal(ee(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),re=null,Ee=null,z=Object.seal(ee(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),tt=!0,xe=!0,nt=!1,ot=!0,G=!1,ie=!0,B=!1,Pe=!1,ke=!1,$=!1,Se=!1,ye=!1,rt=!0,it=!1,at="user-content-",Fe=!0,ae=!1,X={},P=null,ve=l({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),st=null,lt=l({},["audio","video","img","source","image","track"]),Ue=null,ct=l({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),be="http://www.w3.org/1998/Math/MathML",Re="http://www.w3.org/2000/svg",k="http://www.w3.org/1999/xhtml",V=k,He=!1,ze=null,qt=l({},[be,Re,k],Ye),Ge=l({},["mi","mo","mn","ms","mtext"]),We=l({},["annotation-xml"]),Kt=l({},["title","style","font","a","script"]),se=null,Zt=["application/xhtml+xml","text/html"],Jt="text/html",_=null,q=null,Qt=a.createElement("form"),ft=function(e){return e instanceof RegExp||e instanceof Function},Be=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(q&&q===e)return;(!e||typeof e!="object")&&(e={}),e=R(e),se=Zt.indexOf(e.PARSER_MEDIA_TYPE)===-1?Jt:e.PARSER_MEDIA_TYPE,_=se==="application/xhtml+xml"?Ye:ue,T=d(e,"ALLOWED_TAGS")&&N(e.ALLOWED_TAGS)?l({},e.ALLOWED_TAGS,_):we,h=d(e,"ALLOWED_ATTR")&&N(e.ALLOWED_ATTR)?l({},e.ALLOWED_ATTR,_):Me,ze=d(e,"ALLOWED_NAMESPACES")&&N(e.ALLOWED_NAMESPACES)?l({},e.ALLOWED_NAMESPACES,Ye):qt,Ue=d(e,"ADD_URI_SAFE_ATTR")&&N(e.ADD_URI_SAFE_ATTR)?l(R(ct),e.ADD_URI_SAFE_ATTR,_):ct,st=d(e,"ADD_DATA_URI_TAGS")&&N(e.ADD_DATA_URI_TAGS)?l(R(lt),e.ADD_DATA_URI_TAGS,_):lt,P=d(e,"FORBID_CONTENTS")&&N(e.FORBID_CONTENTS)?l({},e.FORBID_CONTENTS,_):ve,re=d(e,"FORBID_TAGS")&&N(e.FORBID_TAGS)?l({},e.FORBID_TAGS,_):R({}),Ee=d(e,"FORBID_ATTR")&&N(e.FORBID_ATTR)?l({},e.FORBID_ATTR,_):R({}),X=d(e,"USE_PROFILES")?e.USE_PROFILES&&typeof e.USE_PROFILES=="object"?R(e.USE_PROFILES):e.USE_PROFILES:!1,tt=e.ALLOW_ARIA_ATTR!==!1,xe=e.ALLOW_DATA_ATTR!==!1,nt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ot=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,G=e.SAFE_FOR_TEMPLATES||!1,ie=e.SAFE_FOR_XML!==!1,B=e.WHOLE_DOCUMENT||!1,$=e.RETURN_DOM||!1,Se=e.RETURN_DOM_FRAGMENT||!1,ye=e.RETURN_TRUSTED_TYPE||!1,ke=e.FORCE_BODY||!1,rt=e.SANITIZE_DOM!==!1,it=e.SANITIZE_NAMED_PROPS||!1,Fe=e.KEEP_CONTENT!==!1,ae=e.IN_PLACE||!1,et=An(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:xt,V=typeof e.NAMESPACE=="string"?e.NAMESPACE:k,Ge=d(e,"MATHML_TEXT_INTEGRATION_POINTS")&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS=="object"?R(e.MATHML_TEXT_INTEGRATION_POINTS):l({},["mi","mo","mn","ms","mtext"]),We=d(e,"HTML_INTEGRATION_POINTS")&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS=="object"?R(e.HTML_INTEGRATION_POINTS):l({},["annotation-xml"]);let t=d(e,"CUSTOM_ELEMENT_HANDLING")&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING=="object"?R(e.CUSTOM_ELEMENT_HANDLING):ee(null);if(g=ee(null),d(t,"tagNameCheck")&&ft(t.tagNameCheck)&&(g.tagNameCheck=t.tagNameCheck),d(t,"attributeNameCheck")&&ft(t.attributeNameCheck)&&(g.attributeNameCheck=t.attributeNameCheck),d(t,"allowCustomizedBuiltInElements")&&typeof t.allowCustomizedBuiltInElements=="boolean"&&(g.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),G&&(xe=!1),Se&&($=!0),X&&(T=l({},Ct),h=ee(null),X.html===!0&&(l(T,Lt),l(h,wt)),X.svg===!0&&(l(T,$e),l(h,qe),l(h,Ie)),X.svgFilters===!0&&(l(T,Xe),l(h,qe),l(h,Ie)),X.mathMl===!0&&(l(T,Ve),l(h,Mt),l(h,Ie))),z.tagCheck=null,z.attributeCheck=null,d(e,"ADD_TAGS")&&(typeof e.ADD_TAGS=="function"?z.tagCheck=e.ADD_TAGS:N(e.ADD_TAGS)&&(T===we&&(T=R(T)),l(T,e.ADD_TAGS,_))),d(e,"ADD_ATTR")&&(typeof e.ADD_ATTR=="function"?z.attributeCheck=e.ADD_ATTR:N(e.ADD_ATTR)&&(h===Me&&(h=R(h)),l(h,e.ADD_ATTR,_))),d(e,"ADD_URI_SAFE_ATTR")&&N(e.ADD_URI_SAFE_ATTR)&&l(Ue,e.ADD_URI_SAFE_ATTR,_),d(e,"FORBID_CONTENTS")&&N(e.FORBID_CONTENTS)&&(P===ve&&(P=R(P)),l(P,e.FORBID_CONTENTS,_)),d(e,"ADD_FORBID_CONTENTS")&&N(e.ADD_FORBID_CONTENTS)&&(P===ve&&(P=R(P)),l(P,e.ADD_FORBID_CONTENTS,_)),Fe&&(T["#text"]=!0),B&&l(T,["html","head","body"]),T.table&&(l(T,["tbody"]),delete re.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!="function")throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw fe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');O=e.TRUSTED_TYPES_POLICY,oe=O.createHTML("")}else O===void 0&&(O=Mn(me,f)),O!==null&&typeof oe=="string"&&(oe=O.createHTML(""));(E.uponSanitizeElement.length>0||E.uponSanitizeAttribute.length>0)&&T===we&&(T=R(T)),E.uponSanitizeAttribute.length>0&&h===Me&&(h=R(h)),D&&D(e),q=e},ut=l({},[...$e,...Xe,...En]),mt=l({},[...Ve,...Sn]),en=function(e){let t=de(e);(!t||!t.tagName)&&(t={namespaceURI:V,tagName:"template"});let r=ue(e.tagName),u=ue(t.tagName);return ze[e.namespaceURI]?e.namespaceURI===Re?t.namespaceURI===k?r==="svg":t.namespaceURI===be?r==="svg"&&(u==="annotation-xml"||Ge[u]):!!ut[r]:e.namespaceURI===be?t.namespaceURI===k?r==="math":t.namespaceURI===Re?r==="math"&&We[u]:!!mt[r]:e.namespaceURI===k?t.namespaceURI===Re&&!We[u]||t.namespaceURI===be&&!Ge[u]?!1:!mt[r]&&(Kt[r]||!ut[r]):!!(se==="application/xhtml+xml"&&ze[e.namespaceURI]):!1},M=function(e){J(o.removed,{element:e});try{de(e).removeChild(e)}catch{Ht(e)}},j=function(e,t){try{J(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch{J(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),e==="is")if($||Se)try{M(t)}catch{}else try{t.setAttribute(e,"")}catch{}},pt=function(e){let t=null,r=null;if(ke)e="<remove></remove>"+e;else{let m=Ot(e,/^[\r\n\t ]+/);r=m&&m[0]}se==="application/xhtml+xml"&&V===k&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");let u=O?O.createHTML(e):e;if(V===k)try{t=new Le().parseFromString(u,se)}catch{}if(!t||!t.documentElement){t=Ce.createDocument(V,"template",null);try{t.documentElement.innerHTML=He?oe:u}catch{}}let c=t.body||t.documentElement;return e&&r&&c.insertBefore(a.createTextNode(r),c.childNodes[0]||null),V===k?Bt.call(t,B?"html":"body")[0]:B?t.documentElement:c},dt=function(e){return Je.call(e.ownerDocument||e,e,I.SHOW_ELEMENT|I.SHOW_COMMENT|I.SHOW_TEXT|I.SHOW_PROCESSING_INSTRUCTION|I.SHOW_CDATA_SECTION,null)},Tt=function(e){e.normalize();let t=Je.call(e.ownerDocument||e,e,I.SHOW_TEXT|I.SHOW_COMMENT|I.SHOW_CDATA_SECTION|I.SHOW_PROCESSING_INSTRUCTION,null),r=t.nextNode();for(;r;){let u=r.data;Z([_e,he,Ae],c=>{u=Q(u,c," ")}),r.data=u,r=t.nextNode()}},Oe=function(e){let t=Y?Y(e):null;return typeof t!="string"||_(t)!=="form"?!1:typeof e.nodeName!="string"||typeof e.textContent!="string"||typeof e.removeChild!="function"||e.attributes!==Gt(e)||typeof e.removeAttribute!="function"||typeof e.setAttribute!="function"||typeof e.namespaceURI!="string"||typeof e.insertBefore!="function"||typeof e.hasChildNodes!="function"||e.nodeType!==w(e)||e.childNodes!==pe(e)},le=function(e){if(!w||typeof e!="object"||e===null)return!1;try{return w(e)===v.documentFragment}catch{return!1}},Ne=function(e){if(!w||typeof e!="object"||e===null)return!1;try{return typeof w(e)=="number"}catch{return!1}};function H(i,e,t){Z(i,r=>{r.call(o,e,t,q)})}let gt=function(e){let t=null;if(H(E.beforeSanitizeElements,e,null),Oe(e))return M(e),!0;let r=_(e.nodeName);if(H(E.uponSanitizeElement,e,{tagName:r,allowedTags:T}),ie&&e.hasChildNodes()&&!Ne(e.firstElementChild)&&y(/<[/\w!]/g,e.innerHTML)&&y(/<[/\w!]/g,e.textContent)||ie&&e.namespaceURI===k&&r==="style"&&Ne(e.firstElementChild)||e.nodeType===v.progressingInstruction||ie&&e.nodeType===v.comment&&y(/<[/\w]/g,e.data))return M(e),!0;if(re[r]||!(z.tagCheck instanceof Function&&z.tagCheck(r))&&!T[r]){if(!re[r]&&ht(r)&&(g.tagNameCheck instanceof RegExp&&y(g.tagNameCheck,r)||g.tagNameCheck instanceof Function&&g.tagNameCheck(r)))return!1;if(Fe&&!P[r]){let c=de(e),m=pe(e);if(m&&c){let L=m.length;for(let F=L-1;F>=0;--F){let x=Ut(m[F],!0);c.insertBefore(x,zt(e))}}}return M(e),!0}return(w?w(e):e.nodeType)===v.element&&!en(e)||(r==="noscript"||r==="noembed"||r==="noframes")&&y(/<\/no(script|embed|frames)/i,e.innerHTML)?(M(e),!0):(G&&e.nodeType===v.text&&(t=e.textContent,Z([_e,he,Ae],c=>{t=Q(t,c," ")}),e.textContent!==t&&(J(o.removed,{element:e.cloneNode()}),e.textContent=t)),H(E.afterSanitizeElements,e,null),!1)},_t=function(e,t,r){if(Ee[t]||rt&&(t==="id"||t==="name")&&(r in a||r in Qt))return!1;let u=h[t]||z.attributeCheck instanceof Function&&z.attributeCheck(t,e);if(!(xe&&!Ee[t]&&y(Yt,t))){if(!(tt&&y($t,t))){if(!u||Ee[t]){if(!(ht(e)&&(g.tagNameCheck instanceof RegExp&&y(g.tagNameCheck,e)||g.tagNameCheck instanceof Function&&g.tagNameCheck(e))&&(g.attributeNameCheck instanceof RegExp&&y(g.attributeNameCheck,t)||g.attributeNameCheck instanceof Function&&g.attributeNameCheck(t,e))||t==="is"&&g.allowCustomizedBuiltInElements&&(g.tagNameCheck instanceof RegExp&&y(g.tagNameCheck,r)||g.tagNameCheck instanceof Function&&g.tagNameCheck(r))))return!1}else if(!Ue[t]){if(!y(et,Q(r,Qe,""))){if(!((t==="src"||t==="xlink:href"||t==="href")&&e!=="script"&&Nt(r,"data:")===0&&st[e])){if(!(nt&&!y(Xt,Q(r,Qe,"")))){if(r)return!1}}}}}}return!0},tn=l({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),ht=function(e){return!tn[ue(e)]&&y(Vt,e)},At=function(e){H(E.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Oe(e))return;let r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:h,forceKeepAttr:void 0},u=t.length;for(;u--;){let c=t[u],m=c.name,L=c.namespaceURI,F=c.value,x=_(m),je=F,S=m==="value"?je:pn(je);if(r.attrName=x,r.attrValue=S,r.keepAttr=!0,r.forceKeepAttr=void 0,H(E.uponSanitizeAttribute,e,r),S=r.attrValue,it&&(x==="id"||x==="name")&&Nt(S,at)!==0&&(j(m,e),S=at+S),ie&&y(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,S)){j(m,e);continue}if(x==="attributename"&&Ot(S,"href")){j(m,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){j(m,e);continue}if(!ot&&y(/\/>/i,S)){j(m,e);continue}G&&Z([_e,he,Ae],St=>{S=Q(S,St," ")});let Et=_(e.nodeName);if(!_t(Et,x,S)){j(m,e);continue}if(O&&typeof me=="object"&&typeof me.getAttributeType=="function"&&!L)switch(me.getAttributeType(Et,x)){case"TrustedHTML":{S=O.createHTML(S);break}case"TrustedScriptURL":{S=O.createScriptURL(S);break}}if(S!==je)try{L?e.setAttributeNS(L,m,S):e.setAttribute(m,S),Oe(e)?M(e):Rt(o.removed)}catch{j(m,e)}}H(E.afterSanitizeAttributes,e,null)},De=function(e){let t=null,r=dt(e);for(H(E.beforeSanitizeShadowDOM,e,null);t=r.nextNode();)if(H(E.uponSanitizeShadowNode,t,null),gt(t),At(t),le(t.content)&&De(t.content),(w?w(t):t.nodeType)===v.element){let c=Te?Te(t):t.shadowRoot;le(c)&&(K(c),De(c))}H(E.afterSanitizeShadowDOM,e,null)},K=function(e){let t=w?w(e):e.nodeType;if(t===v.element){let c=Te?Te(e):e.shadowRoot;le(c)&&(K(c),De(c))}let r=pe?pe(e):e.childNodes;if(!r)return;let u=[];Z(r,c=>{J(u,c)});for(let c of u)K(c);if(t===v.element){let c=Y?Y(e):null;if(typeof c=="string"&&_(c)==="template"){let m=e.content;le(m)&&K(m)}}};return o.sanitize=function(i){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=null,r=null,u=null,c=null;if(He=!i,He&&(i="<!-->"),typeof i!="string"&&!Ne(i)&&(i=hn(i),typeof i!="string"))throw fe("dirty is not a string, aborting");if(!o.isSupported)return i;if(Pe||Be(e),o.removed=[],typeof i=="string"&&(ae=!1),ae){let F=Y?Y(i):i.nodeName;if(typeof F=="string"){let x=_(F);if(!T[x]||re[x])throw fe("root node is forbidden and cannot be sanitized in-place")}if(Oe(i))throw fe("root node is clobbered and cannot be sanitized in-place");K(i)}else if(Ne(i))t=pt("<!---->"),r=t.ownerDocument.importNode(i,!0),r.nodeType===v.element&&r.nodeName==="BODY"||r.nodeName==="HTML"?t=r:t.appendChild(r),K(r);else{if(!$&&!G&&!B&&i.indexOf("<")===-1)return O&&ye?O.createHTML(i):i;if(t=pt(i),!t)return $?null:ye?oe:""}t&&ke&&M(t.firstChild);let m=dt(ae?i:t);for(;u=m.nextNode();)gt(u),At(u),le(u.content)&&De(u.content);if(ae)return G&&Tt(i),i;if($){if(G&&Tt(t),Se)for(c=Wt.call(t.ownerDocument);t.firstChild;)c.appendChild(t.firstChild);else c=t;return(h.shadowroot||h.shadowrootmode)&&(c=jt.call(s,c,!0)),c}let L=B?t.outerHTML:t.innerHTML;return B&&T["!doctype"]&&t.ownerDocument&&t.ownerDocument.doctype&&t.ownerDocument.doctype.name&&y(Ln,t.ownerDocument.doctype.name)&&(L="<!DOCTYPE "+t.ownerDocument.doctype.name+`>
|
|
4
|
+
`+L),G&&Z([_e,he,Ae],F=>{L=Q(L,F," ")}),O&&ye?O.createHTML(L):L},o.setConfig=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Be(i),Pe=!0},o.clearConfig=function(){q=null,Pe=!1},o.isValidAttribute=function(i,e,t){q||Be({});let r=_(i),u=_(e);return _t(r,u,t)},o.addHook=function(i,e){typeof e=="function"&&J(E[i],e)},o.removeHook=function(i,e){if(e!==void 0){let t=un(E[i],e);return t===-1?void 0:mn(E[i],t,1)[0]}return Rt(E[i])},o.removeHooks=function(i){E[i]=[]},o.removeAllHooks=function(){E=Pt()},o}var xn=vt();export{xn as default};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import"./QPIMTXPL.js";var e=`# Your Role\r
|
|
3
|
+
You are the ArcGIS Solutions assistant responding to a user request that is outside the supported capabilities for solution exploration or solution building, or is a meta question about the assistant itself.\r
|
|
4
|
+
\r
|
|
5
|
+
You must follow all rules below at all times. If a request conflicts with these rules, prioritize the rules.\r
|
|
6
|
+
\r
|
|
7
|
+
# Your Task\r
|
|
8
|
+
- Analyze the User Query and chat history\r
|
|
9
|
+
- If the user is expressing gratitude or closing the interaction:\r
|
|
10
|
+
- Respond politely and naturally.\r
|
|
11
|
+
- Do NOT reference routing, limitations, or rationale.\r
|
|
12
|
+
- Offer a simple, friendly invitation to continue if needed.\r
|
|
13
|
+
\r
|
|
14
|
+
- If the user asked about the assistant itself:\r
|
|
15
|
+
- Respond briefly and at a high level\r
|
|
16
|
+
- Do NOT reference routing, limitations, or rationale.\r
|
|
17
|
+
- Describe capabilities using the Supported Capabilities section\r
|
|
18
|
+
\r
|
|
19
|
+
- For all other requests:\r
|
|
20
|
+
- Use the provided Routing Rationale to briefly acknowledge the user\u2019s request and explain why you cannot help with it, without referencing scope, internals, or implementation details.\r
|
|
21
|
+
- State what you CAN help with using ONLY the predefined capability statements below. Do NOT customize, contextualize, or adapt them to the user\u2019s request.\r
|
|
22
|
+
- Treat general knowledge, definitional, or explanatory questions as unsupported, even if the answer is commonly known.\r
|
|
23
|
+
\r
|
|
24
|
+
You are NOT here to solve, interpret, summarize, define, or partially address the original request, even if the information is commonly known or available from general knowledge.\r
|
|
25
|
+
\r
|
|
26
|
+
# Routing Rational\r
|
|
27
|
+
{rationale}\r
|
|
28
|
+
\r
|
|
29
|
+
# Supported Capabilities\r
|
|
30
|
+
When describing what you can help with, use ONLY these options.\r
|
|
31
|
+
\r
|
|
32
|
+
- Explore existing solutions and understand what they do.\r
|
|
33
|
+
- Answer questions using ArcGIS Solutions documentation.\r
|
|
34
|
+
- Help build a solution for a specific workflow.\r
|
|
35
|
+
\r
|
|
36
|
+
# Response Rules\r
|
|
37
|
+
- Do NOT attempt to answer, solve, or partially address the original request\r
|
|
38
|
+
- Do NOT reinterpret, generalize, or reframe the original request into a different problem\r
|
|
39
|
+
- Do NOT imply that supported capabilities can indirectly solve the original request\r
|
|
40
|
+
- Do NOT describe hypothetical workflows that sound related to the original request\r
|
|
41
|
+
- Do NOT suggest workarounds outside ArcGIS Solutions\r
|
|
42
|
+
- Do NOT ask follow-up questions about the original request\r
|
|
43
|
+
- Do NOT provide definitions, descriptions, examples, background information, or factual statements about the subject of the user\u2019s request.\r
|
|
44
|
+
- Do NOT use text formatting such as bold, italics, or underlining\r
|
|
45
|
+
- Keep the response concise (2\u20133 sentences is ideal)\r
|
|
46
|
+
- Use plain, professional, user-focused language\r
|
|
47
|
+
- If you are describing something a user explores, builds, designs, updates, or deploys, you MUST use the generic terms \u201Csolution\u201D or \u201Csolutions\u201D \u2014 NOT \u201CArcGIS Solutions" or "ArcGIS solution".\r
|
|
48
|
+
- When asked who you are, refer to yourself as the ArcGIS Solutions assistant.`;export{e as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import e from"./ZF5NIURZ.js";import d from"./SNK53NIO.js";import"./VVZAS55G.js";import"./3UKDJZ2D.js";import"./US5FON7D.js";import b from"./2C4DK6YC.js";import a from"./WV7QX3ED.js";import{a as F}from"./MGEDATQ7.js";import"./RMEDO4JC.js";import"./ISFTCFSJ.js";import"./TEHBW75B.js";import"./IHG7KTNC.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./YKB6256M.js";import"./N22MFQSQ.js";import"./N7BXCDA3.js";import"./ZX3UHK6P.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LP2JYX4X.js";import"./GF4QELNV.js";import"./AYSQIO6L.js";import"./YQHYMLC7.js";import"./DKD2EGQP.js";import"./5O53T3SW.js";import"./AJZDBHB6.js";import"./FES7B3SJ.js";import{b as L}from"./2I5LGZNX.js";import{E as u,F as c,G as w,I as x,J as I,h as m,i as l,l as _,q as p,t as y}from"./FFF5HUPM.js";import"./QPIMTXPL.js";export default $arcgis.t(([E,S,$,,{c:d,d:g,g:b},,v])=>{var T=m`@layer{:host{display:block}.width-full{width:100%}.pagination{display:flex;justify-content:center}.notice-msg{padding:10px;width:calc(100% - 20px)}.feature-list-popup-title{font-weight:500}.feature-list-popup-title-small{font-size:small}.feature-list-popup-title-small-ellipsis{font-size:small;white-space:nowrap!important;text-overflow:ellipsis;overflow:hidden}.popup-title{padding:0 5px;word-break:break-word}.profile-img{margin:0 5px;min-width:32px}.like-container{display:flex;align-items:center;gap:5px;color:gray!important;font-style:italic}.feature-symbol{padding:0 3px;min-width:30px;display:flex;justify-content:center}.search{padding:10px;background-color:var(--calcite-color-surface-2)!important;border-block-end:1px solid var(--calcite-color-border-3)}}`,f=class extends w{constructor(){super(),this.selectedLayerId="",this.noFeaturesFoundMsg="",this.pageSize=100,this.highlightOnMap=!1,this.highlightOnHover=!1,this.textSize="large",this.showInitialLoading=!0,this.showErrorWhenNoFeatures=!1,this.showUserImageInList=!1,this.showFeatureSymbol=!1,this.applyLayerViewFilter=!1,this.showFullTitle=!0,this.filterByMapExtent=!1,this._featureItems=[],this._featuresCount=0,this._isLoading=!1,this._searchPlaceHolder="",this._fullTextSearchInfo=[],this._translations=F({name:"feature-list",blocking:!0}),this._pagination=u(),this._calciteList=u(),this._validFieldTypes=["small-integer","integer","big-integer","single","long"],this._abbreviatedLikeCount="",this._likeFieldAvailable=!1,this._searchExpression="",this.featureClick=p(),this.featureSelect=p(),this.listenOn(window,"selectedLanguageUpdated",this.selectedLanguageUpdated)}static{this.properties={selectedLayerId:1,mapView:0,noFeaturesFoundMsg:1,pageSize:9,highlightOnMap:5,highlightOnHover:5,sortingInfo:0,whereClause:1,textSize:1,showInitialLoading:5,showErrorWhenNoFeatures:5,showUserImageInList:5,showFeatureSymbol:5,applyLayerViewFilter:5,reportingOptions:0,showFullTitle:5,filterByMapExtent:5,_featureItems:16,_featuresCount:16,_isLoading:16,_searchPlaceHolder:16,_fullTextSearchInfo:16,_translations:16}}static{this.styles=T}static{this.shadowRootOptions=y}willUpdate(e){e.has("selectedLayerId")&&this.selectedLayerWatchHandler(),e.has("sortingInfo")&&this.sortingInfoWatchHandler(),e.has("whereClause")&&this.whereClauseHandler(),e.has("filterByMapExtent")&&this.hasUpdated&&this.filterByMapExtentWatchHandler(this.filterByMapExtent)}async selectedLayerWatchHandler(){this._selectedLayer=this.mapView&&await g(this.mapView,this.selectedLayerId),await this.initializeFeatureItems()}async sortingInfoWatchHandler(){await this.initializeFeatureItems()}async whereClauseHandler(){await this.initializeFeatureItems()}async filterByMapExtentWatchHandler(e){e?this.initializeMapExtentFilter():this._filterByMapExtentHandle&&this._filterByMapExtentHandle.remove()}async refresh(e){if(e&&this._pagination.value){let t={target:{startItem:this._pagination.value.startItem}};await this.pageChanged(t)}else this._searchExpression?await this._searchFullText():await this.initializeFeatureItems()}async selectedLanguageUpdated(e){if(this._pagination.value){let t={target:{startItem:this._pagination.value.startItem}};await this.pageChanged(t)}else await this.initializeFeatureItems()}async load(){this._isLoading=!!this.showInitialLoading,this._popupUtils=new v,this.mapView&&this.selectedLayerId&&(this._selectedLayer=await g(this.mapView,this.selectedLayerId),this._getFullTextSearchInfo()),this.filterByMapExtent&&this.initializeMapExtentFilter()}async loaded(){await this.initializeFeatureItems()}render(){let e=this._canShowFullTextSearch();return l`<calcite-panel>${e&&l`<calcite-input class=search clearable icon=search @calciteInputChange=${this._searchTextChanged} .placeholder=${this._searchPlaceHolder} title type=search></calcite-input>`||""}${this._isLoading&&l`<calcite-loader label scale=m></calcite-loader>`||""}${this.showErrorWhenNoFeatures&&this._featureItems.length===0&&!this._isLoading&&l`<calcite-notice class="notice-msg" icon=feature-details kind=info open><div slot=message>${this.filterByMapExtent?this._translations.featureErrorMsgInCurrentMapView:this.noFeaturesFoundMsg?this.noFeaturesFoundMsg:this._translations.featureErrorMsg}</div></calcite-notice>`||""}<calcite-list class=${x(this.textSize==="small"&&!this.showFullTitle?"overflow-hidden":"")} label selection-appearance=border selection-mode=none ${c(this._calciteList)}>${!this._isLoading&&this._featureItems.length>0&&l`<div>${this.filterByMapExtent&&this.getExtentNotice()||""}${this._featureItems}</div>`||""}</calcite-list>${this.pageSize&&this._featuresCount>this.pageSize&&l`<div class="width-full" slot=footer><calcite-pagination class="pagination" @calcitePaginationChange=${this.pageChanged} .pageSize=${this.pageSize} start-item=1 .totalItems=${this._featuresCount} ${c(this._pagination)}></calcite-pagination></div>`||""}</calcite-panel>`}async getWhereCondition(){let e="1=1";if(this.whereClause&&(e=this.whereClause),this._selectedLayer?.definitionExpression&&(e=e+" AND "+this._selectedLayer.definitionExpression),this.applyLayerViewFilter){let t=this.mapView&&await d(this.mapView,this.selectedLayerId);t?.filter?.where&&(e=e+" AND "+t.filter.where)}return e}async initializeFeatureItems(){if(this._selectedLayer){this._pagination.value?.goTo("start"),this._isLoading=!!this.showInitialLoading,this._featureItems=await this.queryPage(0);let e={where:await this.getWhereCondition(),geometry:this.filterByMapExtent?this.mapView?.extent:null};this._featuresCount=await this._selectedLayer?.queryFeatureCount(e),this._isLoading=!1}}initializeMapExtentFilter(){this._filterByMapExtentHandle=$.when(()=>this.mapView?.stationary,()=>{this.initializeFeatureItems()},{initial:!0})}async pageChanged(e){this._isLoading=!0,this._highlightHandle&&(this._highlightHandle.remove(),this._highlightHandle=void 0);let t=e.target.startItem-1;this._featureItems=await this.queryPage(t),this._isLoading=!1}_canShowFullTextSearch(){return this._selectedLayer?.capabilities?.query?.supportsFullTextSearch&&this._selectedLayer.indexes.items.filter(e=>e.indexType=="FullText").length>0}_getFullTextSearchInfo(){if(this._fullTextSearchInfo=[],this._selectedLayer?.capabilities?.query?.supportsFullTextSearch){let e=this._selectedLayer.indexes?.filter(t=>t.indexType=="FullText");if(e?.length){let t=[];e.forEach(i=>{t.push(...i.fields.split(","))});let s=[];t.forEach(i=>{let a=this._selectedLayer?.getField(i.trim());s.push(a?.alias||"")}),this._searchPlaceHolder=this._translations.searchPlaceholder?this._translations.searchPlaceholder.replace("{{field_names}}",s.join(", ")):"",this._fullTextSearchInfo.push({onFields:["*"],searchTerm:"",searchType:"prefix"})}}}async _searchTextChanged(e){this._fullTextSearchInfo.forEach(t=>{t.searchTerm=e.target.value}),await this._searchFullText()}async _searchFullText(){this._searchExpression&&this._clearSearchDefinitionExpression();let e=[];if(this._fullTextSearchInfo&&this._fullTextSearchInfo[0].searchTerm){let t=this._selectedLayer?.createQuery();t&&(t.fullText=this._fullTextSearchInfo,e=await this._selectedLayer?.queryObjectIds(t),await this._updateSearchDefinitionExpression(e?.length?e:[-1]))}await this.initializeFeatureItems()}async _updateSearchDefinitionExpression(e){if(this._selectedLayer){let t=this._selectedLayer.definitionExpression;if(e?.length){let s=`objectId in(${e})`;this._selectedLayer.definitionExpression=this._searchExpression&&t&&t?.indexOf(this._searchExpression)>-1?t.replace(this._searchExpression,s):t?`${t} AND (${s})`:s,this._searchExpression=s}else this._clearSearchDefinitionExpression()}}_clearSearchDefinitionExpression(){if(this._selectedLayer){let e=this._selectedLayer?.definitionExpression;this._searchExpression&&e&&e?.indexOf(this._searchExpression)>-1&&(e?.indexOf(" AND ("+this._searchExpression)>-1?this._selectedLayer.definitionExpression=e.replace(` AND (${this._searchExpression})`,""):this._selectedLayer.definitionExpression=e.replace(this._searchExpression,""))}this._searchExpression=""}async featureClicked(e,t){if(this.featureClick.emit(),this.clearHighlights(),this.highlightOnMap){let s=Number(e.target.value),i=this.mapView&&await d(this.mapView,this.selectedLayerId);this._highlightHandle=i&&this.mapView?await b([s],i,this.mapView,!0):void 0}await this.emitSelectedFeature(t)}async emitSelectedFeature(e){let t=e.layer,s=t.createQuery();s.returnGeometry=!0;let i=Number(e.getObjectId());if(!Number.isNaN(i)&&s){s.objectIds=[i];let a=await t.queryFeatures(s);this.featureSelect.emit(a.features[0])}}async onFeatureHover(e){if(this.clearHighlights(),this.highlightOnHover){let t=Number(e.getObjectId()),s=this.mapView&&await d(this.mapView,this.selectedLayerId);s&&(this._highlightHandle=s.highlight([t],{name:"temporary"}))}}clearHighlights(){this._highlightHandle&&this._highlightHandle.remove()}async queryPage(e){let t=this._selectedLayer;if(t){let s=this.sortingInfo?.field?this.sortingInfo.field:t.objectIdField,i=this.sortingInfo?.order?this.sortingInfo.order:"desc",a=await this.getWhereCondition(),r={start:e,num:this.pageSize,outFields:["*"],returnGeometry:!0,where:a,outSpatialReference:this.mapView?.spatialReference.toJSON(),geometry:this.filterByMapExtent?this.mapView?.extent:null};s&&i&&(r.orderByFields=[s.toString()+" "+i]);let n=await t.queryFeatures(r);return await this.createFeatureItem(n)}else return}async createFeatureItem(e){let t=e?.features,s=this.reportingOptions&&this.reportingOptions[this.selectedLayerId]?.like,i=t.map(async a=>{let r=this.mapView?.map&&await this._popupUtils?.getPopupTitle(a,this.mapView.map)||"",n,h;return this.showUserImageInList&&this._selectedLayer?.editFieldsInfo?.creatorField&&(n=await this.getUserInformation(a)),this.showFeatureSymbol&&(h=await this.getFeatureSymbol(a)),s&&this.getAbbreviatedLikeCount(a),this.getFeatureItem(a,r,h,n)});return Promise.all(i)}getExtentNotice(){return l`<calcite-notice class="notice-msg" icon=extent-filter kind=brand open scale=s><div slot=message>${this._translations.extentFilterMsg}</div></calcite-notice>`}getAbbreviatedLikeCount(e){let t=this._selectedLayer;if(t){let s=this.reportingOptions&&this.reportingOptions[t.id].likeField;t.fields.forEach(i=>{if(this._validFieldTypes.indexOf(i.type)>-1&&i.name===s&&this.reportingOptions&&this.reportingOptions[t.id].like){this._likeFieldAvailable=!0;let a=e.attributes[s]||0;a>999&&this._translations.millions_value&&this._translations.thousands_value&&(a=a>999999?this._translations.millions_value.replace("{{millions_value}}",Math.floor(a/1e6).toString()):this._translations.thousands_value.replace("{{thousands_value}}",Math.floor(a/1e3).toString())),this._abbreviatedLikeCount=a}})}}getFeatureItem(e,t,s,i){if(this._selectedLayer?.id&&this._calciteList.value){let a=e.attributes[this._selectedLayer.objectIdField].toString();t=t??a;let r=Number(e.attributes[this.reportingOptions?.[this._selectedLayer.id].likeField||""]).toLocaleString(),n=this.textSize==="small"&&!this.showFullTitle?"feature-list-popup-title-small-ellipsis":this.textSize==="small"?"feature-list-popup-title-small":"feature-list-popup-title",h=this.showUserImageInList?115:65,C=this._calciteList.value.offsetWidth-h;return l`<calcite-list-item @mouseleave=${()=>{this.clearHighlights()}} @mouseover=${()=>{this.onFeatureHover(e)}} @calciteListItemSelect=${o=>{this.featureClicked(o,e)}} .value=${a}>${this.showUserImageInList&&l`<calcite-avatar class=profile-img .fullName=${i?.fullName} scale=m slot=content-start .thumbnail=${i?.userProfileUrl} .userId=${i?.id} .username=${i?.fullName?i.username:void 0}></calcite-avatar>`||""}${this.showFeatureSymbol&&s&&l`<div class=feature-symbol slot=content-start ${c(o=>o&&o.replaceChildren(s))}></div>`||""}<div class=${`popup-title ${n}`} slot=content-start style=${I({maxWidth:this.textSize==="large"?"none":`${C}px`})}>${t}</div>${this._likeFieldAvailable&&l`<div class=like-container id=${a.concat("like")??_} slot=content-end><span>${this._abbreviatedLikeCount}</span><calcite-icon aria-hidden=true icon=thumbs-up scale=s></calcite-icon><calcite-tooltip overlay-positioning=fixed placement=top .referenceElement=${a.concat("like")}>${r}</calcite-tooltip></div>`||""}<calcite-icon aria-hidden=true flip-rtl icon=chevron-right scale=s slot=content-end></calcite-icon></calcite-list-item>`}else return}async getUserInformation(e){let t=this._selectedLayer?.editFieldsInfo?.creatorField;if(t){e.attributes.hasOwnProperty(t.toLowerCase())?t=t.toLowerCase():e.attributes.hasOwnProperty(t.toUpperCase())&&(t=t.toUpperCase());let s=`${E.portalUrl}/sharing/rest/community/users/${e.attributes[t]}?f=json&returnUserLicensedItems=true`,i=this.mapView?.map?.portalItem.portal?.credential?.token;i&&(s+=`&token=${i}`);let a=await(await fetch(s)).json(),r=a?.username??e.attributes[t],n=`${E.portalUrl}/sharing/rest/community/users/${r}/info/blob.png`;return a?.access&&i&&(n+=`?token=${i}`),a.userProfileUrl=n,a}else return}async getFeatureSymbol(e){let t=document.createElement("div");return await S?.getDisplayedSymbol(e).then(async s=>{if(s&&await S?.renderPreviewHTML(s,{node:t}),t.children?.length){let i=t.children[0];if(i){let a=Number(i.getAttribute("height")),r=Number(i.getAttribute("width"));r>30&&(t.setAttribute("width","30"),i.setAttribute("width","30")),a>30&&(t.setAttribute("height","30"),i.setAttribute("height","30")),i.setAttribute("viewBox",`0 0 ${r} ${a}`),t.setAttribute("viewBox",`0 0 ${r} ${a}`)}}}),t}};L("feature-list",f);return f},"config","symbols/support/symbolUtils","core/reactiveUtils",a,b,d,e)
|
|
2
|
+
import e from"./BQE2XAKC.js";import d from"./P2TNN5UL.js";import"./VVZAS55G.js";import"./3UKDJZ2D.js";import"./US5FON7D.js";import b from"./2C4DK6YC.js";import a from"./WV7QX3ED.js";import{a as F}from"./MGEDATQ7.js";import"./RMEDO4JC.js";import"./ISFTCFSJ.js";import"./TEHBW75B.js";import"./IHG7KTNC.js";import"./ZCU2WWVN.js";import"./WGO4EVOV.js";import"./YKB6256M.js";import"./N22MFQSQ.js";import"./N7BXCDA3.js";import"./ZX3UHK6P.js";import"./Z4F2NZOT.js";import"./KOIDWEP3.js";import"./3KXMYZCU.js";import"./LP2JYX4X.js";import"./GF4QELNV.js";import"./AYSQIO6L.js";import"./YQHYMLC7.js";import"./DKD2EGQP.js";import"./5O53T3SW.js";import"./AJZDBHB6.js";import"./FES7B3SJ.js";import{b as L}from"./2I5LGZNX.js";import{E as u,F as c,G as w,I as x,J as I,h as m,i as l,l as _,q as p,t as y}from"./FFF5HUPM.js";import"./QPIMTXPL.js";export default $arcgis.t(([E,S,$,,{c:d,d:g,g:b},,v])=>{var T=m`@layer{:host{display:block}.width-full{width:100%}.pagination{display:flex;justify-content:center}.notice-msg{padding:10px;width:calc(100% - 20px)}.feature-list-popup-title{font-weight:500}.feature-list-popup-title-small{font-size:small}.feature-list-popup-title-small-ellipsis{font-size:small;white-space:nowrap!important;text-overflow:ellipsis;overflow:hidden}.popup-title{padding:0 5px;word-break:break-word}.profile-img{margin:0 5px;min-width:32px}.like-container{display:flex;align-items:center;gap:5px;color:gray!important;font-style:italic}.feature-symbol{padding:0 3px;min-width:30px;display:flex;justify-content:center}.search{padding:10px;background-color:var(--calcite-color-surface-2)!important;border-block-end:1px solid var(--calcite-color-border-3)}}`,f=class extends w{constructor(){super(),this.selectedLayerId="",this.noFeaturesFoundMsg="",this.pageSize=100,this.highlightOnMap=!1,this.highlightOnHover=!1,this.textSize="large",this.showInitialLoading=!0,this.showErrorWhenNoFeatures=!1,this.showUserImageInList=!1,this.showFeatureSymbol=!1,this.applyLayerViewFilter=!1,this.showFullTitle=!0,this.filterByMapExtent=!1,this._featureItems=[],this._featuresCount=0,this._isLoading=!1,this._searchPlaceHolder="",this._fullTextSearchInfo=[],this._translations=F({name:"feature-list",blocking:!0}),this._pagination=u(),this._calciteList=u(),this._validFieldTypes=["small-integer","integer","big-integer","single","long"],this._abbreviatedLikeCount="",this._likeFieldAvailable=!1,this._searchExpression="",this.featureClick=p(),this.featureSelect=p(),this.listenOn(window,"selectedLanguageUpdated",this.selectedLanguageUpdated)}static{this.properties={selectedLayerId:1,mapView:0,noFeaturesFoundMsg:1,pageSize:9,highlightOnMap:5,highlightOnHover:5,sortingInfo:0,whereClause:1,textSize:1,showInitialLoading:5,showErrorWhenNoFeatures:5,showUserImageInList:5,showFeatureSymbol:5,applyLayerViewFilter:5,reportingOptions:0,showFullTitle:5,filterByMapExtent:5,_featureItems:16,_featuresCount:16,_isLoading:16,_searchPlaceHolder:16,_fullTextSearchInfo:16,_translations:16}}static{this.styles=T}static{this.shadowRootOptions=y}willUpdate(e){e.has("selectedLayerId")&&this.selectedLayerWatchHandler(),e.has("sortingInfo")&&this.sortingInfoWatchHandler(),e.has("whereClause")&&this.whereClauseHandler(),e.has("filterByMapExtent")&&this.hasUpdated&&this.filterByMapExtentWatchHandler(this.filterByMapExtent)}async selectedLayerWatchHandler(){this._selectedLayer=this.mapView&&await g(this.mapView,this.selectedLayerId),await this.initializeFeatureItems()}async sortingInfoWatchHandler(){await this.initializeFeatureItems()}async whereClauseHandler(){await this.initializeFeatureItems()}async filterByMapExtentWatchHandler(e){e?this.initializeMapExtentFilter():this._filterByMapExtentHandle&&this._filterByMapExtentHandle.remove()}async refresh(e){if(e&&this._pagination.value){let t={target:{startItem:this._pagination.value.startItem}};await this.pageChanged(t)}else this._searchExpression?await this._searchFullText():await this.initializeFeatureItems()}async selectedLanguageUpdated(e){if(this._pagination.value){let t={target:{startItem:this._pagination.value.startItem}};await this.pageChanged(t)}else await this.initializeFeatureItems()}async load(){this._isLoading=!!this.showInitialLoading,this._popupUtils=new v,this.mapView&&this.selectedLayerId&&(this._selectedLayer=await g(this.mapView,this.selectedLayerId),this._getFullTextSearchInfo()),this.filterByMapExtent&&this.initializeMapExtentFilter()}async loaded(){await this.initializeFeatureItems()}render(){let e=this._canShowFullTextSearch();return l`<calcite-panel>${e&&l`<calcite-input class=search clearable icon=search @calciteInputChange=${this._searchTextChanged} .placeholder=${this._searchPlaceHolder} title type=search></calcite-input>`||""}${this._isLoading&&l`<calcite-loader label scale=m></calcite-loader>`||""}${this.showErrorWhenNoFeatures&&this._featureItems.length===0&&!this._isLoading&&l`<calcite-notice class="notice-msg" icon=feature-details kind=info open><div slot=message>${this.filterByMapExtent?this._translations.featureErrorMsgInCurrentMapView:this.noFeaturesFoundMsg?this.noFeaturesFoundMsg:this._translations.featureErrorMsg}</div></calcite-notice>`||""}<calcite-list class=${x(this.textSize==="small"&&!this.showFullTitle?"overflow-hidden":"")} label selection-appearance=border selection-mode=none ${c(this._calciteList)}>${!this._isLoading&&this._featureItems.length>0&&l`<div>${this.filterByMapExtent&&this.getExtentNotice()||""}${this._featureItems}</div>`||""}</calcite-list>${this.pageSize&&this._featuresCount>this.pageSize&&l`<div class="width-full" slot=footer><calcite-pagination class="pagination" @calcitePaginationChange=${this.pageChanged} .pageSize=${this.pageSize} start-item=1 .totalItems=${this._featuresCount} ${c(this._pagination)}></calcite-pagination></div>`||""}</calcite-panel>`}async getWhereCondition(){let e="1=1";if(this.whereClause&&(e=this.whereClause),this._selectedLayer?.definitionExpression&&(e=e+" AND "+this._selectedLayer.definitionExpression),this.applyLayerViewFilter){let t=this.mapView&&await d(this.mapView,this.selectedLayerId);t?.filter?.where&&(e=e+" AND "+t.filter.where)}return e}async initializeFeatureItems(){if(this._selectedLayer){this._pagination.value?.goTo("start"),this._isLoading=!!this.showInitialLoading,this._featureItems=await this.queryPage(0);let e={where:await this.getWhereCondition(),geometry:this.filterByMapExtent?this.mapView?.extent:null};this._featuresCount=await this._selectedLayer?.queryFeatureCount(e),this._isLoading=!1}}initializeMapExtentFilter(){this._filterByMapExtentHandle=$.when(()=>this.mapView?.stationary,()=>{this.initializeFeatureItems()},{initial:!0})}async pageChanged(e){this._isLoading=!0,this._highlightHandle&&(this._highlightHandle.remove(),this._highlightHandle=void 0);let t=e.target.startItem-1;this._featureItems=await this.queryPage(t),this._isLoading=!1}_canShowFullTextSearch(){return this._selectedLayer?.capabilities?.query?.supportsFullTextSearch&&this._selectedLayer.indexes.items.filter(e=>e.indexType=="FullText").length>0}_getFullTextSearchInfo(){if(this._fullTextSearchInfo=[],this._selectedLayer?.capabilities?.query?.supportsFullTextSearch){let e=this._selectedLayer.indexes?.filter(t=>t.indexType=="FullText");if(e?.length){let t=[];e.forEach(i=>{t.push(...i.fields.split(","))});let s=[];t.forEach(i=>{let a=this._selectedLayer?.getField(i.trim());s.push(a?.alias||"")}),this._searchPlaceHolder=this._translations.searchPlaceholder?this._translations.searchPlaceholder.replace("{{field_names}}",s.join(", ")):"",this._fullTextSearchInfo.push({onFields:["*"],searchTerm:"",searchType:"prefix"})}}}async _searchTextChanged(e){this._fullTextSearchInfo.forEach(t=>{t.searchTerm=e.target.value}),await this._searchFullText()}async _searchFullText(){this._searchExpression&&this._clearSearchDefinitionExpression();let e=[];if(this._fullTextSearchInfo&&this._fullTextSearchInfo[0].searchTerm){let t=this._selectedLayer?.createQuery();t&&(t.fullText=this._fullTextSearchInfo,e=await this._selectedLayer?.queryObjectIds(t),await this._updateSearchDefinitionExpression(e?.length?e:[-1]))}await this.initializeFeatureItems()}async _updateSearchDefinitionExpression(e){if(this._selectedLayer){let t=this._selectedLayer.definitionExpression;if(e?.length){let s=`objectId in(${e})`;this._selectedLayer.definitionExpression=this._searchExpression&&t&&t?.indexOf(this._searchExpression)>-1?t.replace(this._searchExpression,s):t?`${t} AND (${s})`:s,this._searchExpression=s}else this._clearSearchDefinitionExpression()}}_clearSearchDefinitionExpression(){if(this._selectedLayer){let e=this._selectedLayer?.definitionExpression;this._searchExpression&&e&&e?.indexOf(this._searchExpression)>-1&&(e?.indexOf(" AND ("+this._searchExpression)>-1?this._selectedLayer.definitionExpression=e.replace(` AND (${this._searchExpression})`,""):this._selectedLayer.definitionExpression=e.replace(this._searchExpression,""))}this._searchExpression=""}async featureClicked(e,t){if(this.featureClick.emit(),this.clearHighlights(),this.highlightOnMap){let s=Number(e.target.value),i=this.mapView&&await d(this.mapView,this.selectedLayerId);this._highlightHandle=i&&this.mapView?await b([s],i,this.mapView,!0):void 0}await this.emitSelectedFeature(t)}async emitSelectedFeature(e){let t=e.layer,s=t.createQuery();s.returnGeometry=!0;let i=Number(e.getObjectId());if(!Number.isNaN(i)&&s){s.objectIds=[i];let a=await t.queryFeatures(s);this.featureSelect.emit(a.features[0])}}async onFeatureHover(e){if(this.clearHighlights(),this.highlightOnHover){let t=Number(e.getObjectId()),s=this.mapView&&await d(this.mapView,this.selectedLayerId);s&&(this._highlightHandle=s.highlight([t],{name:"temporary"}))}}clearHighlights(){this._highlightHandle&&this._highlightHandle.remove()}async queryPage(e){let t=this._selectedLayer;if(t){let s=this.sortingInfo?.field?this.sortingInfo.field:t.objectIdField,i=this.sortingInfo?.order?this.sortingInfo.order:"desc",a=await this.getWhereCondition(),r={start:e,num:this.pageSize,outFields:["*"],returnGeometry:!0,where:a,outSpatialReference:this.mapView?.spatialReference.toJSON(),geometry:this.filterByMapExtent?this.mapView?.extent:null};s&&i&&(r.orderByFields=[s.toString()+" "+i]);let n=await t.queryFeatures(r);return await this.createFeatureItem(n)}else return}async createFeatureItem(e){let t=e?.features,s=this.reportingOptions&&this.reportingOptions[this.selectedLayerId]?.like,i=t.map(async a=>{let r=this.mapView?.map&&await this._popupUtils?.getPopupTitle(a,this.mapView.map)||"",n,h;return this.showUserImageInList&&this._selectedLayer?.editFieldsInfo?.creatorField&&(n=await this.getUserInformation(a)),this.showFeatureSymbol&&(h=await this.getFeatureSymbol(a)),s&&this.getAbbreviatedLikeCount(a),this.getFeatureItem(a,r,h,n)});return Promise.all(i)}getExtentNotice(){return l`<calcite-notice class="notice-msg" icon=extent-filter kind=brand open scale=s><div slot=message>${this._translations.extentFilterMsg}</div></calcite-notice>`}getAbbreviatedLikeCount(e){let t=this._selectedLayer;if(t){let s=this.reportingOptions&&this.reportingOptions[t.id].likeField;t.fields.forEach(i=>{if(this._validFieldTypes.indexOf(i.type)>-1&&i.name===s&&this.reportingOptions&&this.reportingOptions[t.id].like){this._likeFieldAvailable=!0;let a=e.attributes[s]||0;a>999&&this._translations.millions_value&&this._translations.thousands_value&&(a=a>999999?this._translations.millions_value.replace("{{millions_value}}",Math.floor(a/1e6).toString()):this._translations.thousands_value.replace("{{thousands_value}}",Math.floor(a/1e3).toString())),this._abbreviatedLikeCount=a}})}}getFeatureItem(e,t,s,i){if(this._selectedLayer?.id&&this._calciteList.value){let a=e.attributes[this._selectedLayer.objectIdField].toString();t=t??a;let r=Number(e.attributes[this.reportingOptions?.[this._selectedLayer.id].likeField||""]).toLocaleString(),n=this.textSize==="small"&&!this.showFullTitle?"feature-list-popup-title-small-ellipsis":this.textSize==="small"?"feature-list-popup-title-small":"feature-list-popup-title",h=this.showUserImageInList?115:65,C=this._calciteList.value.offsetWidth-h;return l`<calcite-list-item @mouseleave=${()=>{this.clearHighlights()}} @mouseover=${()=>{this.onFeatureHover(e)}} @calciteListItemSelect=${o=>{this.featureClicked(o,e)}} .value=${a}>${this.showUserImageInList&&l`<calcite-avatar class=profile-img .fullName=${i?.fullName} scale=m slot=content-start .thumbnail=${i?.userProfileUrl} .userId=${i?.id} .username=${i?.fullName?i.username:void 0}></calcite-avatar>`||""}${this.showFeatureSymbol&&s&&l`<div class=feature-symbol slot=content-start ${c(o=>o&&o.replaceChildren(s))}></div>`||""}<div class=${`popup-title ${n}`} slot=content-start style=${I({maxWidth:this.textSize==="large"?"none":`${C}px`})}>${t}</div>${this._likeFieldAvailable&&l`<div class=like-container id=${a.concat("like")??_} slot=content-end><span>${this._abbreviatedLikeCount}</span><calcite-icon aria-hidden=true icon=thumbs-up scale=s></calcite-icon><calcite-tooltip overlay-positioning=fixed placement=top .referenceElement=${a.concat("like")}>${r}</calcite-tooltip></div>`||""}<calcite-icon aria-hidden=true flip-rtl icon=chevron-right scale=s slot=content-end></calcite-icon></calcite-list-item>`}else return}async getUserInformation(e){let t=this._selectedLayer?.editFieldsInfo?.creatorField;if(t){e.attributes.hasOwnProperty(t.toLowerCase())?t=t.toLowerCase():e.attributes.hasOwnProperty(t.toUpperCase())&&(t=t.toUpperCase());let s=`${E.portalUrl}/sharing/rest/community/users/${e.attributes[t]}?f=json&returnUserLicensedItems=true`,i=this.mapView?.map?.portalItem.portal?.credential?.token;i&&(s+=`&token=${i}`);let a=await(await fetch(s)).json(),r=a?.username??e.attributes[t],n=`${E.portalUrl}/sharing/rest/community/users/${r}/info/blob.png`;return a?.access&&i&&(n+=`?token=${i}`),a.userProfileUrl=n,a}else return}async getFeatureSymbol(e){let t=document.createElement("div");return await S?.getDisplayedSymbol(e).then(async s=>{if(s&&await S?.renderPreviewHTML(s,{node:t}),t.children?.length){let i=t.children[0];if(i){let a=Number(i.getAttribute("height")),r=Number(i.getAttribute("width"));r>30&&(t.setAttribute("width","30"),i.setAttribute("width","30")),a>30&&(t.setAttribute("height","30"),i.setAttribute("height","30")),i.setAttribute("viewBox",`0 0 ${r} ${a}`),t.setAttribute("viewBox",`0 0 ${r} ${a}`)}}}),t}};L("feature-list",f);return f},"config","symbols/support/symbolUtils","core/reactiveUtils",a,b,d,e)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{a as x}from"./ONARC6AZ.js";import{a as L}from"./2D6XDWYA.js";import{a as S}from"./LHG6NOEP.js";import{b as I}from"./CVHXDPJO.js";import"./RMEDO4JC.js";import"./ISFTCFSJ.js";import{E as $,F as w,G as k,I as p,h as F,i as l,l as h,q as b}from"./FFF5HUPM.js";import"./QPIMTXPL.js";export default $arcgis.t(([T,m,P,O])=>{var D="instant-apps-filter-list calcite-mode-light",M="instant-apps-filter-list calcite-mode-dark",g=["feature","geojson","wfs","csv","scene","subtype-group","point-cloud","map-image","sublayer"];function v(f){return f.replaceAll("'","''")}function y(f,e=!1){if(f){let t=new Date(f),i=`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`;if(e){let s=`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}`;return`${i} ${s}`}else return i}}function _(f){if(f!=null){f.value=["",""];let e=f.shadowRoot?.querySelectorAll("calcite-input");if(e!=null)for(let t of e)t.value=""}}var R=F`:host{display:block}.instant-apps-filter-list *{box-sizing:border-box}.instant-apps-filter-list__container{height:100%}.instant-apps-filter-list__container calcite-block{--calcite-internal-block-actions-spacing: 0}.instant-apps-filter-list__container calcite-block calcite-action[slot=actions-end]{height:100%}.instant-apps-filter-list__container calcite-block:last-of-type{margin-bottom:0}.instant-apps-filter-list__footer{padding:12px;display:flex}.instant-apps-filter-list__footer calcite-button:nth-child(2){margin-left:6px}.instant-apps-filter-list__item-container,.instant-apps-filter-list__item-container--user-input{display:flex;justify-content:space-between;align-items:center}.instant-apps-filter-list__item-container:not(:last-child),.instant-apps-filter-list__item-container--user-input:not(:last-child){padding-bottom:20px}.instant-apps-filter-list__item-container--user-input{margin:0;display:flex;flex-direction:column;align-items:flex-start}.instant-apps-filter-list__item-container--user-input>span{margin:0 0 6px;font-size:14px;font-weight:400}.instant-apps-filter-list__item-container--user-input calcite-combobox{width:100%;font-size:16px;--calcite-combobox-input-height: 24px}.instant-apps-filter-list__number-input-container{width:100%;display:flex;justify-content:center}.instant-apps-filter-list__number-input-container calcite-slider{width:90%}.instant-apps-filter-list__date-picker-input-container{display:flex;align-items:center;justify-content:unset;width:100%}.instant-apps-filter-list__date-picker-input-container calcite-action{height:65px;border-top:1px solid var(--calcite-color-border-input);border-right:1px solid var(--calcite-color-border-input);border-bottom:1px solid var(--calcite-color-border-input)}.instant-apps-filter-list__time-picker-input-container{display:grid;grid-template-columns:auto 32px;width:100%}.instant-apps-filter-list__time-picker-input-container calcite-input-time-picker:first-child{grid-column:1;grid-row:1}.instant-apps-filter-list__time-picker-input-container calcite-input-time-picker:last-child{grid-column:1;grid-row:2}.instant-apps-filter-list__time-picker-input-container calcite-action{grid-column:2;grid-row:1/span 2;height:64px;width:33px;border-top:1px solid var(--calcite-color-border-input);border-right:1px solid var(--calcite-color-border-input);border-bottom:1px solid var(--calcite-color-border-input)}.instant-apps-filter-list__title{margin-right:20px}.instant-apps-filter-list__title>p{font-size:14px;font-weight:400;margin:0}.instant-apps-filter-list__checkbox-container{display:flex}.instant-apps-filter-list__checkbox-container calcite-checkbox{height:18px}.instant-apps-filter-list__operator-description{margin:0;--calcite-font-size--1: 12px}.instant-apps-filter-list calcite-input-date-picker{--calcite-font-size--1: 16px}@media(prefers-reduced-motion){.instant-apps-filter-list calcite-loader{--calcite-internal-duration-factor: 2;--calcite-internal-animation-timing-slow: .6s }}.instant-apps-filter-list.calcite-mode-dark .instant-apps-filter-list__header-container{background:#2b2b2b;color:#fff}.instant-apps-filter-list.calcite-mode-dark .instant-apps-filter-list__operator-description{background:#353535}`,d={filterContainer:"instant-apps-filter-list__container",footer:"instant-apps-filter-list__footer",filterItemTitle:"instant-apps-filter-list__title",filterItemContainer:"instant-apps-filter-list__item-container",filterUIItemContainer:"instant-apps-filter-list__item-container--user-input",checkboxContainer:"instant-apps-filter-list__checkbox-container",numberInputContainer:"instant-apps-filter-list__number-input-container",dateInputContainer:"instant-apps-filter-list__date-picker-input-container",timeInputContainer:"instant-apps-filter-list__time-picker-input-container",operatorDesc:"instant-apps-filter-list__operator-description"},C=class extends k{constructor(){super(...arguments),this._messages=S({name:"instant-apps-filter-list",blocking:!0}),this.resetBtnEl=$(),this.panelEl=$(),this.isLayerExpUpdated=!1,this.isInitUpdateComplete=!1,this.baseClass=D,this.autoUpdateUrl=!1,this.closeBtn=!1,this.comboboxOverlayPositioning="absolute",this.openFilters=!1,this.extentSelector=!1,this.filterCount=0,this.zoomBtn=!0,this.resetBtn=!0,this.resetFiltersOnDisconnect=!0,this.filterListReset=b(),this.filterUpdate=b()}static{this.properties={loading:16,filterLayerExpressions:16,baseClass:16,initDefExpressions:16,initMapImageExpressions:16,initPointCloudFilters:16,layerExpressions:0,autoUpdateUrl:5,closeBtn:5,closeBtnOnClick:0,comboboxOverlayPositioning:1,closeBtnText:1,openFilters:5,extentSelector:5,extentSelectorConfig:0,urlParams:0,filterCount:9,view:0,zoomBtn:5,resetBtn:5,resetFiltersOnDisconnect:5}}static{this.styles=R}async forceReset(){return this.resetExpressions(),await Promise.resolve(!0)}async getCurrentLayerExpressions(){let e=structuredClone(this.filterLayerExpressions);return await Promise.resolve(e)}async getFilterInitState(){return await Promise.resolve({initDefExpressions:this.initDefExpressions,initMapImageExpressions:this.initMapImageExpressions,initPointCloudFilters:this.initPointCloudFilters})}async handleUpdatingT9nData(e){return e==null?await Promise.resolve(!0):(this.filterLayerExpressions?.forEach(t=>{let i=e?.find(s=>s.id===t.id);i!=null&&(t.title=i.title,t.expressions?.forEach(s=>{let n=i.expressions?.find(a=>a.id===s.id);n!=null&&(s.name=n.name)}))}),await Promise.resolve(!0))}async updateInitDefExpressions(e){return this.initDefExpressions=e.initDefExpressions,this.initMapImageExpressions=e.initMapImageExpressions,this.initPointCloudFilters=e.initPointCloudFilters,await Promise.resolve(!0)}connectedCallback(){super.connectedCallback(),!(this.layerExpressions==null&&this.view==null)&&(this.isLayerExpUpdated=!0,this.filterLayerExpressions=structuredClone(this.layerExpressions),this.isInitUpdateComplete=!1,this.handleLayerExpressionsUpdate())}async load(){this.baseClass=L(this.el)==="dark"?M:D,!this.isLayerExpUpdated&&(this.isLayerExpUpdated=!0,this.filterLayerExpressions=this.layerExpressions!=null?structuredClone(this.layerExpressions):[],this.view!=null&&this.handleLayerExpressionsUpdate())}willUpdate(e){e.has("view")&&this.handleWhenView(),e.has("layerExpressions")&&(this.isInitUpdateComplete=!1,this.resetAllFilters(),this.filterLayerExpressions=structuredClone(this.layerExpressions),this.handleLayerExpressionsUpdate())}updated(){this.resetBtnEl.value!=null&&(this.resetBtnEl.value.disabled=!(this.filterLayerExpressions&&this.filterLayerExpressions.length>0))}disconnectedCallback(){super.disconnectedCallback(),this.resetFiltersOnDisconnect&&(this.isLayerExpUpdated=!1,this.filterLayerExpressions=structuredClone(this.layerExpressions),this.resetAllFilters())}initFilterConfig(){if(this.filterLayerExpressions&&this.filterLayerExpressions.length>0){if(this.filterLayerExpressions.length===1){let{operator:e}=this.filterLayerExpressions[0],t=e?.trim()==="OR"?"orOperator":"andOperator",i=this.renderZoomTo(this.filterLayerExpressions[0]);return l`<calcite-block class=${p(d.operatorDesc)} .heading=${this._messages[t]} expanded>${i}${this.renderFilter(this.filterLayerExpressions[0])}</calcite-block>`}else if(this.filterLayerExpressions.length>1)return this.renderLayerBlock()}}handleResetDatePicker(e,t){let i=this.panelEl.value?.querySelector(`[id='${e.id}']`);i&&(_(i),e.active=!1,e.definitionExpression=void 0,e.range=void 0,this.generateOutput(t))}handleResetTimePicker(e,t){this.resetTimePicker(e),e.active=!1,e.definitionExpression=void 0,e.range=void 0,this.generateOutput(t)}resetTimePicker(e){let t=this.panelEl.value?.querySelector(`[id='${e.id}-min']`),i=this.panelEl.value?.querySelector(`[id='${e.id}-max']`);!t||!i||(t.value=e.min,i.value=e.max)}initInput(e,t){let{type:i,numDisplayOption:s,displayOption:n}=t;if(i==="string"||i==="coded-value"||(i==="number"||i==="range"||i==="date"||i==="time-only")&&(s==="drop-down"||n==="drop-down"))return this.renderCombobox(e,t);if(i==="number"||i==="range")return this.renderNumberSlider(e,t);if(i==="date")return this.renderDatePicker(e,t);if(i==="time-only")return this.renderTimePicker(e,t)}async initExpressions(){if(this.loading=!0,this.filterLayerExpressions==null||this.view==null){this.loading=!1;return}await this.processExpressions(),this.loading=!1}async processExpressions(){this.filterLayerExpressions&&await Promise.all(this.filterLayerExpressions.map(async e=>{await Promise.all((e.expressions||[]).map(async t=>await this.setInitExpression(e,t)))}))}handleResetFilter(){this.resetExpressions(),this.resetAllFilters(),this.generateURLParams(),this.filterListReset.emit()}resetExpressions(){this.filterLayerExpressions?.forEach(e=>{e.expressions?.forEach(t=>{let{type:i,numDisplayOption:s,displayOption:n}=t,a="";i==="string"||i==="coded-value"||(i==="number"||i==="range"||i==="date"||i==="time-only")&&(s==="drop-down"||n==="drop-down")?a="combobox":i==="date"?a="datePicker":i==="number"||i==="range"?a="numberRange":i==="time-only"&&(a="timePicker"),a?this.resetExpressionUI(a,t):this.resetCheckbox(t),t.active=!1})})}resetExpressionUI(e,t){let{id:i}=t;switch(e){case"combobox":{t.selectedFields=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&Array.from(s.children).forEach(n=>{n.selected=!1});break}case"datePicker":{t.range=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&_(s);break}case"numberRange":{t.range=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&(s.minValue=t.min,s.maxValue=t.max);break}case"timePicker":t.range=void 0,this.resetTimePicker(t)}}resetCheckbox(e){let{id:t}=e,i=this.panelEl.value?.querySelector(`[id='${t}']`);i&&(i.checked=!1)}resetAllFilters(){this.view?.map?.allLayers?.concat(this.view?.map?.allTables.toArray()??[])?.forEach(e=>{if(!g.includes(e.type))return;let t=e;if(t.type==="point-cloud"){if(!this.initPointCloudFilters)return;t.filters=this.initPointCloudFilters[t.id]}else if(t.type==="map-image")t.allSublayers.forEach(i=>{i.definitionExpression=this.initMapImageExpressions?.[t.id]?.[i.id]??""});else{if(this.initDefExpressions==null)return;t.definitionExpression=this.initDefExpressions[t.id]}})}async updateStringExpression(e,t){let i=this.findFilterLayer(e);return i?(await this.getFeatureAttributes(i,t),this.handleDateField(i,t),t?.selectedFields?(t.definitionExpression=this.createDefinitionExpression(t),!0):!1):!1}handleDateField(e,t){t.type==="date"&&e.fields.find(({name:i})=>i===t.field)?.type==="date-only"&&(t.dateOnly=!0)}createDefinitionExpression(e){if(!e.selectedFields?.length)return"";let t=e.selectedFields.map(i=>typeof i=="number"?i:`'${v(i)}'`);return this.getSelectedFieldsDefExpression(e,t)}async updateNumberExpression(e,t){if(!t?.min&&t?.min!==0||!t?.max&&t?.max!==0){let i=this.findFilterLayer(e);if(!i)return!1;let{field:s}=t;if(s!=null)if(this.setExpressionFormat(i,t,s),t?.numDisplayOption==="drop-down"||t?.displayOption==="drop-down")await this.getFeatureAttributes(i,t);else{let n=(await this.calculateMinMaxStatistics(i,s))?.[0]?.attributes;if(t.format?.places!=null?(t.min=this.roundMinNumberDown(n[`min${s}`],t.format.places),t.max=this.roundMaxNumberUp(n[`max${s}`],t.format.places)):(t.min=n[`min${s}`],t.max=n[`max${s}`]),t?.range&&Object.keys(t.range).length){let{min:a,max:r}=t.range;return t.definitionExpression=`${t.field} BETWEEN ${a} AND ${r}`,!0}}}return!1}async updateDateExpression(e,t){let{field:i,range:s}=t,n=this.findFilterLayer(e);if(!n)return!1;let a=(await this.calculateMinMaxStatistics(n,i))?.[0]?.attributes;if(t.min=y(a[`min${i}`]),t.max=y(a[`max${i}`]),s!=null&&(s?.max!=null||s?.min!=null)){let{min:r,max:o}=s;if(r=r?.replace("+"," "),o=o?.replace("+"," "),r||o){let c=o&&!r?"<":!o&&r?">":null;return c?t.definitionExpression=`${i} ${c} '${r??o}'`:t.definitionExpression=`${i} BETWEEN '${r}' AND '${o}'`,!0}}return!1}async updateTimeExpression(e,t){let{field:i,range:s}=t,n=this.findFilterLayer(e);if(!n)return!1;let a=(await this.calculateMinMaxStatistics(n,i))?.[0]?.attributes;if(t.min=a[`min${i}`],t.max=a[`max${i}`],s!=null&&(s?.max!=null||s?.min!=null)){let{min:r,max:o}=s;if(r||o){let c=o&&!r?"<":!o&&r?">":null;return c?t.definitionExpression=`${i} ${c} TIME '${r??o}'`:t.definitionExpression=`${i} BETWEEN TIME '${r}' AND TIME '${o}'`,!0}}return!1}async updateCodedValueExpression(e,t,i){if(!i?.domain||i?.domain?.type!=="coded-value")return!1;let s=this.findFilterLayer(e);if(!s)return!1;await this.getFeatureAttributes(s,t);let n=i.domain.codedValues.reduce((a,{code:r,name:o})=>(a[r]=o,a),{});if(t.codedValues=n,this.sortCodedValues(t),t.selectedFields?.length){let a=t.selectedFields.map(r=>typeof r=="number"?r:`'${v(r)}'`).join(",");return t.definitionExpression=`${t.field} IN (${a})`,!0}return!1}updateRangeExpression(e,t){if(!t?.domain||t?.domain?.type!=="range")return!1;let{field:i,range:s}=e;return e.min=t.domain.minValue,e.max=t.domain.maxValue,s&&Object.keys(s).length?(e.definitionExpression=`${i} BETWEEN ${s.min} AND ${s.max}`,!0):!1}async getFeatureAttributes(e,t){if(!this.isLayerSupported(e)){t.fields=[];return}let i=await this.getQueryLayer(e),{maxRecordCount:s,supportsMaxRecordCountFactor:n}=this.extractQueryCapabilities(e),a=await i.queryFeatureCount(),r=this.createQuery(i,t);await this.queryDistinctFeatures(i,r,t),this.shouldPaginate(s,a,n)&&this.handlePagination(i,r,s,n,a,t)}isLayerSupported(e){return e&&g.includes(e.type)}extractQueryCapabilities(e){return{maxRecordCount:e.capabilities?.query?.maxRecordCount??e.sourceJSON?.maxRecordCount,supportsMaxRecordCountFactor:e.capabilities?.query?.supportsMaxRecordCountFactor}}createQuery(e,t){let i=e.createQuery();this.applyCacheHint(e,i);let s=t?.field;if(s){let n=this.getInitDefExprFromLayer(e);i.where=n||"1=1",i.outFields=[s],i.orderByFields=[`${s} ASC`],i.returnDistinctValues=!0,i.returnGeometry=!1,i.maxRecordCountFactor=5,this.applyQueryGeometryFromExtentSelector(i)}return i}async queryDistinctFeatures(e,t,i){if(!t.outFields)return;let s=await this.queryForFeatures(e,t,t.outFields[0]);s?.length&&(i.fields=[...new Set(s)],i.type==="string"?i.fields=i.fields.sort((n,a)=>n.localeCompare(a)):i.type==="number"&&(i.fields=i.fields.sort((n,a)=>n-a)))}getQueryCount(e,t){return t?e*5:e}shouldPaginate(e,t,i){let s=this.getQueryCount(e,i);return e!=null&&t>s}async handlePagination(e,t,i,s,n,a){let r=this.getQueryCount(i,s),o=[];for(let c=r;c<n;c+=r){let u=t.clone();u.num=i,u.start=c,o.push(this.queryForFeatures(e,u,t?.outFields?.[0]??""))}Promise.all(o).then(c=>{c.forEach(u=>{u?.length&&a.fields&&a.fields.push(...u)}),a.type==="string"?a.fields=[...new Set(a.fields)].sort((u,E)=>u.localeCompare(E)):a.type==="number"?a.fields=[...new Set(a.fields)].sort((u,E)=>u-E):a.type==="coded-value"&&a.codedValues?this.sortCodedValues(a):a.fields=[...new Set(a.fields)].sort()})}async queryForFeatures(e,t,i){return(await e.queryFeatures(t))?.features.filter(s=>{let n=s.attributes?.[i];return n!=null&&n!==""})?.map(s=>s.attributes?.[i])}async calculateMinMaxStatistics(e,t){if(!e||!g.includes(e.type)||!t)return[];let i=this.createStatisticsQuery(e,t);return(await e.queryFeatures(i))?.features||[]}createStatisticsQuery(e,t){let i=e.createQuery();return i.where=this.getInitDefExprFromLayer(e)||"1=1",this.applyCacheHint(e,i),i.outStatistics=[{onStatisticField:t,outStatisticFieldName:`max${t}`,statisticType:"max"},{onStatisticField:t,outStatisticFieldName:`min${t}`,statisticType:"min"}],this.applyQueryGeometryFromExtentSelector(i),i}getExtent(e,t){if(e&&t){let{constraints:i}=t,s={...i}.geometry;if(s){let n="extent"in s?s:T.fromJSON(s);if(n?.type==="extent"||n?.type==="polygon")return n}}}async setInitExpression(e,t){if(!t.field||!t.type){await this.updateExpression(e,t,void 0);return}let i=this.findFilterLayer(e);i&&((i.loadStatus==="not-loaded"||i.loadStatus==="failed")&&await i.load(),await i.when(async()=>{let s=i.fields?.find(({name:a})=>a===t.field),n=s?.domain?.type;t.type=n==="coded-value"||n==="range"?n:t.type,await this.updateExpression(e,t,s)}))}async updateExpression(e,t,i){let s=await this.handleExpressionType(e,t,i);this.requestUpdate(),s&&this.generateOutput(e)}async handleExpressionType(e,t,i){switch(t.type){case"string":return await this.updateStringExpression(e,t);case"number":return await this.updateNumberExpression(e,t);case"date":return await this.updateDateExpressionBasedOnDisplayOption(e,t);case"time-only":return await this.updateTimeExpressionBasedOnDisplayOption(e,t);case"coded-value":return await this.updateCodedValueExpression(e,t,i);case"range":return await this.updateRangeExpressionBasedOnDisplayOption(e,t,i);case"checkbox":case null:case void 0:return t.active??!1;default:return!1}}async updateDateExpressionBasedOnDisplayOption(e,t){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):await this.updateDateExpression(e,t)}async updateTimeExpressionBasedOnDisplayOption(e,t){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):await this.updateTimeExpression(e,t)}async updateRangeExpressionBasedOnDisplayOption(e,t,i){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):this.updateRangeExpression(t,i)}updateRangeExpressions(e,t,i,s){let n=this.getInitDefExprFromLayerExpression(t);(s||s===0)&&(i||i===0)&&(s===e?.min&&i===e?.max?(e.definitionExpression=void 0,e.active=!1):(e.definitionExpression=n?`(${n}) AND ${e?.field} BETWEEN ${s} AND ${i}`:`${e?.field} BETWEEN ${s} AND ${i}`,e.active=!0)),e.range={min:s,max:i}}handleCheckboxChange(e,t,i){let s=i.target;t.active=s.checked,this.generateOutput(e)}handleSliderChange(e,t,i){let{maxValue:s,minValue:n}=i.target;this.updateRangeExpressions(e,t,s,n),this.generateOutput(t)}handleComboSelect(e,t,i){let s=i.target.selectedItems,{field:n,type:a}=e;if(e.selectedFields=s.map(({value:r})=>r),s.length){let r=s.map(({value:o})=>typeof o=="number"?o:`'${v(o)}'`);e.definitionExpression=this.getSelectedFieldsDefExpression(e,r),e.active=!0}else e.definitionExpression=void 0,e.active=!1;this.generateOutput(t)}getSelectedFieldsDefExpression(e,t){let{field:i,type:s}=e;return s==="date"?t.map(n=>this.buildDateExpression(n,i)).join(" OR "):s==="time-only"?`${i} IN (${t.map(n=>`TIME ${n}`).join(",")})`:`${i} IN (${t.join(",")})`}handleDatePickerRangeChange(e,t,i){let s=i.target,[n,a]=s.valueAsDate,r=n?y(Math.floor(n.getTime()),!0):void 0,o=a?y(Math.floor(a.getTime()),!0):void 0;(r||o)&&(e.definitionExpression=this.constructDefinitionExpression(e.field,r,o),e.range={min:r,max:o},e.active=!0,this.generateOutput(t))}handleTimePickerRangeChange(e,t,i,s){let n=s.target,a=n.value;e.range==null&&(e.range={min:void 0,max:void 0}),i?e.max&&a>e.max?(e.range.min=e.max,n.value=e.range.min):e.min&&a<e.min?(e.range.min=e.min,n.value=e.range.min):e.range.min=a:e.max&&a>e.max?(e.range.max=e.max,n.value=e.range.max):e.min&&a<e.min?(e.range.max=e.min,n.value=e.range.max):e.range.max=a,(e.range.min||e.range.max)&&(e.definitionExpression=this.constructTimeDefinitionExpression(e.field,e.range.min,e.range.max),e.active=!0,this.generateOutput(t))}constructDefinitionExpression(e,t,i){return t?i?`${e} BETWEEN '${t}' AND '${i}'`:`${e} > '${t}'`:`${e} < '${i}'`}constructTimeDefinitionExpression(e,t,i){return t?i?`${e} BETWEEN TIME '${t}' AND TIME '${i}'`:`${e} > TIME '${t}'`:`${e} < TIME '${i}'`}handleURLParams(){if(!("URLSearchParams"in window))return;let e=new URLSearchParams(document.location.search).get("filter");if(!e){this.filterCount=0;return}let t=e.split(";").map(i=>JSON.parse(i));this.filterCount=this.applyFilters(t)}applyFilters(e){let t=0;return e.forEach(i=>{let s=this.filterLayerExpressions?.find(n=>n.id===i.layerId);s&&s.expressions?.forEach(n=>{n.id?.toString()===i.expressionId?.toString()&&(this.activateExpression(n,i),t++)})}),t}activateExpression(e,t){e.active=!0,t.type==="range"?e.range=t.range:t.type==="select"&&(e.selectedFields=t.selectedFields)}createURLParamExpression(e,t){let{id:i,range:s,selectedFields:n,type:a}=t;return a==="string"||a==="coded-value"||t?.numDisplayOption==="drop-down"||t?.displayOption==="drop-down"?{type:"select",layerId:e.id,expressionId:i.toString(),selectedFields:n}:a==="number"||a==="range"||a==="date"||a==="time-only"?{type:"range",layerId:e.id,expressionId:i.toString(),range:s}:{layerId:e.id,expressionId:i.toString()}}autoUpdateURLCheck(e){if(this.autoUpdateUrl){let t=e.toString()?`${window.location.pathname}?${e}`.trim():window.location.pathname;window.history.replaceState({},"",t)}}generateURLParams(){if(!("URLSearchParams"in window))return;let e=new URLSearchParams(window.location.search),t=this.filterLayerExpressions?.flatMap(i=>i?.expressions?.filter(s=>s.active).map(s=>JSON.stringify(this.createURLParamExpression(i,s)))||[])||[];this.filterCount=t.length,t.length>0?e.set("filter",t.join(";")):e.delete("filter"),this.autoUpdateURLCheck(e),this.urlParams=e}updateFilter(e,t,i){let{id:s}=e,n=this.view.map?.findLayerById(s)??this.view.map?.findTableById(s);if(n!=null)if(n.type==="point-cloud")this.updateFilterLayerPCLFilter(n,i);else if(n.type==="map-image"){let a=n.findSublayerById(e?.sublayerId);a!=null&&this.updateFilterLayerDefExpression(a,t,e)}else this.updateFilterLayerDefExpression(n,t,e)}updateFilterLayerDefExpression(e,t,i){let{operator:s}=i,n=this.getInitDefExprFromLayer(e),a=t?.length>0&&n!=null&&n!==""?`(${t.join(s)}) AND (${n})`:t.length>0?t.join(s):n;e.definitionExpression=a}updateFilterLayerPCLFilter(e,t){e.filters=t}async handleWhenView(){this.view!=null&&(await this.view.map.loadAll(),await this.handleLayerExpressionsUpdate())}async handleLayerExpressionsUpdate(){this.isInitUpdateComplete||(this.updateInitExpressions(),this.handleURLParams(),this.initExpressions())}async handleZoomTo(e){let t=e?.sublayerId?`#zoom-to-${e.id}-${e.sublayerId}`:`#zoom-to-${e.id}`,i=this.panelEl.value?.querySelector(t),s=(n,a)=>{i&&(i.loading=n,i.disabled=a)};if(s(!0,!0),await this.getZoomToExtent(e),this.zoomToExtent){let n=this.zoomToExtent.type==="point"&&this.zoomToExtent.count===1?{target:this.zoomToExtent.extent,zoom:10}:this.zoomToExtent.extent;await this.view.goTo(n)}s(!1,!1)}async getZoomToExtent(e){let t=this.view.allLayerViews.find(({layer:s})=>s.id===e.id).layer,i=t.type==="map-image"?t.findSublayerById(e.sublayerId):t;if(i&&i.type!=="point-cloud"&&g.includes(i?.type)){let s=await this.getQueryLayer(i),n=s.createQuery();n.where=s.definitionExpression??"1=1";let a=await s.queryExtent(n);this.zoomToExtent={...a,type:s.geometryType}}}generateOutput(e){if(this.view==null)return;let t=[],i=[];if(e){for(let s of e.expressions){let{active:n,definitionExpression:a,pointCloudFilters:r}=s;n&&a&&t.push(`(${a})`),n&&r!=null&&r.length>0&&(i=i.concat(r))}this.updateFilter(e,t,i),this.generateURLParams(),this.filterUpdate.emit()}}numberWithCommas(e){return e.toLocaleString("en-US",{maximumFractionDigits:20})}async getInitMap(){let e=this.view.map,t;return this.view.type==="2d"?t=new P({portalItem:{id:e.portalItem.id}}):t=new O({portalItem:{id:e.portalItem.id}}),await t.load(),t}scientificRounding(e,t,i){if(e==null)return;let s;if(!String(e).includes("e"))s=Math[i](e*Math.pow(10,t))/Math.pow(10,t);else{let[n,a]=String(e).split("e").map(o=>Number(o)),r=a+t;s=Math[i](+`${n}e${r}`)*Math.pow(10,-t)}return+s.toFixed(t)}roundMinNumberDown(e,t){return this.scientificRounding(e,t,"floor")}roundMaxNumberUp(e,t){return this.scientificRounding(e,t,"ceil")}roundNumber(e,t){return this.scientificRounding(e,t,"round")??e}setExpressionFormat(e,t,i){if(e?.popupTemplate!=null){let s=e?.popupTemplate.fieldInfos?.find(({fieldName:n})=>n===i);s?.format&&(t.format=s.format)}}getInitDefExprFromLayer(e){return e.type==="sublayer"?this.initMapImageExpressions?.[e?.layer?.id??""]?.[e.id]??"":this.initDefExpressions?.[e.id]??""}getInitDefExprFromLayerExpression(e){return e?.sublayerId!=null?this.initMapImageExpressions?.[e.id]?.[e.sublayerId]??"":this.initDefExpressions?.[e.id]??""}findFilterLayer(e){let t=this.view.map?.allLayers.concat(this.view.map?.allTables.toArray()??[])?.find(({id:i})=>i===e.id);return t?.type==="map-image"?t?.findSublayerById(e.sublayerId):t}createLabel(e,t){if(e.type==="coded-value")return e?.codedValues?.[t]??t;if(e.type==="number"&&typeof t=="number"){let i=t;return e.format?.places!=null&&(i=this.roundNumber(t,e.format.places)),e.format?.digitSeparator?this.numberWithCommas(i):i}if(e.type==="date"&&!e.dateOnly){let i=m.convertDateFormatToIntlOptions("short-date-long-time");return m.formatDate(t,i)}if(e.type==="time-only"){let i=m.convertDateFormatToIntlOptions("long-time");return m.formatTimeOnly(t,i)}return t}buildDateExpression(e,t){if(e){let i=new Date(e),s=new Date(e),n=new Date(s.setDate(i.getDate()+1)),a=`${i.getFullYear()}-${i.getMonth()+1}-${i.getDate()}`,r=`${i.getHours()}:${i.getMinutes()}:${i.getSeconds()}`,o=`${n.getHours()}:${n.getMinutes()}:${n.getSeconds()}`,c=`${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`;return`${t} BETWEEN '${a} ${r}' AND '${c} ${o}'`}}async getQueryLayer(e){let t=e.type==="sublayer"?await e.createFeatureLayer():e;if(!t)throw new Error("Failed to create feature layer");return t}applyCacheHint(e,t){e?.capabilities?.query?.supportsCacheHint&&(t.cacheHint=!0)}applyQueryGeometryFromExtentSelector(e){if(!this.extentSelector||!this.extentSelectorConfig)return;let t=this.getExtent(this.extentSelector,this.extentSelectorConfig);t&&(e.geometry=t,e.spatialRelationship="intersects")}async updateInitExpressions(){if(!this.view?.map)return;let e=await this.getInitMap();this.initDefExpressions={},this.initPointCloudFilters={},this.initMapImageExpressions={},e.allLayers.concat(e.allTables.toArray()??[]).forEach(t=>{if(!g.includes(t.type))return;let i=t;if(i.type==="point-cloud")this.initPointCloudFilters||(this.initPointCloudFilters={}),this.initPointCloudFilters[i.id]=i.filters;else if(i.type==="map-image")this.initMapImageExpressions||(this.initMapImageExpressions={}),this.initMapImageExpressions[i.id]=i.allSublayers.reduce((s,n)=>(s[n.id]=n.definitionExpression??"",s),{});else{if(!this.initDefExpressions)return;this.initDefExpressions[i.id]=i.definitionExpression??""}}),this.isInitUpdateComplete=!0}sortCodedValues(e){typeof e.fields?.[0]=="number"?e.fields=[...new Set(e.fields)].sort((t,i)=>{let s=e.codedValues?.[t],n=e.codedValues?.[i];return(s??t)-(n??i)}):e.fields=[...new Set(e.fields)].sort((t,i)=>{let s=e.codedValues?.[t],n=e.codedValues?.[i],a=s??t,r=n??i;return a.localeCompare(r)})}render(){let e=this.loading?this.renderLoading():this.initFilterConfig(),t=this.renderFooter();return l`<calcite-panel class=${p(this.baseClass)} ${w(this.panelEl)}><slot slot=header-content name=filter-header-content></slot><slot slot=header-actions-end name=filter-header-actions-end></slot>${x("filter-container",l`<div class=${p(d.filterContainer)}>${e}${t}</div>`)}</calcite-panel>`}renderLoading(){return l`<calcite-loader label="Loading filters..."></calcite-loader>`}renderFilter(e){let{id:t}=e;return e.expressions.map((i,s)=>i.type==="checkbox"||i.type==null?x(`${t}-${s}`,l`<div class=${p(d.filterItemContainer)}><div class=${p(d.filterItemTitle)}><p>${i.name}</p></div><div class=${p(d.checkboxContainer)}><calcite-checkbox id=${i.id.toString()??h} scale=l .checked=${i?.active} @calciteCheckboxChange=${this.handleCheckboxChange.bind(this,e,i)}></calcite-checkbox></div></div>`):this.initInput(e,i))}renderLayerBlock(){return this.filterLayerExpressions?.map(e=>this.renderFilterBlocks(e))}renderFilterBlocks(e){let t=this.renderFilter(e),{operator:i}=e,s=i?.trim()==="OR"?"orOperator":"andOperator",n=this.renderZoomTo(e);return x(e.id,l`<calcite-block .heading=${e.title} .description=${this._messages[s]} .expanded=${this.openFilters?!0:void 0} collapsible>${n}${t}</calcite-block>`)}renderCombobox(e,t){return x("combo-select",l`<label class=${p(d.filterUIItemContainer)}><span>${t.name}</span><calcite-combobox id=${t.id.toString()??h} @calciteComboboxChange=${this.handleComboSelect.bind(this,t,e)} .label=${t.name} .placeholder=${t.placeholder} selection-mode=multiple max-items=6 scale=s .overlayPositioning=${this.comboboxOverlayPositioning}>${t.fields?.map((i,s)=>this.renderComboboxItem(t,i,s))}</calcite-combobox></label>`)}renderComboboxItem(e,t,i){let s=this.createLabel(e,t),n=e?.selectedFields?.includes(t)??!1;return x(`${s}-${i}`,l`<calcite-combobox-item .value=${t} .heading=${`${s}`} .selected=${n}></calcite-combobox-item>`)}renderNumberSlider(e,t){let i=t?.min,s=t?.max,n=t?.step?t.step:1,a=i!=null&&s!=null,r=t?.field??"",o=t?.range?.min!=null?t.range.min:i,c=t?.range?.max!=null?t.range.max:s,u=[o,c];return a?x(t?.id.toString(),l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.numberInputContainer)}><calcite-slider id=${t?.id.toString()??h} @calciteSliderChange=${this.handleSliderChange.bind(this,t,e)} .min=${i} .max=${s} .minValue=${i} .maxValue=${s} .minLabel=${this._messages.minSlider?.replace("{field}",r)} .maxLabel=${this._messages.maxSlider?.replace("{field}",r)} .step=${n} label-handles snap .value=${u} .groupSeparator=${t?.format?.digitSeparator} precise></calcite-slider></div></label>`):void 0}renderDatePicker(e,t){let{min:i,max:s}=t,n=[t?.range?.min,t?.range?.max];return i!=null&&s!=null?l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.dateInputContainer)}><calcite-input-date-picker id=${t?.id.toString()??h} @calciteInputDatePickerChange=${this.handleDatePickerRangeChange.bind(this,t,e)} .min=${i} .max=${s} calendars=1 overlay-positioning=fixed lang=${m.getLocale()??"en"??h} layout=vertical .value=${n} range></calcite-input-date-picker><calcite-action @click=${this.handleResetDatePicker.bind(this,t,e)} icon=reset .text=${this._messages.resetDatePicker} title=${this._messages.resetDatePicker??h} scale=s></calcite-action></div></label>`:void 0}renderTimePicker(e,t){let{min:i,max:s,range:n}=t,a=i!=null&&s!=null,r=n?.min!=null?n.min:i,o=n?.max!=null?n.max:s;return a?l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.timeInputContainer)}><calcite-input-time-picker .id=${`${t?.id.toString()}-min`} .value=${r} overlay-positioning=fixed lang=${m.getLocale()??"en"??h} @calciteInputTimePickerChange=${this.handleTimePickerRangeChange.bind(this,t,e,!0)}></calcite-input-time-picker><calcite-input-time-picker .id=${`${t?.id.toString()}-max`} .value=${o} overlay-positioning=fixed lang=${m.getLocale()??"en"??h} @calciteInputTimePickerChange=${this.handleTimePickerRangeChange.bind(this,t,e,!1)}></calcite-input-time-picker><calcite-action @click=${this.handleResetTimePicker.bind(this,t,e)} icon=reset .text=${this._messages.resetTimePicker} title=${this._messages.resetTimePicker??h} scale=s></calcite-action></div></label>`:void 0}renderFooter(){let e=this.closeBtnText??this._messages.close,t=this.closeBtn&&this.resetBtn?"half":"full";return l`<div class=${p(d.footer)} slot=footer>${this.resetBtn?l`<calcite-button appearance=outline .width=${t} @click=${this.handleResetFilter} ${w(this.resetBtnEl)}>${this._messages.resetFilter}</calcite-button>`:void 0}${this.closeBtn?l`<calcite-button appearance=solid .width=${t} kind=brand @click=${this.closeBtnOnClick}>${e}</calcite-button>`:void 0}</div>`}renderZoomTo(e){let t=e?.sublayerId?`zoom-to-${e.id}-${e.sublayerId}`:`zoom-to-${e.id}`;return this.zoomBtn?l`<calcite-action id=${t??h} slot=actions-end appearance=transparent .text=${this._messages.zoomTo} title=${this._messages.zoomTo??h} scale=s icon=magnifying-glass-plus @click=${this.handleZoomTo.bind(this,e)}></calcite-action>`:void 0}};I("instant-apps-filter-list",C);return C},"geometry/support/jsonUtils","intl","WebMap","WebScene")
|
|
2
|
+
import{a as L}from"./2D6XDWYA.js";import{a as x}from"./ONARC6AZ.js";import{a as S}from"./LHG6NOEP.js";import{b as I}from"./CVHXDPJO.js";import"./RMEDO4JC.js";import"./ISFTCFSJ.js";import{E as $,F as w,G as k,I as p,h as F,i as l,l as h,q as b}from"./FFF5HUPM.js";import"./QPIMTXPL.js";export default $arcgis.t(([T,m,P,O])=>{var D="instant-apps-filter-list calcite-mode-light",M="instant-apps-filter-list calcite-mode-dark",g=["feature","geojson","wfs","csv","scene","subtype-group","point-cloud","map-image","sublayer"];function v(f){return f.replaceAll("'","''")}function y(f,e=!1){if(f){let t=new Date(f),i=`${t.getFullYear()}-${t.getMonth()+1}-${t.getDate()}`;if(e){let s=`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}`;return`${i} ${s}`}else return i}}function _(f){if(f!=null){f.value=["",""];let e=f.shadowRoot?.querySelectorAll("calcite-input");if(e!=null)for(let t of e)t.value=""}}var R=F`:host{display:block}.instant-apps-filter-list *{box-sizing:border-box}.instant-apps-filter-list__container{height:100%}.instant-apps-filter-list__container calcite-block{--calcite-internal-block-actions-spacing: 0}.instant-apps-filter-list__container calcite-block calcite-action[slot=actions-end]{height:100%}.instant-apps-filter-list__container calcite-block:last-of-type{margin-bottom:0}.instant-apps-filter-list__footer{padding:12px;display:flex}.instant-apps-filter-list__footer calcite-button:nth-child(2){margin-left:6px}.instant-apps-filter-list__item-container,.instant-apps-filter-list__item-container--user-input{display:flex;justify-content:space-between;align-items:center}.instant-apps-filter-list__item-container:not(:last-child),.instant-apps-filter-list__item-container--user-input:not(:last-child){padding-bottom:20px}.instant-apps-filter-list__item-container--user-input{margin:0;display:flex;flex-direction:column;align-items:flex-start}.instant-apps-filter-list__item-container--user-input>span{margin:0 0 6px;font-size:14px;font-weight:400}.instant-apps-filter-list__item-container--user-input calcite-combobox{width:100%;font-size:16px;--calcite-combobox-input-height: 24px}.instant-apps-filter-list__number-input-container{width:100%;display:flex;justify-content:center}.instant-apps-filter-list__number-input-container calcite-slider{width:90%}.instant-apps-filter-list__date-picker-input-container{display:flex;align-items:center;justify-content:unset;width:100%}.instant-apps-filter-list__date-picker-input-container calcite-action{height:65px;border-top:1px solid var(--calcite-color-border-input);border-right:1px solid var(--calcite-color-border-input);border-bottom:1px solid var(--calcite-color-border-input)}.instant-apps-filter-list__time-picker-input-container{display:grid;grid-template-columns:auto 32px;width:100%}.instant-apps-filter-list__time-picker-input-container calcite-input-time-picker:first-child{grid-column:1;grid-row:1}.instant-apps-filter-list__time-picker-input-container calcite-input-time-picker:last-child{grid-column:1;grid-row:2}.instant-apps-filter-list__time-picker-input-container calcite-action{grid-column:2;grid-row:1/span 2;height:64px;width:33px;border-top:1px solid var(--calcite-color-border-input);border-right:1px solid var(--calcite-color-border-input);border-bottom:1px solid var(--calcite-color-border-input)}.instant-apps-filter-list__title{margin-right:20px}.instant-apps-filter-list__title>p{font-size:14px;font-weight:400;margin:0}.instant-apps-filter-list__checkbox-container{display:flex}.instant-apps-filter-list__checkbox-container calcite-checkbox{height:18px}.instant-apps-filter-list__operator-description{margin:0;--calcite-font-size--1: 12px}.instant-apps-filter-list calcite-input-date-picker{--calcite-font-size--1: 16px}@media(prefers-reduced-motion){.instant-apps-filter-list calcite-loader{--calcite-internal-duration-factor: 2;--calcite-internal-animation-timing-slow: .6s }}.instant-apps-filter-list.calcite-mode-dark .instant-apps-filter-list__header-container{background:#2b2b2b;color:#fff}.instant-apps-filter-list.calcite-mode-dark .instant-apps-filter-list__operator-description{background:#353535}`,d={filterContainer:"instant-apps-filter-list__container",footer:"instant-apps-filter-list__footer",filterItemTitle:"instant-apps-filter-list__title",filterItemContainer:"instant-apps-filter-list__item-container",filterUIItemContainer:"instant-apps-filter-list__item-container--user-input",checkboxContainer:"instant-apps-filter-list__checkbox-container",numberInputContainer:"instant-apps-filter-list__number-input-container",dateInputContainer:"instant-apps-filter-list__date-picker-input-container",timeInputContainer:"instant-apps-filter-list__time-picker-input-container",operatorDesc:"instant-apps-filter-list__operator-description"},C=class extends k{constructor(){super(...arguments),this._messages=S({name:"instant-apps-filter-list",blocking:!0}),this.resetBtnEl=$(),this.panelEl=$(),this.isLayerExpUpdated=!1,this.isInitUpdateComplete=!1,this.baseClass=D,this.autoUpdateUrl=!1,this.closeBtn=!1,this.comboboxOverlayPositioning="absolute",this.openFilters=!1,this.extentSelector=!1,this.filterCount=0,this.zoomBtn=!0,this.resetBtn=!0,this.resetFiltersOnDisconnect=!0,this.filterListReset=b(),this.filterUpdate=b()}static{this.properties={loading:16,filterLayerExpressions:16,baseClass:16,initDefExpressions:16,initMapImageExpressions:16,initPointCloudFilters:16,layerExpressions:0,autoUpdateUrl:5,closeBtn:5,closeBtnOnClick:0,comboboxOverlayPositioning:1,closeBtnText:1,openFilters:5,extentSelector:5,extentSelectorConfig:0,urlParams:0,filterCount:9,view:0,zoomBtn:5,resetBtn:5,resetFiltersOnDisconnect:5}}static{this.styles=R}async forceReset(){return this.resetExpressions(),await Promise.resolve(!0)}async getCurrentLayerExpressions(){let e=structuredClone(this.filterLayerExpressions);return await Promise.resolve(e)}async getFilterInitState(){return await Promise.resolve({initDefExpressions:this.initDefExpressions,initMapImageExpressions:this.initMapImageExpressions,initPointCloudFilters:this.initPointCloudFilters})}async handleUpdatingT9nData(e){return e==null?await Promise.resolve(!0):(this.filterLayerExpressions?.forEach(t=>{let i=e?.find(s=>s.id===t.id);i!=null&&(t.title=i.title,t.expressions?.forEach(s=>{let n=i.expressions?.find(a=>a.id===s.id);n!=null&&(s.name=n.name)}))}),await Promise.resolve(!0))}async updateInitDefExpressions(e){return this.initDefExpressions=e.initDefExpressions,this.initMapImageExpressions=e.initMapImageExpressions,this.initPointCloudFilters=e.initPointCloudFilters,await Promise.resolve(!0)}connectedCallback(){super.connectedCallback(),!(this.layerExpressions==null&&this.view==null)&&(this.isLayerExpUpdated=!0,this.filterLayerExpressions=structuredClone(this.layerExpressions),this.isInitUpdateComplete=!1,this.handleLayerExpressionsUpdate())}async load(){this.baseClass=L(this.el)==="dark"?M:D,!this.isLayerExpUpdated&&(this.isLayerExpUpdated=!0,this.filterLayerExpressions=this.layerExpressions!=null?structuredClone(this.layerExpressions):[],this.view!=null&&this.handleLayerExpressionsUpdate())}willUpdate(e){e.has("view")&&this.handleWhenView(),e.has("layerExpressions")&&(this.isInitUpdateComplete=!1,this.resetAllFilters(),this.filterLayerExpressions=structuredClone(this.layerExpressions),this.handleLayerExpressionsUpdate())}updated(){this.resetBtnEl.value!=null&&(this.resetBtnEl.value.disabled=!(this.filterLayerExpressions&&this.filterLayerExpressions.length>0))}disconnectedCallback(){super.disconnectedCallback(),this.resetFiltersOnDisconnect&&(this.isLayerExpUpdated=!1,this.filterLayerExpressions=structuredClone(this.layerExpressions),this.resetAllFilters())}initFilterConfig(){if(this.filterLayerExpressions&&this.filterLayerExpressions.length>0){if(this.filterLayerExpressions.length===1){let{operator:e}=this.filterLayerExpressions[0],t=e?.trim()==="OR"?"orOperator":"andOperator",i=this.renderZoomTo(this.filterLayerExpressions[0]);return l`<calcite-block class=${p(d.operatorDesc)} .heading=${this._messages[t]} expanded>${i}${this.renderFilter(this.filterLayerExpressions[0])}</calcite-block>`}else if(this.filterLayerExpressions.length>1)return this.renderLayerBlock()}}handleResetDatePicker(e,t){let i=this.panelEl.value?.querySelector(`[id='${e.id}']`);i&&(_(i),e.active=!1,e.definitionExpression=void 0,e.range=void 0,this.generateOutput(t))}handleResetTimePicker(e,t){this.resetTimePicker(e),e.active=!1,e.definitionExpression=void 0,e.range=void 0,this.generateOutput(t)}resetTimePicker(e){let t=this.panelEl.value?.querySelector(`[id='${e.id}-min']`),i=this.panelEl.value?.querySelector(`[id='${e.id}-max']`);!t||!i||(t.value=e.min,i.value=e.max)}initInput(e,t){let{type:i,numDisplayOption:s,displayOption:n}=t;if(i==="string"||i==="coded-value"||(i==="number"||i==="range"||i==="date"||i==="time-only")&&(s==="drop-down"||n==="drop-down"))return this.renderCombobox(e,t);if(i==="number"||i==="range")return this.renderNumberSlider(e,t);if(i==="date")return this.renderDatePicker(e,t);if(i==="time-only")return this.renderTimePicker(e,t)}async initExpressions(){if(this.loading=!0,this.filterLayerExpressions==null||this.view==null){this.loading=!1;return}await this.processExpressions(),this.loading=!1}async processExpressions(){this.filterLayerExpressions&&await Promise.all(this.filterLayerExpressions.map(async e=>{await Promise.all((e.expressions||[]).map(async t=>await this.setInitExpression(e,t)))}))}handleResetFilter(){this.resetExpressions(),this.resetAllFilters(),this.generateURLParams(),this.filterListReset.emit()}resetExpressions(){this.filterLayerExpressions?.forEach(e=>{e.expressions?.forEach(t=>{let{type:i,numDisplayOption:s,displayOption:n}=t,a="";i==="string"||i==="coded-value"||(i==="number"||i==="range"||i==="date"||i==="time-only")&&(s==="drop-down"||n==="drop-down")?a="combobox":i==="date"?a="datePicker":i==="number"||i==="range"?a="numberRange":i==="time-only"&&(a="timePicker"),a?this.resetExpressionUI(a,t):this.resetCheckbox(t),t.active=!1})})}resetExpressionUI(e,t){let{id:i}=t;switch(e){case"combobox":{t.selectedFields=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&Array.from(s.children).forEach(n=>{n.selected=!1});break}case"datePicker":{t.range=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&_(s);break}case"numberRange":{t.range=void 0;let s=this.panelEl.value?.querySelector(`[id='${i}']`);s&&(s.minValue=t.min,s.maxValue=t.max);break}case"timePicker":t.range=void 0,this.resetTimePicker(t)}}resetCheckbox(e){let{id:t}=e,i=this.panelEl.value?.querySelector(`[id='${t}']`);i&&(i.checked=!1)}resetAllFilters(){this.view?.map?.allLayers?.concat(this.view?.map?.allTables.toArray()??[])?.forEach(e=>{if(!g.includes(e.type))return;let t=e;if(t.type==="point-cloud"){if(!this.initPointCloudFilters)return;t.filters=this.initPointCloudFilters[t.id]}else if(t.type==="map-image")t.allSublayers.forEach(i=>{i.definitionExpression=this.initMapImageExpressions?.[t.id]?.[i.id]??""});else{if(this.initDefExpressions==null)return;t.definitionExpression=this.initDefExpressions[t.id]}})}async updateStringExpression(e,t){let i=this.findFilterLayer(e);return i?(await this.getFeatureAttributes(i,t),this.handleDateField(i,t),t?.selectedFields?(t.definitionExpression=this.createDefinitionExpression(t),!0):!1):!1}handleDateField(e,t){t.type==="date"&&e.fields.find(({name:i})=>i===t.field)?.type==="date-only"&&(t.dateOnly=!0)}createDefinitionExpression(e){if(!e.selectedFields?.length)return"";let t=e.selectedFields.map(i=>typeof i=="number"?i:`'${v(i)}'`);return this.getSelectedFieldsDefExpression(e,t)}async updateNumberExpression(e,t){if(!t?.min&&t?.min!==0||!t?.max&&t?.max!==0){let i=this.findFilterLayer(e);if(!i)return!1;let{field:s}=t;if(s!=null)if(this.setExpressionFormat(i,t,s),t?.numDisplayOption==="drop-down"||t?.displayOption==="drop-down")await this.getFeatureAttributes(i,t);else{let n=(await this.calculateMinMaxStatistics(i,s))?.[0]?.attributes;if(t.format?.places!=null?(t.min=this.roundMinNumberDown(n[`min${s}`],t.format.places),t.max=this.roundMaxNumberUp(n[`max${s}`],t.format.places)):(t.min=n[`min${s}`],t.max=n[`max${s}`]),t?.range&&Object.keys(t.range).length){let{min:a,max:r}=t.range;return t.definitionExpression=`${t.field} BETWEEN ${a} AND ${r}`,!0}}}return!1}async updateDateExpression(e,t){let{field:i,range:s}=t,n=this.findFilterLayer(e);if(!n)return!1;let a=(await this.calculateMinMaxStatistics(n,i))?.[0]?.attributes;if(t.min=y(a[`min${i}`]),t.max=y(a[`max${i}`]),s!=null&&(s?.max!=null||s?.min!=null)){let{min:r,max:o}=s;if(r=r?.replace("+"," "),o=o?.replace("+"," "),r||o){let c=o&&!r?"<":!o&&r?">":null;return c?t.definitionExpression=`${i} ${c} '${r??o}'`:t.definitionExpression=`${i} BETWEEN '${r}' AND '${o}'`,!0}}return!1}async updateTimeExpression(e,t){let{field:i,range:s}=t,n=this.findFilterLayer(e);if(!n)return!1;let a=(await this.calculateMinMaxStatistics(n,i))?.[0]?.attributes;if(t.min=a[`min${i}`],t.max=a[`max${i}`],s!=null&&(s?.max!=null||s?.min!=null)){let{min:r,max:o}=s;if(r||o){let c=o&&!r?"<":!o&&r?">":null;return c?t.definitionExpression=`${i} ${c} TIME '${r??o}'`:t.definitionExpression=`${i} BETWEEN TIME '${r}' AND TIME '${o}'`,!0}}return!1}async updateCodedValueExpression(e,t,i){if(!i?.domain||i?.domain?.type!=="coded-value")return!1;let s=this.findFilterLayer(e);if(!s)return!1;await this.getFeatureAttributes(s,t);let n=i.domain.codedValues.reduce((a,{code:r,name:o})=>(a[r]=o,a),{});if(t.codedValues=n,this.sortCodedValues(t),t.selectedFields?.length){let a=t.selectedFields.map(r=>typeof r=="number"?r:`'${v(r)}'`).join(",");return t.definitionExpression=`${t.field} IN (${a})`,!0}return!1}updateRangeExpression(e,t){if(!t?.domain||t?.domain?.type!=="range")return!1;let{field:i,range:s}=e;return e.min=t.domain.minValue,e.max=t.domain.maxValue,s&&Object.keys(s).length?(e.definitionExpression=`${i} BETWEEN ${s.min} AND ${s.max}`,!0):!1}async getFeatureAttributes(e,t){if(!this.isLayerSupported(e)){t.fields=[];return}let i=await this.getQueryLayer(e),{maxRecordCount:s,supportsMaxRecordCountFactor:n}=this.extractQueryCapabilities(e),a=await i.queryFeatureCount(),r=this.createQuery(i,t);await this.queryDistinctFeatures(i,r,t),this.shouldPaginate(s,a,n)&&this.handlePagination(i,r,s,n,a,t)}isLayerSupported(e){return e&&g.includes(e.type)}extractQueryCapabilities(e){return{maxRecordCount:e.capabilities?.query?.maxRecordCount??e.sourceJSON?.maxRecordCount,supportsMaxRecordCountFactor:e.capabilities?.query?.supportsMaxRecordCountFactor}}createQuery(e,t){let i=e.createQuery();this.applyCacheHint(e,i);let s=t?.field;if(s){let n=this.getInitDefExprFromLayer(e);i.where=n||"1=1",i.outFields=[s],i.orderByFields=[`${s} ASC`],i.returnDistinctValues=!0,i.returnGeometry=!1,i.maxRecordCountFactor=5,this.applyQueryGeometryFromExtentSelector(i)}return i}async queryDistinctFeatures(e,t,i){if(!t.outFields)return;let s=await this.queryForFeatures(e,t,t.outFields[0]);s?.length&&(i.fields=[...new Set(s)],i.type==="string"?i.fields=i.fields.sort((n,a)=>n.localeCompare(a)):i.type==="number"&&(i.fields=i.fields.sort((n,a)=>n-a)))}getQueryCount(e,t){return t?e*5:e}shouldPaginate(e,t,i){let s=this.getQueryCount(e,i);return e!=null&&t>s}async handlePagination(e,t,i,s,n,a){let r=this.getQueryCount(i,s),o=[];for(let c=r;c<n;c+=r){let u=t.clone();u.num=i,u.start=c,o.push(this.queryForFeatures(e,u,t?.outFields?.[0]??""))}Promise.all(o).then(c=>{c.forEach(u=>{u?.length&&a.fields&&a.fields.push(...u)}),a.type==="string"?a.fields=[...new Set(a.fields)].sort((u,E)=>u.localeCompare(E)):a.type==="number"?a.fields=[...new Set(a.fields)].sort((u,E)=>u-E):a.type==="coded-value"&&a.codedValues?this.sortCodedValues(a):a.fields=[...new Set(a.fields)].sort()})}async queryForFeatures(e,t,i){return(await e.queryFeatures(t))?.features.filter(s=>{let n=s.attributes?.[i];return n!=null&&n!==""})?.map(s=>s.attributes?.[i])}async calculateMinMaxStatistics(e,t){if(!e||!g.includes(e.type)||!t)return[];let i=this.createStatisticsQuery(e,t);return(await e.queryFeatures(i))?.features||[]}createStatisticsQuery(e,t){let i=e.createQuery();return i.where=this.getInitDefExprFromLayer(e)||"1=1",this.applyCacheHint(e,i),i.outStatistics=[{onStatisticField:t,outStatisticFieldName:`max${t}`,statisticType:"max"},{onStatisticField:t,outStatisticFieldName:`min${t}`,statisticType:"min"}],this.applyQueryGeometryFromExtentSelector(i),i}getExtent(e,t){if(e&&t){let{constraints:i}=t,s={...i}.geometry;if(s){let n="extent"in s?s:T.fromJSON(s);if(n?.type==="extent"||n?.type==="polygon")return n}}}async setInitExpression(e,t){if(!t.field||!t.type){await this.updateExpression(e,t,void 0);return}let i=this.findFilterLayer(e);i&&((i.loadStatus==="not-loaded"||i.loadStatus==="failed")&&await i.load(),await i.when(async()=>{let s=i.fields?.find(({name:a})=>a===t.field),n=s?.domain?.type;t.type=n==="coded-value"||n==="range"?n:t.type,await this.updateExpression(e,t,s)}))}async updateExpression(e,t,i){let s=await this.handleExpressionType(e,t,i);this.requestUpdate(),s&&this.generateOutput(e)}async handleExpressionType(e,t,i){switch(t.type){case"string":return await this.updateStringExpression(e,t);case"number":return await this.updateNumberExpression(e,t);case"date":return await this.updateDateExpressionBasedOnDisplayOption(e,t);case"time-only":return await this.updateTimeExpressionBasedOnDisplayOption(e,t);case"coded-value":return await this.updateCodedValueExpression(e,t,i);case"range":return await this.updateRangeExpressionBasedOnDisplayOption(e,t,i);case"checkbox":case null:case void 0:return t.active??!1;default:return!1}}async updateDateExpressionBasedOnDisplayOption(e,t){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):await this.updateDateExpression(e,t)}async updateTimeExpressionBasedOnDisplayOption(e,t){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):await this.updateTimeExpression(e,t)}async updateRangeExpressionBasedOnDisplayOption(e,t,i){return t.displayOption==="drop-down"?await this.updateStringExpression(e,t):this.updateRangeExpression(t,i)}updateRangeExpressions(e,t,i,s){let n=this.getInitDefExprFromLayerExpression(t);(s||s===0)&&(i||i===0)&&(s===e?.min&&i===e?.max?(e.definitionExpression=void 0,e.active=!1):(e.definitionExpression=n?`(${n}) AND ${e?.field} BETWEEN ${s} AND ${i}`:`${e?.field} BETWEEN ${s} AND ${i}`,e.active=!0)),e.range={min:s,max:i}}handleCheckboxChange(e,t,i){let s=i.target;t.active=s.checked,this.generateOutput(e)}handleSliderChange(e,t,i){let{maxValue:s,minValue:n}=i.target;this.updateRangeExpressions(e,t,s,n),this.generateOutput(t)}handleComboSelect(e,t,i){let s=i.target.selectedItems,{field:n,type:a}=e;if(e.selectedFields=s.map(({value:r})=>r),s.length){let r=s.map(({value:o})=>typeof o=="number"?o:`'${v(o)}'`);e.definitionExpression=this.getSelectedFieldsDefExpression(e,r),e.active=!0}else e.definitionExpression=void 0,e.active=!1;this.generateOutput(t)}getSelectedFieldsDefExpression(e,t){let{field:i,type:s}=e;return s==="date"?t.map(n=>this.buildDateExpression(n,i)).join(" OR "):s==="time-only"?`${i} IN (${t.map(n=>`TIME ${n}`).join(",")})`:`${i} IN (${t.join(",")})`}handleDatePickerRangeChange(e,t,i){let s=i.target,[n,a]=s.valueAsDate,r=n?y(Math.floor(n.getTime()),!0):void 0,o=a?y(Math.floor(a.getTime()),!0):void 0;(r||o)&&(e.definitionExpression=this.constructDefinitionExpression(e.field,r,o),e.range={min:r,max:o},e.active=!0,this.generateOutput(t))}handleTimePickerRangeChange(e,t,i,s){let n=s.target,a=n.value;e.range==null&&(e.range={min:void 0,max:void 0}),i?e.max&&a>e.max?(e.range.min=e.max,n.value=e.range.min):e.min&&a<e.min?(e.range.min=e.min,n.value=e.range.min):e.range.min=a:e.max&&a>e.max?(e.range.max=e.max,n.value=e.range.max):e.min&&a<e.min?(e.range.max=e.min,n.value=e.range.max):e.range.max=a,(e.range.min||e.range.max)&&(e.definitionExpression=this.constructTimeDefinitionExpression(e.field,e.range.min,e.range.max),e.active=!0,this.generateOutput(t))}constructDefinitionExpression(e,t,i){return t?i?`${e} BETWEEN '${t}' AND '${i}'`:`${e} > '${t}'`:`${e} < '${i}'`}constructTimeDefinitionExpression(e,t,i){return t?i?`${e} BETWEEN TIME '${t}' AND TIME '${i}'`:`${e} > TIME '${t}'`:`${e} < TIME '${i}'`}handleURLParams(){if(!("URLSearchParams"in window))return;let e=new URLSearchParams(document.location.search).get("filter");if(!e){this.filterCount=0;return}let t=e.split(";").map(i=>JSON.parse(i));this.filterCount=this.applyFilters(t)}applyFilters(e){let t=0;return e.forEach(i=>{let s=this.filterLayerExpressions?.find(n=>n.id===i.layerId);s&&s.expressions?.forEach(n=>{n.id?.toString()===i.expressionId?.toString()&&(this.activateExpression(n,i),t++)})}),t}activateExpression(e,t){e.active=!0,t.type==="range"?e.range=t.range:t.type==="select"&&(e.selectedFields=t.selectedFields)}createURLParamExpression(e,t){let{id:i,range:s,selectedFields:n,type:a}=t;return a==="string"||a==="coded-value"||t?.numDisplayOption==="drop-down"||t?.displayOption==="drop-down"?{type:"select",layerId:e.id,expressionId:i.toString(),selectedFields:n}:a==="number"||a==="range"||a==="date"||a==="time-only"?{type:"range",layerId:e.id,expressionId:i.toString(),range:s}:{layerId:e.id,expressionId:i.toString()}}autoUpdateURLCheck(e){if(this.autoUpdateUrl){let t=e.toString()?`${window.location.pathname}?${e}`.trim():window.location.pathname;window.history.replaceState({},"",t)}}generateURLParams(){if(!("URLSearchParams"in window))return;let e=new URLSearchParams(window.location.search),t=this.filterLayerExpressions?.flatMap(i=>i?.expressions?.filter(s=>s.active).map(s=>JSON.stringify(this.createURLParamExpression(i,s)))||[])||[];this.filterCount=t.length,t.length>0?e.set("filter",t.join(";")):e.delete("filter"),this.autoUpdateURLCheck(e),this.urlParams=e}updateFilter(e,t,i){let{id:s}=e,n=this.view.map?.findLayerById(s)??this.view.map?.findTableById(s);if(n!=null)if(n.type==="point-cloud")this.updateFilterLayerPCLFilter(n,i);else if(n.type==="map-image"){let a=n.findSublayerById(e?.sublayerId);a!=null&&this.updateFilterLayerDefExpression(a,t,e)}else this.updateFilterLayerDefExpression(n,t,e)}updateFilterLayerDefExpression(e,t,i){let{operator:s}=i,n=this.getInitDefExprFromLayer(e),a=t?.length>0&&n!=null&&n!==""?`(${t.join(s)}) AND (${n})`:t.length>0?t.join(s):n;e.definitionExpression=a}updateFilterLayerPCLFilter(e,t){e.filters=t}async handleWhenView(){this.view!=null&&(await this.view.map.loadAll(),await this.handleLayerExpressionsUpdate())}async handleLayerExpressionsUpdate(){this.isInitUpdateComplete||(this.updateInitExpressions(),this.handleURLParams(),this.initExpressions())}async handleZoomTo(e){let t=e?.sublayerId?`#zoom-to-${e.id}-${e.sublayerId}`:`#zoom-to-${e.id}`,i=this.panelEl.value?.querySelector(t),s=(n,a)=>{i&&(i.loading=n,i.disabled=a)};if(s(!0,!0),await this.getZoomToExtent(e),this.zoomToExtent){let n=this.zoomToExtent.type==="point"&&this.zoomToExtent.count===1?{target:this.zoomToExtent.extent,zoom:10}:this.zoomToExtent.extent;await this.view.goTo(n)}s(!1,!1)}async getZoomToExtent(e){let t=this.view.allLayerViews.find(({layer:s})=>s.id===e.id).layer,i=t.type==="map-image"?t.findSublayerById(e.sublayerId):t;if(i&&i.type!=="point-cloud"&&g.includes(i?.type)){let s=await this.getQueryLayer(i),n=s.createQuery();n.where=s.definitionExpression??"1=1";let a=await s.queryExtent(n);this.zoomToExtent={...a,type:s.geometryType}}}generateOutput(e){if(this.view==null)return;let t=[],i=[];if(e){for(let s of e.expressions){let{active:n,definitionExpression:a,pointCloudFilters:r}=s;n&&a&&t.push(`(${a})`),n&&r!=null&&r.length>0&&(i=i.concat(r))}this.updateFilter(e,t,i),this.generateURLParams(),this.filterUpdate.emit()}}numberWithCommas(e){return e.toLocaleString("en-US",{maximumFractionDigits:20})}async getInitMap(){let e=this.view.map,t;return this.view.type==="2d"?t=new P({portalItem:{id:e.portalItem.id}}):t=new O({portalItem:{id:e.portalItem.id}}),await t.load(),t}scientificRounding(e,t,i){if(e==null)return;let s;if(!String(e).includes("e"))s=Math[i](e*Math.pow(10,t))/Math.pow(10,t);else{let[n,a]=String(e).split("e").map(o=>Number(o)),r=a+t;s=Math[i](+`${n}e${r}`)*Math.pow(10,-t)}return+s.toFixed(t)}roundMinNumberDown(e,t){return this.scientificRounding(e,t,"floor")}roundMaxNumberUp(e,t){return this.scientificRounding(e,t,"ceil")}roundNumber(e,t){return this.scientificRounding(e,t,"round")??e}setExpressionFormat(e,t,i){if(e?.popupTemplate!=null){let s=e?.popupTemplate.fieldInfos?.find(({fieldName:n})=>n===i);s?.format&&(t.format=s.format)}}getInitDefExprFromLayer(e){return e.type==="sublayer"?this.initMapImageExpressions?.[e?.layer?.id??""]?.[e.id]??"":this.initDefExpressions?.[e.id]??""}getInitDefExprFromLayerExpression(e){return e?.sublayerId!=null?this.initMapImageExpressions?.[e.id]?.[e.sublayerId]??"":this.initDefExpressions?.[e.id]??""}findFilterLayer(e){let t=this.view.map?.allLayers.concat(this.view.map?.allTables.toArray()??[])?.find(({id:i})=>i===e.id);return t?.type==="map-image"?t?.findSublayerById(e.sublayerId):t}createLabel(e,t){if(e.type==="coded-value")return e?.codedValues?.[t]??t;if(e.type==="number"&&typeof t=="number"){let i=t;return e.format?.places!=null&&(i=this.roundNumber(t,e.format.places)),e.format?.digitSeparator?this.numberWithCommas(i):i}if(e.type==="date"&&!e.dateOnly){let i=m.convertDateFormatToIntlOptions("short-date-long-time");return m.formatDate(t,i)}if(e.type==="time-only"){let i=m.convertDateFormatToIntlOptions("long-time");return m.formatTimeOnly(t,i)}return t}buildDateExpression(e,t){if(e){let i=new Date(e),s=new Date(e),n=new Date(s.setDate(i.getDate()+1)),a=`${i.getFullYear()}-${i.getMonth()+1}-${i.getDate()}`,r=`${i.getHours()}:${i.getMinutes()}:${i.getSeconds()}`,o=`${n.getHours()}:${n.getMinutes()}:${n.getSeconds()}`,c=`${n.getFullYear()}-${n.getMonth()+1}-${n.getDate()}`;return`${t} BETWEEN '${a} ${r}' AND '${c} ${o}'`}}async getQueryLayer(e){let t=e.type==="sublayer"?await e.createFeatureLayer():e;if(!t)throw new Error("Failed to create feature layer");return t}applyCacheHint(e,t){e?.capabilities?.query?.supportsCacheHint&&(t.cacheHint=!0)}applyQueryGeometryFromExtentSelector(e){if(!this.extentSelector||!this.extentSelectorConfig)return;let t=this.getExtent(this.extentSelector,this.extentSelectorConfig);t&&(e.geometry=t,e.spatialRelationship="intersects")}async updateInitExpressions(){if(!this.view?.map)return;let e=await this.getInitMap();this.initDefExpressions={},this.initPointCloudFilters={},this.initMapImageExpressions={},e.allLayers.concat(e.allTables.toArray()??[]).forEach(t=>{if(!g.includes(t.type))return;let i=t;if(i.type==="point-cloud")this.initPointCloudFilters||(this.initPointCloudFilters={}),this.initPointCloudFilters[i.id]=i.filters;else if(i.type==="map-image")this.initMapImageExpressions||(this.initMapImageExpressions={}),this.initMapImageExpressions[i.id]=i.allSublayers.reduce((s,n)=>(s[n.id]=n.definitionExpression??"",s),{});else{if(!this.initDefExpressions)return;this.initDefExpressions[i.id]=i.definitionExpression??""}}),this.isInitUpdateComplete=!0}sortCodedValues(e){typeof e.fields?.[0]=="number"?e.fields=[...new Set(e.fields)].sort((t,i)=>{let s=e.codedValues?.[t],n=e.codedValues?.[i];return(s??t)-(n??i)}):e.fields=[...new Set(e.fields)].sort((t,i)=>{let s=e.codedValues?.[t],n=e.codedValues?.[i],a=s??t,r=n??i;return a.localeCompare(r)})}render(){let e=this.loading?this.renderLoading():this.initFilterConfig(),t=this.renderFooter();return l`<calcite-panel class=${p(this.baseClass)} ${w(this.panelEl)}><slot slot=header-content name=filter-header-content></slot><slot slot=header-actions-end name=filter-header-actions-end></slot>${x("filter-container",l`<div class=${p(d.filterContainer)}>${e}${t}</div>`)}</calcite-panel>`}renderLoading(){return l`<calcite-loader label="Loading filters..."></calcite-loader>`}renderFilter(e){let{id:t}=e;return e.expressions.map((i,s)=>i.type==="checkbox"||i.type==null?x(`${t}-${s}`,l`<div class=${p(d.filterItemContainer)}><div class=${p(d.filterItemTitle)}><p>${i.name}</p></div><div class=${p(d.checkboxContainer)}><calcite-checkbox id=${i.id.toString()??h} scale=l .checked=${i?.active} @calciteCheckboxChange=${this.handleCheckboxChange.bind(this,e,i)}></calcite-checkbox></div></div>`):this.initInput(e,i))}renderLayerBlock(){return this.filterLayerExpressions?.map(e=>this.renderFilterBlocks(e))}renderFilterBlocks(e){let t=this.renderFilter(e),{operator:i}=e,s=i?.trim()==="OR"?"orOperator":"andOperator",n=this.renderZoomTo(e);return x(e.id,l`<calcite-block .heading=${e.title} .description=${this._messages[s]} .expanded=${this.openFilters?!0:void 0} collapsible>${n}${t}</calcite-block>`)}renderCombobox(e,t){return x("combo-select",l`<label class=${p(d.filterUIItemContainer)}><span>${t.name}</span><calcite-combobox id=${t.id.toString()??h} @calciteComboboxChange=${this.handleComboSelect.bind(this,t,e)} .label=${t.name} .placeholder=${t.placeholder} selection-mode=multiple max-items=6 scale=s .overlayPositioning=${this.comboboxOverlayPositioning}>${t.fields?.map((i,s)=>this.renderComboboxItem(t,i,s))}</calcite-combobox></label>`)}renderComboboxItem(e,t,i){let s=this.createLabel(e,t),n=e?.selectedFields?.includes(t)??!1;return x(`${s}-${i}`,l`<calcite-combobox-item .value=${t} .heading=${`${s}`} .selected=${n}></calcite-combobox-item>`)}renderNumberSlider(e,t){let i=t?.min,s=t?.max,n=t?.step?t.step:1,a=i!=null&&s!=null,r=t?.field??"",o=t?.range?.min!=null?t.range.min:i,c=t?.range?.max!=null?t.range.max:s,u=[o,c];return a?x(t?.id.toString(),l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.numberInputContainer)}><calcite-slider id=${t?.id.toString()??h} @calciteSliderChange=${this.handleSliderChange.bind(this,t,e)} .min=${i} .max=${s} .minValue=${i} .maxValue=${s} .minLabel=${this._messages.minSlider?.replace("{field}",r)} .maxLabel=${this._messages.maxSlider?.replace("{field}",r)} .step=${n} label-handles snap .value=${u} .groupSeparator=${t?.format?.digitSeparator} precise></calcite-slider></div></label>`):void 0}renderDatePicker(e,t){let{min:i,max:s}=t,n=[t?.range?.min,t?.range?.max];return i!=null&&s!=null?l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.dateInputContainer)}><calcite-input-date-picker id=${t?.id.toString()??h} @calciteInputDatePickerChange=${this.handleDatePickerRangeChange.bind(this,t,e)} .min=${i} .max=${s} calendars=1 overlay-positioning=fixed lang=${m.getLocale()??"en"??h} layout=vertical .value=${n} range></calcite-input-date-picker><calcite-action @click=${this.handleResetDatePicker.bind(this,t,e)} icon=reset .text=${this._messages.resetDatePicker} title=${this._messages.resetDatePicker??h} scale=s></calcite-action></div></label>`:void 0}renderTimePicker(e,t){let{min:i,max:s,range:n}=t,a=i!=null&&s!=null,r=n?.min!=null?n.min:i,o=n?.max!=null?n.max:s;return a?l`<label class=${p(d.filterUIItemContainer)}><span>${t?.name}</span><div class=${p(d.timeInputContainer)}><calcite-input-time-picker .id=${`${t?.id.toString()}-min`} .value=${r} overlay-positioning=fixed lang=${m.getLocale()??"en"??h} @calciteInputTimePickerChange=${this.handleTimePickerRangeChange.bind(this,t,e,!0)}></calcite-input-time-picker><calcite-input-time-picker .id=${`${t?.id.toString()}-max`} .value=${o} overlay-positioning=fixed lang=${m.getLocale()??"en"??h} @calciteInputTimePickerChange=${this.handleTimePickerRangeChange.bind(this,t,e,!1)}></calcite-input-time-picker><calcite-action @click=${this.handleResetTimePicker.bind(this,t,e)} icon=reset .text=${this._messages.resetTimePicker} title=${this._messages.resetTimePicker??h} scale=s></calcite-action></div></label>`:void 0}renderFooter(){let e=this.closeBtnText??this._messages.close,t=this.closeBtn&&this.resetBtn?"half":"full";return l`<div class=${p(d.footer)} slot=footer>${this.resetBtn?l`<calcite-button appearance=outline .width=${t} @click=${this.handleResetFilter} ${w(this.resetBtnEl)}>${this._messages.resetFilter}</calcite-button>`:void 0}${this.closeBtn?l`<calcite-button appearance=solid .width=${t} kind=brand @click=${this.closeBtnOnClick}>${e}</calcite-button>`:void 0}</div>`}renderZoomTo(e){let t=e?.sublayerId?`zoom-to-${e.id}-${e.sublayerId}`:`zoom-to-${e.id}`;return this.zoomBtn?l`<calcite-action id=${t??h} slot=actions-end appearance=transparent .text=${this._messages.zoomTo} title=${this._messages.zoomTo??h} scale=s icon=magnifying-glass-plus @click=${this.handleZoomTo.bind(this,e)}></calcite-action>`:void 0}};I("instant-apps-filter-list",C);return C},"geometry/support/jsonUtils","intl","WebMap","WebScene")
|