@esri/solutions-components 0.3.6 → 0.3.7
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/cjs/buffer-tools_6.cjs.entry.js +8 -5
- package/dist/cjs/calcite-combobox_3.cjs.entry.js +2 -2
- package/dist/cjs/calcite-input-message_5.cjs.entry.js +6 -4
- package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2 -2
- package/dist/cjs/{csvUtils-83af7ae1.js → csvUtils-34666909.js} +1 -1
- package/dist/cjs/{interfaces-772edf61.js → interfaces-17c631bf.js} +1 -1
- package/dist/cjs/layer-table.cjs.entry.js +3 -3
- package/dist/cjs/map-card.cjs.entry.js +1 -1
- package/dist/cjs/{mapViewUtils-55ac76cb.js → mapViewUtils-24d1d859.js} +1 -1
- package/dist/cjs/public-notification.cjs.entry.js +16 -10
- package/dist/cjs/solution-configuration.cjs.entry.js +2 -2
- package/dist/cjs/solution-contents_3.cjs.entry.js +2 -2
- package/dist/cjs/{solution-store-39726b81.js → solution-store-2dbab624.js} +1 -1
- package/dist/collection/components/buffer-tools/buffer-tools.js +2 -2
- package/dist/collection/components/map-draw-tools/map-draw-tools.js +2 -1
- package/dist/collection/components/public-notification/public-notification.js +14 -8
- package/dist/collection/components/refine-selection/refine-selection.js +4 -2
- package/dist/collection/components/refine-selection-tools/refine-selection-tools.css +1 -0
- package/dist/collection/components/refine-selection-tools/refine-selection-tools.js +3 -1
- package/dist/collection/demos/new-public-notification.html +2 -1
- package/dist/collection/utils/interfaces.js +1 -1
- package/dist/collection/utils/interfaces.ts +2 -2
- package/dist/components/interfaces3.js +1 -1
- package/dist/components/map-draw-tools2.js +2 -1
- package/dist/components/public-notification.js +14 -8
- package/dist/components/refine-selection-tools2.js +4 -2
- package/dist/components/refine-selection2.js +4 -2
- package/dist/esm/buffer-tools_6.entry.js +8 -5
- package/dist/esm/calcite-combobox_3.entry.js +2 -2
- package/dist/esm/calcite-input-message_5.entry.js +6 -4
- package/dist/esm/calcite-shell-panel_14.entry.js +2 -2
- package/dist/esm/{csvUtils-eb231cfb.js → csvUtils-ae3004b9.js} +1 -1
- package/dist/esm/{interfaces-3b23a5f9.js → interfaces-d0d83efa.js} +1 -1
- package/dist/esm/layer-table.entry.js +3 -3
- package/dist/esm/map-card.entry.js +1 -1
- package/dist/esm/{mapViewUtils-e5d8a1e1.js → mapViewUtils-541e7a3c.js} +1 -1
- package/dist/esm/public-notification.entry.js +16 -10
- package/dist/esm/solution-configuration.entry.js +2 -2
- package/dist/esm/solution-contents_3.entry.js +2 -2
- package/dist/esm/{solution-store-c0bf9200.js → solution-store-41e15f1c.js} +1 -1
- package/dist/solutions-components/demos/new-public-notification.html +2 -1
- package/dist/solutions-components/p-05e64bd1.js +498 -2
- package/dist/solutions-components/p-08a95b33.entry.js +138 -0
- package/dist/solutions-components/p-0da5bbdf.entry.js +91 -0
- package/dist/solutions-components/p-0ef91144.entry.js +913 -0
- package/dist/solutions-components/p-0f523243.entry.js +1916 -0
- package/dist/solutions-components/p-11b9510e.entry.js +173 -0
- package/dist/solutions-components/p-1b875d94.entry.js +58 -0
- package/dist/solutions-components/p-1c567f3a.js +23 -16
- package/dist/solutions-components/p-1c883db9.entry.js +43 -0
- package/dist/solutions-components/p-1f225056.js +322 -0
- package/dist/solutions-components/p-1f499e67.entry.js +72 -0
- package/dist/solutions-components/p-20d3d758.entry.js +881 -0
- package/dist/solutions-components/p-2274ac9e.entry.js +160 -0
- package/dist/solutions-components/p-23ec5ac5.entry.js +93 -0
- package/dist/solutions-components/p-2447798c.entry.js +155 -0
- package/dist/solutions-components/p-2525e691.entry.js +432 -0
- package/dist/solutions-components/p-2561f5b5.js +4092 -0
- package/dist/solutions-components/p-29f887c0.entry.js +234 -0
- package/dist/solutions-components/p-2a0d8047.entry.js +345 -0
- package/dist/solutions-components/p-2c177e6a.entry.js +101 -0
- package/dist/solutions-components/p-2e9ed892.js +46 -1
- package/dist/solutions-components/p-316f56db.js +219 -2
- package/dist/solutions-components/p-327f3ebf.entry.js +98 -0
- package/dist/solutions-components/p-356f8b54.entry.js +138 -0
- package/dist/solutions-components/p-359c58de.entry.js +172 -0
- package/dist/solutions-components/p-37336c0d.entry.js +116 -0
- package/dist/solutions-components/p-374a5031.js +105 -2
- package/dist/solutions-components/p-39ea6ef4.entry.js +71 -0
- package/dist/solutions-components/p-3b010ce1.js +17 -1
- package/dist/solutions-components/p-4307dacd.js +194 -1
- package/dist/solutions-components/p-44da2507.js +405 -14
- package/dist/solutions-components/p-46bdffe8.entry.js +54 -0
- package/dist/solutions-components/p-4894bbeb.js +53 -2
- package/dist/solutions-components/p-4cd569f1.entry.js +1298 -0
- package/dist/solutions-components/p-4d4160f9.entry.js +121 -0
- package/dist/solutions-components/p-4e32bf8c.js +482 -1
- package/dist/solutions-components/p-4e9cbd32.entry.js +184 -0
- package/dist/solutions-components/p-508317b3.js +13 -2
- package/dist/solutions-components/p-54697d58.entry.js +198 -0
- package/dist/solutions-components/p-55c79103.entry.js +311 -0
- package/dist/solutions-components/p-57fd19c0.entry.js +706 -0
- package/dist/solutions-components/p-59b48fde.entry.js +443 -0
- package/dist/solutions-components/p-60e0e6a0.entry.js +214 -0
- package/dist/solutions-components/p-621d0534.entry.js +123 -0
- package/dist/solutions-components/p-63f6e8f1.js +14 -1
- package/dist/solutions-components/p-66aeec57.entry.js +61 -0
- package/dist/solutions-components/p-69834f46.entry.js +618 -0
- package/dist/solutions-components/p-6d9da8e5.entry.js +21530 -0
- package/dist/solutions-components/p-6e0da576.js +13 -1
- package/dist/solutions-components/p-6ec3f294.entry.js +106 -0
- package/dist/solutions-components/p-6fe17794.js +9 -1
- package/dist/solutions-components/p-7024cb16.entry.js +72 -0
- package/dist/solutions-components/p-70535506.entry.js +226 -0
- package/dist/solutions-components/p-708a63a8.js +12 -1
- package/dist/solutions-components/p-729708a3.js +14 -1
- package/dist/solutions-components/p-73e23995.js +6 -1
- package/dist/solutions-components/p-74b29d75.entry.js +231 -0
- package/dist/solutions-components/p-74b7ee25.entry.js +711 -0
- package/dist/solutions-components/p-77182c3a.js +3015 -1
- package/dist/solutions-components/p-78b3ef80.entry.js +456 -0
- package/dist/solutions-components/p-79709c19.js +60 -3
- package/dist/solutions-components/p-7a46ef97.js +181 -2
- package/dist/solutions-components/p-7be159e6.entry.js +175 -0
- package/dist/solutions-components/p-7d4451c2.entry.js +71 -0
- package/dist/solutions-components/p-7daea1df.js +41 -1
- package/dist/solutions-components/p-7e39e5ad.entry.js +102 -0
- package/dist/solutions-components/p-7fb45059.entry.js +43 -0
- package/dist/solutions-components/p-815533de.js +306 -3
- package/dist/solutions-components/p-816622ca.entry.js +248 -0
- package/dist/solutions-components/p-83166522.js +205 -2
- package/dist/solutions-components/p-83bd1991.entry.js +36 -0
- package/dist/solutions-components/p-856464d7.entry.js +572 -0
- package/dist/solutions-components/p-8c349bad.entry.js +347 -0
- package/dist/solutions-components/p-8dccb390.entry.js +1986 -0
- package/dist/solutions-components/p-904c185a.entry.js +228 -0
- package/dist/solutions-components/p-9092f8b3.entry.js +156 -0
- package/dist/solutions-components/p-9371145a.entry.js +477 -0
- package/dist/solutions-components/p-93d3119d.js +1948 -1
- package/dist/solutions-components/p-95ec8062.entry.js +173 -0
- package/dist/solutions-components/p-991ee695.js +109 -1
- package/dist/solutions-components/p-9a57dab7.entry.js +213 -0
- package/dist/solutions-components/p-9a9955db.js +41 -1
- package/dist/solutions-components/p-9c1ebc90.js +35 -16
- package/dist/solutions-components/p-9eba5c66.js +399 -3
- package/dist/solutions-components/p-a033a507.entry.js +252 -0
- package/dist/solutions-components/p-a3773415.entry.js +1132 -0
- package/dist/solutions-components/p-a44fe40f.entry.js +94 -0
- package/dist/solutions-components/p-a5b1ab03.js +33 -3
- package/dist/solutions-components/p-a5b2c13d.entry.js +723 -0
- package/dist/solutions-components/p-a6d729b7.entry.js +85 -0
- package/dist/solutions-components/p-a8005026.entry.js +565 -0
- package/dist/solutions-components/p-a80b3880.js +14 -1
- package/dist/solutions-components/p-a89198a3.entry.js +2620 -0
- package/dist/solutions-components/p-aa04bd1f.entry.js +95 -0
- package/dist/solutions-components/p-aa0a0922.entry.js +80 -0
- package/dist/solutions-components/p-ae1fd76b.js +11 -1
- package/dist/solutions-components/p-b2cf435e.entry.js +87 -0
- package/dist/solutions-components/p-b359dc78.js +41 -1
- package/dist/solutions-components/p-b57bc4eb.entry.js +71 -0
- package/dist/solutions-components/p-b75cc407.entry.js +145 -0
- package/dist/solutions-components/p-b911cb75.entry.js +71 -0
- package/dist/solutions-components/p-b965e177.entry.js +335 -0
- package/dist/solutions-components/p-b978636e.js +14 -1
- package/dist/solutions-components/p-ba10a5c8.entry.js +42 -0
- package/dist/solutions-components/p-bd67334c.js +122 -2
- package/dist/solutions-components/p-bde20dba.entry.js +212 -0
- package/dist/solutions-components/p-be0b5a94.entry.js +248 -0
- package/dist/solutions-components/p-c023e6a1.js +2028 -2
- package/dist/solutions-components/p-c27b0c2d.entry.js +150 -0
- package/dist/solutions-components/p-c579ed60.entry.js +447 -0
- package/dist/solutions-components/p-c92bc231.js +101 -2
- package/dist/solutions-components/p-cc815aca.js +839 -16
- package/dist/solutions-components/p-cc8beabb.entry.js +695 -0
- package/dist/solutions-components/p-cdc46c0c.js +1751 -2
- package/dist/solutions-components/p-d12e6992.entry.js +118 -0
- package/dist/solutions-components/p-d1dfed6b.entry.js +179 -0
- package/dist/solutions-components/p-d48a24e6.js +754 -2
- package/dist/solutions-components/p-d96ee3ef.entry.js +579 -0
- package/dist/solutions-components/p-dbc9a5a8.js +80 -0
- package/dist/solutions-components/p-dcdbe712.entry.js +278 -0
- package/dist/solutions-components/p-de39206f.entry.js +113 -0
- package/dist/solutions-components/p-de5416e8.js +28 -1
- package/dist/solutions-components/p-df420d54.entry.js +213 -0
- package/dist/solutions-components/p-e3138cf0.entry.js +20 -0
- package/dist/solutions-components/p-e4845fec.entry.js +152 -0
- package/dist/solutions-components/p-e611d8c8.js +28 -1
- package/dist/solutions-components/p-e947d3b0.js +5 -1
- package/dist/solutions-components/p-ea534300.js +41 -2
- package/dist/solutions-components/p-ec84ee85.entry.js +55 -0
- package/dist/solutions-components/p-ed36c637.entry.js +85 -0
- package/dist/solutions-components/p-f0add71c.js +74 -0
- package/dist/solutions-components/p-f42e014b.js +171 -2
- package/dist/solutions-components/p-fc02e7de.entry.js +308 -0
- package/dist/solutions-components/p-fc884dd6.js +28 -16
- package/dist/solutions-components/p-fcbfa59c.entry.js +181 -0
- package/dist/solutions-components/p-fdc5cf5f.entry.js +138 -0
- package/dist/solutions-components/solutions-components.esm.js +20 -1
- package/dist/solutions-components/utils/interfaces.ts +2 -2
- package/dist/types/components/buffer-tools/buffer-tools.d.ts +2 -2
- package/dist/types/components/public-notification/public-notification.d.ts +9 -1
- package/dist/types/components.d.ts +2 -2
- package/package.json +1 -1
- package/dist/solutions-components/p-021432b8.entry.js +0 -12
- package/dist/solutions-components/p-03440b1e.entry.js +0 -11
- package/dist/solutions-components/p-0512635b.entry.js +0 -6
- package/dist/solutions-components/p-086ef115.entry.js +0 -29
- package/dist/solutions-components/p-0b4bf57f.entry.js +0 -6
- package/dist/solutions-components/p-0c088725.entry.js +0 -6
- package/dist/solutions-components/p-0f820c08.entry.js +0 -6
- package/dist/solutions-components/p-164780a0.entry.js +0 -6
- package/dist/solutions-components/p-179a68a0.entry.js +0 -6
- package/dist/solutions-components/p-184b5005.entry.js +0 -11
- package/dist/solutions-components/p-1d082fee.entry.js +0 -11
- package/dist/solutions-components/p-1e6c02a2.entry.js +0 -11
- package/dist/solutions-components/p-20a58e62.entry.js +0 -17
- package/dist/solutions-components/p-20b2458c.entry.js +0 -11
- package/dist/solutions-components/p-245d47c1.entry.js +0 -6
- package/dist/solutions-components/p-2cb057a9.entry.js +0 -11
- package/dist/solutions-components/p-2cc72806.entry.js +0 -23
- package/dist/solutions-components/p-2de1db9c.entry.js +0 -11
- package/dist/solutions-components/p-2e9c7055.entry.js +0 -11
- package/dist/solutions-components/p-2ed5e6c8.entry.js +0 -11
- package/dist/solutions-components/p-3109d940.entry.js +0 -6
- package/dist/solutions-components/p-31a8bcfa.entry.js +0 -6
- package/dist/solutions-components/p-3649acb3.entry.js +0 -18
- package/dist/solutions-components/p-3f88ba73.entry.js +0 -6
- package/dist/solutions-components/p-3fa9b3c8.js +0 -36
- package/dist/solutions-components/p-40c41709.entry.js +0 -6
- package/dist/solutions-components/p-40e963c7.entry.js +0 -11
- package/dist/solutions-components/p-40f480da.entry.js +0 -11
- package/dist/solutions-components/p-49d5d2d3.entry.js +0 -11
- package/dist/solutions-components/p-4f7049a4.entry.js +0 -11
- package/dist/solutions-components/p-506e4d78.entry.js +0 -6
- package/dist/solutions-components/p-576fdcab.entry.js +0 -6
- package/dist/solutions-components/p-5bd0cf34.entry.js +0 -23
- package/dist/solutions-components/p-65e177f1.entry.js +0 -6
- package/dist/solutions-components/p-67d710c2.entry.js +0 -6
- package/dist/solutions-components/p-7268b445.entry.js +0 -11
- package/dist/solutions-components/p-75ea4667.entry.js +0 -6
- package/dist/solutions-components/p-778c0a36.entry.js +0 -17
- package/dist/solutions-components/p-7a22509b.entry.js +0 -12
- package/dist/solutions-components/p-7bff51db.entry.js +0 -6
- package/dist/solutions-components/p-7d2d0d5d.entry.js +0 -6
- package/dist/solutions-components/p-7f0036f1.entry.js +0 -11
- package/dist/solutions-components/p-8060fb94.entry.js +0 -6
- package/dist/solutions-components/p-80a1b305.entry.js +0 -6
- package/dist/solutions-components/p-81eae877.entry.js +0 -12
- package/dist/solutions-components/p-84e86b8b.entry.js +0 -6
- package/dist/solutions-components/p-851e04ae.entry.js +0 -6
- package/dist/solutions-components/p-9106950a.entry.js +0 -11
- package/dist/solutions-components/p-979804a4.entry.js +0 -11
- package/dist/solutions-components/p-9862baa8.entry.js +0 -11
- package/dist/solutions-components/p-9b5a9117.entry.js +0 -12
- package/dist/solutions-components/p-9deff0c2.entry.js +0 -6
- package/dist/solutions-components/p-9f400eeb.entry.js +0 -6
- package/dist/solutions-components/p-a0639ad1.entry.js +0 -11
- package/dist/solutions-components/p-a33c044e.entry.js +0 -6
- package/dist/solutions-components/p-a516c658.entry.js +0 -6
- package/dist/solutions-components/p-aa0ef36d.entry.js +0 -11
- package/dist/solutions-components/p-aaccbdf3.entry.js +0 -18
- package/dist/solutions-components/p-ab03a5c9.entry.js +0 -11
- package/dist/solutions-components/p-ad469b92.entry.js +0 -11
- package/dist/solutions-components/p-adc86ac3.entry.js +0 -6
- package/dist/solutions-components/p-addc1156.entry.js +0 -11
- package/dist/solutions-components/p-ae846934.entry.js +0 -11
- package/dist/solutions-components/p-b0572fc4.entry.js +0 -37
- package/dist/solutions-components/p-b4e476b7.js +0 -257
- package/dist/solutions-components/p-b668daf8.js +0 -21
- package/dist/solutions-components/p-b6e6eae1.entry.js +0 -6
- package/dist/solutions-components/p-bc317a7f.entry.js +0 -6
- package/dist/solutions-components/p-be41429f.js +0 -21
- package/dist/solutions-components/p-bf6b6353.entry.js +0 -11
- package/dist/solutions-components/p-c2e3dfbb.entry.js +0 -11
- package/dist/solutions-components/p-c4afae53.entry.js +0 -12
- package/dist/solutions-components/p-c9da1c26.entry.js +0 -6
- package/dist/solutions-components/p-cbf8cd49.entry.js +0 -6
- package/dist/solutions-components/p-cc1a064a.entry.js +0 -11
- package/dist/solutions-components/p-d09a168c.entry.js +0 -6
- package/dist/solutions-components/p-d377f913.entry.js +0 -11
- package/dist/solutions-components/p-d4cefead.entry.js +0 -37
- package/dist/solutions-components/p-d7bc0baf.entry.js +0 -16
- package/dist/solutions-components/p-d8968487.entry.js +0 -11
- package/dist/solutions-components/p-e00a0b86.entry.js +0 -11
- package/dist/solutions-components/p-e9a7ed49.entry.js +0 -11
- package/dist/solutions-components/p-ec27e493.entry.js +0 -11
- package/dist/solutions-components/p-ed6404eb.entry.js +0 -6
- package/dist/solutions-components/p-ef21e195.entry.js +0 -23
- package/dist/solutions-components/p-f6068a2d.entry.js +0 -11
- package/dist/solutions-components/p-f6c4cff3.entry.js +0 -11
- package/dist/solutions-components/p-f847291f.entry.js +0 -6
- package/dist/solutions-components/p-f90fd262.entry.js +0 -11
- package/dist/solutions-components/p-fc973005.entry.js +0 -6
- package/dist/solutions-components/p-ff9fb6bc.entry.js +0 -11
|
@@ -0,0 +1,695 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 Esri
|
|
3
|
+
* Licensed under the Apache License, Version 2.0
|
|
4
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './p-c023e6a1.js';
|
|
7
|
+
import { b as EPageType, c as ESketchType, E as EWorkflowType, d as EExportType } from './p-dbc9a5a8.js';
|
|
8
|
+
import { l as loadModules } from './p-1c567f3a.js';
|
|
9
|
+
import { a as getMapLayerView, c as getSelectionSetQuery, g as goToSelection, h as highlightFeatures } from './p-1f225056.js';
|
|
10
|
+
import { s as state } from './p-9c1ebc90.js';
|
|
11
|
+
import { g as getLocaleComponentStrings } from './p-44da2507.js';
|
|
12
|
+
import { g as getTotal, a as getSelectionIds } from './p-fc884dd6.js';
|
|
13
|
+
import './p-4307dacd.js';
|
|
14
|
+
import './p-3b010ce1.js';
|
|
15
|
+
|
|
16
|
+
const publicNotificationCss = ":host{display:block;--calcite-input-message-spacing-value:0}.align-center{align-items:center}.border-bottom-1{border-width:0px;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3)}.action-bar-size{height:3.5rem;width:100%}.w-1-3{width:33.3%}.w-1-4{width:25%}.action-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;align-content:center;justify-content:center}.width-full{width:100%}.height-full{height:100%}.padding-1{padding:1rem}.padding-top-sides-1{-webkit-padding-before:1rem;padding-block-start:1rem;-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-sides-1{-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem}.padding-end-1-2{-webkit-padding-end:.5rem;padding-inline-end:.5rem}.padding-top-1-2{-webkit-padding-before:.5rem;padding-block-start:.5rem}.padding-top-1{padding-top:1rem}.padding-bottom-1{padding-bottom:1rem}.info-blue{color:#00A0FF}.info-message{justify-content:center;display:grid}.font-bold{font-weight:bold}.display-flex{display:flex}.display-block{display:block}.display-none{display:none}.main-label{float:left}html[dir=\"rtl\"] .main-label{float:right}.back-label:hover{cursor:pointer;color:var(--calcite-ui-brand-hover)}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.margin-side-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.border-top{border-top:1px solid var(--calcite-ui-border-2)}.w-100{width:100%}.w-50{width:50%}.padding-1-2{padding:0.5rem}.list-border{border:1px solid var(--calcite-ui-border-2)}.margin-sides-1{-webkit-margin-start:1rem;margin-inline-start:1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.margin-start-1-2{-webkit-margin-start:0.5rem;margin-inline-start:0.5rem}.float-right{float:right}.float-right[dir=\"rtl\"]{float:left}.float-left{float:left}.float-left[dir=\"rtl\"]{float:right}.margin-top-0{-webkit-margin-before:0 !important;margin-block-start:0 !important}.height-1-1-2{height:1.5rem}.main-background{background-color:var(--calcite-ui-foreground-2)}.num-selected{align-items:center;display:flex}";
|
|
17
|
+
|
|
18
|
+
const PublicNotification = class {
|
|
19
|
+
constructor(hostRef) {
|
|
20
|
+
registerInstance(this, hostRef);
|
|
21
|
+
this.labelChange = createEvent(this, "labelChange", 7);
|
|
22
|
+
this.addresseeLayerIds = [];
|
|
23
|
+
this.bufferColor = [227, 139, 79, 0.8];
|
|
24
|
+
this.bufferOutlineColor = [255, 255, 255];
|
|
25
|
+
this.customLabelEnabled = undefined;
|
|
26
|
+
this.defaultBufferDistance = undefined;
|
|
27
|
+
this.defaultBufferUnit = undefined;
|
|
28
|
+
this.exportOptions = undefined;
|
|
29
|
+
this.featureEffect = undefined;
|
|
30
|
+
this.featureHighlightEnabled = undefined;
|
|
31
|
+
this.mapView = undefined;
|
|
32
|
+
this.noResultText = undefined;
|
|
33
|
+
this.searchConfiguration = undefined;
|
|
34
|
+
this.selectionLayerIds = [];
|
|
35
|
+
this.showRefineSelection = false;
|
|
36
|
+
this.showSearchSettings = true;
|
|
37
|
+
this.addresseeLayer = undefined;
|
|
38
|
+
this._downloadActive = true;
|
|
39
|
+
this._numSelected = 0;
|
|
40
|
+
this._pageType = EPageType.LIST;
|
|
41
|
+
this._saveEnabled = false;
|
|
42
|
+
this._selectionSets = [];
|
|
43
|
+
this._sketchType = ESketchType.INTERACTIVE;
|
|
44
|
+
this._selectionWorkflowType = EWorkflowType.SEARCH;
|
|
45
|
+
this._showLayerSelectionChangeModal = false;
|
|
46
|
+
this._translations = undefined;
|
|
47
|
+
}
|
|
48
|
+
//--------------------------------------------------------------------------
|
|
49
|
+
//
|
|
50
|
+
// Watch handlers
|
|
51
|
+
//
|
|
52
|
+
//--------------------------------------------------------------------------
|
|
53
|
+
/**
|
|
54
|
+
* Called each time the mapView prop is changed.
|
|
55
|
+
*/
|
|
56
|
+
async mapViewWatchHandler(v) {
|
|
57
|
+
if (v === null || v === void 0 ? void 0 : v.popup) {
|
|
58
|
+
this._popupsEnabled = v === null || v === void 0 ? void 0 : v.popup.autoOpenEnabled;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Called each time the selectionSets prop is changed.
|
|
63
|
+
*/
|
|
64
|
+
async selectionSetsWatchHandler(v, oldV) {
|
|
65
|
+
if (v && v !== oldV && v.length > 0) {
|
|
66
|
+
const nonRefineSets = v.filter(ss => ss.workflowType !== EWorkflowType.REFINE);
|
|
67
|
+
if (nonRefineSets.length === 0) {
|
|
68
|
+
this._selectionSets = [];
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Called each time the pageType prop is changed.
|
|
74
|
+
*/
|
|
75
|
+
async pageTypeWatchHandler(pageType, oldPageType) {
|
|
76
|
+
this._checkPopups();
|
|
77
|
+
this._clearHighlight();
|
|
78
|
+
if (oldPageType === EPageType.SELECT || oldPageType === EPageType.REFINE) {
|
|
79
|
+
// clear any draw shapes or buffers
|
|
80
|
+
await this._clearSelection();
|
|
81
|
+
}
|
|
82
|
+
if (pageType !== EPageType.SELECT) {
|
|
83
|
+
return this._highlightFeatures();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Handle changes to the buffer distance value
|
|
88
|
+
*/
|
|
89
|
+
distanceChanged(event) {
|
|
90
|
+
this._updateLabel(event, "distance");
|
|
91
|
+
this._distance = event.detail.newValue;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Handle changes to the selection sets
|
|
95
|
+
*/
|
|
96
|
+
selectionSetsChanged(event) {
|
|
97
|
+
this._selectionSets = [...event.detail];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Handle changes to the selection sets
|
|
101
|
+
*/
|
|
102
|
+
sketchTypeChange(event) {
|
|
103
|
+
this._sketchType = event.detail;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Handle changes to the buffer unit
|
|
107
|
+
*/
|
|
108
|
+
unitChanged(event) {
|
|
109
|
+
this._updateLabel(event, "unit");
|
|
110
|
+
this._unit = event.detail.newValue;
|
|
111
|
+
}
|
|
112
|
+
//--------------------------------------------------------------------------
|
|
113
|
+
//
|
|
114
|
+
// Functions (lifecycle)
|
|
115
|
+
//
|
|
116
|
+
//--------------------------------------------------------------------------
|
|
117
|
+
/**
|
|
118
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
119
|
+
*/
|
|
120
|
+
async componentWillLoad() {
|
|
121
|
+
await this._getTranslations();
|
|
122
|
+
await this._initModules();
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Renders the component.
|
|
126
|
+
*/
|
|
127
|
+
render() {
|
|
128
|
+
var _a, _b, _c, _d, _e, _f;
|
|
129
|
+
const hasSelections = this._selectionSets.length > 0;
|
|
130
|
+
const csvEnabled = typeof ((_b = (_a = this.exportOptions) === null || _a === void 0 ? void 0 : _a.csvOptions) === null || _b === void 0 ? void 0 : _b.enabled) === "boolean" ?
|
|
131
|
+
(_c = this.exportOptions) === null || _c === void 0 ? void 0 : _c.csvOptions.enabled : true;
|
|
132
|
+
const pdfEnabled = typeof ((_e = (_d = this.exportOptions) === null || _d === void 0 ? void 0 : _d.pdfOptions) === null || _e === void 0 ? void 0 : _e.enabled) === "boolean" ?
|
|
133
|
+
(_f = this.exportOptions) === null || _f === void 0 ? void 0 : _f.pdfOptions.enabled : true;
|
|
134
|
+
return (h(Host, null, h("calcite-shell", null, h("calcite-action-bar", { class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: "header" }, this._getActionGroup("list-check", false, EPageType.LIST, this._translations.myLists), this.showRefineSelection ? this._getActionGroup("test-data", !hasSelections, EPageType.REFINE, this._translations.refineSelection) : undefined, pdfEnabled ? this._getActionGroup("file-pdf", !hasSelections, EPageType.PDF, this._translations.downloadPDF) : undefined, csvEnabled ? this._getActionGroup("file-csv", !hasSelections, EPageType.CSV, this._translations.downloadCSV) : undefined), this._getPage(this._pageType))));
|
|
135
|
+
}
|
|
136
|
+
//--------------------------------------------------------------------------
|
|
137
|
+
//
|
|
138
|
+
// Functions (protected)
|
|
139
|
+
//
|
|
140
|
+
//--------------------------------------------------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* Load esri javascript api modules
|
|
143
|
+
*
|
|
144
|
+
* @returns Promise resolving when function is done
|
|
145
|
+
*
|
|
146
|
+
* @protected
|
|
147
|
+
*/
|
|
148
|
+
async _initModules() {
|
|
149
|
+
const [geometryEngine] = await loadModules([
|
|
150
|
+
"esri/geometry/geometryEngine"
|
|
151
|
+
]);
|
|
152
|
+
this._geometryEngine = geometryEngine;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get a calcite action group for the current action
|
|
156
|
+
*
|
|
157
|
+
* @param icon the icon to display for the current action
|
|
158
|
+
* @param disabled should the action be disabled
|
|
159
|
+
* @param pageType what page type will the action navigate to
|
|
160
|
+
* @param tip information tip to display helpful details to end user
|
|
161
|
+
*
|
|
162
|
+
* @protected
|
|
163
|
+
*/
|
|
164
|
+
_getActionGroup(icon, disabled, pageType, tip) {
|
|
165
|
+
const groupClass = this.showRefineSelection ? "action-center w-1-4" : "action-center w-1-3";
|
|
166
|
+
return (h("calcite-action-group", { class: groupClass, layout: "horizontal" }, h("calcite-action", { active: this._pageType === pageType, alignment: "center", class: "width-full height-full", compact: false, disabled: disabled, icon: icon, id: icon, onClick: () => { this._setPageType(pageType); }, text: "" }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": icon }, h("span", null, tip))));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Navigate to the defined page type
|
|
170
|
+
*
|
|
171
|
+
* @param pageType what page type will the action navigate to
|
|
172
|
+
*
|
|
173
|
+
* @protected
|
|
174
|
+
*/
|
|
175
|
+
_setPageType(pageType) {
|
|
176
|
+
this._pageType = pageType;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Navigate to the defined page type
|
|
180
|
+
*
|
|
181
|
+
* @param pageType what page type will the action navigate to
|
|
182
|
+
*
|
|
183
|
+
* @returns the page node
|
|
184
|
+
* @protected
|
|
185
|
+
*/
|
|
186
|
+
_getPage(pageType) {
|
|
187
|
+
let page;
|
|
188
|
+
switch (pageType) {
|
|
189
|
+
case EPageType.LIST:
|
|
190
|
+
page = this._getListPage();
|
|
191
|
+
break;
|
|
192
|
+
case EPageType.SELECT:
|
|
193
|
+
page = this._getSelectPage();
|
|
194
|
+
break;
|
|
195
|
+
case EPageType.REFINE:
|
|
196
|
+
page = this._getRefinePage();
|
|
197
|
+
break;
|
|
198
|
+
case EPageType.PDF:
|
|
199
|
+
page = this._getPDFPage();
|
|
200
|
+
break;
|
|
201
|
+
case EPageType.CSV:
|
|
202
|
+
page = this._getCSVPage();
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
return page;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Create the List page that shows as the initial home screen
|
|
209
|
+
* This page is also used to show and selection sets that have been created
|
|
210
|
+
*
|
|
211
|
+
* @returns the page node
|
|
212
|
+
* @protected
|
|
213
|
+
*/
|
|
214
|
+
_getListPage() {
|
|
215
|
+
const hasSets = this._selectionSets.filter(ss => ss.workflowType !== EWorkflowType.REFINE).length > 0;
|
|
216
|
+
const total = getTotal(this._selectionSets);
|
|
217
|
+
return hasSets ? (h("calcite-panel", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, this._translations.myLists)), this._getNotice(this._translations.listHasSetsTip, "padding-sides-1 padding-bottom-1"), this._getMapLayerPicker(), h("div", { class: "display-block padding-sides-1 height-1-1-2" }, h("div", { class: "display-block float-left" }, h("calcite-label", { alignment: "start", class: "font-bold" }, this._translations.notifications)), h("div", { class: "display-block float-right" }, h("calcite-input-message", { active: true, class: "info-blue margin-top-0", scale: "m" }, this._translations.uniqueCout.replace("{{n}}", total.toString())))), hasSets ? this._getSelectionSetList() : (h("div", { class: "info-message" }, h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._translations.noNotifications))), h("div", { class: "display-flex padding-1" }, h("calcite-button", { onClick: () => { this._setPageType(EPageType.SELECT); }, width: "full" }, this._translations.add)), this._showModal(this._showLayerSelectionChangeModal))) : (h("calcite-panel", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, this._translations.myLists)), h("div", { class: "padding-sides-1" }, h("calcite-label", null, this._translations.notifications)), h("div", { class: "info-message padding-bottom-1" }, h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this._translations.noNotifications)), this._getNotice(this._translations.selectLayerAndAdd, "padding-sides-1 padding-bottom-1"), this._getMapLayerPicker(), h("div", { class: "display-flex padding-1" }, h("calcite-button", { onClick: () => { this._setPageType(EPageType.SELECT); }, width: "full" }, this._translations.add))));
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Create the UI element that will expose the addressee layers
|
|
221
|
+
*
|
|
222
|
+
* @returns addressee layer list node
|
|
223
|
+
* @protected
|
|
224
|
+
*/
|
|
225
|
+
_getMapLayerPicker() {
|
|
226
|
+
var _a;
|
|
227
|
+
return (h("div", { class: "display-flex padding-sides-1" }, h("calcite-label", { class: "font-bold width-full" }, this._translations.addresseeLayer, h("map-layer-picker", { enabledLayerIds: this.addresseeLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._layerSelectionChange(evt), selectedLayerIds: this.addresseeLayer ? [(_a = this.addresseeLayer) === null || _a === void 0 ? void 0 : _a.layer.id] : [], selectionMode: "single" }))));
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Create the selection sets list node for the List page
|
|
231
|
+
*
|
|
232
|
+
* @returns selection sets list node
|
|
233
|
+
* @protected
|
|
234
|
+
*/
|
|
235
|
+
_getSelectionSetList() {
|
|
236
|
+
return (h("calcite-list", { class: "list-border margin-sides-1" },
|
|
237
|
+
// REFINE is handled seperately from the core selection sets
|
|
238
|
+
// You can only access after clicking the refine action
|
|
239
|
+
this._selectionSets.reduce((prev, cur, i) => {
|
|
240
|
+
if (cur.workflowType !== EWorkflowType.REFINE) {
|
|
241
|
+
prev.push((h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", cur.selectedIds.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
|
|
242
|
+
}
|
|
243
|
+
return prev;
|
|
244
|
+
}, [])));
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Alert the user of the potential change to the selection sets and ask if they would like to proceed.
|
|
248
|
+
*
|
|
249
|
+
* @returns the page node
|
|
250
|
+
* @protected
|
|
251
|
+
*/
|
|
252
|
+
_showModal(open) {
|
|
253
|
+
return (h("calcite-modal", { "aria-labelledby": "modal-title", "background-color": "grey", color: "red", open: open, scale: "s", width: "s" }, h("div", { id: "modal-title", slot: "header" }, this._translations.shouldProceed), h("div", { slot: "content" }, this._translations.proceedInfo), h("calcite-button", { appearance: "outline", onClick: () => this._cancelLayerChange(), slot: "secondary", width: "full" }, this._translations.cancel), h("calcite-button", { onClick: () => this._handleLayerChange(), slot: "primary", width: "full" }, this._translations.proceed)));
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Prevent the default behavior of layer selection change and close the modal.
|
|
257
|
+
*
|
|
258
|
+
* @returns the page node
|
|
259
|
+
* @protected
|
|
260
|
+
*/
|
|
261
|
+
_cancelLayerChange() {
|
|
262
|
+
this._layerSelectionChangeEvt.preventDefault();
|
|
263
|
+
this._layerSelectionChangeEvt.stopPropagation();
|
|
264
|
+
this._layerSelectionChangeEvt = undefined;
|
|
265
|
+
this._showLayerSelectionChangeModal = false;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Allow the default behavior of layer selection change and close the modal.
|
|
269
|
+
*
|
|
270
|
+
* @returns the page node
|
|
271
|
+
* @protected
|
|
272
|
+
*/
|
|
273
|
+
async _handleLayerChange() {
|
|
274
|
+
var _a, _b;
|
|
275
|
+
this._showLayerSelectionChangeModal = false;
|
|
276
|
+
const id = ((_b = (_a = this._layerSelectionChangeEvt) === null || _a === void 0 ? void 0 : _a.detail) === null || _b === void 0 ? void 0 : _b.length) > 0 ?
|
|
277
|
+
this._layerSelectionChangeEvt.detail[0] : "";
|
|
278
|
+
await this._updateAddresseeLayer(id);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Create the Select page that shows the selection workflows
|
|
282
|
+
*
|
|
283
|
+
* @returns the page node
|
|
284
|
+
* @protected
|
|
285
|
+
*/
|
|
286
|
+
_getSelectPage() {
|
|
287
|
+
var _a, _b;
|
|
288
|
+
const searchTip = this._translations.selectSearchTip;
|
|
289
|
+
const selectTip = this._translations.selectLayerTip;
|
|
290
|
+
const sketchTip = this._sketchType === ESketchType.INTERACTIVE ?
|
|
291
|
+
this._translations.selectSketchTip :
|
|
292
|
+
this._translations.selectLayerTip;
|
|
293
|
+
const noticeText = this._selectionWorkflowType === EWorkflowType.SELECT ? selectTip :
|
|
294
|
+
this._selectionWorkflowType === EWorkflowType.SKETCH ? sketchTip : searchTip;
|
|
295
|
+
const nameLabelClass = this.customLabelEnabled ? "" : "display-none";
|
|
296
|
+
return (h("calcite-panel", null, this._getLabel(this._translations.stepTwoFull.replace("{{layer}}", (_a = this.addresseeLayer) === null || _a === void 0 ? void 0 : _a.layer.title)), this._getNotice(noticeText), h("div", { class: "padding-top-sides-1" }, h("map-select-tools", { bufferColor: this.bufferColor, bufferOutlineColor: this.bufferOutlineColor, class: "font-bold", defaultBufferDistance: this.defaultBufferDistance, defaultBufferUnit: this.defaultBufferUnit, enabledLayerIds: this.selectionLayerIds, isUpdate: !!this._activeSelection, mapView: this.mapView, onSelectionSetChange: (evt) => this._updateForSelection(evt), onWorkflowTypeChange: (evt) => this._updateForWorkflowType(evt), ref: (el) => { this._selectTools = el; }, searchConfiguration: this.searchConfiguration, selectLayerView: this.addresseeLayer, selectionSet: this._activeSelection, showBufferTools: this.showSearchSettings })), h("div", { class: "padding-sides-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" }), h("calcite-input-message", { active: true, class: "info-blue", scale: "m" }, this.noResultText && this._numSelected === 0 ? this.noResultText :
|
|
297
|
+
this._translations.selectedAddresses.replace("{{n}}", this._numSelected.toString()).replace("{{layer}}", ((_b = this.addresseeLayer) === null || _b === void 0 ? void 0 : _b.layer.title) || ""))), h("div", { class: "padding-sides-1 " + nameLabelClass }, h("calcite-label", { class: "font-bold" }, "Name label", h("calcite-input", { onInput: () => {
|
|
298
|
+
this.labelChange.emit(this._labelName.value);
|
|
299
|
+
}, placeholder: "Insert label here...", ref: (el) => { this._labelName = el; }, value: this._customLabel || "" }))), this._getPageNavButtons(this._translations.done, this._numSelected === 0, () => { void this._saveSelection(); }, this._translations.cancel, false, () => { void this._home(); })));
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Create the Refine page that users can interactively add/remove features from existing selection sets
|
|
303
|
+
*
|
|
304
|
+
* @returns the page node
|
|
305
|
+
* @protected
|
|
306
|
+
*/
|
|
307
|
+
_getRefinePage() {
|
|
308
|
+
return (h("calcite-panel", null, this._getLabel(this._translations.refineSelection), this._getNotice(this._translations.refineTip, "padding-sides-1"), h("refine-selection", { addresseeLayer: this.addresseeLayer, enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, selectionSets: this._selectionSets })));
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create the PDF download page that shows the download options
|
|
312
|
+
*
|
|
313
|
+
* @returns the page node
|
|
314
|
+
* @protected
|
|
315
|
+
*/
|
|
316
|
+
_getPDFPage() {
|
|
317
|
+
return this._getDownloadPage(EExportType.PDF);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Create the CSV download page that shows the download options
|
|
321
|
+
*
|
|
322
|
+
* @returns the page node
|
|
323
|
+
* @protected
|
|
324
|
+
*/
|
|
325
|
+
_getCSVPage() {
|
|
326
|
+
return this._getDownloadPage(EExportType.CSV);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Create the main download page that has the shared aspects of both PDF and CSV
|
|
330
|
+
* But only show the current PDF or CSV page content
|
|
331
|
+
*
|
|
332
|
+
* @param type EExportType of the current type expected
|
|
333
|
+
*
|
|
334
|
+
* @returns the page node
|
|
335
|
+
* @protected
|
|
336
|
+
*/
|
|
337
|
+
_getDownloadPage(type) {
|
|
338
|
+
var _a, _b;
|
|
339
|
+
const isPdf = type === EExportType.PDF;
|
|
340
|
+
const multiPdfOptions = ((_a = this.exportOptions) === null || _a === void 0 ? void 0 : _a.pdfOptions.enabledSizeValues.length) > 1;
|
|
341
|
+
return (h("calcite-panel", null, h("div", null, h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold" }, isPdf ? this._translations.pdfDownloads : this._translations.csvDownloads), h("calcite-label", null, this._translations.notifications)), this._getSelectionLists(), h("div", { class: "margin-side-1 padding-top-1 border-bottom" }), h("div", { class: "padding-top-sides-1" }, h("calcite-label", { layout: "inline" }, h("calcite-checkbox", { disabled: !this._downloadActive, ref: (el) => { this._removeDuplicates = el; } }), this._translations.removeDuplicate)), h("div", { class: isPdf && multiPdfOptions ? "" : "display-none" }, this._getLabel(this._translations.selectPDFLabelOption, false), h("div", { class: "padding-sides-1" }, h("pdf-download", { disabled: !this._downloadActive, enabledSizeValues: (_b = this.exportOptions) === null || _b === void 0 ? void 0 : _b.pdfOptions.enabledSizeValues, layerView: this.addresseeLayer, ref: (el) => { this._downloadTools = el; } }))), h("div", { class: "padding-1 display-flex" }, h("calcite-button", { disabled: !this._downloadActive, onClick: isPdf ? () => this._downloadPDF() : () => this._downloadCSV(), width: "full" }, isPdf ? this._translations.downloadPDF : this._translations.downloadCSV)))));
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Create the stacked navigation buttons for a page
|
|
345
|
+
*
|
|
346
|
+
* @param topLabel the label to use for the button on top
|
|
347
|
+
* @param topDisabled should the button be disabled
|
|
348
|
+
* @param topFunc the fucntion to execute when the button is clicked
|
|
349
|
+
* @param bottomLabel the label to use for the button on bottom
|
|
350
|
+
* @param bottomDisabled should the button be disabled
|
|
351
|
+
* @param bottomFunc the fucntion to execute when the button is clicked
|
|
352
|
+
*
|
|
353
|
+
* @returns the page node
|
|
354
|
+
* @protected
|
|
355
|
+
*/
|
|
356
|
+
_getPageNavButtons(topLabel, topDisabled, topFunc, bottomLabel, bottomDisabled, bottomFunc) {
|
|
357
|
+
return (h("div", null, h("div", { class: "display-flex padding-top-sides-1" }, h("calcite-button", { disabled: topDisabled, onClick: topFunc, width: "full" }, topLabel)), h("div", { class: "display-flex padding-top-1-2 padding-sides-1" }, h("calcite-button", { appearance: "outline", disabled: bottomDisabled, onClick: bottomFunc, width: "full" }, bottomLabel))));
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Create an informational notice
|
|
361
|
+
*
|
|
362
|
+
* @param message the message to display in the notice
|
|
363
|
+
* @param noticeClass any custom css for the notice (default is "padding-1")
|
|
364
|
+
*
|
|
365
|
+
* @returns the notice node
|
|
366
|
+
* @protected
|
|
367
|
+
*/
|
|
368
|
+
_getNotice(message, noticeClass = "padding-1") {
|
|
369
|
+
return (h("calcite-notice", { class: noticeClass, color: "green", icon: "lightbulb", open: true }, h("div", { slot: "message" }, message)));
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Create a calcite label
|
|
373
|
+
*
|
|
374
|
+
* @param label value to display in the label
|
|
375
|
+
* @param disableSpacing should extra calcite defined spacing be applied
|
|
376
|
+
*
|
|
377
|
+
* @returns the label node
|
|
378
|
+
* @protected
|
|
379
|
+
*/
|
|
380
|
+
_getLabel(label, disableSpacing = false) {
|
|
381
|
+
return (h("div", { class: "padding-top-sides-1" }, h("calcite-label", { class: "font-bold", "disable-spacing": disableSpacing }, label)));
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Get selection set list node with checkbox for Download pages
|
|
385
|
+
*
|
|
386
|
+
* @returns the list node
|
|
387
|
+
* @protectedlabel
|
|
388
|
+
*/
|
|
389
|
+
_getSelectionLists() {
|
|
390
|
+
return this._selectionSets.reduce((prev, cur) => {
|
|
391
|
+
if (cur.workflowType !== EWorkflowType.REFINE) {
|
|
392
|
+
if (!this._downloadActive && cur.download) {
|
|
393
|
+
this._downloadActive = true;
|
|
394
|
+
}
|
|
395
|
+
prev.push((h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, h("calcite-checkbox", { checked: cur.download, class: "align-center", onClick: () => { void this._toggleDownload(cur.id); } }), h("calcite-list", { class: "list-border margin-start-1-2 w-100", id: "download-list" }, h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", cur.selectedIds.length.toString()), disabled: !cur.download, label: cur.label, onClick: () => { void this._toggleDownload(cur.id); } })))));
|
|
396
|
+
}
|
|
397
|
+
return prev;
|
|
398
|
+
}, []) || (h("div", null));
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Toggle the disabled state for the download options based on user selection
|
|
402
|
+
*
|
|
403
|
+
* @param id the selection set id to toggle
|
|
404
|
+
*
|
|
405
|
+
* @protected
|
|
406
|
+
*/
|
|
407
|
+
async _toggleDownload(id) {
|
|
408
|
+
let isActive = false;
|
|
409
|
+
this._selectionSets = this._selectionSets.map(ss => {
|
|
410
|
+
ss.download = ss.id === id ? !ss.download : ss.download;
|
|
411
|
+
isActive = ss.download ? true : isActive;
|
|
412
|
+
return ss;
|
|
413
|
+
});
|
|
414
|
+
this._downloadActive = isActive;
|
|
415
|
+
await this._highlightFeatures();
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Download all selection sets as PDF
|
|
419
|
+
*
|
|
420
|
+
* @protected
|
|
421
|
+
*/
|
|
422
|
+
_downloadPDF() {
|
|
423
|
+
const ids = getSelectionIds(this._getDownloadSelectionSets());
|
|
424
|
+
void this._downloadTools.downloadPDF(ids, this._removeDuplicates.checked);
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Download all selection sets as CSV
|
|
428
|
+
*
|
|
429
|
+
* @protected
|
|
430
|
+
*/
|
|
431
|
+
_downloadCSV() {
|
|
432
|
+
var _a;
|
|
433
|
+
const ids = getSelectionIds(this._getDownloadSelectionSets());
|
|
434
|
+
void this._downloadTools.downloadCSV(ids, this._removeDuplicates.checked, (_a = this.exportOptions) === null || _a === void 0 ? void 0 : _a.csvOptions.addColumnTitle);
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Get all enabled selection sets
|
|
438
|
+
*
|
|
439
|
+
* @returns the selection sets
|
|
440
|
+
* @protected
|
|
441
|
+
*/
|
|
442
|
+
_getDownloadSelectionSets() {
|
|
443
|
+
return this._selectionSets.filter(ss => {
|
|
444
|
+
return ss.download || ss.workflowType === EWorkflowType.REFINE;
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Update custom label UI with buffer values
|
|
449
|
+
*
|
|
450
|
+
* @protected
|
|
451
|
+
*/
|
|
452
|
+
_updateLabel(evt, type) {
|
|
453
|
+
if (this._customLabel) {
|
|
454
|
+
const oldV = type === "unit" ? `${this._distance} ${evt.detail.oldValue}` : `${evt.detail.oldValue} ${this._unit}`;
|
|
455
|
+
const newV = type === "unit" ? `${this._distance} ${evt.detail.newValue}` : `${evt.detail.newValue} ${this._unit}`;
|
|
456
|
+
this._customLabel = this._customLabel.replace(oldV, newV);
|
|
457
|
+
this._labelName.value = this._customLabel;
|
|
458
|
+
this.labelChange.emit(this._labelName.value);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Store the current workflow type
|
|
463
|
+
*
|
|
464
|
+
* @protected
|
|
465
|
+
*/
|
|
466
|
+
_updateForWorkflowType(evt) {
|
|
467
|
+
this._selectionWorkflowType = evt.detail;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Create a calcite action
|
|
471
|
+
*
|
|
472
|
+
* @param enabled controls the enabled state of the control
|
|
473
|
+
* @param icon the image to display in the action
|
|
474
|
+
* @param text and supporting text for the action
|
|
475
|
+
* @param onClick the fucntion the actio will execute
|
|
476
|
+
* @param indicator boolean to control if an indicator should be shown (default is false)
|
|
477
|
+
* @param slot the supporting slot to use
|
|
478
|
+
*
|
|
479
|
+
* @returns the calcite action node
|
|
480
|
+
* @protected
|
|
481
|
+
*/
|
|
482
|
+
_getAction(enabled, icon, text, onClick, indicator = false, slot = "") {
|
|
483
|
+
return (h("calcite-action", { disabled: !enabled, icon: icon, indicator: indicator, onClick: onClick, slot: slot, text: text }));
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Store the number of selected features and if it's more than one enable save
|
|
487
|
+
*
|
|
488
|
+
* @returns the page node
|
|
489
|
+
* @protected
|
|
490
|
+
*/
|
|
491
|
+
_updateForSelection(evt) {
|
|
492
|
+
this._numSelected = evt.detail;
|
|
493
|
+
this._saveEnabled = this._numSelected > 0;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Clear the selection and navigate to the home page
|
|
497
|
+
*
|
|
498
|
+
* @returns Promise when the function has completed
|
|
499
|
+
* @protected
|
|
500
|
+
*/
|
|
501
|
+
async _home() {
|
|
502
|
+
await this._clearSelection();
|
|
503
|
+
if (typeof this._popupsEnabled === 'boolean' && this.mapView.popup) {
|
|
504
|
+
this.mapView.popup.autoOpenEnabled = this._popupsEnabled;
|
|
505
|
+
}
|
|
506
|
+
this._setPageType(EPageType.LIST);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Fetch the addressee layer from the map if no selection sets exist.
|
|
510
|
+
* Alert the user of the potential change to the selection sets if they exist.
|
|
511
|
+
*
|
|
512
|
+
* @param evt layer selection change event
|
|
513
|
+
*
|
|
514
|
+
* @returns Promise when the function has completed
|
|
515
|
+
* @protected
|
|
516
|
+
*/
|
|
517
|
+
async _layerSelectionChange(evt) {
|
|
518
|
+
var _a, _b, _c;
|
|
519
|
+
const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
|
|
520
|
+
if (id !== ((_b = this.addresseeLayer) === null || _b === void 0 ? void 0 : _b.layer.id)) {
|
|
521
|
+
this._showLayerSelectionChangeModal = ((_c = this.addresseeLayer) === null || _c === void 0 ? void 0 : _c.layer.id) !== undefined && this._selectionSets.length > 0;
|
|
522
|
+
if (this._showLayerSelectionChangeModal) {
|
|
523
|
+
this._layerSelectionChangeEvt = evt;
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
await this._updateAddresseeLayer(id);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Fetch the new addressee layer and update the selection sets
|
|
532
|
+
*
|
|
533
|
+
* @param id the id of the layer to fetch
|
|
534
|
+
*
|
|
535
|
+
* @returns Promise when the function has completed
|
|
536
|
+
* @protected
|
|
537
|
+
*/
|
|
538
|
+
async _updateAddresseeLayer(id) {
|
|
539
|
+
this.addresseeLayer = await getMapLayerView(this.mapView, id);
|
|
540
|
+
await this._updateSelectionSets(this.addresseeLayer);
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Update selection sets when the addressee layer changes.
|
|
544
|
+
* Will remove any "refine" selection set.
|
|
545
|
+
* Will use stored search, select, and sketch geometries and any buffers to select from the new addressee layer.
|
|
546
|
+
*
|
|
547
|
+
* @param layerView The new addressee layer view to select from
|
|
548
|
+
*
|
|
549
|
+
* @returns Promise when the function has completed
|
|
550
|
+
* @protected
|
|
551
|
+
*/
|
|
552
|
+
async _updateSelectionSets(layerView) {
|
|
553
|
+
const _selectionSets = this._selectionSets.filter(selectionSet => selectionSet.workflowType !== EWorkflowType.REFINE);
|
|
554
|
+
const oidDefs = [];
|
|
555
|
+
_selectionSets.forEach(selectionSet => {
|
|
556
|
+
selectionSet.layerView = layerView;
|
|
557
|
+
selectionSet.selectedIds = [];
|
|
558
|
+
oidDefs.push(getSelectionSetQuery(selectionSet, this._geometryEngine));
|
|
559
|
+
});
|
|
560
|
+
return Promise.all(oidDefs).then(async (results) => {
|
|
561
|
+
results.forEach((result, i) => {
|
|
562
|
+
_selectionSets[i].selectedIds = result;
|
|
563
|
+
});
|
|
564
|
+
await this._highlightFeatures();
|
|
565
|
+
this._selectionSets = [
|
|
566
|
+
..._selectionSets
|
|
567
|
+
];
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Update the selection sets with any new selections from the select tools
|
|
572
|
+
*
|
|
573
|
+
* @returns Promise when the function has completed
|
|
574
|
+
* @protected
|
|
575
|
+
*/
|
|
576
|
+
async _saveSelection() {
|
|
577
|
+
var _a, _b;
|
|
578
|
+
const results = await ((_a = this._selectTools) === null || _a === void 0 ? void 0 : _a.getSelection());
|
|
579
|
+
const isUpdate = (_b = this._selectTools) === null || _b === void 0 ? void 0 : _b.isUpdate;
|
|
580
|
+
this._selectionSets = isUpdate ? this._selectionSets.map(ss => {
|
|
581
|
+
return ss.id === results.id ? results : ss;
|
|
582
|
+
}) : [
|
|
583
|
+
...this._selectionSets,
|
|
584
|
+
results
|
|
585
|
+
];
|
|
586
|
+
return this._home();
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Clear any selections
|
|
590
|
+
*
|
|
591
|
+
* @returns Promise when the function has completed
|
|
592
|
+
* @protected
|
|
593
|
+
*/
|
|
594
|
+
async _clearSelection() {
|
|
595
|
+
var _a;
|
|
596
|
+
await ((_a = this._selectTools) === null || _a === void 0 ? void 0 : _a.clearSelection());
|
|
597
|
+
this._numSelected = 0;
|
|
598
|
+
this._activeSelection = undefined;
|
|
599
|
+
this._customLabel = undefined;
|
|
600
|
+
this._distance = undefined;
|
|
601
|
+
this._unit = undefined;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Delete the selection at the defined index
|
|
605
|
+
*
|
|
606
|
+
* @param index number that defines what selection set to delete
|
|
607
|
+
*
|
|
608
|
+
* @protected
|
|
609
|
+
*/
|
|
610
|
+
_deleteSelection(index, evt) {
|
|
611
|
+
evt.stopPropagation();
|
|
612
|
+
this._selectionSets = this._selectionSets.filter((ss, i) => {
|
|
613
|
+
if (i !== index) {
|
|
614
|
+
return ss;
|
|
615
|
+
}
|
|
616
|
+
});
|
|
617
|
+
return this._highlightFeatures();
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Pan to the current selection
|
|
621
|
+
*
|
|
622
|
+
* @param selSet ISelectionSet to pan to
|
|
623
|
+
* @param mapView Current MapView to pan within
|
|
624
|
+
*
|
|
625
|
+
* @protected
|
|
626
|
+
*/
|
|
627
|
+
_gotoSelection(selSet, mapView) {
|
|
628
|
+
void goToSelection(selSet.selectedIds, selSet.layerView, mapView, this.featureHighlightEnabled, this.featureEffect);
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* Open the selection set for further adjustment
|
|
632
|
+
*
|
|
633
|
+
* @protected
|
|
634
|
+
*/
|
|
635
|
+
_openSelection(selectionSet, evt) {
|
|
636
|
+
evt.stopPropagation();
|
|
637
|
+
this._activeSelection = selectionSet;
|
|
638
|
+
this._distance = this._activeSelection.distance;
|
|
639
|
+
this._unit = this._activeSelection.unit;
|
|
640
|
+
this._customLabel = this._activeSelection.label;
|
|
641
|
+
this._pageType = EPageType.SELECT;
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* Highlight any selected features in the map
|
|
645
|
+
*
|
|
646
|
+
* @protected
|
|
647
|
+
*/
|
|
648
|
+
async _highlightFeatures() {
|
|
649
|
+
this._clearHighlight();
|
|
650
|
+
const ids = getSelectionIds(this._selectionSets);
|
|
651
|
+
if (ids.length > 0) {
|
|
652
|
+
state.highlightHandle = await highlightFeatures(ids, this.addresseeLayer, this.mapView);
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Clear any highlighted features in the map
|
|
657
|
+
*
|
|
658
|
+
* @protected
|
|
659
|
+
*/
|
|
660
|
+
_checkPopups() {
|
|
661
|
+
var _a;
|
|
662
|
+
if (typeof this._popupsEnabled !== 'boolean') {
|
|
663
|
+
this._popupsEnabled = (_a = this.mapView) === null || _a === void 0 ? void 0 : _a.popup.autoOpenEnabled;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Clear any highlighted features in the map
|
|
668
|
+
*
|
|
669
|
+
* @protected
|
|
670
|
+
*/
|
|
671
|
+
_clearHighlight() {
|
|
672
|
+
var _a;
|
|
673
|
+
if (state && state.highlightHandle) {
|
|
674
|
+
(_a = state.highlightHandle) === null || _a === void 0 ? void 0 : _a.remove();
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* Fetches the component's translations
|
|
679
|
+
*
|
|
680
|
+
* @protected
|
|
681
|
+
*/
|
|
682
|
+
async _getTranslations() {
|
|
683
|
+
const translations = await getLocaleComponentStrings(this.el);
|
|
684
|
+
this._translations = translations[0];
|
|
685
|
+
}
|
|
686
|
+
get el() { return getElement(this); }
|
|
687
|
+
static get watchers() { return {
|
|
688
|
+
"mapView": ["mapViewWatchHandler"],
|
|
689
|
+
"_selectionSets": ["selectionSetsWatchHandler"],
|
|
690
|
+
"_pageType": ["pageTypeWatchHandler"]
|
|
691
|
+
}; }
|
|
692
|
+
};
|
|
693
|
+
PublicNotification.style = publicNotificationCss;
|
|
694
|
+
|
|
695
|
+
export { PublicNotification as public_notification };
|