@esri/solutions-components 5.1.0-next.145 → 5.1.0-next.147
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/{LL647FJR.js → 2IGILR4T.js} +1 -1
- package/dist/cdn/{BQE6IVEF.js → 3A2YSBVB.js} +1 -1
- package/dist/cdn/{ZHXREM2D.js → 3KYQE6O5.js} +1 -1
- package/dist/cdn/{MEZL3ZHS.js → 3MRR3HKE.js} +25 -25
- package/dist/cdn/{QKJJHBMB.js → 42GXADY4.js} +1 -1
- package/dist/cdn/{L3UI7EZZ.js → 4DAGSZIC.js} +1 -1
- package/dist/cdn/{7ADKNWWI.js → 4FRYNYQ6.js} +1 -1
- package/dist/cdn/{5OFQVDNK.js → 4MAZNAHZ.js} +1 -1
- package/dist/cdn/{7CLM77HQ.js → 4SBOBTOR.js} +1 -1
- package/dist/cdn/{3V2UWENT.js → 4YCLQ3RW.js} +1 -1
- package/dist/cdn/{CVRBLJ5O.js → 5MPDXVRM.js} +1 -1
- package/dist/cdn/{ULUJKWT5.js → 6AUKNSKW.js} +1 -1
- package/dist/cdn/{RIHOGDUV.js → 6IUKH3E3.js} +1 -1
- package/dist/cdn/6K3C5JX2.js +2 -0
- package/dist/cdn/6VCG2ITQ.js +2 -0
- package/dist/cdn/{NOXANMDF.js → 757HAEJS.js} +1 -1
- package/dist/cdn/{P4XNRWG7.js → 7Q5BT35O.js} +1 -1
- package/dist/cdn/{RSCBZIAN.js → 7WIFBTQF.js} +12 -1
- package/dist/cdn/{I7XBRB6B.js → 7WYPODAB.js} +1 -1
- package/dist/cdn/AH3PJQ6A.js +2 -0
- package/dist/cdn/{C5ZH23YO.js → B5MBF4JC.js} +13 -13
- package/dist/cdn/BG4LNU44.js +2 -0
- package/dist/cdn/{IEN3TA4W.js → BH42V5CR.js} +1 -1
- package/dist/cdn/DD2Y5NOB.js +2 -0
- package/dist/cdn/{J5K2SIY6.js → DMM5WA5Q.js} +3 -3
- package/dist/cdn/{UKQPYE7U.js → DQQTSOMQ.js} +1 -1
- package/dist/cdn/{Y4KGXRSD.js → FWLPMS4Q.js} +1 -1
- package/dist/cdn/{M4II4TSX.js → G3C6IL5Y.js} +1 -1
- package/dist/cdn/{3DCFUYKP.js → GG4IIHQE.js} +1 -1
- package/dist/cdn/{MHVLVLRA.js → HYQVSB6C.js} +1 -1
- package/dist/cdn/I46CXTVR.js +2 -0
- package/dist/cdn/{A27DLHRU.js → IFONVCBL.js} +1 -1
- package/dist/cdn/IZSM7ZJK.js +2 -0
- package/dist/cdn/{MIH5YMTN.js → JMBANG5V.js} +1 -1
- package/dist/cdn/{G3F52QRW.js → JOAEH3CI.js} +1 -1
- package/dist/cdn/KETYOYXQ.js +2 -0
- package/dist/cdn/{GJD7AOUI.js → KH5WPLZK.js} +1 -1
- package/dist/cdn/{IDEOFV22.js → LTLR4VF3.js} +1 -1
- package/dist/cdn/{NIHPHDXG.js → LWT3JEQ6.js} +21 -52
- package/dist/cdn/LZDMYPQ2.js +75 -0
- package/dist/cdn/{Y6QJCLML.js → M3NML7ZV.js} +1 -1
- package/dist/cdn/NQH7ZZWD.js +2 -0
- package/dist/cdn/{6MOTC6CE.js → NV2DLQDN.js} +1 -1
- package/dist/cdn/OANAQ6HY.js +2 -0
- package/dist/cdn/PQL3UL3P.js +2 -0
- package/dist/cdn/{L6P26BYB.js → Q2DJUFVO.js} +1 -1
- package/dist/cdn/{LCV5GKUD.js → Q35DDH7J.js} +123 -123
- package/dist/cdn/QDKHYQJB.js +2 -0
- package/dist/cdn/{HPWNNMVU.js → QU25YPPX.js} +1 -1
- package/dist/cdn/{5NQNJZTE.js → RMO244NW.js} +1 -1
- package/dist/cdn/{HLKEBN2O.js → RRD4QUQS.js} +1 -1
- package/dist/cdn/RY6KZ77P.js +2 -0
- package/dist/cdn/{PBGG3TGN.js → RYBSWXQQ.js} +1 -1
- package/dist/cdn/{2UMMLVCR.js → SYQ5E5TV.js} +1 -1
- package/dist/cdn/U56TK45K.js +113 -0
- package/dist/cdn/{UM3P3Q52.js → U6JZYJ4D.js} +1 -1
- package/dist/cdn/UBEU6ULP.js +2 -0
- package/dist/cdn/{MPCJZCL5.js → UTZUXO5F.js} +2 -2
- package/dist/cdn/UXKH44PB.js +2 -0
- package/dist/cdn/{34CZ4EWR.js → V3MSUKLX.js} +6 -4
- package/dist/cdn/{2PUK3PST.js → W7I22AW3.js} +1 -1
- package/dist/cdn/{72X4E4QW.js → WC37HMOI.js} +1 -1
- package/dist/cdn/{RUQ4RO4T.js → WUEJANIZ.js} +1 -1
- package/dist/cdn/{LJY6BB64.js → X6JL6SAH.js} +1 -1
- package/dist/cdn/{XGYNSCTA.js → Y37QLEAM.js} +1 -1
- package/dist/cdn/{XGWDWPRK.js → YFJZN5K5.js} +1 -1
- package/dist/cdn/{6T35OGRG.js → YTU2BYBP.js} +1 -1
- package/dist/cdn/{5LF6C3S5.js → YWALGZAG.js} +1 -1
- package/dist/cdn/{QFZK4TD4.js → Z23BVIGQ.js} +1 -1
- package/dist/cdn/{QQXQAU33.js → ZCPVOS4Q.js} +1 -1
- package/dist/cdn/{F26SXWZ5.js → ZNH7LRND.js} +1 -1
- package/dist/cdn/{BMMIXOTR.js → ZWQWBXHR.js} +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/Auth.js +1 -1
- package/dist/chunks/assessBuildRequest.js +116 -0
- package/dist/chunks/assessUpdateRequest.js +78 -0
- package/dist/chunks/assistantResponse.js +12 -1
- package/dist/chunks/classifyIntent.js +21 -52
- package/dist/chunks/deployFlowController.js +1 -1
- package/dist/chunks/designSolution.js +6 -4
- package/dist/chunks/helpers.js +47 -43
- package/dist/chunks/interfaces.js +105 -102
- package/dist/chunks/solution-builder-assistant.js +185 -121
- package/dist/chunks/solution-deploy-dialog.js +4 -4
- package/dist/chunks/solutions-deploy-app-nav.js +2 -2
- package/dist/chunks/templates.js +2 -2
- package/dist/chunks/updateDesign.js +1 -1
- package/dist/components/arcgis-solutions-assistant/customElement.js +340 -278
- package/dist/components/arcgis-solutions-assistant/index.js +1 -0
- package/dist/components/card-manager/customElement.js +8 -8
- package/dist/components/create-feature/customElement.js +107 -113
- package/dist/components/crowdsource-reporter/customElement.js +1 -1
- package/dist/components/layer-table/customElement.d.ts +3 -0
- package/dist/components/layer-table/customElement.js +110 -100
- package/dist/components/solution-configure-titles/customElement.js +11 -10
- package/dist/components/solution-delete-dialog/customElement.js +9 -8
- package/dist/components/solution-deploy-dialog/customElement.d.ts +6 -2
- package/dist/components/solution-deployed-card-panel/customElement.js +40 -37
- package/dist/components/solution-details-card/customElement.js +1 -1
- package/dist/components/solution-details-panel/customElement.js +78 -64
- package/dist/components/solution-item-diagram/customElement.js +321 -285
- package/dist/components/solution-resource-card/customElement.js +1 -1
- package/dist/components/solution-snapshot-gallery/customElement.js +1 -1
- package/dist/components/solutions-all-panel/customElement.js +5 -5
- package/dist/components/solutions-deploy-app/customElement.js +13 -15
- package/dist/components/solutions-deployed-panel/customElement.js +7 -7
- package/dist/components/solutions-deployed-shell/customElement.js +1 -1
- package/dist/components/solutions-filter-panel/customElement.js +1 -1
- package/dist/components/solutions-searchsort-toolbar/customElement.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/solutions-components_commit.txt +5 -8
- package/dist/types/lumina.d.ts +1 -0
- package/dist/types/preact.d.ts +1 -0
- package/dist/types/react.d.ts +1 -0
- package/dist/types/stencil.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cdn/25NZZKXC.js +0 -2
- package/dist/cdn/3JQ2RXVJ.js +0 -2
- package/dist/cdn/4JVDUPVW.js +0 -2
- package/dist/cdn/54AE7WD2.js +0 -2
- package/dist/cdn/56A5UMZG.js +0 -9
- package/dist/cdn/AZN2E5DL.js +0 -2
- package/dist/cdn/DFZZNKPK.js +0 -76
- package/dist/cdn/G3FTF6WH.js +0 -2
- package/dist/cdn/KDNGZ47C.js +0 -2
- package/dist/cdn/NIYB3TEW.js +0 -2
- package/dist/cdn/PBMTIFFX.js +0 -2
- package/dist/cdn/PECGJO2P.js +0 -2
- package/dist/cdn/Q5TICZRX.js +0 -15
- package/dist/cdn/QGCF64WY.js +0 -2
- package/dist/cdn/VO53567V.js +0 -2
- package/dist/cdn/WKS3TKDC.js +0 -2
- package/dist/cdn/YVIEKHQQ.js +0 -2
- package/dist/cdn/Z3B5KW2S.js +0 -2
- package/dist/chunks/initialAssessment.js +0 -79
- package/dist/chunks/responseOptionsBuilderExclusion.js +0 -12
- package/dist/chunks/responseOptionsDefault.js +0 -18
|
@@ -1,114 +1,130 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import { c as
|
|
3
|
-
import { css as
|
|
4
|
-
import { keyed as
|
|
5
|
-
import { u as
|
|
6
|
-
import { createRef as
|
|
7
|
-
import { LitElement as
|
|
8
|
-
import { useContextConsumer as
|
|
9
|
-
import { b as
|
|
10
|
-
import {
|
|
11
|
-
import { D as
|
|
12
|
-
import { D as
|
|
13
|
-
import { a as
|
|
2
|
+
import { c as B } from "./runtime.js";
|
|
3
|
+
import { css as M, html as r } from "lit";
|
|
4
|
+
import { keyed as L } from "lit/directives/keyed.js";
|
|
5
|
+
import { u as Y } from "./useT9n.js";
|
|
6
|
+
import { createRef as D, ref as E } from "lit-html/directives/ref.js";
|
|
7
|
+
import { LitElement as S, createEvent as P, nothing as d, safeClassMap as X } from "@arcgis/lumina";
|
|
8
|
+
import { useContextConsumer as V } from "@arcgis/lumina/context";
|
|
9
|
+
import { b as k, c as O } from "./deployAppContexts.js";
|
|
10
|
+
import { m as F, j as _, n as z, i as b, g as I } from "./helpers.js";
|
|
11
|
+
import { D as Z } from "./deployFlowController.js";
|
|
12
|
+
import { D as m, T as u, F as H, G as j } from "./interfaces.js";
|
|
13
|
+
import { a as Q, b as f, v as T, d as K, e as G, f as U, g as R } from "./validators.js";
|
|
14
14
|
import "./solution-deploy-dialog.js";
|
|
15
15
|
import "../components/solution-deploying-dialog/customElement.js";
|
|
16
|
-
import { T as
|
|
17
|
-
import { getItemDataAsJson as
|
|
18
|
-
const R = N`:host{display:block;block-size:100%;min-block-size:0}calcite-panel.builder-panel{--calcite-panel-background-color: var(--calcite-color-foreground-1);--calcite-color-focus: var(--calcite-color-brand);--calcite-panel-border-color: var(--calcite-color-border-2);--calcite-internal-panel-header-vertical-padding: 0px;--calcite-panel-header-content-space: 0px;border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);border-bottom:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);block-size:100%}calcite-panel.builder-panel::part(content){display:flex;flex-direction:column;overflow:hidden;min-height:0}.header-content-wrapper{display:flex;align-items:center;gap:var(--calcite-space-xs);height:65px;box-sizing:border-box;padding-inline-start:var(--calcite-space-3xl)}.header-title{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-1)}.section-header{font-size:var(--calcite-font-size-1);font-weight:var(--calcite-font-weight-bold);color:var(--calcite-color-text-1);display:block}.section-title{font-weight:500;color:var(--calcite-color-text-1)}calcite-input-text,calcite-input-number,calcite-text-area,calcite-combobox{font-weight:500}.textarea-wrapper{display:flex;flex-direction:column;align-items:stretch;flex-shrink:1;min-height:0}.textarea-wrapper calcite-text-area{flex-shrink:1;min-height:0;--calcite-text-area-min-height: auto;--calcite-text-area-max-height: fit-content;align-self:flex-start;width:100%}.draft-badge{display:inline-block;padding:2px 8px;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);border:1px solid var(--calcite-color-border-2);border-radius:12px;font-size:var(--calcite-font-size--2);font-weight:500}.builder-content{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;overflow:auto}.builder-content-flow{display:flex;flex-direction:column;overflow:hidden;min-block-size:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--calcite-space-xxl);text-align:center;color:var(--calcite-color-text-3)}.empty-state calcite-icon{margin-bottom:var(--calcite-space-md);color:var(--calcite-color-text-3)}.empty-state p{margin:0;font-size:var(--calcite-font-size--1)}.header-divider{width:1px;height:2rem;background-color:var(--calcite-color-border-3);margin:0 var(--calcite-space-xxs);align-self:center}.content-container{display:flex;flex-direction:row;margin:var(--calcite-space-lg)}.solution-item-action-group{display:flex;flex-direction:row;width:100%}.solution-item-section{flex:1 1 auto;min-width:0;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg) var(--calcite-space-lg) 0 0}.solution-item-inputs{display:flex;flex-direction:column}.solution-inputs-row{display:flex;align-items:flex-start}.thumbnail-container{flex-shrink:0;flex-grow:0;overflow:hidden;width:300px}.thumbnail-container img{display:block;width:100%;height:100%;object-fit:cover}.stacked-inputs{flex:1;display:flex;flex-direction:column;gap:var(--calcite-space-md);min-width:0}.stacked-inputs calcite-input-text,.stacked-inputs calcite-text-area{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.actions-section{flex:0 2 300px;min-width:200px;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg)}.action-buttons{display:flex;flex-direction:column;gap:var(--calcite-space-lg)}.action-buttons>calcite-button:first-child{margin-top:1.4rem}.action-buttons calcite-notice{margin:0;--calcite-notice-icon-color: var(--calcite-color-brand)}.solution-item-content-section{display:flex;flex-direction:column;margin:0 var(--calcite-space-lg);padding:var(--calcite-space-lg)}.section-header{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-2);margin:0 0 var(--calcite-space-md) 0}@media(max-width:1024px){.content-container{display:flex;flex-direction:column;margin:var(--calcite-space-lg)}.solution-item-section,.actions-section{width:100%}.solution-item-action-group{display:flex;flex-direction:column}.actions-section{flex:0;min-width:200px;background:var(--calcite-color-foreground-1);padding:0}.solution-item-thumbnail{display:flex;justify-content:center;align-items:center;height:100%;width:100%}}@media(min-width:1025px)and (max-width:1366px){.content-container{display:flex;flex-direction:column;margin:var(--calcite-space-lg)}.solution-item-section,.actions-section{width:100%}.actions-section{flex:0 2 300px;min-width:200px;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg)}.solution-item-thumbnail{display:flex;justify-content:center;align-items:center;height:100%;width:100%}}calcite-list-item calcite-action[slot=actions-end]{padding-right:var(--calcite-space-sm)}.layer-form-content{padding:var(--calcite-space-3xl)}calcite-flow{--calcite-flow-background-color: var(--calcite-color-foreground-1);flex:1 1 auto;min-block-size:0;margin:0;padding:0}calcite-flow-item{--calcite-flow-item-content-padding: 0}.layer-selector-container{display:flex;flex-direction:column;align-items:stretch}.new-layer-button{padding-right:var(--calcite-space-2xl)}.layer-selector-row{display:flex;gap:var(--calcite-space-md);align-items:center}.layer-selector-label{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size--1);white-space:nowrap}.layer-selector-row calcite-combobox{flex:1;min-width:0}.layer-selector-row>calcite-button{flex-shrink:0}.layer-selector-container calcite-combobox{width:100%}.layer-properties-container{display:flex;gap:var(--calcite-space-md);margin-top:var(--calcite-space-lg)}.flow-details-container>.layer-properties-container:first-of-type{margin-top:0}.layer-details-container{background-color:var(--calcite-color-surface-1);padding:var(--calcite-space-lg)}.flow-details-container{background-color:var(--calcite-color-surface-1);padding:var(--calcite-space-lg);margin:var(--calcite-space-3xl)}.layer-properties-section{display:flex;flex-direction:column;gap:var(--calcite-space-md)}.layer-properties-row{display:flex;gap:var(--calcite-space-md);align-items:flex-start}.layer-properties-row>*{flex:1;min-width:0}.layer-type-control-row{display:flex;gap:var(--calcite-space-md);align-items:flex-end}.layer-type-control-row calcite-combobox{flex:1;min-width:0}.layer-type-control-row>calcite-button{flex-shrink:0}.layer-properties-container>*{flex:1;min-width:0}.layer-properties-container calcite-input-text,.layer-properties-container calcite-combobox{width:100%}.layer-description-container{margin-top:var(--calcite-space-lg)}.layer-description-container calcite-text-area{width:100%;display:block}.fields-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.fields-section>calcite-label{width:100%}.fields-section calcite-table{width:100%}.field-type-cell,.field-name-cell{display:flex;align-items:center;gap:var(--calcite-space-xs)}.lock-icon{--calcite-icon-color: var(--calcite-color-text-3);flex-shrink:0}.info-cell-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--calcite-space-sm)}.info-cell-content calcite-icon{cursor:pointer;color:var(--calcite-color-text-3);flex-shrink:0}.info-cell-content calcite-icon:hover{color:var(--calcite-color-brand)}.choice-list-tooltip{margin:0;padding-left:var(--calcite-space-lg);list-style-type:disc}.choice-list-tooltip li{padding:var(--calcite-space-xxs) 0}.edit-cell-content{display:flex;justify-content:center;align-items:center}.edit-icon{cursor:pointer;color:var(--calcite-color-text-3)}.edit-icon:hover{color:var(--calcite-color-brand)}.add-field-button{align-self:flex-start}.add-layer-button{margin-top:var(--calcite-space-md);margin-bottom:var(--calcite-space-sm)}.info-icon-blue{--calcite-icon-color: var(--calcite-color-brand);flex-shrink:0;cursor:default}.domain-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.domain-section .section-title{margin-bottom:var(--calcite-space-sm)}.domain-section>div{width:100%}.domain-actions-row{display:flex;justify-content:space-between;align-items:center;width:100%}.content-item-flow-heading{display:flex;align-items:center;gap:var(--calcite-space-sm);font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium)}.popover-content{padding:var(--calcite-space-lg);min-width:420px}.popover-field{margin-top:var(--calcite-space-md)}.popover-actions{display:flex;justify-content:flex-end;gap:var(--calcite-space-sm);margin-top:var(--calcite-space-lg)}.padding-1{padding:var(--calcite-spacing-lg)}.padding-top-sm{padding-top:var(--calcite-space-sm)}.padding-top-lg{padding-top:var(--calcite-space-lg)}.padding-bottom-1{padding-bottom:var(--calcite-spacing-lg)}.padding-top-1-2{padding-top:var(--calcite-spacing-sm)}.discard-changes-button{display:flex;flex-direction:row;gap:var(--calcite-space-md)}.display-flex{display:flex}.display-none{display:none}.flex-direction-column{flex-direction:column}.margin-inline-unset{margin-inline:unset}.flow-footer-center{display:flex;justify-content:center}`, D = "data:image/png;base64,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", J = "data:image/png;base64,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", $ = "data:image/png;base64,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";
|
|
19
|
-
class
|
|
16
|
+
import { T as v, a as C, b as x } from "./templates.js";
|
|
17
|
+
import { getItemDataAsJson as J } from "@esri/solution-common";
|
|
18
|
+
const $ = M`:host{display:block;block-size:100%;min-block-size:0}calcite-panel.builder-panel{--calcite-panel-background-color: var(--calcite-color-foreground-1);--calcite-color-focus: var(--calcite-color-brand);--calcite-panel-border-color: var(--calcite-color-border-2);--calcite-internal-panel-header-vertical-padding: 0px;--calcite-panel-header-content-space: 0px;border-top:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);border-bottom:var(--calcite-border-width-sm) solid var(--calcite-color-border-2);block-size:100%}calcite-panel.builder-panel::part(content){display:flex;flex-direction:column;overflow:hidden;min-height:0}.header-content-wrapper{display:flex;align-items:center;gap:var(--calcite-space-xs);height:65px;box-sizing:border-box;padding-inline-start:var(--calcite-space-3xl)}.header-title{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-1)}.section-header{font-size:var(--calcite-font-size-1);font-weight:var(--calcite-font-weight-bold);color:var(--calcite-color-text-1);display:block}.section-title{font-weight:500;color:var(--calcite-color-text-1)}calcite-input-text,calcite-input-number,calcite-text-area,calcite-combobox{font-weight:500}.textarea-wrapper{display:flex;flex-direction:column;align-items:stretch;flex-shrink:1;min-height:0}.textarea-wrapper calcite-text-area{flex-shrink:1;min-height:0;--calcite-text-area-min-height: auto;--calcite-text-area-max-height: fit-content;align-self:flex-start;width:100%}.draft-badge{display:inline-block;padding:2px 8px;background-color:var(--calcite-color-foreground-1);color:var(--calcite-color-text-1);border:1px solid var(--calcite-color-border-2);border-radius:12px;font-size:var(--calcite-font-size--2);font-weight:500}.builder-content{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;overflow:auto}.builder-content-flow{display:flex;flex-direction:column;overflow:hidden;min-block-size:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--calcite-space-xxl);text-align:center;color:var(--calcite-color-text-3)}.empty-state calcite-icon{margin-bottom:var(--calcite-space-md);color:var(--calcite-color-text-3)}.empty-state p{margin:0;font-size:var(--calcite-font-size--1)}.header-divider{width:1px;height:2rem;background-color:var(--calcite-color-border-3);margin:0 var(--calcite-space-xxs);align-self:center}.content-container{display:flex;flex-direction:row;margin:var(--calcite-space-lg)}.solution-item-action-group{display:flex;flex-direction:row;width:100%}.solution-item-section{flex:1 1 auto;min-width:0;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg) var(--calcite-space-lg) 0 0}.solution-item-inputs{display:flex;flex-direction:column}.solution-inputs-row{display:flex;align-items:flex-start}.thumbnail-container{flex-shrink:0;flex-grow:0;overflow:hidden;width:300px}.thumbnail-container img{display:block;width:100%;height:100%;object-fit:cover}.stacked-inputs{flex:1;display:flex;flex-direction:column;gap:var(--calcite-space-md);min-width:0}.stacked-inputs calcite-input-text,.stacked-inputs calcite-text-area{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.actions-section{flex:0 2 300px;min-width:200px;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg)}.action-buttons{display:flex;flex-direction:column;gap:var(--calcite-space-lg)}.action-buttons>calcite-button:first-child{margin-top:1.4rem}.action-buttons calcite-notice{margin:0;--calcite-notice-icon-color: var(--calcite-color-brand)}.solution-item-content-section{display:flex;flex-direction:column;margin:0 var(--calcite-space-lg);padding:var(--calcite-space-lg)}.section-header{font-size:var(--calcite-font-size-0);font-weight:500;color:var(--calcite-color-text-2);margin:0 0 var(--calcite-space-md) 0}@media(max-width:1024px){.content-container{display:flex;flex-direction:column;margin:var(--calcite-space-lg)}.solution-item-section,.actions-section{width:100%}.solution-item-action-group{display:flex;flex-direction:column}.actions-section{flex:0;min-width:200px;background:var(--calcite-color-foreground-1);padding:0}.solution-item-thumbnail{display:flex;justify-content:center;align-items:center;height:100%;width:100%}}@media(min-width:1025px)and (max-width:1366px){.content-container{display:flex;flex-direction:column;margin:var(--calcite-space-lg)}.solution-item-section,.actions-section{width:100%}.actions-section{flex:0 2 300px;min-width:200px;background:var(--calcite-color-foreground-1);padding:var(--calcite-space-lg)}.solution-item-thumbnail{display:flex;justify-content:center;align-items:center;height:100%;width:100%}}calcite-list-item calcite-action[slot=actions-end]{padding-right:var(--calcite-space-sm)}.layer-form-content{padding:var(--calcite-space-3xl)}calcite-flow{--calcite-flow-background-color: var(--calcite-color-foreground-1);flex:1 1 auto;min-block-size:0;margin:0;padding:0}calcite-flow-item{--calcite-flow-item-content-padding: 0}.layer-selector-container{display:flex;flex-direction:column;align-items:stretch}.new-layer-button{padding-right:var(--calcite-space-2xl)}.layer-selector-row{display:flex;gap:var(--calcite-space-md);align-items:center}.layer-selector-label{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size--1);white-space:nowrap}.layer-selector-row calcite-combobox{flex:1;min-width:0}.layer-selector-row>calcite-button{flex-shrink:0}.layer-selector-container calcite-combobox{width:100%}.layer-properties-container{display:flex;gap:var(--calcite-space-md);margin-top:var(--calcite-space-lg)}.flow-details-container>.layer-properties-container:first-of-type{margin-top:0}.layer-details-container{background-color:var(--calcite-color-surface-1);padding:var(--calcite-space-lg)}.flow-details-container{background-color:var(--calcite-color-surface-1);padding:var(--calcite-space-lg);margin:var(--calcite-space-3xl)}.layer-properties-section{display:flex;flex-direction:column;gap:var(--calcite-space-md)}.layer-properties-row{display:flex;gap:var(--calcite-space-md);align-items:flex-start}.layer-properties-row>*{flex:1;min-width:0}.layer-type-control-row{display:flex;gap:var(--calcite-space-md);align-items:flex-end}.layer-type-control-row calcite-combobox{flex:1;min-width:0}.layer-type-control-row>calcite-button{flex-shrink:0}.layer-properties-container>*{flex:1;min-width:0}.layer-properties-container calcite-input-text,.layer-properties-container calcite-combobox{width:100%}.layer-description-container{margin-top:var(--calcite-space-lg)}.layer-description-container calcite-text-area{width:100%;display:block}.fields-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.fields-section>calcite-label{width:100%}.fields-section calcite-table{width:100%}.field-type-cell,.field-name-cell{display:flex;align-items:center;gap:var(--calcite-space-xs)}.lock-icon{--calcite-icon-color: var(--calcite-color-text-3);flex-shrink:0}.info-cell-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--calcite-space-sm)}.info-cell-content calcite-icon{cursor:pointer;color:var(--calcite-color-text-3);flex-shrink:0}.info-cell-content calcite-icon:hover{color:var(--calcite-color-brand)}.choice-list-tooltip{margin:0;padding-left:var(--calcite-space-lg);list-style-type:disc}.choice-list-tooltip li{padding:var(--calcite-space-xxs) 0}.edit-cell-content{display:flex;justify-content:center;align-items:center}.edit-icon{cursor:pointer;color:var(--calcite-color-text-3)}.edit-icon:hover{color:var(--calcite-color-brand)}.add-field-button{align-self:flex-start}.add-layer-button{margin-top:var(--calcite-space-md);margin-bottom:var(--calcite-space-sm)}.info-icon-blue{--calcite-icon-color: var(--calcite-color-brand);flex-shrink:0;cursor:default}.domain-section{margin-top:var(--calcite-space-lg);display:flex;flex-direction:column;align-items:flex-start;width:100%}.domain-section .section-title{margin-bottom:var(--calcite-space-sm)}.domain-section>div{width:100%}.domain-actions-row{display:flex;justify-content:space-between;align-items:center;width:100%}.content-item-flow-heading{display:flex;align-items:center;gap:var(--calcite-space-sm);font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium)}.popover-content{padding:var(--calcite-space-lg);min-width:420px}.popover-field{margin-top:var(--calcite-space-md)}.popover-actions{display:flex;justify-content:flex-end;gap:var(--calcite-space-sm);margin-top:var(--calcite-space-lg)}.padding-1{padding:var(--calcite-spacing-lg)}.padding-top-sm{padding-top:var(--calcite-space-sm)}.padding-top-lg{padding-top:var(--calcite-space-lg)}.padding-bottom-1{padding-bottom:var(--calcite-spacing-lg)}.padding-top-1-2{padding-top:var(--calcite-spacing-sm)}.discard-changes-button{display:flex;flex-direction:row;gap:var(--calcite-space-md)}.display-flex{display:flex}.display-none{display:none}.flex-direction-column{flex-direction:column}.margin-inline-unset{margin-inline:unset}.flow-footer-center{display:flex;justify-content:center}`, N = "data:image/png;base64,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", ee = "data:image/png;base64,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", ie = "data:image/png;base64,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";
|
|
19
|
+
class te extends S {
|
|
20
20
|
constructor() {
|
|
21
|
-
super(), this.design = null, this.readOnlyNotice = "", this._design = null, this._translations =
|
|
21
|
+
super(), this.design = null, this.readOnlyNotice = "", this._design = null, this._translations = Y({ name: "solution-builder-assistant", blocking: !0 }), this._isDirty = !1, this._solutionTitleInput = "", this._solutionDescriptionInput = "", this._titleValidationError = null, this._deployAlertMessage = null, this._layerNameAlertMessage = null, this._itemContentAlertMessage = null, this._editFieldAlertMessage = null, this._descriptionValidationError = null, this._undoStack = [], this._redoStack = [], this._isEditingContentItem = !1, this._editingContentItemId = null, this._editingItemTitle = "", this._editingItemDescription = "", this._editingItemTitleError = null, this._editingItemDescriptionError = null, this._layerNameValidationError = null, this._layerDescriptionValidationError = null, this._newLayerNameValidationError = null, this._newLayerDescriptionValidationError = null, this._selectedLayerIndex = 0, this._isAddingLayer = !1, this._newLayerName = "", this._newLayerType = "Point", this._newLayerDescription = "", this._isEditingField = !1, this._editingFieldIndex = -1, this._editingFieldType = null, this._editingFieldDisplayName = "", this._editingFieldName = "", this._editingFieldDescription = "", this._editingFieldTypeValue = "string", this._editingFieldLength = m, this._editingFieldChoiceList = null, this._isAddingNewField = !1, this._isCustomizingLayer = !1, this._selectedFieldCount = 0, this._hasRequiredFieldSelected = !1, this._fieldTableKey = 0, this._selectedFieldRows = [], this._newFieldDisplayName = "", this._newFieldName = "", this._newFieldDescription = "", this._newFieldType = "string", this._newFieldLength = m, this._newFieldChoiceList = null, this._editingFieldDisplayNameError = null, this._editingFieldNameError = null, this._editingFieldDescriptionError = null, this._editingFieldLengthError = null, this._editingFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._newFieldDisplayNameError = null, this._newFieldNameError = null, this._newFieldDescriptionError = null, this._newFieldLengthError = null, this._newFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._editingFieldChoiceListVersion = 0, this._newFieldChoiceListVersion = 0, this._userOptions = [], this._designContextValue = null, this._isProcessing = !1, this._isDiscarding = !1, this._isDiscardingFlowChanges = !1, this._isCheckingPermissions = !1, this._permisssionErrorMessages = {
|
|
22
22
|
leadingMessages: [],
|
|
23
23
|
bulletedMessages: [],
|
|
24
24
|
trailingMessages: []
|
|
25
|
-
}, this._pendingFlowDiscardAction = null, this._lastPushedDesign = null, this._deployDialogRef =
|
|
25
|
+
}, this._pendingFlowDiscardAction = null, this._lastPushedDesign = null, this._hasLoggedFirstOpen = !1, this._deployDialogRef = D(), this._deployingDialogRef = D(), this._deployFlow = new Z({
|
|
26
26
|
deployDialogRef: this._deployDialogRef,
|
|
27
27
|
deployingDialogRef: this._deployingDialogRef,
|
|
28
28
|
getCard: () => this._card,
|
|
29
29
|
onDeployStarted: () => {
|
|
30
|
-
this._deploymentStartTime = Date.now()
|
|
31
|
-
|
|
30
|
+
this._deploymentStartTime = Date.now();
|
|
31
|
+
const e = this._getBuilderTelemetryMetadata(), i = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], t = _(i);
|
|
32
|
+
this._telemetry?.logEvent({
|
|
33
|
+
category: u.SOLUTION_DETAILS,
|
|
32
34
|
action: "Deploy Started",
|
|
33
35
|
dimensions: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
e.patternName,
|
|
37
|
+
e.solutionId,
|
|
38
|
+
e.version,
|
|
39
|
+
"",
|
|
40
|
+
t
|
|
37
41
|
]
|
|
38
42
|
});
|
|
39
43
|
},
|
|
40
44
|
onDeployCancelled: () => {
|
|
45
|
+
const e = this._getBuilderTelemetryMetadata(), i = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], t = _(i);
|
|
41
46
|
this._telemetry?.logEvent({
|
|
42
|
-
category:
|
|
47
|
+
category: u.SOLUTION_DETAILS,
|
|
43
48
|
action: "Deploy Dialog Canceled",
|
|
44
49
|
dimensions: [
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
e.patternName,
|
|
51
|
+
e.solutionId,
|
|
52
|
+
e.version,
|
|
53
|
+
"",
|
|
54
|
+
t
|
|
48
55
|
]
|
|
49
56
|
});
|
|
50
57
|
},
|
|
51
58
|
onDeploySuccess: () => {
|
|
52
|
-
const e =
|
|
53
|
-
this._deploymentStartTime = null
|
|
54
|
-
|
|
59
|
+
const e = F(this._deploymentStartTime);
|
|
60
|
+
this._deploymentStartTime = null;
|
|
61
|
+
const i = this._getBuilderTelemetryMetadata(), t = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], s = _(t);
|
|
62
|
+
this._telemetry?.logEvent({
|
|
63
|
+
category: u.SOLUTION_DETAILS,
|
|
55
64
|
action: "Deploy Success",
|
|
56
65
|
dimensions: [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
i.patternName,
|
|
67
|
+
i.solutionId,
|
|
68
|
+
i.version,
|
|
69
|
+
"",
|
|
70
|
+
s
|
|
60
71
|
],
|
|
61
72
|
metrics: [e]
|
|
62
73
|
});
|
|
63
74
|
},
|
|
64
75
|
onDeployFailedReal: (e) => {
|
|
65
|
-
const i =
|
|
76
|
+
const i = F(this._deploymentStartTime);
|
|
66
77
|
this._deploymentStartTime = null;
|
|
67
|
-
const t =
|
|
68
|
-
console.error("Deployment failed:", e)
|
|
69
|
-
|
|
78
|
+
const t = z(e), s = t.length > 200 ? t.slice(-200) : t;
|
|
79
|
+
console.error("Deployment failed:", e);
|
|
80
|
+
const l = this._getBuilderTelemetryMetadata(), n = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], a = _(n);
|
|
81
|
+
this._telemetry?.logEvent({
|
|
82
|
+
category: u.SOLUTION_DETAILS,
|
|
70
83
|
action: "Deploy Failure",
|
|
71
84
|
dimensions: [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
s
|
|
85
|
+
l.patternName,
|
|
86
|
+
l.solutionId,
|
|
87
|
+
l.version,
|
|
88
|
+
s,
|
|
89
|
+
a
|
|
76
90
|
],
|
|
77
91
|
metrics: [i]
|
|
78
92
|
});
|
|
79
93
|
},
|
|
80
94
|
onDeploymentProcessCancelled: () => {
|
|
81
|
-
this._cancellationStartTime = Date.now(), this._deployToCancelDuration =
|
|
95
|
+
this._cancellationStartTime = Date.now(), this._deployToCancelDuration = F(this._deploymentStartTime), this._deploymentStartTime = null;
|
|
82
96
|
},
|
|
83
97
|
onCloseAfterCancel: () => {
|
|
84
|
-
const e =
|
|
98
|
+
const e = F(this._cancellationStartTime), i = this._getBuilderTelemetryMetadata(), t = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], s = _(t);
|
|
85
99
|
this._telemetry?.logEvent({
|
|
86
|
-
category:
|
|
100
|
+
category: u.SOLUTION_DETAILS,
|
|
87
101
|
action: "Deploy Canceled",
|
|
88
102
|
dimensions: [
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
i.patternName,
|
|
104
|
+
i.solutionId,
|
|
105
|
+
i.version,
|
|
106
|
+
"",
|
|
107
|
+
s
|
|
92
108
|
],
|
|
93
109
|
metrics: [this._deployToCancelDuration, e]
|
|
94
110
|
}), this._cancellationStartTime = null, this._deployToCancelDuration = 0;
|
|
95
111
|
},
|
|
96
112
|
onDeployedCardReady: (e) => {
|
|
97
|
-
this.
|
|
113
|
+
console.log("[solution-builder-assistant] Design after solution deployed:", this._design), this._clearBuilderAfterDeployment(), window.dispatchEvent(new CustomEvent("displayDeployedCard", { detail: e }));
|
|
98
114
|
},
|
|
99
115
|
onDeploymentFallback: () => {
|
|
100
|
-
this.
|
|
116
|
+
console.log("[solution-builder-assistant] Design after solution deployed:", this._design), this._clearBuilderAfterDeployment(), window.dispatchEvent(new CustomEvent("navTabSelected", { detail: "deployments" }));
|
|
101
117
|
}
|
|
102
|
-
}), this._designContextConsumer =
|
|
103
|
-
context:
|
|
118
|
+
}), this._designContextConsumer = V({
|
|
119
|
+
context: k,
|
|
104
120
|
subscribe: !0,
|
|
105
121
|
callback: (e) => {
|
|
106
122
|
this._designContextValue = e, e?.design && e.design !== this._lastPushedDesign && this._pushDesign(e.design, !1);
|
|
107
123
|
}
|
|
108
|
-
}), this._configContextConsumer =
|
|
109
|
-
context:
|
|
124
|
+
}), this._configContextConsumer = V({
|
|
125
|
+
context: O,
|
|
110
126
|
subscribe: !0
|
|
111
|
-
}), this._deploymentStartTime = null, this._cancellationStartTime = null, this._deployToCancelDuration = 0, this.discardBuilder =
|
|
127
|
+
}), this._deploymentStartTime = null, this._cancellationStartTime = null, this._deployToCancelDuration = 0, this.discardBuilder = P(), this._handleBeforeUnload = (e) => {
|
|
112
128
|
this._design && e.preventDefault();
|
|
113
129
|
}, this._handleUndo = async () => {
|
|
114
130
|
if (this._undoStack.length === 0 || !this._design)
|
|
@@ -143,7 +159,7 @@ class ee extends T {
|
|
|
143
159
|
title: e
|
|
144
160
|
}
|
|
145
161
|
};
|
|
146
|
-
this._pushDesign(i);
|
|
162
|
+
this._pushDesign(i), this._logEditTelemetry("Solution Name");
|
|
147
163
|
}
|
|
148
164
|
}, this._handleDescriptionInput = (e) => {
|
|
149
165
|
this._solutionDescriptionInput = e, this._descriptionValidationError = this._validateSolutionDescription(e);
|
|
@@ -156,7 +172,7 @@ class ee extends T {
|
|
|
156
172
|
description: e
|
|
157
173
|
}
|
|
158
174
|
};
|
|
159
|
-
this._pushDesign(i);
|
|
175
|
+
this._pushDesign(i), this._logEditTelemetry("Solution Description");
|
|
160
176
|
}
|
|
161
177
|
}, this._handleEditingItemTitleInput = (e) => {
|
|
162
178
|
this._editingItemTitle = e, this._editingItemTitleError = this._validateItemName(e);
|
|
@@ -169,7 +185,7 @@ class ee extends T {
|
|
|
169
185
|
...this._design,
|
|
170
186
|
items: t
|
|
171
187
|
};
|
|
172
|
-
this._pushDesign(s);
|
|
188
|
+
this._pushDesign(s), this._logEditTelemetry("Item Title");
|
|
173
189
|
}
|
|
174
190
|
}, this._handleEditingItemDescriptionInput = (e) => {
|
|
175
191
|
this._editingItemDescription = e, this._editingItemDescriptionError = this._validateItemDescription(e);
|
|
@@ -182,7 +198,7 @@ class ee extends T {
|
|
|
182
198
|
...this._design,
|
|
183
199
|
items: t
|
|
184
200
|
};
|
|
185
|
-
this._pushDesign(s);
|
|
201
|
+
this._pushDesign(s), this._logEditTelemetry("Item Description");
|
|
186
202
|
}
|
|
187
203
|
}, this._handleOpenContentItemFlow = (e) => {
|
|
188
204
|
this._editingContentItemId = e.id, this._editingItemTitle = e.title || "", this._editingItemDescription = e.description || "", this._editingItemTitleError = null, this._editingItemDescriptionError = null, this._isEditingContentItem = !0;
|
|
@@ -242,7 +258,7 @@ class ee extends T {
|
|
|
242
258
|
alias: "Created By",
|
|
243
259
|
description: "User who created the record.",
|
|
244
260
|
choiceList: null,
|
|
245
|
-
length:
|
|
261
|
+
length: m
|
|
246
262
|
},
|
|
247
263
|
{
|
|
248
264
|
name: "last_edited_date",
|
|
@@ -256,7 +272,7 @@ class ee extends T {
|
|
|
256
272
|
alias: "Last Edited By",
|
|
257
273
|
description: "User who last edited the record.",
|
|
258
274
|
choiceList: null,
|
|
259
|
-
length:
|
|
275
|
+
length: m
|
|
260
276
|
}
|
|
261
277
|
]
|
|
262
278
|
};
|
|
@@ -266,7 +282,7 @@ class ee extends T {
|
|
|
266
282
|
...this._design.featureLayer,
|
|
267
283
|
layers: [...e, s]
|
|
268
284
|
}
|
|
269
|
-
}), this._selectedLayerIndex = e.length, this._isAddingLayer = !1, this._newLayerName = "", this._newLayerType = "Point", this._newLayerDescription = "", this._newLayerNameValidationError = null, this._newLayerDescriptionValidationError = null;
|
|
285
|
+
}), this._logEditTelemetry("Add Layer"), this._selectedLayerIndex = e.length, this._isAddingLayer = !1, this._newLayerName = "", this._newLayerType = "Point", this._newLayerDescription = "", this._newLayerNameValidationError = null, this._newLayerDescriptionValidationError = null;
|
|
270
286
|
}, this._handleNewLayerNameChange = (e) => {
|
|
271
287
|
this._newLayerName = e;
|
|
272
288
|
const i = (this._design?.featureLayer?.layers || []).map((t) => t.name);
|
|
@@ -277,7 +293,7 @@ class ee extends T {
|
|
|
277
293
|
}, this._handleNewLayerDescriptionChange = (e) => {
|
|
278
294
|
this._newLayerDescription = e, this._newLayerDescriptionValidationError = this._validateLayerDescription(e);
|
|
279
295
|
}, this._handleAddField = () => {
|
|
280
|
-
this._newFieldDisplayName = "", this._newFieldName = "", this._newFieldDescription = "", this._newFieldType = "string", this._newFieldLength =
|
|
296
|
+
this._newFieldDisplayName = "", this._newFieldName = "", this._newFieldDescription = "", this._newFieldType = "string", this._newFieldLength = m, this._newFieldChoiceList = null, this._newFieldDisplayNameError = null, this._newFieldNameError = null, this._newFieldDescriptionError = null, this._newFieldLengthError = null, this._newFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._isAddingNewField = !0, this._scrollCustomizeLayerFlowToTop();
|
|
281
297
|
}, this._handleAddFieldFlowItemBack = (e) => {
|
|
282
298
|
if (e.preventDefault(), !this._hasAddFieldChanges()) {
|
|
283
299
|
(e.currentTarget.closest("calcite-flow")?.back() ?? Promise.resolve()).then(() => this._doAddFieldBack());
|
|
@@ -285,7 +301,7 @@ class ee extends T {
|
|
|
285
301
|
}
|
|
286
302
|
this._pendingFlowDiscardAction = this._doAddFieldBack, this._isDiscardingFlowChanges = !0;
|
|
287
303
|
}, this._hasAddFieldChanges = () => this._newFieldDisplayName.trim() !== "" || this._newFieldName.trim() !== "" || this._newFieldDescription.trim() !== "" || this._newFieldChoiceList != null && this._newFieldChoiceList.length > 0, this._doAddFieldBack = () => {
|
|
288
|
-
this._isAddingNewField = !1, this._newFieldDisplayName = "", this._newFieldName = "", this._newFieldDescription = "", this._newFieldType = "string", this._newFieldLength =
|
|
304
|
+
this._isAddingNewField = !1, this._newFieldDisplayName = "", this._newFieldName = "", this._newFieldDescription = "", this._newFieldType = "string", this._newFieldLength = m, this._newFieldChoiceList = null, this._newFieldDisplayNameError = null, this._newFieldNameError = null, this._newFieldDescriptionError = null, this._newFieldLengthError = null, this._newFieldChoiceListErrors = /* @__PURE__ */ new Map();
|
|
289
305
|
}, this._handleAddFieldDone = () => {
|
|
290
306
|
if (!this._design)
|
|
291
307
|
return;
|
|
@@ -307,7 +323,7 @@ class ee extends T {
|
|
|
307
323
|
...this._design.featureLayer,
|
|
308
324
|
layers: l
|
|
309
325
|
}
|
|
310
|
-
}), this._doAddFieldBack();
|
|
326
|
+
}), this._logEditTelemetry("Add Field"), this._doAddFieldBack();
|
|
311
327
|
}, this._handleNewFieldTypeChange = (e) => {
|
|
312
328
|
const i = e.target.selectedItems[0];
|
|
313
329
|
if (!i)
|
|
@@ -341,7 +357,7 @@ class ee extends T {
|
|
|
341
357
|
return;
|
|
342
358
|
this._editingFieldType = "required", this._editingFieldIndex = a;
|
|
343
359
|
}
|
|
344
|
-
this._editingFieldDisplayName = i.alias || "", this._editingFieldName = i.name || "", this._editingFieldDescription = i.description || "", this._editingFieldTypeValue = i.type || "string", this._editingFieldLength = i.length ||
|
|
360
|
+
this._editingFieldDisplayName = i.alias || "", this._editingFieldName = i.name || "", this._editingFieldDescription = i.description || "", this._editingFieldTypeValue = i.type || "string", this._editingFieldLength = i.length || m, this._editingFieldChoiceList = i.choiceList ? [...i.choiceList] : null, this._editingFieldDisplayNameError = null, this._editingFieldNameError = null, this._editingFieldDescriptionError = null, this._editingFieldLengthError = null, this._editingFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._isEditingField = !0, this._scrollCustomizeLayerFlowToTop();
|
|
345
361
|
}, this._handleEditFieldFlowItemBack = (e) => {
|
|
346
362
|
if (e.preventDefault(), !!this._editingFieldDisplayNameError || !!this._editingFieldNameError || !!this._editingFieldDescriptionError || !!this._editingFieldLengthError || this._editingFieldChoiceListErrors.size > 0) {
|
|
347
363
|
this._editFieldAlertMessage = null, setTimeout(() => {
|
|
@@ -351,7 +367,7 @@ class ee extends T {
|
|
|
351
367
|
}
|
|
352
368
|
(e.currentTarget.closest("calcite-flow")?.back() ?? Promise.resolve()).then(() => this._doEditFieldBack());
|
|
353
369
|
}, this._doEditFieldBack = () => {
|
|
354
|
-
this._isEditingField = !1, this._editingFieldIndex = -1, this._editingFieldType = null, this._editingFieldDisplayName = "", this._editingFieldName = "", this._editingFieldDescription = "", this._editingFieldTypeValue = "string", this._editingFieldLength =
|
|
370
|
+
this._isEditingField = !1, this._editingFieldIndex = -1, this._editingFieldType = null, this._editingFieldDisplayName = "", this._editingFieldName = "", this._editingFieldDescription = "", this._editingFieldTypeValue = "string", this._editingFieldLength = m, this._editingFieldChoiceList = null, this._editingFieldDisplayNameError = null, this._editingFieldNameError = null, this._editingFieldDescriptionError = null, this._editingFieldLengthError = null, this._editingFieldChoiceListErrors = /* @__PURE__ */ new Map();
|
|
355
371
|
}, this._handleEditFieldTypeChange = (e) => {
|
|
356
372
|
const i = e.target.selectedItems[0];
|
|
357
373
|
if (!i)
|
|
@@ -439,7 +455,7 @@ class ee extends T {
|
|
|
439
455
|
...this._design.featureLayer,
|
|
440
456
|
layers: s
|
|
441
457
|
}
|
|
442
|
-
});
|
|
458
|
+
}), this._logEditTelemetry("Edit Field");
|
|
443
459
|
} else if (this._editingFieldType === "required") {
|
|
444
460
|
const t = [...i.requiredFields || []];
|
|
445
461
|
t[this._editingFieldIndex] = {
|
|
@@ -500,7 +516,7 @@ class ee extends T {
|
|
|
500
516
|
...this._design.featureLayer,
|
|
501
517
|
layers: s
|
|
502
518
|
}
|
|
503
|
-
}), this._doEditFieldBack();
|
|
519
|
+
}), this._logEditTelemetry("Delete Field"), this._doEditFieldBack();
|
|
504
520
|
}, this._handleFieldTableSelect = (e) => {
|
|
505
521
|
const t = e.target.selectedItems ?? [];
|
|
506
522
|
this._selectedFieldRows = t, this._selectedFieldCount = t.length, this._hasRequiredFieldSelected = t.some((s) => !s.dataset.fieldIndex);
|
|
@@ -520,7 +536,7 @@ class ee extends T {
|
|
|
520
536
|
...this._design.featureLayer,
|
|
521
537
|
layers: n
|
|
522
538
|
}
|
|
523
|
-
}), this._selectedFieldCount = 0, this._hasRequiredFieldSelected = !1, this._selectedFieldRows = [], this._fieldTableKey += 1;
|
|
539
|
+
}), this._logEditTelemetry("Delete Field"), this._selectedFieldCount = 0, this._hasRequiredFieldSelected = !1, this._selectedFieldRows = [], this._fieldTableKey += 1;
|
|
524
540
|
}, this._handleLayerNameInput = (e) => {
|
|
525
541
|
if (!this._design)
|
|
526
542
|
return;
|
|
@@ -541,7 +557,7 @@ class ee extends T {
|
|
|
541
557
|
...this._design.featureLayer,
|
|
542
558
|
layers: s
|
|
543
559
|
}
|
|
544
|
-
});
|
|
560
|
+
}), this._logEditTelemetry("Update Layer");
|
|
545
561
|
}
|
|
546
562
|
}, this._handleLayerTypeChange = (e) => {
|
|
547
563
|
if (!this._design)
|
|
@@ -562,7 +578,7 @@ class ee extends T {
|
|
|
562
578
|
...this._design.featureLayer,
|
|
563
579
|
layers: n
|
|
564
580
|
}
|
|
565
|
-
});
|
|
581
|
+
}), this._logEditTelemetry("Update Layer");
|
|
566
582
|
}, this._handleLayerDescriptionInput = (e) => {
|
|
567
583
|
this._layerDescriptionValidationError = this._validateLayerDescription(e);
|
|
568
584
|
}, this._handleLayerDescriptionBlur = (e) => {
|
|
@@ -580,7 +596,7 @@ class ee extends T {
|
|
|
580
596
|
...this._design.featureLayer,
|
|
581
597
|
layers: s
|
|
582
598
|
}
|
|
583
|
-
});
|
|
599
|
+
}), this._logEditTelemetry("Update Layer");
|
|
584
600
|
}
|
|
585
601
|
}, this._revalidateForm = async () => {
|
|
586
602
|
if (!this._design)
|
|
@@ -601,9 +617,9 @@ class ee extends T {
|
|
|
601
617
|
...this._design.featureLayer,
|
|
602
618
|
layers: i
|
|
603
619
|
}
|
|
604
|
-
}), this._isCustomizingLayer = !1, this._selectedLayerIndex = 0;
|
|
620
|
+
}), this._logEditTelemetry("Delete Layer"), this._isCustomizingLayer = !1, this._selectedLayerIndex = 0;
|
|
605
621
|
}, this._handleDeploy = async () => {
|
|
606
|
-
if (!this._design ||
|
|
622
|
+
if (!this._design || b(this._configContextConsumer.value))
|
|
607
623
|
return;
|
|
608
624
|
if (this._titleValidationError) {
|
|
609
625
|
this._deployAlertMessage = this._titleValidationError;
|
|
@@ -616,7 +632,7 @@ class ee extends T {
|
|
|
616
632
|
};
|
|
617
633
|
const e = this._design.params?.wkid;
|
|
618
634
|
if (e) {
|
|
619
|
-
const
|
|
635
|
+
const l = String(e.default ?? "3857");
|
|
620
636
|
this._userOptions = [{
|
|
621
637
|
id: "wkid",
|
|
622
638
|
props: [{
|
|
@@ -626,15 +642,15 @@ class ee extends T {
|
|
|
626
642
|
autoSelect: !0,
|
|
627
643
|
id: "wkid",
|
|
628
644
|
prop: "wkid",
|
|
629
|
-
default:
|
|
645
|
+
default: l,
|
|
630
646
|
label: e.label ?? "Spatial Reference",
|
|
631
647
|
outType: "number",
|
|
632
|
-
srSearchText:
|
|
648
|
+
srSearchText: l,
|
|
633
649
|
validation: {
|
|
634
650
|
expression: "\\S{1,}",
|
|
635
651
|
message: ""
|
|
636
652
|
},
|
|
637
|
-
value:
|
|
653
|
+
value: l,
|
|
638
654
|
valueType: "spatialreference"
|
|
639
655
|
}]
|
|
640
656
|
}];
|
|
@@ -645,6 +661,18 @@ class ee extends T {
|
|
|
645
661
|
return;
|
|
646
662
|
}
|
|
647
663
|
this._deployDialogRef.value.card = this._card, this._deployDialogRef.value.userOptions = this._userOptions, this._deployDialogRef.value.open = !0;
|
|
664
|
+
const i = this._getBuilderTelemetryMetadata(), t = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], s = _(t);
|
|
665
|
+
this._telemetry?.logEvent({
|
|
666
|
+
category: u.SOLUTION_DETAILS,
|
|
667
|
+
action: "Deploy Dialog Opened",
|
|
668
|
+
dimensions: [
|
|
669
|
+
i.patternName,
|
|
670
|
+
i.solutionId,
|
|
671
|
+
i.version,
|
|
672
|
+
"",
|
|
673
|
+
s
|
|
674
|
+
]
|
|
675
|
+
});
|
|
648
676
|
}, this._handleDeployCancelled = () => {
|
|
649
677
|
this._deployFlow.handleDeployCancelled();
|
|
650
678
|
}, this._handleDeployFailed = (e) => {
|
|
@@ -660,18 +688,29 @@ class ee extends T {
|
|
|
660
688
|
}, this._handleDeployedCardReady = (e) => this._deployFlow.handleDeployedCardReady(e), this._handleDeploymentFallback = (e) => {
|
|
661
689
|
this._deployFlow.handleDeploymentFallback(e);
|
|
662
690
|
}, this._handleDiscardChanges = () => {
|
|
663
|
-
|
|
691
|
+
const e = this._getBuilderTelemetryMetadata();
|
|
692
|
+
this._telemetry?.logEvent({
|
|
693
|
+
category: u.BUILDER,
|
|
694
|
+
action: "Discard",
|
|
695
|
+
dimensions: [e.patternName]
|
|
696
|
+
}), this._clearBuilderState();
|
|
697
|
+
}, this._clearBuilderAfterDeployment = () => {
|
|
698
|
+
this._clearBuilderState();
|
|
699
|
+
}, this._clearBuilderState = () => {
|
|
700
|
+
this._deployFlow.pendingDeployedSolutionId = null, this._undoStack = [], this._redoStack = [], this._design = null, this._lastPushedDesign = null, this._isDirty = !1, this._hasLoggedFirstOpen = !1, this._notifyDesignChanged(null), this._deployFlow.closeDialogs(), this._clearDesignAndClose(), this.discardBuilder.emit(!1), window.dispatchEvent(new CustomEvent("clearAssistantConversation")), this._isDiscarding = !1;
|
|
664
701
|
}, this._handleAssistantProcessing = (e) => {
|
|
665
702
|
this._isProcessing = e.detail;
|
|
666
703
|
}, this._clearValidationErrors = () => {
|
|
667
704
|
this._titleValidationError = null, this._descriptionValidationError = null, this._editingItemTitle = "", this._editingItemDescription = "", this._editingItemTitleError = null, this._editingItemDescriptionError = null, this._layerNameValidationError = null, this._layerDescriptionValidationError = null, this._newLayerNameValidationError = null, this._newLayerDescriptionValidationError = null, this._editingFieldDisplayNameError = null, this._editingFieldNameError = null, this._editingFieldDescriptionError = null, this._editingFieldLengthError = null, this._editingFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._newFieldDisplayNameError = null, this._newFieldNameError = null, this._newFieldDescriptionError = null, this._newFieldLengthError = null, this._newFieldChoiceListErrors = /* @__PURE__ */ new Map(), this._deployAlertMessage = null, this._layerNameAlertMessage = null, this._hasRequiredFieldSelected = !1;
|
|
668
|
-
}, this._designContextConsumer, window.addEventListener("arcgis-solution-undo", this._handleUndo), window.addEventListener("arcgis-solution-redo", this._handleRedo), window.addEventListener("beforeunload", this._handleBeforeUnload), this.listenOn(window, "deployedCardReady", this._handleDeployedCardReady), this.listenOn(window, "deploymentCompletedWithoutNav", this._handleDeploymentFallback), this.listenOn(window, "assistantProcessing", this._handleAssistantProcessing)
|
|
705
|
+
}, this._designContextConsumer, window.addEventListener("arcgis-solution-undo", this._handleUndo), window.addEventListener("arcgis-solution-redo", this._handleRedo), window.addEventListener("beforeunload", this._handleBeforeUnload), this.listenOn(window, "deployedCardReady", this._handleDeployedCardReady), this.listenOn(window, "deploymentCompletedWithoutNav", this._handleDeploymentFallback), this.listenOn(window, "assistantProcessing", this._handleAssistantProcessing), this.listenOn(window, "requestBuilderDiscard", () => {
|
|
706
|
+
console.log("[solution-builder-assistant] Design at new conversation start:", this._design), this._handleDiscardChanges();
|
|
707
|
+
});
|
|
669
708
|
}
|
|
670
709
|
static {
|
|
671
710
|
this.properties = { design: [1, { type: Object }], readOnlyNotice: 1, _design: 16, _translations: 16, _isDirty: 16, _solutionTitleInput: 16, _solutionDescriptionInput: 16, _titleValidationError: 16, _deployAlertMessage: 16, _layerNameAlertMessage: 16, _itemContentAlertMessage: 16, _editFieldAlertMessage: 16, _descriptionValidationError: 16, _undoStack: 16, _redoStack: 16, _isEditingContentItem: 16, _editingContentItemId: 16, _editingItemTitle: 16, _editingItemDescription: 16, _editingItemTitleError: 16, _editingItemDescriptionError: 16, _layerNameValidationError: 16, _layerDescriptionValidationError: 16, _newLayerNameValidationError: 16, _newLayerDescriptionValidationError: 16, _selectedLayerIndex: 16, _isAddingLayer: 16, _newLayerName: 16, _newLayerType: 16, _newLayerDescription: 16, _isEditingField: 16, _editingFieldIndex: 16, _editingFieldType: 16, _editingFieldDisplayName: 16, _editingFieldName: 16, _editingFieldDescription: 16, _editingFieldTypeValue: 16, _editingFieldLength: 16, _editingFieldChoiceList: 16, _isAddingNewField: 16, _isCustomizingLayer: 16, _selectedFieldCount: 16, _hasRequiredFieldSelected: 16, _fieldTableKey: 16, _newFieldDisplayName: 16, _newFieldName: 16, _newFieldDescription: 16, _newFieldType: 16, _newFieldLength: 16, _newFieldChoiceList: 16, _editingFieldDisplayNameError: 16, _editingFieldNameError: 16, _editingFieldDescriptionError: 16, _editingFieldLengthError: 16, _editingFieldChoiceListErrors: 16, _newFieldDisplayNameError: 16, _newFieldNameError: 16, _newFieldDescriptionError: 16, _newFieldLengthError: 16, _newFieldChoiceListErrors: 16, _editingFieldChoiceListVersion: 16, _newFieldChoiceListVersion: 16, _card: 16, _userOptions: 16, _designContextValue: 16, _isProcessing: 16, _isDiscarding: 16, _isDiscardingFlowChanges: 16, _canDeploy: 16, _isCheckingPermissions: 16, _permisssionErrorMessages: 16 };
|
|
672
711
|
}
|
|
673
712
|
static {
|
|
674
|
-
this.styles =
|
|
713
|
+
this.styles = $;
|
|
675
714
|
}
|
|
676
715
|
get _telemetry() {
|
|
677
716
|
return this._configContextConsumer.value?.telemetrySession;
|
|
@@ -680,7 +719,7 @@ class ee extends T {
|
|
|
680
719
|
window.removeEventListener("arcgis-solution-undo", this._handleUndo), window.removeEventListener("arcgis-solution-redo", this._handleRedo), window.removeEventListener("beforeunload", this._handleBeforeUnload), super.disconnectedCallback();
|
|
681
720
|
}
|
|
682
721
|
willUpdate(e) {
|
|
683
|
-
if (e.has("design") && (this.design ? this._pushDesign(this.design) : this._design = null), e.has("_design") && this._isEditingField && this._design) {
|
|
722
|
+
if (e.has("design") && (this.design ? this._pushDesign(this.design) : (this._design = null, console.log("[solution-builder-assistant] Solution design after clear:", this._design))), e.has("_design") && this._isEditingField && this._design) {
|
|
684
723
|
const t = [
|
|
685
724
|
...this._design.featureLayer?.layers?.[this._selectedLayerIndex]?.customFields || [],
|
|
686
725
|
...this._design.featureLayer?.layers?.[this._selectedLayerIndex]?.requiredFields || []
|
|
@@ -715,7 +754,7 @@ class ee extends T {
|
|
|
715
754
|
}
|
|
716
755
|
render() {
|
|
717
756
|
const e = this._translations;
|
|
718
|
-
return e ? this._design ? r`${this._isProcessing && r`<calcite-scrim><calcite-loader .label=${e.assistantLoading}></calcite-loader></calcite-scrim>` || ""}<calcite-panel class="builder-panel"><div slot=header-content class="header-content-wrapper"><span class="header-title">${e.headerTitle}${this._design?.solution?.title ? `: ${this._design.solution.title}` : ""}</span><calcite-chip .label=${e.draft} kind=neutral appearance=outline scale=s>${e.draft}</calcite-chip></div><calcite-action slot=header-actions-end .text=${e.undo} text-enabled icon=undo .disabled=${this._undoStack.length === 0 || this._isAddingLayer || this._isAddingNewField} @click=${this._handleUndo}></calcite-action><calcite-action slot=header-actions-end .text=${e.redo} text-enabled icon=redo .disabled=${this._redoStack.length === 0 || this._isAddingLayer || this._isAddingNewField} @click=${this._handleRedo}></calcite-action><div slot=header-actions-end class="header-divider"></div><calcite-action slot=header-actions-end .text=${e.hideBuilder} text-enabled .icon=${document.dir === "rtl" ? "chevrons-left" : "chevrons-right"} @click=${this._handleHideBuilder}></calcite-action>${!this._isCustomizingLayer && !this._isEditingContentItem && r`<div class="builder-content">${this._renderMainContent()}${this._renderSolutionItemContent()}</div>` || ""}${this._isCustomizingLayer && r`<div class="builder-content builder-content-flow">${this._renderCustomizeLayerFlow()}</div>` || ""}${this._isEditingContentItem && r`<div class="builder-content builder-content-flow">${this._renderContentItemFlow()}</div>` || ""}<solution-deploy-dialog .card=${this._card} .design=${this._design} @deployCancelled=${this._handleDeployCancelled} @deployFailed=${this._handleDeployFailed} @deployProgressEnd=${this._handleDeploySuccess} @deployProgressStart=${this._deployProgressStart} @deployProgressUpdated=${this._deployProgessUpdated} id=solutionDeployDialog .userOptions=${this._userOptions} ${
|
|
757
|
+
return e ? this._design ? r`${this._isProcessing && r`<calcite-scrim><calcite-loader .label=${e.assistantLoading}></calcite-loader></calcite-scrim>` || ""}<calcite-panel class="builder-panel"><div slot=header-content class="header-content-wrapper"><span class="header-title">${e.headerTitle}${this._design?.solution?.title ? `: ${this._design.solution.title}` : ""}</span><calcite-chip .label=${e.draft} kind=neutral appearance=outline scale=s>${e.draft}</calcite-chip></div><calcite-action slot=header-actions-end .text=${e.undo} text-enabled icon=undo .disabled=${this._undoStack.length === 0 || this._isAddingLayer || this._isAddingNewField} @click=${this._handleUndo}></calcite-action><calcite-action slot=header-actions-end .text=${e.redo} text-enabled icon=redo .disabled=${this._redoStack.length === 0 || this._isAddingLayer || this._isAddingNewField} @click=${this._handleRedo}></calcite-action><div slot=header-actions-end class="header-divider"></div><calcite-action slot=header-actions-end .text=${e.hideBuilder} text-enabled .icon=${document.dir === "rtl" ? "chevrons-left" : "chevrons-right"} @click=${this._handleHideBuilder}></calcite-action>${!this._isCustomizingLayer && !this._isEditingContentItem && r`<div class="builder-content">${this._renderMainContent()}${this._renderSolutionItemContent()}</div>` || ""}${this._isCustomizingLayer && r`<div class="builder-content builder-content-flow">${this._renderCustomizeLayerFlow()}</div>` || ""}${this._isEditingContentItem && r`<div class="builder-content builder-content-flow">${this._renderContentItemFlow()}</div>` || ""}<solution-deploy-dialog .card=${this._card} .design=${this._design} @deployCancelled=${this._handleDeployCancelled} @deployFailed=${this._handleDeployFailed} @deployProgressEnd=${this._handleDeploySuccess} @deployProgressStart=${this._deployProgressStart} @deployProgressUpdated=${this._deployProgessUpdated} id=solutionDeployDialog .userOptions=${this._userOptions} ${E(this._deployDialogRef)}></solution-deploy-dialog><solution-deploying-dialog .card=${this._card} @deploymentProcessCancelled=${this._handleDeploymentProcessCancelled} ${E(this._deployingDialogRef)}></solution-deploying-dialog><calcite-alert .open=${!!this._deployAlertMessage} kind=danger icon=exclamation-mark-triangle label=deploy-error auto-close auto-close-duration=medium @calciteAlertClose=${() => this._deployAlertMessage = null}><div slot=title>${this._translations.invalidSolutionName}</div><div slot=message>${this._deployAlertMessage}</div></calcite-alert><calcite-alert .open=${!!this._layerNameAlertMessage} kind=danger icon=exclamation-mark-triangle label=layer-name-error auto-close auto-close-duration=medium @calciteAlertClose=${() => this._layerNameAlertMessage = null}><div slot=title>${this._translations.invalidLayerNameOrDescription}</div><div slot=message>${this._layerNameAlertMessage}</div></calcite-alert><calcite-alert .open=${!!this._itemContentAlertMessage} kind=danger icon=exclamation-mark-triangle label=item-content-error auto-close auto-close-duration=medium @calciteAlertClose=${() => this._itemContentAlertMessage = null}><div slot=title>${this._translations.invalidItemTitleOrDescription}</div><div slot=message>${this._itemContentAlertMessage}</div></calcite-alert><calcite-alert .open=${!!this._editFieldAlertMessage} kind=danger icon=exclamation-mark-triangle label=edit-field-error auto-close auto-close-duration=medium @calciteAlertClose=${() => this._editFieldAlertMessage = null}><div slot=title>${this._translations.invalidFieldProperties}</div><div slot=message>${this._editFieldAlertMessage}</div></calcite-alert>${this._isDiscarding && r`<calcite-dialog close-disabled escape-disabled .heading=${this._design?.solution?.title ?? ""} modal open>${e.discardMessage}<div class="discard-changes-button" slot=footer-end><calcite-button appearance=outline @click=${() => {
|
|
719
758
|
this._isDiscarding = !1;
|
|
720
759
|
}}>${e.cancel}</calcite-button><calcite-button appearance=solid kind=danger @click=${() => this._handleDiscardChanges()}>${e.discard}</calcite-button></div></calcite-dialog>` || ""}${this._isDiscardingFlowChanges && r`<calcite-dialog close-disabled escape-disabled .heading=${e.discard} modal open>${e.discardFlowChangesMessage}<div class="discard-changes-button" slot=footer-end><calcite-button appearance=outline @click=${() => {
|
|
721
760
|
this._isDiscardingFlowChanges = !1, this._pendingFlowDiscardAction = null;
|
|
@@ -776,7 +815,7 @@ class ee extends T {
|
|
|
776
815
|
});
|
|
777
816
|
}
|
|
778
817
|
async _validateSolutionName(e) {
|
|
779
|
-
const i = this._translations, t = await
|
|
818
|
+
const i = this._translations, t = await Q(e, void 0, !0);
|
|
780
819
|
if (!t.isValid)
|
|
781
820
|
switch (t.errorType) {
|
|
782
821
|
case "empty":
|
|
@@ -791,7 +830,7 @@ class ee extends T {
|
|
|
791
830
|
return null;
|
|
792
831
|
}
|
|
793
832
|
_validateSolutionDescription(e) {
|
|
794
|
-
const i = this._translations, t =
|
|
833
|
+
const i = this._translations, t = f(e, 2048, !1);
|
|
795
834
|
if (!t.isValid)
|
|
796
835
|
switch (t.errorType) {
|
|
797
836
|
case "exceed-length":
|
|
@@ -804,7 +843,7 @@ class ee extends T {
|
|
|
804
843
|
return null;
|
|
805
844
|
}
|
|
806
845
|
_validateItemName(e) {
|
|
807
|
-
const i = this._translations, t =
|
|
846
|
+
const i = this._translations, t = T(e);
|
|
808
847
|
if (!t.isValid)
|
|
809
848
|
switch (t.errorType) {
|
|
810
849
|
case "empty":
|
|
@@ -819,7 +858,7 @@ class ee extends T {
|
|
|
819
858
|
return null;
|
|
820
859
|
}
|
|
821
860
|
_validateItemDescription(e) {
|
|
822
|
-
const i = this._translations, t =
|
|
861
|
+
const i = this._translations, t = f(e, 2048, !1);
|
|
823
862
|
if (!t.isValid)
|
|
824
863
|
switch (t.errorType) {
|
|
825
864
|
case "exceed-length":
|
|
@@ -832,7 +871,7 @@ class ee extends T {
|
|
|
832
871
|
return null;
|
|
833
872
|
}
|
|
834
873
|
_validateLayerName(e, i) {
|
|
835
|
-
const t = this._translations, s =
|
|
874
|
+
const t = this._translations, s = T(e);
|
|
836
875
|
if (!s.isValid)
|
|
837
876
|
switch (s.errorType) {
|
|
838
877
|
case "empty":
|
|
@@ -847,7 +886,7 @@ class ee extends T {
|
|
|
847
886
|
return i && i.some((l) => l.toLowerCase() === e.toLowerCase()) ? t.layerNameErrorDuplicate : null;
|
|
848
887
|
}
|
|
849
888
|
_validateLayerDescription(e) {
|
|
850
|
-
const i = this._translations, t =
|
|
889
|
+
const i = this._translations, t = f(e, 2048, !1);
|
|
851
890
|
if (!t.isValid)
|
|
852
891
|
switch (t.errorType) {
|
|
853
892
|
case "exceed-length":
|
|
@@ -860,7 +899,7 @@ class ee extends T {
|
|
|
860
899
|
return null;
|
|
861
900
|
}
|
|
862
901
|
_validateFieldDisplayName(e) {
|
|
863
|
-
const i = this._translations, t =
|
|
902
|
+
const i = this._translations, t = K(e);
|
|
864
903
|
if (!t.isValid)
|
|
865
904
|
switch (t.errorType) {
|
|
866
905
|
case "empty":
|
|
@@ -875,16 +914,16 @@ class ee extends T {
|
|
|
875
914
|
_validateFieldName(e, i, t = !1, s = -1, l = null) {
|
|
876
915
|
const n = this._translations, a = [], o = this._design?.featureLayer?.layers || [];
|
|
877
916
|
if (i >= 0 && i < o.length) {
|
|
878
|
-
const A = o[i], h = A.customFields || [],
|
|
879
|
-
h.forEach((g,
|
|
880
|
-
(!t || l !== "custom" ||
|
|
881
|
-
}),
|
|
882
|
-
(!t || l !== "required" ||
|
|
883
|
-
}),
|
|
917
|
+
const A = o[i], h = A.customFields || [], y = A.requiredFields || [], p = A.systemFields || [];
|
|
918
|
+
h.forEach((g, w) => {
|
|
919
|
+
(!t || l !== "custom" || w !== s) && a.push(g.name.toLowerCase());
|
|
920
|
+
}), y.forEach((g, w) => {
|
|
921
|
+
(!t || l !== "required" || w !== s) && a.push(g.name.toLowerCase());
|
|
922
|
+
}), p.forEach((g) => {
|
|
884
923
|
a.push(g.name.toLowerCase());
|
|
885
924
|
});
|
|
886
925
|
}
|
|
887
|
-
const c =
|
|
926
|
+
const c = G(e, a);
|
|
888
927
|
if (!c.isValid)
|
|
889
928
|
switch (c.errorType) {
|
|
890
929
|
case "empty":
|
|
@@ -905,7 +944,7 @@ class ee extends T {
|
|
|
905
944
|
return null;
|
|
906
945
|
}
|
|
907
946
|
_validateFieldDescription(e) {
|
|
908
|
-
const i = this._translations, t =
|
|
947
|
+
const i = this._translations, t = f(e, 500, !0);
|
|
909
948
|
if (!t.isValid)
|
|
910
949
|
switch (t.errorType) {
|
|
911
950
|
case "exceed-length":
|
|
@@ -921,11 +960,11 @@ class ee extends T {
|
|
|
921
960
|
const i = this._translations;
|
|
922
961
|
if (e === null || isNaN(e))
|
|
923
962
|
return i.lengthErrorOutOfRange;
|
|
924
|
-
const t =
|
|
963
|
+
const t = R(e);
|
|
925
964
|
return t.isValid ? null : t.errorType === "out-of-range" ? i.lengthErrorOutOfRange : null;
|
|
926
965
|
}
|
|
927
966
|
_validateDomainValue(e, i, t = !1, s, l) {
|
|
928
|
-
const n = this._translations, a =
|
|
967
|
+
const n = this._translations, a = U(e, i, t);
|
|
929
968
|
if (!a.isValid)
|
|
930
969
|
switch (a.errorType) {
|
|
931
970
|
case "empty":
|
|
@@ -943,11 +982,11 @@ class ee extends T {
|
|
|
943
982
|
...e.requiredFields || []
|
|
944
983
|
], s = e.customFields?.length || 0, l = [];
|
|
945
984
|
return t.forEach((n, a) => {
|
|
946
|
-
const o = this._getFieldTypeIcon(n.type), c = this._formatFieldType(n), A = `field-domain-info-${a}`, h = `field-description-info-${a}`,
|
|
947
|
-
let g,
|
|
948
|
-
n.choiceList && Array.isArray(n.choiceList) ? (
|
|
949
|
-
const
|
|
950
|
-
l.push(r`<calcite-table-row data-field-index=${(
|
|
985
|
+
const o = this._getFieldTypeIcon(n.type), c = this._formatFieldType(n), A = `field-domain-info-${a}`, h = `field-description-info-${a}`, y = `field-lock-${a}`, p = a >= s;
|
|
986
|
+
let g, w = !1;
|
|
987
|
+
n.choiceList && Array.isArray(n.choiceList) ? (w = !0, g = r`<div class="info-cell-content"><span>${i.domainList.replace("{{count}}", String(n.choiceList.length))}</span><calcite-icon aria-hidden=true id=${A ?? d} icon=information scale=s></calcite-icon></div>`) : g = null;
|
|
988
|
+
const W = p ? r`<div class="field-name-cell"><calcite-icon aria-hidden=true id=${y ?? d} icon=lock scale=s class="lock-icon"></calcite-icon><span>${n.name}</span></div>` : n.name;
|
|
989
|
+
l.push(r`<calcite-table-row data-field-index=${(p ? void 0 : String(a)) ?? d}><calcite-table-cell>${n.description ? r`<div class="info-cell-content"><span>${n.alias}</span><calcite-icon aria-hidden=true id=${h ?? d} icon=information scale=s></calcite-icon></div>` : n.alias}</calcite-table-cell><calcite-table-cell>${W}</calcite-table-cell><calcite-table-cell><div class="field-type-cell"><calcite-icon aria-hidden=true .icon=${o} scale=s></calcite-icon><span>${c}</span></div></calcite-table-cell><calcite-table-cell>${g}</calcite-table-cell><calcite-table-cell><div class="edit-cell-content"><calcite-button appearance=transparent aria-label=${i.editField ?? d} class="edit-icon" .id=${`edit-field-btn-${a}`} icon-start=pencil kind=neutral @click=${() => this._handleEditField(a, n)} scale=s></calcite-button><calcite-tooltip .referenceElement=${`edit-field-btn-${a}`} placement=top>${i.editFieldPropertiesTooltip}</calcite-tooltip></div></calcite-table-cell></calcite-table-row>`), w && l.push(r`<calcite-tooltip .referenceElement=${A} placement=left><ul class="choice-list-tooltip">${n.choiceList.map((q) => r`<li>${q}</li>`)}</ul></calcite-tooltip>`), n.description && l.push(r`<calcite-tooltip .referenceElement=${h} placement=right>${n.description}</calcite-tooltip>`), p && l.push(r`<calcite-tooltip .referenceElement=${y} placement=top>${i.requiredFieldTooltip}</calcite-tooltip>`);
|
|
951
990
|
}), l;
|
|
952
991
|
}
|
|
953
992
|
_renderEmptyState() {
|
|
@@ -956,23 +995,38 @@ class ee extends T {
|
|
|
956
995
|
_renderMainContent() {
|
|
957
996
|
return r`<div class="content-container"><div class="solution-item-thumbnail">${this._renderThumbnailInput()}</div><div class="solution-item-action-group"><div class="solution-item-section">${this._renderSolutionItemInputs()}</div><div class="actions-section">${this._renderActionButtons()}</div></div></div>`;
|
|
958
997
|
}
|
|
998
|
+
_getBuilderTelemetryMetadata() {
|
|
999
|
+
const e = this._design?.templateId;
|
|
1000
|
+
let i = "";
|
|
1001
|
+
e === x ? i = "Conduct Field Inspections" : e === v ? i = "Manage Spatial Data" : e === C && (i = "Locate Places of Interest");
|
|
1002
|
+
const t = this._design?.sourceBuildSolution?.solution?.item?.typeKeywords || [], s = I(t, "solutionid-"), l = I(t, "solutionversion-");
|
|
1003
|
+
return { patternName: i, solutionId: s, version: l };
|
|
1004
|
+
}
|
|
1005
|
+
_logEditTelemetry(e) {
|
|
1006
|
+
const i = this._getBuilderTelemetryMetadata();
|
|
1007
|
+
this._telemetry?.logEvent({
|
|
1008
|
+
category: u.BUILDER,
|
|
1009
|
+
action: "Edit",
|
|
1010
|
+
dimensions: [i.patternName, e]
|
|
1011
|
+
});
|
|
1012
|
+
}
|
|
959
1013
|
_getTemplateThumbnail() {
|
|
960
1014
|
const e = "?w=400", i = this._design?.templateId;
|
|
961
|
-
return i ===
|
|
1015
|
+
return i === v ? ie + e : i === C ? ee + e : N + e;
|
|
962
1016
|
}
|
|
963
1017
|
_renderThumbnailInput() {
|
|
964
1018
|
const e = this._translations, i = this._design?.sourceBuildSolution?.solution?.thumbnailUrl || this._design?.solution?.thumbnailUrl || "", t = i ? i.startsWith("http") ? i + "?w=400" : i : this._getTemplateThumbnail();
|
|
965
1019
|
return r`<div class="thumbnail-container"><img src=${t ?? d} alt=${e.solutionThumbnail ?? d}></div>`;
|
|
966
1020
|
}
|
|
967
1021
|
_renderSolutionItemInputs() {
|
|
968
|
-
const e = this._translations, i =
|
|
1022
|
+
const e = this._translations, i = b(this._configContextConsumer.value);
|
|
969
1023
|
return r`<div class="solution-item-inputs"><div class="solution-inputs-row"><div class="stacked-inputs"><calcite-input-text label-text=${e.name ?? d} required .placeholder=${e.namePlaceholder} .value=${this._solutionTitleInput} max-length=250 .status=${this._titleValidationError ? "invalid" : "idle"} .validationMessage=${this._titleValidationError || ""} .validationIcon=${!!this._titleValidationError} @input=${(t) => this._handleTitleInput(t.target.value)} @calciteInputTextChange=${(t) => this._handleTitleBlur(t.target.value)}></calcite-input-text><div class="textarea-wrapper"><calcite-text-area .labelText=${e.description} .placeholder=${e.solutionDescriptionPlaceholder} .value=${this._solutionDescriptionInput} max-length=2048 resize=none rows=3 .status=${this._descriptionValidationError ? "invalid" : "idle"} .validationMessage=${this._descriptionValidationError || ""} .validationIcon=${!!this._descriptionValidationError} limit-text @calciteTextAreaInput=${(t) => this._handleDescriptionInput(t.target.value)} @calciteTextAreaChange=${(t) => this._handleDescriptionBlur(t.target.value)}></calcite-text-area>${i && r`<div class="display-flex flex-direction-row">${this._getReadOnlyNotice()}</div>` || ""}</div></div></div></div>`;
|
|
970
1024
|
}
|
|
971
1025
|
_getReadOnlyNotice() {
|
|
972
1026
|
return r`<calcite-notice class="padding-top-lg" icon=exclamation-mark-triangle kind=warning open scale=s><div slot=message .innerHTML=${this.readOnlyNotice ?? ""}></div></calcite-notice>`;
|
|
973
1027
|
}
|
|
974
1028
|
_renderActionButtons() {
|
|
975
|
-
const e = this._translations, i = !!this._titleValidationError || !!this._descriptionValidationError, t =
|
|
1029
|
+
const e = this._translations, i = !!this._titleValidationError || !!this._descriptionValidationError, t = b(this._configContextConsumer.value);
|
|
976
1030
|
return r`<div class="action-buttons"><calcite-button appearance=solid width=full .disabled=${i || t || !this._canDeploy} @click=${() => {
|
|
977
1031
|
this._canDeploy === void 0 ? (this._isCheckingPermissions = !0, this._hasPermissionToDeploy().then((s) => {
|
|
978
1032
|
this._isCheckingPermissions = !1, this._canDeploy = s, s && this._handleDeploy();
|
|
@@ -985,9 +1039,9 @@ class ee extends T {
|
|
|
985
1039
|
const e = this._translations, i = this._design?.items || [], t = this._design?.featureLayer?.itemId, s = this._design?.featureLayer?.layers || [], l = this._design?.featureLayer?.addLayers || !1, n = [...i].reverse(), a = [];
|
|
986
1040
|
return r`<div class="solution-item-content-section"><h3 class="section-header">${e.contents}</h3><calcite-list .label=${e.solutionContentItems} selection-mode=none display-mode=nested interaction-mode=static>${n.map((o) => {
|
|
987
1041
|
const c = o.id === t, A = `edit-item-action-${o.id}`;
|
|
988
|
-
return a.push(r`<calcite-tooltip .referenceElement=${A} placement=left>${e.editItemPropertiesTooltip}</calcite-tooltip>`), r`<calcite-list-item .label=${o.title} .description=${o.description || ""} .expanded=${c ? !0 : void 0}><solution-item-icon slot=content-start .designType=${o.type}></solution-item-icon><calcite-action slot=actions-end id=${A ?? d} icon=edit-attributes .text=${e.edit} scale=m @click=${() => this._handleOpenContentItemFlow(o)}></calcite-action>${c && r`<calcite-list .label=${e.layers} selection-mode=none interaction-mode=static display-mode=nested>${s.map((h,
|
|
989
|
-
const
|
|
990
|
-
return a.push(r`<calcite-tooltip .referenceElement=${
|
|
1042
|
+
return a.push(r`<calcite-tooltip .referenceElement=${A} placement=left>${e.editItemPropertiesTooltip}</calcite-tooltip>`), r`<calcite-list-item .label=${o.title} .description=${o.description || ""} .expanded=${c ? !0 : void 0}><solution-item-icon slot=content-start .designType=${o.type}></solution-item-icon><calcite-action slot=actions-end id=${A ?? d} icon=edit-attributes .text=${e.edit} scale=m @click=${() => this._handleOpenContentItemFlow(o)}></calcite-action>${c && r`<calcite-list .label=${e.layers} selection-mode=none interaction-mode=static display-mode=nested>${s.map((h, y) => {
|
|
1043
|
+
const p = `edit-layer-action-${h.id}`;
|
|
1044
|
+
return a.push(r`<calcite-tooltip .referenceElement=${p} placement=left>${e.editLayerPropertiesTooltip}</calcite-tooltip>`), r`<calcite-list-item .label=${h.name} .description=${h.description || ""}><calcite-icon slot=content-start .icon=${h.type === "Point" ? "point" : h.type === "Polyline" ? "line" : h.type === "Polygon" ? "polygon" : h.type === "Table" ? "table" : "layer"} scale=s></calcite-icon><calcite-action slot=actions-end id=${p ?? d} icon=edit-attributes .text=${e.edit} scale=m @click=${() => this._handleOpenCustomizeLayer(y)}></calcite-action></calcite-list-item>`;
|
|
991
1045
|
})}${l && r`<calcite-list-item><calcite-button slot=content-start icon-start=plus appearance=transparent width=auto scale=m @click=${this._handleAddLayer}>${e.addLayer}</calcite-button></calcite-list-item>` || ""}</calcite-list>` || ""}</calcite-list-item>`;
|
|
992
1046
|
})}</calcite-list>${a}</div>`;
|
|
993
1047
|
}
|
|
@@ -997,16 +1051,16 @@ class ee extends T {
|
|
|
997
1051
|
}
|
|
998
1052
|
_renderCustomizeLayerFlow() {
|
|
999
1053
|
const e = this._translations, t = (this._design?.featureLayer?.layers || [])[this._selectedLayerIndex], s = t?.name || "", l = t?.description || "", n = t?.type || "Point";
|
|
1000
|
-
return r`<calcite-flow><calcite-flow-item .selected=${!this._isAddingLayer && !this._isEditingField && !this._isAddingNewField}><div slot=heading class="content-item-flow-heading"><calcite-icon .icon=${n === "Point" ? "point" : n === "Polyline" ? "line" : n === "Polygon" ? "polygon" : n === "Table" ? "table" : "layer"} scale=s></calcite-icon><span>${s}</span></div><calcite-action slot=header-actions-start icon=chevron-left .text=${e.close} scale=m @click=${this._handleCloseCustomizeLayer}></calcite-action><div class="layer-form-content">${t && r`<div class="layer-details-container"><div class="layer-properties-section"><div class="layer-properties-row"><calcite-input-text label-text=${e.name ?? d} required .placeholder=${e.layerNamePlaceholder} .value=${s} max-length=250 .status=${this._layerNameValidationError ? "invalid" : "idle"} .validationMessage=${this._layerNameValidationError || ""} .validationIcon=${!!this._layerNameValidationError} @input=${(a) => this._handleLayerNameInput(a.target.value)} @calciteInputTextChange=${(a) => this._handleLayerNameBlur(a.target.value)}></calcite-input-text><div class="layer-type-control-row"><calcite-combobox .label=${e.type} label-text=${e.type ?? d} selection-mode=single-persist clear-disabled .disabled=${t?.typeMutable === !1 || void 0} @calciteComboboxChange=${(a) => this._handleLayerTypeChange(a)}><calcite-combobox-item value=Point .label=${e.pointLayer} .heading=${e.pointLayer} icon=point .selected=${n === "Point"}></calcite-combobox-item><calcite-combobox-item value=Polyline .label=${e.lineLayer} .heading=${e.lineLayer} icon=line .selected=${n === "Polyline"}></calcite-combobox-item><calcite-combobox-item value=Polygon .label=${e.polygonLayer} .heading=${e.polygonLayer} icon=polygon .selected=${n === "Polygon"}></calcite-combobox-item>${(!this._shouldDisableTableTypeOption(t) || n === "Table") && r`<calcite-combobox-item value=Table .label=${e.tableLayer} .heading=${e.tableLayer} icon=table .selected=${n === "Table"} .disabled=${n === "Table" && this._shouldDisableTableTypeOption(t) || void 0}></calcite-combobox-item>` || ""}</calcite-combobox></div></div></div><div class="layer-description-container"><div class="textarea-wrapper"><calcite-text-area .labelText=${e.description} .placeholder=${e.layerDescriptionPlaceholder} .value=${l} resize=none rows=3 max-length=2048 .status=${this._layerDescriptionValidationError ? "invalid" : "idle"} .validationMessage=${this._layerDescriptionValidationError || ""} .validationIcon=${!!this._layerDescriptionValidationError} limit-text @calciteTextAreaInput=${(a) => this._handleLayerDescriptionInput(a.target.value)} @calciteTextAreaChange=${(a) => this._handleLayerDescriptionBlur(a.target.value)}></calcite-text-area></div></div><div class="fields-section"><calcite-label class="section-title">${e.fields}${
|
|
1054
|
+
return r`<calcite-flow><calcite-flow-item .selected=${!this._isAddingLayer && !this._isEditingField && !this._isAddingNewField}><div slot=heading class="content-item-flow-heading"><calcite-icon .icon=${n === "Point" ? "point" : n === "Polyline" ? "line" : n === "Polygon" ? "polygon" : n === "Table" ? "table" : "layer"} scale=s></calcite-icon><span>${s}</span></div><calcite-action slot=header-actions-start icon=chevron-left .text=${e.close} scale=m @click=${this._handleCloseCustomizeLayer}></calcite-action><div class="layer-form-content">${t && r`<div class="layer-details-container"><div class="layer-properties-section"><div class="layer-properties-row"><calcite-input-text label-text=${e.name ?? d} required .placeholder=${e.layerNamePlaceholder} .value=${s} max-length=250 .status=${this._layerNameValidationError ? "invalid" : "idle"} .validationMessage=${this._layerNameValidationError || ""} .validationIcon=${!!this._layerNameValidationError} @input=${(a) => this._handleLayerNameInput(a.target.value)} @calciteInputTextChange=${(a) => this._handleLayerNameBlur(a.target.value)}></calcite-input-text><div class="layer-type-control-row"><calcite-combobox .label=${e.type} label-text=${e.type ?? d} selection-mode=single-persist clear-disabled .disabled=${t?.typeMutable === !1 || void 0} @calciteComboboxChange=${(a) => this._handleLayerTypeChange(a)}><calcite-combobox-item value=Point .label=${e.pointLayer} .heading=${e.pointLayer} icon=point .selected=${n === "Point"}></calcite-combobox-item><calcite-combobox-item value=Polyline .label=${e.lineLayer} .heading=${e.lineLayer} icon=line .selected=${n === "Polyline"}></calcite-combobox-item><calcite-combobox-item value=Polygon .label=${e.polygonLayer} .heading=${e.polygonLayer} icon=polygon .selected=${n === "Polygon"}></calcite-combobox-item>${(!this._shouldDisableTableTypeOption(t) || n === "Table") && r`<calcite-combobox-item value=Table .label=${e.tableLayer} .heading=${e.tableLayer} icon=table .selected=${n === "Table"} .disabled=${n === "Table" && this._shouldDisableTableTypeOption(t) || void 0}></calcite-combobox-item>` || ""}</calcite-combobox></div></div></div><div class="layer-description-container"><div class="textarea-wrapper"><calcite-text-area .labelText=${e.description} .placeholder=${e.layerDescriptionPlaceholder} .value=${l} resize=none rows=3 max-length=2048 .status=${this._layerDescriptionValidationError ? "invalid" : "idle"} .validationMessage=${this._layerDescriptionValidationError || ""} .validationIcon=${!!this._layerDescriptionValidationError} limit-text @calciteTextAreaInput=${(a) => this._handleLayerDescriptionInput(a.target.value)} @calciteTextAreaChange=${(a) => this._handleLayerDescriptionBlur(a.target.value)}></calcite-text-area></div></div><div class="fields-section"><calcite-label class="section-title">${e.fields}${L(this._fieldTableKey, r`<calcite-table bordered .caption=${e.fields} selection-mode=multiple @calciteTableSelect=${this._handleFieldTableSelect}>${this._selectedFieldCount > 0 && [
|
|
1001
1055
|
r`<calcite-button id=delete-fields-btn slot=selection-actions appearance=transparent kind=danger icon-start=trash width=auto .disabled=${this._hasRequiredFieldSelected || void 0} @click=${this._handleDeleteSelectedFields}>${e.deleteFields}</calcite-button>`,
|
|
1002
1056
|
this._hasRequiredFieldSelected ? r`<calcite-tooltip reference-element=delete-fields-btn placement=bottom>${e.requiredFieldsCannotBeDeleted}</calcite-tooltip>` : null
|
|
1003
1057
|
] || ""}${this._selectedFieldCount === 0 && r`<calcite-button slot=selection-actions icon-start=plus appearance=transparent width=auto scale=m @click=${this._handleAddField}>${e.addField}</calcite-button>` || ""}<calcite-table-row slot=table-header><calcite-table-header .heading=${e.displayName}></calcite-table-header><calcite-table-header .heading=${e.fieldName}></calcite-table-header><calcite-table-header .heading=${e.type}></calcite-table-header><calcite-table-header .heading=${e.domain}></calcite-table-header><calcite-table-header heading></calcite-table-header></calcite-table-row>${this._renderFieldRows(t)}</calcite-table>`)}</calcite-label><calcite-notice open icon=information appearance=transparent width=full><div slot=message>${e.systemFieldsNote} ${this._getSystemFieldsList(t)}</div></calcite-notice></div></div>` || ""}</div>${this._shouldShowRemoveLayerButton(t) && r`<div slot=footer class="flow-footer-center"><calcite-button appearance=transparent kind=danger icon-start=trash width=auto @click=${this._handleRemoveLayer}>${e.removeLayer}</calcite-button></div>` || ""}</calcite-flow-item>${this._isEditingField && r`<calcite-flow-item .heading=${e.editField} selected @calciteFlowItemBack=${this._handleEditFieldFlowItemBack}><div class="flow-details-container"><div class="layer-properties-container"><calcite-input-text label-text=${e.displayName ?? d} required .placeholder=${e.displayNamePlaceholder} .value=${this._editingFieldDisplayName} max-length=250 .status=${this._editingFieldDisplayNameError ? "invalid" : "idle"} .validationMessage=${this._editingFieldDisplayNameError || ""} .validationIcon=${!!this._editingFieldDisplayNameError} @input=${(a) => this._handleEditFieldDisplayNameChange(a.target.value)} @calciteInputTextChange=${this._handleEditFieldDisplayNameBlur}></calcite-input-text><calcite-input-text label-text=${e.fieldName ?? d} required .placeholder=${e.fieldNamePlaceholder} .value=${this._editingFieldName} max-length=31 .disabled=${this._editingFieldType === "required"} .status=${this._editingFieldNameError ? "invalid" : "idle"} .validationMessage=${this._editingFieldNameError || ""} .validationIcon=${!!this._editingFieldNameError} @input=${(a) => this._handleEditFieldNameChange(a.target.value)} @calciteInputTextChange=${this._handleEditFieldNameBlur}></calcite-input-text></div><div class="layer-description-container"><div class="textarea-wrapper"><calcite-text-area .labelText=${e.fieldDescription} .placeholder=${e.fieldDescriptionPlaceholder} .value=${this._editingFieldDescription} resize=none rows=3 max-length=500 .status=${this._editingFieldDescriptionError ? "invalid" : "idle"} .validationMessage=${this._editingFieldDescriptionError || ""} .validationIcon=${!!this._editingFieldDescriptionError} @calciteTextAreaInput=${(a) => this._handleEditFieldDescriptionChange(a.target.value)} @calciteTextAreaChange=${this._handleEditFieldDescriptionBlur}></calcite-text-area></div></div><div class="layer-properties-container"><calcite-combobox .label=${e.type} label-text=${e.type ?? d} selection-mode=single-persist clear-disabled .disabled=${this._editingFieldType === "required"} @calciteComboboxChange=${(a) => this._handleEditFieldTypeChange(a)}><calcite-combobox-item value=string text-label=${e.stringType ?? d} .heading=${e.stringType} icon=string .selected=${this._editingFieldTypeValue === "string"}></calcite-combobox-item><calcite-combobox-item value=integer text-label=${e.integerType ?? d} .heading=${e.integerType} icon=integer .selected=${this._editingFieldTypeValue === "integer"}></calcite-combobox-item><calcite-combobox-item value=double text-label=${e.doubleType ?? d} .heading=${e.doubleType} icon=number .selected=${this._editingFieldTypeValue === "double"}></calcite-combobox-item><calcite-combobox-item value=date text-label=${e.dateType ?? d} .heading=${e.dateType} icon=date-time .selected=${this._editingFieldTypeValue === "date"}></calcite-combobox-item><calcite-combobox-item value=guid text-label=${e.guidType ?? d} .heading=${e.guidType} icon=key .selected=${this._editingFieldTypeValue === "guid"}></calcite-combobox-item></calcite-combobox>${this._editingFieldTypeValue === "string" && r`<calcite-input-number label-text=${e.length ?? d} required integer .value=${this._editingFieldLength.toString()} .disabled=${this._editingFieldType === "required"} min=1 max=4000 number-button-type=none .status=${this._editingFieldLengthError ? "invalid" : "idle"} .validationMessage=${this._editingFieldLengthError || ""} .validationIcon=${!!this._editingFieldLengthError} @input=${(a) => {
|
|
1004
1058
|
const o = a.target.value === "" ? null : parseInt(a.target.value);
|
|
1005
1059
|
this._handleEditFieldLengthChange(o);
|
|
1006
|
-
}} @calciteInputNumberChange=${this._handleEditFieldLengthBlur}></calcite-input-number>` || ""}</div>${this._editingFieldType === "required" && r`<calcite-notice open icon=lock appearance=transparent kind=info><div slot=message>${e.requiredFieldNote}</div></calcite-notice>` || ""}${this._editingFieldTypeValue === "string" && r`<div class="domain-section"><div class="section-title">${e.domainValues}</div>${this._editingFieldChoiceList && this._editingFieldChoiceList.length > 0 ? r`<div>${
|
|
1060
|
+
}} @calciteInputNumberChange=${this._handleEditFieldLengthBlur}></calcite-input-number>` || ""}</div>${this._editingFieldType === "required" && r`<calcite-notice open icon=lock appearance=transparent kind=info><div slot=message>${e.requiredFieldNote}</div></calcite-notice>` || ""}${this._editingFieldTypeValue === "string" && r`<div class="domain-section"><div class="section-title">${e.domainValues}</div>${this._editingFieldChoiceList && this._editingFieldChoiceList.length > 0 ? r`<div>${L(this._editingFieldChoiceListVersion, r`<calcite-list class="domain-list" drag-enabled .label=${e.domainValues} @calciteListOrderChange=${this._handleEditFieldChoiceOrderChange}>${this._editingFieldChoiceList.map((a, o) => r`<calcite-list-item closable label @calciteListItemClose=${() => this._handleRemoveEditFieldChoice(o)}><calcite-input-text slot=content .placeholder=${e.domainValuePlaceholder} .value=${a} .maxLength=${this._editingFieldLength} .status=${this._editingFieldChoiceListErrors.get(o) ? "invalid" : "idle"} .validationMessage=${this._editingFieldChoiceListErrors.get(o) || ""} .validationIcon=${!!this._editingFieldChoiceListErrors.get(o)} @input=${(c) => this._handleUpdateEditFieldChoice(o, c.target.value)} @calciteInputTextChange=${this._handleEditFieldDomainValueBlur}></calcite-input-text></calcite-list-item>`)}</calcite-list>`)}<div class="domain-actions-row"><calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddEditFieldChoice}>${e.addDomainValue}</calcite-button><calcite-button appearance=transparent kind=danger icon-start=trash width=auto @click=${this._handleClearEditFieldChoiceList}>${e.deleteList}</calcite-button></div></div>` : r`<calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddEditFieldChoice}>${e.addDomainValue}</calcite-button>`}</div>` || ""}</div><div slot=footer class="flow-footer-center"><calcite-button appearance=transparent kind=danger icon-start=trash width=auto .disabled=${this._editingFieldType === "required"} @click=${this._handleDeleteField}>${e.deleteField}</calcite-button></div></calcite-flow-item>` || ""}${this._isAddingLayer && r`<calcite-flow-item .heading=${e.addLayer} selected @calciteFlowItemBack=${this._handleAddLayerFlowItemBack}><div class="flow-details-container"><div class="layer-properties-container"><calcite-input-text label-text=${e.name ?? d} required .placeholder=${e.layerNamePlaceholder} .value=${this._newLayerName} max-length=250 .status=${this._newLayerNameValidationError ? "invalid" : "idle"} .validationMessage=${this._newLayerNameValidationError || ""} .validationIcon=${!!this._newLayerNameValidationError} @input=${(a) => this._handleNewLayerNameChange(a.target.value)}></calcite-input-text><calcite-combobox .label=${e.type} label-text=${e.type ?? d} selection-mode=single-persist clear-disabled @calciteComboboxChange=${(a) => this._handleNewLayerTypeChange(a)}><calcite-combobox-item value=Point text-label=${e.pointLayer ?? d} .heading=${e.pointLayer} icon=point .selected=${this._newLayerType === "Point"}></calcite-combobox-item><calcite-combobox-item value=Polyline text-label=${e.lineLayer ?? d} .heading=${e.lineLayer} icon=line .selected=${this._newLayerType === "Polyline"}></calcite-combobox-item><calcite-combobox-item value=Polygon text-label=${e.polygonLayer ?? d} .heading=${e.polygonLayer} icon=polygon .selected=${this._newLayerType === "Polygon"}></calcite-combobox-item><calcite-combobox-item value=Table text-label=${e.tableLayer ?? d} .heading=${e.tableLayer} icon=table .selected=${this._newLayerType === "Table"}></calcite-combobox-item></calcite-combobox></div><div class="layer-description-container"><div class="textarea-wrapper"><calcite-text-area .labelText=${e.description} .placeholder=${e.layerDescriptionPlaceholder} .value=${this._newLayerDescription} resize=none rows=3 max-length=2048 .status=${this._newLayerDescriptionValidationError ? "invalid" : "idle"} .validationMessage=${this._newLayerDescriptionValidationError || ""} .validationIcon=${!!this._newLayerDescriptionValidationError} @calciteTextAreaInput=${(a) => this._handleNewLayerDescriptionChange(a.target.value)}></calcite-text-area></div></div></div><div slot=footer class="flow-footer-center"><calcite-button appearance=transparent width=auto .disabled=${!this._newLayerName.trim() || !!this._newLayerNameValidationError || !!this._newLayerDescriptionValidationError} @click=${this._handleAddLayerDone}>${e.addLayer}</calcite-button></div></calcite-flow-item>` || ""}${this._isAddingNewField && r`<calcite-flow-item .heading=${e.addField} selected @calciteFlowItemBack=${this._handleAddFieldFlowItemBack}><div class="flow-details-container"><div class="layer-properties-container"><calcite-input-text label-text=${e.displayName ?? d} required .placeholder=${e.displayNamePlaceholder} .value=${this._newFieldDisplayName} max-length=250 .status=${this._newFieldDisplayNameError ? "invalid" : "idle"} .validationMessage=${this._newFieldDisplayNameError || ""} .validationIcon=${!!this._newFieldDisplayNameError} @input=${(a) => this._handleNewFieldDisplayNameChange(a.target.value)}></calcite-input-text><calcite-input-text label-text=${e.fieldName ?? d} required .placeholder=${e.fieldNamePlaceholder} .value=${this._newFieldName} max-length=31 .status=${this._newFieldNameError ? "invalid" : "idle"} .validationMessage=${this._newFieldNameError || ""} .validationIcon=${!!this._newFieldNameError} @input=${(a) => this._handleNewFieldNameChange(a.target.value)}></calcite-input-text></div><div class="layer-description-container"><div class="textarea-wrapper"><calcite-text-area .labelText=${e.fieldDescription} .placeholder=${e.fieldDescriptionPlaceholder} .value=${this._newFieldDescription} resize=none rows=3 max-length=500 .status=${this._newFieldDescriptionError ? "invalid" : "idle"} .validationMessage=${this._newFieldDescriptionError || ""} .validationIcon=${!!this._newFieldDescriptionError} @calciteTextAreaInput=${(a) => this._handleNewFieldDescriptionChange(a.target.value)}></calcite-text-area></div></div><div class="layer-properties-container"><calcite-combobox .label=${e.type} label-text=${e.type ?? d} selection-mode=single-persist clear-disabled @calciteComboboxChange=${(a) => this._handleNewFieldTypeChange(a)}><calcite-combobox-item value=string text-label=${e.stringType ?? d} .heading=${e.stringType} icon=string .selected=${this._newFieldType === "string"}></calcite-combobox-item><calcite-combobox-item value=integer text-label=${e.integerType ?? d} .heading=${e.integerType} icon=integer .selected=${this._newFieldType === "integer"}></calcite-combobox-item><calcite-combobox-item value=double text-label=${e.doubleType ?? d} .heading=${e.doubleType} icon=number .selected=${this._newFieldType === "double"}></calcite-combobox-item><calcite-combobox-item value=date text-label=${e.dateType ?? d} .heading=${e.dateType} icon=date-time .selected=${this._newFieldType === "date"}></calcite-combobox-item><calcite-combobox-item value=guid text-label=${e.guidType ?? d} .heading=${e.guidType} icon=key .selected=${this._newFieldType === "guid"}></calcite-combobox-item></calcite-combobox>${this._newFieldType === "string" && r`<calcite-input-number label-text=${e.length ?? d} required integer .value=${this._newFieldLength.toString()} min=1 max=4000 number-button-type=none .status=${this._newFieldLengthError ? "invalid" : "idle"} .validationMessage=${this._newFieldLengthError || ""} .validationIcon=${!!this._newFieldLengthError} @input=${(a) => {
|
|
1007
1061
|
const o = a.target.value === "" ? null : parseInt(a.target.value);
|
|
1008
1062
|
this._handleNewFieldLengthChange(o);
|
|
1009
|
-
}}></calcite-input-number>` || ""}</div>${this._newFieldType === "string" && r`<div class="domain-section"><div class="section-title">${e.domainValues}</div>${this._newFieldChoiceList && this._newFieldChoiceList.length > 0 ? r`<div>${
|
|
1063
|
+
}}></calcite-input-number>` || ""}</div>${this._newFieldType === "string" && r`<div class="domain-section"><div class="section-title">${e.domainValues}</div>${this._newFieldChoiceList && this._newFieldChoiceList.length > 0 ? r`<div>${L(this._newFieldChoiceListVersion, r`<calcite-list class="domain-list" drag-enabled .label=${e.domainValues} @calciteListOrderChange=${this._handleNewFieldChoiceOrderChange}>${this._newFieldChoiceList.map((a, o) => r`<calcite-list-item closable label @calciteListItemClose=${() => this._handleRemoveNewFieldChoice(o)}><calcite-input-text slot=content .placeholder=${e.domainValuePlaceholder} .value=${a} .maxLength=${this._newFieldLength} .status=${this._newFieldChoiceListErrors.get(o) ? "invalid" : "idle"} .validationMessage=${this._newFieldChoiceListErrors.get(o) || ""} .validationIcon=${!!this._newFieldChoiceListErrors.get(o)} @input=${(c) => this._handleUpdateNewFieldChoice(o, c.target.value)}></calcite-input-text></calcite-list-item>`)}</calcite-list>`)}<div class="domain-actions-row"><calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddNewFieldChoice}>${e.addDomainValue}</calcite-button><calcite-button appearance=transparent kind=danger icon-start=trash width=auto @click=${this._handleClearNewFieldChoiceList}>${e.deleteList}</calcite-button></div></div>` : r`<calcite-button icon-start=plus appearance=transparent width=auto class="add-field-button padding-top-sm" @click=${this._handleAddNewFieldChoice}>${e.addDomainValue}</calcite-button>`}</div>` || ""}</div><div slot=footer class="flow-footer-center"><calcite-button appearance=transparent width=auto .disabled=${// Disable if required fields are empty
|
|
1010
1064
|
!this._newFieldDisplayName.trim() || !this._newFieldName.trim() || // Disable if there are validation errors
|
|
1011
1065
|
!!this._newFieldDisplayNameError || !!this._newFieldNameError || !!this._newFieldDescriptionError || !!this._newFieldLengthError || this._newFieldChoiceListErrors.size > 0 || // Disable if choice list has any empty values
|
|
1012
1066
|
(this._newFieldChoiceList?.some((a) => !a.trim()) ?? !1)} @click=${this._handleAddFieldDone}>${e.addField}</calcite-button></div></calcite-flow-item>` || ""}</calcite-flow>`;
|
|
@@ -1019,7 +1073,17 @@ class ee extends T {
|
|
|
1019
1073
|
this._getSpanMessages(t, a)}</div></calcite-popover></div>`;
|
|
1020
1074
|
}
|
|
1021
1075
|
_pushDesign(e, i = !0) {
|
|
1022
|
-
|
|
1076
|
+
if (!this._design && e && !this._hasLoggedFirstOpen) {
|
|
1077
|
+
this._hasLoggedFirstOpen = !0;
|
|
1078
|
+
const t = e?.templateId;
|
|
1079
|
+
let s = "";
|
|
1080
|
+
t === x ? s = "Conduct Field Inspections" : t === v ? s = "Manage Spatial Data" : t === C && (s = "Locate Places of Interest"), this._telemetry?.logEvent({
|
|
1081
|
+
category: u.BUILDER,
|
|
1082
|
+
action: "Open",
|
|
1083
|
+
dimensions: [s]
|
|
1084
|
+
});
|
|
1085
|
+
}
|
|
1086
|
+
this._design && (this._undoStack = [...this._undoStack, structuredClone(this._design)]), this._redoStack = [], this._design = e, this._lastPushedDesign = e, this._isDirty = !0, console.log("[solution-builder-assistant] Current design updated:", e), i && this._notifyDesignChanged(e);
|
|
1023
1087
|
}
|
|
1024
1088
|
_notifyDesignChanged(e) {
|
|
1025
1089
|
this._designContextValue?.updateDesign && this._designContextValue.updateDesign(e), window.dispatchEvent(new CustomEvent("arcgis-solution-design-update", {
|
|
@@ -1027,24 +1091,24 @@ class ee extends T {
|
|
|
1027
1091
|
}));
|
|
1028
1092
|
}
|
|
1029
1093
|
_clearDesignAndClose() {
|
|
1030
|
-
this._design = null, this._resetLayerFieldIndexes(), this._clearValidationErrors(), this._designContextValue?.updateDesign && this._designContextValue.updateDesign(null), window.dispatchEvent(new CustomEvent("
|
|
1094
|
+
this._design = null, this._resetLayerFieldIndexes(), this._clearValidationErrors(), this._designContextValue?.updateDesign && this._designContextValue.updateDesign(null), window.dispatchEvent(new CustomEvent("hideSolutionBuilder")), console.log("[solution-builder-assistant] Solution design after clear:", this._design);
|
|
1031
1095
|
}
|
|
1032
1096
|
_resetLayerFieldIndexes() {
|
|
1033
1097
|
this._selectedLayerIndex = 0, this._selectedFieldCount = 0, this._fieldTableKey = 0;
|
|
1034
1098
|
}
|
|
1035
1099
|
_getSpanMessages(e, i) {
|
|
1036
|
-
return e.length > 0 ? e.map((t) => r`<span class=${
|
|
1100
|
+
return e.length > 0 ? e.map((t) => r`<span class=${X(i)}>${t}</span>`) : "";
|
|
1037
1101
|
}
|
|
1038
1102
|
_getBulletedMessages(e) {
|
|
1039
1103
|
return e.length > 0 ? r`<ul>${e.map((i) => r`<li>${i}</li>`)}</ul>` : "";
|
|
1040
1104
|
}
|
|
1041
1105
|
async _hasPermissionToDeploy() {
|
|
1042
|
-
const e = this._configContextConsumer.value, i = e?.agoBasedEnterpriseSolutionsGroupId && e?.isEnterprise ? e.anonAgolSession : e?.userSession, t = await
|
|
1106
|
+
const e = this._configContextConsumer.value, i = e?.agoBasedEnterpriseSolutionsGroupId && e?.isEnterprise ? e.anonAgolSession : e?.userSession, t = await J(this._design?.sourceBuildSolution.solution.item.id, i), s = H(t, this._design?.sourceBuildSolution.solution.item.typeKeywords, e?.authentication), l = i.username ? s : [], n = e?.authentication ? e.authentication.PortalUserEnrichedPrivileges : [], a = l.filter((c) => !n.includes(c)), o = j(this._translations, a);
|
|
1043
1107
|
return this._permisssionErrorMessages = o, o && o.leadingMessages.length === 0 && o.bulletedMessages.length === 0 && o.trailingMessages.length === 0;
|
|
1044
1108
|
}
|
|
1045
1109
|
}
|
|
1046
|
-
|
|
1110
|
+
B("solution-builder-assistant", te);
|
|
1047
1111
|
export {
|
|
1048
|
-
|
|
1049
|
-
|
|
1112
|
+
te as S,
|
|
1113
|
+
N as t
|
|
1050
1114
|
};
|