@esri/solutions-components 0.6.7 → 0.6.8
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/ExpandToggle-e6a0d66e.js +117 -0
- package/dist/cjs/FloatingArrow-0119ec6e.js +48 -0
- package/dist/cjs/Heading-521f39ac.js +25 -0
- package/dist/cjs/app-globals-72576a1c.js +69 -0
- package/dist/cjs/ar-1718ae57.js +97 -0
- package/dist/cjs/basemap-gallery_4.cjs.entry.js +622 -0
- package/dist/cjs/bg-190a176c.js +78 -0
- package/dist/cjs/bs-919e0de8.js +47 -0
- package/dist/cjs/buffer-tools_4.cjs.entry.js +1437 -1437
- package/dist/cjs/ca-94918e06.js +67 -0
- package/dist/cjs/calcite-accordion-item.cjs.entry.js +140 -140
- package/dist/cjs/calcite-accordion.cjs.entry.js +75 -75
- package/dist/cjs/calcite-action-bar.cjs.entry.js +216 -216
- package/dist/cjs/calcite-action-group_2.cjs.entry.js +365 -365
- package/dist/cjs/calcite-action-pad.cjs.entry.js +135 -135
- package/dist/cjs/calcite-action_2.cjs.entry.js +445 -445
- package/dist/cjs/calcite-alert.cjs.entry.js +247 -247
- package/dist/cjs/calcite-avatar.cjs.entry.js +73 -73
- package/dist/cjs/calcite-block-section.cjs.entry.js +122 -122
- package/dist/cjs/calcite-block.cjs.entry.js +131 -131
- package/dist/cjs/calcite-button.cjs.entry.js +182 -182
- package/dist/cjs/calcite-card.cjs.entry.js +99 -99
- package/dist/cjs/calcite-checkbox.cjs.entry.js +125 -125
- package/dist/cjs/calcite-chip-group.cjs.entry.js +164 -164
- package/dist/cjs/calcite-chip.cjs.entry.js +213 -213
- package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +303 -303
- package/dist/cjs/calcite-color-picker.cjs.entry.js +886 -886
- package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +35 -35
- package/dist/cjs/calcite-combobox_6.cjs.entry.js +1786 -1786
- package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +589 -589
- package/dist/cjs/calcite-date-picker.cjs.entry.js +434 -434
- package/dist/cjs/calcite-fab.cjs.entry.js +66 -66
- package/dist/cjs/calcite-filter_5.cjs.entry.js +1131 -1131
- package/dist/cjs/calcite-flow-item.cjs.entry.js +146 -146
- package/dist/cjs/calcite-flow.cjs.entry.js +117 -117
- package/dist/cjs/calcite-graph.cjs.entry.js +66 -66
- package/dist/cjs/calcite-icon.cjs.entry.js +80 -80
- package/dist/cjs/calcite-inline-editable.cjs.entry.js +225 -225
- package/dist/cjs/calcite-input-date-picker.cjs.entry.js +632 -632
- package/dist/cjs/calcite-input-number_2.cjs.entry.js +846 -846
- package/dist/cjs/calcite-input-time-picker-b99baf7b.js +1718 -0
- package/dist/cjs/calcite-input-time-picker.cjs.entry.js +15 -15
- package/dist/cjs/calcite-input-time-zone.cjs.entry.js +150 -150
- package/dist/cjs/calcite-input_2.cjs.entry.js +645 -645
- package/dist/cjs/calcite-label.cjs.entry.js +40 -40
- package/dist/cjs/calcite-link.cjs.entry.js +96 -96
- package/dist/cjs/calcite-list-item-group.cjs.entry.js +46 -46
- package/dist/cjs/calcite-loader.cjs.entry.js +65 -65
- package/dist/cjs/calcite-menu-item.cjs.entry.js +246 -246
- package/dist/cjs/calcite-menu.cjs.entry.js +161 -161
- package/dist/cjs/calcite-modal.cjs.entry.js +282 -282
- package/dist/cjs/calcite-navigation-logo.cjs.entry.js +52 -52
- package/dist/cjs/calcite-navigation-user.cjs.entry.js +45 -45
- package/dist/cjs/calcite-navigation.cjs.entry.js +126 -126
- package/dist/cjs/calcite-notice.cjs.entry.js +105 -105
- package/dist/cjs/calcite-option-group.cjs.entry.js +24 -24
- package/dist/cjs/calcite-option_2.cjs.entry.js +271 -271
- package/dist/cjs/calcite-pagination.cjs.entry.js +191 -191
- package/dist/cjs/calcite-panel_2.cjs.entry.js +346 -346
- package/dist/cjs/calcite-pick-list-group.cjs.entry.js +46 -46
- package/dist/cjs/calcite-pick-list-item.cjs.entry.js +181 -181
- package/dist/cjs/calcite-pick-list.cjs.entry.js +130 -130
- package/dist/cjs/calcite-radio-button-group.cjs.entry.js +118 -118
- package/dist/cjs/calcite-radio-button.cjs.entry.js +292 -292
- package/dist/cjs/calcite-rating.cjs.entry.js +245 -245
- package/dist/cjs/calcite-scrim.cjs.entry.js +93 -93
- package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +225 -225
- package/dist/cjs/calcite-shell-center-row.cjs.entry.js +42 -42
- package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2604 -2604
- package/dist/cjs/calcite-sortable-list.cjs.entry.js +134 -134
- package/dist/cjs/calcite-split-button.cjs.entry.js +92 -92
- package/dist/cjs/calcite-stepper-item.cjs.entry.js +197 -197
- package/dist/cjs/calcite-stepper.cjs.entry.js +187 -187
- package/dist/cjs/calcite-switch.cjs.entry.js +100 -100
- package/dist/cjs/calcite-text-area.cjs.entry.js +235 -235
- package/dist/cjs/calcite-tile-select-group.cjs.entry.js +27 -27
- package/dist/cjs/calcite-tile-select.cjs.entry.js +180 -180
- package/dist/cjs/calcite-tile.cjs.entry.js +58 -58
- package/dist/cjs/calcite-time-picker.cjs.entry.js +619 -619
- package/dist/cjs/calcite-tip-group.cjs.entry.js +10 -10
- package/dist/cjs/calcite-tip-manager.cjs.entry.js +185 -185
- package/dist/cjs/calcite-tip.cjs.entry.js +94 -94
- package/dist/cjs/calcite-tooltip.cjs.entry.js +185 -185
- package/dist/cjs/calcite-tree_3.cjs.entry.js +821 -821
- package/dist/cjs/card-manager_4.cjs.entry.js +707 -653
- package/dist/cjs/conditionalSlot-85b3a6b3.js +63 -0
- package/dist/cjs/crowdsource-manager.cjs.entry.js +258 -256
- package/dist/cjs/crowdsource-reporter.cjs.entry.js +60 -60
- package/dist/cjs/cs-fe27e732.js +143 -0
- package/dist/cjs/da-1b7f3440.js +62 -0
- package/dist/cjs/date-cec32b0e.js +250 -0
- package/dist/cjs/de-0dc1effa.js +87 -0
- package/dist/cjs/de-at-acdc4d01.js +86 -0
- package/dist/cjs/de-ch-778a0d99.js +86 -0
- package/dist/cjs/deduct-calculator.cjs.entry.js +90 -90
- package/dist/cjs/dom-c1807fc1.js +1046 -0
- package/dist/cjs/downloadUtils-a8c530f7.js +2767 -0
- package/dist/cjs/edit-card_2.cjs.entry.js +345 -345
- package/dist/cjs/el-fdbc9bc1.js +62 -0
- package/dist/cjs/en-au-0ff50cdf.js +62 -0
- package/dist/cjs/en-ca-284e9368.js +61 -0
- package/dist/cjs/en-gb-0fcae8ae.js +65 -0
- package/dist/cjs/es-cd54acba.js +62 -0
- package/dist/cjs/es-mx-2078d50f.js +61 -0
- package/dist/cjs/et-17f323f6.js +88 -0
- package/dist/cjs/fi-82f27397.js +111 -0
- package/dist/cjs/filter-bda212b4.js +765 -0
- package/dist/cjs/floating-ui-8d10af88.js +1888 -0
- package/dist/cjs/focusTrapComponent-a22fc6a8.js +1009 -0
- package/dist/cjs/form-9d8ebf06.js +288 -0
- package/dist/cjs/fr-af7e1192.js +64 -0
- package/dist/cjs/fr-ch-5e1f2c28.js +62 -0
- package/dist/cjs/he-ea851800.js +101 -0
- package/dist/cjs/hi-5212a21d.js +61 -0
- package/dist/cjs/hr-4eecb2ed.js +76 -0
- package/dist/cjs/hu-6b527d8e.js +84 -0
- package/dist/cjs/id-d78f12ec.js +62 -0
- package/dist/cjs/index-0e50040c.js +1938 -0
- package/dist/cjs/index-2b60e135.js +201 -0
- package/dist/cjs/index.es-4542630e.js +10808 -0
- package/dist/cjs/interfaces-d539e30c.js +85 -0
- package/dist/cjs/it-15242935.js +62 -0
- package/dist/cjs/it-ch-9dc21944.js +62 -0
- package/dist/cjs/ja-f702cfc2.js +68 -0
- package/dist/cjs/ko-aa9bde2c.js +68 -0
- package/dist/cjs/label-6e33e971.js +136 -0
- package/dist/cjs/list-item.cjs.entry.js +60 -60
- package/dist/cjs/loadModules-31cab7ac.js +30 -0
- package/dist/cjs/loadable-bac9cdd6.js +94 -0
- package/dist/cjs/loader.cjs.js +5 -14
- package/dist/cjs/locale-c63a1b57.js +604 -0
- package/dist/cjs/locale-d15cd743.js +416 -0
- package/dist/cjs/lt-e741ff2f.js +93 -0
- package/dist/cjs/lv-92d6768e.js +62 -0
- package/dist/cjs/map-select-tools_3.cjs.entry.js +1285 -1285
- package/dist/cjs/mapViewUtils-9da2dddd.js +411 -0
- package/dist/cjs/mk-b209ac0d.js +62 -0
- package/dist/cjs/nb-db13e666.js +63 -0
- package/dist/cjs/nl-fcd9e0c5.js +63 -0
- package/dist/cjs/openCloseComponent-5d70fcd8.js +84 -0
- package/dist/cjs/pci-calculator.cjs.entry.js +102 -102
- package/dist/cjs/pciUtils-e0ddeb7c.js +847 -0
- package/dist/cjs/pl-87c83322.js +110 -0
- package/dist/cjs/pt-b0b5f472.js +63 -0
- package/dist/cjs/pt-br-03333e90.js +61 -0
- package/dist/cjs/public-notification.cjs.entry.js +844 -844
- package/dist/cjs/publicNotificationStore-55edd658.js +51 -0
- package/dist/cjs/ro-c3661b73.js +62 -0
- package/dist/cjs/ru-8dd3fd58.js +122 -0
- package/dist/cjs/shared-list-render-c0adb192.js +364 -0
- package/dist/cjs/sk-151d9acf.js +144 -0
- package/dist/cjs/sl-9b45a152.js +62 -0
- package/dist/cjs/solution-configuration.cjs.entry.js +888 -888
- package/dist/cjs/solution-contents_3.cjs.entry.js +21506 -21506
- package/dist/cjs/solution-store-0004e4e6.js +4100 -0
- package/dist/cjs/solutions-components.cjs.js +5 -5
- package/dist/cjs/sortableComponent-58679f07.js +3112 -0
- package/dist/cjs/sr-186bf15c.js +97 -0
- package/dist/cjs/store-manager.cjs.entry.js +52 -52
- package/dist/cjs/sv-a93fee0c.js +67 -0
- package/dist/cjs/t9n-1d032c30.js +100 -0
- package/dist/cjs/th-41680352.js +61 -0
- package/dist/cjs/throttle-aeeb1b4d.js +75 -0
- package/dist/cjs/time-5e450ec8.js +208 -0
- package/dist/cjs/tr-0bd886d6.js +62 -0
- package/dist/cjs/uk-4fade133.js +100 -0
- package/dist/cjs/utils-acfeed9d.js +64 -0
- package/dist/cjs/utils-ae9bdd59.js +55 -0
- package/dist/cjs/vi-1c9fe343.js +66 -0
- package/dist/cjs/zh-cn-28fa1fe1.js +90 -0
- package/dist/cjs/zh-hk-5abf8eb5.js +67 -0
- package/dist/cjs/zh-tw-07500357.js +88 -0
- package/dist/collection/collection-manifest.json +37 -35
- package/dist/collection/components/basemap-gallery/basemap-gallery.css +19 -0
- package/dist/collection/components/basemap-gallery/basemap-gallery.js +166 -0
- package/dist/collection/components/basemap-gallery/test/basemap-gallery.e2e.js +29 -0
- package/dist/collection/components/basemap-gallery/test/basemap-gallery.spec.js +37 -0
- package/dist/collection/components/buffer-tools/buffer-tools.js +481 -476
- package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +29 -0
- package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +160 -0
- package/dist/collection/components/card-manager/card-manager.js +199 -197
- package/dist/collection/components/card-manager/test/card-manager.e2e.js +29 -0
- package/dist/collection/components/card-manager/test/card-manager.spec.js +37 -0
- package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +448 -406
- package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +29 -0
- package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +37 -0
- package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +89 -89
- package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +29 -0
- package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +37 -0
- package/dist/collection/components/deduct-calculator/deduct-calculator.js +143 -143
- package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +29 -0
- package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +37 -0
- package/dist/collection/components/edit-card/edit-card.js +302 -300
- package/dist/collection/components/edit-card/test/edit-card.e2e.js +14 -0
- package/dist/collection/components/edit-card/test/edit-card.spec.js +22 -0
- package/dist/collection/components/info-card/info-card.js +361 -357
- package/dist/collection/components/info-card/test/info-card.e2e.js +29 -0
- package/dist/collection/components/info-card/test/info-card.spec.js +37 -0
- package/dist/collection/components/json-editor/json-editor.js +618 -614
- package/dist/collection/components/json-editor/test/json-editor.e2e.js +36 -0
- package/dist/collection/components/json-editor/test/json-editor.spec.js +65 -0
- package/dist/collection/components/layer-table/layer-table.js +620 -548
- package/dist/collection/components/layer-table/test/layer-table.e2e.js +29 -0
- package/dist/collection/components/layer-table/test/layer-table.spec.js +37 -0
- package/dist/collection/components/layout-manager/layout-manager.js +136 -135
- package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +29 -0
- package/dist/collection/components/layout-manager/test/layout-manager.spec.js +37 -0
- package/dist/collection/components/list-item/list-item.js +89 -89
- package/dist/collection/components/list-item/test/list-item.e2e.js +29 -0
- package/dist/collection/components/list-item/test/list-item.spec.js +37 -0
- package/dist/collection/components/map-card/map-card.css +0 -7
- package/dist/collection/components/map-card/map-card.js +211 -203
- package/dist/collection/components/map-card/test/map-card.e2e.js +29 -0
- package/dist/collection/components/map-card/test/map-card.spec.js +37 -0
- package/dist/collection/components/map-draw-tools/map-draw-tools.js +692 -683
- package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +29 -0
- package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +37 -0
- package/dist/collection/components/map-layer-picker/map-layer-picker.js +424 -423
- package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +29 -0
- package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +114 -0
- package/dist/collection/components/map-picker/map-picker.js +226 -224
- package/dist/collection/components/map-picker/test/map-picker.e2e.js +29 -0
- package/dist/collection/components/map-picker/test/map-picker.spec.js +37 -0
- package/dist/collection/components/map-search/map-search.css +24 -0
- package/dist/collection/components/map-search/map-search.js +321 -0
- package/dist/collection/components/map-search/test/map-search.e2e.js +29 -0
- package/dist/collection/components/map-search/test/map-search.spec.js +37 -0
- package/dist/collection/components/map-select-tools/map-select-tools.js +1242 -1229
- package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +29 -0
- package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +366 -0
- package/dist/collection/components/map-tools/map-tools.js +337 -210
- package/dist/collection/components/map-tools/test/map-tools.e2e.js +29 -0
- package/dist/collection/components/map-tools/test/map-tools.spec.js +37 -0
- package/dist/collection/components/pci-calculator/pci-calculator.js +143 -143
- package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +29 -0
- package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +37 -0
- package/dist/collection/components/pdf-download/pdf-download.js +338 -333
- package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +76 -0
- package/dist/collection/components/pdf-download/test/pdf-download.spec.js +107 -0
- package/dist/collection/components/public-notification/public-notification.js +1295 -1287
- package/dist/collection/components/public-notification/test/public-notification.spec.js +161 -0
- package/dist/collection/components/refine-selection/refine-selection.js +608 -601
- package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +14 -0
- package/dist/collection/components/refine-selection/test/refine-selection.spec.js +22 -0
- package/dist/collection/components/solution-configuration/solution-configuration.js +739 -735
- package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +36 -0
- package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +119 -0
- package/dist/collection/components/solution-contents/solution-contents.js +163 -162
- package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +94 -0
- package/dist/collection/components/solution-contents/test/solution-contents.spec.js +143 -0
- package/dist/collection/components/solution-item/solution-item.js +203 -202
- package/dist/collection/components/solution-item/test/solution-item.e2e.js +36 -0
- package/dist/collection/components/solution-item/test/solution-item.spec.js +77 -0
- package/dist/collection/components/solution-item-details/solution-item-details.js +248 -248
- package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +36 -0
- package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +142 -0
- package/dist/collection/components/solution-item-icon/solution-item-icon.js +398 -398
- package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +29 -0
- package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +39 -0
- package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +200 -199
- package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +36 -0
- package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +54 -0
- package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +156 -156
- package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +36 -0
- package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +65 -0
- package/dist/collection/components/solution-resource-item/solution-resource-item.js +348 -347
- package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +36 -0
- package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +55 -0
- package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +515 -510
- package/dist/collection/components/solution-spatial-ref/spatialreferences.js +21046 -21046
- package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +36 -0
- package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +175 -0
- package/dist/collection/components/solution-template-data/solution-template-data.js +230 -230
- package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +36 -0
- package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +60 -0
- package/dist/collection/components/solution-variables/solution-variables.js +168 -168
- package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +36 -0
- package/dist/collection/components/solution-variables/test/solution-variables.spec.js +131 -0
- package/dist/collection/components/store-manager/store-manager.js +128 -127
- package/dist/collection/demos/crowdsource-manager.html +3 -3
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/common.js +296 -296
- package/dist/collection/utils/csvDownload.js +41 -41
- package/dist/collection/utils/csvUtils.js +37 -37
- package/dist/collection/utils/downloadUtils.js +530 -530
- package/dist/collection/utils/interfaces.js +83 -83
- package/dist/collection/utils/interfaces.ts +2 -0
- package/dist/collection/utils/languageUtil.js +90 -90
- package/dist/collection/utils/loadModules.js +25 -25
- package/dist/collection/utils/locale.js +61 -61
- package/dist/collection/utils/mapViewUtils.js +240 -240
- package/dist/collection/utils/pciUtils.js +842 -842
- package/dist/collection/utils/pdfUtils.js +87 -87
- package/dist/collection/utils/publicNotificationStore.js +47 -47
- package/dist/collection/utils/queryUtils.js +200 -200
- package/dist/collection/utils/solution-store.js +584 -584
- package/dist/collection/utils/templates.e2e.js +30 -0
- package/dist/collection/utils/templates.js +346 -346
- package/dist/collection/utils/test/csvUtils.spec.js +51 -0
- package/dist/collection/utils/test/downloadUtils.spec.js +357 -0
- package/dist/collection/utils/test/mocks/jsApi.js +79 -79
- package/dist/collection/utils/test/pciUtils.spec.js +302 -0
- package/dist/collection/utils/test/solution-store.spec.js +444 -0
- package/dist/collection/utils/test/testUtils.js +123 -123
- package/dist/collection/utils/types.js +1 -1
- package/dist/components/ExpandToggle.js +1 -1
- package/dist/components/action-bar.js +262 -262
- package/dist/components/action-group.js +144 -144
- package/dist/components/action-menu.js +310 -310
- package/dist/components/action.js +185 -185
- package/dist/components/alert.js +286 -286
- package/dist/components/avatar.js +99 -99
- package/dist/components/basemap-gallery.d.ts +11 -0
- package/dist/components/basemap-gallery.js +11 -0
- package/dist/components/basemap-gallery2.js +118 -0
- package/dist/components/buffer-tools2.js +263 -263
- package/dist/components/button.js +225 -225
- package/dist/components/calcite-accordion-item.js +168 -167
- package/dist/components/calcite-accordion.js +95 -95
- package/dist/components/calcite-action-pad.js +180 -180
- package/dist/components/calcite-block-section.js +150 -150
- package/dist/components/calcite-block.js +186 -186
- package/dist/components/calcite-card.js +132 -132
- package/dist/components/calcite-chip-group.js +181 -181
- package/dist/components/calcite-color-picker.js +979 -979
- package/dist/components/calcite-combobox-item-group.js +52 -52
- package/dist/components/calcite-fab.js +104 -104
- package/dist/components/calcite-filter.js +1 -1
- package/dist/components/calcite-flow-item.js +204 -204
- package/dist/components/calcite-flow.js +136 -136
- package/dist/components/calcite-inline-editable.js +259 -259
- package/dist/components/calcite-input-date-picker.js +703 -703
- package/dist/components/calcite-input-time-picker.js +595 -595
- package/dist/components/calcite-input-time-zone.js +189 -189
- package/dist/components/calcite-label.js +1 -1
- package/dist/components/calcite-list-item-group.js +64 -64
- package/dist/components/calcite-menu-item.js +297 -296
- package/dist/components/calcite-modal.js +328 -328
- package/dist/components/calcite-navigation-logo.js +76 -76
- package/dist/components/calcite-navigation-user.js +78 -78
- package/dist/components/calcite-navigation.js +166 -166
- package/dist/components/calcite-option-group.js +42 -42
- package/dist/components/calcite-pagination.js +217 -217
- package/dist/components/calcite-pick-list-group.js +59 -59
- package/dist/components/calcite-pick-list.js +150 -150
- package/dist/components/calcite-radio-button-group.js +141 -141
- package/dist/components/calcite-radio-button.js +316 -316
- package/dist/components/calcite-rating.js +279 -279
- package/dist/components/calcite-shell-center-row.js +57 -57
- package/dist/components/calcite-sortable-list.js +153 -153
- package/dist/components/calcite-split-button.js +142 -142
- package/dist/components/calcite-stack.js +1 -1
- package/dist/components/calcite-stepper-item.js +225 -225
- package/dist/components/calcite-stepper.js +212 -212
- package/dist/components/calcite-text-area.js +266 -266
- package/dist/components/calcite-tile-select-group.js +44 -44
- package/dist/components/calcite-tile-select.js +223 -223
- package/dist/components/calcite-tip-group.js +27 -27
- package/dist/components/calcite-tip-manager.js +222 -222
- package/dist/components/calcite-tip.js +126 -126
- package/dist/components/card-manager2.js +155 -155
- package/dist/components/checkbox.js +146 -146
- package/dist/components/chip.js +245 -245
- package/dist/components/color-picker-hex-input.js +287 -287
- package/dist/components/color-picker-swatch.js +79 -79
- package/dist/components/combobox-item.js +135 -135
- package/dist/components/combobox.js +921 -921
- package/dist/components/crowdsource-manager.js +528 -512
- package/dist/components/crowdsource-reporter.js +75 -75
- package/dist/components/date-picker-day.js +110 -109
- package/dist/components/date-picker-month-header.js +197 -197
- package/dist/components/date-picker-month.js +372 -372
- package/dist/components/date-picker.js +492 -492
- package/dist/components/date.js +1 -1
- package/dist/components/deduct-calculator2.js +981 -981
- package/dist/components/dom.js +2 -23
- package/dist/components/downloadUtils.js +655 -655
- package/dist/components/dropdown-group.js +72 -72
- package/dist/components/dropdown-item.js +195 -195
- package/dist/components/dropdown.js +420 -420
- package/dist/components/edit-card2.js +191 -191
- package/dist/components/esri-loader.js +301 -0
- package/dist/components/filter.js +751 -202
- package/dist/components/filter2.js +191 -740
- package/dist/components/floating-ui.js +2 -2
- package/dist/components/focusTrapComponent.js +1 -1
- package/dist/components/graph.js +86 -86
- package/dist/components/handle.js +165 -165
- package/dist/components/icon.js +99 -99
- package/dist/components/index.d.ts +5 -35
- package/dist/components/index.js +26 -154
- package/dist/components/info-card2.js +251 -251
- package/dist/components/input-message.js +66 -66
- package/dist/components/input-number.js +600 -599
- package/dist/components/input-text.js +368 -367
- package/dist/components/input.js +687 -686
- package/dist/components/interfaces.js +78 -78
- package/dist/components/json-editor2.js +425 -425
- package/dist/components/label.js +117 -65
- package/dist/components/label2.js +58 -110
- package/dist/components/layer-table2.js +598 -547
- package/dist/components/layout-manager2.js +118 -118
- package/dist/components/link.js +123 -122
- package/dist/components/list-item.js +75 -75
- package/dist/components/list-item2.js +431 -431
- package/dist/components/list.js +510 -510
- package/dist/components/loadModules.js +19 -19
- package/dist/components/loader.js +86 -86
- package/dist/components/locale.js +106 -399
- package/dist/components/locale2.js +2 -2
- package/dist/components/map-card2.js +236 -218
- package/dist/components/map-draw-tools2.js +383 -383
- package/dist/components/map-layer-picker2.js +291 -291
- package/dist/components/map-picker2.js +235 -235
- package/dist/components/map-search.d.ts +11 -0
- package/dist/components/map-search.js +11 -0
- package/dist/components/map-search2.js +201 -0
- package/dist/components/map-select-tools2.js +916 -916
- package/dist/components/map-tools2.js +287 -177
- package/dist/components/mapViewUtils.js +235 -235
- package/dist/components/menu.js +178 -178
- package/dist/components/notice.js +130 -130
- package/dist/components/option.js +91 -91
- package/dist/components/panel.js +307 -307
- package/dist/components/pci-calculator.js +169 -169
- package/dist/components/pdf-download2.js +173 -173
- package/dist/components/pick-list-item.js +219 -219
- package/dist/components/popover.js +349 -349
- package/dist/components/progress.js +46 -45
- package/dist/components/public-notification.js +1101 -1101
- package/dist/components/publicNotificationStore.js +39 -39
- package/dist/components/queryUtils.js +152 -152
- package/dist/components/refine-selection2.js +546 -546
- package/dist/components/resources.js +17 -9
- package/dist/components/resources2.js +9 -13
- package/dist/components/resources3.js +9 -5
- package/dist/components/scrim.js +115 -115
- package/dist/components/segmented-control-item.js +62 -62
- package/dist/components/segmented-control.js +213 -213
- package/dist/components/select.js +226 -226
- package/dist/components/shared-list-render.js +3 -3
- package/dist/components/shell-panel.js +398 -397
- package/dist/components/shell.js +119 -119
- package/dist/components/slider.js +898 -898
- package/dist/components/solution-configuration.js +1095 -1095
- package/dist/components/solution-contents2.js +111 -111
- package/dist/components/solution-item-details2.js +217 -217
- package/dist/components/solution-item-icon2.js +330 -330
- package/dist/components/solution-item-sharing2.js +151 -151
- package/dist/components/solution-item2.js +269 -269
- package/dist/components/solution-organization-variables2.js +115 -115
- package/dist/components/solution-resource-item2.js +331 -331
- package/dist/components/solution-spatial-ref2.js +21420 -21420
- package/dist/components/solution-store.js +575 -575
- package/dist/components/solution-template-data2.js +202 -202
- package/dist/components/solution-variables2.js +132 -132
- package/dist/components/sortableComponent.js +1 -1
- package/dist/components/stack.js +78 -78
- package/dist/components/store-manager.js +70 -70
- package/dist/components/switch.js +118 -118
- package/dist/components/tab-nav.js +254 -254
- package/dist/components/tab-title.js +300 -300
- package/dist/components/tab.js +111 -111
- package/dist/components/tabs.js +130 -130
- package/dist/components/tile.js +89 -89
- package/dist/components/time-picker.js +654 -654
- package/dist/components/tooltip.js +207 -207
- package/dist/components/tree-item.js +288 -287
- package/dist/components/tree.js +281 -281
- package/dist/components/utils.js +1 -1
- package/dist/components/utils2.js +2 -2
- package/dist/components/utils3.js +1 -1
- package/dist/components/value-list-item.js +169 -169
- package/dist/components/value-list.js +275 -275
- package/dist/esm/ExpandToggle-3d10bd1e.js +109 -0
- package/dist/esm/FloatingArrow-29db6da6.js +46 -0
- package/dist/esm/Heading-cb79e5b2.js +22 -0
- package/dist/esm/app-globals-5cbac6b0.js +67 -0
- package/dist/esm/ar-4b751ba8.js +95 -0
- package/dist/esm/basemap-gallery_4.entry.js +615 -0
- package/dist/esm/bg-5d8bf5ea.js +76 -0
- package/dist/esm/bs-ff510e71.js +45 -0
- package/dist/esm/buffer-tools_4.entry.js +1437 -1437
- package/dist/esm/ca-b9a5e51a.js +65 -0
- package/dist/esm/calcite-accordion-item.entry.js +140 -140
- package/dist/esm/calcite-accordion.entry.js +75 -75
- package/dist/esm/calcite-action-bar.entry.js +216 -216
- package/dist/esm/calcite-action-group_2.entry.js +365 -365
- package/dist/esm/calcite-action-pad.entry.js +135 -135
- package/dist/esm/calcite-action_2.entry.js +445 -445
- package/dist/esm/calcite-alert.entry.js +247 -247
- package/dist/esm/calcite-avatar.entry.js +73 -73
- package/dist/esm/calcite-block-section.entry.js +122 -122
- package/dist/esm/calcite-block.entry.js +131 -131
- package/dist/esm/calcite-button.entry.js +182 -182
- package/dist/esm/calcite-card.entry.js +99 -99
- package/dist/esm/calcite-checkbox.entry.js +125 -125
- package/dist/esm/calcite-chip-group.entry.js +164 -164
- package/dist/esm/calcite-chip.entry.js +213 -213
- package/dist/esm/calcite-color-picker-hex-input_2.entry.js +303 -303
- package/dist/esm/calcite-color-picker.entry.js +886 -886
- package/dist/esm/calcite-combobox-item-group.entry.js +35 -35
- package/dist/esm/calcite-combobox_6.entry.js +1786 -1786
- package/dist/esm/calcite-date-picker-day_3.entry.js +589 -589
- package/dist/esm/calcite-date-picker.entry.js +434 -434
- package/dist/esm/calcite-fab.entry.js +66 -66
- package/dist/esm/calcite-filter_5.entry.js +1131 -1131
- package/dist/esm/calcite-flow-item.entry.js +146 -146
- package/dist/esm/calcite-flow.entry.js +117 -117
- package/dist/esm/calcite-graph.entry.js +66 -66
- package/dist/esm/calcite-icon.entry.js +80 -80
- package/dist/esm/calcite-inline-editable.entry.js +225 -225
- package/dist/esm/calcite-input-date-picker.entry.js +632 -632
- package/dist/esm/calcite-input-number_2.entry.js +846 -846
- package/dist/esm/calcite-input-time-picker-13448515.js +1715 -0
- package/dist/esm/calcite-input-time-picker.entry.js +15 -15
- package/dist/esm/calcite-input-time-zone.entry.js +150 -150
- package/dist/esm/calcite-input_2.entry.js +645 -645
- package/dist/esm/calcite-label.entry.js +40 -40
- package/dist/esm/calcite-link.entry.js +96 -96
- package/dist/esm/calcite-list-item-group.entry.js +46 -46
- package/dist/esm/calcite-loader.entry.js +65 -65
- package/dist/esm/calcite-menu-item.entry.js +246 -246
- package/dist/esm/calcite-menu.entry.js +161 -161
- package/dist/esm/calcite-modal.entry.js +282 -282
- package/dist/esm/calcite-navigation-logo.entry.js +52 -52
- package/dist/esm/calcite-navigation-user.entry.js +45 -45
- package/dist/esm/calcite-navigation.entry.js +126 -126
- package/dist/esm/calcite-notice.entry.js +105 -105
- package/dist/esm/calcite-option-group.entry.js +24 -24
- package/dist/esm/calcite-option_2.entry.js +271 -271
- package/dist/esm/calcite-pagination.entry.js +191 -191
- package/dist/esm/calcite-panel_2.entry.js +346 -346
- package/dist/esm/calcite-pick-list-group.entry.js +46 -46
- package/dist/esm/calcite-pick-list-item.entry.js +181 -181
- package/dist/esm/calcite-pick-list.entry.js +130 -130
- package/dist/esm/calcite-radio-button-group.entry.js +118 -118
- package/dist/esm/calcite-radio-button.entry.js +292 -292
- package/dist/esm/calcite-rating.entry.js +245 -245
- package/dist/esm/calcite-scrim.entry.js +93 -93
- package/dist/esm/calcite-segmented-control_2.entry.js +225 -225
- package/dist/esm/calcite-shell-center-row.entry.js +42 -42
- package/dist/esm/calcite-shell-panel_14.entry.js +2604 -2604
- package/dist/esm/calcite-sortable-list.entry.js +134 -134
- package/dist/esm/calcite-split-button.entry.js +92 -92
- package/dist/esm/calcite-stepper-item.entry.js +197 -197
- package/dist/esm/calcite-stepper.entry.js +187 -187
- package/dist/esm/calcite-switch.entry.js +100 -100
- package/dist/esm/calcite-text-area.entry.js +235 -235
- package/dist/esm/calcite-tile-select-group.entry.js +27 -27
- package/dist/esm/calcite-tile-select.entry.js +180 -180
- package/dist/esm/calcite-tile.entry.js +58 -58
- package/dist/esm/calcite-time-picker.entry.js +619 -619
- package/dist/esm/calcite-tip-group.entry.js +10 -10
- package/dist/esm/calcite-tip-manager.entry.js +185 -185
- package/dist/esm/calcite-tip.entry.js +94 -94
- package/dist/esm/calcite-tooltip.entry.js +185 -185
- package/dist/esm/calcite-tree_3.entry.js +821 -821
- package/dist/esm/card-manager_4.entry.js +707 -653
- package/dist/esm/conditionalSlot-27a0fce0.js +60 -0
- package/dist/esm/crowdsource-manager.entry.js +258 -256
- package/dist/esm/crowdsource-reporter.entry.js +60 -60
- package/dist/esm/cs-f21a0628.js +141 -0
- package/dist/esm/da-dc48fc4c.js +60 -0
- package/dist/esm/date-0ed48e97.js +235 -0
- package/dist/esm/de-59290071.js +85 -0
- package/dist/esm/de-at-cd6e6ab7.js +84 -0
- package/dist/esm/de-ch-27c44e34.js +84 -0
- package/dist/esm/deduct-calculator.entry.js +90 -90
- package/dist/esm/dom-843e3afd.js +1017 -0
- package/dist/esm/downloadUtils-63661805.js +2761 -0
- package/dist/esm/edit-card_2.entry.js +345 -345
- package/dist/esm/el-f09fdec6.js +60 -0
- package/dist/esm/en-au-90087aa5.js +60 -0
- package/dist/esm/en-ca-10751695.js +59 -0
- package/dist/esm/en-gb-0f8547bd.js +63 -0
- package/dist/esm/es-b0997cf1.js +60 -0
- package/dist/esm/es-mx-226f5028.js +59 -0
- package/dist/esm/et-dc96c453.js +86 -0
- package/dist/esm/fi-0941704d.js +109 -0
- package/dist/esm/filter-1cac3edf.js +763 -0
- package/dist/esm/floating-ui-d28d0fd6.js +1880 -0
- package/dist/esm/focusTrapComponent-ff3a9f28.js +1004 -0
- package/dist/esm/form-11c6a015.js +280 -0
- package/dist/esm/fr-8da3458d.js +62 -0
- package/dist/esm/fr-ch-739ceddf.js +60 -0
- package/dist/esm/he-8b662dfa.js +99 -0
- package/dist/esm/hi-10996f89.js +59 -0
- package/dist/esm/hr-42c2024d.js +74 -0
- package/dist/esm/hu-4768b3ff.js +82 -0
- package/dist/esm/id-24a08170.js +60 -0
- package/dist/esm/index-b5d9d795.js +1904 -0
- package/dist/esm/index-b91c174c.js +199 -0
- package/dist/esm/index.es-3a3aa8e3.js +10722 -0
- package/dist/esm/interfaces-5a2fe8b4.js +85 -0
- package/dist/esm/it-ad09649f.js +60 -0
- package/dist/esm/it-ch-b05fc10d.js +60 -0
- package/dist/esm/ja-ab839b73.js +66 -0
- package/dist/esm/ko-c778539e.js +66 -0
- package/dist/esm/label-6a1caf64.js +130 -0
- package/dist/esm/list-item.entry.js +60 -60
- package/dist/esm/loadModules-2ecd1e44.js +28 -0
- package/dist/esm/loadable-6bca96ad.js +89 -0
- package/dist/esm/loader.js +6 -15
- package/dist/esm/locale-aa3de591.js +412 -0
- package/dist/esm/locale-d8561d54.js +592 -0
- package/dist/esm/lt-447d9aa9.js +91 -0
- package/dist/esm/lv-4d715e11.js +60 -0
- package/dist/esm/map-select-tools_3.entry.js +1285 -1285
- package/dist/esm/mapViewUtils-f0c04325.js +395 -0
- package/dist/esm/mk-b3d7401a.js +60 -0
- package/dist/esm/nb-2b4a8366.js +61 -0
- package/dist/esm/nl-c0db1da2.js +61 -0
- package/dist/esm/openCloseComponent-2b5c6bed.js +82 -0
- package/dist/esm/pci-calculator.entry.js +102 -102
- package/dist/esm/pciUtils-59c29b42.js +844 -0
- package/dist/esm/pl-0d322bb4.js +108 -0
- package/dist/esm/pt-5997598c.js +61 -0
- package/dist/esm/pt-br-6b77e7db.js +59 -0
- package/dist/esm/public-notification.entry.js +844 -844
- package/dist/esm/publicNotificationStore-ade82148.js +49 -0
- package/dist/esm/resources-40d8e06f.js +20 -0
- package/dist/esm/ro-ac3724e0.js +60 -0
- package/dist/esm/ru-4e75151f.js +120 -0
- package/dist/esm/shared-list-render-abd19c8d.js +342 -0
- package/dist/esm/sk-bbfa22a3.js +142 -0
- package/dist/esm/sl-867cecfc.js +60 -0
- package/dist/esm/solution-configuration.entry.js +888 -888
- package/dist/esm/solution-contents_3.entry.js +21506 -21506
- package/dist/esm/solution-store-46bc46a5.js +4092 -0
- package/dist/esm/solutions-components.js +6 -6
- package/dist/esm/sortableComponent-db502e97.js +3109 -0
- package/dist/esm/sr-198b5c00.js +95 -0
- package/dist/esm/store-manager.entry.js +52 -52
- package/dist/esm/sv-02d64370.js +65 -0
- package/dist/esm/t9n-76168237.js +95 -0
- package/dist/esm/th-1616e303.js +59 -0
- package/dist/esm/throttle-9ab70933.js +73 -0
- package/dist/esm/time-6721a4c2.js +195 -0
- package/dist/esm/tr-f4619f64.js +60 -0
- package/dist/esm/uk-df7df34a.js +98 -0
- package/dist/esm/utils-ccfd94a7.js +45 -0
- package/dist/esm/utils-f54411df.js +61 -0
- package/dist/esm/vi-176ca9f7.js +64 -0
- package/dist/esm/zh-cn-e13d83d1.js +88 -0
- package/dist/esm/zh-hk-d97365d8.js +65 -0
- package/dist/esm/zh-tw-a2b6f0b7.js +86 -0
- package/dist/loader/index.d.ts +2 -2
- package/dist/solutions-components/demos/crowdsource-manager.html +3 -3
- package/dist/solutions-components/p-022a9b7a.js +6 -0
- package/dist/solutions-components/p-03fccde6.entry.js +11 -0
- package/dist/solutions-components/p-052ff2c7.js +6 -0
- package/dist/solutions-components/p-05db4340.js +6 -0
- package/dist/solutions-components/p-07bc4f07.entry.js +11 -0
- package/dist/solutions-components/p-0cc32f06.js +6 -0
- package/dist/solutions-components/p-0e7914e6.entry.js +11 -0
- package/dist/solutions-components/p-0ece6df1.entry.js +12 -0
- package/dist/solutions-components/p-0f8440bb.entry.js +6 -0
- package/dist/solutions-components/p-0fbc27fd.entry.js +11 -0
- package/dist/solutions-components/p-10248e04.js +11 -0
- package/dist/solutions-components/p-108fbf59.entry.js +6 -0
- package/dist/solutions-components/p-12a4fa84.js +6 -0
- package/dist/solutions-components/p-13290851.js +259 -0
- package/dist/solutions-components/p-15ef7894.js +6 -0
- package/dist/solutions-components/p-164be8ef.entry.js +6 -0
- package/dist/solutions-components/p-19fe7725.js +6 -0
- package/dist/solutions-components/p-1add4e39.entry.js +11 -0
- package/dist/solutions-components/p-1ea1dcac.js +61 -0
- package/dist/solutions-components/p-1ede2e18.js +11 -0
- package/dist/solutions-components/p-2005280f.js +11 -0
- package/dist/solutions-components/p-216801d5.js +6 -0
- package/dist/solutions-components/p-21f00df6.js +6 -0
- package/dist/solutions-components/p-22d580b0.entry.js +11 -0
- package/dist/solutions-components/p-2656168f.entry.js +11 -0
- package/dist/solutions-components/p-27a1ac1f.entry.js +17 -0
- package/dist/solutions-components/p-28d2670f.entry.js +6 -0
- package/dist/solutions-components/p-29d41c7e.js +11 -0
- package/dist/solutions-components/p-2ae17fa2.js +6 -0
- package/dist/solutions-components/p-2b252afd.entry.js +6 -0
- package/dist/solutions-components/p-2b96e551.entry.js +11 -0
- package/dist/solutions-components/p-2c0dc7b1.js +6 -0
- package/dist/solutions-components/p-2d70d3fd.js +12 -0
- package/dist/solutions-components/p-31316d61.entry.js +11 -0
- package/dist/solutions-components/p-31ff3452.entry.js +11 -0
- package/dist/solutions-components/p-326fa270.js +6 -0
- package/dist/solutions-components/p-32ef065d.entry.js +11 -0
- package/dist/solutions-components/p-32f9c709.js +6 -0
- package/dist/solutions-components/p-3445a8c6.js +21 -0
- package/dist/solutions-components/p-35123c90.js +6 -0
- package/dist/solutions-components/p-361f1fe1.js +11 -0
- package/dist/solutions-components/p-39ff5ee5.js +11 -0
- package/dist/solutions-components/p-3aba40e8.js +18 -0
- package/dist/solutions-components/p-3bd99fc9.js +11 -0
- package/dist/solutions-components/p-3cbe5ef3.js +6 -0
- package/dist/solutions-components/p-3cce003d.js +27 -0
- package/dist/solutions-components/p-3e139360.js +6 -0
- package/dist/solutions-components/p-3f0193e9.js +6 -0
- package/dist/solutions-components/p-418d0b60.entry.js +6 -0
- package/dist/solutions-components/p-421d5e7c.js +6 -0
- package/dist/solutions-components/p-42c7a5fa.entry.js +11 -0
- package/dist/solutions-components/p-46d5970b.entry.js +37 -0
- package/dist/solutions-components/p-4b95d05e.entry.js +6 -0
- package/dist/solutions-components/p-4bc7b875.entry.js +11 -0
- package/dist/solutions-components/p-4c43820f.entry.js +6 -0
- package/dist/solutions-components/p-4d17943f.js +6 -0
- package/dist/solutions-components/p-4daae757.js +6 -0
- package/dist/solutions-components/p-4e4b55b9.entry.js +37 -0
- package/dist/solutions-components/p-4f0c3fc1.js +6 -0
- package/dist/solutions-components/p-525f1188.js +11 -0
- package/dist/solutions-components/p-5383607a.js +22 -0
- package/dist/solutions-components/p-541697d0.js +11 -0
- package/dist/solutions-components/p-55aefaa8.entry.js +6 -0
- package/dist/solutions-components/p-56300653.js +16 -0
- package/dist/solutions-components/p-57c08531.entry.js +6 -0
- package/dist/solutions-components/p-5adf37ea.entry.js +12 -0
- package/dist/solutions-components/p-5b5a6ac8.entry.js +6 -0
- package/dist/solutions-components/p-5b9b1cbb.entry.js +11 -0
- package/dist/solutions-components/p-5c097e25.entry.js +11 -0
- package/dist/solutions-components/p-5e59219b.entry.js +6 -0
- package/dist/solutions-components/p-5f5c371e.js +6 -0
- package/dist/solutions-components/p-606ca126.js +6 -0
- package/dist/solutions-components/p-634e1240.js +6 -0
- package/dist/solutions-components/p-639cca97.js +6 -0
- package/dist/solutions-components/p-6431fd69.js +11 -0
- package/dist/solutions-components/p-647a4130.js +16 -0
- package/dist/solutions-components/p-6665fa1f.js +6 -0
- package/dist/solutions-components/p-67ce3c0c.entry.js +11 -0
- package/dist/solutions-components/p-680d193d.entry.js +11 -0
- package/dist/solutions-components/p-6a524392.entry.js +11 -0
- package/dist/solutions-components/p-6a820c4d.js +6 -0
- package/dist/solutions-components/p-6b2f2b85.js +17 -0
- package/dist/solutions-components/p-6de98c51.js +21 -0
- package/dist/solutions-components/p-754e2df2.js +6 -0
- package/dist/solutions-components/p-75f26870.js +474 -0
- package/dist/solutions-components/p-7601988d.entry.js +11 -0
- package/dist/solutions-components/p-761a033a.entry.js +11 -0
- package/dist/solutions-components/p-7920b5a2.entry.js +11 -0
- package/dist/solutions-components/p-7aa949a3.entry.js +11 -0
- package/dist/solutions-components/p-7b90c18e.entry.js +6 -0
- package/dist/solutions-components/p-7b9adfff.js +6 -0
- package/dist/solutions-components/p-7c33e500.entry.js +6 -0
- package/dist/solutions-components/p-804e4751.entry.js +17 -0
- package/dist/solutions-components/p-82199b7b.entry.js +6 -0
- package/dist/solutions-components/p-825bac0e.js +6 -0
- package/dist/solutions-components/p-844ee452.entry.js +11 -0
- package/dist/solutions-components/p-8a758303.js +17 -0
- package/dist/solutions-components/p-90bbf223.entry.js +6 -0
- package/dist/solutions-components/p-916f90ec.entry.js +6 -0
- package/dist/solutions-components/p-91caf655.entry.js +11 -0
- package/dist/solutions-components/p-93074bd4.entry.js +11 -0
- package/dist/solutions-components/p-9310b882.js +7 -0
- package/dist/solutions-components/p-955a956a.entry.js +23 -0
- package/dist/solutions-components/p-9603c3ff.entry.js +11 -0
- package/dist/solutions-components/p-97c47bbd.entry.js +18 -0
- package/dist/solutions-components/p-9bbc05ff.js +11 -0
- package/dist/solutions-components/p-9cb94ea0.js +6 -0
- package/dist/solutions-components/p-9e727488.js +6 -0
- package/dist/solutions-components/p-9fb16c72.entry.js +35 -0
- package/dist/solutions-components/p-a040efff.js +6 -0
- package/dist/solutions-components/p-a08bd8c1.entry.js +6 -0
- package/dist/solutions-components/p-a0a2c53d.js +21 -0
- package/dist/solutions-components/p-a0edbb27.js +6 -0
- package/dist/solutions-components/p-a258f5e7.js +6 -0
- package/dist/solutions-components/p-a2748b38.entry.js +6 -0
- package/dist/solutions-components/p-a6900100.entry.js +11 -0
- package/dist/solutions-components/p-a6c85bd7.entry.js +6 -0
- package/dist/solutions-components/p-a775ba2f.entry.js +11 -0
- package/dist/solutions-components/p-a777b18c.js +11 -0
- package/dist/solutions-components/p-a82f35c9.js +6 -0
- package/dist/solutions-components/p-a843af2a.js +6 -0
- package/dist/solutions-components/p-ab8f5c6b.entry.js +11 -0
- package/dist/solutions-components/p-abda8ca2.entry.js +11 -0
- package/dist/solutions-components/p-ad4d6d02.entry.js +22 -0
- package/dist/solutions-components/p-ad72a379.entry.js +16 -0
- package/dist/solutions-components/p-aeebdb15.js +6 -0
- package/dist/solutions-components/p-b0c4138f.entry.js +11 -0
- package/dist/solutions-components/p-b1f84ae5.js +6 -0
- package/dist/solutions-components/p-b2e6c578.js +6 -0
- package/dist/solutions-components/p-b4157e6a.js +6 -0
- package/dist/solutions-components/p-b49bdc72.entry.js +6 -0
- package/dist/solutions-components/p-b5d67495.entry.js +11 -0
- package/dist/solutions-components/p-b6578a32.js +6 -0
- package/dist/solutions-components/p-b684bbc7.entry.js +6 -0
- package/dist/solutions-components/p-b86b4512.entry.js +11 -0
- package/dist/solutions-components/p-b948ecd2.entry.js +11 -0
- package/dist/solutions-components/p-baccfd70.entry.js +6 -0
- package/dist/solutions-components/p-bba3fa4e.entry.js +11 -0
- package/dist/solutions-components/p-bbb0d957.entry.js +6 -0
- package/dist/solutions-components/p-bd3a3afe.js +6 -0
- package/dist/solutions-components/p-bf9e18d4.js +8 -0
- package/dist/solutions-components/p-c07af9c2.entry.js +11 -0
- package/dist/solutions-components/p-c1ee0d69.js +11 -0
- package/dist/solutions-components/p-c3f8b670.js +6 -0
- package/dist/solutions-components/p-c5e294e4.js +6 -0
- package/dist/solutions-components/p-c6d83122.entry.js +11 -0
- package/dist/solutions-components/p-c70392c4.entry.js +6 -0
- package/dist/solutions-components/p-c9858d8f.entry.js +11 -0
- package/dist/solutions-components/p-cad5587c.entry.js +35 -0
- package/dist/solutions-components/p-cf1af08f.entry.js +6 -0
- package/dist/solutions-components/p-cf43278c.entry.js +11 -0
- package/dist/solutions-components/p-d3a22725.js +6 -0
- package/dist/solutions-components/p-d62784a4.js +11 -0
- package/dist/solutions-components/p-d6322e4b.js +6 -0
- package/dist/solutions-components/p-dc9dad31.entry.js +6 -0
- package/dist/solutions-components/p-de58bd49.js +6 -0
- package/dist/solutions-components/p-de59d2f5.js +6 -0
- package/dist/solutions-components/p-e02fcfa9.entry.js +12 -0
- package/dist/solutions-components/p-e07b8a72.entry.js +11 -0
- package/dist/solutions-components/p-e10a62f4.entry.js +11 -0
- package/dist/solutions-components/p-e4253e1b.entry.js +6 -0
- package/dist/solutions-components/p-e645edf2.entry.js +6 -0
- package/dist/solutions-components/p-e6bee82f.js +6 -0
- package/dist/solutions-components/p-ea282908.js +6 -0
- package/dist/solutions-components/p-ee066c67.js +16 -0
- package/dist/solutions-components/p-ef48bd77.entry.js +17 -0
- package/dist/solutions-components/p-ef96894d.entry.js +23 -0
- package/dist/solutions-components/p-f28d69ac.entry.js +11 -0
- package/dist/solutions-components/p-f41105c8.js +6 -0
- package/dist/solutions-components/p-f8dd2784.js +36 -0
- package/dist/solutions-components/p-ffac6f88.entry.js +6 -0
- package/dist/solutions-components/solutions-components.esm.js +1 -1
- package/dist/solutions-components/utils/interfaces.ts +2 -0
- package/dist/types/components/basemap-gallery/basemap-gallery.d.ts +64 -0
- package/dist/types/components/buffer-tools/buffer-tools.d.ts +170 -170
- package/dist/types/components/card-manager/card-manager.d.ts +70 -70
- package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +182 -174
- package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +26 -26
- package/dist/types/components/deduct-calculator/deduct-calculator.d.ts +90 -90
- package/dist/types/components/edit-card/edit-card.d.ts +140 -140
- package/dist/types/components/info-card/info-card.d.ts +143 -143
- package/dist/types/components/json-editor/json-editor.d.ts +229 -229
- package/dist/types/components/layer-table/layer-table.d.ts +298 -276
- package/dist/types/components/layout-manager/layout-manager.d.ts +69 -69
- package/dist/types/components/list-item/list-item.d.ts +26 -26
- package/dist/types/components/map-card/map-card.d.ts +91 -83
- package/dist/types/components/map-draw-tools/map-draw-tools.d.ts +231 -231
- package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +160 -160
- package/dist/types/components/map-picker/map-picker.d.ts +109 -109
- package/dist/types/components/map-search/map-search.d.ts +107 -0
- package/dist/types/components/map-select-tools/map-select-tools.d.ts +469 -469
- package/dist/types/components/map-tools/map-tools.d.ts +167 -104
- package/dist/types/components/pci-calculator/pci-calculator.d.ts +71 -71
- package/dist/types/components/pdf-download/pdf-download.d.ts +101 -101
- package/dist/types/components/public-notification/public-notification.d.ts +610 -610
- package/dist/types/components/refine-selection/refine-selection.d.ts +234 -234
- package/dist/types/components/solution-configuration/solution-configuration.d.ts +205 -205
- package/dist/types/components/solution-contents/solution-contents.d.ts +46 -46
- package/dist/types/components/solution-item/solution-item.d.ts +71 -71
- package/dist/types/components/solution-item-details/solution-item-details.d.ts +100 -100
- package/dist/types/components/solution-item-icon/solution-item-icon.d.ts +44 -44
- package/dist/types/components/solution-item-sharing/solution-item-sharing.d.ts +62 -62
- package/dist/types/components/solution-organization-variables/solution-organization-variables.d.ts +63 -63
- package/dist/types/components/solution-resource-item/solution-resource-item.d.ts +144 -144
- package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +180 -180
- package/dist/types/components/solution-spatial-ref/spatialreferences.d.ts +17 -17
- package/dist/types/components/solution-template-data/solution-template-data.d.ts +72 -72
- package/dist/types/components/solution-variables/solution-variables.d.ts +69 -69
- package/dist/types/components/store-manager/store-manager.d.ts +55 -55
- package/dist/types/components.d.ts +124 -0
- package/dist/types/index.d.ts +16 -16
- package/dist/types/preact.d.ts +4 -0
- package/dist/types/stencil-public-runtime.d.ts +29 -14
- package/dist/types/utils/common.d.ts +49 -49
- package/dist/types/utils/csvDownload.d.ts +24 -24
- package/dist/types/utils/csvUtils.d.ts +22 -22
- package/dist/types/utils/downloadUtils.d.ts +118 -118
- package/dist/types/utils/interfaces.d.ts +400 -398
- package/dist/types/utils/languageUtil.d.ts +11 -11
- package/dist/types/utils/loadModules.d.ts +17 -17
- package/dist/types/utils/locale.d.ts +22 -22
- package/dist/types/utils/mapViewUtils.d.ts +124 -124
- package/dist/types/utils/pciUtils.d.ts +97 -97
- package/dist/types/utils/pdfUtils.d.ts +27 -27
- package/dist/types/utils/publicNotificationStore.d.ts +24 -24
- package/dist/types/utils/queryUtils.d.ts +95 -95
- package/dist/types/utils/solution-store.d.ts +234 -234
- package/dist/types/utils/templates.d.ts +50 -50
- package/dist/types/utils/test/mocks/jsApi.d.ts +59 -59
- package/dist/types/utils/test/testUtils.d.ts +36 -36
- package/dist/types/utils/types.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/ExpandToggle-70890ae0.js +0 -117
- package/dist/cjs/FloatingArrow-4ca06439.js +0 -48
- package/dist/cjs/Heading-c5c71fc5.js +0 -25
- package/dist/cjs/app-globals-a34c0991.js +0 -64
- package/dist/cjs/ar-fa16156d.js +0 -97
- package/dist/cjs/bg-b39e773e.js +0 -78
- package/dist/cjs/bs-4579ea2a.js +0 -47
- package/dist/cjs/ca-f3f64686.js +0 -67
- package/dist/cjs/calcite-input-time-picker-6f38ef8c.js +0 -1718
- package/dist/cjs/conditionalSlot-a51326e7.js +0 -63
- package/dist/cjs/cs-1bcd5b46.js +0 -143
- package/dist/cjs/da-30ee21db.js +0 -62
- package/dist/cjs/date-f6611a19.js +0 -250
- package/dist/cjs/de-42aae5ad.js +0 -87
- package/dist/cjs/de-at-a3a6f020.js +0 -86
- package/dist/cjs/de-ch-36c13310.js +0 -86
- package/dist/cjs/dom-d529bae8.js +0 -1046
- package/dist/cjs/downloadUtils-6eb59363.js +0 -2767
- package/dist/cjs/el-90d066ae.js +0 -62
- package/dist/cjs/en-au-685b882b.js +0 -62
- package/dist/cjs/en-ca-ff4bc403.js +0 -61
- package/dist/cjs/en-gb-2f5587ad.js +0 -65
- package/dist/cjs/es-e9183ca0.js +0 -62
- package/dist/cjs/es-mx-dcc9afb2.js +0 -61
- package/dist/cjs/et-a18949ea.js +0 -88
- package/dist/cjs/fi-1ce00d38.js +0 -111
- package/dist/cjs/filter-494bf35e.js +0 -765
- package/dist/cjs/floating-ui-7d6e57d3.js +0 -1888
- package/dist/cjs/focusTrapComponent-0c4d7671.js +0 -1009
- package/dist/cjs/form-bcf49eae.js +0 -288
- package/dist/cjs/fr-a9435a19.js +0 -64
- package/dist/cjs/fr-ch-51efa9bf.js +0 -62
- package/dist/cjs/he-c5dccfa2.js +0 -101
- package/dist/cjs/hi-0898e7f2.js +0 -61
- package/dist/cjs/hr-68f7d8da.js +0 -76
- package/dist/cjs/hu-e494037d.js +0 -84
- package/dist/cjs/id-bef40c1c.js +0 -62
- package/dist/cjs/index-6654298b.js +0 -1796
- package/dist/cjs/index-e1b1954f.js +0 -201
- package/dist/cjs/index.es-d9b5d3a5.js +0 -10808
- package/dist/cjs/interfaces-ad03ec39.js +0 -85
- package/dist/cjs/it-1144ca67.js +0 -62
- package/dist/cjs/it-ch-2c14dca7.js +0 -62
- package/dist/cjs/ja-caad9809.js +0 -68
- package/dist/cjs/ko-ddec9054.js +0 -68
- package/dist/cjs/label-215c4af3.js +0 -136
- package/dist/cjs/loadModules-ae7715f2.js +0 -30
- package/dist/cjs/loadable-6da743c6.js +0 -94
- package/dist/cjs/locale-477d8d51.js +0 -604
- package/dist/cjs/locale-b113c6b2.js +0 -416
- package/dist/cjs/lt-205a1aa6.js +0 -93
- package/dist/cjs/lv-3ba82f9b.js +0 -62
- package/dist/cjs/map-picker_2.cjs.entry.js +0 -264
- package/dist/cjs/mapViewUtils-77a1ff88.js +0 -411
- package/dist/cjs/mk-069ea86a.js +0 -62
- package/dist/cjs/nb-9e9c934f.js +0 -63
- package/dist/cjs/nl-5dd0116f.js +0 -63
- package/dist/cjs/openCloseComponent-3fa18210.js +0 -84
- package/dist/cjs/pciUtils-423cfc68.js +0 -847
- package/dist/cjs/pl-74e70b37.js +0 -110
- package/dist/cjs/pt-br-0f76e430.js +0 -61
- package/dist/cjs/pt-cc737fcc.js +0 -63
- package/dist/cjs/publicNotificationStore-ec1bdd2d.js +0 -51
- package/dist/cjs/ro-5e396753.js +0 -62
- package/dist/cjs/ru-f7371aca.js +0 -122
- package/dist/cjs/shared-list-render-76c5dc25.js +0 -364
- package/dist/cjs/sk-ec02498f.js +0 -144
- package/dist/cjs/sl-8363f4d7.js +0 -62
- package/dist/cjs/solution-store-bd956f06.js +0 -4100
- package/dist/cjs/sortableComponent-8135ea87.js +0 -3112
- package/dist/cjs/sr-b0f92cb1.js +0 -97
- package/dist/cjs/sv-e2c27fff.js +0 -67
- package/dist/cjs/t9n-8be30efb.js +0 -100
- package/dist/cjs/th-8a6dc2cc.js +0 -61
- package/dist/cjs/throttle-8ee74c77.js +0 -75
- package/dist/cjs/time-9004df7e.js +0 -208
- package/dist/cjs/tr-09137435.js +0 -62
- package/dist/cjs/uk-c30401f4.js +0 -100
- package/dist/cjs/utils-ed4e5028.js +0 -55
- package/dist/cjs/utils-fb81c6b3.js +0 -64
- package/dist/cjs/vi-e069c9e4.js +0 -66
- package/dist/cjs/zh-cn-50f223a8.js +0 -90
- package/dist/cjs/zh-hk-5498073d.js +0 -67
- package/dist/cjs/zh-tw-dfdb0ae8.js +0 -88
- package/dist/esm/ExpandToggle-3420fa39.js +0 -109
- package/dist/esm/FloatingArrow-cd8eafa4.js +0 -46
- package/dist/esm/Heading-1763134e.js +0 -22
- package/dist/esm/app-globals-580889bd.js +0 -62
- package/dist/esm/ar-ceb1b389.js +0 -95
- package/dist/esm/bg-a8824832.js +0 -76
- package/dist/esm/bs-5c2ca44f.js +0 -45
- package/dist/esm/ca-47f86073.js +0 -65
- package/dist/esm/calcite-input-time-picker-59a3ed66.js +0 -1715
- package/dist/esm/conditionalSlot-91396dd5.js +0 -60
- package/dist/esm/cs-f651c3cd.js +0 -141
- package/dist/esm/da-e32ccc0a.js +0 -60
- package/dist/esm/date-51fa981b.js +0 -235
- package/dist/esm/de-9b417aed.js +0 -85
- package/dist/esm/de-at-f73447e2.js +0 -84
- package/dist/esm/de-ch-7ec8c31e.js +0 -84
- package/dist/esm/dom-8a9e4ee8.js +0 -1017
- package/dist/esm/downloadUtils-43b53f5a.js +0 -2761
- package/dist/esm/el-9a3189a2.js +0 -60
- package/dist/esm/en-au-5aea3b73.js +0 -60
- package/dist/esm/en-ca-fe3e706b.js +0 -59
- package/dist/esm/en-gb-a4278000.js +0 -63
- package/dist/esm/es-383f9c9e.js +0 -60
- package/dist/esm/es-mx-7845b382.js +0 -59
- package/dist/esm/et-d8f8df06.js +0 -86
- package/dist/esm/fi-14894338.js +0 -109
- package/dist/esm/filter-bf34614b.js +0 -763
- package/dist/esm/floating-ui-9870f74c.js +0 -1880
- package/dist/esm/focusTrapComponent-34010d00.js +0 -1004
- package/dist/esm/form-6669a774.js +0 -280
- package/dist/esm/fr-6f570086.js +0 -62
- package/dist/esm/fr-ch-b9f89159.js +0 -60
- package/dist/esm/he-174aca6e.js +0 -99
- package/dist/esm/hi-7e469aab.js +0 -59
- package/dist/esm/hr-a4ac455a.js +0 -74
- package/dist/esm/hu-207da291.js +0 -82
- package/dist/esm/id-8e4d57bf.js +0 -60
- package/dist/esm/index-4c4a4f3d.js +0 -199
- package/dist/esm/index-d298aca9.js +0 -1762
- package/dist/esm/index.es-a185f2b1.js +0 -10722
- package/dist/esm/interfaces-bf20e69c.js +0 -85
- package/dist/esm/it-7ade952c.js +0 -60
- package/dist/esm/it-ch-181d76ab.js +0 -60
- package/dist/esm/ja-42013dd3.js +0 -66
- package/dist/esm/ko-8de07550.js +0 -66
- package/dist/esm/label-661d8e10.js +0 -130
- package/dist/esm/loadModules-cd3569de.js +0 -28
- package/dist/esm/loadable-08376d90.js +0 -89
- package/dist/esm/locale-54cac39a.js +0 -412
- package/dist/esm/locale-73d0926a.js +0 -592
- package/dist/esm/lt-1ef29b5b.js +0 -91
- package/dist/esm/lv-263a2f78.js +0 -60
- package/dist/esm/map-picker_2.entry.js +0 -259
- package/dist/esm/mapViewUtils-1e68cede.js +0 -395
- package/dist/esm/mk-d8bae136.js +0 -60
- package/dist/esm/nb-494542b3.js +0 -61
- package/dist/esm/nl-cd882d7f.js +0 -61
- package/dist/esm/openCloseComponent-a40fd6fd.js +0 -82
- package/dist/esm/pciUtils-ecda46e5.js +0 -844
- package/dist/esm/pl-b79095d5.js +0 -108
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm/pt-5ca0b751.js +0 -61
- package/dist/esm/pt-br-e1a1ce60.js +0 -59
- package/dist/esm/publicNotificationStore-6ef555f3.js +0 -49
- package/dist/esm/ro-5cbc0f2a.js +0 -60
- package/dist/esm/ru-e66f5b84.js +0 -120
- package/dist/esm/shared-list-render-5b788e63.js +0 -342
- package/dist/esm/sk-be2b5cec.js +0 -142
- package/dist/esm/sl-74600272.js +0 -60
- package/dist/esm/solution-store-c107ca4d.js +0 -4092
- package/dist/esm/sortableComponent-1dd8a4ae.js +0 -3109
- package/dist/esm/sr-58280ce5.js +0 -95
- package/dist/esm/sv-f0e2171a.js +0 -65
- package/dist/esm/t9n-745553e0.js +0 -95
- package/dist/esm/th-6c3eac31.js +0 -59
- package/dist/esm/throttle-26fa347b.js +0 -73
- package/dist/esm/time-7e3ba7c6.js +0 -195
- package/dist/esm/tr-092713ca.js +0 -60
- package/dist/esm/uk-95df0f95.js +0 -98
- package/dist/esm/utils-4f695ec2.js +0 -45
- package/dist/esm/utils-ddff4ef3.js +0 -61
- package/dist/esm/vi-70a9857c.js +0 -64
- package/dist/esm/zh-cn-e024ef2d.js +0 -88
- package/dist/esm/zh-hk-36ff9e8f.js +0 -65
- package/dist/esm/zh-tw-96ddb74c.js +0 -86
- package/dist/solutions-components/p-0056655c.js +0 -6
- package/dist/solutions-components/p-017265ef.entry.js +0 -23
- package/dist/solutions-components/p-017543d5.entry.js +0 -11
- package/dist/solutions-components/p-0209ed2e.js +0 -6
- package/dist/solutions-components/p-0245bb56.entry.js +0 -6
- package/dist/solutions-components/p-043ead99.entry.js +0 -6
- package/dist/solutions-components/p-048a2a6d.js +0 -6
- package/dist/solutions-components/p-050e12eb.entry.js +0 -12
- package/dist/solutions-components/p-06916de9.entry.js +0 -11
- package/dist/solutions-components/p-08320fb9.entry.js +0 -11
- package/dist/solutions-components/p-08e12eb0.js +0 -6
- package/dist/solutions-components/p-0a2c02fd.js +0 -6
- package/dist/solutions-components/p-0a4bc416.js +0 -6
- package/dist/solutions-components/p-0afa17dc.entry.js +0 -23
- package/dist/solutions-components/p-0b4eb6e4.entry.js +0 -11
- package/dist/solutions-components/p-0d900572.js +0 -6
- package/dist/solutions-components/p-0f4d3009.entry.js +0 -11
- package/dist/solutions-components/p-10181f33.entry.js +0 -6
- package/dist/solutions-components/p-105ef63c.entry.js +0 -17
- package/dist/solutions-components/p-11983a08.js +0 -6
- package/dist/solutions-components/p-1260db08.js +0 -61
- package/dist/solutions-components/p-129fcd0a.js +0 -6
- package/dist/solutions-components/p-13f7e487.js +0 -11
- package/dist/solutions-components/p-14769a01.js +0 -11
- package/dist/solutions-components/p-14a4ad77.entry.js +0 -11
- package/dist/solutions-components/p-15e67907.entry.js +0 -11
- package/dist/solutions-components/p-17799448.entry.js +0 -11
- package/dist/solutions-components/p-185a82e0.js +0 -17
- package/dist/solutions-components/p-191c59e9.js +0 -6
- package/dist/solutions-components/p-1b63bec9.entry.js +0 -11
- package/dist/solutions-components/p-1c810f4c.entry.js +0 -6
- package/dist/solutions-components/p-1d28ff09.entry.js +0 -11
- package/dist/solutions-components/p-1e30069a.entry.js +0 -6
- package/dist/solutions-components/p-1e63db11.entry.js +0 -6
- package/dist/solutions-components/p-20274226.entry.js +0 -6
- package/dist/solutions-components/p-2411f1f6.js +0 -6
- package/dist/solutions-components/p-2509b65f.entry.js +0 -22
- package/dist/solutions-components/p-25faeab6.js +0 -6
- package/dist/solutions-components/p-27f5bb4f.js +0 -36
- package/dist/solutions-components/p-2a0d8a46.entry.js +0 -11
- package/dist/solutions-components/p-2dea68b6.entry.js +0 -17
- package/dist/solutions-components/p-2ecd5cb7.js +0 -6
- package/dist/solutions-components/p-30dbc43d.entry.js +0 -11
- package/dist/solutions-components/p-32d821d1.entry.js +0 -37
- package/dist/solutions-components/p-3479d873.entry.js +0 -6
- package/dist/solutions-components/p-36d09c0c.entry.js +0 -35
- package/dist/solutions-components/p-375f0b74.js +0 -474
- package/dist/solutions-components/p-38b4873b.entry.js +0 -6
- package/dist/solutions-components/p-38d61356.js +0 -18
- package/dist/solutions-components/p-3a7156b8.entry.js +0 -6
- package/dist/solutions-components/p-3b041268.js +0 -6
- package/dist/solutions-components/p-3ca9bb95.js +0 -6
- package/dist/solutions-components/p-3e5c8b2f.js +0 -6
- package/dist/solutions-components/p-3ee6af74.js +0 -11
- package/dist/solutions-components/p-3eecbcf0.entry.js +0 -18
- package/dist/solutions-components/p-40432de5.entry.js +0 -11
- package/dist/solutions-components/p-4058733e.entry.js +0 -11
- package/dist/solutions-components/p-4152fae0.js +0 -6
- package/dist/solutions-components/p-4321edfc.js +0 -6
- package/dist/solutions-components/p-4344b6ca.entry.js +0 -11
- package/dist/solutions-components/p-44e26e37.js +0 -6
- package/dist/solutions-components/p-477ae127.js +0 -21
- package/dist/solutions-components/p-4c8b1179.js +0 -6
- package/dist/solutions-components/p-4e32bf8c.js +0 -6
- package/dist/solutions-components/p-4e93132b.entry.js +0 -6
- package/dist/solutions-components/p-4ea79dc4.entry.js +0 -11
- package/dist/solutions-components/p-4f51db32.js +0 -6
- package/dist/solutions-components/p-4f64d786.js +0 -6
- package/dist/solutions-components/p-4ff653eb.js +0 -6
- package/dist/solutions-components/p-53347add.js +0 -6
- package/dist/solutions-components/p-54fce798.js +0 -11
- package/dist/solutions-components/p-573d282b.entry.js +0 -11
- package/dist/solutions-components/p-58340eba.js +0 -6
- package/dist/solutions-components/p-5930cd6d.entry.js +0 -6
- package/dist/solutions-components/p-5fc99541.js +0 -257
- package/dist/solutions-components/p-6071078a.entry.js +0 -6
- package/dist/solutions-components/p-69863a28.entry.js +0 -6
- package/dist/solutions-components/p-699031c9.entry.js +0 -11
- package/dist/solutions-components/p-6998e886.entry.js +0 -11
- package/dist/solutions-components/p-6a813a31.entry.js +0 -6
- package/dist/solutions-components/p-6b12b5eb.entry.js +0 -16
- package/dist/solutions-components/p-6e89e9dd.js +0 -6
- package/dist/solutions-components/p-705b7f81.entry.js +0 -12
- package/dist/solutions-components/p-75578ebf.entry.js +0 -6
- package/dist/solutions-components/p-7c72df3c.js +0 -22
- package/dist/solutions-components/p-7ca47589.entry.js +0 -11
- package/dist/solutions-components/p-7cb8a4db.js +0 -6
- package/dist/solutions-components/p-7cc13b24.js +0 -8
- package/dist/solutions-components/p-8008b2fe.entry.js +0 -6
- package/dist/solutions-components/p-81531fbe.entry.js +0 -11
- package/dist/solutions-components/p-81627211.entry.js +0 -11
- package/dist/solutions-components/p-8aa806fe.js +0 -12
- package/dist/solutions-components/p-8ae8b789.js +0 -6
- package/dist/solutions-components/p-8b1236bf.js +0 -6
- package/dist/solutions-components/p-8b14f9aa.js +0 -16
- package/dist/solutions-components/p-8b4e79fd.js +0 -16
- package/dist/solutions-components/p-8bc91d5b.entry.js +0 -11
- package/dist/solutions-components/p-8df0c98c.entry.js +0 -35
- package/dist/solutions-components/p-953cf07a.entry.js +0 -6
- package/dist/solutions-components/p-95cf8aa0.entry.js +0 -11
- package/dist/solutions-components/p-99ece5e1.js +0 -11
- package/dist/solutions-components/p-9a2a551d.js +0 -6
- package/dist/solutions-components/p-9b43b4cf.js +0 -11
- package/dist/solutions-components/p-9f922d49.js +0 -11
- package/dist/solutions-components/p-9fb09c2c.js +0 -11
- package/dist/solutions-components/p-a0e50ea6.entry.js +0 -6
- package/dist/solutions-components/p-a1154bb5.entry.js +0 -11
- package/dist/solutions-components/p-a709a84a.js +0 -11
- package/dist/solutions-components/p-a99832c1.js +0 -27
- package/dist/solutions-components/p-ad41cd27.entry.js +0 -6
- package/dist/solutions-components/p-ad962e25.js +0 -6
- package/dist/solutions-components/p-ae1459ed.entry.js +0 -6
- package/dist/solutions-components/p-af9510a4.entry.js +0 -6
- package/dist/solutions-components/p-afc462f0.js +0 -6
- package/dist/solutions-components/p-b02a2b2f.js +0 -11
- package/dist/solutions-components/p-b0eb13a1.js +0 -6
- package/dist/solutions-components/p-b1228e6c.entry.js +0 -11
- package/dist/solutions-components/p-b1ff9f2e.entry.js +0 -11
- package/dist/solutions-components/p-b20bf7b7.entry.js +0 -6
- package/dist/solutions-components/p-b361af64.entry.js +0 -11
- package/dist/solutions-components/p-b4a6abe2.js +0 -11
- package/dist/solutions-components/p-b68b17b6.entry.js +0 -37
- package/dist/solutions-components/p-b73e9c4d.js +0 -6
- package/dist/solutions-components/p-b9111e12.js +0 -6
- package/dist/solutions-components/p-b9653a1e.js +0 -6
- package/dist/solutions-components/p-b9fa9ca9.js +0 -6
- package/dist/solutions-components/p-ba9bb2ba.entry.js +0 -11
- package/dist/solutions-components/p-bc35e445.entry.js +0 -6
- package/dist/solutions-components/p-bccc74a8.js +0 -6
- package/dist/solutions-components/p-bd213033.entry.js +0 -6
- package/dist/solutions-components/p-c0dc792a.entry.js +0 -11
- package/dist/solutions-components/p-c16e540d.js +0 -6
- package/dist/solutions-components/p-c35b219b.entry.js +0 -11
- package/dist/solutions-components/p-c38c0612.entry.js +0 -11
- package/dist/solutions-components/p-c8c3554b.js +0 -17
- package/dist/solutions-components/p-cbebdffa.js +0 -6
- package/dist/solutions-components/p-cbf52aa2.entry.js +0 -11
- package/dist/solutions-components/p-ce21ee76.js +0 -6
- package/dist/solutions-components/p-ce3e73ae.entry.js +0 -6
- package/dist/solutions-components/p-cf14e2f3.js +0 -6
- package/dist/solutions-components/p-cfebc45c.entry.js +0 -11
- package/dist/solutions-components/p-d15a4f36.entry.js +0 -11
- package/dist/solutions-components/p-d3550542.js +0 -6
- package/dist/solutions-components/p-d3dceabd.entry.js +0 -11
- package/dist/solutions-components/p-d43c1fc8.entry.js +0 -11
- package/dist/solutions-components/p-d7ddd3a2.js +0 -21
- package/dist/solutions-components/p-d841cb8b.js +0 -6
- package/dist/solutions-components/p-d9868bac.js +0 -6
- package/dist/solutions-components/p-dc94bec2.js +0 -6
- package/dist/solutions-components/p-dd0f8875.js +0 -6
- package/dist/solutions-components/p-dec7b660.js +0 -11
- package/dist/solutions-components/p-deca8a07.js +0 -6
- package/dist/solutions-components/p-df5ec082.entry.js +0 -11
- package/dist/solutions-components/p-e046f728.js +0 -6
- package/dist/solutions-components/p-e27ce6d2.entry.js +0 -11
- package/dist/solutions-components/p-e2abc969.js +0 -6
- package/dist/solutions-components/p-e3f9e213.js +0 -6
- package/dist/solutions-components/p-e43839a8.entry.js +0 -11
- package/dist/solutions-components/p-e4d5188b.entry.js +0 -6
- package/dist/solutions-components/p-e666c0d6.entry.js +0 -6
- package/dist/solutions-components/p-e6c20791.js +0 -11
- package/dist/solutions-components/p-ec4c8dc3.js +0 -11
- package/dist/solutions-components/p-ef34c9e2.entry.js +0 -11
- package/dist/solutions-components/p-f346f8ab.js +0 -11
- package/dist/solutions-components/p-f780ecc1.entry.js +0 -11
- package/dist/solutions-components/p-f8be5d5f.js +0 -7
- package/dist/solutions-components/p-f9a56d6b.entry.js +0 -6
- package/dist/solutions-components/p-f9b9b211.entry.js +0 -12
- package/dist/solutions-components/p-fc2277fe.js +0 -21
- package/dist/solutions-components/p-fd65b14d.entry.js +0 -6
- package/dist/solutions-components/p-fe0e8542.entry.js +0 -17
- /package/dist/cjs/{array-51e7da8f.js → array-46bb7df1.js} +0 -0
- /package/dist/cjs/{debounce-69c3bada.js → debounce-30afab47.js} +0 -0
- /package/dist/cjs/{guid-ca85ade0.js → guid-3abe3cc6.js} +0 -0
- /package/dist/cjs/{html2canvas-770c1171.js → html2canvas-34208bbf.js} +0 -0
- /package/dist/cjs/{interactive-4e212b36.js → interactive-2fe0f43a.js} +0 -0
- /package/dist/cjs/{key-b32a6438.js → key-b8b55ea3.js} +0 -0
- /package/dist/cjs/{math-ef14a84a.js → math-5132d9bd.js} +0 -0
- /package/dist/cjs/{observers-20fe6f01.js → observers-f5fa975b.js} +0 -0
- /package/dist/cjs/{purify-5389d8d6.js → purify-f8c3e427.js} +0 -0
- /package/dist/cjs/{resources-1d2258a1.js → resources-2901b608.js} +0 -0
- /package/dist/cjs/{resources-a7e3371d.js → resources-4da89742.js} +0 -0
- /package/dist/cjs/{resources-7c9bff85.js → resources-60c27547.js} +0 -0
- /package/dist/cjs/{resources-b4b4b4fe.js → resources-77713c2e.js} +0 -0
- /package/dist/cjs/{resources-b176fc52.js → resources-8233a151.js} +0 -0
- /package/dist/cjs/{resources-f13e2605.js → resources-91409a5d.js} +0 -0
- /package/dist/cjs/{resources-9dcbf30f.js → resources-9f2b33ee.js} +0 -0
- /package/dist/cjs/{resources-f3e30b7b.js → resources-c913200c.js} +0 -0
- /package/dist/cjs/{resources-c6f066a4.js → resources-e1258e8a.js} +0 -0
- /package/dist/cjs/{utils-662561ad.js → utils-bae432a9.js} +0 -0
- /package/dist/cjs/{utils-8a0f3e68.js → utils-cd14113f.js} +0 -0
- /package/dist/{esm/resources-b5267429.js → components/resources4.js} +0 -0
- /package/dist/esm/{array-4a653f59.js → array-751a2b87.js} +0 -0
- /package/dist/esm/{debounce-4c884e5c.js → debounce-229b1a22.js} +0 -0
- /package/dist/esm/{guid-1608fd71.js → guid-2bbb8cd1.js} +0 -0
- /package/dist/esm/{html2canvas-12c862c8.js → html2canvas-a0a4df55.js} +0 -0
- /package/dist/esm/{interactive-0733ee76.js → interactive-eaf4be29.js} +0 -0
- /package/dist/esm/{key-97b504af.js → key-7a525416.js} +0 -0
- /package/dist/esm/{math-e006358c.js → math-5f92f517.js} +0 -0
- /package/dist/esm/{observers-67bdf9e5.js → observers-9d66685a.js} +0 -0
- /package/dist/esm/{purify-75c61cf7.js → purify-c99d2ace.js} +0 -0
- /package/dist/esm/{resources-913009ae.js → resources-58d30a0f.js} +0 -0
- /package/dist/esm/{resources-6be20fcc.js → resources-5bce3953.js} +0 -0
- /package/dist/esm/{resources-f97db74e.js → resources-94c47e64.js} +0 -0
- /package/dist/esm/{resources-43d63050.js → resources-a9b2d33c.js} +0 -0
- /package/dist/esm/{resources-34b761fa.js → resources-c253772f.js} +0 -0
- /package/dist/esm/{resources-6b7800e6.js → resources-c65f5654.js} +0 -0
- /package/dist/esm/{resources-01034dfa.js → resources-d6a4d343.js} +0 -0
- /package/dist/esm/{resources-5490ccf4.js → resources-dca3d475.js} +0 -0
- /package/dist/esm/{utils-dcd05f69.js → utils-18db6b1d.js} +0 -0
- /package/dist/esm/{utils-649c76ab.js → utils-2c91c963.js} +0 -0
- /package/dist/solutions-components/{p-5d25ba99.js → p-18869c0f.js} +0 -0
- /package/dist/solutions-components/{p-43ebe36a.js → p-18f1772b.js} +0 -0
- /package/dist/solutions-components/{p-76b83a13.js → p-1f468797.js} +0 -0
- /package/dist/solutions-components/{p-f93e6931.js → p-215d3505.js} +0 -0
- /package/dist/solutions-components/{p-0b32d4fe.js → p-2291b598.js} +0 -0
- /package/dist/solutions-components/{p-0630e686.js → p-283e3a2d.js} +0 -0
- /package/dist/solutions-components/{p-a963dd48.js → p-38ef0684.js} +0 -0
- /package/dist/solutions-components/{p-3adf63ca.js → p-3fc17d72.js} +0 -0
- /package/dist/solutions-components/{p-fb3ba11a.js → p-4805ff13.js} +0 -0
- /package/dist/solutions-components/{p-5242a652.js → p-58ce5639.js} +0 -0
- /package/dist/solutions-components/{p-203b16df.js → p-5961c4e0.js} +0 -0
- /package/dist/solutions-components/{p-cc815aca.js → p-63a0e9bf.js} +0 -0
- /package/dist/solutions-components/{p-d556b5c4.js → p-6f2edf5b.js} +0 -0
- /package/dist/solutions-components/{p-9ab03591.js → p-868df4a0.js} +0 -0
- /package/dist/solutions-components/{p-ff4afb7d.js → p-b9749e09.js} +0 -0
- /package/dist/solutions-components/{p-3b72043f.js → p-d4c103a8.js} +0 -0
- /package/dist/solutions-components/{p-7ac7b1a1.js → p-d554507d.js} +0 -0
- /package/dist/solutions-components/{p-0506e06f.js → p-f055a840.js} +0 -0
- /package/dist/solutions-components/{p-08ab045a.js → p-fb7e0054.js} +0 -0
|
@@ -7,773 +7,773 @@
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
9
|
|
|
10
|
-
const index = require('./index-
|
|
11
|
-
const loadModules = require('./loadModules-
|
|
12
|
-
const mapViewUtils = require('./mapViewUtils-
|
|
13
|
-
const interfaces = require('./interfaces-
|
|
14
|
-
const publicNotificationStore = require('./publicNotificationStore-
|
|
15
|
-
const locale = require('./locale-
|
|
16
|
-
const downloadUtils = require('./downloadUtils-
|
|
17
|
-
require('./index-
|
|
10
|
+
const index = require('./index-0e50040c.js');
|
|
11
|
+
const loadModules = require('./loadModules-31cab7ac.js');
|
|
12
|
+
const mapViewUtils = require('./mapViewUtils-9da2dddd.js');
|
|
13
|
+
const interfaces = require('./interfaces-d539e30c.js');
|
|
14
|
+
const publicNotificationStore = require('./publicNotificationStore-55edd658.js');
|
|
15
|
+
const locale = require('./locale-d15cd743.js');
|
|
16
|
+
const downloadUtils = require('./downloadUtils-a8c530f7.js');
|
|
17
|
+
require('./index-2b60e135.js');
|
|
18
18
|
require('./_commonjsHelpers-384729db.js');
|
|
19
19
|
|
|
20
20
|
const mapSelectToolsCss = ":host{display:block}.div-visible{display:inherit}.div-visible-search{display:flex;height:44px;align-items:center;padding-bottom:0}.div-not-visible{display:none}.padding-bottom-1{padding-bottom:1rem}.padding-top-1{padding-top:1rem}.search-widget{width:100% !important;border:1px solid var(--calcite-ui-border-input)}.w-100{width:100%}.w-50{width:50%}.search-distance-container{padding-top:\"1rem\" !important}.end-border{border-inline-end:1px solid var(--calcite-ui-border-2)}.search-distance{display:flex;padding-top:1rem}.font-bold{font:bold}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.tooltip-container{display:flex}.padding-start-1-2{padding-inline-start:0.5rem}.icon{--calcite-ui-icon-color:var(--calcite-ui-brand)}.tooltip-message{padding:5px 8px;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-2)}";
|
|
21
21
|
|
|
22
|
-
const MapSelectTools = class {
|
|
23
|
-
constructor(hostRef) {
|
|
24
|
-
index.registerInstance(this, hostRef);
|
|
25
|
-
this.selectionSetChange = index.createEvent(this, "selectionSetChange", 7);
|
|
26
|
-
/**
|
|
27
|
-
* number[]: the oids of the selected features
|
|
28
|
-
*/
|
|
29
|
-
this._selectedIds = [];
|
|
30
|
-
/**
|
|
31
|
-
* string: A label to help uniquely identify the selection set
|
|
32
|
-
*/
|
|
33
|
-
this._selectionLabel = "";
|
|
34
|
-
/**
|
|
35
|
-
* esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html
|
|
36
|
-
*/
|
|
37
|
-
this._graphics = [];
|
|
38
|
-
/**
|
|
39
|
-
* {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
|
|
40
|
-
*/
|
|
41
|
-
this._featuresCollection = {};
|
|
42
|
-
this.bufferColor = [227, 139, 79, 0.8];
|
|
43
|
-
this.bufferOutlineColor = [255, 255, 255];
|
|
44
|
-
this.customLabelEnabled = undefined;
|
|
45
|
-
this.enabledLayerIds = [];
|
|
46
|
-
this.defaultBufferDistance = undefined;
|
|
47
|
-
this.defaultBufferUnit = undefined;
|
|
48
|
-
this.geometries = [];
|
|
49
|
-
this.isUpdate = false;
|
|
50
|
-
this.layerViews = [];
|
|
51
|
-
this.mapView = undefined;
|
|
52
|
-
this.noResultText = undefined;
|
|
53
|
-
this.searchConfiguration = undefined;
|
|
54
|
-
this.selectionSet = undefined;
|
|
55
|
-
this.selectionLayerIds = [];
|
|
56
|
-
this.selectLayerView = undefined;
|
|
57
|
-
this.sketchLineSymbol = undefined;
|
|
58
|
-
this.sketchPointSymbol = undefined;
|
|
59
|
-
this.sketchPolygonSymbol = undefined;
|
|
60
|
-
this._numSelected = 0;
|
|
61
|
-
this._searchDistanceEnabled = false;
|
|
62
|
-
this._searchTerm = undefined;
|
|
63
|
-
this._selectionLoading = false;
|
|
64
|
-
this._translations = undefined;
|
|
65
|
-
this._useLayerFeaturesEnabled = false;
|
|
66
|
-
}
|
|
67
|
-
//--------------------------------------------------------------------------
|
|
68
|
-
//
|
|
69
|
-
// Watch handlers
|
|
70
|
-
//
|
|
71
|
-
//--------------------------------------------------------------------------
|
|
72
|
-
/**
|
|
73
|
-
* Called each time the geometries prop is changed.
|
|
74
|
-
*
|
|
75
|
-
* @returns Promise when complete
|
|
76
|
-
*/
|
|
77
|
-
async watchGeometriesHandler(newValue, oldValue) {
|
|
78
|
-
if (newValue !== oldValue) {
|
|
79
|
-
const isEmpty = newValue.length === 0;
|
|
80
|
-
await this._clearResults(isEmpty, isEmpty);
|
|
81
|
-
if (newValue.length > 0) {
|
|
82
|
-
return this._highlightWithOIDsOrGeoms();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Called each time the searchConfiguration prop is changed.
|
|
88
|
-
*
|
|
89
|
-
* @returns Promise when complete
|
|
90
|
-
*/
|
|
91
|
-
async watchSearchConfigurationHandler(newValue, oldValue) {
|
|
92
|
-
if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
|
|
93
|
-
this._initSearchWidget();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//--------------------------------------------------------------------------
|
|
97
|
-
//
|
|
98
|
-
// Methods (public)
|
|
99
|
-
//
|
|
100
|
-
//--------------------------------------------------------------------------
|
|
101
|
-
/**
|
|
102
|
-
* Clear any selection results
|
|
103
|
-
*
|
|
104
|
-
* @returns Promise when the results have been cleared
|
|
105
|
-
*/
|
|
106
|
-
async clearSelection() {
|
|
107
|
-
return this._clearResults(true, true);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get the new selection set
|
|
111
|
-
*
|
|
112
|
-
* @returns Promise with the new selection set
|
|
113
|
-
*/
|
|
114
|
-
async getSelection() {
|
|
115
|
-
// Allow any non whitespace
|
|
116
|
-
if (!/\S+/gm.test(this._selectionLabel)) {
|
|
117
|
-
this._updateLabel();
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
id: this.isUpdate ? this.selectionSet.id : Date.now(),
|
|
121
|
-
searchResult: this._searchResult,
|
|
122
|
-
buffer: this._bufferGeometry,
|
|
123
|
-
distance: this._bufferTools.distance,
|
|
124
|
-
download: true,
|
|
125
|
-
unit: this._bufferTools.unit,
|
|
126
|
-
label: this._selectionLabel,
|
|
127
|
-
selectedIds: this._selectedIds,
|
|
128
|
-
layerView: this.selectLayerView,
|
|
129
|
-
geometries: this.geometries,
|
|
130
|
-
graphics: this._graphics,
|
|
131
|
-
selectLayers: this.layerViews,
|
|
132
|
-
skipGeomOIDs: this._skipGeomOIDs,
|
|
133
|
-
searchDistanceEnabled: this._searchDistanceEnabled,
|
|
134
|
-
workflowType: this._workflowType,
|
|
135
|
-
useLayerFeaturesEnabled: this._useLayerFeaturesEnabled,
|
|
136
|
-
sketchGraphic: this._sketchGraphic
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Handle changes to the search configuration
|
|
141
|
-
*/
|
|
142
|
-
searchConfigurationChangeChanged(event) {
|
|
143
|
-
this.searchConfiguration = event.detail;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Handle changes to the buffer distance value
|
|
147
|
-
*/
|
|
148
|
-
distanceChanged(event) {
|
|
149
|
-
this._distanceChanged(event.detail);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Handle changes to the buffer unit
|
|
153
|
-
*/
|
|
154
|
-
unitChanged(event) {
|
|
155
|
-
if (event.detail.newValue !== event.detail.oldValue) {
|
|
156
|
-
this._unit = event.detail.newValue;
|
|
157
|
-
this._updateLabel();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//--------------------------------------------------------------------------
|
|
161
|
-
//
|
|
162
|
-
// Functions (lifecycle)
|
|
163
|
-
//
|
|
164
|
-
//--------------------------------------------------------------------------
|
|
165
|
-
/**
|
|
166
|
-
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
167
|
-
*/
|
|
168
|
-
async componentWillLoad() {
|
|
169
|
-
await this._getTranslations();
|
|
170
|
-
await this._initModules();
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
|
174
|
-
*/
|
|
175
|
-
async componentDidLoad() {
|
|
176
|
-
return this._init();
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Renders the component.
|
|
180
|
-
*/
|
|
181
|
-
render() {
|
|
182
|
-
return (index.h(index.Host, null, this._getMapLayerPicker(), index.h("div", { class: "border-bottom" }), index.h("div", { class: "padding-top-sides-1" }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } }), index.h("div", { class: "padding-top-1" }, index.h("map-draw-tools", { active: true, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this._getBufferOptions(), this._getUseLayerFeaturesOptions(), this._getNumSelected()), index.h("div", { class: "border-bottom" }), this._getNameInput()));
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Renders the buffer tools component.
|
|
186
|
-
*/
|
|
187
|
-
_getBufferOptions() {
|
|
188
|
-
var _a, _b;
|
|
189
|
-
const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
|
|
190
|
-
const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
|
|
191
|
-
return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Renders the map layer picker component.
|
|
195
|
-
*/
|
|
196
|
-
_getUseLayerFeaturesOptions() {
|
|
197
|
-
const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
|
|
198
|
-
return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id) }))));
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Renders the number of selected features
|
|
202
|
-
*/
|
|
203
|
-
_getNumSelected() {
|
|
204
|
-
const locale$1 = locale.getComponentClosestLanguage(this.el);
|
|
205
|
-
const selectionLoading = locale$1 && locale$1 === "en" ?
|
|
206
|
-
`${this._translations.selectionLoading}...` : this._translations.selectionLoading;
|
|
207
|
-
return (index.h("div", { class: "padding-top-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (index.h("div", null, index.h("calcite-loader", { class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (index.h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), index.h("calcite-input-message", { class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
|
|
208
|
-
this.noResultText && this._numSelected === 0 ? this.noResultText :
|
|
209
|
-
this._translations.selectedFeatures.replace("{{n}}", this._numSelected.toString()))));
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Renders the custom label input
|
|
213
|
-
*/
|
|
214
|
-
_getNameInput() {
|
|
215
|
-
const nameLabelClass = this.customLabelEnabled ? "" : "display-none";
|
|
216
|
-
return (index.h("div", { class: "padding-sides-1 padding-top-1 " + nameLabelClass }, index.h("calcite-label", { class: "font-bold" }, this._translations.listName, index.h("calcite-input", { onInput: () => {
|
|
217
|
-
this._selectionLabel = this._labelName.value;
|
|
218
|
-
}, placeholder: this._translations.listNamePlaceholder, ref: (el) => { this._labelName = el; }, value: this._selectionLabel || "" }))));
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Create the UI element that will expose the addressee layers
|
|
222
|
-
*
|
|
223
|
-
* @returns addressee layer list node
|
|
224
|
-
* @protected
|
|
225
|
-
*/
|
|
226
|
-
_getMapLayerPicker() {
|
|
227
|
-
return (index.h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
|
|
228
|
-
}
|
|
229
|
-
//--------------------------------------------------------------------------
|
|
230
|
-
//
|
|
231
|
-
// Functions (protected)
|
|
232
|
-
//
|
|
233
|
-
//--------------------------------------------------------------------------
|
|
234
|
-
/**
|
|
235
|
-
* Load esri javascript api modules
|
|
236
|
-
*
|
|
237
|
-
* @returns Promise resolving when function is done
|
|
238
|
-
*
|
|
239
|
-
* @protected
|
|
240
|
-
*/
|
|
241
|
-
async _initModules() {
|
|
242
|
-
const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules.loadModules([
|
|
243
|
-
"esri/layers/GraphicsLayer",
|
|
244
|
-
"esri/Graphic",
|
|
245
|
-
"esri/widgets/Search",
|
|
246
|
-
"esri/geometry/geometryEngine",
|
|
247
|
-
"esri/layers/FeatureLayer"
|
|
248
|
-
]);
|
|
249
|
-
this.GraphicsLayer = GraphicsLayer;
|
|
250
|
-
this.Graphic = Graphic;
|
|
251
|
-
this.Search = Search;
|
|
252
|
-
this._geometryEngine = geometryEngine;
|
|
253
|
-
this.FeatureLayer = FeatureLayer;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Initialize the graphics layer, selection set, and search widget
|
|
257
|
-
*
|
|
258
|
-
* @returns Promise when the operation has completed
|
|
259
|
-
*/
|
|
260
|
-
async _init() {
|
|
261
|
-
this._initGraphicsLayer();
|
|
262
|
-
await this._initSelectionSet();
|
|
263
|
-
this._initSearchWidget();
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Initialize the state of the component with any stored values in a selection set
|
|
267
|
-
*
|
|
268
|
-
* @protected
|
|
269
|
-
*/
|
|
270
|
-
async _initSelectionSet() {
|
|
271
|
-
var _a, _b, _c, _d;
|
|
272
|
-
if (this.selectionSet) {
|
|
273
|
-
this._searchTerm = (_a = this.selectionSet.searchResult) === null || _a === void 0 ? void 0 : _a.name;
|
|
274
|
-
this._searchResult = this.selectionSet.searchResult;
|
|
275
|
-
this._selectLayers = this.selectionSet.selectLayers;
|
|
276
|
-
this._selectedIds = this.selectionSet.selectedIds;
|
|
277
|
-
this._skipGeomOIDs = this.selectionSet.skipGeomOIDs;
|
|
278
|
-
this._searchDistanceEnabled = this.selectionSet.searchDistanceEnabled;
|
|
279
|
-
this._useLayerFeaturesEnabled = this.selectionSet.useLayerFeaturesEnabled;
|
|
280
|
-
this._distance = this.selectionSet.searchDistanceEnabled ? this.selectionSet.distance : 0;
|
|
281
|
-
this._unit = this.selectionSet.unit;
|
|
282
|
-
this._workflowType = this.selectionSet.workflowType;
|
|
283
|
-
this.selectLayerView = this.selectionSet.layerView;
|
|
284
|
-
this._sketchGraphic = this.selectionSet.sketchGraphic;
|
|
285
|
-
this.geometries = [
|
|
286
|
-
...((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.geometries) || []
|
|
287
|
-
];
|
|
288
|
-
// restore graphics from geometries to avoid issues with temp modifications to graphics that were aborted
|
|
289
|
-
this._graphics = this.geometries.map(geometry => {
|
|
290
|
-
const symbol = geometry.type === "point" ? this.sketchPointSymbol :
|
|
291
|
-
geometry.type === "polyline" ? this.sketchLineSymbol : this.sketchPolygonSymbol;
|
|
292
|
-
return new this.Graphic({
|
|
293
|
-
geometry,
|
|
294
|
-
symbol
|
|
295
|
-
});
|
|
296
|
-
});
|
|
297
|
-
this._selectionLabel = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.label;
|
|
298
|
-
if (!this._useLayerFeaturesEnabled) {
|
|
299
|
-
(_d = this._drawTools) === null || _d === void 0 ? void 0 : _d.updateGraphics();
|
|
300
|
-
}
|
|
301
|
-
await mapViewUtils.goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Initialize the search widget
|
|
306
|
-
*
|
|
307
|
-
* @protected
|
|
308
|
-
*/
|
|
309
|
-
_initSearchWidget() {
|
|
310
|
-
if (this.mapView && this._searchElement) {
|
|
311
|
-
const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
|
|
312
|
-
const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
|
|
313
|
-
this._searchWidget = new this.Search(searchOptions);
|
|
314
|
-
this._searchWidget.popupEnabled = false;
|
|
315
|
-
this._searchWidget.resultGraphicEnabled = false;
|
|
316
|
-
this._searchWidget.on("search-clear", () => {
|
|
317
|
-
const clearLabel = this._searchClearLabel();
|
|
318
|
-
void this._clearResults(false, clearLabel);
|
|
319
|
-
});
|
|
320
|
-
this._searchWidget.on("select-result", (searchResults) => {
|
|
321
|
-
var _a, _b;
|
|
322
|
-
if (searchResults.result) {
|
|
323
|
-
this._searchResult = searchResults.result;
|
|
324
|
-
const useOIDs = ((_b = (_a = searchResults.source) === null || _a === void 0 ? void 0 : _a.layer) === null || _b === void 0 ? void 0 : _b.id) && searchResults.source.layer.id === this.selectLayerView.layer.id;
|
|
325
|
-
const oids = useOIDs ? [searchResults.result.feature.getObjectId()] : undefined;
|
|
326
|
-
this._workflowType = interfaces.EWorkflowType.SEARCH;
|
|
327
|
-
this._updateLabel();
|
|
328
|
-
const graphics = [searchResults.result.feature];
|
|
329
|
-
this._updateSelection(graphics, useOIDs, oids);
|
|
330
|
-
this._drawTools.graphics = graphics;
|
|
331
|
-
this._searchWidget.resultGraphic.visible = false;
|
|
332
|
-
}
|
|
333
|
-
else {
|
|
334
|
-
const clearLabel = this._searchClearLabel();
|
|
335
|
-
void this._clearResults(false, clearLabel);
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Check if the current label should be cleared
|
|
342
|
-
*
|
|
343
|
-
* @returns true when the current label is based on search result
|
|
344
|
-
* @protected
|
|
345
|
-
*/
|
|
346
|
-
_searchClearLabel() {
|
|
347
|
-
var _a;
|
|
348
|
-
return ((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) && this._labelName.value.indexOf(this._searchResult.name) > -1;
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Initialize the search widget based on user defined configuration
|
|
352
|
-
*
|
|
353
|
-
* @param searchConfiguration search configuration defined by the user
|
|
354
|
-
* @param view the current map view
|
|
355
|
-
*
|
|
356
|
-
* @protected
|
|
357
|
-
*/
|
|
358
|
-
_getSearchConfig(searchConfiguration, view) {
|
|
359
|
-
const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
|
|
360
|
-
const sources = searchConfiguration === null || searchConfiguration === void 0 ? void 0 : searchConfiguration.sources;
|
|
361
|
-
if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
|
|
362
|
-
searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
|
|
363
|
-
sources.forEach((source) => {
|
|
364
|
-
var _a, _b;
|
|
365
|
-
const isLayerSource = source.hasOwnProperty("layer");
|
|
366
|
-
if (isLayerSource) {
|
|
367
|
-
const layerSource = source;
|
|
368
|
-
const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
|
|
369
|
-
const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
|
|
370
|
-
const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
|
|
371
|
-
if (layerFromMap) {
|
|
372
|
-
layerSource.layer = layerFromMap;
|
|
373
|
-
}
|
|
374
|
-
else if (layerUrl) {
|
|
375
|
-
layerSource.layer = new this.FeatureLayer(layerUrl);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
|
|
380
|
-
const isLocatorSource = source.hasOwnProperty("locator");
|
|
381
|
-
if (isLocatorSource) {
|
|
382
|
-
const locatorSource = source;
|
|
383
|
-
if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
|
|
384
|
-
const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
|
|
385
|
-
locatorSource.outFields = outFields;
|
|
386
|
-
locatorSource.singleLineFieldName = "SingleLine";
|
|
387
|
-
}
|
|
388
|
-
locatorSource.url = locatorSource.url;
|
|
389
|
-
delete locatorSource.url;
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
else {
|
|
394
|
-
searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
|
|
395
|
-
}
|
|
396
|
-
return searchConfiguration;
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Initialize the graphics layer used to store any buffer grapghics
|
|
400
|
-
*
|
|
401
|
-
* @protected
|
|
402
|
-
*/
|
|
403
|
-
_initGraphicsLayer() {
|
|
404
|
-
const title = this._translations.bufferLayer;
|
|
405
|
-
const bufferIndex = this.mapView.map.layers.findIndex((l) => l.title === title);
|
|
406
|
-
if (bufferIndex > -1) {
|
|
407
|
-
this._bufferGraphicsLayer = this.mapView.map.layers.getItemAt(bufferIndex);
|
|
408
|
-
}
|
|
409
|
-
else {
|
|
410
|
-
this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
|
|
411
|
-
publicNotificationStore.state.managedLayers.push(title);
|
|
412
|
-
const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
|
|
413
|
-
if (sketchIndex > -1) {
|
|
414
|
-
this.mapView.map.layers.add(this._bufferGraphicsLayer, sketchIndex);
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
this.mapView.map.layers.add(this._bufferGraphicsLayer);
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
/**
|
|
422
|
-
* Handle changes in the sketch graphics
|
|
423
|
-
*
|
|
424
|
-
* @param event stores the graphics that will be used to select features
|
|
425
|
-
* @param forceUpdate when true the drawn graphic will be used to select features from
|
|
426
|
-
* use layer features layer...then the selected layer features will be used to select from the main input layer
|
|
427
|
-
*
|
|
428
|
-
*/
|
|
429
|
-
async _sketchGraphicsChanged(event, forceUpdate = false) {
|
|
430
|
-
const graphics = event.detail.graphics;
|
|
431
|
-
if (graphics.length > 0 && graphics[0]) {
|
|
432
|
-
if (!forceUpdate) {
|
|
433
|
-
this._sketchGraphic = graphics[0];
|
|
434
|
-
}
|
|
435
|
-
this._workflowType = this._useLayerFeaturesEnabled ? interfaces.EWorkflowType.SELECT : interfaces.EWorkflowType.SKETCH;
|
|
436
|
-
if (this._workflowType === interfaces.EWorkflowType.SKETCH) {
|
|
437
|
-
this._drawTools.updateGraphics();
|
|
438
|
-
}
|
|
439
|
-
this._updateLabel();
|
|
440
|
-
this._clearSearchWidget();
|
|
441
|
-
if (this._useLayerFeaturesEnabled && !forceUpdate) {
|
|
442
|
-
// Will only ever be a single graphic
|
|
443
|
-
const geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
|
|
444
|
-
await this._selectLayerFeatures(geometries[0]);
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
const oids = graphics.reduce((prev, cur) => {
|
|
448
|
-
var _a;
|
|
449
|
-
if ((_a = cur === null || cur === void 0 ? void 0 : cur.layer) === null || _a === void 0 ? void 0 : _a.objectIdField) {
|
|
450
|
-
prev.push(cur.attributes[cur.layer.objectIdField]);
|
|
451
|
-
}
|
|
452
|
-
else if (cur.getObjectId) {
|
|
453
|
-
prev.push(cur.getObjectId());
|
|
454
|
-
}
|
|
455
|
-
return prev;
|
|
456
|
-
}, []);
|
|
457
|
-
const useOIDs = event.detail.useOIDs && oids.length > 0;
|
|
458
|
-
this._updateSelection(graphics, useOIDs, oids);
|
|
459
|
-
if (useOIDs) {
|
|
460
|
-
await this._highlightFeatures(oids);
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
else {
|
|
465
|
-
await this._clearResults(true, true);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
/**
|
|
469
|
-
* Highlight the features in the map based on OIDs when skipOIDs have been defined
|
|
470
|
-
*
|
|
471
|
-
* @protected
|
|
472
|
-
*/
|
|
473
|
-
async _highlightWithOIDsOrGeoms() {
|
|
474
|
-
var _a;
|
|
475
|
-
if (((_a = this._skipGeomOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
476
|
-
this._selectedIds = this._skipGeomOIDs;
|
|
477
|
-
return this._highlightFeatures(this._selectedIds);
|
|
478
|
-
}
|
|
479
|
-
else {
|
|
480
|
-
return this._geomQuery(this.geometries);
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Highlight the features in the map
|
|
485
|
-
*
|
|
486
|
-
* @param ids the ids that should be highlighted
|
|
487
|
-
*
|
|
488
|
-
* @protected
|
|
489
|
-
*/
|
|
490
|
-
async _highlightFeatures(ids) {
|
|
491
|
-
publicNotificationStore.state.removeHandles();
|
|
492
|
-
if (ids.length > 0) {
|
|
493
|
-
publicNotificationStore.state.highlightHandles.push(await mapViewUtils.highlightFeatures(ids, this.selectLayerView, this.mapView));
|
|
494
|
-
}
|
|
495
|
-
this._numSelected = ids.length;
|
|
496
|
-
this.selectionSetChange.emit(ids.length);
|
|
497
|
-
}
|
|
498
|
-
/**
|
|
499
|
-
* Query the selectLayerView based on any user drawn geometries or buffers
|
|
500
|
-
*
|
|
501
|
-
* @param geometries Array of geometries used for the selection of ids from the select layer view
|
|
502
|
-
*
|
|
503
|
-
* @returns Promise when the selection is complete and the graphics have been highlighted
|
|
504
|
-
*/
|
|
505
|
-
async _selectFeatures(geometries) {
|
|
506
|
-
this._selectionLoading = true;
|
|
507
|
-
this._selectedIds = await mapViewUtils.queryObjectIds(geometries, this.selectLayerView.layer);
|
|
508
|
-
this._selectionLoading = false;
|
|
509
|
-
// stored as graphics now in addition to the geoms
|
|
510
|
-
this._drawTools.graphics = this._graphics;
|
|
511
|
-
await this._highlightFeatures(this._selectedIds);
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Query the selectLayerView based on any user drawn geometries or buffers
|
|
515
|
-
*
|
|
516
|
-
* @param evt CustomEvent that contains the result of the buffer
|
|
517
|
-
*
|
|
518
|
-
* @protected
|
|
519
|
-
*/
|
|
520
|
-
async _bufferComplete(evt) {
|
|
521
|
-
this._bufferGeometry = Array.isArray(evt.detail) ?
|
|
522
|
-
evt.detail[0] : evt.detail;
|
|
523
|
-
let oldValue = this._bufferTools.distance;
|
|
524
|
-
let newValue = 0;
|
|
525
|
-
if (this._bufferGeometry) {
|
|
526
|
-
// Create a symbol for rendering the graphic
|
|
527
|
-
const symbol = {
|
|
528
|
-
type: "simple-fill",
|
|
529
|
-
color: this.bufferColor,
|
|
530
|
-
outline: {
|
|
531
|
-
color: this.bufferOutlineColor,
|
|
532
|
-
width: 1
|
|
533
|
-
}
|
|
534
|
-
};
|
|
535
|
-
// Add the geometry and symbol to a new graphic
|
|
536
|
-
const polygonGraphic = new this.Graphic({
|
|
537
|
-
geometry: this._bufferGeometry,
|
|
538
|
-
symbol
|
|
539
|
-
});
|
|
540
|
-
this._bufferGraphicsLayer.removeAll();
|
|
541
|
-
this._bufferGraphicsLayer.add(polygonGraphic);
|
|
542
|
-
await this._selectFeatures([this._bufferGeometry]);
|
|
543
|
-
await this.mapView.goTo(polygonGraphic.geometry.extent);
|
|
544
|
-
// We need to swap the values again if they were previously
|
|
545
|
-
// set based on disable of buffer tools when the tools have a value
|
|
546
|
-
newValue = oldValue;
|
|
547
|
-
oldValue = 0;
|
|
548
|
-
}
|
|
549
|
-
else {
|
|
550
|
-
if (this._bufferGraphicsLayer) {
|
|
551
|
-
this._bufferGraphicsLayer.removeAll();
|
|
552
|
-
}
|
|
553
|
-
await this._highlightWithOIDsOrGeoms();
|
|
554
|
-
}
|
|
555
|
-
// mock this b/c the tools can store a value that is different than what is shown in the map
|
|
556
|
-
// this occurs when a distance is set but then buffer is disabled
|
|
557
|
-
this._distanceChanged({
|
|
558
|
-
oldValue,
|
|
559
|
-
newValue
|
|
560
|
-
});
|
|
561
|
-
}
|
|
562
|
-
/**
|
|
563
|
-
* Fetch a single geometry for each potential geometry type
|
|
564
|
-
*
|
|
565
|
-
* @param geometries All current selection geometries
|
|
566
|
-
*
|
|
567
|
-
* @protected
|
|
568
|
-
*/
|
|
569
|
-
_geomQuery(geometries) {
|
|
570
|
-
const queryGeoms = mapViewUtils.getQueryGeoms(geometries, this._geometryEngine);
|
|
571
|
-
return this._selectFeatures(queryGeoms);
|
|
572
|
-
}
|
|
573
|
-
/**
|
|
574
|
-
* Clear all stored values and general state for the component
|
|
575
|
-
*
|
|
576
|
-
* @param clearSearchWidget Optional boolean for clearing the search widget (default is true)
|
|
577
|
-
* @param clearLabel Optional boolean for clearing the search label (default is true)
|
|
578
|
-
*
|
|
579
|
-
* @protected
|
|
580
|
-
*/
|
|
581
|
-
async _clearResults(clearSearchWidget = true, clearLabel = false) {
|
|
582
|
-
var _a;
|
|
583
|
-
this._selectedIds = [];
|
|
584
|
-
this._distance = undefined;
|
|
585
|
-
this._unit = undefined;
|
|
586
|
-
if (clearLabel) {
|
|
587
|
-
this._selectionLabel = "";
|
|
588
|
-
this._labelName.value = "";
|
|
589
|
-
}
|
|
590
|
-
if (this._bufferGraphicsLayer) {
|
|
591
|
-
this._bufferGraphicsLayer.removeAll();
|
|
592
|
-
}
|
|
593
|
-
if (clearSearchWidget && this._searchWidget) {
|
|
594
|
-
this._clearSearchWidget();
|
|
595
|
-
}
|
|
596
|
-
publicNotificationStore.state.removeHandles();
|
|
597
|
-
// checking for clear as it would throw off tests
|
|
598
|
-
if ((_a = this._drawTools) === null || _a === void 0 ? void 0 : _a.clear) {
|
|
599
|
-
this._graphics = [];
|
|
600
|
-
await this._drawTools.clear();
|
|
601
|
-
}
|
|
602
|
-
this.selectionSetChange.emit(this._selectedIds.length);
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Clear all the search widget and any stored search result
|
|
606
|
-
*
|
|
607
|
-
* @protected
|
|
608
|
-
*/
|
|
609
|
-
_clearSearchWidget() {
|
|
610
|
-
this._searchWidget.clear();
|
|
611
|
-
this._searchResult = undefined;
|
|
612
|
-
}
|
|
613
|
-
/**
|
|
614
|
-
* Fetch a single geometry for the current geometry type
|
|
615
|
-
*
|
|
616
|
-
* @param type worflow type
|
|
617
|
-
* @param graphics graphics to be used for selection
|
|
618
|
-
* @param label selection label
|
|
619
|
-
* @param useOIDs indicates if the OIDs should override the geometry for selection
|
|
620
|
-
* @param oids list of IDs to select when useOIDs is true
|
|
621
|
-
*
|
|
622
|
-
* @protected
|
|
623
|
-
*/
|
|
624
|
-
_updateSelection(graphics, useOIDs, oids) {
|
|
625
|
-
this._selectedIds = useOIDs && oids ? oids : this._selectedIds;
|
|
626
|
-
// see https://github.com/Esri/solutions-components/issues/148
|
|
627
|
-
this._skipGeomOIDs = useOIDs ? oids : undefined;
|
|
628
|
-
this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
|
|
629
|
-
this._graphics = graphics;
|
|
630
|
-
}
|
|
631
|
-
/**
|
|
632
|
-
* Updates the label for the selection set
|
|
633
|
-
*
|
|
634
|
-
* @protected
|
|
635
|
-
*/
|
|
636
|
-
_updateLabel() {
|
|
637
|
-
var _a, _b;
|
|
638
|
-
const hasSketch = this._selectionLabel.indexOf(this._translations.sketch) > -1;
|
|
639
|
-
const hasSelect = this._selectionLabel.indexOf(this._translations.select) > -1;
|
|
640
|
-
const hasSearch = this._selectionLabel.indexOf((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) > -1;
|
|
641
|
-
const label = this._workflowType === interfaces.EWorkflowType.SEARCH ? (_b = this._searchResult) === null || _b === void 0 ? void 0 : _b.name :
|
|
642
|
-
this._workflowType === interfaces.EWorkflowType.SELECT ?
|
|
643
|
-
this._translations.select : this._translations.sketch;
|
|
644
|
-
const unit = !this._unit ? this._bufferTools.unit : this._unit;
|
|
645
|
-
const distance = isNaN(this._distance) ? this._bufferTools.distance : this._distance;
|
|
646
|
-
this._selectionLabel = hasSketch || hasSelect || hasSearch || !this._selectionLabel ?
|
|
647
|
-
`${label} ${distance} ${unit}` : this._selectionLabel;
|
|
648
|
-
this._labelName.value = this._selectionLabel;
|
|
649
|
-
}
|
|
650
|
-
/**
|
|
651
|
-
* Gets the layer views from the map when the layer selection changes
|
|
652
|
-
*
|
|
653
|
-
* @returns Promise resolving when function is done
|
|
654
|
-
*
|
|
655
|
-
* @protected
|
|
656
|
-
*/
|
|
657
|
-
async _layerSelectionChange(evt) {
|
|
658
|
-
if (Array.isArray(evt.detail) && evt.detail.length > 0) {
|
|
659
|
-
const layerPromises = evt.detail.map(id => {
|
|
660
|
-
return mapViewUtils.getFeatureLayerView(this.mapView, id);
|
|
661
|
-
});
|
|
662
|
-
return Promise.all(layerPromises).then((layerViews) => {
|
|
663
|
-
this.layerViews = layerViews;
|
|
664
|
-
this._featuresCollection = {};
|
|
665
|
-
if (this._sketchGraphic) {
|
|
666
|
-
void this._sketchGraphicsChanged({
|
|
667
|
-
detail: {
|
|
668
|
-
graphics: [this._sketchGraphic],
|
|
669
|
-
useOIDs: false
|
|
670
|
-
}
|
|
671
|
-
});
|
|
672
|
-
}
|
|
673
|
-
});
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
/**
|
|
677
|
-
* Fetch the layer from the map
|
|
678
|
-
*
|
|
679
|
-
* @param evt layer selection change event
|
|
680
|
-
*
|
|
681
|
-
* @returns Promise when the function has completed
|
|
682
|
-
* @protected
|
|
683
|
-
*/
|
|
684
|
-
async _inputLayerSelectionChange(evt) {
|
|
685
|
-
var _a;
|
|
686
|
-
const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
|
|
687
|
-
if (!this.selectLayerView || id !== this.selectLayerView.layer.id) {
|
|
688
|
-
this.selectLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, id);
|
|
689
|
-
this._updateLabel();
|
|
690
|
-
this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) :
|
|
691
|
-
await this._highlightWithOIDsOrGeoms();
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
/**
|
|
695
|
-
* Handle changes to the buffer distance value
|
|
696
|
-
*/
|
|
697
|
-
_distanceChanged(detail) {
|
|
698
|
-
if (detail.newValue !== detail.oldValue) {
|
|
699
|
-
this._distance = detail.newValue;
|
|
700
|
-
this._updateLabel();
|
|
701
|
-
}
|
|
702
|
-
}
|
|
703
|
-
/**
|
|
704
|
-
* Select features based on the input geometry
|
|
705
|
-
*
|
|
706
|
-
* @param geom the geometry used for selection
|
|
707
|
-
*
|
|
708
|
-
* @returns Promise resolving when function is done
|
|
709
|
-
*
|
|
710
|
-
* @protected
|
|
711
|
-
*/
|
|
712
|
-
async _selectLayerFeatures(geom) {
|
|
713
|
-
this._selectionLoading = true;
|
|
714
|
-
const queryFeaturePromises = this.layerViews.map(layerView => {
|
|
715
|
-
this._featuresCollection[layerView.layer.id] = [];
|
|
716
|
-
return mapViewUtils.queryFeaturesByGeometry(0, layerView.layer, geom, this._featuresCollection);
|
|
717
|
-
});
|
|
718
|
-
return Promise.all(queryFeaturePromises).then(async (response) => {
|
|
719
|
-
this._selectionLoading = false;
|
|
720
|
-
let graphics = [];
|
|
721
|
-
response.forEach(r => {
|
|
722
|
-
Object.keys(r).forEach(k => {
|
|
723
|
-
graphics = graphics.concat(r[k]);
|
|
724
|
-
});
|
|
725
|
-
});
|
|
726
|
-
let hasOID = false;
|
|
727
|
-
graphics.forEach((g) => {
|
|
728
|
-
var _a;
|
|
729
|
-
const geom = g.geometry;
|
|
730
|
-
g.symbol = geom.type === "point" ?
|
|
731
|
-
this.sketchPointSymbol : geom.type === "polyline" ?
|
|
732
|
-
this.sketchLineSymbol : geom.type === "polygon" ?
|
|
733
|
-
this.sketchPolygonSymbol : undefined;
|
|
734
|
-
hasOID = ((_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("objectIdField")) || g.hasOwnProperty("getObjectId");
|
|
735
|
-
});
|
|
736
|
-
// OIDs are used when the addressee layer and the current "use layer features" layer are the same
|
|
737
|
-
const useOIDs = (this.layerViews[0].layer.title === this.selectLayerView.layer.title) && hasOID;
|
|
738
|
-
await this._sketchGraphicsChanged({
|
|
739
|
-
detail: {
|
|
740
|
-
graphics,
|
|
741
|
-
useOIDs
|
|
742
|
-
}
|
|
743
|
-
}, true);
|
|
744
|
-
});
|
|
745
|
-
}
|
|
746
|
-
/**
|
|
747
|
-
* Store use layer features value and re-select features based on the original sketch graphic
|
|
748
|
-
*
|
|
749
|
-
* @protected
|
|
750
|
-
*/
|
|
751
|
-
_useLayerFeaturesEnabledChanged() {
|
|
752
|
-
this._useLayerFeaturesEnabled = !this._useLayerFeaturesEnabled;
|
|
753
|
-
if (this._sketchGraphic) {
|
|
754
|
-
void this._sketchGraphicsChanged({
|
|
755
|
-
detail: {
|
|
756
|
-
graphics: [this._sketchGraphic],
|
|
757
|
-
useOIDs: false
|
|
758
|
-
}
|
|
759
|
-
});
|
|
760
|
-
}
|
|
761
|
-
}
|
|
762
|
-
/**
|
|
763
|
-
* Fetches the component's translations
|
|
764
|
-
*
|
|
765
|
-
* @protected
|
|
766
|
-
*/
|
|
767
|
-
async _getTranslations() {
|
|
768
|
-
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
769
|
-
this._translations = translations[0];
|
|
770
|
-
}
|
|
771
|
-
get el() { return index.getElement(this); }
|
|
772
|
-
static get watchers() { return {
|
|
773
|
-
"geometries": ["watchGeometriesHandler"],
|
|
774
|
-
"searchConfiguration": ["watchSearchConfigurationHandler"]
|
|
775
|
-
}; }
|
|
776
|
-
};
|
|
22
|
+
const MapSelectTools = class {
|
|
23
|
+
constructor(hostRef) {
|
|
24
|
+
index.registerInstance(this, hostRef);
|
|
25
|
+
this.selectionSetChange = index.createEvent(this, "selectionSetChange", 7);
|
|
26
|
+
/**
|
|
27
|
+
* number[]: the oids of the selected features
|
|
28
|
+
*/
|
|
29
|
+
this._selectedIds = [];
|
|
30
|
+
/**
|
|
31
|
+
* string: A label to help uniquely identify the selection set
|
|
32
|
+
*/
|
|
33
|
+
this._selectionLabel = "";
|
|
34
|
+
/**
|
|
35
|
+
* esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html
|
|
36
|
+
*/
|
|
37
|
+
this._graphics = [];
|
|
38
|
+
/**
|
|
39
|
+
* {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
|
|
40
|
+
*/
|
|
41
|
+
this._featuresCollection = {};
|
|
42
|
+
this.bufferColor = [227, 139, 79, 0.8];
|
|
43
|
+
this.bufferOutlineColor = [255, 255, 255];
|
|
44
|
+
this.customLabelEnabled = undefined;
|
|
45
|
+
this.enabledLayerIds = [];
|
|
46
|
+
this.defaultBufferDistance = undefined;
|
|
47
|
+
this.defaultBufferUnit = undefined;
|
|
48
|
+
this.geometries = [];
|
|
49
|
+
this.isUpdate = false;
|
|
50
|
+
this.layerViews = [];
|
|
51
|
+
this.mapView = undefined;
|
|
52
|
+
this.noResultText = undefined;
|
|
53
|
+
this.searchConfiguration = undefined;
|
|
54
|
+
this.selectionSet = undefined;
|
|
55
|
+
this.selectionLayerIds = [];
|
|
56
|
+
this.selectLayerView = undefined;
|
|
57
|
+
this.sketchLineSymbol = undefined;
|
|
58
|
+
this.sketchPointSymbol = undefined;
|
|
59
|
+
this.sketchPolygonSymbol = undefined;
|
|
60
|
+
this._numSelected = 0;
|
|
61
|
+
this._searchDistanceEnabled = false;
|
|
62
|
+
this._searchTerm = undefined;
|
|
63
|
+
this._selectionLoading = false;
|
|
64
|
+
this._translations = undefined;
|
|
65
|
+
this._useLayerFeaturesEnabled = false;
|
|
66
|
+
}
|
|
67
|
+
//--------------------------------------------------------------------------
|
|
68
|
+
//
|
|
69
|
+
// Watch handlers
|
|
70
|
+
//
|
|
71
|
+
//--------------------------------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* Called each time the geometries prop is changed.
|
|
74
|
+
*
|
|
75
|
+
* @returns Promise when complete
|
|
76
|
+
*/
|
|
77
|
+
async watchGeometriesHandler(newValue, oldValue) {
|
|
78
|
+
if (newValue !== oldValue) {
|
|
79
|
+
const isEmpty = newValue.length === 0;
|
|
80
|
+
await this._clearResults(isEmpty, isEmpty);
|
|
81
|
+
if (newValue.length > 0) {
|
|
82
|
+
return this._highlightWithOIDsOrGeoms();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Called each time the searchConfiguration prop is changed.
|
|
88
|
+
*
|
|
89
|
+
* @returns Promise when complete
|
|
90
|
+
*/
|
|
91
|
+
async watchSearchConfigurationHandler(newValue, oldValue) {
|
|
92
|
+
if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
|
|
93
|
+
this._initSearchWidget();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//--------------------------------------------------------------------------
|
|
97
|
+
//
|
|
98
|
+
// Methods (public)
|
|
99
|
+
//
|
|
100
|
+
//--------------------------------------------------------------------------
|
|
101
|
+
/**
|
|
102
|
+
* Clear any selection results
|
|
103
|
+
*
|
|
104
|
+
* @returns Promise when the results have been cleared
|
|
105
|
+
*/
|
|
106
|
+
async clearSelection() {
|
|
107
|
+
return this._clearResults(true, true);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get the new selection set
|
|
111
|
+
*
|
|
112
|
+
* @returns Promise with the new selection set
|
|
113
|
+
*/
|
|
114
|
+
async getSelection() {
|
|
115
|
+
// Allow any non whitespace
|
|
116
|
+
if (!/\S+/gm.test(this._selectionLabel)) {
|
|
117
|
+
this._updateLabel();
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
id: this.isUpdate ? this.selectionSet.id : Date.now(),
|
|
121
|
+
searchResult: this._searchResult,
|
|
122
|
+
buffer: this._bufferGeometry,
|
|
123
|
+
distance: this._bufferTools.distance,
|
|
124
|
+
download: true,
|
|
125
|
+
unit: this._bufferTools.unit,
|
|
126
|
+
label: this._selectionLabel,
|
|
127
|
+
selectedIds: this._selectedIds,
|
|
128
|
+
layerView: this.selectLayerView,
|
|
129
|
+
geometries: this.geometries,
|
|
130
|
+
graphics: this._graphics,
|
|
131
|
+
selectLayers: this.layerViews,
|
|
132
|
+
skipGeomOIDs: this._skipGeomOIDs,
|
|
133
|
+
searchDistanceEnabled: this._searchDistanceEnabled,
|
|
134
|
+
workflowType: this._workflowType,
|
|
135
|
+
useLayerFeaturesEnabled: this._useLayerFeaturesEnabled,
|
|
136
|
+
sketchGraphic: this._sketchGraphic
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Handle changes to the search configuration
|
|
141
|
+
*/
|
|
142
|
+
searchConfigurationChangeChanged(event) {
|
|
143
|
+
this.searchConfiguration = event.detail;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Handle changes to the buffer distance value
|
|
147
|
+
*/
|
|
148
|
+
distanceChanged(event) {
|
|
149
|
+
this._distanceChanged(event.detail);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Handle changes to the buffer unit
|
|
153
|
+
*/
|
|
154
|
+
unitChanged(event) {
|
|
155
|
+
if (event.detail.newValue !== event.detail.oldValue) {
|
|
156
|
+
this._unit = event.detail.newValue;
|
|
157
|
+
this._updateLabel();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//--------------------------------------------------------------------------
|
|
161
|
+
//
|
|
162
|
+
// Functions (lifecycle)
|
|
163
|
+
//
|
|
164
|
+
//--------------------------------------------------------------------------
|
|
165
|
+
/**
|
|
166
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
167
|
+
*/
|
|
168
|
+
async componentWillLoad() {
|
|
169
|
+
await this._getTranslations();
|
|
170
|
+
await this._initModules();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* StencilJS: Called once just after the component is fully loaded and the first render() occurs.
|
|
174
|
+
*/
|
|
175
|
+
async componentDidLoad() {
|
|
176
|
+
return this._init();
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Renders the component.
|
|
180
|
+
*/
|
|
181
|
+
render() {
|
|
182
|
+
return (index.h(index.Host, null, this._getMapLayerPicker(), index.h("div", { class: "border-bottom" }), index.h("div", { class: "padding-top-sides-1" }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } }), index.h("div", { class: "padding-top-1" }, index.h("map-draw-tools", { active: true, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this._getBufferOptions(), this._getUseLayerFeaturesOptions(), this._getNumSelected()), index.h("div", { class: "border-bottom" }), this._getNameInput()));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Renders the buffer tools component.
|
|
186
|
+
*/
|
|
187
|
+
_getBufferOptions() {
|
|
188
|
+
var _a, _b;
|
|
189
|
+
const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
|
|
190
|
+
const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
|
|
191
|
+
return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Renders the map layer picker component.
|
|
195
|
+
*/
|
|
196
|
+
_getUseLayerFeaturesOptions() {
|
|
197
|
+
const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
|
|
198
|
+
return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id) }))));
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Renders the number of selected features
|
|
202
|
+
*/
|
|
203
|
+
_getNumSelected() {
|
|
204
|
+
const locale$1 = locale.getComponentClosestLanguage(this.el);
|
|
205
|
+
const selectionLoading = locale$1 && locale$1 === "en" ?
|
|
206
|
+
`${this._translations.selectionLoading}...` : this._translations.selectionLoading;
|
|
207
|
+
return (index.h("div", { class: "padding-top-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (index.h("div", null, index.h("calcite-loader", { class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (index.h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), index.h("calcite-input-message", { class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
|
|
208
|
+
this.noResultText && this._numSelected === 0 ? this.noResultText :
|
|
209
|
+
this._translations.selectedFeatures.replace("{{n}}", this._numSelected.toString()))));
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Renders the custom label input
|
|
213
|
+
*/
|
|
214
|
+
_getNameInput() {
|
|
215
|
+
const nameLabelClass = this.customLabelEnabled ? "" : "display-none";
|
|
216
|
+
return (index.h("div", { class: "padding-sides-1 padding-top-1 " + nameLabelClass }, index.h("calcite-label", { class: "font-bold" }, this._translations.listName, index.h("calcite-input", { onInput: () => {
|
|
217
|
+
this._selectionLabel = this._labelName.value;
|
|
218
|
+
}, placeholder: this._translations.listNamePlaceholder, ref: (el) => { this._labelName = el; }, value: this._selectionLabel || "" }))));
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Create the UI element that will expose the addressee layers
|
|
222
|
+
*
|
|
223
|
+
* @returns addressee layer list node
|
|
224
|
+
* @protected
|
|
225
|
+
*/
|
|
226
|
+
_getMapLayerPicker() {
|
|
227
|
+
return (index.h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
|
|
228
|
+
}
|
|
229
|
+
//--------------------------------------------------------------------------
|
|
230
|
+
//
|
|
231
|
+
// Functions (protected)
|
|
232
|
+
//
|
|
233
|
+
//--------------------------------------------------------------------------
|
|
234
|
+
/**
|
|
235
|
+
* Load esri javascript api modules
|
|
236
|
+
*
|
|
237
|
+
* @returns Promise resolving when function is done
|
|
238
|
+
*
|
|
239
|
+
* @protected
|
|
240
|
+
*/
|
|
241
|
+
async _initModules() {
|
|
242
|
+
const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules.loadModules([
|
|
243
|
+
"esri/layers/GraphicsLayer",
|
|
244
|
+
"esri/Graphic",
|
|
245
|
+
"esri/widgets/Search",
|
|
246
|
+
"esri/geometry/geometryEngine",
|
|
247
|
+
"esri/layers/FeatureLayer"
|
|
248
|
+
]);
|
|
249
|
+
this.GraphicsLayer = GraphicsLayer;
|
|
250
|
+
this.Graphic = Graphic;
|
|
251
|
+
this.Search = Search;
|
|
252
|
+
this._geometryEngine = geometryEngine;
|
|
253
|
+
this.FeatureLayer = FeatureLayer;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Initialize the graphics layer, selection set, and search widget
|
|
257
|
+
*
|
|
258
|
+
* @returns Promise when the operation has completed
|
|
259
|
+
*/
|
|
260
|
+
async _init() {
|
|
261
|
+
this._initGraphicsLayer();
|
|
262
|
+
await this._initSelectionSet();
|
|
263
|
+
this._initSearchWidget();
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Initialize the state of the component with any stored values in a selection set
|
|
267
|
+
*
|
|
268
|
+
* @protected
|
|
269
|
+
*/
|
|
270
|
+
async _initSelectionSet() {
|
|
271
|
+
var _a, _b, _c, _d;
|
|
272
|
+
if (this.selectionSet) {
|
|
273
|
+
this._searchTerm = (_a = this.selectionSet.searchResult) === null || _a === void 0 ? void 0 : _a.name;
|
|
274
|
+
this._searchResult = this.selectionSet.searchResult;
|
|
275
|
+
this._selectLayers = this.selectionSet.selectLayers;
|
|
276
|
+
this._selectedIds = this.selectionSet.selectedIds;
|
|
277
|
+
this._skipGeomOIDs = this.selectionSet.skipGeomOIDs;
|
|
278
|
+
this._searchDistanceEnabled = this.selectionSet.searchDistanceEnabled;
|
|
279
|
+
this._useLayerFeaturesEnabled = this.selectionSet.useLayerFeaturesEnabled;
|
|
280
|
+
this._distance = this.selectionSet.searchDistanceEnabled ? this.selectionSet.distance : 0;
|
|
281
|
+
this._unit = this.selectionSet.unit;
|
|
282
|
+
this._workflowType = this.selectionSet.workflowType;
|
|
283
|
+
this.selectLayerView = this.selectionSet.layerView;
|
|
284
|
+
this._sketchGraphic = this.selectionSet.sketchGraphic;
|
|
285
|
+
this.geometries = [
|
|
286
|
+
...((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.geometries) || []
|
|
287
|
+
];
|
|
288
|
+
// restore graphics from geometries to avoid issues with temp modifications to graphics that were aborted
|
|
289
|
+
this._graphics = this.geometries.map(geometry => {
|
|
290
|
+
const symbol = geometry.type === "point" ? this.sketchPointSymbol :
|
|
291
|
+
geometry.type === "polyline" ? this.sketchLineSymbol : this.sketchPolygonSymbol;
|
|
292
|
+
return new this.Graphic({
|
|
293
|
+
geometry,
|
|
294
|
+
symbol
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
this._selectionLabel = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.label;
|
|
298
|
+
if (!this._useLayerFeaturesEnabled) {
|
|
299
|
+
(_d = this._drawTools) === null || _d === void 0 ? void 0 : _d.updateGraphics();
|
|
300
|
+
}
|
|
301
|
+
await mapViewUtils.goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Initialize the search widget
|
|
306
|
+
*
|
|
307
|
+
* @protected
|
|
308
|
+
*/
|
|
309
|
+
_initSearchWidget() {
|
|
310
|
+
if (this.mapView && this._searchElement) {
|
|
311
|
+
const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
|
|
312
|
+
const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
|
|
313
|
+
this._searchWidget = new this.Search(searchOptions);
|
|
314
|
+
this._searchWidget.popupEnabled = false;
|
|
315
|
+
this._searchWidget.resultGraphicEnabled = false;
|
|
316
|
+
this._searchWidget.on("search-clear", () => {
|
|
317
|
+
const clearLabel = this._searchClearLabel();
|
|
318
|
+
void this._clearResults(false, clearLabel);
|
|
319
|
+
});
|
|
320
|
+
this._searchWidget.on("select-result", (searchResults) => {
|
|
321
|
+
var _a, _b;
|
|
322
|
+
if (searchResults.result) {
|
|
323
|
+
this._searchResult = searchResults.result;
|
|
324
|
+
const useOIDs = ((_b = (_a = searchResults.source) === null || _a === void 0 ? void 0 : _a.layer) === null || _b === void 0 ? void 0 : _b.id) && searchResults.source.layer.id === this.selectLayerView.layer.id;
|
|
325
|
+
const oids = useOIDs ? [searchResults.result.feature.getObjectId()] : undefined;
|
|
326
|
+
this._workflowType = interfaces.EWorkflowType.SEARCH;
|
|
327
|
+
this._updateLabel();
|
|
328
|
+
const graphics = [searchResults.result.feature];
|
|
329
|
+
this._updateSelection(graphics, useOIDs, oids);
|
|
330
|
+
this._drawTools.graphics = graphics;
|
|
331
|
+
this._searchWidget.resultGraphic.visible = false;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
const clearLabel = this._searchClearLabel();
|
|
335
|
+
void this._clearResults(false, clearLabel);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Check if the current label should be cleared
|
|
342
|
+
*
|
|
343
|
+
* @returns true when the current label is based on search result
|
|
344
|
+
* @protected
|
|
345
|
+
*/
|
|
346
|
+
_searchClearLabel() {
|
|
347
|
+
var _a;
|
|
348
|
+
return ((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) && this._labelName.value.indexOf(this._searchResult.name) > -1;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Initialize the search widget based on user defined configuration
|
|
352
|
+
*
|
|
353
|
+
* @param searchConfiguration search configuration defined by the user
|
|
354
|
+
* @param view the current map view
|
|
355
|
+
*
|
|
356
|
+
* @protected
|
|
357
|
+
*/
|
|
358
|
+
_getSearchConfig(searchConfiguration, view) {
|
|
359
|
+
const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
|
|
360
|
+
const sources = searchConfiguration === null || searchConfiguration === void 0 ? void 0 : searchConfiguration.sources;
|
|
361
|
+
if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
|
|
362
|
+
searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
|
|
363
|
+
sources.forEach((source) => {
|
|
364
|
+
var _a, _b;
|
|
365
|
+
const isLayerSource = source.hasOwnProperty("layer");
|
|
366
|
+
if (isLayerSource) {
|
|
367
|
+
const layerSource = source;
|
|
368
|
+
const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
|
|
369
|
+
const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
|
|
370
|
+
const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
|
|
371
|
+
if (layerFromMap) {
|
|
372
|
+
layerSource.layer = layerFromMap;
|
|
373
|
+
}
|
|
374
|
+
else if (layerUrl) {
|
|
375
|
+
layerSource.layer = new this.FeatureLayer(layerUrl);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
|
|
380
|
+
const isLocatorSource = source.hasOwnProperty("locator");
|
|
381
|
+
if (isLocatorSource) {
|
|
382
|
+
const locatorSource = source;
|
|
383
|
+
if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
|
|
384
|
+
const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
|
|
385
|
+
locatorSource.outFields = outFields;
|
|
386
|
+
locatorSource.singleLineFieldName = "SingleLine";
|
|
387
|
+
}
|
|
388
|
+
locatorSource.url = locatorSource.url;
|
|
389
|
+
delete locatorSource.url;
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
|
|
395
|
+
}
|
|
396
|
+
return searchConfiguration;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Initialize the graphics layer used to store any buffer grapghics
|
|
400
|
+
*
|
|
401
|
+
* @protected
|
|
402
|
+
*/
|
|
403
|
+
_initGraphicsLayer() {
|
|
404
|
+
const title = this._translations.bufferLayer;
|
|
405
|
+
const bufferIndex = this.mapView.map.layers.findIndex((l) => l.title === title);
|
|
406
|
+
if (bufferIndex > -1) {
|
|
407
|
+
this._bufferGraphicsLayer = this.mapView.map.layers.getItemAt(bufferIndex);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
|
|
411
|
+
publicNotificationStore.state.managedLayers.push(title);
|
|
412
|
+
const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
|
|
413
|
+
if (sketchIndex > -1) {
|
|
414
|
+
this.mapView.map.layers.add(this._bufferGraphicsLayer, sketchIndex);
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
this.mapView.map.layers.add(this._bufferGraphicsLayer);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Handle changes in the sketch graphics
|
|
423
|
+
*
|
|
424
|
+
* @param event stores the graphics that will be used to select features
|
|
425
|
+
* @param forceUpdate when true the drawn graphic will be used to select features from
|
|
426
|
+
* use layer features layer...then the selected layer features will be used to select from the main input layer
|
|
427
|
+
*
|
|
428
|
+
*/
|
|
429
|
+
async _sketchGraphicsChanged(event, forceUpdate = false) {
|
|
430
|
+
const graphics = event.detail.graphics;
|
|
431
|
+
if (graphics.length > 0 && graphics[0]) {
|
|
432
|
+
if (!forceUpdate) {
|
|
433
|
+
this._sketchGraphic = graphics[0];
|
|
434
|
+
}
|
|
435
|
+
this._workflowType = this._useLayerFeaturesEnabled ? interfaces.EWorkflowType.SELECT : interfaces.EWorkflowType.SKETCH;
|
|
436
|
+
if (this._workflowType === interfaces.EWorkflowType.SKETCH) {
|
|
437
|
+
this._drawTools.updateGraphics();
|
|
438
|
+
}
|
|
439
|
+
this._updateLabel();
|
|
440
|
+
this._clearSearchWidget();
|
|
441
|
+
if (this._useLayerFeaturesEnabled && !forceUpdate) {
|
|
442
|
+
// Will only ever be a single graphic
|
|
443
|
+
const geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
|
|
444
|
+
await this._selectLayerFeatures(geometries[0]);
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
const oids = graphics.reduce((prev, cur) => {
|
|
448
|
+
var _a;
|
|
449
|
+
if ((_a = cur === null || cur === void 0 ? void 0 : cur.layer) === null || _a === void 0 ? void 0 : _a.objectIdField) {
|
|
450
|
+
prev.push(cur.attributes[cur.layer.objectIdField]);
|
|
451
|
+
}
|
|
452
|
+
else if (cur.getObjectId) {
|
|
453
|
+
prev.push(cur.getObjectId());
|
|
454
|
+
}
|
|
455
|
+
return prev;
|
|
456
|
+
}, []);
|
|
457
|
+
const useOIDs = event.detail.useOIDs && oids.length > 0;
|
|
458
|
+
this._updateSelection(graphics, useOIDs, oids);
|
|
459
|
+
if (useOIDs) {
|
|
460
|
+
await this._highlightFeatures(oids);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
await this._clearResults(true, true);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Highlight the features in the map based on OIDs when skipOIDs have been defined
|
|
470
|
+
*
|
|
471
|
+
* @protected
|
|
472
|
+
*/
|
|
473
|
+
async _highlightWithOIDsOrGeoms() {
|
|
474
|
+
var _a;
|
|
475
|
+
if (((_a = this._skipGeomOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
476
|
+
this._selectedIds = this._skipGeomOIDs;
|
|
477
|
+
return this._highlightFeatures(this._selectedIds);
|
|
478
|
+
}
|
|
479
|
+
else {
|
|
480
|
+
return this._geomQuery(this.geometries);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Highlight the features in the map
|
|
485
|
+
*
|
|
486
|
+
* @param ids the ids that should be highlighted
|
|
487
|
+
*
|
|
488
|
+
* @protected
|
|
489
|
+
*/
|
|
490
|
+
async _highlightFeatures(ids) {
|
|
491
|
+
publicNotificationStore.state.removeHandles();
|
|
492
|
+
if (ids.length > 0) {
|
|
493
|
+
publicNotificationStore.state.highlightHandles.push(await mapViewUtils.highlightFeatures(ids, this.selectLayerView, this.mapView));
|
|
494
|
+
}
|
|
495
|
+
this._numSelected = ids.length;
|
|
496
|
+
this.selectionSetChange.emit(ids.length);
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Query the selectLayerView based on any user drawn geometries or buffers
|
|
500
|
+
*
|
|
501
|
+
* @param geometries Array of geometries used for the selection of ids from the select layer view
|
|
502
|
+
*
|
|
503
|
+
* @returns Promise when the selection is complete and the graphics have been highlighted
|
|
504
|
+
*/
|
|
505
|
+
async _selectFeatures(geometries) {
|
|
506
|
+
this._selectionLoading = true;
|
|
507
|
+
this._selectedIds = await mapViewUtils.queryObjectIds(geometries, this.selectLayerView.layer);
|
|
508
|
+
this._selectionLoading = false;
|
|
509
|
+
// stored as graphics now in addition to the geoms
|
|
510
|
+
this._drawTools.graphics = this._graphics;
|
|
511
|
+
await this._highlightFeatures(this._selectedIds);
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Query the selectLayerView based on any user drawn geometries or buffers
|
|
515
|
+
*
|
|
516
|
+
* @param evt CustomEvent that contains the result of the buffer
|
|
517
|
+
*
|
|
518
|
+
* @protected
|
|
519
|
+
*/
|
|
520
|
+
async _bufferComplete(evt) {
|
|
521
|
+
this._bufferGeometry = Array.isArray(evt.detail) ?
|
|
522
|
+
evt.detail[0] : evt.detail;
|
|
523
|
+
let oldValue = this._bufferTools.distance;
|
|
524
|
+
let newValue = 0;
|
|
525
|
+
if (this._bufferGeometry) {
|
|
526
|
+
// Create a symbol for rendering the graphic
|
|
527
|
+
const symbol = {
|
|
528
|
+
type: "simple-fill",
|
|
529
|
+
color: this.bufferColor,
|
|
530
|
+
outline: {
|
|
531
|
+
color: this.bufferOutlineColor,
|
|
532
|
+
width: 1
|
|
533
|
+
}
|
|
534
|
+
};
|
|
535
|
+
// Add the geometry and symbol to a new graphic
|
|
536
|
+
const polygonGraphic = new this.Graphic({
|
|
537
|
+
geometry: this._bufferGeometry,
|
|
538
|
+
symbol
|
|
539
|
+
});
|
|
540
|
+
this._bufferGraphicsLayer.removeAll();
|
|
541
|
+
this._bufferGraphicsLayer.add(polygonGraphic);
|
|
542
|
+
await this._selectFeatures([this._bufferGeometry]);
|
|
543
|
+
await this.mapView.goTo(polygonGraphic.geometry.extent);
|
|
544
|
+
// We need to swap the values again if they were previously
|
|
545
|
+
// set based on disable of buffer tools when the tools have a value
|
|
546
|
+
newValue = oldValue;
|
|
547
|
+
oldValue = 0;
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
if (this._bufferGraphicsLayer) {
|
|
551
|
+
this._bufferGraphicsLayer.removeAll();
|
|
552
|
+
}
|
|
553
|
+
await this._highlightWithOIDsOrGeoms();
|
|
554
|
+
}
|
|
555
|
+
// mock this b/c the tools can store a value that is different than what is shown in the map
|
|
556
|
+
// this occurs when a distance is set but then buffer is disabled
|
|
557
|
+
this._distanceChanged({
|
|
558
|
+
oldValue,
|
|
559
|
+
newValue
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Fetch a single geometry for each potential geometry type
|
|
564
|
+
*
|
|
565
|
+
* @param geometries All current selection geometries
|
|
566
|
+
*
|
|
567
|
+
* @protected
|
|
568
|
+
*/
|
|
569
|
+
_geomQuery(geometries) {
|
|
570
|
+
const queryGeoms = mapViewUtils.getQueryGeoms(geometries, this._geometryEngine);
|
|
571
|
+
return this._selectFeatures(queryGeoms);
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Clear all stored values and general state for the component
|
|
575
|
+
*
|
|
576
|
+
* @param clearSearchWidget Optional boolean for clearing the search widget (default is true)
|
|
577
|
+
* @param clearLabel Optional boolean for clearing the search label (default is true)
|
|
578
|
+
*
|
|
579
|
+
* @protected
|
|
580
|
+
*/
|
|
581
|
+
async _clearResults(clearSearchWidget = true, clearLabel = false) {
|
|
582
|
+
var _a;
|
|
583
|
+
this._selectedIds = [];
|
|
584
|
+
this._distance = undefined;
|
|
585
|
+
this._unit = undefined;
|
|
586
|
+
if (clearLabel) {
|
|
587
|
+
this._selectionLabel = "";
|
|
588
|
+
this._labelName.value = "";
|
|
589
|
+
}
|
|
590
|
+
if (this._bufferGraphicsLayer) {
|
|
591
|
+
this._bufferGraphicsLayer.removeAll();
|
|
592
|
+
}
|
|
593
|
+
if (clearSearchWidget && this._searchWidget) {
|
|
594
|
+
this._clearSearchWidget();
|
|
595
|
+
}
|
|
596
|
+
publicNotificationStore.state.removeHandles();
|
|
597
|
+
// checking for clear as it would throw off tests
|
|
598
|
+
if ((_a = this._drawTools) === null || _a === void 0 ? void 0 : _a.clear) {
|
|
599
|
+
this._graphics = [];
|
|
600
|
+
await this._drawTools.clear();
|
|
601
|
+
}
|
|
602
|
+
this.selectionSetChange.emit(this._selectedIds.length);
|
|
603
|
+
}
|
|
604
|
+
/**
|
|
605
|
+
* Clear all the search widget and any stored search result
|
|
606
|
+
*
|
|
607
|
+
* @protected
|
|
608
|
+
*/
|
|
609
|
+
_clearSearchWidget() {
|
|
610
|
+
this._searchWidget.clear();
|
|
611
|
+
this._searchResult = undefined;
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Fetch a single geometry for the current geometry type
|
|
615
|
+
*
|
|
616
|
+
* @param type worflow type
|
|
617
|
+
* @param graphics graphics to be used for selection
|
|
618
|
+
* @param label selection label
|
|
619
|
+
* @param useOIDs indicates if the OIDs should override the geometry for selection
|
|
620
|
+
* @param oids list of IDs to select when useOIDs is true
|
|
621
|
+
*
|
|
622
|
+
* @protected
|
|
623
|
+
*/
|
|
624
|
+
_updateSelection(graphics, useOIDs, oids) {
|
|
625
|
+
this._selectedIds = useOIDs && oids ? oids : this._selectedIds;
|
|
626
|
+
// see https://github.com/Esri/solutions-components/issues/148
|
|
627
|
+
this._skipGeomOIDs = useOIDs ? oids : undefined;
|
|
628
|
+
this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
|
|
629
|
+
this._graphics = graphics;
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
* Updates the label for the selection set
|
|
633
|
+
*
|
|
634
|
+
* @protected
|
|
635
|
+
*/
|
|
636
|
+
_updateLabel() {
|
|
637
|
+
var _a, _b;
|
|
638
|
+
const hasSketch = this._selectionLabel.indexOf(this._translations.sketch) > -1;
|
|
639
|
+
const hasSelect = this._selectionLabel.indexOf(this._translations.select) > -1;
|
|
640
|
+
const hasSearch = this._selectionLabel.indexOf((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) > -1;
|
|
641
|
+
const label = this._workflowType === interfaces.EWorkflowType.SEARCH ? (_b = this._searchResult) === null || _b === void 0 ? void 0 : _b.name :
|
|
642
|
+
this._workflowType === interfaces.EWorkflowType.SELECT ?
|
|
643
|
+
this._translations.select : this._translations.sketch;
|
|
644
|
+
const unit = !this._unit ? this._bufferTools.unit : this._unit;
|
|
645
|
+
const distance = isNaN(this._distance) ? this._bufferTools.distance : this._distance;
|
|
646
|
+
this._selectionLabel = hasSketch || hasSelect || hasSearch || !this._selectionLabel ?
|
|
647
|
+
`${label} ${distance} ${unit}` : this._selectionLabel;
|
|
648
|
+
this._labelName.value = this._selectionLabel;
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Gets the layer views from the map when the layer selection changes
|
|
652
|
+
*
|
|
653
|
+
* @returns Promise resolving when function is done
|
|
654
|
+
*
|
|
655
|
+
* @protected
|
|
656
|
+
*/
|
|
657
|
+
async _layerSelectionChange(evt) {
|
|
658
|
+
if (Array.isArray(evt.detail) && evt.detail.length > 0) {
|
|
659
|
+
const layerPromises = evt.detail.map(id => {
|
|
660
|
+
return mapViewUtils.getFeatureLayerView(this.mapView, id);
|
|
661
|
+
});
|
|
662
|
+
return Promise.all(layerPromises).then((layerViews) => {
|
|
663
|
+
this.layerViews = layerViews;
|
|
664
|
+
this._featuresCollection = {};
|
|
665
|
+
if (this._sketchGraphic) {
|
|
666
|
+
void this._sketchGraphicsChanged({
|
|
667
|
+
detail: {
|
|
668
|
+
graphics: [this._sketchGraphic],
|
|
669
|
+
useOIDs: false
|
|
670
|
+
}
|
|
671
|
+
});
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Fetch the layer from the map
|
|
678
|
+
*
|
|
679
|
+
* @param evt layer selection change event
|
|
680
|
+
*
|
|
681
|
+
* @returns Promise when the function has completed
|
|
682
|
+
* @protected
|
|
683
|
+
*/
|
|
684
|
+
async _inputLayerSelectionChange(evt) {
|
|
685
|
+
var _a;
|
|
686
|
+
const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
|
|
687
|
+
if (!this.selectLayerView || id !== this.selectLayerView.layer.id) {
|
|
688
|
+
this.selectLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, id);
|
|
689
|
+
this._updateLabel();
|
|
690
|
+
this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) :
|
|
691
|
+
await this._highlightWithOIDsOrGeoms();
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Handle changes to the buffer distance value
|
|
696
|
+
*/
|
|
697
|
+
_distanceChanged(detail) {
|
|
698
|
+
if (detail.newValue !== detail.oldValue) {
|
|
699
|
+
this._distance = detail.newValue;
|
|
700
|
+
this._updateLabel();
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* Select features based on the input geometry
|
|
705
|
+
*
|
|
706
|
+
* @param geom the geometry used for selection
|
|
707
|
+
*
|
|
708
|
+
* @returns Promise resolving when function is done
|
|
709
|
+
*
|
|
710
|
+
* @protected
|
|
711
|
+
*/
|
|
712
|
+
async _selectLayerFeatures(geom) {
|
|
713
|
+
this._selectionLoading = true;
|
|
714
|
+
const queryFeaturePromises = this.layerViews.map(layerView => {
|
|
715
|
+
this._featuresCollection[layerView.layer.id] = [];
|
|
716
|
+
return mapViewUtils.queryFeaturesByGeometry(0, layerView.layer, geom, this._featuresCollection);
|
|
717
|
+
});
|
|
718
|
+
return Promise.all(queryFeaturePromises).then(async (response) => {
|
|
719
|
+
this._selectionLoading = false;
|
|
720
|
+
let graphics = [];
|
|
721
|
+
response.forEach(r => {
|
|
722
|
+
Object.keys(r).forEach(k => {
|
|
723
|
+
graphics = graphics.concat(r[k]);
|
|
724
|
+
});
|
|
725
|
+
});
|
|
726
|
+
let hasOID = false;
|
|
727
|
+
graphics.forEach((g) => {
|
|
728
|
+
var _a;
|
|
729
|
+
const geom = g.geometry;
|
|
730
|
+
g.symbol = geom.type === "point" ?
|
|
731
|
+
this.sketchPointSymbol : geom.type === "polyline" ?
|
|
732
|
+
this.sketchLineSymbol : geom.type === "polygon" ?
|
|
733
|
+
this.sketchPolygonSymbol : undefined;
|
|
734
|
+
hasOID = ((_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("objectIdField")) || g.hasOwnProperty("getObjectId");
|
|
735
|
+
});
|
|
736
|
+
// OIDs are used when the addressee layer and the current "use layer features" layer are the same
|
|
737
|
+
const useOIDs = (this.layerViews[0].layer.title === this.selectLayerView.layer.title) && hasOID;
|
|
738
|
+
await this._sketchGraphicsChanged({
|
|
739
|
+
detail: {
|
|
740
|
+
graphics,
|
|
741
|
+
useOIDs
|
|
742
|
+
}
|
|
743
|
+
}, true);
|
|
744
|
+
});
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* Store use layer features value and re-select features based on the original sketch graphic
|
|
748
|
+
*
|
|
749
|
+
* @protected
|
|
750
|
+
*/
|
|
751
|
+
_useLayerFeaturesEnabledChanged() {
|
|
752
|
+
this._useLayerFeaturesEnabled = !this._useLayerFeaturesEnabled;
|
|
753
|
+
if (this._sketchGraphic) {
|
|
754
|
+
void this._sketchGraphicsChanged({
|
|
755
|
+
detail: {
|
|
756
|
+
graphics: [this._sketchGraphic],
|
|
757
|
+
useOIDs: false
|
|
758
|
+
}
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Fetches the component's translations
|
|
764
|
+
*
|
|
765
|
+
* @protected
|
|
766
|
+
*/
|
|
767
|
+
async _getTranslations() {
|
|
768
|
+
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
769
|
+
this._translations = translations[0];
|
|
770
|
+
}
|
|
771
|
+
get el() { return index.getElement(this); }
|
|
772
|
+
static get watchers() { return {
|
|
773
|
+
"geometries": ["watchGeometriesHandler"],
|
|
774
|
+
"searchConfiguration": ["watchSearchConfigurationHandler"]
|
|
775
|
+
}; }
|
|
776
|
+
};
|
|
777
777
|
MapSelectTools.style = mapSelectToolsCss;
|
|
778
778
|
|
|
779
779
|
const labelFormats = [
|
|
@@ -975,532 +975,532 @@ const pdfLabelFormats = /*#__PURE__*/Object.freeze({
|
|
|
975
975
|
|
|
976
976
|
const pdfDownloadCss = ":host{display:block}";
|
|
977
977
|
|
|
978
|
-
const PdfDownload = class {
|
|
979
|
-
constructor(hostRef) {
|
|
980
|
-
index.registerInstance(this, hostRef);
|
|
981
|
-
this.defaultNumLabelsPerPage = undefined;
|
|
982
|
-
this.disabled = false;
|
|
983
|
-
this._translations = undefined;
|
|
984
|
-
}
|
|
985
|
-
//--------------------------------------------------------------------------
|
|
986
|
-
//
|
|
987
|
-
// Watch handlers
|
|
988
|
-
//
|
|
989
|
-
//--------------------------------------------------------------------------
|
|
990
|
-
//--------------------------------------------------------------------------
|
|
991
|
-
//
|
|
992
|
-
// Methods (public)
|
|
993
|
-
//
|
|
994
|
-
//--------------------------------------------------------------------------
|
|
995
|
-
/**
|
|
996
|
-
* Downloads csv of mailing labels for the provided list of ids
|
|
997
|
-
*
|
|
998
|
-
* @param exportInfos Information about items to be exported
|
|
999
|
-
* @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
|
|
1000
|
-
* @param addColumnTitle Indicates if column headings should be included in output
|
|
1001
|
-
* @returns Promise resolving when function is done
|
|
1002
|
-
*/
|
|
1003
|
-
async downloadCSV(exportInfos, removeDuplicates, addColumnTitle = true) {
|
|
1004
|
-
return downloadUtils.downloadCSV(exportInfos, true, // formatUsingLayerPopup
|
|
1005
|
-
removeDuplicates, addColumnTitle);
|
|
1006
|
-
}
|
|
1007
|
-
/**
|
|
1008
|
-
* Downloads pdf of mailing labels for the provided list of ids
|
|
1009
|
-
*
|
|
1010
|
-
* @param exportInfos Information about items to be exported
|
|
1011
|
-
* @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
|
|
1012
|
-
* @param title Title for each page
|
|
1013
|
-
* @param initialImageDataUrl Data URL of image for first page
|
|
1014
|
-
* @returns Promise resolving when function is done
|
|
1015
|
-
*/
|
|
1016
|
-
async downloadPDF(exportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "") {
|
|
1017
|
-
var _c;
|
|
1018
|
-
return downloadUtils.downloadPDF(exportInfos, (_c = this._labelInfoElement.selectedOption) === null || _c === void 0 ? void 0 : _c.value, removeDuplicates, title, initialImageDataUrl);
|
|
1019
|
-
}
|
|
1020
|
-
//--------------------------------------------------------------------------
|
|
1021
|
-
//
|
|
1022
|
-
// Events (public)
|
|
1023
|
-
//
|
|
1024
|
-
//--------------------------------------------------------------------------
|
|
1025
|
-
//--------------------------------------------------------------------------
|
|
1026
|
-
//
|
|
1027
|
-
// Functions (lifecycle)
|
|
1028
|
-
//
|
|
1029
|
-
//--------------------------------------------------------------------------
|
|
1030
|
-
/**
|
|
1031
|
-
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
1032
|
-
*/
|
|
1033
|
-
async componentWillLoad() {
|
|
1034
|
-
await this._getTranslations();
|
|
1035
|
-
await this._initModules();
|
|
1036
|
-
}
|
|
1037
|
-
/**
|
|
1038
|
-
* Renders the component.
|
|
1039
|
-
*/
|
|
1040
|
-
render() {
|
|
1041
|
-
return (index.h(index.Host, null, index.h("calcite-select", { disabled: this.disabled, label: "", ref: (el) => { this._labelInfoElement = el; } })));
|
|
1042
|
-
}
|
|
1043
|
-
componentDidRender() {
|
|
1044
|
-
// Render the options outside of Stencil's rendering so that it doesn't mangle RTL text with embedded LTR
|
|
1045
|
-
this._renderOptions();
|
|
1046
|
-
}
|
|
1047
|
-
//--------------------------------------------------------------------------
|
|
1048
|
-
//
|
|
1049
|
-
// Functions (protected)
|
|
1050
|
-
//
|
|
1051
|
-
//--------------------------------------------------------------------------
|
|
1052
|
-
/**
|
|
1053
|
-
* Load esri javascript api modules
|
|
1054
|
-
*
|
|
1055
|
-
* @returns Promise resolving when function is done
|
|
1056
|
-
*
|
|
1057
|
-
* @protected
|
|
1058
|
-
*/
|
|
1059
|
-
async _initModules() {
|
|
1060
|
-
const [intl] = await loadModules.loadModules([
|
|
1061
|
-
"esri/intl"
|
|
1062
|
-
]);
|
|
1063
|
-
this._intl = intl;
|
|
1064
|
-
}
|
|
1065
|
-
/**
|
|
1066
|
-
* Gets the formatted pdf export size text
|
|
1067
|
-
*
|
|
1068
|
-
* @param labelInfo current user selected label info
|
|
1069
|
-
*
|
|
1070
|
-
* @returns the pdf label as a string
|
|
1071
|
-
* @protected
|
|
1072
|
-
*/
|
|
1073
|
-
_getLabelSizeText(labelInfo) {
|
|
1074
|
-
const lNum = labelInfo.descriptionPDF.labelsPerPageDisplay;
|
|
1075
|
-
const lSize = "‎" + labelInfo.descriptionPDF.labelWidthDisplay + " x " +
|
|
1076
|
-
labelInfo.descriptionPDF.labelHeightDisplay + "‏";
|
|
1077
|
-
return this._translations.pdfLabel.replace("{{n}}", lNum).replace("{{labelSize}}", lSize);
|
|
1078
|
-
}
|
|
1079
|
-
/**
|
|
1080
|
-
* Fetches the component's translations
|
|
1081
|
-
*
|
|
1082
|
-
* @protected
|
|
1083
|
-
*/
|
|
1084
|
-
async _getTranslations() {
|
|
1085
|
-
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
1086
|
-
this._translations = translations[0];
|
|
1087
|
-
}
|
|
1088
|
-
/**
|
|
1089
|
-
* Renders the pdf export size options and adds them to the `select` component
|
|
1090
|
-
*
|
|
1091
|
-
* @protected
|
|
1092
|
-
*/
|
|
1093
|
-
_renderOptions() {
|
|
1094
|
-
const s = pdfLabelFormats;
|
|
1095
|
-
const sortedPdfIndo = (s.default || s).sort((a, b) => {
|
|
1096
|
-
const _a = parseInt(a.descriptionPDF.labelsPerPageDisplay, 10);
|
|
1097
|
-
const _b = parseInt(b.descriptionPDF.labelsPerPageDisplay, 10);
|
|
1098
|
-
return _a < _b ? -1 : _a > _b ? 1 : 0;
|
|
1099
|
-
});
|
|
1100
|
-
sortedPdfIndo.forEach((l, i) => {
|
|
1101
|
-
const option = document.createElement("calcite-option");
|
|
1102
|
-
option.value = l;
|
|
1103
|
-
option.innerHTML = this._getLabelSizeText(l);
|
|
1104
|
-
this._labelInfoElement.appendChild(option);
|
|
1105
|
-
if (this.defaultNumLabelsPerPage ? parseInt(l.descriptionPDF.labelsPerPageDisplay, 10) === this.defaultNumLabelsPerPage : i === 0) {
|
|
1106
|
-
// Setting selected wasn't enough to trigger it being the 'selectedOption'
|
|
1107
|
-
option.selected = true;
|
|
1108
|
-
this._labelInfoElement.selectedOption = option;
|
|
1109
|
-
}
|
|
1110
|
-
});
|
|
1111
|
-
}
|
|
1112
|
-
get el() { return index.getElement(this); }
|
|
1113
|
-
};
|
|
978
|
+
const PdfDownload = class {
|
|
979
|
+
constructor(hostRef) {
|
|
980
|
+
index.registerInstance(this, hostRef);
|
|
981
|
+
this.defaultNumLabelsPerPage = undefined;
|
|
982
|
+
this.disabled = false;
|
|
983
|
+
this._translations = undefined;
|
|
984
|
+
}
|
|
985
|
+
//--------------------------------------------------------------------------
|
|
986
|
+
//
|
|
987
|
+
// Watch handlers
|
|
988
|
+
//
|
|
989
|
+
//--------------------------------------------------------------------------
|
|
990
|
+
//--------------------------------------------------------------------------
|
|
991
|
+
//
|
|
992
|
+
// Methods (public)
|
|
993
|
+
//
|
|
994
|
+
//--------------------------------------------------------------------------
|
|
995
|
+
/**
|
|
996
|
+
* Downloads csv of mailing labels for the provided list of ids
|
|
997
|
+
*
|
|
998
|
+
* @param exportInfos Information about items to be exported
|
|
999
|
+
* @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
|
|
1000
|
+
* @param addColumnTitle Indicates if column headings should be included in output
|
|
1001
|
+
* @returns Promise resolving when function is done
|
|
1002
|
+
*/
|
|
1003
|
+
async downloadCSV(exportInfos, removeDuplicates, addColumnTitle = true) {
|
|
1004
|
+
return downloadUtils.downloadCSV(exportInfos, true, // formatUsingLayerPopup
|
|
1005
|
+
removeDuplicates, addColumnTitle);
|
|
1006
|
+
}
|
|
1007
|
+
/**
|
|
1008
|
+
* Downloads pdf of mailing labels for the provided list of ids
|
|
1009
|
+
*
|
|
1010
|
+
* @param exportInfos Information about items to be exported
|
|
1011
|
+
* @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
|
|
1012
|
+
* @param title Title for each page
|
|
1013
|
+
* @param initialImageDataUrl Data URL of image for first page
|
|
1014
|
+
* @returns Promise resolving when function is done
|
|
1015
|
+
*/
|
|
1016
|
+
async downloadPDF(exportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "") {
|
|
1017
|
+
var _c;
|
|
1018
|
+
return downloadUtils.downloadPDF(exportInfos, (_c = this._labelInfoElement.selectedOption) === null || _c === void 0 ? void 0 : _c.value, removeDuplicates, title, initialImageDataUrl);
|
|
1019
|
+
}
|
|
1020
|
+
//--------------------------------------------------------------------------
|
|
1021
|
+
//
|
|
1022
|
+
// Events (public)
|
|
1023
|
+
//
|
|
1024
|
+
//--------------------------------------------------------------------------
|
|
1025
|
+
//--------------------------------------------------------------------------
|
|
1026
|
+
//
|
|
1027
|
+
// Functions (lifecycle)
|
|
1028
|
+
//
|
|
1029
|
+
//--------------------------------------------------------------------------
|
|
1030
|
+
/**
|
|
1031
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
1032
|
+
*/
|
|
1033
|
+
async componentWillLoad() {
|
|
1034
|
+
await this._getTranslations();
|
|
1035
|
+
await this._initModules();
|
|
1036
|
+
}
|
|
1037
|
+
/**
|
|
1038
|
+
* Renders the component.
|
|
1039
|
+
*/
|
|
1040
|
+
render() {
|
|
1041
|
+
return (index.h(index.Host, null, index.h("calcite-select", { disabled: this.disabled, label: "", ref: (el) => { this._labelInfoElement = el; } })));
|
|
1042
|
+
}
|
|
1043
|
+
componentDidRender() {
|
|
1044
|
+
// Render the options outside of Stencil's rendering so that it doesn't mangle RTL text with embedded LTR
|
|
1045
|
+
this._renderOptions();
|
|
1046
|
+
}
|
|
1047
|
+
//--------------------------------------------------------------------------
|
|
1048
|
+
//
|
|
1049
|
+
// Functions (protected)
|
|
1050
|
+
//
|
|
1051
|
+
//--------------------------------------------------------------------------
|
|
1052
|
+
/**
|
|
1053
|
+
* Load esri javascript api modules
|
|
1054
|
+
*
|
|
1055
|
+
* @returns Promise resolving when function is done
|
|
1056
|
+
*
|
|
1057
|
+
* @protected
|
|
1058
|
+
*/
|
|
1059
|
+
async _initModules() {
|
|
1060
|
+
const [intl] = await loadModules.loadModules([
|
|
1061
|
+
"esri/intl"
|
|
1062
|
+
]);
|
|
1063
|
+
this._intl = intl;
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* Gets the formatted pdf export size text
|
|
1067
|
+
*
|
|
1068
|
+
* @param labelInfo current user selected label info
|
|
1069
|
+
*
|
|
1070
|
+
* @returns the pdf label as a string
|
|
1071
|
+
* @protected
|
|
1072
|
+
*/
|
|
1073
|
+
_getLabelSizeText(labelInfo) {
|
|
1074
|
+
const lNum = labelInfo.descriptionPDF.labelsPerPageDisplay;
|
|
1075
|
+
const lSize = "‎" + labelInfo.descriptionPDF.labelWidthDisplay + " x " +
|
|
1076
|
+
labelInfo.descriptionPDF.labelHeightDisplay + "‏";
|
|
1077
|
+
return this._translations.pdfLabel.replace("{{n}}", lNum).replace("{{labelSize}}", lSize);
|
|
1078
|
+
}
|
|
1079
|
+
/**
|
|
1080
|
+
* Fetches the component's translations
|
|
1081
|
+
*
|
|
1082
|
+
* @protected
|
|
1083
|
+
*/
|
|
1084
|
+
async _getTranslations() {
|
|
1085
|
+
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
1086
|
+
this._translations = translations[0];
|
|
1087
|
+
}
|
|
1088
|
+
/**
|
|
1089
|
+
* Renders the pdf export size options and adds them to the `select` component
|
|
1090
|
+
*
|
|
1091
|
+
* @protected
|
|
1092
|
+
*/
|
|
1093
|
+
_renderOptions() {
|
|
1094
|
+
const s = pdfLabelFormats;
|
|
1095
|
+
const sortedPdfIndo = (s.default || s).sort((a, b) => {
|
|
1096
|
+
const _a = parseInt(a.descriptionPDF.labelsPerPageDisplay, 10);
|
|
1097
|
+
const _b = parseInt(b.descriptionPDF.labelsPerPageDisplay, 10);
|
|
1098
|
+
return _a < _b ? -1 : _a > _b ? 1 : 0;
|
|
1099
|
+
});
|
|
1100
|
+
sortedPdfIndo.forEach((l, i) => {
|
|
1101
|
+
const option = document.createElement("calcite-option");
|
|
1102
|
+
option.value = l;
|
|
1103
|
+
option.innerHTML = this._getLabelSizeText(l);
|
|
1104
|
+
this._labelInfoElement.appendChild(option);
|
|
1105
|
+
if (this.defaultNumLabelsPerPage ? parseInt(l.descriptionPDF.labelsPerPageDisplay, 10) === this.defaultNumLabelsPerPage : i === 0) {
|
|
1106
|
+
// Setting selected wasn't enough to trigger it being the 'selectedOption'
|
|
1107
|
+
option.selected = true;
|
|
1108
|
+
this._labelInfoElement.selectedOption = option;
|
|
1109
|
+
}
|
|
1110
|
+
});
|
|
1111
|
+
}
|
|
1112
|
+
get el() { return index.getElement(this); }
|
|
1113
|
+
};
|
|
1114
1114
|
PdfDownload.style = pdfDownloadCss;
|
|
1115
1115
|
|
|
1116
1116
|
const refineSelectionCss = ":host{display:block}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.border{outline:1px solid var(--calcite-ui-border-input)}.margin-top-1{margin-top:1rem}.esri-sketch{display:flex;flex-flow:column wrap}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:var(--calcite-ui-foreground-1)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row nowrap;padding:0}*/ .esri-sketch__tool-section{border-right:1px solid rgba(110,110,110,.3)}.esri-sketch__section{align-items:center;display:flex;flex-flow:row nowrap;padding:0 7px;margin:6px 0;border-right:1px solid rgba(110,110,110,.3)}.display-flex{display:flex}.font-bold{font-weight:bold}.width-full{width:100%}.label-margin-0{--calcite-label-margin-bottom:0}.padding-start-1-2{padding-inline-start:0.5rem}.font-weight-500{font-weight:500}.word-wrap-anywhere{word-wrap:anywhere}";
|
|
1117
1117
|
|
|
1118
|
-
const RefineSelection = class {
|
|
1119
|
-
constructor(hostRef) {
|
|
1120
|
-
index.registerInstance(this, hostRef);
|
|
1121
|
-
this.selectionLoadingChange = index.createEvent(this, "selectionLoadingChange", 7);
|
|
1122
|
-
this.selectionSetsChanged = index.createEvent(this, "selectionSetsChanged", 7);
|
|
1123
|
-
//--------------------------------------------------------------------------
|
|
1124
|
-
//
|
|
1125
|
-
// Properties (protected)
|
|
1126
|
-
//
|
|
1127
|
-
//--------------------------------------------------------------------------
|
|
1128
|
-
/**
|
|
1129
|
-
* boolean: Indicates if any new graphics should be added or removed
|
|
1130
|
-
*/
|
|
1131
|
-
this._addEnabled = true;
|
|
1132
|
-
/**
|
|
1133
|
-
* ISelectionSet[]: The current list of selection sets
|
|
1134
|
-
*/
|
|
1135
|
-
this._refineSets = [];
|
|
1136
|
-
/**
|
|
1137
|
-
* string[]: The list of all layers that have current selections
|
|
1138
|
-
*/
|
|
1139
|
-
this._enabledLayerIds = [];
|
|
1140
|
-
/**
|
|
1141
|
-
* {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
|
|
1142
|
-
*/
|
|
1143
|
-
this._featuresCollection = {};
|
|
1144
|
-
this.addresseeLayer = undefined;
|
|
1145
|
-
this.enabledLayerIds = [];
|
|
1146
|
-
this.mapView = undefined;
|
|
1147
|
-
this.selectionSets = [];
|
|
1148
|
-
this.sketchLineSymbol = undefined;
|
|
1149
|
-
this.sketchPointSymbol = undefined;
|
|
1150
|
-
this.sketchPolygonSymbol = undefined;
|
|
1151
|
-
this._translations = undefined;
|
|
1152
|
-
this._selectionMode = interfaces.ESelectionMode.ADD;
|
|
1153
|
-
this._refineLayer = undefined;
|
|
1154
|
-
}
|
|
1155
|
-
//--------------------------------------------------------------------------
|
|
1156
|
-
//
|
|
1157
|
-
// Functions (lifecycle)
|
|
1158
|
-
//
|
|
1159
|
-
//--------------------------------------------------------------------------
|
|
1160
|
-
/**
|
|
1161
|
-
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
1162
|
-
*/
|
|
1163
|
-
async componentWillLoad() {
|
|
1164
|
-
await this._getTranslations();
|
|
1165
|
-
this._enabledLayerIds = this._getEnabledLayerIds();
|
|
1166
|
-
await this._setRefineSet(this._enabledLayerIds[0]);
|
|
1167
|
-
}
|
|
1168
|
-
/**
|
|
1169
|
-
* Renders the component.
|
|
1170
|
-
*/
|
|
1171
|
-
render() {
|
|
1172
|
-
var _a, _b;
|
|
1173
|
-
const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
|
|
1174
|
-
return (index.h(index.Host, null, index.h("div", { class: layerPickerClass + " padding-top-sides-1" }, index.h("div", { class: "display-flex" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, index.h("div", { class: "display-flex" }, this._translations.inputLayer, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), index.h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id] })), index.h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, index.h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), index.h("div", { class: "padding-1" }, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-segmented-control", { class: "w-100" }, index.h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.ADD), value: interfaces.ESelectionMode.ADD }, index.h("span", { class: "font-weight-500" }, this._translations.add)), index.h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.REMOVE), value: interfaces.ESelectionMode.REMOVE }, index.h("span", { class: "font-weight-500" }, this._translations.remove)))), index.h("div", null, index.h("map-draw-tools", { active: true, drawMode: interfaces.EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
1175
|
-
}
|
|
1176
|
-
//--------------------------------------------------------------------------
|
|
1177
|
-
//
|
|
1178
|
-
// Functions (protected)
|
|
1179
|
-
//
|
|
1180
|
-
//--------------------------------------------------------------------------
|
|
1181
|
-
/**
|
|
1182
|
-
* Set the user selected layer as the current refine layer
|
|
1183
|
-
*
|
|
1184
|
-
* @param evt contains the selected layer id
|
|
1185
|
-
*
|
|
1186
|
-
* @protected
|
|
1187
|
-
*/
|
|
1188
|
-
_layerSelectionChange(evt) {
|
|
1189
|
-
const id = evt.detail[0];
|
|
1190
|
-
void this._setRefineSet(id);
|
|
1191
|
-
}
|
|
1192
|
-
/**
|
|
1193
|
-
* Store the current selection mode
|
|
1194
|
-
*
|
|
1195
|
-
* @param selectionMode the current selection mode ADD || REMOVE
|
|
1196
|
-
*
|
|
1197
|
-
* @protected
|
|
1198
|
-
*/
|
|
1199
|
-
_setSelectionMode(selectionMode) {
|
|
1200
|
-
this._selectionMode = selectionMode;
|
|
1201
|
-
}
|
|
1202
|
-
/**
|
|
1203
|
-
* Select features based on the user drawn geometry
|
|
1204
|
-
*
|
|
1205
|
-
* @param evt ISketchGraphicsChange stores the new graphics and a boolean useOIDs
|
|
1206
|
-
* useOIDs is leveraged in some situations to use the feature OIDs rather than the graphic geometry
|
|
1207
|
-
*
|
|
1208
|
-
* @protected
|
|
1209
|
-
*/
|
|
1210
|
-
_sketchGraphicsChanged(evt) {
|
|
1211
|
-
var _a;
|
|
1212
|
-
const geom = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.graphics[0].geometry;
|
|
1213
|
-
void this._selectFeatures(geom);
|
|
1214
|
-
}
|
|
1215
|
-
/**
|
|
1216
|
-
* Get the layer ids for all layers in the selection sets
|
|
1217
|
-
*
|
|
1218
|
-
* @protected
|
|
1219
|
-
*/
|
|
1220
|
-
_getEnabledLayerIds() {
|
|
1221
|
-
return this.selectionSets.reduce((prev, cur) => {
|
|
1222
|
-
var _a;
|
|
1223
|
-
const id = (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.id;
|
|
1224
|
-
if (id && prev.indexOf(id) < 0) {
|
|
1225
|
-
prev.push(id);
|
|
1226
|
-
}
|
|
1227
|
-
else if (cur.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1228
|
-
Object.keys(cur.refineInfos).forEach(k => {
|
|
1229
|
-
if (prev.indexOf(k) < 0) {
|
|
1230
|
-
prev.push(k);
|
|
1231
|
-
}
|
|
1232
|
-
});
|
|
1233
|
-
}
|
|
1234
|
-
return prev;
|
|
1235
|
-
}, []);
|
|
1236
|
-
}
|
|
1237
|
-
/**
|
|
1238
|
-
* Set the refine layer...any adds or removes will be done against this layer
|
|
1239
|
-
*
|
|
1240
|
-
* @param id the id of the layer that should be used as the current refine layer
|
|
1241
|
-
*
|
|
1242
|
-
* @protected
|
|
1243
|
-
*/
|
|
1244
|
-
async _setRefineSet(id) {
|
|
1245
|
-
if (!this.selectionSets.some((ss) => {
|
|
1246
|
-
if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1247
|
-
this._refineSelectionSet = ss;
|
|
1248
|
-
return Object.keys(ss.refineInfos).indexOf(id) > -1;
|
|
1249
|
-
}
|
|
1250
|
-
})) {
|
|
1251
|
-
await this._initRefineSet(id, this._refineSelectionSet);
|
|
1252
|
-
}
|
|
1253
|
-
this._refineLayer = this._refineSelectionSet.refineInfos[id].layerView;
|
|
1254
|
-
}
|
|
1255
|
-
/**
|
|
1256
|
-
* Initialize the refine selection set
|
|
1257
|
-
*
|
|
1258
|
-
* @param id the layer id to use for the refine selection set
|
|
1259
|
-
* @param selectionSet the current refine selection set
|
|
1260
|
-
*
|
|
1261
|
-
* @protected
|
|
1262
|
-
*/
|
|
1263
|
-
async _initRefineSet(id, selectionSet) {
|
|
1264
|
-
const refineInfo = {};
|
|
1265
|
-
refineInfo[id] = {
|
|
1266
|
-
addIds: [],
|
|
1267
|
-
removeIds: [],
|
|
1268
|
-
layerView: await mapViewUtils.getFeatureLayerView(this.mapView, id)
|
|
1269
|
-
};
|
|
1270
|
-
if (selectionSet) {
|
|
1271
|
-
selectionSet.refineInfos = Object.assign(Object.assign({}, selectionSet.refineInfos), refineInfo);
|
|
1272
|
-
}
|
|
1273
|
-
else {
|
|
1274
|
-
this._refineSelectionSet = {
|
|
1275
|
-
id: Date.now(),
|
|
1276
|
-
searchResult: undefined,
|
|
1277
|
-
buffer: undefined,
|
|
1278
|
-
distance: 0,
|
|
1279
|
-
download: true,
|
|
1280
|
-
unit: "feet",
|
|
1281
|
-
label: "Refine",
|
|
1282
|
-
selectedIds: [],
|
|
1283
|
-
layerView: undefined,
|
|
1284
|
-
geometries: [],
|
|
1285
|
-
graphics: [],
|
|
1286
|
-
selectLayers: [],
|
|
1287
|
-
workflowType: interfaces.EWorkflowType.REFINE,
|
|
1288
|
-
searchDistanceEnabled: false,
|
|
1289
|
-
useLayerFeaturesEnabled: false,
|
|
1290
|
-
refineInfos: refineInfo,
|
|
1291
|
-
redoStack: [],
|
|
1292
|
-
undoStack: [],
|
|
1293
|
-
sketchGraphic: undefined
|
|
1294
|
-
};
|
|
1295
|
-
this.selectionSets.push(this._refineSelectionSet);
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
/**
|
|
1299
|
-
* Undo the most current ADD or REMOVE operation
|
|
1300
|
-
*
|
|
1301
|
-
* @returns Promise resolving when function is done
|
|
1302
|
-
*
|
|
1303
|
-
* @protected
|
|
1304
|
-
*/
|
|
1305
|
-
_undo() {
|
|
1306
|
-
const undoOp = this._refineSelectionSet.undoStack.pop();
|
|
1307
|
-
void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.redoStack, undoOp.layerView);
|
|
1308
|
-
}
|
|
1309
|
-
/**
|
|
1310
|
-
* Redo the most current ADD or REMOVE operation
|
|
1311
|
-
*
|
|
1312
|
-
* @returns Promise resolving when function is done
|
|
1313
|
-
*
|
|
1314
|
-
* @protected
|
|
1315
|
-
*/
|
|
1316
|
-
_redo() {
|
|
1317
|
-
const redoOp = this._refineSelectionSet.redoStack.pop();
|
|
1318
|
-
void this._updateIds(redoOp.ids, redoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.undoStack, redoOp.layerView);
|
|
1319
|
-
}
|
|
1320
|
-
/**
|
|
1321
|
-
* Create a list to show the number added/removed/total unique selected
|
|
1322
|
-
*
|
|
1323
|
-
* @returns the list node
|
|
1324
|
-
* @protected
|
|
1325
|
-
*/
|
|
1326
|
-
_getRefineSelectionSetList() {
|
|
1327
|
-
const total = this._getTotal(this.selectionSets);
|
|
1328
|
-
let refineSet;
|
|
1329
|
-
this.selectionSets.some(ss => {
|
|
1330
|
-
if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1331
|
-
refineSet = ss;
|
|
1332
|
-
return true;
|
|
1333
|
-
}
|
|
1334
|
-
});
|
|
1335
|
-
let numAdded = 0;
|
|
1336
|
-
let numRemoved = 0;
|
|
1337
|
-
Object.keys(refineSet.refineInfos).forEach(k => {
|
|
1338
|
-
numAdded += refineSet.refineInfos[k].addIds.length;
|
|
1339
|
-
numRemoved += refineSet.refineInfos[k].removeIds.length;
|
|
1340
|
-
});
|
|
1341
|
-
return [(index.h("calcite-list-item", { label: this._translations.featuresAdded.replace("{{n}}", numAdded.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.featuresRemoved.replace("{{n}}", numRemoved.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.totalSelected.replace("{{n}}", total.toString()), "non-interactive": true }))];
|
|
1342
|
-
}
|
|
1343
|
-
/**
|
|
1344
|
-
* Get the total number od ids across all selection sets
|
|
1345
|
-
*
|
|
1346
|
-
* @returns the total number of ids
|
|
1347
|
-
* @protected
|
|
1348
|
-
*/
|
|
1349
|
-
_getTotal(selectionSets) {
|
|
1350
|
-
const idSets = mapViewUtils.getIdSets(selectionSets);
|
|
1351
|
-
return Object.keys(idSets).reduce((prev, cur) => {
|
|
1352
|
-
const idSet = idSets[cur];
|
|
1353
|
-
prev += idSet.ids.length;
|
|
1354
|
-
return prev;
|
|
1355
|
-
}, 0);
|
|
1356
|
-
}
|
|
1357
|
-
/**
|
|
1358
|
-
* Fetches the component's translations
|
|
1359
|
-
*
|
|
1360
|
-
* @protected
|
|
1361
|
-
*/
|
|
1362
|
-
async _getTranslations() {
|
|
1363
|
-
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
1364
|
-
this._translations = translations[0];
|
|
1365
|
-
}
|
|
1366
|
-
/**
|
|
1367
|
-
* Select features based on the input geometry
|
|
1368
|
-
*
|
|
1369
|
-
* @param geom the geometry used for selection
|
|
1370
|
-
*
|
|
1371
|
-
* @returns Promise resolving when function is done
|
|
1372
|
-
*
|
|
1373
|
-
* @protected
|
|
1374
|
-
*/
|
|
1375
|
-
async _selectFeatures(geom) {
|
|
1376
|
-
var _a, _b;
|
|
1377
|
-
this.selectionLoadingChange.emit(true);
|
|
1378
|
-
this._featuresCollection[(_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id] = [];
|
|
1379
|
-
const response = await mapViewUtils.queryFeaturesByGeometry(0, (_b = this._refineLayer) === null || _b === void 0 ? void 0 : _b.layer, geom, this._featuresCollection);
|
|
1380
|
-
this.selectionLoadingChange.emit(false);
|
|
1381
|
-
let graphics = [];
|
|
1382
|
-
Object.keys(response).forEach(k => {
|
|
1383
|
-
var _a;
|
|
1384
|
-
if (k === ((_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id)) {
|
|
1385
|
-
graphics = graphics.concat(response[k]);
|
|
1386
|
-
}
|
|
1387
|
-
});
|
|
1388
|
-
const oids = Array.isArray(graphics) ? graphics.map(g => { var _a; return g.attributes[(_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.objectIdField]; }) : [];
|
|
1389
|
-
await this._updateIds(oids, this._selectionMode, this._refineSelectionSet.undoStack, this._refineLayer);
|
|
1390
|
-
this._drawTools.clear();
|
|
1391
|
-
}
|
|
1392
|
-
/**
|
|
1393
|
-
* Highlight any selected features in the map
|
|
1394
|
-
*
|
|
1395
|
-
* @returns Promise resolving when function is done
|
|
1396
|
-
* @protected
|
|
1397
|
-
*/
|
|
1398
|
-
async _highlightFeatures() {
|
|
1399
|
-
this._clearHighlight();
|
|
1400
|
-
publicNotificationStore.state.highlightHandles = await mapViewUtils.highlightAllFeatures(this.selectionSets);
|
|
1401
|
-
}
|
|
1402
|
-
/**
|
|
1403
|
-
* Clear any highlighted features in the map
|
|
1404
|
-
*
|
|
1405
|
-
* @protected
|
|
1406
|
-
*/
|
|
1407
|
-
_clearHighlight() {
|
|
1408
|
-
publicNotificationStore.state.removeHandles();
|
|
1409
|
-
}
|
|
1410
|
-
/**
|
|
1411
|
-
* Update the ids for any ADD or REMOVE operation and highlight the features.
|
|
1412
|
-
*
|
|
1413
|
-
* @param oids the ids to add or remove
|
|
1414
|
-
* @param mode ADD or REMOVE this will control if the ids are added or removed
|
|
1415
|
-
* @param operationStack the undo or redo stack to push the operation to
|
|
1416
|
-
* @param operationMode ADD or REMOVE the mode of the individual refine operation
|
|
1417
|
-
*
|
|
1418
|
-
* @returns Promise resolving when function is done
|
|
1419
|
-
*
|
|
1420
|
-
* @protected
|
|
1421
|
-
*/
|
|
1422
|
-
async _updateIds(ids, mode, operationStack, layerView) {
|
|
1423
|
-
let selectionSetsChanged = false;
|
|
1424
|
-
const refineInfos = this._refineSelectionSet.refineInfos;
|
|
1425
|
-
const layerId = layerView.layer.id;
|
|
1426
|
-
const newRefineInfo = {};
|
|
1427
|
-
newRefineInfo[layerId] = {
|
|
1428
|
-
addIds: [],
|
|
1429
|
-
removeIds: [],
|
|
1430
|
-
layerView
|
|
1431
|
-
};
|
|
1432
|
-
const idUpdates = Object.keys(refineInfos).indexOf(layerId) > -1 ?
|
|
1433
|
-
refineInfos[layerId] : newRefineInfo[layerId];
|
|
1434
|
-
if (mode === interfaces.ESelectionMode.ADD) {
|
|
1435
|
-
idUpdates.addIds = [...new Set([...ids, ...idUpdates.addIds])];
|
|
1436
|
-
if (idUpdates.addIds.length > 0) {
|
|
1437
|
-
operationStack.push({
|
|
1438
|
-
ids,
|
|
1439
|
-
mode,
|
|
1440
|
-
layerView
|
|
1441
|
-
});
|
|
1442
|
-
}
|
|
1443
|
-
if (idUpdates.removeIds.length > 0) {
|
|
1444
|
-
idUpdates.removeIds = idUpdates.removeIds.filter(id => ids.indexOf(id) < 0);
|
|
1445
|
-
}
|
|
1446
|
-
}
|
|
1447
|
-
else {
|
|
1448
|
-
// ids are a result of the drawn geom...so it's possible they could contain ids that do
|
|
1449
|
-
// not exist in other selection sets
|
|
1450
|
-
const validIds = this.selectionSets.reduce((prev, cur) => {
|
|
1451
|
-
ids.forEach(id => {
|
|
1452
|
-
if (cur.workflowType !== interfaces.EWorkflowType.REFINE) {
|
|
1453
|
-
if (cur.selectedIds.indexOf(id) > -1) {
|
|
1454
|
-
prev.push(id);
|
|
1455
|
-
}
|
|
1456
|
-
}
|
|
1457
|
-
else {
|
|
1458
|
-
Object.keys(cur.refineInfos).some(k => {
|
|
1459
|
-
const refineInfo = cur.refineInfos[k];
|
|
1460
|
-
if (refineInfo.layerView.layer.id === layerView.layer.id && refineInfo.addIds.indexOf(id) > -1) {
|
|
1461
|
-
prev.push(id);
|
|
1462
|
-
return true;
|
|
1463
|
-
}
|
|
1464
|
-
});
|
|
1465
|
-
}
|
|
1466
|
-
});
|
|
1467
|
-
return prev;
|
|
1468
|
-
}, []);
|
|
1469
|
-
idUpdates.removeIds = [...new Set([...validIds, ...idUpdates.removeIds])];
|
|
1470
|
-
idUpdates.addIds = idUpdates.addIds.filter(id => validIds.indexOf(id) < 0);
|
|
1471
|
-
if (idUpdates.removeIds.length > 0) {
|
|
1472
|
-
operationStack.push({
|
|
1473
|
-
ids: validIds,
|
|
1474
|
-
mode,
|
|
1475
|
-
layerView
|
|
1476
|
-
});
|
|
1477
|
-
}
|
|
1478
|
-
this.selectionSets = this.selectionSets.reduce((prev, cur) => {
|
|
1479
|
-
if (cur.workflowType !== interfaces.EWorkflowType.REFINE &&
|
|
1480
|
-
cur.layerView.layer.id === layerView.layer.id) {
|
|
1481
|
-
cur.selectedIds = cur.selectedIds.filter(id => idUpdates.removeIds.indexOf(id) < 0);
|
|
1482
|
-
if (cur.selectedIds.length > 0) {
|
|
1483
|
-
prev.push(cur);
|
|
1484
|
-
}
|
|
1485
|
-
else {
|
|
1486
|
-
selectionSetsChanged = true;
|
|
1487
|
-
}
|
|
1488
|
-
}
|
|
1489
|
-
else {
|
|
1490
|
-
prev.push(cur);
|
|
1491
|
-
}
|
|
1492
|
-
return prev;
|
|
1493
|
-
}, []);
|
|
1494
|
-
}
|
|
1495
|
-
this._refineSelectionSet.refineInfos[layerId] = idUpdates;
|
|
1496
|
-
this.selectionSets = [...this.selectionSets];
|
|
1497
|
-
if (selectionSetsChanged) {
|
|
1498
|
-
this.selectionSetsChanged.emit(this.selectionSets);
|
|
1499
|
-
}
|
|
1500
|
-
await this._highlightFeatures();
|
|
1501
|
-
}
|
|
1502
|
-
get el() { return index.getElement(this); }
|
|
1503
|
-
};
|
|
1118
|
+
const RefineSelection = class {
|
|
1119
|
+
constructor(hostRef) {
|
|
1120
|
+
index.registerInstance(this, hostRef);
|
|
1121
|
+
this.selectionLoadingChange = index.createEvent(this, "selectionLoadingChange", 7);
|
|
1122
|
+
this.selectionSetsChanged = index.createEvent(this, "selectionSetsChanged", 7);
|
|
1123
|
+
//--------------------------------------------------------------------------
|
|
1124
|
+
//
|
|
1125
|
+
// Properties (protected)
|
|
1126
|
+
//
|
|
1127
|
+
//--------------------------------------------------------------------------
|
|
1128
|
+
/**
|
|
1129
|
+
* boolean: Indicates if any new graphics should be added or removed
|
|
1130
|
+
*/
|
|
1131
|
+
this._addEnabled = true;
|
|
1132
|
+
/**
|
|
1133
|
+
* ISelectionSet[]: The current list of selection sets
|
|
1134
|
+
*/
|
|
1135
|
+
this._refineSets = [];
|
|
1136
|
+
/**
|
|
1137
|
+
* string[]: The list of all layers that have current selections
|
|
1138
|
+
*/
|
|
1139
|
+
this._enabledLayerIds = [];
|
|
1140
|
+
/**
|
|
1141
|
+
* {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
|
|
1142
|
+
*/
|
|
1143
|
+
this._featuresCollection = {};
|
|
1144
|
+
this.addresseeLayer = undefined;
|
|
1145
|
+
this.enabledLayerIds = [];
|
|
1146
|
+
this.mapView = undefined;
|
|
1147
|
+
this.selectionSets = [];
|
|
1148
|
+
this.sketchLineSymbol = undefined;
|
|
1149
|
+
this.sketchPointSymbol = undefined;
|
|
1150
|
+
this.sketchPolygonSymbol = undefined;
|
|
1151
|
+
this._translations = undefined;
|
|
1152
|
+
this._selectionMode = interfaces.ESelectionMode.ADD;
|
|
1153
|
+
this._refineLayer = undefined;
|
|
1154
|
+
}
|
|
1155
|
+
//--------------------------------------------------------------------------
|
|
1156
|
+
//
|
|
1157
|
+
// Functions (lifecycle)
|
|
1158
|
+
//
|
|
1159
|
+
//--------------------------------------------------------------------------
|
|
1160
|
+
/**
|
|
1161
|
+
* StencilJS: Called once just after the component is first connected to the DOM.
|
|
1162
|
+
*/
|
|
1163
|
+
async componentWillLoad() {
|
|
1164
|
+
await this._getTranslations();
|
|
1165
|
+
this._enabledLayerIds = this._getEnabledLayerIds();
|
|
1166
|
+
await this._setRefineSet(this._enabledLayerIds[0]);
|
|
1167
|
+
}
|
|
1168
|
+
/**
|
|
1169
|
+
* Renders the component.
|
|
1170
|
+
*/
|
|
1171
|
+
render() {
|
|
1172
|
+
var _a, _b;
|
|
1173
|
+
const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
|
|
1174
|
+
return (index.h(index.Host, null, index.h("div", { class: layerPickerClass + " padding-top-sides-1" }, index.h("div", { class: "display-flex" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, index.h("div", { class: "display-flex" }, this._translations.inputLayer, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), index.h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id] })), index.h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, index.h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), index.h("div", { class: "padding-1" }, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-segmented-control", { class: "w-100" }, index.h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.ADD), value: interfaces.ESelectionMode.ADD }, index.h("span", { class: "font-weight-500" }, this._translations.add)), index.h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.REMOVE), value: interfaces.ESelectionMode.REMOVE }, index.h("span", { class: "font-weight-500" }, this._translations.remove)))), index.h("div", null, index.h("map-draw-tools", { active: true, drawMode: interfaces.EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
|
|
1175
|
+
}
|
|
1176
|
+
//--------------------------------------------------------------------------
|
|
1177
|
+
//
|
|
1178
|
+
// Functions (protected)
|
|
1179
|
+
//
|
|
1180
|
+
//--------------------------------------------------------------------------
|
|
1181
|
+
/**
|
|
1182
|
+
* Set the user selected layer as the current refine layer
|
|
1183
|
+
*
|
|
1184
|
+
* @param evt contains the selected layer id
|
|
1185
|
+
*
|
|
1186
|
+
* @protected
|
|
1187
|
+
*/
|
|
1188
|
+
_layerSelectionChange(evt) {
|
|
1189
|
+
const id = evt.detail[0];
|
|
1190
|
+
void this._setRefineSet(id);
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* Store the current selection mode
|
|
1194
|
+
*
|
|
1195
|
+
* @param selectionMode the current selection mode ADD || REMOVE
|
|
1196
|
+
*
|
|
1197
|
+
* @protected
|
|
1198
|
+
*/
|
|
1199
|
+
_setSelectionMode(selectionMode) {
|
|
1200
|
+
this._selectionMode = selectionMode;
|
|
1201
|
+
}
|
|
1202
|
+
/**
|
|
1203
|
+
* Select features based on the user drawn geometry
|
|
1204
|
+
*
|
|
1205
|
+
* @param evt ISketchGraphicsChange stores the new graphics and a boolean useOIDs
|
|
1206
|
+
* useOIDs is leveraged in some situations to use the feature OIDs rather than the graphic geometry
|
|
1207
|
+
*
|
|
1208
|
+
* @protected
|
|
1209
|
+
*/
|
|
1210
|
+
_sketchGraphicsChanged(evt) {
|
|
1211
|
+
var _a;
|
|
1212
|
+
const geom = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.graphics[0].geometry;
|
|
1213
|
+
void this._selectFeatures(geom);
|
|
1214
|
+
}
|
|
1215
|
+
/**
|
|
1216
|
+
* Get the layer ids for all layers in the selection sets
|
|
1217
|
+
*
|
|
1218
|
+
* @protected
|
|
1219
|
+
*/
|
|
1220
|
+
_getEnabledLayerIds() {
|
|
1221
|
+
return this.selectionSets.reduce((prev, cur) => {
|
|
1222
|
+
var _a;
|
|
1223
|
+
const id = (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.id;
|
|
1224
|
+
if (id && prev.indexOf(id) < 0) {
|
|
1225
|
+
prev.push(id);
|
|
1226
|
+
}
|
|
1227
|
+
else if (cur.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1228
|
+
Object.keys(cur.refineInfos).forEach(k => {
|
|
1229
|
+
if (prev.indexOf(k) < 0) {
|
|
1230
|
+
prev.push(k);
|
|
1231
|
+
}
|
|
1232
|
+
});
|
|
1233
|
+
}
|
|
1234
|
+
return prev;
|
|
1235
|
+
}, []);
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Set the refine layer...any adds or removes will be done against this layer
|
|
1239
|
+
*
|
|
1240
|
+
* @param id the id of the layer that should be used as the current refine layer
|
|
1241
|
+
*
|
|
1242
|
+
* @protected
|
|
1243
|
+
*/
|
|
1244
|
+
async _setRefineSet(id) {
|
|
1245
|
+
if (!this.selectionSets.some((ss) => {
|
|
1246
|
+
if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1247
|
+
this._refineSelectionSet = ss;
|
|
1248
|
+
return Object.keys(ss.refineInfos).indexOf(id) > -1;
|
|
1249
|
+
}
|
|
1250
|
+
})) {
|
|
1251
|
+
await this._initRefineSet(id, this._refineSelectionSet);
|
|
1252
|
+
}
|
|
1253
|
+
this._refineLayer = this._refineSelectionSet.refineInfos[id].layerView;
|
|
1254
|
+
}
|
|
1255
|
+
/**
|
|
1256
|
+
* Initialize the refine selection set
|
|
1257
|
+
*
|
|
1258
|
+
* @param id the layer id to use for the refine selection set
|
|
1259
|
+
* @param selectionSet the current refine selection set
|
|
1260
|
+
*
|
|
1261
|
+
* @protected
|
|
1262
|
+
*/
|
|
1263
|
+
async _initRefineSet(id, selectionSet) {
|
|
1264
|
+
const refineInfo = {};
|
|
1265
|
+
refineInfo[id] = {
|
|
1266
|
+
addIds: [],
|
|
1267
|
+
removeIds: [],
|
|
1268
|
+
layerView: await mapViewUtils.getFeatureLayerView(this.mapView, id)
|
|
1269
|
+
};
|
|
1270
|
+
if (selectionSet) {
|
|
1271
|
+
selectionSet.refineInfos = Object.assign(Object.assign({}, selectionSet.refineInfos), refineInfo);
|
|
1272
|
+
}
|
|
1273
|
+
else {
|
|
1274
|
+
this._refineSelectionSet = {
|
|
1275
|
+
id: Date.now(),
|
|
1276
|
+
searchResult: undefined,
|
|
1277
|
+
buffer: undefined,
|
|
1278
|
+
distance: 0,
|
|
1279
|
+
download: true,
|
|
1280
|
+
unit: "feet",
|
|
1281
|
+
label: "Refine",
|
|
1282
|
+
selectedIds: [],
|
|
1283
|
+
layerView: undefined,
|
|
1284
|
+
geometries: [],
|
|
1285
|
+
graphics: [],
|
|
1286
|
+
selectLayers: [],
|
|
1287
|
+
workflowType: interfaces.EWorkflowType.REFINE,
|
|
1288
|
+
searchDistanceEnabled: false,
|
|
1289
|
+
useLayerFeaturesEnabled: false,
|
|
1290
|
+
refineInfos: refineInfo,
|
|
1291
|
+
redoStack: [],
|
|
1292
|
+
undoStack: [],
|
|
1293
|
+
sketchGraphic: undefined
|
|
1294
|
+
};
|
|
1295
|
+
this.selectionSets.push(this._refineSelectionSet);
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
/**
|
|
1299
|
+
* Undo the most current ADD or REMOVE operation
|
|
1300
|
+
*
|
|
1301
|
+
* @returns Promise resolving when function is done
|
|
1302
|
+
*
|
|
1303
|
+
* @protected
|
|
1304
|
+
*/
|
|
1305
|
+
_undo() {
|
|
1306
|
+
const undoOp = this._refineSelectionSet.undoStack.pop();
|
|
1307
|
+
void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.redoStack, undoOp.layerView);
|
|
1308
|
+
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Redo the most current ADD or REMOVE operation
|
|
1311
|
+
*
|
|
1312
|
+
* @returns Promise resolving when function is done
|
|
1313
|
+
*
|
|
1314
|
+
* @protected
|
|
1315
|
+
*/
|
|
1316
|
+
_redo() {
|
|
1317
|
+
const redoOp = this._refineSelectionSet.redoStack.pop();
|
|
1318
|
+
void this._updateIds(redoOp.ids, redoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.undoStack, redoOp.layerView);
|
|
1319
|
+
}
|
|
1320
|
+
/**
|
|
1321
|
+
* Create a list to show the number added/removed/total unique selected
|
|
1322
|
+
*
|
|
1323
|
+
* @returns the list node
|
|
1324
|
+
* @protected
|
|
1325
|
+
*/
|
|
1326
|
+
_getRefineSelectionSetList() {
|
|
1327
|
+
const total = this._getTotal(this.selectionSets);
|
|
1328
|
+
let refineSet;
|
|
1329
|
+
this.selectionSets.some(ss => {
|
|
1330
|
+
if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
|
|
1331
|
+
refineSet = ss;
|
|
1332
|
+
return true;
|
|
1333
|
+
}
|
|
1334
|
+
});
|
|
1335
|
+
let numAdded = 0;
|
|
1336
|
+
let numRemoved = 0;
|
|
1337
|
+
Object.keys(refineSet.refineInfos).forEach(k => {
|
|
1338
|
+
numAdded += refineSet.refineInfos[k].addIds.length;
|
|
1339
|
+
numRemoved += refineSet.refineInfos[k].removeIds.length;
|
|
1340
|
+
});
|
|
1341
|
+
return [(index.h("calcite-list-item", { label: this._translations.featuresAdded.replace("{{n}}", numAdded.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.featuresRemoved.replace("{{n}}", numRemoved.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.totalSelected.replace("{{n}}", total.toString()), "non-interactive": true }))];
|
|
1342
|
+
}
|
|
1343
|
+
/**
|
|
1344
|
+
* Get the total number od ids across all selection sets
|
|
1345
|
+
*
|
|
1346
|
+
* @returns the total number of ids
|
|
1347
|
+
* @protected
|
|
1348
|
+
*/
|
|
1349
|
+
_getTotal(selectionSets) {
|
|
1350
|
+
const idSets = mapViewUtils.getIdSets(selectionSets);
|
|
1351
|
+
return Object.keys(idSets).reduce((prev, cur) => {
|
|
1352
|
+
const idSet = idSets[cur];
|
|
1353
|
+
prev += idSet.ids.length;
|
|
1354
|
+
return prev;
|
|
1355
|
+
}, 0);
|
|
1356
|
+
}
|
|
1357
|
+
/**
|
|
1358
|
+
* Fetches the component's translations
|
|
1359
|
+
*
|
|
1360
|
+
* @protected
|
|
1361
|
+
*/
|
|
1362
|
+
async _getTranslations() {
|
|
1363
|
+
const translations = await locale.getLocaleComponentStrings(this.el);
|
|
1364
|
+
this._translations = translations[0];
|
|
1365
|
+
}
|
|
1366
|
+
/**
|
|
1367
|
+
* Select features based on the input geometry
|
|
1368
|
+
*
|
|
1369
|
+
* @param geom the geometry used for selection
|
|
1370
|
+
*
|
|
1371
|
+
* @returns Promise resolving when function is done
|
|
1372
|
+
*
|
|
1373
|
+
* @protected
|
|
1374
|
+
*/
|
|
1375
|
+
async _selectFeatures(geom) {
|
|
1376
|
+
var _a, _b;
|
|
1377
|
+
this.selectionLoadingChange.emit(true);
|
|
1378
|
+
this._featuresCollection[(_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id] = [];
|
|
1379
|
+
const response = await mapViewUtils.queryFeaturesByGeometry(0, (_b = this._refineLayer) === null || _b === void 0 ? void 0 : _b.layer, geom, this._featuresCollection);
|
|
1380
|
+
this.selectionLoadingChange.emit(false);
|
|
1381
|
+
let graphics = [];
|
|
1382
|
+
Object.keys(response).forEach(k => {
|
|
1383
|
+
var _a;
|
|
1384
|
+
if (k === ((_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id)) {
|
|
1385
|
+
graphics = graphics.concat(response[k]);
|
|
1386
|
+
}
|
|
1387
|
+
});
|
|
1388
|
+
const oids = Array.isArray(graphics) ? graphics.map(g => { var _a; return g.attributes[(_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.objectIdField]; }) : [];
|
|
1389
|
+
await this._updateIds(oids, this._selectionMode, this._refineSelectionSet.undoStack, this._refineLayer);
|
|
1390
|
+
this._drawTools.clear();
|
|
1391
|
+
}
|
|
1392
|
+
/**
|
|
1393
|
+
* Highlight any selected features in the map
|
|
1394
|
+
*
|
|
1395
|
+
* @returns Promise resolving when function is done
|
|
1396
|
+
* @protected
|
|
1397
|
+
*/
|
|
1398
|
+
async _highlightFeatures() {
|
|
1399
|
+
this._clearHighlight();
|
|
1400
|
+
publicNotificationStore.state.highlightHandles = await mapViewUtils.highlightAllFeatures(this.selectionSets);
|
|
1401
|
+
}
|
|
1402
|
+
/**
|
|
1403
|
+
* Clear any highlighted features in the map
|
|
1404
|
+
*
|
|
1405
|
+
* @protected
|
|
1406
|
+
*/
|
|
1407
|
+
_clearHighlight() {
|
|
1408
|
+
publicNotificationStore.state.removeHandles();
|
|
1409
|
+
}
|
|
1410
|
+
/**
|
|
1411
|
+
* Update the ids for any ADD or REMOVE operation and highlight the features.
|
|
1412
|
+
*
|
|
1413
|
+
* @param oids the ids to add or remove
|
|
1414
|
+
* @param mode ADD or REMOVE this will control if the ids are added or removed
|
|
1415
|
+
* @param operationStack the undo or redo stack to push the operation to
|
|
1416
|
+
* @param operationMode ADD or REMOVE the mode of the individual refine operation
|
|
1417
|
+
*
|
|
1418
|
+
* @returns Promise resolving when function is done
|
|
1419
|
+
*
|
|
1420
|
+
* @protected
|
|
1421
|
+
*/
|
|
1422
|
+
async _updateIds(ids, mode, operationStack, layerView) {
|
|
1423
|
+
let selectionSetsChanged = false;
|
|
1424
|
+
const refineInfos = this._refineSelectionSet.refineInfos;
|
|
1425
|
+
const layerId = layerView.layer.id;
|
|
1426
|
+
const newRefineInfo = {};
|
|
1427
|
+
newRefineInfo[layerId] = {
|
|
1428
|
+
addIds: [],
|
|
1429
|
+
removeIds: [],
|
|
1430
|
+
layerView
|
|
1431
|
+
};
|
|
1432
|
+
const idUpdates = Object.keys(refineInfos).indexOf(layerId) > -1 ?
|
|
1433
|
+
refineInfos[layerId] : newRefineInfo[layerId];
|
|
1434
|
+
if (mode === interfaces.ESelectionMode.ADD) {
|
|
1435
|
+
idUpdates.addIds = [...new Set([...ids, ...idUpdates.addIds])];
|
|
1436
|
+
if (idUpdates.addIds.length > 0) {
|
|
1437
|
+
operationStack.push({
|
|
1438
|
+
ids,
|
|
1439
|
+
mode,
|
|
1440
|
+
layerView
|
|
1441
|
+
});
|
|
1442
|
+
}
|
|
1443
|
+
if (idUpdates.removeIds.length > 0) {
|
|
1444
|
+
idUpdates.removeIds = idUpdates.removeIds.filter(id => ids.indexOf(id) < 0);
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
else {
|
|
1448
|
+
// ids are a result of the drawn geom...so it's possible they could contain ids that do
|
|
1449
|
+
// not exist in other selection sets
|
|
1450
|
+
const validIds = this.selectionSets.reduce((prev, cur) => {
|
|
1451
|
+
ids.forEach(id => {
|
|
1452
|
+
if (cur.workflowType !== interfaces.EWorkflowType.REFINE) {
|
|
1453
|
+
if (cur.selectedIds.indexOf(id) > -1) {
|
|
1454
|
+
prev.push(id);
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
else {
|
|
1458
|
+
Object.keys(cur.refineInfos).some(k => {
|
|
1459
|
+
const refineInfo = cur.refineInfos[k];
|
|
1460
|
+
if (refineInfo.layerView.layer.id === layerView.layer.id && refineInfo.addIds.indexOf(id) > -1) {
|
|
1461
|
+
prev.push(id);
|
|
1462
|
+
return true;
|
|
1463
|
+
}
|
|
1464
|
+
});
|
|
1465
|
+
}
|
|
1466
|
+
});
|
|
1467
|
+
return prev;
|
|
1468
|
+
}, []);
|
|
1469
|
+
idUpdates.removeIds = [...new Set([...validIds, ...idUpdates.removeIds])];
|
|
1470
|
+
idUpdates.addIds = idUpdates.addIds.filter(id => validIds.indexOf(id) < 0);
|
|
1471
|
+
if (idUpdates.removeIds.length > 0) {
|
|
1472
|
+
operationStack.push({
|
|
1473
|
+
ids: validIds,
|
|
1474
|
+
mode,
|
|
1475
|
+
layerView
|
|
1476
|
+
});
|
|
1477
|
+
}
|
|
1478
|
+
this.selectionSets = this.selectionSets.reduce((prev, cur) => {
|
|
1479
|
+
if (cur.workflowType !== interfaces.EWorkflowType.REFINE &&
|
|
1480
|
+
cur.layerView.layer.id === layerView.layer.id) {
|
|
1481
|
+
cur.selectedIds = cur.selectedIds.filter(id => idUpdates.removeIds.indexOf(id) < 0);
|
|
1482
|
+
if (cur.selectedIds.length > 0) {
|
|
1483
|
+
prev.push(cur);
|
|
1484
|
+
}
|
|
1485
|
+
else {
|
|
1486
|
+
selectionSetsChanged = true;
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
else {
|
|
1490
|
+
prev.push(cur);
|
|
1491
|
+
}
|
|
1492
|
+
return prev;
|
|
1493
|
+
}, []);
|
|
1494
|
+
}
|
|
1495
|
+
this._refineSelectionSet.refineInfos[layerId] = idUpdates;
|
|
1496
|
+
this.selectionSets = [...this.selectionSets];
|
|
1497
|
+
if (selectionSetsChanged) {
|
|
1498
|
+
this.selectionSetsChanged.emit(this.selectionSets);
|
|
1499
|
+
}
|
|
1500
|
+
await this._highlightFeatures();
|
|
1501
|
+
}
|
|
1502
|
+
get el() { return index.getElement(this); }
|
|
1503
|
+
};
|
|
1504
1504
|
RefineSelection.style = refineSelectionCss;
|
|
1505
1505
|
|
|
1506
1506
|
exports.map_select_tools = MapSelectTools;
|