@esri/solutions-components 0.6.6 → 0.6.7

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