@esri/solutions-components 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
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 };