@esri/solutions-components 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- 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 };
|