@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
@@ -7,773 +7,773 @@
7
7
 
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
- const index = require('./index-0e50040c.js');
11
- const loadModules = require('./loadModules-31cab7ac.js');
12
- const mapViewUtils = require('./mapViewUtils-9da2dddd.js');
13
- const interfaces = require('./interfaces-d539e30c.js');
14
- const publicNotificationStore = require('./publicNotificationStore-55edd658.js');
15
- const locale = require('./locale-d15cd743.js');
16
- const downloadUtils = require('./downloadUtils-a8c530f7.js');
17
- require('./index-2b60e135.js');
10
+ const index = require('./index-6654298b.js');
11
+ const loadModules = require('./loadModules-ae7715f2.js');
12
+ const mapViewUtils = require('./mapViewUtils-77a1ff88.js');
13
+ const interfaces = require('./interfaces-ad03ec39.js');
14
+ const publicNotificationStore = require('./publicNotificationStore-ec1bdd2d.js');
15
+ const locale = require('./locale-b113c6b2.js');
16
+ const downloadUtils = require('./downloadUtils-6eb59363.js');
17
+ require('./index-e1b1954f.js');
18
18
  require('./_commonjsHelpers-384729db.js');
19
19
 
20
20
  const mapSelectToolsCss = ":host{display:block}.div-visible{display:inherit}.div-visible-search{display:flex;height:44px;align-items:center;padding-bottom:0}.div-not-visible{display:none}.padding-bottom-1{padding-bottom:1rem}.padding-top-1{padding-top:1rem}.search-widget{width:100% !important;border:1px solid var(--calcite-ui-border-input)}.w-100{width:100%}.w-50{width:50%}.search-distance-container{padding-top:\"1rem\" !important}.end-border{border-inline-end:1px solid var(--calcite-ui-border-2)}.search-distance{display:flex;padding-top:1rem}.font-bold{font:bold}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.tooltip-container{display:flex}.padding-start-1-2{padding-inline-start:0.5rem}.icon{--calcite-ui-icon-color:var(--calcite-ui-brand)}.tooltip-message{padding:5px 8px;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-2)}";
21
21
 
22
- const MapSelectTools = class {
23
- constructor(hostRef) {
24
- index.registerInstance(this, hostRef);
25
- this.selectionSetChange = index.createEvent(this, "selectionSetChange", 7);
26
- /**
27
- * number[]: the oids of the selected features
28
- */
29
- this._selectedIds = [];
30
- /**
31
- * string: A label to help uniquely identify the selection set
32
- */
33
- this._selectionLabel = "";
34
- /**
35
- * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html
36
- */
37
- this._graphics = [];
38
- /**
39
- * {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
40
- */
41
- this._featuresCollection = {};
42
- this.bufferColor = [227, 139, 79, 0.8];
43
- this.bufferOutlineColor = [255, 255, 255];
44
- this.customLabelEnabled = undefined;
45
- this.enabledLayerIds = [];
46
- this.defaultBufferDistance = undefined;
47
- this.defaultBufferUnit = undefined;
48
- this.geometries = [];
49
- this.isUpdate = false;
50
- this.layerViews = [];
51
- this.mapView = undefined;
52
- this.noResultText = undefined;
53
- this.searchConfiguration = undefined;
54
- this.selectionSet = undefined;
55
- this.selectionLayerIds = [];
56
- this.selectLayerView = undefined;
57
- this.sketchLineSymbol = undefined;
58
- this.sketchPointSymbol = undefined;
59
- this.sketchPolygonSymbol = undefined;
60
- this._numSelected = 0;
61
- this._searchDistanceEnabled = false;
62
- this._searchTerm = undefined;
63
- this._selectionLoading = false;
64
- this._translations = undefined;
65
- this._useLayerFeaturesEnabled = false;
66
- }
67
- //--------------------------------------------------------------------------
68
- //
69
- // Watch handlers
70
- //
71
- //--------------------------------------------------------------------------
72
- /**
73
- * Called each time the geometries prop is changed.
74
- *
75
- * @returns Promise when complete
76
- */
77
- async watchGeometriesHandler(newValue, oldValue) {
78
- if (newValue !== oldValue) {
79
- const isEmpty = newValue.length === 0;
80
- await this._clearResults(isEmpty, isEmpty);
81
- if (newValue.length > 0) {
82
- return this._highlightWithOIDsOrGeoms();
83
- }
84
- }
85
- }
86
- /**
87
- * Called each time the searchConfiguration prop is changed.
88
- *
89
- * @returns Promise when complete
90
- */
91
- async watchSearchConfigurationHandler(newValue, oldValue) {
92
- if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
93
- this._initSearchWidget();
94
- }
95
- }
96
- //--------------------------------------------------------------------------
97
- //
98
- // Methods (public)
99
- //
100
- //--------------------------------------------------------------------------
101
- /**
102
- * Clear any selection results
103
- *
104
- * @returns Promise when the results have been cleared
105
- */
106
- async clearSelection() {
107
- return this._clearResults(true, true);
108
- }
109
- /**
110
- * Get the new selection set
111
- *
112
- * @returns Promise with the new selection set
113
- */
114
- async getSelection() {
115
- // Allow any non whitespace
116
- if (!/\S+/gm.test(this._selectionLabel)) {
117
- this._updateLabel();
118
- }
119
- return {
120
- id: this.isUpdate ? this.selectionSet.id : Date.now(),
121
- searchResult: this._searchResult,
122
- buffer: this._bufferGeometry,
123
- distance: this._bufferTools.distance,
124
- download: true,
125
- unit: this._bufferTools.unit,
126
- label: this._selectionLabel,
127
- selectedIds: this._selectedIds,
128
- layerView: this.selectLayerView,
129
- geometries: this.geometries,
130
- graphics: this._graphics,
131
- selectLayers: this.layerViews,
132
- skipGeomOIDs: this._skipGeomOIDs,
133
- searchDistanceEnabled: this._searchDistanceEnabled,
134
- workflowType: this._workflowType,
135
- useLayerFeaturesEnabled: this._useLayerFeaturesEnabled,
136
- sketchGraphic: this._sketchGraphic
137
- };
138
- }
139
- /**
140
- * Handle changes to the search configuration
141
- */
142
- searchConfigurationChangeChanged(event) {
143
- this.searchConfiguration = event.detail;
144
- }
145
- /**
146
- * Handle changes to the buffer distance value
147
- */
148
- distanceChanged(event) {
149
- this._distanceChanged(event.detail);
150
- }
151
- /**
152
- * Handle changes to the buffer unit
153
- */
154
- unitChanged(event) {
155
- if (event.detail.newValue !== event.detail.oldValue) {
156
- this._unit = event.detail.newValue;
157
- this._updateLabel();
158
- }
159
- }
160
- //--------------------------------------------------------------------------
161
- //
162
- // Functions (lifecycle)
163
- //
164
- //--------------------------------------------------------------------------
165
- /**
166
- * StencilJS: Called once just after the component is first connected to the DOM.
167
- */
168
- async componentWillLoad() {
169
- await this._getTranslations();
170
- await this._initModules();
171
- }
172
- /**
173
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
174
- */
175
- async componentDidLoad() {
176
- return this._init();
177
- }
178
- /**
179
- * Renders the component.
180
- */
181
- render() {
182
- return (index.h(index.Host, null, this._getMapLayerPicker(), index.h("div", { class: "border-bottom" }), index.h("div", { class: "padding-top-sides-1" }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } }), index.h("div", { class: "padding-top-1" }, index.h("map-draw-tools", { active: true, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this._getBufferOptions(), this._getUseLayerFeaturesOptions(), this._getNumSelected()), index.h("div", { class: "border-bottom" }), this._getNameInput()));
183
- }
184
- /**
185
- * Renders the buffer tools component.
186
- */
187
- _getBufferOptions() {
188
- var _a, _b;
189
- const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
190
- const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
191
- return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
192
- }
193
- /**
194
- * Renders the map layer picker component.
195
- */
196
- _getUseLayerFeaturesOptions() {
197
- const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
198
- return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id) }))));
199
- }
200
- /**
201
- * Renders the number of selected features
202
- */
203
- _getNumSelected() {
204
- const locale$1 = locale.getComponentClosestLanguage(this.el);
205
- const selectionLoading = locale$1 && locale$1 === "en" ?
206
- `${this._translations.selectionLoading}...` : this._translations.selectionLoading;
207
- return (index.h("div", { class: "padding-top-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (index.h("div", null, index.h("calcite-loader", { class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (index.h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), index.h("calcite-input-message", { class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
208
- this.noResultText && this._numSelected === 0 ? this.noResultText :
209
- this._translations.selectedFeatures.replace("{{n}}", this._numSelected.toString()))));
210
- }
211
- /**
212
- * Renders the custom label input
213
- */
214
- _getNameInput() {
215
- const nameLabelClass = this.customLabelEnabled ? "" : "display-none";
216
- return (index.h("div", { class: "padding-sides-1 padding-top-1 " + nameLabelClass }, index.h("calcite-label", { class: "font-bold" }, this._translations.listName, index.h("calcite-input", { onInput: () => {
217
- this._selectionLabel = this._labelName.value;
218
- }, placeholder: this._translations.listNamePlaceholder, ref: (el) => { this._labelName = el; }, value: this._selectionLabel || "" }))));
219
- }
220
- /**
221
- * Create the UI element that will expose the addressee layers
222
- *
223
- * @returns addressee layer list node
224
- * @protected
225
- */
226
- _getMapLayerPicker() {
227
- return (index.h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
228
- }
229
- //--------------------------------------------------------------------------
230
- //
231
- // Functions (protected)
232
- //
233
- //--------------------------------------------------------------------------
234
- /**
235
- * Load esri javascript api modules
236
- *
237
- * @returns Promise resolving when function is done
238
- *
239
- * @protected
240
- */
241
- async _initModules() {
242
- const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules.loadModules([
243
- "esri/layers/GraphicsLayer",
244
- "esri/Graphic",
245
- "esri/widgets/Search",
246
- "esri/geometry/geometryEngine",
247
- "esri/layers/FeatureLayer"
248
- ]);
249
- this.GraphicsLayer = GraphicsLayer;
250
- this.Graphic = Graphic;
251
- this.Search = Search;
252
- this._geometryEngine = geometryEngine;
253
- this.FeatureLayer = FeatureLayer;
254
- }
255
- /**
256
- * Initialize the graphics layer, selection set, and search widget
257
- *
258
- * @returns Promise when the operation has completed
259
- */
260
- async _init() {
261
- this._initGraphicsLayer();
262
- await this._initSelectionSet();
263
- this._initSearchWidget();
264
- }
265
- /**
266
- * Initialize the state of the component with any stored values in a selection set
267
- *
268
- * @protected
269
- */
270
- async _initSelectionSet() {
271
- var _a, _b, _c, _d;
272
- if (this.selectionSet) {
273
- this._searchTerm = (_a = this.selectionSet.searchResult) === null || _a === void 0 ? void 0 : _a.name;
274
- this._searchResult = this.selectionSet.searchResult;
275
- this._selectLayers = this.selectionSet.selectLayers;
276
- this._selectedIds = this.selectionSet.selectedIds;
277
- this._skipGeomOIDs = this.selectionSet.skipGeomOIDs;
278
- this._searchDistanceEnabled = this.selectionSet.searchDistanceEnabled;
279
- this._useLayerFeaturesEnabled = this.selectionSet.useLayerFeaturesEnabled;
280
- this._distance = this.selectionSet.searchDistanceEnabled ? this.selectionSet.distance : 0;
281
- this._unit = this.selectionSet.unit;
282
- this._workflowType = this.selectionSet.workflowType;
283
- this.selectLayerView = this.selectionSet.layerView;
284
- this._sketchGraphic = this.selectionSet.sketchGraphic;
285
- this.geometries = [
286
- ...((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.geometries) || []
287
- ];
288
- // restore graphics from geometries to avoid issues with temp modifications to graphics that were aborted
289
- this._graphics = this.geometries.map(geometry => {
290
- const symbol = geometry.type === "point" ? this.sketchPointSymbol :
291
- geometry.type === "polyline" ? this.sketchLineSymbol : this.sketchPolygonSymbol;
292
- return new this.Graphic({
293
- geometry,
294
- symbol
295
- });
296
- });
297
- this._selectionLabel = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.label;
298
- if (!this._useLayerFeaturesEnabled) {
299
- (_d = this._drawTools) === null || _d === void 0 ? void 0 : _d.updateGraphics();
300
- }
301
- await mapViewUtils.goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
302
- }
303
- }
304
- /**
305
- * Initialize the search widget
306
- *
307
- * @protected
308
- */
309
- _initSearchWidget() {
310
- if (this.mapView && this._searchElement) {
311
- const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
312
- const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
313
- this._searchWidget = new this.Search(searchOptions);
314
- this._searchWidget.popupEnabled = false;
315
- this._searchWidget.resultGraphicEnabled = false;
316
- this._searchWidget.on("search-clear", () => {
317
- const clearLabel = this._searchClearLabel();
318
- void this._clearResults(false, clearLabel);
319
- });
320
- this._searchWidget.on("select-result", (searchResults) => {
321
- var _a, _b;
322
- if (searchResults.result) {
323
- this._searchResult = searchResults.result;
324
- const useOIDs = ((_b = (_a = searchResults.source) === null || _a === void 0 ? void 0 : _a.layer) === null || _b === void 0 ? void 0 : _b.id) && searchResults.source.layer.id === this.selectLayerView.layer.id;
325
- const oids = useOIDs ? [searchResults.result.feature.getObjectId()] : undefined;
326
- this._workflowType = interfaces.EWorkflowType.SEARCH;
327
- this._updateLabel();
328
- const graphics = [searchResults.result.feature];
329
- this._updateSelection(graphics, useOIDs, oids);
330
- this._drawTools.graphics = graphics;
331
- this._searchWidget.resultGraphic.visible = false;
332
- }
333
- else {
334
- const clearLabel = this._searchClearLabel();
335
- void this._clearResults(false, clearLabel);
336
- }
337
- });
338
- }
339
- }
340
- /**
341
- * Check if the current label should be cleared
342
- *
343
- * @returns true when the current label is based on search result
344
- * @protected
345
- */
346
- _searchClearLabel() {
347
- var _a;
348
- return ((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) && this._labelName.value.indexOf(this._searchResult.name) > -1;
349
- }
350
- /**
351
- * Initialize the search widget based on user defined configuration
352
- *
353
- * @param searchConfiguration search configuration defined by the user
354
- * @param view the current map view
355
- *
356
- * @protected
357
- */
358
- _getSearchConfig(searchConfiguration, view) {
359
- const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
360
- const sources = searchConfiguration === null || searchConfiguration === void 0 ? void 0 : searchConfiguration.sources;
361
- if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
362
- searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
363
- sources.forEach((source) => {
364
- var _a, _b;
365
- const isLayerSource = source.hasOwnProperty("layer");
366
- if (isLayerSource) {
367
- const layerSource = source;
368
- const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
369
- const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
370
- const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
371
- if (layerFromMap) {
372
- layerSource.layer = layerFromMap;
373
- }
374
- else if (layerUrl) {
375
- layerSource.layer = new this.FeatureLayer(layerUrl);
376
- }
377
- }
378
- });
379
- sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
380
- const isLocatorSource = source.hasOwnProperty("locator");
381
- if (isLocatorSource) {
382
- const locatorSource = source;
383
- if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
384
- const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
385
- locatorSource.outFields = outFields;
386
- locatorSource.singleLineFieldName = "SingleLine";
387
- }
388
- locatorSource.url = locatorSource.url;
389
- delete locatorSource.url;
390
- }
391
- });
392
- }
393
- else {
394
- searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
395
- }
396
- return searchConfiguration;
397
- }
398
- /**
399
- * Initialize the graphics layer used to store any buffer grapghics
400
- *
401
- * @protected
402
- */
403
- _initGraphicsLayer() {
404
- const title = this._translations.bufferLayer;
405
- const bufferIndex = this.mapView.map.layers.findIndex((l) => l.title === title);
406
- if (bufferIndex > -1) {
407
- this._bufferGraphicsLayer = this.mapView.map.layers.getItemAt(bufferIndex);
408
- }
409
- else {
410
- this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
411
- publicNotificationStore.state.managedLayers.push(title);
412
- const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
413
- if (sketchIndex > -1) {
414
- this.mapView.map.layers.add(this._bufferGraphicsLayer, sketchIndex);
415
- }
416
- else {
417
- this.mapView.map.layers.add(this._bufferGraphicsLayer);
418
- }
419
- }
420
- }
421
- /**
422
- * Handle changes in the sketch graphics
423
- *
424
- * @param event stores the graphics that will be used to select features
425
- * @param forceUpdate when true the drawn graphic will be used to select features from
426
- * use layer features layer...then the selected layer features will be used to select from the main input layer
427
- *
428
- */
429
- async _sketchGraphicsChanged(event, forceUpdate = false) {
430
- const graphics = event.detail.graphics;
431
- if (graphics.length > 0 && graphics[0]) {
432
- if (!forceUpdate) {
433
- this._sketchGraphic = graphics[0];
434
- }
435
- this._workflowType = this._useLayerFeaturesEnabled ? interfaces.EWorkflowType.SELECT : interfaces.EWorkflowType.SKETCH;
436
- if (this._workflowType === interfaces.EWorkflowType.SKETCH) {
437
- this._drawTools.updateGraphics();
438
- }
439
- this._updateLabel();
440
- this._clearSearchWidget();
441
- if (this._useLayerFeaturesEnabled && !forceUpdate) {
442
- // Will only ever be a single graphic
443
- const geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
444
- await this._selectLayerFeatures(geometries[0]);
445
- }
446
- else {
447
- const oids = graphics.reduce((prev, cur) => {
448
- var _a;
449
- if ((_a = cur === null || cur === void 0 ? void 0 : cur.layer) === null || _a === void 0 ? void 0 : _a.objectIdField) {
450
- prev.push(cur.attributes[cur.layer.objectIdField]);
451
- }
452
- else if (cur.getObjectId) {
453
- prev.push(cur.getObjectId());
454
- }
455
- return prev;
456
- }, []);
457
- const useOIDs = event.detail.useOIDs && oids.length > 0;
458
- this._updateSelection(graphics, useOIDs, oids);
459
- if (useOIDs) {
460
- await this._highlightFeatures(oids);
461
- }
462
- }
463
- }
464
- else {
465
- await this._clearResults(true, true);
466
- }
467
- }
468
- /**
469
- * Highlight the features in the map based on OIDs when skipOIDs have been defined
470
- *
471
- * @protected
472
- */
473
- async _highlightWithOIDsOrGeoms() {
474
- var _a;
475
- if (((_a = this._skipGeomOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
476
- this._selectedIds = this._skipGeomOIDs;
477
- return this._highlightFeatures(this._selectedIds);
478
- }
479
- else {
480
- return this._geomQuery(this.geometries);
481
- }
482
- }
483
- /**
484
- * Highlight the features in the map
485
- *
486
- * @param ids the ids that should be highlighted
487
- *
488
- * @protected
489
- */
490
- async _highlightFeatures(ids) {
491
- publicNotificationStore.state.removeHandles();
492
- if (ids.length > 0) {
493
- publicNotificationStore.state.highlightHandles.push(await mapViewUtils.highlightFeatures(ids, this.selectLayerView, this.mapView));
494
- }
495
- this._numSelected = ids.length;
496
- this.selectionSetChange.emit(ids.length);
497
- }
498
- /**
499
- * Query the selectLayerView based on any user drawn geometries or buffers
500
- *
501
- * @param geometries Array of geometries used for the selection of ids from the select layer view
502
- *
503
- * @returns Promise when the selection is complete and the graphics have been highlighted
504
- */
505
- async _selectFeatures(geometries) {
506
- this._selectionLoading = true;
507
- this._selectedIds = await mapViewUtils.queryObjectIds(geometries, this.selectLayerView.layer);
508
- this._selectionLoading = false;
509
- // stored as graphics now in addition to the geoms
510
- this._drawTools.graphics = this._graphics;
511
- await this._highlightFeatures(this._selectedIds);
512
- }
513
- /**
514
- * Query the selectLayerView based on any user drawn geometries or buffers
515
- *
516
- * @param evt CustomEvent that contains the result of the buffer
517
- *
518
- * @protected
519
- */
520
- async _bufferComplete(evt) {
521
- this._bufferGeometry = Array.isArray(evt.detail) ?
522
- evt.detail[0] : evt.detail;
523
- let oldValue = this._bufferTools.distance;
524
- let newValue = 0;
525
- if (this._bufferGeometry) {
526
- // Create a symbol for rendering the graphic
527
- const symbol = {
528
- type: "simple-fill",
529
- color: this.bufferColor,
530
- outline: {
531
- color: this.bufferOutlineColor,
532
- width: 1
533
- }
534
- };
535
- // Add the geometry and symbol to a new graphic
536
- const polygonGraphic = new this.Graphic({
537
- geometry: this._bufferGeometry,
538
- symbol
539
- });
540
- this._bufferGraphicsLayer.removeAll();
541
- this._bufferGraphicsLayer.add(polygonGraphic);
542
- await this._selectFeatures([this._bufferGeometry]);
543
- await this.mapView.goTo(polygonGraphic.geometry.extent);
544
- // We need to swap the values again if they were previously
545
- // set based on disable of buffer tools when the tools have a value
546
- newValue = oldValue;
547
- oldValue = 0;
548
- }
549
- else {
550
- if (this._bufferGraphicsLayer) {
551
- this._bufferGraphicsLayer.removeAll();
552
- }
553
- await this._highlightWithOIDsOrGeoms();
554
- }
555
- // mock this b/c the tools can store a value that is different than what is shown in the map
556
- // this occurs when a distance is set but then buffer is disabled
557
- this._distanceChanged({
558
- oldValue,
559
- newValue
560
- });
561
- }
562
- /**
563
- * Fetch a single geometry for each potential geometry type
564
- *
565
- * @param geometries All current selection geometries
566
- *
567
- * @protected
568
- */
569
- _geomQuery(geometries) {
570
- const queryGeoms = mapViewUtils.getQueryGeoms(geometries, this._geometryEngine);
571
- return this._selectFeatures(queryGeoms);
572
- }
573
- /**
574
- * Clear all stored values and general state for the component
575
- *
576
- * @param clearSearchWidget Optional boolean for clearing the search widget (default is true)
577
- * @param clearLabel Optional boolean for clearing the search label (default is true)
578
- *
579
- * @protected
580
- */
581
- async _clearResults(clearSearchWidget = true, clearLabel = false) {
582
- var _a;
583
- this._selectedIds = [];
584
- this._distance = undefined;
585
- this._unit = undefined;
586
- if (clearLabel) {
587
- this._selectionLabel = "";
588
- this._labelName.value = "";
589
- }
590
- if (this._bufferGraphicsLayer) {
591
- this._bufferGraphicsLayer.removeAll();
592
- }
593
- if (clearSearchWidget && this._searchWidget) {
594
- this._clearSearchWidget();
595
- }
596
- publicNotificationStore.state.removeHandles();
597
- // checking for clear as it would throw off tests
598
- if ((_a = this._drawTools) === null || _a === void 0 ? void 0 : _a.clear) {
599
- this._graphics = [];
600
- await this._drawTools.clear();
601
- }
602
- this.selectionSetChange.emit(this._selectedIds.length);
603
- }
604
- /**
605
- * Clear all the search widget and any stored search result
606
- *
607
- * @protected
608
- */
609
- _clearSearchWidget() {
610
- this._searchWidget.clear();
611
- this._searchResult = undefined;
612
- }
613
- /**
614
- * Fetch a single geometry for the current geometry type
615
- *
616
- * @param type worflow type
617
- * @param graphics graphics to be used for selection
618
- * @param label selection label
619
- * @param useOIDs indicates if the OIDs should override the geometry for selection
620
- * @param oids list of IDs to select when useOIDs is true
621
- *
622
- * @protected
623
- */
624
- _updateSelection(graphics, useOIDs, oids) {
625
- this._selectedIds = useOIDs && oids ? oids : this._selectedIds;
626
- // see https://github.com/Esri/solutions-components/issues/148
627
- this._skipGeomOIDs = useOIDs ? oids : undefined;
628
- this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
629
- this._graphics = graphics;
630
- }
631
- /**
632
- * Updates the label for the selection set
633
- *
634
- * @protected
635
- */
636
- _updateLabel() {
637
- var _a, _b;
638
- const hasSketch = this._selectionLabel.indexOf(this._translations.sketch) > -1;
639
- const hasSelect = this._selectionLabel.indexOf(this._translations.select) > -1;
640
- const hasSearch = this._selectionLabel.indexOf((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) > -1;
641
- const label = this._workflowType === interfaces.EWorkflowType.SEARCH ? (_b = this._searchResult) === null || _b === void 0 ? void 0 : _b.name :
642
- this._workflowType === interfaces.EWorkflowType.SELECT ?
643
- this._translations.select : this._translations.sketch;
644
- const unit = !this._unit ? this._bufferTools.unit : this._unit;
645
- const distance = isNaN(this._distance) ? this._bufferTools.distance : this._distance;
646
- this._selectionLabel = hasSketch || hasSelect || hasSearch || !this._selectionLabel ?
647
- `${label} ${distance} ${unit}` : this._selectionLabel;
648
- this._labelName.value = this._selectionLabel;
649
- }
650
- /**
651
- * Gets the layer views from the map when the layer selection changes
652
- *
653
- * @returns Promise resolving when function is done
654
- *
655
- * @protected
656
- */
657
- async _layerSelectionChange(evt) {
658
- if (Array.isArray(evt.detail) && evt.detail.length > 0) {
659
- const layerPromises = evt.detail.map(id => {
660
- return mapViewUtils.getFeatureLayerView(this.mapView, id);
661
- });
662
- return Promise.all(layerPromises).then((layerViews) => {
663
- this.layerViews = layerViews;
664
- this._featuresCollection = {};
665
- if (this._sketchGraphic) {
666
- void this._sketchGraphicsChanged({
667
- detail: {
668
- graphics: [this._sketchGraphic],
669
- useOIDs: false
670
- }
671
- });
672
- }
673
- });
674
- }
675
- }
676
- /**
677
- * Fetch the layer from the map
678
- *
679
- * @param evt layer selection change event
680
- *
681
- * @returns Promise when the function has completed
682
- * @protected
683
- */
684
- async _inputLayerSelectionChange(evt) {
685
- var _a;
686
- const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
687
- if (!this.selectLayerView || id !== this.selectLayerView.layer.id) {
688
- this.selectLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, id);
689
- this._updateLabel();
690
- this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) :
691
- await this._highlightWithOIDsOrGeoms();
692
- }
693
- }
694
- /**
695
- * Handle changes to the buffer distance value
696
- */
697
- _distanceChanged(detail) {
698
- if (detail.newValue !== detail.oldValue) {
699
- this._distance = detail.newValue;
700
- this._updateLabel();
701
- }
702
- }
703
- /**
704
- * Select features based on the input geometry
705
- *
706
- * @param geom the geometry used for selection
707
- *
708
- * @returns Promise resolving when function is done
709
- *
710
- * @protected
711
- */
712
- async _selectLayerFeatures(geom) {
713
- this._selectionLoading = true;
714
- const queryFeaturePromises = this.layerViews.map(layerView => {
715
- this._featuresCollection[layerView.layer.id] = [];
716
- return mapViewUtils.queryFeaturesByGeometry(0, layerView.layer, geom, this._featuresCollection);
717
- });
718
- return Promise.all(queryFeaturePromises).then(async (response) => {
719
- this._selectionLoading = false;
720
- let graphics = [];
721
- response.forEach(r => {
722
- Object.keys(r).forEach(k => {
723
- graphics = graphics.concat(r[k]);
724
- });
725
- });
726
- let hasOID = false;
727
- graphics.forEach((g) => {
728
- var _a;
729
- const geom = g.geometry;
730
- g.symbol = geom.type === "point" ?
731
- this.sketchPointSymbol : geom.type === "polyline" ?
732
- this.sketchLineSymbol : geom.type === "polygon" ?
733
- this.sketchPolygonSymbol : undefined;
734
- hasOID = ((_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("objectIdField")) || g.hasOwnProperty("getObjectId");
735
- });
736
- // OIDs are used when the addressee layer and the current "use layer features" layer are the same
737
- const useOIDs = (this.layerViews[0].layer.title === this.selectLayerView.layer.title) && hasOID;
738
- await this._sketchGraphicsChanged({
739
- detail: {
740
- graphics,
741
- useOIDs
742
- }
743
- }, true);
744
- });
745
- }
746
- /**
747
- * Store use layer features value and re-select features based on the original sketch graphic
748
- *
749
- * @protected
750
- */
751
- _useLayerFeaturesEnabledChanged() {
752
- this._useLayerFeaturesEnabled = !this._useLayerFeaturesEnabled;
753
- if (this._sketchGraphic) {
754
- void this._sketchGraphicsChanged({
755
- detail: {
756
- graphics: [this._sketchGraphic],
757
- useOIDs: false
758
- }
759
- });
760
- }
761
- }
762
- /**
763
- * Fetches the component's translations
764
- *
765
- * @protected
766
- */
767
- async _getTranslations() {
768
- const translations = await locale.getLocaleComponentStrings(this.el);
769
- this._translations = translations[0];
770
- }
771
- get el() { return index.getElement(this); }
772
- static get watchers() { return {
773
- "geometries": ["watchGeometriesHandler"],
774
- "searchConfiguration": ["watchSearchConfigurationHandler"]
775
- }; }
776
- };
22
+ const MapSelectTools = class {
23
+ constructor(hostRef) {
24
+ index.registerInstance(this, hostRef);
25
+ this.selectionSetChange = index.createEvent(this, "selectionSetChange", 7);
26
+ /**
27
+ * number[]: the oids of the selected features
28
+ */
29
+ this._selectedIds = [];
30
+ /**
31
+ * string: A label to help uniquely identify the selection set
32
+ */
33
+ this._selectionLabel = "";
34
+ /**
35
+ * esri/Graphic[]: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html
36
+ */
37
+ this._graphics = [];
38
+ /**
39
+ * {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
40
+ */
41
+ this._featuresCollection = {};
42
+ this.bufferColor = [227, 139, 79, 0.8];
43
+ this.bufferOutlineColor = [255, 255, 255];
44
+ this.customLabelEnabled = undefined;
45
+ this.enabledLayerIds = [];
46
+ this.defaultBufferDistance = undefined;
47
+ this.defaultBufferUnit = undefined;
48
+ this.geometries = [];
49
+ this.isUpdate = false;
50
+ this.layerViews = [];
51
+ this.mapView = undefined;
52
+ this.noResultText = undefined;
53
+ this.searchConfiguration = undefined;
54
+ this.selectionSet = undefined;
55
+ this.selectionLayerIds = [];
56
+ this.selectLayerView = undefined;
57
+ this.sketchLineSymbol = undefined;
58
+ this.sketchPointSymbol = undefined;
59
+ this.sketchPolygonSymbol = undefined;
60
+ this._numSelected = 0;
61
+ this._searchDistanceEnabled = false;
62
+ this._searchTerm = undefined;
63
+ this._selectionLoading = false;
64
+ this._translations = undefined;
65
+ this._useLayerFeaturesEnabled = false;
66
+ }
67
+ //--------------------------------------------------------------------------
68
+ //
69
+ // Watch handlers
70
+ //
71
+ //--------------------------------------------------------------------------
72
+ /**
73
+ * Called each time the geometries prop is changed.
74
+ *
75
+ * @returns Promise when complete
76
+ */
77
+ async watchGeometriesHandler(newValue, oldValue) {
78
+ if (newValue !== oldValue) {
79
+ const isEmpty = newValue.length === 0;
80
+ await this._clearResults(isEmpty, isEmpty);
81
+ if (newValue.length > 0) {
82
+ return this._highlightWithOIDsOrGeoms();
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Called each time the searchConfiguration prop is changed.
88
+ *
89
+ * @returns Promise when complete
90
+ */
91
+ async watchSearchConfigurationHandler(newValue, oldValue) {
92
+ if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {
93
+ this._initSearchWidget();
94
+ }
95
+ }
96
+ //--------------------------------------------------------------------------
97
+ //
98
+ // Methods (public)
99
+ //
100
+ //--------------------------------------------------------------------------
101
+ /**
102
+ * Clear any selection results
103
+ *
104
+ * @returns Promise when the results have been cleared
105
+ */
106
+ async clearSelection() {
107
+ return this._clearResults(true, true);
108
+ }
109
+ /**
110
+ * Get the new selection set
111
+ *
112
+ * @returns Promise with the new selection set
113
+ */
114
+ async getSelection() {
115
+ // Allow any non whitespace
116
+ if (!/\S+/gm.test(this._selectionLabel)) {
117
+ this._updateLabel();
118
+ }
119
+ return {
120
+ id: this.isUpdate ? this.selectionSet.id : Date.now(),
121
+ searchResult: this._searchResult,
122
+ buffer: this._bufferGeometry,
123
+ distance: this._bufferTools.distance,
124
+ download: true,
125
+ unit: this._bufferTools.unit,
126
+ label: this._selectionLabel,
127
+ selectedIds: this._selectedIds,
128
+ layerView: this.selectLayerView,
129
+ geometries: this.geometries,
130
+ graphics: this._graphics,
131
+ selectLayers: this.layerViews,
132
+ skipGeomOIDs: this._skipGeomOIDs,
133
+ searchDistanceEnabled: this._searchDistanceEnabled,
134
+ workflowType: this._workflowType,
135
+ useLayerFeaturesEnabled: this._useLayerFeaturesEnabled,
136
+ sketchGraphic: this._sketchGraphic
137
+ };
138
+ }
139
+ /**
140
+ * Handle changes to the search configuration
141
+ */
142
+ searchConfigurationChangeChanged(event) {
143
+ this.searchConfiguration = event.detail;
144
+ }
145
+ /**
146
+ * Handle changes to the buffer distance value
147
+ */
148
+ distanceChanged(event) {
149
+ this._distanceChanged(event.detail);
150
+ }
151
+ /**
152
+ * Handle changes to the buffer unit
153
+ */
154
+ unitChanged(event) {
155
+ if (event.detail.newValue !== event.detail.oldValue) {
156
+ this._unit = event.detail.newValue;
157
+ this._updateLabel();
158
+ }
159
+ }
160
+ //--------------------------------------------------------------------------
161
+ //
162
+ // Functions (lifecycle)
163
+ //
164
+ //--------------------------------------------------------------------------
165
+ /**
166
+ * StencilJS: Called once just after the component is first connected to the DOM.
167
+ */
168
+ async componentWillLoad() {
169
+ await this._getTranslations();
170
+ await this._initModules();
171
+ }
172
+ /**
173
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
174
+ */
175
+ async componentDidLoad() {
176
+ return this._init();
177
+ }
178
+ /**
179
+ * Renders the component.
180
+ */
181
+ render() {
182
+ return (index.h(index.Host, null, this._getMapLayerPicker(), index.h("div", { class: "border-bottom" }), index.h("div", { class: "padding-top-sides-1" }, index.h("div", { class: "search-widget", ref: (el) => { this._searchElement = el; } }), index.h("div", { class: "padding-top-1" }, index.h("map-draw-tools", { active: true, editGraphicsEnabled: !this._useLayerFeaturesEnabled, graphics: this._graphics, mapView: this.mapView, onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, ref: (el) => { this._drawTools = el; } })), this._getBufferOptions(), this._getUseLayerFeaturesOptions(), this._getNumSelected()), index.h("div", { class: "border-bottom" }), this._getNameInput()));
183
+ }
184
+ /**
185
+ * Renders the buffer tools component.
186
+ */
187
+ _getBufferOptions() {
188
+ var _a, _b;
189
+ const showBufferToolsClass = this._searchDistanceEnabled ? "search-distance" : "div-not-visible";
190
+ const bufferDistance = typeof ((_a = this.selectionSet) === null || _a === void 0 ? void 0 : _a.distance) === "number" ? this.selectionSet.distance : this.defaultBufferDistance;
191
+ return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.searchDistance, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "search-distance-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "search-distance-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useSearchDistanceTootip)), index.h("calcite-switch", { checked: this._searchDistanceEnabled, onCalciteSwitchChange: () => this._searchDistanceEnabled = !this._searchDistanceEnabled })), index.h("div", { class: showBufferToolsClass }, index.h("buffer-tools", { disabled: !this._searchDistanceEnabled, distance: bufferDistance, geometries: this.geometries, onBufferComplete: (evt) => this._bufferComplete(evt), ref: (el) => this._bufferTools = el, unit: ((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.unit) || this.defaultBufferUnit }))));
192
+ }
193
+ /**
194
+ * Renders the map layer picker component.
195
+ */
196
+ _getUseLayerFeaturesOptions() {
197
+ const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
198
+ return (index.h("div", null, index.h("div", { class: "padding-top-1 display-flex" }, index.h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, index.h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), index.h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, index.h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), index.h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), index.h("div", { class: useLayerFeaturesClass + " padding-top-1" }, index.h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedIds: this.layerViews.map(l => l.layer.id) }))));
199
+ }
200
+ /**
201
+ * Renders the number of selected features
202
+ */
203
+ _getNumSelected() {
204
+ const locale$1 = locale.getComponentClosestLanguage(this.el);
205
+ const selectionLoading = locale$1 && locale$1 === "en" ?
206
+ `${this._translations.selectionLoading}...` : this._translations.selectionLoading;
207
+ return (index.h("div", { class: "padding-top-1 padding-bottom-1", style: { "align-items": "end", "display": "flex" } }, this._selectionLoading ? (index.h("div", null, index.h("calcite-loader", { class: "info-blue", inline: true, label: selectionLoading, scale: "m", type: "indeterminate" }))) : (index.h("calcite-icon", { class: "info-blue padding-end-1-2", icon: "feature-layer", scale: "s" })), index.h("calcite-input-message", { class: "info-blue", scale: "m" }, this._selectionLoading ? selectionLoading :
208
+ this.noResultText && this._numSelected === 0 ? this.noResultText :
209
+ this._translations.selectedFeatures.replace("{{n}}", this._numSelected.toString()))));
210
+ }
211
+ /**
212
+ * Renders the custom label input
213
+ */
214
+ _getNameInput() {
215
+ const nameLabelClass = this.customLabelEnabled ? "" : "display-none";
216
+ return (index.h("div", { class: "padding-sides-1 padding-top-1 " + nameLabelClass }, index.h("calcite-label", { class: "font-bold" }, this._translations.listName, index.h("calcite-input", { onInput: () => {
217
+ this._selectionLabel = this._labelName.value;
218
+ }, placeholder: this._translations.listNamePlaceholder, ref: (el) => { this._labelName = el; }, value: this._selectionLabel || "" }))));
219
+ }
220
+ /**
221
+ * Create the UI element that will expose the addressee layers
222
+ *
223
+ * @returns addressee layer list node
224
+ * @protected
225
+ */
226
+ _getMapLayerPicker() {
227
+ return (index.h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, this._translations.inputLayer, index.h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => this._inputLayerSelectionChange(evt), selectedIds: this.selectLayerView ? [this.selectLayerView.layer.id] : this.selectionSet ? [this.selectionSet.layerView.layer.id] : [] }))));
228
+ }
229
+ //--------------------------------------------------------------------------
230
+ //
231
+ // Functions (protected)
232
+ //
233
+ //--------------------------------------------------------------------------
234
+ /**
235
+ * Load esri javascript api modules
236
+ *
237
+ * @returns Promise resolving when function is done
238
+ *
239
+ * @protected
240
+ */
241
+ async _initModules() {
242
+ const [GraphicsLayer, Graphic, Search, geometryEngine, FeatureLayer] = await loadModules.loadModules([
243
+ "esri/layers/GraphicsLayer",
244
+ "esri/Graphic",
245
+ "esri/widgets/Search",
246
+ "esri/geometry/geometryEngine",
247
+ "esri/layers/FeatureLayer"
248
+ ]);
249
+ this.GraphicsLayer = GraphicsLayer;
250
+ this.Graphic = Graphic;
251
+ this.Search = Search;
252
+ this._geometryEngine = geometryEngine;
253
+ this.FeatureLayer = FeatureLayer;
254
+ }
255
+ /**
256
+ * Initialize the graphics layer, selection set, and search widget
257
+ *
258
+ * @returns Promise when the operation has completed
259
+ */
260
+ async _init() {
261
+ this._initGraphicsLayer();
262
+ await this._initSelectionSet();
263
+ this._initSearchWidget();
264
+ }
265
+ /**
266
+ * Initialize the state of the component with any stored values in a selection set
267
+ *
268
+ * @protected
269
+ */
270
+ async _initSelectionSet() {
271
+ var _a, _b, _c, _d;
272
+ if (this.selectionSet) {
273
+ this._searchTerm = (_a = this.selectionSet.searchResult) === null || _a === void 0 ? void 0 : _a.name;
274
+ this._searchResult = this.selectionSet.searchResult;
275
+ this._selectLayers = this.selectionSet.selectLayers;
276
+ this._selectedIds = this.selectionSet.selectedIds;
277
+ this._skipGeomOIDs = this.selectionSet.skipGeomOIDs;
278
+ this._searchDistanceEnabled = this.selectionSet.searchDistanceEnabled;
279
+ this._useLayerFeaturesEnabled = this.selectionSet.useLayerFeaturesEnabled;
280
+ this._distance = this.selectionSet.searchDistanceEnabled ? this.selectionSet.distance : 0;
281
+ this._unit = this.selectionSet.unit;
282
+ this._workflowType = this.selectionSet.workflowType;
283
+ this.selectLayerView = this.selectionSet.layerView;
284
+ this._sketchGraphic = this.selectionSet.sketchGraphic;
285
+ this.geometries = [
286
+ ...((_b = this.selectionSet) === null || _b === void 0 ? void 0 : _b.geometries) || []
287
+ ];
288
+ // restore graphics from geometries to avoid issues with temp modifications to graphics that were aborted
289
+ this._graphics = this.geometries.map(geometry => {
290
+ const symbol = geometry.type === "point" ? this.sketchPointSymbol :
291
+ geometry.type === "polyline" ? this.sketchLineSymbol : this.sketchPolygonSymbol;
292
+ return new this.Graphic({
293
+ geometry,
294
+ symbol
295
+ });
296
+ });
297
+ this._selectionLabel = (_c = this.selectionSet) === null || _c === void 0 ? void 0 : _c.label;
298
+ if (!this._useLayerFeaturesEnabled) {
299
+ (_d = this._drawTools) === null || _d === void 0 ? void 0 : _d.updateGraphics();
300
+ }
301
+ await mapViewUtils.goToSelection(this.selectionSet.selectedIds, this.selectionSet.layerView, this.mapView, false);
302
+ }
303
+ }
304
+ /**
305
+ * Initialize the search widget
306
+ *
307
+ * @protected
308
+ */
309
+ _initSearchWidget() {
310
+ if (this.mapView && this._searchElement) {
311
+ const searchConfiguration = this._getSearchConfig(this.searchConfiguration, this.mapView);
312
+ const searchOptions = Object.assign({ view: this.mapView, container: this._searchElement, searchTerm: this._searchTerm }, searchConfiguration);
313
+ this._searchWidget = new this.Search(searchOptions);
314
+ this._searchWidget.popupEnabled = false;
315
+ this._searchWidget.resultGraphicEnabled = false;
316
+ this._searchWidget.on("search-clear", () => {
317
+ const clearLabel = this._searchClearLabel();
318
+ void this._clearResults(false, clearLabel);
319
+ });
320
+ this._searchWidget.on("select-result", (searchResults) => {
321
+ var _a, _b;
322
+ if (searchResults.result) {
323
+ this._searchResult = searchResults.result;
324
+ const useOIDs = ((_b = (_a = searchResults.source) === null || _a === void 0 ? void 0 : _a.layer) === null || _b === void 0 ? void 0 : _b.id) && searchResults.source.layer.id === this.selectLayerView.layer.id;
325
+ const oids = useOIDs ? [searchResults.result.feature.getObjectId()] : undefined;
326
+ this._workflowType = interfaces.EWorkflowType.SEARCH;
327
+ this._updateLabel();
328
+ const graphics = [searchResults.result.feature];
329
+ this._updateSelection(graphics, useOIDs, oids);
330
+ this._drawTools.graphics = graphics;
331
+ this._searchWidget.resultGraphic.visible = false;
332
+ }
333
+ else {
334
+ const clearLabel = this._searchClearLabel();
335
+ void this._clearResults(false, clearLabel);
336
+ }
337
+ });
338
+ }
339
+ }
340
+ /**
341
+ * Check if the current label should be cleared
342
+ *
343
+ * @returns true when the current label is based on search result
344
+ * @protected
345
+ */
346
+ _searchClearLabel() {
347
+ var _a;
348
+ return ((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) && this._labelName.value.indexOf(this._searchResult.name) > -1;
349
+ }
350
+ /**
351
+ * Initialize the search widget based on user defined configuration
352
+ *
353
+ * @param searchConfiguration search configuration defined by the user
354
+ * @param view the current map view
355
+ *
356
+ * @protected
357
+ */
358
+ _getSearchConfig(searchConfiguration, view) {
359
+ const INCLUDE_DEFAULT_SOURCES = "includeDefaultSources";
360
+ const sources = searchConfiguration === null || searchConfiguration === void 0 ? void 0 : searchConfiguration.sources;
361
+ if ((sources === null || sources === void 0 ? void 0 : sources.length) > 0) {
362
+ searchConfiguration[INCLUDE_DEFAULT_SOURCES] = false;
363
+ sources.forEach((source) => {
364
+ var _a, _b;
365
+ const isLayerSource = source.hasOwnProperty("layer");
366
+ if (isLayerSource) {
367
+ const layerSource = source;
368
+ const layerId = (_a = layerSource.layer) === null || _a === void 0 ? void 0 : _a.id;
369
+ const layerFromMap = layerId ? view.map.findLayerById(layerId) : null;
370
+ const layerUrl = (_b = layerSource === null || layerSource === void 0 ? void 0 : layerSource.layer) === null || _b === void 0 ? void 0 : _b.url;
371
+ if (layerFromMap) {
372
+ layerSource.layer = layerFromMap;
373
+ }
374
+ else if (layerUrl) {
375
+ layerSource.layer = new this.FeatureLayer(layerUrl);
376
+ }
377
+ }
378
+ });
379
+ sources === null || sources === void 0 ? void 0 : sources.forEach((source) => {
380
+ const isLocatorSource = source.hasOwnProperty("locator");
381
+ if (isLocatorSource) {
382
+ const locatorSource = source;
383
+ if ((locatorSource === null || locatorSource === void 0 ? void 0 : locatorSource.name) === "ArcGIS World Geocoding Service") {
384
+ const outFields = locatorSource.outFields || ["Addr_type", "Match_addr", "StAddr", "City"];
385
+ locatorSource.outFields = outFields;
386
+ locatorSource.singleLineFieldName = "SingleLine";
387
+ }
388
+ locatorSource.url = locatorSource.url;
389
+ delete locatorSource.url;
390
+ }
391
+ });
392
+ }
393
+ else {
394
+ searchConfiguration = Object.assign(Object.assign({}, searchConfiguration), { includeDefaultSources: true });
395
+ }
396
+ return searchConfiguration;
397
+ }
398
+ /**
399
+ * Initialize the graphics layer used to store any buffer grapghics
400
+ *
401
+ * @protected
402
+ */
403
+ _initGraphicsLayer() {
404
+ const title = this._translations.bufferLayer;
405
+ const bufferIndex = this.mapView.map.layers.findIndex((l) => l.title === title);
406
+ if (bufferIndex > -1) {
407
+ this._bufferGraphicsLayer = this.mapView.map.layers.getItemAt(bufferIndex);
408
+ }
409
+ else {
410
+ this._bufferGraphicsLayer = new this.GraphicsLayer({ title, listMode: "hide" });
411
+ publicNotificationStore.state.managedLayers.push(title);
412
+ const sketchIndex = this.mapView.map.layers.findIndex((l) => l.title === this._translations.sketchLayer);
413
+ if (sketchIndex > -1) {
414
+ this.mapView.map.layers.add(this._bufferGraphicsLayer, sketchIndex);
415
+ }
416
+ else {
417
+ this.mapView.map.layers.add(this._bufferGraphicsLayer);
418
+ }
419
+ }
420
+ }
421
+ /**
422
+ * Handle changes in the sketch graphics
423
+ *
424
+ * @param event stores the graphics that will be used to select features
425
+ * @param forceUpdate when true the drawn graphic will be used to select features from
426
+ * use layer features layer...then the selected layer features will be used to select from the main input layer
427
+ *
428
+ */
429
+ async _sketchGraphicsChanged(event, forceUpdate = false) {
430
+ const graphics = event.detail.graphics;
431
+ if (graphics.length > 0 && graphics[0]) {
432
+ if (!forceUpdate) {
433
+ this._sketchGraphic = graphics[0];
434
+ }
435
+ this._workflowType = this._useLayerFeaturesEnabled ? interfaces.EWorkflowType.SELECT : interfaces.EWorkflowType.SKETCH;
436
+ if (this._workflowType === interfaces.EWorkflowType.SKETCH) {
437
+ this._drawTools.updateGraphics();
438
+ }
439
+ this._updateLabel();
440
+ this._clearSearchWidget();
441
+ if (this._useLayerFeaturesEnabled && !forceUpdate) {
442
+ // Will only ever be a single graphic
443
+ const geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
444
+ await this._selectLayerFeatures(geometries[0]);
445
+ }
446
+ else {
447
+ const oids = graphics.reduce((prev, cur) => {
448
+ var _a;
449
+ if ((_a = cur === null || cur === void 0 ? void 0 : cur.layer) === null || _a === void 0 ? void 0 : _a.objectIdField) {
450
+ prev.push(cur.attributes[cur.layer.objectIdField]);
451
+ }
452
+ else if (cur.getObjectId) {
453
+ prev.push(cur.getObjectId());
454
+ }
455
+ return prev;
456
+ }, []);
457
+ const useOIDs = event.detail.useOIDs && oids.length > 0;
458
+ this._updateSelection(graphics, useOIDs, oids);
459
+ if (useOIDs) {
460
+ await this._highlightFeatures(oids);
461
+ }
462
+ }
463
+ }
464
+ else {
465
+ await this._clearResults(true, true);
466
+ }
467
+ }
468
+ /**
469
+ * Highlight the features in the map based on OIDs when skipOIDs have been defined
470
+ *
471
+ * @protected
472
+ */
473
+ async _highlightWithOIDsOrGeoms() {
474
+ var _a;
475
+ if (((_a = this._skipGeomOIDs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
476
+ this._selectedIds = this._skipGeomOIDs;
477
+ return this._highlightFeatures(this._selectedIds);
478
+ }
479
+ else {
480
+ return this._geomQuery(this.geometries);
481
+ }
482
+ }
483
+ /**
484
+ * Highlight the features in the map
485
+ *
486
+ * @param ids the ids that should be highlighted
487
+ *
488
+ * @protected
489
+ */
490
+ async _highlightFeatures(ids) {
491
+ publicNotificationStore.state.removeHandles();
492
+ if (ids.length > 0) {
493
+ publicNotificationStore.state.highlightHandles.push(await mapViewUtils.highlightFeatures(ids, this.selectLayerView, this.mapView));
494
+ }
495
+ this._numSelected = ids.length;
496
+ this.selectionSetChange.emit(ids.length);
497
+ }
498
+ /**
499
+ * Query the selectLayerView based on any user drawn geometries or buffers
500
+ *
501
+ * @param geometries Array of geometries used for the selection of ids from the select layer view
502
+ *
503
+ * @returns Promise when the selection is complete and the graphics have been highlighted
504
+ */
505
+ async _selectFeatures(geometries) {
506
+ this._selectionLoading = true;
507
+ this._selectedIds = await mapViewUtils.queryObjectIds(geometries, this.selectLayerView.layer);
508
+ this._selectionLoading = false;
509
+ // stored as graphics now in addition to the geoms
510
+ this._drawTools.graphics = this._graphics;
511
+ await this._highlightFeatures(this._selectedIds);
512
+ }
513
+ /**
514
+ * Query the selectLayerView based on any user drawn geometries or buffers
515
+ *
516
+ * @param evt CustomEvent that contains the result of the buffer
517
+ *
518
+ * @protected
519
+ */
520
+ async _bufferComplete(evt) {
521
+ this._bufferGeometry = Array.isArray(evt.detail) ?
522
+ evt.detail[0] : evt.detail;
523
+ let oldValue = this._bufferTools.distance;
524
+ let newValue = 0;
525
+ if (this._bufferGeometry) {
526
+ // Create a symbol for rendering the graphic
527
+ const symbol = {
528
+ type: "simple-fill",
529
+ color: this.bufferColor,
530
+ outline: {
531
+ color: this.bufferOutlineColor,
532
+ width: 1
533
+ }
534
+ };
535
+ // Add the geometry and symbol to a new graphic
536
+ const polygonGraphic = new this.Graphic({
537
+ geometry: this._bufferGeometry,
538
+ symbol
539
+ });
540
+ this._bufferGraphicsLayer.removeAll();
541
+ this._bufferGraphicsLayer.add(polygonGraphic);
542
+ await this._selectFeatures([this._bufferGeometry]);
543
+ await this.mapView.goTo(polygonGraphic.geometry.extent);
544
+ // We need to swap the values again if they were previously
545
+ // set based on disable of buffer tools when the tools have a value
546
+ newValue = oldValue;
547
+ oldValue = 0;
548
+ }
549
+ else {
550
+ if (this._bufferGraphicsLayer) {
551
+ this._bufferGraphicsLayer.removeAll();
552
+ }
553
+ await this._highlightWithOIDsOrGeoms();
554
+ }
555
+ // mock this b/c the tools can store a value that is different than what is shown in the map
556
+ // this occurs when a distance is set but then buffer is disabled
557
+ this._distanceChanged({
558
+ oldValue,
559
+ newValue
560
+ });
561
+ }
562
+ /**
563
+ * Fetch a single geometry for each potential geometry type
564
+ *
565
+ * @param geometries All current selection geometries
566
+ *
567
+ * @protected
568
+ */
569
+ _geomQuery(geometries) {
570
+ const queryGeoms = mapViewUtils.getQueryGeoms(geometries, this._geometryEngine);
571
+ return this._selectFeatures(queryGeoms);
572
+ }
573
+ /**
574
+ * Clear all stored values and general state for the component
575
+ *
576
+ * @param clearSearchWidget Optional boolean for clearing the search widget (default is true)
577
+ * @param clearLabel Optional boolean for clearing the search label (default is true)
578
+ *
579
+ * @protected
580
+ */
581
+ async _clearResults(clearSearchWidget = true, clearLabel = false) {
582
+ var _a;
583
+ this._selectedIds = [];
584
+ this._distance = undefined;
585
+ this._unit = undefined;
586
+ if (clearLabel) {
587
+ this._selectionLabel = "";
588
+ this._labelName.value = "";
589
+ }
590
+ if (this._bufferGraphicsLayer) {
591
+ this._bufferGraphicsLayer.removeAll();
592
+ }
593
+ if (clearSearchWidget && this._searchWidget) {
594
+ this._clearSearchWidget();
595
+ }
596
+ publicNotificationStore.state.removeHandles();
597
+ // checking for clear as it would throw off tests
598
+ if ((_a = this._drawTools) === null || _a === void 0 ? void 0 : _a.clear) {
599
+ this._graphics = [];
600
+ await this._drawTools.clear();
601
+ }
602
+ this.selectionSetChange.emit(this._selectedIds.length);
603
+ }
604
+ /**
605
+ * Clear all the search widget and any stored search result
606
+ *
607
+ * @protected
608
+ */
609
+ _clearSearchWidget() {
610
+ this._searchWidget.clear();
611
+ this._searchResult = undefined;
612
+ }
613
+ /**
614
+ * Fetch a single geometry for the current geometry type
615
+ *
616
+ * @param type worflow type
617
+ * @param graphics graphics to be used for selection
618
+ * @param label selection label
619
+ * @param useOIDs indicates if the OIDs should override the geometry for selection
620
+ * @param oids list of IDs to select when useOIDs is true
621
+ *
622
+ * @protected
623
+ */
624
+ _updateSelection(graphics, useOIDs, oids) {
625
+ this._selectedIds = useOIDs && oids ? oids : this._selectedIds;
626
+ // see https://github.com/Esri/solutions-components/issues/148
627
+ this._skipGeomOIDs = useOIDs ? oids : undefined;
628
+ this.geometries = Array.isArray(graphics) ? graphics.map(g => g.geometry) : this.geometries;
629
+ this._graphics = graphics;
630
+ }
631
+ /**
632
+ * Updates the label for the selection set
633
+ *
634
+ * @protected
635
+ */
636
+ _updateLabel() {
637
+ var _a, _b;
638
+ const hasSketch = this._selectionLabel.indexOf(this._translations.sketch) > -1;
639
+ const hasSelect = this._selectionLabel.indexOf(this._translations.select) > -1;
640
+ const hasSearch = this._selectionLabel.indexOf((_a = this._searchResult) === null || _a === void 0 ? void 0 : _a.name) > -1;
641
+ const label = this._workflowType === interfaces.EWorkflowType.SEARCH ? (_b = this._searchResult) === null || _b === void 0 ? void 0 : _b.name :
642
+ this._workflowType === interfaces.EWorkflowType.SELECT ?
643
+ this._translations.select : this._translations.sketch;
644
+ const unit = !this._unit ? this._bufferTools.unit : this._unit;
645
+ const distance = isNaN(this._distance) ? this._bufferTools.distance : this._distance;
646
+ this._selectionLabel = hasSketch || hasSelect || hasSearch || !this._selectionLabel ?
647
+ `${label} ${distance} ${unit}` : this._selectionLabel;
648
+ this._labelName.value = this._selectionLabel;
649
+ }
650
+ /**
651
+ * Gets the layer views from the map when the layer selection changes
652
+ *
653
+ * @returns Promise resolving when function is done
654
+ *
655
+ * @protected
656
+ */
657
+ async _layerSelectionChange(evt) {
658
+ if (Array.isArray(evt.detail) && evt.detail.length > 0) {
659
+ const layerPromises = evt.detail.map(id => {
660
+ return mapViewUtils.getFeatureLayerView(this.mapView, id);
661
+ });
662
+ return Promise.all(layerPromises).then((layerViews) => {
663
+ this.layerViews = layerViews;
664
+ this._featuresCollection = {};
665
+ if (this._sketchGraphic) {
666
+ void this._sketchGraphicsChanged({
667
+ detail: {
668
+ graphics: [this._sketchGraphic],
669
+ useOIDs: false
670
+ }
671
+ });
672
+ }
673
+ });
674
+ }
675
+ }
676
+ /**
677
+ * Fetch the layer from the map
678
+ *
679
+ * @param evt layer selection change event
680
+ *
681
+ * @returns Promise when the function has completed
682
+ * @protected
683
+ */
684
+ async _inputLayerSelectionChange(evt) {
685
+ var _a;
686
+ const id = ((_a = evt === null || evt === void 0 ? void 0 : evt.detail) === null || _a === void 0 ? void 0 : _a.length) > 0 ? evt.detail[0] : "";
687
+ if (!this.selectLayerView || id !== this.selectLayerView.layer.id) {
688
+ this.selectLayerView = await mapViewUtils.getFeatureLayerView(this.mapView, id);
689
+ this._updateLabel();
690
+ this._bufferGeometry ? await this._selectFeatures([this._bufferGeometry]) :
691
+ await this._highlightWithOIDsOrGeoms();
692
+ }
693
+ }
694
+ /**
695
+ * Handle changes to the buffer distance value
696
+ */
697
+ _distanceChanged(detail) {
698
+ if (detail.newValue !== detail.oldValue) {
699
+ this._distance = detail.newValue;
700
+ this._updateLabel();
701
+ }
702
+ }
703
+ /**
704
+ * Select features based on the input geometry
705
+ *
706
+ * @param geom the geometry used for selection
707
+ *
708
+ * @returns Promise resolving when function is done
709
+ *
710
+ * @protected
711
+ */
712
+ async _selectLayerFeatures(geom) {
713
+ this._selectionLoading = true;
714
+ const queryFeaturePromises = this.layerViews.map(layerView => {
715
+ this._featuresCollection[layerView.layer.id] = [];
716
+ return mapViewUtils.queryFeaturesByGeometry(0, layerView.layer, geom, this._featuresCollection);
717
+ });
718
+ return Promise.all(queryFeaturePromises).then(async (response) => {
719
+ this._selectionLoading = false;
720
+ let graphics = [];
721
+ response.forEach(r => {
722
+ Object.keys(r).forEach(k => {
723
+ graphics = graphics.concat(r[k]);
724
+ });
725
+ });
726
+ let hasOID = false;
727
+ graphics.forEach((g) => {
728
+ var _a;
729
+ const geom = g.geometry;
730
+ g.symbol = geom.type === "point" ?
731
+ this.sketchPointSymbol : geom.type === "polyline" ?
732
+ this.sketchLineSymbol : geom.type === "polygon" ?
733
+ this.sketchPolygonSymbol : undefined;
734
+ hasOID = ((_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.hasOwnProperty("objectIdField")) || g.hasOwnProperty("getObjectId");
735
+ });
736
+ // OIDs are used when the addressee layer and the current "use layer features" layer are the same
737
+ const useOIDs = (this.layerViews[0].layer.title === this.selectLayerView.layer.title) && hasOID;
738
+ await this._sketchGraphicsChanged({
739
+ detail: {
740
+ graphics,
741
+ useOIDs
742
+ }
743
+ }, true);
744
+ });
745
+ }
746
+ /**
747
+ * Store use layer features value and re-select features based on the original sketch graphic
748
+ *
749
+ * @protected
750
+ */
751
+ _useLayerFeaturesEnabledChanged() {
752
+ this._useLayerFeaturesEnabled = !this._useLayerFeaturesEnabled;
753
+ if (this._sketchGraphic) {
754
+ void this._sketchGraphicsChanged({
755
+ detail: {
756
+ graphics: [this._sketchGraphic],
757
+ useOIDs: false
758
+ }
759
+ });
760
+ }
761
+ }
762
+ /**
763
+ * Fetches the component's translations
764
+ *
765
+ * @protected
766
+ */
767
+ async _getTranslations() {
768
+ const translations = await locale.getLocaleComponentStrings(this.el);
769
+ this._translations = translations[0];
770
+ }
771
+ get el() { return index.getElement(this); }
772
+ static get watchers() { return {
773
+ "geometries": ["watchGeometriesHandler"],
774
+ "searchConfiguration": ["watchSearchConfigurationHandler"]
775
+ }; }
776
+ };
777
777
  MapSelectTools.style = mapSelectToolsCss;
778
778
 
779
779
  const labelFormats = [
@@ -975,532 +975,532 @@ const pdfLabelFormats = /*#__PURE__*/Object.freeze({
975
975
 
976
976
  const pdfDownloadCss = ":host{display:block}";
977
977
 
978
- const PdfDownload = class {
979
- constructor(hostRef) {
980
- index.registerInstance(this, hostRef);
981
- this.defaultNumLabelsPerPage = undefined;
982
- this.disabled = false;
983
- this._translations = undefined;
984
- }
985
- //--------------------------------------------------------------------------
986
- //
987
- // Watch handlers
988
- //
989
- //--------------------------------------------------------------------------
990
- //--------------------------------------------------------------------------
991
- //
992
- // Methods (public)
993
- //
994
- //--------------------------------------------------------------------------
995
- /**
996
- * Downloads csv of mailing labels for the provided list of ids
997
- *
998
- * @param exportInfos Information about items to be exported
999
- * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
1000
- * @param addColumnTitle Indicates if column headings should be included in output
1001
- * @returns Promise resolving when function is done
1002
- */
1003
- async downloadCSV(exportInfos, removeDuplicates, addColumnTitle = true) {
1004
- return downloadUtils.downloadCSV(exportInfos, true, // formatUsingLayerPopup
1005
- removeDuplicates, addColumnTitle);
1006
- }
1007
- /**
1008
- * Downloads pdf of mailing labels for the provided list of ids
1009
- *
1010
- * @param exportInfos Information about items to be exported
1011
- * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
1012
- * @param title Title for each page
1013
- * @param initialImageDataUrl Data URL of image for first page
1014
- * @returns Promise resolving when function is done
1015
- */
1016
- async downloadPDF(exportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "") {
1017
- var _c;
1018
- return downloadUtils.downloadPDF(exportInfos, (_c = this._labelInfoElement.selectedOption) === null || _c === void 0 ? void 0 : _c.value, removeDuplicates, title, initialImageDataUrl);
1019
- }
1020
- //--------------------------------------------------------------------------
1021
- //
1022
- // Events (public)
1023
- //
1024
- //--------------------------------------------------------------------------
1025
- //--------------------------------------------------------------------------
1026
- //
1027
- // Functions (lifecycle)
1028
- //
1029
- //--------------------------------------------------------------------------
1030
- /**
1031
- * StencilJS: Called once just after the component is first connected to the DOM.
1032
- */
1033
- async componentWillLoad() {
1034
- await this._getTranslations();
1035
- await this._initModules();
1036
- }
1037
- /**
1038
- * Renders the component.
1039
- */
1040
- render() {
1041
- return (index.h(index.Host, null, index.h("calcite-select", { disabled: this.disabled, label: "", ref: (el) => { this._labelInfoElement = el; } })));
1042
- }
1043
- componentDidRender() {
1044
- // Render the options outside of Stencil's rendering so that it doesn't mangle RTL text with embedded LTR
1045
- this._renderOptions();
1046
- }
1047
- //--------------------------------------------------------------------------
1048
- //
1049
- // Functions (protected)
1050
- //
1051
- //--------------------------------------------------------------------------
1052
- /**
1053
- * Load esri javascript api modules
1054
- *
1055
- * @returns Promise resolving when function is done
1056
- *
1057
- * @protected
1058
- */
1059
- async _initModules() {
1060
- const [intl] = await loadModules.loadModules([
1061
- "esri/intl"
1062
- ]);
1063
- this._intl = intl;
1064
- }
1065
- /**
1066
- * Gets the formatted pdf export size text
1067
- *
1068
- * @param labelInfo current user selected label info
1069
- *
1070
- * @returns the pdf label as a string
1071
- * @protected
1072
- */
1073
- _getLabelSizeText(labelInfo) {
1074
- const lNum = labelInfo.descriptionPDF.labelsPerPageDisplay;
1075
- const lSize = "&lrm;" + labelInfo.descriptionPDF.labelWidthDisplay + " x " +
1076
- labelInfo.descriptionPDF.labelHeightDisplay + "&rlm;";
1077
- return this._translations.pdfLabel.replace("{{n}}", lNum).replace("{{labelSize}}", lSize);
1078
- }
1079
- /**
1080
- * Fetches the component's translations
1081
- *
1082
- * @protected
1083
- */
1084
- async _getTranslations() {
1085
- const translations = await locale.getLocaleComponentStrings(this.el);
1086
- this._translations = translations[0];
1087
- }
1088
- /**
1089
- * Renders the pdf export size options and adds them to the `select` component
1090
- *
1091
- * @protected
1092
- */
1093
- _renderOptions() {
1094
- const s = pdfLabelFormats;
1095
- const sortedPdfIndo = (s.default || s).sort((a, b) => {
1096
- const _a = parseInt(a.descriptionPDF.labelsPerPageDisplay, 10);
1097
- const _b = parseInt(b.descriptionPDF.labelsPerPageDisplay, 10);
1098
- return _a < _b ? -1 : _a > _b ? 1 : 0;
1099
- });
1100
- sortedPdfIndo.forEach((l, i) => {
1101
- const option = document.createElement("calcite-option");
1102
- option.value = l;
1103
- option.innerHTML = this._getLabelSizeText(l);
1104
- this._labelInfoElement.appendChild(option);
1105
- if (this.defaultNumLabelsPerPage ? parseInt(l.descriptionPDF.labelsPerPageDisplay, 10) === this.defaultNumLabelsPerPage : i === 0) {
1106
- // Setting selected wasn't enough to trigger it being the 'selectedOption'
1107
- option.selected = true;
1108
- this._labelInfoElement.selectedOption = option;
1109
- }
1110
- });
1111
- }
1112
- get el() { return index.getElement(this); }
1113
- };
978
+ const PdfDownload = class {
979
+ constructor(hostRef) {
980
+ index.registerInstance(this, hostRef);
981
+ this.defaultNumLabelsPerPage = undefined;
982
+ this.disabled = false;
983
+ this._translations = undefined;
984
+ }
985
+ //--------------------------------------------------------------------------
986
+ //
987
+ // Watch handlers
988
+ //
989
+ //--------------------------------------------------------------------------
990
+ //--------------------------------------------------------------------------
991
+ //
992
+ // Methods (public)
993
+ //
994
+ //--------------------------------------------------------------------------
995
+ /**
996
+ * Downloads csv of mailing labels for the provided list of ids
997
+ *
998
+ * @param exportInfos Information about items to be exported
999
+ * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
1000
+ * @param addColumnTitle Indicates if column headings should be included in output
1001
+ * @returns Promise resolving when function is done
1002
+ */
1003
+ async downloadCSV(exportInfos, removeDuplicates, addColumnTitle = true) {
1004
+ return downloadUtils.downloadCSV(exportInfos, true, // formatUsingLayerPopup
1005
+ removeDuplicates, addColumnTitle);
1006
+ }
1007
+ /**
1008
+ * Downloads pdf of mailing labels for the provided list of ids
1009
+ *
1010
+ * @param exportInfos Information about items to be exported
1011
+ * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
1012
+ * @param title Title for each page
1013
+ * @param initialImageDataUrl Data URL of image for first page
1014
+ * @returns Promise resolving when function is done
1015
+ */
1016
+ async downloadPDF(exportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "") {
1017
+ var _c;
1018
+ return downloadUtils.downloadPDF(exportInfos, (_c = this._labelInfoElement.selectedOption) === null || _c === void 0 ? void 0 : _c.value, removeDuplicates, title, initialImageDataUrl);
1019
+ }
1020
+ //--------------------------------------------------------------------------
1021
+ //
1022
+ // Events (public)
1023
+ //
1024
+ //--------------------------------------------------------------------------
1025
+ //--------------------------------------------------------------------------
1026
+ //
1027
+ // Functions (lifecycle)
1028
+ //
1029
+ //--------------------------------------------------------------------------
1030
+ /**
1031
+ * StencilJS: Called once just after the component is first connected to the DOM.
1032
+ */
1033
+ async componentWillLoad() {
1034
+ await this._getTranslations();
1035
+ await this._initModules();
1036
+ }
1037
+ /**
1038
+ * Renders the component.
1039
+ */
1040
+ render() {
1041
+ return (index.h(index.Host, null, index.h("calcite-select", { disabled: this.disabled, label: "", ref: (el) => { this._labelInfoElement = el; } })));
1042
+ }
1043
+ componentDidRender() {
1044
+ // Render the options outside of Stencil's rendering so that it doesn't mangle RTL text with embedded LTR
1045
+ this._renderOptions();
1046
+ }
1047
+ //--------------------------------------------------------------------------
1048
+ //
1049
+ // Functions (protected)
1050
+ //
1051
+ //--------------------------------------------------------------------------
1052
+ /**
1053
+ * Load esri javascript api modules
1054
+ *
1055
+ * @returns Promise resolving when function is done
1056
+ *
1057
+ * @protected
1058
+ */
1059
+ async _initModules() {
1060
+ const [intl] = await loadModules.loadModules([
1061
+ "esri/intl"
1062
+ ]);
1063
+ this._intl = intl;
1064
+ }
1065
+ /**
1066
+ * Gets the formatted pdf export size text
1067
+ *
1068
+ * @param labelInfo current user selected label info
1069
+ *
1070
+ * @returns the pdf label as a string
1071
+ * @protected
1072
+ */
1073
+ _getLabelSizeText(labelInfo) {
1074
+ const lNum = labelInfo.descriptionPDF.labelsPerPageDisplay;
1075
+ const lSize = "&lrm;" + labelInfo.descriptionPDF.labelWidthDisplay + " x " +
1076
+ labelInfo.descriptionPDF.labelHeightDisplay + "&rlm;";
1077
+ return this._translations.pdfLabel.replace("{{n}}", lNum).replace("{{labelSize}}", lSize);
1078
+ }
1079
+ /**
1080
+ * Fetches the component's translations
1081
+ *
1082
+ * @protected
1083
+ */
1084
+ async _getTranslations() {
1085
+ const translations = await locale.getLocaleComponentStrings(this.el);
1086
+ this._translations = translations[0];
1087
+ }
1088
+ /**
1089
+ * Renders the pdf export size options and adds them to the `select` component
1090
+ *
1091
+ * @protected
1092
+ */
1093
+ _renderOptions() {
1094
+ const s = pdfLabelFormats;
1095
+ const sortedPdfIndo = (s.default || s).sort((a, b) => {
1096
+ const _a = parseInt(a.descriptionPDF.labelsPerPageDisplay, 10);
1097
+ const _b = parseInt(b.descriptionPDF.labelsPerPageDisplay, 10);
1098
+ return _a < _b ? -1 : _a > _b ? 1 : 0;
1099
+ });
1100
+ sortedPdfIndo.forEach((l, i) => {
1101
+ const option = document.createElement("calcite-option");
1102
+ option.value = l;
1103
+ option.innerHTML = this._getLabelSizeText(l);
1104
+ this._labelInfoElement.appendChild(option);
1105
+ if (this.defaultNumLabelsPerPage ? parseInt(l.descriptionPDF.labelsPerPageDisplay, 10) === this.defaultNumLabelsPerPage : i === 0) {
1106
+ // Setting selected wasn't enough to trigger it being the 'selectedOption'
1107
+ option.selected = true;
1108
+ this._labelInfoElement.selectedOption = option;
1109
+ }
1110
+ });
1111
+ }
1112
+ get el() { return index.getElement(this); }
1113
+ };
1114
1114
  PdfDownload.style = pdfDownloadCss;
1115
1115
 
1116
1116
  const refineSelectionCss = ":host{display:block}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.border{outline:1px solid var(--calcite-ui-border-input)}.margin-top-1{margin-top:1rem}.esri-sketch{display:flex;flex-flow:column wrap}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:var(--calcite-ui-foreground-1)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row nowrap;padding:0}*/ .esri-sketch__tool-section{border-right:1px solid rgba(110,110,110,.3)}.esri-sketch__section{align-items:center;display:flex;flex-flow:row nowrap;padding:0 7px;margin:6px 0;border-right:1px solid rgba(110,110,110,.3)}.display-flex{display:flex}.font-bold{font-weight:bold}.width-full{width:100%}.label-margin-0{--calcite-label-margin-bottom:0}.padding-start-1-2{padding-inline-start:0.5rem}.font-weight-500{font-weight:500}.word-wrap-anywhere{word-wrap:anywhere}";
1117
1117
 
1118
- const RefineSelection = class {
1119
- constructor(hostRef) {
1120
- index.registerInstance(this, hostRef);
1121
- this.selectionLoadingChange = index.createEvent(this, "selectionLoadingChange", 7);
1122
- this.selectionSetsChanged = index.createEvent(this, "selectionSetsChanged", 7);
1123
- //--------------------------------------------------------------------------
1124
- //
1125
- // Properties (protected)
1126
- //
1127
- //--------------------------------------------------------------------------
1128
- /**
1129
- * boolean: Indicates if any new graphics should be added or removed
1130
- */
1131
- this._addEnabled = true;
1132
- /**
1133
- * ISelectionSet[]: The current list of selection sets
1134
- */
1135
- this._refineSets = [];
1136
- /**
1137
- * string[]: The list of all layers that have current selections
1138
- */
1139
- this._enabledLayerIds = [];
1140
- /**
1141
- * {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
1142
- */
1143
- this._featuresCollection = {};
1144
- this.addresseeLayer = undefined;
1145
- this.enabledLayerIds = [];
1146
- this.mapView = undefined;
1147
- this.selectionSets = [];
1148
- this.sketchLineSymbol = undefined;
1149
- this.sketchPointSymbol = undefined;
1150
- this.sketchPolygonSymbol = undefined;
1151
- this._translations = undefined;
1152
- this._selectionMode = interfaces.ESelectionMode.ADD;
1153
- this._refineLayer = undefined;
1154
- }
1155
- //--------------------------------------------------------------------------
1156
- //
1157
- // Functions (lifecycle)
1158
- //
1159
- //--------------------------------------------------------------------------
1160
- /**
1161
- * StencilJS: Called once just after the component is first connected to the DOM.
1162
- */
1163
- async componentWillLoad() {
1164
- await this._getTranslations();
1165
- this._enabledLayerIds = this._getEnabledLayerIds();
1166
- await this._setRefineSet(this._enabledLayerIds[0]);
1167
- }
1168
- /**
1169
- * Renders the component.
1170
- */
1171
- render() {
1172
- var _a, _b;
1173
- const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
1174
- return (index.h(index.Host, null, index.h("div", { class: layerPickerClass + " padding-top-sides-1" }, index.h("div", { class: "display-flex" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, index.h("div", { class: "display-flex" }, this._translations.inputLayer, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), index.h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id] })), index.h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, index.h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), index.h("div", { class: "padding-1" }, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-segmented-control", { class: "w-100" }, index.h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.ADD), value: interfaces.ESelectionMode.ADD }, index.h("span", { class: "font-weight-500" }, this._translations.add)), index.h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.REMOVE), value: interfaces.ESelectionMode.REMOVE }, index.h("span", { class: "font-weight-500" }, this._translations.remove)))), index.h("div", null, index.h("map-draw-tools", { active: true, drawMode: interfaces.EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
1175
- }
1176
- //--------------------------------------------------------------------------
1177
- //
1178
- // Functions (protected)
1179
- //
1180
- //--------------------------------------------------------------------------
1181
- /**
1182
- * Set the user selected layer as the current refine layer
1183
- *
1184
- * @param evt contains the selected layer id
1185
- *
1186
- * @protected
1187
- */
1188
- _layerSelectionChange(evt) {
1189
- const id = evt.detail[0];
1190
- void this._setRefineSet(id);
1191
- }
1192
- /**
1193
- * Store the current selection mode
1194
- *
1195
- * @param selectionMode the current selection mode ADD || REMOVE
1196
- *
1197
- * @protected
1198
- */
1199
- _setSelectionMode(selectionMode) {
1200
- this._selectionMode = selectionMode;
1201
- }
1202
- /**
1203
- * Select features based on the user drawn geometry
1204
- *
1205
- * @param evt ISketchGraphicsChange stores the new graphics and a boolean useOIDs
1206
- * useOIDs is leveraged in some situations to use the feature OIDs rather than the graphic geometry
1207
- *
1208
- * @protected
1209
- */
1210
- _sketchGraphicsChanged(evt) {
1211
- var _a;
1212
- const geom = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.graphics[0].geometry;
1213
- void this._selectFeatures(geom);
1214
- }
1215
- /**
1216
- * Get the layer ids for all layers in the selection sets
1217
- *
1218
- * @protected
1219
- */
1220
- _getEnabledLayerIds() {
1221
- return this.selectionSets.reduce((prev, cur) => {
1222
- var _a;
1223
- const id = (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.id;
1224
- if (id && prev.indexOf(id) < 0) {
1225
- prev.push(id);
1226
- }
1227
- else if (cur.workflowType === interfaces.EWorkflowType.REFINE) {
1228
- Object.keys(cur.refineInfos).forEach(k => {
1229
- if (prev.indexOf(k) < 0) {
1230
- prev.push(k);
1231
- }
1232
- });
1233
- }
1234
- return prev;
1235
- }, []);
1236
- }
1237
- /**
1238
- * Set the refine layer...any adds or removes will be done against this layer
1239
- *
1240
- * @param id the id of the layer that should be used as the current refine layer
1241
- *
1242
- * @protected
1243
- */
1244
- async _setRefineSet(id) {
1245
- if (!this.selectionSets.some((ss) => {
1246
- if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
1247
- this._refineSelectionSet = ss;
1248
- return Object.keys(ss.refineInfos).indexOf(id) > -1;
1249
- }
1250
- })) {
1251
- await this._initRefineSet(id, this._refineSelectionSet);
1252
- }
1253
- this._refineLayer = this._refineSelectionSet.refineInfos[id].layerView;
1254
- }
1255
- /**
1256
- * Initialize the refine selection set
1257
- *
1258
- * @param id the layer id to use for the refine selection set
1259
- * @param selectionSet the current refine selection set
1260
- *
1261
- * @protected
1262
- */
1263
- async _initRefineSet(id, selectionSet) {
1264
- const refineInfo = {};
1265
- refineInfo[id] = {
1266
- addIds: [],
1267
- removeIds: [],
1268
- layerView: await mapViewUtils.getFeatureLayerView(this.mapView, id)
1269
- };
1270
- if (selectionSet) {
1271
- selectionSet.refineInfos = Object.assign(Object.assign({}, selectionSet.refineInfos), refineInfo);
1272
- }
1273
- else {
1274
- this._refineSelectionSet = {
1275
- id: Date.now(),
1276
- searchResult: undefined,
1277
- buffer: undefined,
1278
- distance: 0,
1279
- download: true,
1280
- unit: "feet",
1281
- label: "Refine",
1282
- selectedIds: [],
1283
- layerView: undefined,
1284
- geometries: [],
1285
- graphics: [],
1286
- selectLayers: [],
1287
- workflowType: interfaces.EWorkflowType.REFINE,
1288
- searchDistanceEnabled: false,
1289
- useLayerFeaturesEnabled: false,
1290
- refineInfos: refineInfo,
1291
- redoStack: [],
1292
- undoStack: [],
1293
- sketchGraphic: undefined
1294
- };
1295
- this.selectionSets.push(this._refineSelectionSet);
1296
- }
1297
- }
1298
- /**
1299
- * Undo the most current ADD or REMOVE operation
1300
- *
1301
- * @returns Promise resolving when function is done
1302
- *
1303
- * @protected
1304
- */
1305
- _undo() {
1306
- const undoOp = this._refineSelectionSet.undoStack.pop();
1307
- void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.redoStack, undoOp.layerView);
1308
- }
1309
- /**
1310
- * Redo the most current ADD or REMOVE operation
1311
- *
1312
- * @returns Promise resolving when function is done
1313
- *
1314
- * @protected
1315
- */
1316
- _redo() {
1317
- const redoOp = this._refineSelectionSet.redoStack.pop();
1318
- void this._updateIds(redoOp.ids, redoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.undoStack, redoOp.layerView);
1319
- }
1320
- /**
1321
- * Create a list to show the number added/removed/total unique selected
1322
- *
1323
- * @returns the list node
1324
- * @protected
1325
- */
1326
- _getRefineSelectionSetList() {
1327
- const total = this._getTotal(this.selectionSets);
1328
- let refineSet;
1329
- this.selectionSets.some(ss => {
1330
- if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
1331
- refineSet = ss;
1332
- return true;
1333
- }
1334
- });
1335
- let numAdded = 0;
1336
- let numRemoved = 0;
1337
- Object.keys(refineSet.refineInfos).forEach(k => {
1338
- numAdded += refineSet.refineInfos[k].addIds.length;
1339
- numRemoved += refineSet.refineInfos[k].removeIds.length;
1340
- });
1341
- return [(index.h("calcite-list-item", { label: this._translations.featuresAdded.replace("{{n}}", numAdded.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.featuresRemoved.replace("{{n}}", numRemoved.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.totalSelected.replace("{{n}}", total.toString()), "non-interactive": true }))];
1342
- }
1343
- /**
1344
- * Get the total number od ids across all selection sets
1345
- *
1346
- * @returns the total number of ids
1347
- * @protected
1348
- */
1349
- _getTotal(selectionSets) {
1350
- const idSets = mapViewUtils.getIdSets(selectionSets);
1351
- return Object.keys(idSets).reduce((prev, cur) => {
1352
- const idSet = idSets[cur];
1353
- prev += idSet.ids.length;
1354
- return prev;
1355
- }, 0);
1356
- }
1357
- /**
1358
- * Fetches the component's translations
1359
- *
1360
- * @protected
1361
- */
1362
- async _getTranslations() {
1363
- const translations = await locale.getLocaleComponentStrings(this.el);
1364
- this._translations = translations[0];
1365
- }
1366
- /**
1367
- * Select features based on the input geometry
1368
- *
1369
- * @param geom the geometry used for selection
1370
- *
1371
- * @returns Promise resolving when function is done
1372
- *
1373
- * @protected
1374
- */
1375
- async _selectFeatures(geom) {
1376
- var _a, _b;
1377
- this.selectionLoadingChange.emit(true);
1378
- this._featuresCollection[(_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id] = [];
1379
- const response = await mapViewUtils.queryFeaturesByGeometry(0, (_b = this._refineLayer) === null || _b === void 0 ? void 0 : _b.layer, geom, this._featuresCollection);
1380
- this.selectionLoadingChange.emit(false);
1381
- let graphics = [];
1382
- Object.keys(response).forEach(k => {
1383
- var _a;
1384
- if (k === ((_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id)) {
1385
- graphics = graphics.concat(response[k]);
1386
- }
1387
- });
1388
- const oids = Array.isArray(graphics) ? graphics.map(g => { var _a; return g.attributes[(_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.objectIdField]; }) : [];
1389
- await this._updateIds(oids, this._selectionMode, this._refineSelectionSet.undoStack, this._refineLayer);
1390
- this._drawTools.clear();
1391
- }
1392
- /**
1393
- * Highlight any selected features in the map
1394
- *
1395
- * @returns Promise resolving when function is done
1396
- * @protected
1397
- */
1398
- async _highlightFeatures() {
1399
- this._clearHighlight();
1400
- publicNotificationStore.state.highlightHandles = await mapViewUtils.highlightAllFeatures(this.selectionSets);
1401
- }
1402
- /**
1403
- * Clear any highlighted features in the map
1404
- *
1405
- * @protected
1406
- */
1407
- _clearHighlight() {
1408
- publicNotificationStore.state.removeHandles();
1409
- }
1410
- /**
1411
- * Update the ids for any ADD or REMOVE operation and highlight the features.
1412
- *
1413
- * @param oids the ids to add or remove
1414
- * @param mode ADD or REMOVE this will control if the ids are added or removed
1415
- * @param operationStack the undo or redo stack to push the operation to
1416
- * @param operationMode ADD or REMOVE the mode of the individual refine operation
1417
- *
1418
- * @returns Promise resolving when function is done
1419
- *
1420
- * @protected
1421
- */
1422
- async _updateIds(ids, mode, operationStack, layerView) {
1423
- let selectionSetsChanged = false;
1424
- const refineInfos = this._refineSelectionSet.refineInfos;
1425
- const layerId = layerView.layer.id;
1426
- const newRefineInfo = {};
1427
- newRefineInfo[layerId] = {
1428
- addIds: [],
1429
- removeIds: [],
1430
- layerView
1431
- };
1432
- const idUpdates = Object.keys(refineInfos).indexOf(layerId) > -1 ?
1433
- refineInfos[layerId] : newRefineInfo[layerId];
1434
- if (mode === interfaces.ESelectionMode.ADD) {
1435
- idUpdates.addIds = [...new Set([...ids, ...idUpdates.addIds])];
1436
- if (idUpdates.addIds.length > 0) {
1437
- operationStack.push({
1438
- ids,
1439
- mode,
1440
- layerView
1441
- });
1442
- }
1443
- if (idUpdates.removeIds.length > 0) {
1444
- idUpdates.removeIds = idUpdates.removeIds.filter(id => ids.indexOf(id) < 0);
1445
- }
1446
- }
1447
- else {
1448
- // ids are a result of the drawn geom...so it's possible they could contain ids that do
1449
- // not exist in other selection sets
1450
- const validIds = this.selectionSets.reduce((prev, cur) => {
1451
- ids.forEach(id => {
1452
- if (cur.workflowType !== interfaces.EWorkflowType.REFINE) {
1453
- if (cur.selectedIds.indexOf(id) > -1) {
1454
- prev.push(id);
1455
- }
1456
- }
1457
- else {
1458
- Object.keys(cur.refineInfos).some(k => {
1459
- const refineInfo = cur.refineInfos[k];
1460
- if (refineInfo.layerView.layer.id === layerView.layer.id && refineInfo.addIds.indexOf(id) > -1) {
1461
- prev.push(id);
1462
- return true;
1463
- }
1464
- });
1465
- }
1466
- });
1467
- return prev;
1468
- }, []);
1469
- idUpdates.removeIds = [...new Set([...validIds, ...idUpdates.removeIds])];
1470
- idUpdates.addIds = idUpdates.addIds.filter(id => validIds.indexOf(id) < 0);
1471
- if (idUpdates.removeIds.length > 0) {
1472
- operationStack.push({
1473
- ids: validIds,
1474
- mode,
1475
- layerView
1476
- });
1477
- }
1478
- this.selectionSets = this.selectionSets.reduce((prev, cur) => {
1479
- if (cur.workflowType !== interfaces.EWorkflowType.REFINE &&
1480
- cur.layerView.layer.id === layerView.layer.id) {
1481
- cur.selectedIds = cur.selectedIds.filter(id => idUpdates.removeIds.indexOf(id) < 0);
1482
- if (cur.selectedIds.length > 0) {
1483
- prev.push(cur);
1484
- }
1485
- else {
1486
- selectionSetsChanged = true;
1487
- }
1488
- }
1489
- else {
1490
- prev.push(cur);
1491
- }
1492
- return prev;
1493
- }, []);
1494
- }
1495
- this._refineSelectionSet.refineInfos[layerId] = idUpdates;
1496
- this.selectionSets = [...this.selectionSets];
1497
- if (selectionSetsChanged) {
1498
- this.selectionSetsChanged.emit(this.selectionSets);
1499
- }
1500
- await this._highlightFeatures();
1501
- }
1502
- get el() { return index.getElement(this); }
1503
- };
1118
+ const RefineSelection = class {
1119
+ constructor(hostRef) {
1120
+ index.registerInstance(this, hostRef);
1121
+ this.selectionLoadingChange = index.createEvent(this, "selectionLoadingChange", 7);
1122
+ this.selectionSetsChanged = index.createEvent(this, "selectionSetsChanged", 7);
1123
+ //--------------------------------------------------------------------------
1124
+ //
1125
+ // Properties (protected)
1126
+ //
1127
+ //--------------------------------------------------------------------------
1128
+ /**
1129
+ * boolean: Indicates if any new graphics should be added or removed
1130
+ */
1131
+ this._addEnabled = true;
1132
+ /**
1133
+ * ISelectionSet[]: The current list of selection sets
1134
+ */
1135
+ this._refineSets = [];
1136
+ /**
1137
+ * string[]: The list of all layers that have current selections
1138
+ */
1139
+ this._enabledLayerIds = [];
1140
+ /**
1141
+ * {<layer id>: Graphic[]}: Collection of graphics returned from queries to the layer
1142
+ */
1143
+ this._featuresCollection = {};
1144
+ this.addresseeLayer = undefined;
1145
+ this.enabledLayerIds = [];
1146
+ this.mapView = undefined;
1147
+ this.selectionSets = [];
1148
+ this.sketchLineSymbol = undefined;
1149
+ this.sketchPointSymbol = undefined;
1150
+ this.sketchPolygonSymbol = undefined;
1151
+ this._translations = undefined;
1152
+ this._selectionMode = interfaces.ESelectionMode.ADD;
1153
+ this._refineLayer = undefined;
1154
+ }
1155
+ //--------------------------------------------------------------------------
1156
+ //
1157
+ // Functions (lifecycle)
1158
+ //
1159
+ //--------------------------------------------------------------------------
1160
+ /**
1161
+ * StencilJS: Called once just after the component is first connected to the DOM.
1162
+ */
1163
+ async componentWillLoad() {
1164
+ await this._getTranslations();
1165
+ this._enabledLayerIds = this._getEnabledLayerIds();
1166
+ await this._setRefineSet(this._enabledLayerIds[0]);
1167
+ }
1168
+ /**
1169
+ * Renders the component.
1170
+ */
1171
+ render() {
1172
+ var _a, _b;
1173
+ const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
1174
+ return (index.h(index.Host, null, index.h("div", { class: layerPickerClass + " padding-top-sides-1" }, index.h("div", { class: "display-flex" }, index.h("calcite-label", { class: "font-bold width-full label-margin-0" }, index.h("div", { class: "display-flex" }, this._translations.inputLayer, index.h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), index.h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedIds: [this._refineLayer.layer.id] })), index.h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, index.h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), index.h("div", { class: "padding-1" }, index.h("div", { class: "padding-bottom-1" }, index.h("calcite-segmented-control", { class: "w-100" }, index.h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.ADD), value: interfaces.ESelectionMode.ADD }, index.h("span", { class: "font-weight-500" }, this._translations.add)), index.h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50 word-wrap-anywhere", onClick: () => this._setSelectionMode(interfaces.ESelectionMode.REMOVE), value: interfaces.ESelectionMode.REMOVE }, index.h("span", { class: "font-weight-500" }, this._translations.remove)))), index.h("div", null, index.h("map-draw-tools", { active: true, drawMode: interfaces.EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), index.h("br", null), (index.h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
1175
+ }
1176
+ //--------------------------------------------------------------------------
1177
+ //
1178
+ // Functions (protected)
1179
+ //
1180
+ //--------------------------------------------------------------------------
1181
+ /**
1182
+ * Set the user selected layer as the current refine layer
1183
+ *
1184
+ * @param evt contains the selected layer id
1185
+ *
1186
+ * @protected
1187
+ */
1188
+ _layerSelectionChange(evt) {
1189
+ const id = evt.detail[0];
1190
+ void this._setRefineSet(id);
1191
+ }
1192
+ /**
1193
+ * Store the current selection mode
1194
+ *
1195
+ * @param selectionMode the current selection mode ADD || REMOVE
1196
+ *
1197
+ * @protected
1198
+ */
1199
+ _setSelectionMode(selectionMode) {
1200
+ this._selectionMode = selectionMode;
1201
+ }
1202
+ /**
1203
+ * Select features based on the user drawn geometry
1204
+ *
1205
+ * @param evt ISketchGraphicsChange stores the new graphics and a boolean useOIDs
1206
+ * useOIDs is leveraged in some situations to use the feature OIDs rather than the graphic geometry
1207
+ *
1208
+ * @protected
1209
+ */
1210
+ _sketchGraphicsChanged(evt) {
1211
+ var _a;
1212
+ const geom = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.graphics[0].geometry;
1213
+ void this._selectFeatures(geom);
1214
+ }
1215
+ /**
1216
+ * Get the layer ids for all layers in the selection sets
1217
+ *
1218
+ * @protected
1219
+ */
1220
+ _getEnabledLayerIds() {
1221
+ return this.selectionSets.reduce((prev, cur) => {
1222
+ var _a;
1223
+ const id = (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.id;
1224
+ if (id && prev.indexOf(id) < 0) {
1225
+ prev.push(id);
1226
+ }
1227
+ else if (cur.workflowType === interfaces.EWorkflowType.REFINE) {
1228
+ Object.keys(cur.refineInfos).forEach(k => {
1229
+ if (prev.indexOf(k) < 0) {
1230
+ prev.push(k);
1231
+ }
1232
+ });
1233
+ }
1234
+ return prev;
1235
+ }, []);
1236
+ }
1237
+ /**
1238
+ * Set the refine layer...any adds or removes will be done against this layer
1239
+ *
1240
+ * @param id the id of the layer that should be used as the current refine layer
1241
+ *
1242
+ * @protected
1243
+ */
1244
+ async _setRefineSet(id) {
1245
+ if (!this.selectionSets.some((ss) => {
1246
+ if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
1247
+ this._refineSelectionSet = ss;
1248
+ return Object.keys(ss.refineInfos).indexOf(id) > -1;
1249
+ }
1250
+ })) {
1251
+ await this._initRefineSet(id, this._refineSelectionSet);
1252
+ }
1253
+ this._refineLayer = this._refineSelectionSet.refineInfos[id].layerView;
1254
+ }
1255
+ /**
1256
+ * Initialize the refine selection set
1257
+ *
1258
+ * @param id the layer id to use for the refine selection set
1259
+ * @param selectionSet the current refine selection set
1260
+ *
1261
+ * @protected
1262
+ */
1263
+ async _initRefineSet(id, selectionSet) {
1264
+ const refineInfo = {};
1265
+ refineInfo[id] = {
1266
+ addIds: [],
1267
+ removeIds: [],
1268
+ layerView: await mapViewUtils.getFeatureLayerView(this.mapView, id)
1269
+ };
1270
+ if (selectionSet) {
1271
+ selectionSet.refineInfos = Object.assign(Object.assign({}, selectionSet.refineInfos), refineInfo);
1272
+ }
1273
+ else {
1274
+ this._refineSelectionSet = {
1275
+ id: Date.now(),
1276
+ searchResult: undefined,
1277
+ buffer: undefined,
1278
+ distance: 0,
1279
+ download: true,
1280
+ unit: "feet",
1281
+ label: "Refine",
1282
+ selectedIds: [],
1283
+ layerView: undefined,
1284
+ geometries: [],
1285
+ graphics: [],
1286
+ selectLayers: [],
1287
+ workflowType: interfaces.EWorkflowType.REFINE,
1288
+ searchDistanceEnabled: false,
1289
+ useLayerFeaturesEnabled: false,
1290
+ refineInfos: refineInfo,
1291
+ redoStack: [],
1292
+ undoStack: [],
1293
+ sketchGraphic: undefined
1294
+ };
1295
+ this.selectionSets.push(this._refineSelectionSet);
1296
+ }
1297
+ }
1298
+ /**
1299
+ * Undo the most current ADD or REMOVE operation
1300
+ *
1301
+ * @returns Promise resolving when function is done
1302
+ *
1303
+ * @protected
1304
+ */
1305
+ _undo() {
1306
+ const undoOp = this._refineSelectionSet.undoStack.pop();
1307
+ void this._updateIds(undoOp.ids, undoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.redoStack, undoOp.layerView);
1308
+ }
1309
+ /**
1310
+ * Redo the most current ADD or REMOVE operation
1311
+ *
1312
+ * @returns Promise resolving when function is done
1313
+ *
1314
+ * @protected
1315
+ */
1316
+ _redo() {
1317
+ const redoOp = this._refineSelectionSet.redoStack.pop();
1318
+ void this._updateIds(redoOp.ids, redoOp.mode === interfaces.ESelectionMode.ADD ? interfaces.ESelectionMode.REMOVE : interfaces.ESelectionMode.ADD, this._refineSelectionSet.undoStack, redoOp.layerView);
1319
+ }
1320
+ /**
1321
+ * Create a list to show the number added/removed/total unique selected
1322
+ *
1323
+ * @returns the list node
1324
+ * @protected
1325
+ */
1326
+ _getRefineSelectionSetList() {
1327
+ const total = this._getTotal(this.selectionSets);
1328
+ let refineSet;
1329
+ this.selectionSets.some(ss => {
1330
+ if (ss.workflowType === interfaces.EWorkflowType.REFINE) {
1331
+ refineSet = ss;
1332
+ return true;
1333
+ }
1334
+ });
1335
+ let numAdded = 0;
1336
+ let numRemoved = 0;
1337
+ Object.keys(refineSet.refineInfos).forEach(k => {
1338
+ numAdded += refineSet.refineInfos[k].addIds.length;
1339
+ numRemoved += refineSet.refineInfos[k].removeIds.length;
1340
+ });
1341
+ return [(index.h("calcite-list-item", { label: this._translations.featuresAdded.replace("{{n}}", numAdded.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.featuresRemoved.replace("{{n}}", numRemoved.toString()), "non-interactive": true })), (index.h("calcite-list-item", { label: this._translations.totalSelected.replace("{{n}}", total.toString()), "non-interactive": true }))];
1342
+ }
1343
+ /**
1344
+ * Get the total number od ids across all selection sets
1345
+ *
1346
+ * @returns the total number of ids
1347
+ * @protected
1348
+ */
1349
+ _getTotal(selectionSets) {
1350
+ const idSets = mapViewUtils.getIdSets(selectionSets);
1351
+ return Object.keys(idSets).reduce((prev, cur) => {
1352
+ const idSet = idSets[cur];
1353
+ prev += idSet.ids.length;
1354
+ return prev;
1355
+ }, 0);
1356
+ }
1357
+ /**
1358
+ * Fetches the component's translations
1359
+ *
1360
+ * @protected
1361
+ */
1362
+ async _getTranslations() {
1363
+ const translations = await locale.getLocaleComponentStrings(this.el);
1364
+ this._translations = translations[0];
1365
+ }
1366
+ /**
1367
+ * Select features based on the input geometry
1368
+ *
1369
+ * @param geom the geometry used for selection
1370
+ *
1371
+ * @returns Promise resolving when function is done
1372
+ *
1373
+ * @protected
1374
+ */
1375
+ async _selectFeatures(geom) {
1376
+ var _a, _b;
1377
+ this.selectionLoadingChange.emit(true);
1378
+ this._featuresCollection[(_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id] = [];
1379
+ const response = await mapViewUtils.queryFeaturesByGeometry(0, (_b = this._refineLayer) === null || _b === void 0 ? void 0 : _b.layer, geom, this._featuresCollection);
1380
+ this.selectionLoadingChange.emit(false);
1381
+ let graphics = [];
1382
+ Object.keys(response).forEach(k => {
1383
+ var _a;
1384
+ if (k === ((_a = this._refineLayer) === null || _a === void 0 ? void 0 : _a.layer.id)) {
1385
+ graphics = graphics.concat(response[k]);
1386
+ }
1387
+ });
1388
+ const oids = Array.isArray(graphics) ? graphics.map(g => { var _a; return g.attributes[(_a = g === null || g === void 0 ? void 0 : g.layer) === null || _a === void 0 ? void 0 : _a.objectIdField]; }) : [];
1389
+ await this._updateIds(oids, this._selectionMode, this._refineSelectionSet.undoStack, this._refineLayer);
1390
+ this._drawTools.clear();
1391
+ }
1392
+ /**
1393
+ * Highlight any selected features in the map
1394
+ *
1395
+ * @returns Promise resolving when function is done
1396
+ * @protected
1397
+ */
1398
+ async _highlightFeatures() {
1399
+ this._clearHighlight();
1400
+ publicNotificationStore.state.highlightHandles = await mapViewUtils.highlightAllFeatures(this.selectionSets);
1401
+ }
1402
+ /**
1403
+ * Clear any highlighted features in the map
1404
+ *
1405
+ * @protected
1406
+ */
1407
+ _clearHighlight() {
1408
+ publicNotificationStore.state.removeHandles();
1409
+ }
1410
+ /**
1411
+ * Update the ids for any ADD or REMOVE operation and highlight the features.
1412
+ *
1413
+ * @param oids the ids to add or remove
1414
+ * @param mode ADD or REMOVE this will control if the ids are added or removed
1415
+ * @param operationStack the undo or redo stack to push the operation to
1416
+ * @param operationMode ADD or REMOVE the mode of the individual refine operation
1417
+ *
1418
+ * @returns Promise resolving when function is done
1419
+ *
1420
+ * @protected
1421
+ */
1422
+ async _updateIds(ids, mode, operationStack, layerView) {
1423
+ let selectionSetsChanged = false;
1424
+ const refineInfos = this._refineSelectionSet.refineInfos;
1425
+ const layerId = layerView.layer.id;
1426
+ const newRefineInfo = {};
1427
+ newRefineInfo[layerId] = {
1428
+ addIds: [],
1429
+ removeIds: [],
1430
+ layerView
1431
+ };
1432
+ const idUpdates = Object.keys(refineInfos).indexOf(layerId) > -1 ?
1433
+ refineInfos[layerId] : newRefineInfo[layerId];
1434
+ if (mode === interfaces.ESelectionMode.ADD) {
1435
+ idUpdates.addIds = [...new Set([...ids, ...idUpdates.addIds])];
1436
+ if (idUpdates.addIds.length > 0) {
1437
+ operationStack.push({
1438
+ ids,
1439
+ mode,
1440
+ layerView
1441
+ });
1442
+ }
1443
+ if (idUpdates.removeIds.length > 0) {
1444
+ idUpdates.removeIds = idUpdates.removeIds.filter(id => ids.indexOf(id) < 0);
1445
+ }
1446
+ }
1447
+ else {
1448
+ // ids are a result of the drawn geom...so it's possible they could contain ids that do
1449
+ // not exist in other selection sets
1450
+ const validIds = this.selectionSets.reduce((prev, cur) => {
1451
+ ids.forEach(id => {
1452
+ if (cur.workflowType !== interfaces.EWorkflowType.REFINE) {
1453
+ if (cur.selectedIds.indexOf(id) > -1) {
1454
+ prev.push(id);
1455
+ }
1456
+ }
1457
+ else {
1458
+ Object.keys(cur.refineInfos).some(k => {
1459
+ const refineInfo = cur.refineInfos[k];
1460
+ if (refineInfo.layerView.layer.id === layerView.layer.id && refineInfo.addIds.indexOf(id) > -1) {
1461
+ prev.push(id);
1462
+ return true;
1463
+ }
1464
+ });
1465
+ }
1466
+ });
1467
+ return prev;
1468
+ }, []);
1469
+ idUpdates.removeIds = [...new Set([...validIds, ...idUpdates.removeIds])];
1470
+ idUpdates.addIds = idUpdates.addIds.filter(id => validIds.indexOf(id) < 0);
1471
+ if (idUpdates.removeIds.length > 0) {
1472
+ operationStack.push({
1473
+ ids: validIds,
1474
+ mode,
1475
+ layerView
1476
+ });
1477
+ }
1478
+ this.selectionSets = this.selectionSets.reduce((prev, cur) => {
1479
+ if (cur.workflowType !== interfaces.EWorkflowType.REFINE &&
1480
+ cur.layerView.layer.id === layerView.layer.id) {
1481
+ cur.selectedIds = cur.selectedIds.filter(id => idUpdates.removeIds.indexOf(id) < 0);
1482
+ if (cur.selectedIds.length > 0) {
1483
+ prev.push(cur);
1484
+ }
1485
+ else {
1486
+ selectionSetsChanged = true;
1487
+ }
1488
+ }
1489
+ else {
1490
+ prev.push(cur);
1491
+ }
1492
+ return prev;
1493
+ }, []);
1494
+ }
1495
+ this._refineSelectionSet.refineInfos[layerId] = idUpdates;
1496
+ this.selectionSets = [...this.selectionSets];
1497
+ if (selectionSetsChanged) {
1498
+ this.selectionSetsChanged.emit(this.selectionSets);
1499
+ }
1500
+ await this._highlightFeatures();
1501
+ }
1502
+ get el() { return index.getElement(this); }
1503
+ };
1504
1504
  RefineSelection.style = refineSelectionCss;
1505
1505
 
1506
1506
  exports.map_select_tools = MapSelectTools;