@esri/solutions-components 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (943) hide show
  1. package/dist/cjs/{ExpandToggle-e6a0d66e.js → ExpandToggle-70890ae0.js} +4 -4
  2. package/dist/cjs/{FloatingArrow-0119ec6e.js → FloatingArrow-4ca06439.js} +1 -1
  3. package/dist/cjs/{Heading-521f39ac.js → Heading-c5c71fc5.js} +1 -1
  4. package/dist/cjs/{app-globals-72576a1c.js → app-globals-a34c0991.js} +20 -25
  5. package/dist/cjs/{ar-1718ae57.js → ar-fa16156d.js} +15 -15
  6. package/dist/cjs/{bg-190a176c.js → bg-b39e773e.js} +15 -15
  7. package/dist/cjs/{bs-919e0de8.js → bs-4579ea2a.js} +15 -15
  8. package/dist/cjs/buffer-tools_4.cjs.entry.js +1437 -1437
  9. package/dist/cjs/{ca-94918e06.js → ca-f3f64686.js} +15 -15
  10. package/dist/cjs/calcite-accordion-item.cjs.entry.js +140 -140
  11. package/dist/cjs/calcite-accordion.cjs.entry.js +75 -75
  12. package/dist/cjs/calcite-action-bar.cjs.entry.js +216 -216
  13. package/dist/cjs/calcite-action-group_2.cjs.entry.js +365 -365
  14. package/dist/cjs/calcite-action-pad.cjs.entry.js +135 -135
  15. package/dist/cjs/calcite-action_2.cjs.entry.js +445 -445
  16. package/dist/cjs/calcite-alert.cjs.entry.js +247 -247
  17. package/dist/cjs/calcite-avatar.cjs.entry.js +73 -73
  18. package/dist/cjs/calcite-block-section.cjs.entry.js +122 -122
  19. package/dist/cjs/calcite-block.cjs.entry.js +131 -131
  20. package/dist/cjs/calcite-button.cjs.entry.js +182 -182
  21. package/dist/cjs/calcite-card.cjs.entry.js +99 -99
  22. package/dist/cjs/calcite-checkbox.cjs.entry.js +125 -125
  23. package/dist/cjs/calcite-chip-group.cjs.entry.js +164 -164
  24. package/dist/cjs/calcite-chip.cjs.entry.js +213 -213
  25. package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +303 -303
  26. package/dist/cjs/calcite-color-picker.cjs.entry.js +886 -886
  27. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +35 -35
  28. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1786 -1786
  29. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +589 -589
  30. package/dist/cjs/calcite-date-picker.cjs.entry.js +434 -434
  31. package/dist/cjs/calcite-fab.cjs.entry.js +66 -66
  32. package/dist/cjs/calcite-filter_5.cjs.entry.js +1131 -1131
  33. package/dist/cjs/calcite-flow-item.cjs.entry.js +146 -146
  34. package/dist/cjs/calcite-flow.cjs.entry.js +117 -117
  35. package/dist/cjs/calcite-graph.cjs.entry.js +66 -66
  36. package/dist/cjs/calcite-icon.cjs.entry.js +80 -80
  37. package/dist/cjs/calcite-inline-editable.cjs.entry.js +225 -225
  38. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +632 -632
  39. package/dist/cjs/calcite-input-number_2.cjs.entry.js +846 -846
  40. package/dist/cjs/{calcite-input-time-picker-b99baf7b.js → calcite-input-time-picker-6f38ef8c.js} +534 -534
  41. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +15 -15
  42. package/dist/cjs/calcite-input-time-zone.cjs.entry.js +150 -150
  43. package/dist/cjs/calcite-input_2.cjs.entry.js +645 -645
  44. package/dist/cjs/calcite-label.cjs.entry.js +40 -40
  45. package/dist/cjs/calcite-link.cjs.entry.js +96 -96
  46. package/dist/cjs/calcite-list-item-group.cjs.entry.js +46 -46
  47. package/dist/cjs/calcite-loader.cjs.entry.js +65 -65
  48. package/dist/cjs/calcite-menu-item.cjs.entry.js +246 -246
  49. package/dist/cjs/calcite-menu.cjs.entry.js +161 -161
  50. package/dist/cjs/calcite-modal.cjs.entry.js +282 -282
  51. package/dist/cjs/calcite-navigation-logo.cjs.entry.js +52 -52
  52. package/dist/cjs/calcite-navigation-user.cjs.entry.js +45 -45
  53. package/dist/cjs/calcite-navigation.cjs.entry.js +126 -126
  54. package/dist/cjs/calcite-notice.cjs.entry.js +105 -105
  55. package/dist/cjs/calcite-option-group.cjs.entry.js +24 -24
  56. package/dist/cjs/calcite-option_2.cjs.entry.js +271 -271
  57. package/dist/cjs/calcite-pagination.cjs.entry.js +191 -191
  58. package/dist/cjs/calcite-panel_2.cjs.entry.js +346 -346
  59. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +46 -46
  60. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +181 -181
  61. package/dist/cjs/calcite-pick-list.cjs.entry.js +130 -130
  62. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +118 -118
  63. package/dist/cjs/calcite-radio-button.cjs.entry.js +292 -292
  64. package/dist/cjs/calcite-rating.cjs.entry.js +245 -245
  65. package/dist/cjs/calcite-scrim.cjs.entry.js +93 -93
  66. package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +225 -225
  67. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +42 -42
  68. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2604 -2604
  69. package/dist/cjs/calcite-sortable-list.cjs.entry.js +134 -134
  70. package/dist/cjs/calcite-split-button.cjs.entry.js +92 -92
  71. package/dist/cjs/calcite-stepper-item.cjs.entry.js +197 -197
  72. package/dist/cjs/calcite-stepper.cjs.entry.js +187 -187
  73. package/dist/cjs/calcite-switch.cjs.entry.js +100 -100
  74. package/dist/cjs/calcite-text-area.cjs.entry.js +235 -235
  75. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +27 -27
  76. package/dist/cjs/calcite-tile-select.cjs.entry.js +180 -180
  77. package/dist/cjs/calcite-tile.cjs.entry.js +58 -58
  78. package/dist/cjs/calcite-time-picker.cjs.entry.js +619 -619
  79. package/dist/cjs/calcite-tip-group.cjs.entry.js +10 -10
  80. package/dist/cjs/calcite-tip-manager.cjs.entry.js +185 -185
  81. package/dist/cjs/calcite-tip.cjs.entry.js +94 -94
  82. package/dist/cjs/calcite-tooltip.cjs.entry.js +185 -185
  83. package/dist/cjs/calcite-tree_3.cjs.entry.js +821 -821
  84. package/dist/cjs/card-manager_4.cjs.entry.js +652 -652
  85. package/dist/cjs/{conditionalSlot-85b3a6b3.js → conditionalSlot-a51326e7.js} +2 -2
  86. package/dist/cjs/crowdsource-manager.cjs.entry.js +256 -256
  87. package/dist/cjs/crowdsource-reporter.cjs.entry.js +60 -60
  88. package/dist/cjs/{cs-fe27e732.js → cs-1bcd5b46.js} +15 -15
  89. package/dist/cjs/{da-1b7f3440.js → da-30ee21db.js} +15 -15
  90. package/dist/cjs/{date-cec32b0e.js → date-f6611a19.js} +1 -1
  91. package/dist/cjs/{de-0dc1effa.js → de-42aae5ad.js} +15 -15
  92. package/dist/cjs/{de-at-acdc4d01.js → de-at-a3a6f020.js} +15 -15
  93. package/dist/cjs/{de-ch-778a0d99.js → de-ch-36c13310.js} +15 -15
  94. package/dist/cjs/deduct-calculator.cjs.entry.js +90 -90
  95. package/dist/cjs/{dom-c1807fc1.js → dom-d529bae8.js} +2 -2
  96. package/dist/cjs/{downloadUtils-a8c530f7.js → downloadUtils-6eb59363.js} +660 -660
  97. package/dist/cjs/edit-card_2.cjs.entry.js +345 -345
  98. package/dist/cjs/{el-fdbc9bc1.js → el-90d066ae.js} +15 -15
  99. package/dist/cjs/{en-au-0ff50cdf.js → en-au-685b882b.js} +15 -15
  100. package/dist/cjs/{en-ca-284e9368.js → en-ca-ff4bc403.js} +15 -15
  101. package/dist/cjs/{en-gb-0fcae8ae.js → en-gb-2f5587ad.js} +15 -15
  102. package/dist/cjs/{es-cd54acba.js → es-e9183ca0.js} +15 -15
  103. package/dist/cjs/{es-mx-2078d50f.js → es-mx-dcc9afb2.js} +15 -15
  104. package/dist/cjs/{et-17f323f6.js → et-a18949ea.js} +15 -15
  105. package/dist/cjs/{fi-82f27397.js → fi-1ce00d38.js} +15 -15
  106. package/dist/cjs/{filter-bda212b4.js → filter-494bf35e.js} +1 -1
  107. package/dist/cjs/{floating-ui-8d10af88.js → floating-ui-7d6e57d3.js} +2 -2
  108. package/dist/cjs/{focusTrapComponent-a22fc6a8.js → focusTrapComponent-0c4d7671.js} +1 -1
  109. package/dist/cjs/{form-9d8ebf06.js → form-bcf49eae.js} +2 -2
  110. package/dist/cjs/{fr-af7e1192.js → fr-a9435a19.js} +15 -15
  111. package/dist/cjs/{fr-ch-5e1f2c28.js → fr-ch-51efa9bf.js} +15 -15
  112. package/dist/cjs/{he-ea851800.js → he-c5dccfa2.js} +15 -15
  113. package/dist/cjs/{hi-5212a21d.js → hi-0898e7f2.js} +15 -15
  114. package/dist/cjs/{hr-4eecb2ed.js → hr-68f7d8da.js} +15 -15
  115. package/dist/cjs/{hu-6b527d8e.js → hu-e494037d.js} +15 -15
  116. package/dist/cjs/{id-d78f12ec.js → id-bef40c1c.js} +15 -15
  117. package/dist/cjs/{index-0e50040c.js → index-6654298b.js} +38 -180
  118. package/dist/cjs/{index-2b60e135.js → index-e1b1954f.js} +1 -1
  119. package/dist/cjs/{index.es-4542630e.js → index.es-d9b5d3a5.js} +6 -6
  120. package/dist/cjs/{interfaces-d539e30c.js → interfaces-ad03ec39.js} +77 -77
  121. package/dist/cjs/{it-15242935.js → it-1144ca67.js} +15 -15
  122. package/dist/cjs/{it-ch-9dc21944.js → it-ch-2c14dca7.js} +15 -15
  123. package/dist/cjs/{ja-f702cfc2.js → ja-caad9809.js} +15 -15
  124. package/dist/cjs/{ko-aa9bde2c.js → ko-ddec9054.js} +15 -15
  125. package/dist/cjs/{label-6e33e971.js → label-215c4af3.js} +1 -1
  126. package/dist/cjs/list-item.cjs.entry.js +60 -60
  127. package/dist/cjs/{loadModules-31cab7ac.js → loadModules-ae7715f2.js} +19 -19
  128. package/dist/cjs/{loadable-bac9cdd6.js → loadable-6da743c6.js} +1 -1
  129. package/dist/cjs/loader.cjs.js +13 -4
  130. package/dist/cjs/{locale-c63a1b57.js → locale-477d8d51.js} +3 -3
  131. package/dist/cjs/{locale-d15cd743.js → locale-b113c6b2.js} +107 -107
  132. package/dist/cjs/{lt-e741ff2f.js → lt-205a1aa6.js} +15 -15
  133. package/dist/cjs/{lv-92d6768e.js → lv-3ba82f9b.js} +15 -15
  134. package/dist/cjs/map-picker_2.cjs.entry.js +243 -243
  135. package/dist/cjs/map-select-tools_3.cjs.entry.js +1285 -1285
  136. package/dist/cjs/{mapViewUtils-9da2dddd.js → mapViewUtils-77a1ff88.js} +384 -384
  137. package/dist/cjs/{mk-b209ac0d.js → mk-069ea86a.js} +15 -15
  138. package/dist/cjs/{nb-db13e666.js → nb-9e9c934f.js} +15 -15
  139. package/dist/cjs/{nl-fcd9e0c5.js → nl-5dd0116f.js} +15 -15
  140. package/dist/cjs/{openCloseComponent-5d70fcd8.js → openCloseComponent-3fa18210.js} +1 -1
  141. package/dist/cjs/pci-calculator.cjs.entry.js +102 -102
  142. package/dist/cjs/{pciUtils-e0ddeb7c.js → pciUtils-423cfc68.js} +836 -836
  143. package/dist/cjs/{pl-87c83322.js → pl-74e70b37.js} +15 -15
  144. package/dist/cjs/{pt-br-03333e90.js → pt-br-0f76e430.js} +15 -15
  145. package/dist/cjs/{pt-b0b5f472.js → pt-cc737fcc.js} +15 -15
  146. package/dist/cjs/public-notification.cjs.entry.js +844 -844
  147. package/dist/cjs/{publicNotificationStore-55edd658.js → publicNotificationStore-ec1bdd2d.js} +40 -40
  148. package/dist/cjs/{ro-c3661b73.js → ro-5e396753.js} +15 -15
  149. package/dist/cjs/{ru-8dd3fd58.js → ru-f7371aca.js} +15 -15
  150. package/dist/cjs/{shared-list-render-c0adb192.js → shared-list-render-76c5dc25.js} +6 -6
  151. package/dist/cjs/{sk-151d9acf.js → sk-ec02498f.js} +15 -15
  152. package/dist/cjs/{sl-9b45a152.js → sl-8363f4d7.js} +15 -15
  153. package/dist/cjs/solution-configuration.cjs.entry.js +888 -888
  154. package/dist/cjs/solution-contents_3.cjs.entry.js +21506 -21506
  155. package/dist/cjs/{solution-store-0004e4e6.js → solution-store-bd956f06.js} +577 -577
  156. package/dist/cjs/solutions-components.cjs.js +4 -4
  157. package/dist/cjs/{sortableComponent-58679f07.js → sortableComponent-8135ea87.js} +1 -1
  158. package/dist/cjs/{sr-186bf15c.js → sr-b0f92cb1.js} +15 -15
  159. package/dist/cjs/store-manager.cjs.entry.js +52 -52
  160. package/dist/cjs/{sv-a93fee0c.js → sv-e2c27fff.js} +15 -15
  161. package/dist/cjs/{t9n-1d032c30.js → t9n-8be30efb.js} +2 -2
  162. package/dist/cjs/{th-41680352.js → th-8a6dc2cc.js} +15 -15
  163. package/dist/cjs/{throttle-aeeb1b4d.js → throttle-8ee74c77.js} +1 -1
  164. package/dist/cjs/{time-5e450ec8.js → time-9004df7e.js} +1 -1
  165. package/dist/cjs/{tr-0bd886d6.js → tr-09137435.js} +15 -15
  166. package/dist/cjs/{uk-4fade133.js → uk-c30401f4.js} +15 -15
  167. package/dist/cjs/{utils-ae9bdd59.js → utils-ed4e5028.js} +1 -1
  168. package/dist/cjs/{utils-acfeed9d.js → utils-fb81c6b3.js} +3 -3
  169. package/dist/cjs/{vi-1c9fe343.js → vi-e069c9e4.js} +15 -15
  170. package/dist/cjs/{zh-cn-28fa1fe1.js → zh-cn-50f223a8.js} +15 -15
  171. package/dist/cjs/{zh-hk-5abf8eb5.js → zh-hk-5498073d.js} +15 -15
  172. package/dist/cjs/{zh-tw-07500357.js → zh-tw-dfdb0ae8.js} +15 -15
  173. package/dist/collection/collection-manifest.json +35 -35
  174. package/dist/collection/components/buffer-tools/buffer-tools.js +476 -481
  175. package/dist/collection/components/card-manager/card-manager.js +197 -199
  176. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +406 -407
  177. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +89 -89
  178. package/dist/collection/components/deduct-calculator/deduct-calculator.js +143 -143
  179. package/dist/collection/components/edit-card/edit-card.js +300 -302
  180. package/dist/collection/components/info-card/info-card.js +357 -361
  181. package/dist/collection/components/json-editor/json-editor.js +614 -618
  182. package/dist/collection/components/layer-table/layer-table.js +548 -551
  183. package/dist/collection/components/layout-manager/layout-manager.js +135 -136
  184. package/dist/collection/components/list-item/list-item.js +89 -89
  185. package/dist/collection/components/map-card/map-card.js +203 -206
  186. package/dist/collection/components/map-draw-tools/map-draw-tools.js +683 -692
  187. package/dist/collection/components/map-layer-picker/map-layer-picker.js +423 -424
  188. package/dist/collection/components/map-picker/map-picker.js +224 -226
  189. package/dist/collection/components/map-select-tools/map-select-tools.js +1229 -1242
  190. package/dist/collection/components/map-tools/map-tools.js +210 -212
  191. package/dist/collection/components/pci-calculator/pci-calculator.js +143 -143
  192. package/dist/collection/components/pdf-download/pdf-download.js +333 -338
  193. package/dist/collection/components/public-notification/public-notification.js +1287 -1295
  194. package/dist/collection/components/refine-selection/refine-selection.js +601 -608
  195. package/dist/collection/components/solution-configuration/solution-configuration.js +735 -739
  196. package/dist/collection/components/solution-contents/solution-contents.js +162 -163
  197. package/dist/collection/components/solution-item/solution-item.js +202 -203
  198. package/dist/collection/components/solution-item-details/solution-item-details.js +248 -248
  199. package/dist/collection/components/solution-item-icon/solution-item-icon.js +398 -398
  200. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +199 -200
  201. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +156 -156
  202. package/dist/collection/components/solution-resource-item/solution-resource-item.js +347 -348
  203. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +510 -515
  204. package/dist/collection/components/solution-spatial-ref/spatialreferences.js +21046 -21046
  205. package/dist/collection/components/solution-template-data/solution-template-data.js +230 -230
  206. package/dist/collection/components/solution-variables/solution-variables.js +168 -168
  207. package/dist/collection/components/store-manager/store-manager.js +127 -128
  208. package/dist/collection/index.js +1 -1
  209. package/dist/collection/utils/common.js +296 -296
  210. package/dist/collection/utils/csvDownload.js +41 -41
  211. package/dist/collection/utils/csvUtils.js +37 -37
  212. package/dist/collection/utils/downloadUtils.js +530 -530
  213. package/dist/collection/utils/interfaces.js +83 -83
  214. package/dist/collection/utils/languageUtil.js +90 -90
  215. package/dist/collection/utils/loadModules.js +25 -25
  216. package/dist/collection/utils/locale.js +61 -61
  217. package/dist/collection/utils/mapViewUtils.js +240 -240
  218. package/dist/collection/utils/pciUtils.js +842 -842
  219. package/dist/collection/utils/pdfUtils.js +87 -87
  220. package/dist/collection/utils/publicNotificationStore.js +47 -47
  221. package/dist/collection/utils/queryUtils.js +200 -200
  222. package/dist/collection/utils/solution-store.js +584 -584
  223. package/dist/collection/utils/templates.js +346 -346
  224. package/dist/collection/utils/test/mocks/jsApi.js +79 -79
  225. package/dist/collection/utils/test/testUtils.js +123 -123
  226. package/dist/collection/utils/types.js +1 -1
  227. package/dist/components/ExpandToggle.js +1 -1
  228. package/dist/components/action-bar.js +263 -262
  229. package/dist/components/action-group.js +145 -144
  230. package/dist/components/action-menu.js +311 -310
  231. package/dist/components/action.js +186 -185
  232. package/dist/components/alert.js +287 -286
  233. package/dist/components/avatar.js +100 -99
  234. package/dist/components/buffer-tools2.js +264 -263
  235. package/dist/components/button.js +226 -225
  236. package/dist/components/calcite-accordion-item.js +168 -168
  237. package/dist/components/calcite-accordion.js +96 -95
  238. package/dist/components/calcite-action-pad.js +181 -180
  239. package/dist/components/calcite-block-section.js +151 -150
  240. package/dist/components/calcite-block.js +187 -186
  241. package/dist/components/calcite-card.js +133 -132
  242. package/dist/components/calcite-chip-group.js +182 -181
  243. package/dist/components/calcite-color-picker.js +980 -979
  244. package/dist/components/calcite-combobox-item-group.js +53 -52
  245. package/dist/components/calcite-fab.js +105 -104
  246. package/dist/components/calcite-filter.js +1 -1
  247. package/dist/components/calcite-flow-item.js +205 -204
  248. package/dist/components/calcite-flow.js +137 -136
  249. package/dist/components/calcite-inline-editable.js +260 -259
  250. package/dist/components/calcite-input-date-picker.js +704 -703
  251. package/dist/components/calcite-input-time-picker.js +596 -595
  252. package/dist/components/calcite-input-time-zone.js +190 -189
  253. package/dist/components/calcite-label.js +1 -1
  254. package/dist/components/calcite-list-item-group.js +65 -64
  255. package/dist/components/calcite-menu-item.js +297 -297
  256. package/dist/components/calcite-modal.js +329 -328
  257. package/dist/components/calcite-navigation-logo.js +77 -76
  258. package/dist/components/calcite-navigation-user.js +79 -78
  259. package/dist/components/calcite-navigation.js +167 -166
  260. package/dist/components/calcite-option-group.js +43 -42
  261. package/dist/components/calcite-pagination.js +218 -217
  262. package/dist/components/calcite-pick-list-group.js +60 -59
  263. package/dist/components/calcite-pick-list.js +151 -150
  264. package/dist/components/calcite-radio-button-group.js +142 -141
  265. package/dist/components/calcite-radio-button.js +317 -316
  266. package/dist/components/calcite-rating.js +280 -279
  267. package/dist/components/calcite-shell-center-row.js +58 -57
  268. package/dist/components/calcite-sortable-list.js +154 -153
  269. package/dist/components/calcite-split-button.js +143 -142
  270. package/dist/components/calcite-stack.js +1 -1
  271. package/dist/components/calcite-stepper-item.js +226 -225
  272. package/dist/components/calcite-stepper.js +213 -212
  273. package/dist/components/calcite-text-area.js +267 -266
  274. package/dist/components/calcite-tile-select-group.js +45 -44
  275. package/dist/components/calcite-tile-select.js +224 -223
  276. package/dist/components/calcite-tip-group.js +28 -27
  277. package/dist/components/calcite-tip-manager.js +223 -222
  278. package/dist/components/calcite-tip.js +127 -126
  279. package/dist/components/card-manager2.js +156 -155
  280. package/dist/components/checkbox.js +147 -146
  281. package/dist/components/chip.js +246 -245
  282. package/dist/components/color-picker-hex-input.js +288 -287
  283. package/dist/components/color-picker-swatch.js +80 -79
  284. package/dist/components/combobox-item.js +136 -135
  285. package/dist/components/combobox.js +922 -921
  286. package/dist/components/crowdsource-manager.js +476 -475
  287. package/dist/components/crowdsource-reporter.js +76 -75
  288. package/dist/components/date-picker-day.js +110 -110
  289. package/dist/components/date-picker-month-header.js +198 -197
  290. package/dist/components/date-picker-month.js +373 -372
  291. package/dist/components/date-picker.js +493 -492
  292. package/dist/components/date.js +1 -1
  293. package/dist/components/deduct-calculator2.js +982 -981
  294. package/dist/components/dom.js +23 -2
  295. package/dist/components/downloadUtils.js +655 -655
  296. package/dist/components/dropdown-group.js +73 -72
  297. package/dist/components/dropdown-item.js +196 -195
  298. package/dist/components/dropdown.js +421 -420
  299. package/dist/components/edit-card2.js +192 -191
  300. package/dist/components/filter.js +202 -751
  301. package/dist/components/filter2.js +740 -190
  302. package/dist/components/floating-ui.js +2 -2
  303. package/dist/components/focusTrapComponent.js +1 -1
  304. package/dist/components/graph.js +87 -86
  305. package/dist/components/handle.js +166 -165
  306. package/dist/components/icon.js +100 -99
  307. package/dist/components/index.d.ts +36 -0
  308. package/dist/components/index.js +153 -25
  309. package/dist/components/info-card2.js +252 -251
  310. package/dist/components/input-message.js +67 -66
  311. package/dist/components/input-number.js +600 -600
  312. package/dist/components/input-text.js +368 -368
  313. package/dist/components/input.js +687 -687
  314. package/dist/components/interfaces.js +78 -78
  315. package/dist/components/json-editor2.js +426 -425
  316. package/dist/components/label.js +65 -117
  317. package/dist/components/label2.js +110 -57
  318. package/dist/components/layer-table2.js +548 -547
  319. package/dist/components/layout-manager2.js +119 -118
  320. package/dist/components/link.js +123 -123
  321. package/dist/components/list-item.js +76 -75
  322. package/dist/components/list-item2.js +432 -431
  323. package/dist/components/list.js +511 -510
  324. package/dist/components/loadModules.js +18 -18
  325. package/dist/components/loader.js +87 -86
  326. package/dist/components/locale.js +106 -106
  327. package/dist/components/locale2.js +2 -2
  328. package/dist/components/map-card2.js +201 -200
  329. package/dist/components/map-draw-tools2.js +384 -383
  330. package/dist/components/map-layer-picker2.js +292 -291
  331. package/dist/components/map-picker2.js +236 -235
  332. package/dist/components/map-select-tools2.js +917 -916
  333. package/dist/components/map-tools2.js +170 -169
  334. package/dist/components/mapViewUtils.js +235 -235
  335. package/dist/components/menu.js +179 -178
  336. package/dist/components/notice.js +131 -130
  337. package/dist/components/option.js +92 -91
  338. package/dist/components/panel.js +308 -307
  339. package/dist/components/pci-calculator.js +170 -169
  340. package/dist/components/pdf-download2.js +174 -173
  341. package/dist/components/pick-list-item.js +220 -219
  342. package/dist/components/popover.js +350 -349
  343. package/dist/components/progress.js +46 -46
  344. package/dist/components/public-notification.js +1102 -1101
  345. package/dist/components/publicNotificationStore.js +39 -39
  346. package/dist/components/queryUtils.js +152 -152
  347. package/dist/components/refine-selection2.js +547 -546
  348. package/dist/components/resources.js +9 -17
  349. package/dist/components/resources2.js +13 -9
  350. package/dist/components/resources3.js +5 -9
  351. package/dist/components/scrim.js +116 -115
  352. package/dist/components/segmented-control-item.js +63 -62
  353. package/dist/components/segmented-control.js +214 -213
  354. package/dist/components/select.js +227 -226
  355. package/dist/components/shared-list-render.js +3 -3
  356. package/dist/components/shell-panel.js +398 -398
  357. package/dist/components/shell.js +120 -119
  358. package/dist/components/slider.js +899 -898
  359. package/dist/components/solution-configuration.js +1096 -1095
  360. package/dist/components/solution-contents2.js +112 -111
  361. package/dist/components/solution-item-details2.js +218 -217
  362. package/dist/components/solution-item-icon2.js +331 -330
  363. package/dist/components/solution-item-sharing2.js +152 -151
  364. package/dist/components/solution-item2.js +270 -269
  365. package/dist/components/solution-organization-variables2.js +116 -115
  366. package/dist/components/solution-resource-item2.js +332 -331
  367. package/dist/components/solution-spatial-ref2.js +21421 -21420
  368. package/dist/components/solution-store.js +575 -575
  369. package/dist/components/solution-template-data2.js +203 -202
  370. package/dist/components/solution-variables2.js +133 -132
  371. package/dist/components/sortableComponent.js +1 -1
  372. package/dist/components/stack.js +79 -78
  373. package/dist/components/store-manager.js +71 -70
  374. package/dist/components/switch.js +119 -118
  375. package/dist/components/tab-nav.js +255 -254
  376. package/dist/components/tab-title.js +301 -300
  377. package/dist/components/tab.js +112 -111
  378. package/dist/components/tabs.js +131 -130
  379. package/dist/components/tile.js +90 -89
  380. package/dist/components/time-picker.js +655 -654
  381. package/dist/components/tooltip.js +208 -207
  382. package/dist/components/tree-item.js +288 -288
  383. package/dist/components/tree.js +282 -281
  384. package/dist/components/utils.js +1 -1
  385. package/dist/components/utils2.js +2 -2
  386. package/dist/components/utils3.js +1 -1
  387. package/dist/components/value-list-item.js +170 -169
  388. package/dist/components/value-list.js +276 -275
  389. package/dist/esm/{ExpandToggle-3d10bd1e.js → ExpandToggle-3420fa39.js} +4 -4
  390. package/dist/esm/{FloatingArrow-29db6da6.js → FloatingArrow-cd8eafa4.js} +1 -1
  391. package/dist/esm/{Heading-cb79e5b2.js → Heading-1763134e.js} +1 -1
  392. package/dist/esm/{app-globals-5cbac6b0.js → app-globals-580889bd.js} +20 -25
  393. package/dist/esm/{ar-4b751ba8.js → ar-ceb1b389.js} +15 -15
  394. package/dist/esm/{bg-5d8bf5ea.js → bg-a8824832.js} +15 -15
  395. package/dist/esm/{bs-ff510e71.js → bs-5c2ca44f.js} +15 -15
  396. package/dist/esm/buffer-tools_4.entry.js +1437 -1437
  397. package/dist/esm/{ca-b9a5e51a.js → ca-47f86073.js} +15 -15
  398. package/dist/esm/calcite-accordion-item.entry.js +140 -140
  399. package/dist/esm/calcite-accordion.entry.js +75 -75
  400. package/dist/esm/calcite-action-bar.entry.js +216 -216
  401. package/dist/esm/calcite-action-group_2.entry.js +365 -365
  402. package/dist/esm/calcite-action-pad.entry.js +135 -135
  403. package/dist/esm/calcite-action_2.entry.js +445 -445
  404. package/dist/esm/calcite-alert.entry.js +247 -247
  405. package/dist/esm/calcite-avatar.entry.js +73 -73
  406. package/dist/esm/calcite-block-section.entry.js +122 -122
  407. package/dist/esm/calcite-block.entry.js +131 -131
  408. package/dist/esm/calcite-button.entry.js +182 -182
  409. package/dist/esm/calcite-card.entry.js +99 -99
  410. package/dist/esm/calcite-checkbox.entry.js +125 -125
  411. package/dist/esm/calcite-chip-group.entry.js +164 -164
  412. package/dist/esm/calcite-chip.entry.js +213 -213
  413. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +303 -303
  414. package/dist/esm/calcite-color-picker.entry.js +886 -886
  415. package/dist/esm/calcite-combobox-item-group.entry.js +35 -35
  416. package/dist/esm/calcite-combobox_6.entry.js +1786 -1786
  417. package/dist/esm/calcite-date-picker-day_3.entry.js +589 -589
  418. package/dist/esm/calcite-date-picker.entry.js +434 -434
  419. package/dist/esm/calcite-fab.entry.js +66 -66
  420. package/dist/esm/calcite-filter_5.entry.js +1131 -1131
  421. package/dist/esm/calcite-flow-item.entry.js +146 -146
  422. package/dist/esm/calcite-flow.entry.js +117 -117
  423. package/dist/esm/calcite-graph.entry.js +66 -66
  424. package/dist/esm/calcite-icon.entry.js +80 -80
  425. package/dist/esm/calcite-inline-editable.entry.js +225 -225
  426. package/dist/esm/calcite-input-date-picker.entry.js +632 -632
  427. package/dist/esm/calcite-input-number_2.entry.js +846 -846
  428. package/dist/esm/{calcite-input-time-picker-13448515.js → calcite-input-time-picker-59a3ed66.js} +534 -534
  429. package/dist/esm/calcite-input-time-picker.entry.js +15 -15
  430. package/dist/esm/calcite-input-time-zone.entry.js +150 -150
  431. package/dist/esm/calcite-input_2.entry.js +645 -645
  432. package/dist/esm/calcite-label.entry.js +40 -40
  433. package/dist/esm/calcite-link.entry.js +96 -96
  434. package/dist/esm/calcite-list-item-group.entry.js +46 -46
  435. package/dist/esm/calcite-loader.entry.js +65 -65
  436. package/dist/esm/calcite-menu-item.entry.js +246 -246
  437. package/dist/esm/calcite-menu.entry.js +161 -161
  438. package/dist/esm/calcite-modal.entry.js +282 -282
  439. package/dist/esm/calcite-navigation-logo.entry.js +52 -52
  440. package/dist/esm/calcite-navigation-user.entry.js +45 -45
  441. package/dist/esm/calcite-navigation.entry.js +126 -126
  442. package/dist/esm/calcite-notice.entry.js +105 -105
  443. package/dist/esm/calcite-option-group.entry.js +24 -24
  444. package/dist/esm/calcite-option_2.entry.js +271 -271
  445. package/dist/esm/calcite-pagination.entry.js +191 -191
  446. package/dist/esm/calcite-panel_2.entry.js +346 -346
  447. package/dist/esm/calcite-pick-list-group.entry.js +46 -46
  448. package/dist/esm/calcite-pick-list-item.entry.js +181 -181
  449. package/dist/esm/calcite-pick-list.entry.js +130 -130
  450. package/dist/esm/calcite-radio-button-group.entry.js +118 -118
  451. package/dist/esm/calcite-radio-button.entry.js +292 -292
  452. package/dist/esm/calcite-rating.entry.js +245 -245
  453. package/dist/esm/calcite-scrim.entry.js +93 -93
  454. package/dist/esm/calcite-segmented-control_2.entry.js +225 -225
  455. package/dist/esm/calcite-shell-center-row.entry.js +42 -42
  456. package/dist/esm/calcite-shell-panel_14.entry.js +2604 -2604
  457. package/dist/esm/calcite-sortable-list.entry.js +134 -134
  458. package/dist/esm/calcite-split-button.entry.js +92 -92
  459. package/dist/esm/calcite-stepper-item.entry.js +197 -197
  460. package/dist/esm/calcite-stepper.entry.js +187 -187
  461. package/dist/esm/calcite-switch.entry.js +100 -100
  462. package/dist/esm/calcite-text-area.entry.js +235 -235
  463. package/dist/esm/calcite-tile-select-group.entry.js +27 -27
  464. package/dist/esm/calcite-tile-select.entry.js +180 -180
  465. package/dist/esm/calcite-tile.entry.js +58 -58
  466. package/dist/esm/calcite-time-picker.entry.js +619 -619
  467. package/dist/esm/calcite-tip-group.entry.js +10 -10
  468. package/dist/esm/calcite-tip-manager.entry.js +185 -185
  469. package/dist/esm/calcite-tip.entry.js +94 -94
  470. package/dist/esm/calcite-tooltip.entry.js +185 -185
  471. package/dist/esm/calcite-tree_3.entry.js +821 -821
  472. package/dist/esm/card-manager_4.entry.js +652 -652
  473. package/dist/esm/{conditionalSlot-27a0fce0.js → conditionalSlot-91396dd5.js} +2 -2
  474. package/dist/esm/crowdsource-manager.entry.js +256 -256
  475. package/dist/esm/crowdsource-reporter.entry.js +60 -60
  476. package/dist/esm/{cs-f21a0628.js → cs-f651c3cd.js} +15 -15
  477. package/dist/esm/{da-dc48fc4c.js → da-e32ccc0a.js} +15 -15
  478. package/dist/esm/{date-0ed48e97.js → date-51fa981b.js} +1 -1
  479. package/dist/esm/{de-59290071.js → de-9b417aed.js} +15 -15
  480. package/dist/esm/{de-at-cd6e6ab7.js → de-at-f73447e2.js} +15 -15
  481. package/dist/esm/{de-ch-27c44e34.js → de-ch-7ec8c31e.js} +15 -15
  482. package/dist/esm/deduct-calculator.entry.js +90 -90
  483. package/dist/esm/{dom-843e3afd.js → dom-8a9e4ee8.js} +2 -2
  484. package/dist/esm/{downloadUtils-63661805.js → downloadUtils-43b53f5a.js} +660 -660
  485. package/dist/esm/edit-card_2.entry.js +345 -345
  486. package/dist/esm/{el-f09fdec6.js → el-9a3189a2.js} +15 -15
  487. package/dist/esm/{en-au-90087aa5.js → en-au-5aea3b73.js} +15 -15
  488. package/dist/esm/{en-ca-10751695.js → en-ca-fe3e706b.js} +15 -15
  489. package/dist/esm/{en-gb-0f8547bd.js → en-gb-a4278000.js} +15 -15
  490. package/dist/esm/{es-b0997cf1.js → es-383f9c9e.js} +15 -15
  491. package/dist/esm/{es-mx-226f5028.js → es-mx-7845b382.js} +15 -15
  492. package/dist/esm/{et-dc96c453.js → et-d8f8df06.js} +15 -15
  493. package/dist/esm/{fi-0941704d.js → fi-14894338.js} +15 -15
  494. package/dist/esm/{filter-1cac3edf.js → filter-bf34614b.js} +1 -1
  495. package/dist/esm/{floating-ui-d28d0fd6.js → floating-ui-9870f74c.js} +2 -2
  496. package/dist/esm/{focusTrapComponent-ff3a9f28.js → focusTrapComponent-34010d00.js} +1 -1
  497. package/dist/esm/{form-11c6a015.js → form-6669a774.js} +2 -2
  498. package/dist/esm/{fr-8da3458d.js → fr-6f570086.js} +15 -15
  499. package/dist/esm/{fr-ch-739ceddf.js → fr-ch-b9f89159.js} +15 -15
  500. package/dist/esm/{he-8b662dfa.js → he-174aca6e.js} +15 -15
  501. package/dist/esm/{hi-10996f89.js → hi-7e469aab.js} +15 -15
  502. package/dist/esm/{hr-42c2024d.js → hr-a4ac455a.js} +15 -15
  503. package/dist/esm/{hu-4768b3ff.js → hu-207da291.js} +15 -15
  504. package/dist/esm/{id-24a08170.js → id-8e4d57bf.js} +15 -15
  505. package/dist/esm/{index-b91c174c.js → index-4c4a4f3d.js} +1 -1
  506. package/dist/esm/{index-b5d9d795.js → index-d298aca9.js} +38 -180
  507. package/dist/esm/{index.es-3a3aa8e3.js → index.es-a185f2b1.js} +6 -6
  508. package/dist/esm/{interfaces-5a2fe8b4.js → interfaces-bf20e69c.js} +77 -77
  509. package/dist/esm/{it-ad09649f.js → it-7ade952c.js} +15 -15
  510. package/dist/esm/{it-ch-b05fc10d.js → it-ch-181d76ab.js} +15 -15
  511. package/dist/esm/{ja-ab839b73.js → ja-42013dd3.js} +15 -15
  512. package/dist/esm/{ko-c778539e.js → ko-8de07550.js} +15 -15
  513. package/dist/esm/{label-6a1caf64.js → label-661d8e10.js} +1 -1
  514. package/dist/esm/list-item.entry.js +60 -60
  515. package/dist/esm/{loadModules-2ecd1e44.js → loadModules-cd3569de.js} +19 -19
  516. package/dist/esm/{loadable-6bca96ad.js → loadable-08376d90.js} +1 -1
  517. package/dist/esm/loader.js +14 -5
  518. package/dist/esm/{locale-aa3de591.js → locale-54cac39a.js} +107 -107
  519. package/dist/esm/{locale-d8561d54.js → locale-73d0926a.js} +3 -3
  520. package/dist/esm/{lt-447d9aa9.js → lt-1ef29b5b.js} +15 -15
  521. package/dist/esm/{lv-4d715e11.js → lv-263a2f78.js} +15 -15
  522. package/dist/esm/map-picker_2.entry.js +243 -243
  523. package/dist/esm/map-select-tools_3.entry.js +1285 -1285
  524. package/dist/esm/{mapViewUtils-f0c04325.js → mapViewUtils-1e68cede.js} +384 -384
  525. package/dist/esm/{mk-b3d7401a.js → mk-d8bae136.js} +15 -15
  526. package/dist/esm/{nb-2b4a8366.js → nb-494542b3.js} +15 -15
  527. package/dist/esm/{nl-c0db1da2.js → nl-cd882d7f.js} +15 -15
  528. package/dist/esm/{openCloseComponent-2b5c6bed.js → openCloseComponent-a40fd6fd.js} +1 -1
  529. package/dist/esm/pci-calculator.entry.js +102 -102
  530. package/dist/esm/{pciUtils-59c29b42.js → pciUtils-ecda46e5.js} +836 -836
  531. package/dist/esm/{pl-0d322bb4.js → pl-b79095d5.js} +15 -15
  532. package/dist/esm/polyfills/core-js.js +11 -0
  533. package/dist/esm/polyfills/css-shim.js +1 -0
  534. package/dist/esm/polyfills/dom.js +79 -0
  535. package/dist/esm/polyfills/es5-html-element.js +1 -0
  536. package/dist/esm/polyfills/index.js +34 -0
  537. package/dist/esm/polyfills/system.js +6 -0
  538. package/dist/esm/{pt-5997598c.js → pt-5ca0b751.js} +15 -15
  539. package/dist/esm/{pt-br-6b77e7db.js → pt-br-e1a1ce60.js} +15 -15
  540. package/dist/esm/public-notification.entry.js +844 -844
  541. package/dist/esm/{publicNotificationStore-ade82148.js → publicNotificationStore-6ef555f3.js} +40 -40
  542. package/dist/esm/{ro-ac3724e0.js → ro-5cbc0f2a.js} +15 -15
  543. package/dist/esm/{ru-4e75151f.js → ru-e66f5b84.js} +15 -15
  544. package/dist/esm/{shared-list-render-abd19c8d.js → shared-list-render-5b788e63.js} +6 -6
  545. package/dist/esm/{sk-bbfa22a3.js → sk-be2b5cec.js} +15 -15
  546. package/dist/esm/{sl-867cecfc.js → sl-74600272.js} +15 -15
  547. package/dist/esm/solution-configuration.entry.js +888 -888
  548. package/dist/esm/solution-contents_3.entry.js +21506 -21506
  549. package/dist/esm/{solution-store-46bc46a5.js → solution-store-c107ca4d.js} +577 -577
  550. package/dist/esm/solutions-components.js +5 -5
  551. package/dist/esm/{sortableComponent-db502e97.js → sortableComponent-1dd8a4ae.js} +1 -1
  552. package/dist/esm/{sr-198b5c00.js → sr-58280ce5.js} +15 -15
  553. package/dist/esm/store-manager.entry.js +52 -52
  554. package/dist/esm/{sv-02d64370.js → sv-f0e2171a.js} +15 -15
  555. package/dist/esm/{t9n-76168237.js → t9n-745553e0.js} +2 -2
  556. package/dist/esm/{th-1616e303.js → th-6c3eac31.js} +15 -15
  557. package/dist/esm/{throttle-9ab70933.js → throttle-26fa347b.js} +1 -1
  558. package/dist/esm/{time-6721a4c2.js → time-7e3ba7c6.js} +1 -1
  559. package/dist/esm/{tr-f4619f64.js → tr-092713ca.js} +15 -15
  560. package/dist/esm/{uk-df7df34a.js → uk-95df0f95.js} +15 -15
  561. package/dist/esm/{utils-ccfd94a7.js → utils-4f695ec2.js} +1 -1
  562. package/dist/esm/{utils-f54411df.js → utils-ddff4ef3.js} +3 -3
  563. package/dist/esm/{vi-176ca9f7.js → vi-70a9857c.js} +15 -15
  564. package/dist/esm/{zh-cn-e13d83d1.js → zh-cn-e024ef2d.js} +15 -15
  565. package/dist/esm/{zh-hk-d97365d8.js → zh-hk-36ff9e8f.js} +15 -15
  566. package/dist/esm/{zh-tw-a2b6f0b7.js → zh-tw-96ddb74c.js} +15 -15
  567. package/dist/loader/index.d.ts +2 -2
  568. package/dist/solutions-components/{p-15ef7894.js → p-0056655c.js} +1 -1
  569. package/dist/solutions-components/{p-955a956a.entry.js → p-017265ef.entry.js} +1 -1
  570. package/dist/solutions-components/{p-844ee452.entry.js → p-017543d5.entry.js} +1 -1
  571. package/dist/solutions-components/{p-b2e6c578.js → p-0209ed2e.js} +1 -1
  572. package/dist/solutions-components/{p-5e59219b.entry.js → p-0245bb56.entry.js} +1 -1
  573. package/dist/solutions-components/{p-916f90ec.entry.js → p-043ead99.entry.js} +1 -1
  574. package/dist/solutions-components/p-048a2a6d.js +6 -0
  575. package/dist/solutions-components/{p-e02fcfa9.entry.js → p-050e12eb.entry.js} +1 -1
  576. package/dist/solutions-components/{p-b0c4138f.entry.js → p-06916de9.entry.js} +1 -1
  577. package/dist/solutions-components/{p-67ce3c0c.entry.js → p-08320fb9.entry.js} +2 -2
  578. package/dist/solutions-components/{p-21f00df6.js → p-08e12eb0.js} +1 -1
  579. package/dist/solutions-components/p-0a2c02fd.js +6 -0
  580. package/dist/solutions-components/{p-de58bd49.js → p-0a4bc416.js} +1 -1
  581. package/dist/solutions-components/{p-ef96894d.entry.js → p-0afa17dc.entry.js} +1 -1
  582. package/dist/solutions-components/{p-4bc7b875.entry.js → p-0b4eb6e4.entry.js} +1 -1
  583. package/dist/solutions-components/{p-7b9adfff.js → p-0d900572.js} +1 -1
  584. package/dist/solutions-components/{p-0fbc27fd.entry.js → p-0f4d3009.entry.js} +1 -1
  585. package/dist/solutions-components/{p-b921aa1a.entry.js → p-10181f33.entry.js} +1 -1
  586. package/dist/solutions-components/{p-804e4751.entry.js → p-105ef63c.entry.js} +1 -1
  587. package/dist/solutions-components/{p-35123c90.js → p-11983a08.js} +1 -1
  588. package/dist/solutions-components/p-1260db08.js +61 -0
  589. package/dist/solutions-components/{p-a0edbb27.js → p-129fcd0a.js} +1 -1
  590. package/dist/solutions-components/{p-c1ee0d69.js → p-13f7e487.js} +1 -1
  591. package/dist/solutions-components/p-14769a01.js +11 -0
  592. package/dist/solutions-components/{p-c6d83122.entry.js → p-14a4ad77.entry.js} +2 -2
  593. package/dist/solutions-components/{p-e07b8a72.entry.js → p-15e67907.entry.js} +1 -1
  594. package/dist/solutions-components/{p-32ef065d.entry.js → p-17799448.entry.js} +1 -1
  595. package/dist/solutions-components/{p-8a758303.js → p-185a82e0.js} +1 -1
  596. package/dist/solutions-components/p-191c59e9.js +6 -0
  597. package/dist/solutions-components/{p-7601988d.entry.js → p-1b63bec9.entry.js} +1 -1
  598. package/dist/solutions-components/{p-28d2670f.entry.js → p-1c810f4c.entry.js} +1 -1
  599. package/dist/solutions-components/{p-9603c3ff.entry.js → p-1d28ff09.entry.js} +1 -1
  600. package/dist/solutions-components/{p-4b95d05e.entry.js → p-1e30069a.entry.js} +1 -1
  601. package/dist/solutions-components/p-1e63db11.entry.js +6 -0
  602. package/dist/solutions-components/{p-a08bd8c1.entry.js → p-20274226.entry.js} +1 -1
  603. package/dist/solutions-components/{p-a843af2a.js → p-2411f1f6.js} +1 -1
  604. package/dist/solutions-components/{p-ad4d6d02.entry.js → p-2509b65f.entry.js} +2 -2
  605. package/dist/solutions-components/{p-216801d5.js → p-25faeab6.js} +1 -1
  606. package/dist/solutions-components/{p-f8dd2784.js → p-27f5bb4f.js} +2 -2
  607. package/dist/solutions-components/{p-b948ecd2.entry.js → p-2a0d8a46.entry.js} +1 -1
  608. package/dist/solutions-components/{p-27a1ac1f.entry.js → p-2dea68b6.entry.js} +2 -2
  609. package/dist/solutions-components/{p-de59d2f5.js → p-2ecd5cb7.js} +1 -1
  610. package/dist/solutions-components/{p-7aa949a3.entry.js → p-30dbc43d.entry.js} +2 -2
  611. package/dist/solutions-components/{p-46d5970b.entry.js → p-32d821d1.entry.js} +1 -1
  612. package/dist/solutions-components/{p-82199b7b.entry.js → p-3479d873.entry.js} +1 -1
  613. package/dist/solutions-components/{p-9fb16c72.entry.js → p-36d09c0c.entry.js} +1 -1
  614. package/dist/solutions-components/{p-75f26870.js → p-375f0b74.js} +6 -6
  615. package/dist/solutions-components/{p-cf1af08f.entry.js → p-38b4873b.entry.js} +1 -1
  616. package/dist/solutions-components/p-38d61356.js +18 -0
  617. package/dist/solutions-components/{p-a2748b38.entry.js → p-3a7156b8.entry.js} +1 -1
  618. package/dist/solutions-components/{p-022a9b7a.js → p-3b041268.js} +1 -1
  619. package/dist/solutions-components/{p-6a820c4d.js → p-3ca9bb95.js} +1 -1
  620. package/dist/solutions-components/{p-326fa270.js → p-3e5c8b2f.js} +1 -1
  621. package/dist/solutions-components/{p-1ede2e18.js → p-3ee6af74.js} +2 -2
  622. package/dist/solutions-components/{p-97c47bbd.entry.js → p-3eecbcf0.entry.js} +1 -1
  623. package/dist/solutions-components/{p-5c097e25.entry.js → p-40432de5.entry.js} +1 -1
  624. package/dist/solutions-components/{p-c9858d8f.entry.js → p-4058733e.entry.js} +1 -1
  625. package/dist/solutions-components/{p-9e727488.js → p-4152fae0.js} +1 -1
  626. package/dist/solutions-components/{p-12a4fa84.js → p-4321edfc.js} +1 -1
  627. package/dist/solutions-components/{p-761a033a.entry.js → p-4344b6ca.entry.js} +1 -1
  628. package/dist/solutions-components/{p-aeebdb15.js → p-44e26e37.js} +1 -1
  629. package/dist/solutions-components/{p-3445a8c6.js → p-477ae127.js} +1 -1
  630. package/dist/solutions-components/{p-9cb94ea0.js → p-4c8b1179.js} +1 -1
  631. package/dist/solutions-components/p-4e32bf8c.js +6 -0
  632. package/dist/solutions-components/{p-4c43820f.entry.js → p-4e93132b.entry.js} +1 -1
  633. package/dist/solutions-components/{p-1add4e39.entry.js → p-4ea79dc4.entry.js} +2 -2
  634. package/dist/solutions-components/{p-05db4340.js → p-4f51db32.js} +1 -1
  635. package/dist/solutions-components/{p-4d17943f.js → p-4f64d786.js} +1 -1
  636. package/dist/solutions-components/{p-2c0dc7b1.js → p-4ff653eb.js} +1 -1
  637. package/dist/solutions-components/{p-b1f84ae5.js → p-53347add.js} +1 -1
  638. package/dist/solutions-components/p-54fce798.js +11 -0
  639. package/dist/solutions-components/{p-abda8ca2.entry.js → p-573d282b.entry.js} +1 -1
  640. package/dist/solutions-components/{p-a258f5e7.js → p-58340eba.js} +1 -1
  641. package/dist/solutions-components/p-5930cd6d.entry.js +6 -0
  642. package/dist/solutions-components/p-5fc99541.js +257 -0
  643. package/dist/solutions-components/{p-ffac6f88.entry.js → p-6071078a.entry.js} +1 -1
  644. package/dist/solutions-components/{p-dc9dad31.entry.js → p-69863a28.entry.js} +1 -1
  645. package/dist/solutions-components/{p-a6900100.entry.js → p-699031c9.entry.js} +2 -2
  646. package/dist/solutions-components/{p-ab8f5c6b.entry.js → p-6998e886.entry.js} +1 -1
  647. package/dist/solutions-components/{p-bbb0d957.entry.js → p-6a813a31.entry.js} +1 -1
  648. package/dist/solutions-components/{p-ad72a379.entry.js → p-6b12b5eb.entry.js} +1 -1
  649. package/dist/solutions-components/{p-639cca97.js → p-6e89e9dd.js} +1 -1
  650. package/dist/solutions-components/{p-5adf37ea.entry.js → p-705b7f81.entry.js} +1 -1
  651. package/dist/solutions-components/p-75578ebf.entry.js +6 -0
  652. package/dist/solutions-components/{p-5383607a.js → p-7c72df3c.js} +3 -3
  653. package/dist/solutions-components/{p-03fccde6.entry.js → p-7ca47589.entry.js} +2 -2
  654. package/dist/solutions-components/{p-a040efff.js → p-7cb8a4db.js} +1 -1
  655. package/dist/solutions-components/p-7cc13b24.js +8 -0
  656. package/dist/solutions-components/{p-e4253e1b.entry.js → p-8008b2fe.entry.js} +1 -1
  657. package/dist/solutions-components/{p-22d580b0.entry.js → p-81531fbe.entry.js} +1 -1
  658. package/dist/solutions-components/{p-e10a62f4.entry.js → p-81627211.entry.js} +1 -1
  659. package/dist/solutions-components/{p-2d70d3fd.js → p-8aa806fe.js} +1 -1
  660. package/dist/solutions-components/{p-052ff2c7.js → p-8ae8b789.js} +1 -1
  661. package/dist/solutions-components/{p-4daae757.js → p-8b1236bf.js} +1 -1
  662. package/dist/solutions-components/{p-ee066c67.js → p-8b14f9aa.js} +3 -3
  663. package/dist/solutions-components/{p-56300653.js → p-8b4e79fd.js} +1 -1
  664. package/dist/solutions-components/{p-bba3fa4e.entry.js → p-8bc91d5b.entry.js} +2 -2
  665. package/dist/solutions-components/{p-cad5587c.entry.js → p-8df0c98c.entry.js} +1 -1
  666. package/dist/solutions-components/p-953cf07a.entry.js +6 -0
  667. package/dist/solutions-components/{p-5b9b1cbb.entry.js → p-95cf8aa0.entry.js} +1 -1
  668. package/dist/solutions-components/{p-29d41c7e.js → p-99ece5e1.js} +2 -2
  669. package/dist/solutions-components/{p-b4157e6a.js → p-9a2a551d.js} +1 -1
  670. package/dist/solutions-components/{p-541697d0.js → p-9b43b4cf.js} +1 -1
  671. package/dist/solutions-components/{p-647a4130.js → p-9f922d49.js} +2 -7
  672. package/dist/solutions-components/p-9fb09c2c.js +11 -0
  673. package/dist/solutions-components/{p-e645edf2.entry.js → p-a0e50ea6.entry.js} +1 -1
  674. package/dist/solutions-components/{p-31316d61.entry.js → p-a1154bb5.entry.js} +2 -2
  675. package/dist/solutions-components/{p-d62784a4.js → p-a709a84a.js} +1 -1
  676. package/dist/solutions-components/p-a99832c1.js +27 -0
  677. package/dist/solutions-components/{p-0f8440bb.entry.js → p-ad41cd27.entry.js} +1 -1
  678. package/dist/solutions-components/{p-bd3a3afe.js → p-ad962e25.js} +1 -1
  679. package/dist/solutions-components/{p-2b252afd.entry.js → p-ae1459ed.entry.js} +1 -1
  680. package/dist/solutions-components/{p-90bbf223.entry.js → p-af9510a4.entry.js} +1 -1
  681. package/dist/solutions-components/{p-4f0c3fc1.js → p-afc462f0.js} +1 -1
  682. package/dist/solutions-components/{p-6431fd69.js → p-b02a2b2f.js} +2 -2
  683. package/dist/solutions-components/{p-421d5e7c.js → p-b0eb13a1.js} +1 -1
  684. package/dist/solutions-components/{p-2656168f.entry.js → p-b1228e6c.entry.js} +1 -1
  685. package/dist/solutions-components/{p-0e7914e6.entry.js → p-b1ff9f2e.entry.js} +1 -1
  686. package/dist/solutions-components/p-b20bf7b7.entry.js +6 -0
  687. package/dist/solutions-components/{p-7920b5a2.entry.js → p-b361af64.entry.js} +1 -1
  688. package/dist/solutions-components/{p-a777b18c.js → p-b4a6abe2.js} +2 -2
  689. package/dist/solutions-components/{p-4e4b55b9.entry.js → p-b68b17b6.entry.js} +3 -3
  690. package/dist/solutions-components/{p-f41105c8.js → p-b73e9c4d.js} +1 -1
  691. package/dist/solutions-components/{p-19fe7725.js → p-b9111e12.js} +1 -1
  692. package/dist/solutions-components/{p-3cbe5ef3.js → p-b9653a1e.js} +1 -1
  693. package/dist/solutions-components/{p-5f5c371e.js → p-b9fa9ca9.js} +1 -1
  694. package/dist/solutions-components/{p-c07af9c2.entry.js → p-ba9bb2ba.entry.js} +2 -2
  695. package/dist/solutions-components/{p-b49bdc72.entry.js → p-bc35e445.entry.js} +1 -1
  696. package/dist/solutions-components/{p-c3f8b670.js → p-bccc74a8.js} +1 -1
  697. package/dist/solutions-components/{p-1990d9c8.entry.js → p-bd213033.entry.js} +1 -1
  698. package/dist/solutions-components/{p-a775ba2f.entry.js → p-c0dc792a.entry.js} +1 -1
  699. package/dist/solutions-components/{p-606ca126.js → p-c16e540d.js} +1 -1
  700. package/dist/solutions-components/{p-42c7a5fa.entry.js → p-c35b219b.entry.js} +1 -1
  701. package/dist/solutions-components/{p-b86b4512.entry.js → p-c38c0612.entry.js} +2 -2
  702. package/dist/solutions-components/{p-6b2f2b85.js → p-c8c3554b.js} +3 -3
  703. package/dist/solutions-components/{p-634e1240.js → p-cbebdffa.js} +1 -1
  704. package/dist/solutions-components/{p-91caf655.entry.js → p-cbf52aa2.entry.js} +2 -2
  705. package/dist/solutions-components/{p-825bac0e.js → p-ce21ee76.js} +1 -1
  706. package/dist/solutions-components/{p-57c08531.entry.js → p-ce3e73ae.entry.js} +1 -1
  707. package/dist/solutions-components/{p-d3a22725.js → p-cf14e2f3.js} +1 -1
  708. package/dist/solutions-components/{p-f28d69ac.entry.js → p-cfebc45c.entry.js} +1 -1
  709. package/dist/solutions-components/{p-6a524392.entry.js → p-d15a4f36.entry.js} +1 -1
  710. package/dist/solutions-components/{p-754e2df2.js → p-d3550542.js} +1 -1
  711. package/dist/solutions-components/{p-b5d67495.entry.js → p-d3dceabd.entry.js} +1 -1
  712. package/dist/solutions-components/{p-07bc4f07.entry.js → p-d43c1fc8.entry.js} +2 -2
  713. package/dist/solutions-components/{p-6de98c51.js → p-d7ddd3a2.js} +1 -1
  714. package/dist/solutions-components/{p-3e139360.js → p-d841cb8b.js} +1 -1
  715. package/dist/solutions-components/{p-2ae17fa2.js → p-d9868bac.js} +1 -1
  716. package/dist/solutions-components/{p-32f9c709.js → p-dc94bec2.js} +1 -1
  717. package/dist/solutions-components/{p-e6bee82f.js → p-dd0f8875.js} +1 -1
  718. package/dist/solutions-components/p-dec7b660.js +11 -0
  719. package/dist/solutions-components/{p-3f0193e9.js → p-deca8a07.js} +1 -1
  720. package/dist/solutions-components/{p-31ff3452.entry.js → p-df5ec082.entry.js} +1 -1
  721. package/dist/solutions-components/{p-ea282908.js → p-e046f728.js} +1 -1
  722. package/dist/solutions-components/{p-cf43278c.entry.js → p-e27ce6d2.entry.js} +1 -1
  723. package/dist/solutions-components/p-e2abc969.js +6 -0
  724. package/dist/solutions-components/{p-c5e294e4.js → p-e3f9e213.js} +1 -1
  725. package/dist/solutions-components/{p-2b96e551.entry.js → p-e43839a8.entry.js} +2 -2
  726. package/dist/solutions-components/{p-418d0b60.entry.js → p-e4d5188b.entry.js} +1 -1
  727. package/dist/solutions-components/{p-7b90c18e.entry.js → p-e666c0d6.entry.js} +1 -1
  728. package/dist/solutions-components/{p-39ff5ee5.js → p-e6c20791.js} +1 -1
  729. package/dist/solutions-components/{p-2005280f.js → p-ec4c8dc3.js} +1 -1
  730. package/dist/solutions-components/{p-93074bd4.entry.js → p-ef34c9e2.entry.js} +1 -1
  731. package/dist/solutions-components/{p-361f1fe1.js → p-f346f8ab.js} +2 -2
  732. package/dist/solutions-components/{p-680d193d.entry.js → p-f780ecc1.entry.js} +2 -2
  733. package/dist/solutions-components/p-f8be5d5f.js +7 -0
  734. package/dist/solutions-components/{p-c70392c4.entry.js → p-f9a56d6b.entry.js} +1 -1
  735. package/dist/solutions-components/{p-0ece6df1.entry.js → p-f9b9b211.entry.js} +1 -1
  736. package/dist/solutions-components/{p-a0a2c53d.js → p-fc2277fe.js} +1 -1
  737. package/dist/solutions-components/{p-40bde8b2.entry.js → p-fd65b14d.entry.js} +1 -1
  738. package/dist/solutions-components/{p-ef48bd77.entry.js → p-fe0e8542.entry.js} +1 -1
  739. package/dist/solutions-components/solutions-components.esm.js +1 -1
  740. package/dist/types/components/buffer-tools/buffer-tools.d.ts +170 -170
  741. package/dist/types/components/card-manager/card-manager.d.ts +70 -70
  742. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +174 -174
  743. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +26 -26
  744. package/dist/types/components/deduct-calculator/deduct-calculator.d.ts +90 -90
  745. package/dist/types/components/edit-card/edit-card.d.ts +140 -140
  746. package/dist/types/components/info-card/info-card.d.ts +143 -143
  747. package/dist/types/components/json-editor/json-editor.d.ts +229 -229
  748. package/dist/types/components/layer-table/layer-table.d.ts +276 -276
  749. package/dist/types/components/layout-manager/layout-manager.d.ts +69 -69
  750. package/dist/types/components/list-item/list-item.d.ts +26 -26
  751. package/dist/types/components/map-card/map-card.d.ts +83 -83
  752. package/dist/types/components/map-draw-tools/map-draw-tools.d.ts +231 -231
  753. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +160 -160
  754. package/dist/types/components/map-picker/map-picker.d.ts +109 -109
  755. package/dist/types/components/map-select-tools/map-select-tools.d.ts +469 -469
  756. package/dist/types/components/map-tools/map-tools.d.ts +104 -104
  757. package/dist/types/components/pci-calculator/pci-calculator.d.ts +71 -71
  758. package/dist/types/components/pdf-download/pdf-download.d.ts +101 -101
  759. package/dist/types/components/public-notification/public-notification.d.ts +610 -610
  760. package/dist/types/components/refine-selection/refine-selection.d.ts +234 -234
  761. package/dist/types/components/solution-configuration/solution-configuration.d.ts +205 -205
  762. package/dist/types/components/solution-contents/solution-contents.d.ts +46 -46
  763. package/dist/types/components/solution-item/solution-item.d.ts +71 -71
  764. package/dist/types/components/solution-item-details/solution-item-details.d.ts +100 -100
  765. package/dist/types/components/solution-item-icon/solution-item-icon.d.ts +44 -44
  766. package/dist/types/components/solution-item-sharing/solution-item-sharing.d.ts +62 -62
  767. package/dist/types/components/solution-organization-variables/solution-organization-variables.d.ts +63 -63
  768. package/dist/types/components/solution-resource-item/solution-resource-item.d.ts +144 -144
  769. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +180 -180
  770. package/dist/types/components/solution-spatial-ref/spatialreferences.d.ts +17 -17
  771. package/dist/types/components/solution-template-data/solution-template-data.d.ts +72 -72
  772. package/dist/types/components/solution-variables/solution-variables.d.ts +69 -69
  773. package/dist/types/components/store-manager/store-manager.d.ts +55 -55
  774. package/dist/types/components.d.ts +0 -2
  775. package/dist/types/index.d.ts +16 -16
  776. package/dist/types/stencil-public-runtime.d.ts +14 -27
  777. package/dist/types/utils/common.d.ts +49 -49
  778. package/dist/types/utils/csvDownload.d.ts +24 -24
  779. package/dist/types/utils/csvUtils.d.ts +22 -22
  780. package/dist/types/utils/downloadUtils.d.ts +118 -118
  781. package/dist/types/utils/interfaces.d.ts +398 -398
  782. package/dist/types/utils/languageUtil.d.ts +11 -11
  783. package/dist/types/utils/loadModules.d.ts +17 -17
  784. package/dist/types/utils/locale.d.ts +22 -22
  785. package/dist/types/utils/mapViewUtils.d.ts +124 -124
  786. package/dist/types/utils/pciUtils.d.ts +97 -97
  787. package/dist/types/utils/pdfUtils.d.ts +27 -27
  788. package/dist/types/utils/publicNotificationStore.d.ts +24 -24
  789. package/dist/types/utils/queryUtils.d.ts +95 -95
  790. package/dist/types/utils/solution-store.d.ts +234 -234
  791. package/dist/types/utils/templates.d.ts +50 -50
  792. package/dist/types/utils/test/mocks/jsApi.d.ts +59 -59
  793. package/dist/types/utils/test/testUtils.d.ts +36 -36
  794. package/dist/types/utils/types.d.ts +1 -1
  795. package/package.json +2 -2
  796. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +0 -29
  797. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +0 -160
  798. package/dist/collection/components/card-manager/test/card-manager.e2e.js +0 -29
  799. package/dist/collection/components/card-manager/test/card-manager.spec.js +0 -37
  800. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +0 -29
  801. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +0 -37
  802. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +0 -29
  803. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +0 -37
  804. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +0 -29
  805. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +0 -37
  806. package/dist/collection/components/edit-card/test/edit-card.e2e.js +0 -14
  807. package/dist/collection/components/edit-card/test/edit-card.spec.js +0 -22
  808. package/dist/collection/components/info-card/test/info-card.e2e.js +0 -29
  809. package/dist/collection/components/info-card/test/info-card.spec.js +0 -37
  810. package/dist/collection/components/json-editor/test/json-editor.e2e.js +0 -36
  811. package/dist/collection/components/json-editor/test/json-editor.spec.js +0 -65
  812. package/dist/collection/components/layer-table/test/layer-table.e2e.js +0 -29
  813. package/dist/collection/components/layer-table/test/layer-table.spec.js +0 -37
  814. package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +0 -29
  815. package/dist/collection/components/layout-manager/test/layout-manager.spec.js +0 -37
  816. package/dist/collection/components/list-item/test/list-item.e2e.js +0 -29
  817. package/dist/collection/components/list-item/test/list-item.spec.js +0 -37
  818. package/dist/collection/components/map-card/test/map-card.e2e.js +0 -29
  819. package/dist/collection/components/map-card/test/map-card.spec.js +0 -37
  820. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +0 -29
  821. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +0 -37
  822. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +0 -29
  823. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +0 -114
  824. package/dist/collection/components/map-picker/test/map-picker.e2e.js +0 -29
  825. package/dist/collection/components/map-picker/test/map-picker.spec.js +0 -37
  826. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +0 -29
  827. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +0 -366
  828. package/dist/collection/components/map-tools/test/map-tools.e2e.js +0 -29
  829. package/dist/collection/components/map-tools/test/map-tools.spec.js +0 -37
  830. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +0 -29
  831. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +0 -37
  832. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +0 -76
  833. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +0 -107
  834. package/dist/collection/components/public-notification/test/public-notification.spec.js +0 -161
  835. package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +0 -14
  836. package/dist/collection/components/refine-selection/test/refine-selection.spec.js +0 -22
  837. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +0 -36
  838. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +0 -119
  839. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +0 -94
  840. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +0 -143
  841. package/dist/collection/components/solution-item/test/solution-item.e2e.js +0 -36
  842. package/dist/collection/components/solution-item/test/solution-item.spec.js +0 -77
  843. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +0 -36
  844. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +0 -142
  845. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +0 -29
  846. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +0 -39
  847. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +0 -36
  848. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +0 -54
  849. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +0 -36
  850. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +0 -65
  851. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +0 -36
  852. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +0 -55
  853. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +0 -36
  854. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +0 -175
  855. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +0 -36
  856. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +0 -60
  857. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +0 -36
  858. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +0 -131
  859. package/dist/collection/utils/templates.e2e.js +0 -30
  860. package/dist/collection/utils/test/csvUtils.spec.js +0 -51
  861. package/dist/collection/utils/test/downloadUtils.spec.js +0 -357
  862. package/dist/collection/utils/test/pciUtils.spec.js +0 -302
  863. package/dist/collection/utils/test/solution-store.spec.js +0 -444
  864. package/dist/esm/resources-40d8e06f.js +0 -20
  865. package/dist/solutions-components/p-0cc32f06.js +0 -6
  866. package/dist/solutions-components/p-10248e04.js +0 -11
  867. package/dist/solutions-components/p-108fbf59.entry.js +0 -6
  868. package/dist/solutions-components/p-13290851.js +0 -259
  869. package/dist/solutions-components/p-164be8ef.entry.js +0 -6
  870. package/dist/solutions-components/p-1ea1dcac.js +0 -61
  871. package/dist/solutions-components/p-3aba40e8.js +0 -18
  872. package/dist/solutions-components/p-3bd99fc9.js +0 -11
  873. package/dist/solutions-components/p-3cce003d.js +0 -27
  874. package/dist/solutions-components/p-525f1188.js +0 -11
  875. package/dist/solutions-components/p-6665fa1f.js +0 -6
  876. package/dist/solutions-components/p-7c33e500.entry.js +0 -6
  877. package/dist/solutions-components/p-9310b882.js +0 -7
  878. package/dist/solutions-components/p-9bbc05ff.js +0 -11
  879. package/dist/solutions-components/p-a82f35c9.js +0 -6
  880. package/dist/solutions-components/p-b6578a32.js +0 -6
  881. package/dist/solutions-components/p-b684bbc7.entry.js +0 -6
  882. package/dist/solutions-components/p-baccfd70.entry.js +0 -6
  883. package/dist/solutions-components/p-bf9e18d4.js +0 -8
  884. package/dist/solutions-components/p-d6322e4b.js +0 -6
  885. /package/dist/cjs/{array-46bb7df1.js → array-51e7da8f.js} +0 -0
  886. /package/dist/cjs/{debounce-30afab47.js → debounce-69c3bada.js} +0 -0
  887. /package/dist/cjs/{guid-3abe3cc6.js → guid-ca85ade0.js} +0 -0
  888. /package/dist/cjs/{html2canvas-34208bbf.js → html2canvas-770c1171.js} +0 -0
  889. /package/dist/cjs/{interactive-2fe0f43a.js → interactive-4e212b36.js} +0 -0
  890. /package/dist/cjs/{key-b8b55ea3.js → key-b32a6438.js} +0 -0
  891. /package/dist/cjs/{math-5132d9bd.js → math-ef14a84a.js} +0 -0
  892. /package/dist/cjs/{observers-f5fa975b.js → observers-20fe6f01.js} +0 -0
  893. /package/dist/cjs/{purify-f8c3e427.js → purify-5389d8d6.js} +0 -0
  894. /package/dist/cjs/{resources-2901b608.js → resources-1d2258a1.js} +0 -0
  895. /package/dist/cjs/{resources-60c27547.js → resources-7c9bff85.js} +0 -0
  896. /package/dist/cjs/{resources-9f2b33ee.js → resources-9dcbf30f.js} +0 -0
  897. /package/dist/cjs/{resources-4da89742.js → resources-a7e3371d.js} +0 -0
  898. /package/dist/cjs/{resources-8233a151.js → resources-b176fc52.js} +0 -0
  899. /package/dist/cjs/{resources-77713c2e.js → resources-b4b4b4fe.js} +0 -0
  900. /package/dist/cjs/{resources-e1258e8a.js → resources-c6f066a4.js} +0 -0
  901. /package/dist/cjs/{resources-91409a5d.js → resources-f13e2605.js} +0 -0
  902. /package/dist/cjs/{resources-c913200c.js → resources-f3e30b7b.js} +0 -0
  903. /package/dist/cjs/{utils-bae432a9.js → utils-662561ad.js} +0 -0
  904. /package/dist/cjs/{utils-cd14113f.js → utils-8a0f3e68.js} +0 -0
  905. /package/dist/esm/{array-751a2b87.js → array-4a653f59.js} +0 -0
  906. /package/dist/esm/{debounce-229b1a22.js → debounce-4c884e5c.js} +0 -0
  907. /package/dist/esm/{guid-2bbb8cd1.js → guid-1608fd71.js} +0 -0
  908. /package/dist/esm/{html2canvas-a0a4df55.js → html2canvas-12c862c8.js} +0 -0
  909. /package/dist/esm/{interactive-eaf4be29.js → interactive-0733ee76.js} +0 -0
  910. /package/dist/esm/{key-7a525416.js → key-97b504af.js} +0 -0
  911. /package/dist/esm/{math-5f92f517.js → math-e006358c.js} +0 -0
  912. /package/dist/esm/{observers-9d66685a.js → observers-67bdf9e5.js} +0 -0
  913. /package/dist/esm/{purify-c99d2ace.js → purify-75c61cf7.js} +0 -0
  914. /package/dist/esm/{resources-d6a4d343.js → resources-01034dfa.js} +0 -0
  915. /package/dist/esm/{resources-c253772f.js → resources-34b761fa.js} +0 -0
  916. /package/dist/esm/{resources-a9b2d33c.js → resources-43d63050.js} +0 -0
  917. /package/dist/esm/{resources-dca3d475.js → resources-5490ccf4.js} +0 -0
  918. /package/dist/esm/{resources-c65f5654.js → resources-6b7800e6.js} +0 -0
  919. /package/dist/esm/{resources-5bce3953.js → resources-6be20fcc.js} +0 -0
  920. /package/dist/esm/{resources-58d30a0f.js → resources-913009ae.js} +0 -0
  921. /package/dist/{components/resources4.js → esm/resources-b5267429.js} +0 -0
  922. /package/dist/esm/{resources-94c47e64.js → resources-f97db74e.js} +0 -0
  923. /package/dist/esm/{utils-2c91c963.js → utils-649c76ab.js} +0 -0
  924. /package/dist/esm/{utils-18db6b1d.js → utils-dcd05f69.js} +0 -0
  925. /package/dist/solutions-components/{p-f055a840.js → p-0506e06f.js} +0 -0
  926. /package/dist/solutions-components/{p-283e3a2d.js → p-0630e686.js} +0 -0
  927. /package/dist/solutions-components/{p-fb7e0054.js → p-08ab045a.js} +0 -0
  928. /package/dist/solutions-components/{p-2291b598.js → p-0b32d4fe.js} +0 -0
  929. /package/dist/solutions-components/{p-5961c4e0.js → p-203b16df.js} +0 -0
  930. /package/dist/solutions-components/{p-3fc17d72.js → p-3adf63ca.js} +0 -0
  931. /package/dist/solutions-components/{p-d4c103a8.js → p-3b72043f.js} +0 -0
  932. /package/dist/solutions-components/{p-18f1772b.js → p-43ebe36a.js} +0 -0
  933. /package/dist/solutions-components/{p-58ce5639.js → p-5242a652.js} +0 -0
  934. /package/dist/solutions-components/{p-18869c0f.js → p-5d25ba99.js} +0 -0
  935. /package/dist/solutions-components/{p-1f468797.js → p-76b83a13.js} +0 -0
  936. /package/dist/solutions-components/{p-d554507d.js → p-7ac7b1a1.js} +0 -0
  937. /package/dist/solutions-components/{p-868df4a0.js → p-9ab03591.js} +0 -0
  938. /package/dist/solutions-components/{p-38ef0684.js → p-a963dd48.js} +0 -0
  939. /package/dist/solutions-components/{p-63a0e9bf.js → p-cc815aca.js} +0 -0
  940. /package/dist/solutions-components/{p-6f2edf5b.js → p-d556b5c4.js} +0 -0
  941. /package/dist/solutions-components/{p-215d3505.js → p-f93e6931.js} +0 -0
  942. /package/dist/solutions-components/{p-4805ff13.js → p-fb3ba11a.js} +0 -0
  943. /package/dist/solutions-components/{p-b9749e09.js → p-ff4afb7d.js} +0 -0
@@ -1,530 +1,530 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- /** @license
7
- * Copyright 2022 Esri
8
- *
9
- * Licensed under the Apache License, Version 2.0 (the "License");
10
- * you may not use this file except in compliance with the License.
11
- * You may obtain a copy of the License at
12
- *
13
- * http://www.apache.org/licenses/LICENSE-2.0
14
- *
15
- * Unless required by applicable law or agreed to in writing, software
16
- * distributed under the License is distributed on an "AS IS" BASIS,
17
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
- * See the License for the specific language governing permissions and
19
- * limitations under the License.
20
- */
21
- //#region Declarations
22
- import { exportCSV } from "./csvUtils";
23
- import { exportPDF } from "./pdfUtils";
24
- import { loadModules } from "./loadModules";
25
- import { queryFeaturesByID } from "./queryUtils";
26
- export { ILabel } from "./pdfUtils";
27
- const lineSeparatorChar = "|";
28
- //#endregion
29
- //#region Public functions
30
- /**
31
- * Downloads csv of mailing labels for the provided list of ids
32
- *
33
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
34
- * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
35
- * all attributes are exported
36
- * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
37
- * @param addColumnTitle Indicates if column headings should be included in output
38
- * @returns Promise resolving when function is done
39
- */
40
- export async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
41
- let labels = await consolidateLabels(exportInfos, formatUsingLayerPopup, addColumnTitle, true);
42
- labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
43
- const layerIds = Object.keys(exportInfos);
44
- let layerLabels = [];
45
- labels.forEach(label => {
46
- const id = label[0];
47
- // layerIds are stored as value separator at the end of the values for a given layer
48
- if (layerIds.indexOf(id) < 0) {
49
- layerLabels.push(label);
50
- }
51
- else {
52
- const selectionSetNames = _getSelectionSetNames(exportInfos, new RegExp(`\\b${id}\\b`));
53
- // once we see the layerId we have reached the end of it's values and should export
54
- exportCSV(_createFilename(selectionSetNames), layerLabels);
55
- layerLabels = [];
56
- }
57
- });
58
- return Promise.resolve();
59
- }
60
- /**
61
- * Downloads csv of mailing labels for the provided list of ids
62
- *
63
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
64
- * @param labelPageDescription Provides PDF page layout info
65
- * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
66
- * @param title Title for each page
67
- * @param initialImageDataUrl Data URL of image for first page
68
- * @returns Promise resolving when function is done
69
- */
70
- export async function downloadPDF(exportInfos, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
71
- let labels = await consolidateLabels(exportInfos);
72
- const selectionSetNames = _getSelectionSetNames(exportInfos);
73
- labels =
74
- // Remove empty lines in labels
75
- labels.map(labelLines => labelLines.filter(line => line.length > 0))
76
- // Remove empty labels
77
- .filter(label => label.length > 0);
78
- labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
79
- exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl);
80
- return Promise.resolve();
81
- }
82
- //#endregion
83
- //#region Private functions
84
- /**
85
- * Converts a set of fieldInfos into template lines.
86
- *
87
- * @param fieldInfos Layer's fieldInfos structure
88
- * @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored
89
- * @return Label spec with lines separated by `lineSeparatorChar`
90
- */
91
- export function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity = false) {
92
- const labelSpec = [];
93
- // Every visible attribute is used
94
- fieldInfos.forEach(fieldInfo => {
95
- if (fieldInfo.visible || bypassFieldVisiblity) {
96
- labelSpec.push(`{${fieldInfo.fieldName}}`);
97
- }
98
- });
99
- return labelSpec.join(lineSeparatorChar);
100
- }
101
- ;
102
- /**
103
- * Converts the text of a custom popup into a multiline label specification; conversion splits text into
104
- * lines on <br>s, and removes HTML tags. It does not handle Arcade and related records.
105
- *
106
- * @param popupInfo Layer's popupInfo structure containing description, fieldInfos, and expressionInfos, e.g.,
107
- * "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
108
- * @return Label spec with lines separated by `lineSeparatorChar`
109
- */
110
- export function _convertPopupTextToLabelSpec(popupInfo) {
111
- // Replace <br> variants with the line separator character
112
- popupInfo = popupInfo.replace(/<br\s*\/?>/gi, lineSeparatorChar);
113
- // Replace <p> variants with the line separator character, except in the first position
114
- popupInfo = popupInfo.replace(/<p[^>]*>/gi, lineSeparatorChar).trim().replace(/^\|/, "");
115
- // Remove </p>
116
- popupInfo = popupInfo.replace(/<\/p>/gi, "");
117
- // Replace \n with the line separator character
118
- popupInfo = popupInfo.replace(/\n/gi, "|");
119
- // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
120
- let labelSpec = popupInfo
121
- .replace(/<[\s.]*[^<>]*\/?>/gi, "")
122
- .replace(/\xA0/gi, " ")
123
- .replace(/&lt;/gi, "<")
124
- .replace(/&gt;/gi, ">")
125
- .replace(/&nbsp;/gi, " ");
126
- // Trim each line
127
- labelSpec = labelSpec.replace(/\s*\|\s*/g, "|");
128
- // Remove empty lines
129
- while (labelSpec.match(/\|\|/)) {
130
- labelSpec = labelSpec.replace(/\|\|/, "|");
131
- }
132
- // Remove leading and trailing line feeds
133
- labelSpec = labelSpec.replace(/^\|/, "");
134
- labelSpec = labelSpec.replace(/\|$/, "");
135
- return labelSpec.trim();
136
- }
137
- ;
138
- /**
139
- * Extracts Arcade expressions from the lines of a label format and creates an Arcade executor for each
140
- * referenced expression name.
141
- *
142
- * @param labelFormat Label to examine
143
- * @param layer Layer from which to fetch features
144
- * @return Promise resolving to a set of executors keyed using the expression name
145
- */
146
- async function _createArcadeExecutors(labelFormat, layer) {
147
- const arcadeExecutors = {};
148
- // Are any Arcade expressions in the layer?
149
- if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
150
- return Promise.resolve(arcadeExecutors);
151
- }
152
- // Are there any Arcade expressions in the label format?
153
- const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
154
- const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
155
- if (!arcadeExpressionsMatches) {
156
- return Promise.resolve(arcadeExecutors);
157
- }
158
- // Generate an Arcade executor for each match
159
- const [arcade] = await loadModules(["esri/arcade"]);
160
- const labelingProfile = {
161
- variables: [
162
- {
163
- name: "$feature",
164
- type: "feature"
165
- },
166
- {
167
- name: "$layer",
168
- type: "featureSet"
169
- },
170
- {
171
- name: "$datastore",
172
- type: "featureSetCollection"
173
- },
174
- {
175
- name: "$map",
176
- type: "featureSetCollection"
177
- }
178
- ]
179
- };
180
- const createArcadeExecutorPromises = {};
181
- arcadeExpressionsMatches.forEach((match) => {
182
- const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
183
- (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
184
- if (expressionInfo.name === expressionName) {
185
- createArcadeExecutorPromises[expressionName] =
186
- arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
187
- }
188
- });
189
- });
190
- const promises = Object.values(createArcadeExecutorPromises);
191
- return Promise.all(promises)
192
- .then(executors => {
193
- const expressionNames = Object.keys(createArcadeExecutorPromises);
194
- for (let i = 0; i < expressionNames.length; ++i) {
195
- arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
196
- }
197
- return arcadeExecutors;
198
- });
199
- }
200
- /**
201
- * Creates a title from a list of selection set names.
202
- *
203
- * @param selectionSetNames Names to use in title
204
- * @return Title composed of the selectionSetNames separated by commas; if there are no
205
- * selection set names supplied, "download" is returned
206
- */
207
- export function _createFilename(selectionSetNames) {
208
- // Windows doesn't permit the characters \/:*?"<>|
209
- const title = selectionSetNames.length > 0 ? selectionSetNames.join(", ") : "download";
210
- return title;
211
- }
212
- /**
213
- * Creates relationship queries for each relationship flag in a popup.
214
- * @param layer Layer whose popup is to be examined
215
- * @return Hash of relationships by their id, or null if there are no relationship flags in the
216
- * popup; each relationship has the properties layer and relatedQuery for the related layer
217
- * and the query for that layer
218
- */
219
- export function _createRelationshipQueries(layer) {
220
- const relationships = {};
221
- const relationshipFieldPattern = /\{relationships\/\d+\//gm;
222
- const relationshipIdPattern = /\d+/;
223
- // Test if this popup has any relationship references
224
- const matches = layer.popupTemplate.content[0].text.match(relationshipFieldPattern);
225
- if (matches) {
226
- matches.forEach(match => {
227
- // Add a query to a found relationship if we don't already have one
228
- const id = match.match(relationshipIdPattern)[0];
229
- if (!relationships.hasOwnProperty(id)) {
230
- const relatedQuery = {
231
- outFields: ['*'],
232
- relationshipId: id,
233
- returnGeometry: false
234
- };
235
- relationships[id] = {
236
- layer,
237
- relatedQuery
238
- };
239
- }
240
- });
241
- }
242
- return relationships;
243
- }
244
- /**
245
- * Extracts Arcade expression references from the lines of a label format.
246
- *
247
- * @param labelFormat Label to examine
248
- * @return Array of Arcade expression references, e.g., ["{expression/expr1}", "{expression/expr2}"]
249
- */
250
- export function _getExpressionsFromLabel(labelFormat) {
251
- var _a;
252
- const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
253
- return (_a = labelFormat.match(arcadeExpressionRegExp)) !== null && _a !== void 0 ? _a : [];
254
- }
255
- /**
256
- * Extracts field name expressions from the lines of a label format.
257
- *
258
- * @param labelFormat Label to examine
259
- * @returns Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
260
- */
261
- export function _getFieldsFromLabel(labelFormat) {
262
- // Get all fields
263
- const fieldExpressions = [];
264
- let iStart = 0;
265
- while (iStart < labelFormat.length) {
266
- const iOpen = labelFormat.indexOf("{", iStart); // Find the next open brace
267
- if (iOpen < 0) {
268
- break;
269
- } // No more open braces
270
- const iClose = labelFormat.indexOf("}", iOpen); // Find the matching close brace
271
- if (iClose < 0) {
272
- break;
273
- } // No more close braces
274
- const fieldName = labelFormat.substring(iOpen, iClose + 1); // Extract the field name with braces
275
- fieldExpressions.push(fieldName);
276
- iStart = iClose + 1; // Start looking for the next field name after the close brace
277
- }
278
- // Get the Arcade expressions
279
- const arcadeExpressions = _getExpressionsFromLabel(labelFormat);
280
- // Remove the Arcade expressions from the returned list of field expressions
281
- return fieldExpressions.filter(fieldExpression => arcadeExpressions.indexOf(fieldExpression) < 0);
282
- }
283
- /**
284
- * Prepares an attribute's value by applying domain and type information.
285
- *
286
- * @param attributeValue Value of attribute
287
- * @param attributeType Type of attribute
288
- * @param attributeDomain Domain info for attribute, if any
289
- * @param attributeFormat Format info for attribute, if any
290
- * @param intl esri/intl
291
- * @return Attribute value modified appropriate to domain and type
292
- */
293
- function _prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl) {
294
- if (attributeDomain && attributeDomain.type === "coded-value") {
295
- // "coded-value" domain field
296
- const value = attributeDomain.getName(attributeValue);
297
- return value;
298
- }
299
- else {
300
- // Non-domain field or unsupported domain type
301
- let value = attributeValue;
302
- switch (attributeType) {
303
- case "date":
304
- if (attributeFormat === null || attributeFormat === void 0 ? void 0 : attributeFormat.dateFormat) {
305
- const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat);
306
- value = intl.formatDate(value, dateFormatIntlOptions);
307
- }
308
- else {
309
- value = intl.formatDate(value);
310
- }
311
- // Format date produces odd characters for the space between the time and the AM/PM text,
312
- // e.g., "12/31/1969, 4:00 PM"
313
- value = value.replace(/\xe2\x80\xaf/g, "");
314
- break;
315
- case "double":
316
- case "integer":
317
- case "long":
318
- case "small-integer":
319
- if (attributeFormat) {
320
- const numberFormatIntlOptions = intl.convertNumberFormatToIntlOptions(attributeFormat);
321
- value = intl.formatNumber(value, numberFormatIntlOptions);
322
- }
323
- else {
324
- value = intl.formatNumber(value);
325
- }
326
- break;
327
- }
328
- return value;
329
- }
330
- }
331
- /**
332
- * Creates labels from items.
333
- *
334
- * @param layer Layer from which to fetch features
335
- * @param ids List of ids to download
336
- * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
337
- * all attributes are exported
338
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
339
- * @returns Promise resolving when function is done
340
- */
341
- async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
342
- var _a, _b, _c, _d;
343
- const [intl] = await loadModules(["esri/intl"]);
344
- // Get the features to export
345
- const featureSet = await queryFeaturesByID(ids, layer, [], false);
346
- // Get field data types. Do we have any domain-based fields?
347
- const attributeTypes = {};
348
- const attributeDomains = {};
349
- layer.fields.forEach(field => {
350
- attributeTypes[field.name] = field.type;
351
- attributeDomains[field.name] = field.domain;
352
- });
353
- const attributeFormats = {};
354
- // Get the label formatting, if any
355
- let labelFormat;
356
- let relationshipQueries = {};
357
- let arcadeExecutors = {};
358
- if (layer.popupEnabled) {
359
- layer.popupTemplate.fieldInfos.forEach(
360
- // Extract any format info that we have
361
- fieldInfo => {
362
- if (fieldInfo.format) {
363
- attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
364
- }
365
- });
366
- // What data fields are used in the labels?
367
- // Example labelFormat: ['{NAME}', '{STREET}', '{CITY}, {STATE} {ZIP}']
368
- if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
369
- labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
370
- // If popup is configured with "no attribute information", then no fields will visible
371
- if (labelFormat.length === 0) {
372
- // Can we use the popup title?
373
- // eslint-disable-next-line unicorn/prefer-ternary
374
- if (typeof layer.popupTemplate.title === "string") {
375
- labelFormat = layer.popupTemplate.title;
376
- // Otherwise revert to using attributes
377
- }
378
- else {
379
- labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
380
- }
381
- }
382
- }
383
- else if (formatUsingLayerPopup && ((_d = (_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.content[0]) === null || _d === void 0 ? void 0 : _d.type) === "text") {
384
- labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
385
- // Do we need any relationship queries?
386
- relationshipQueries = _createRelationshipQueries(layer);
387
- // Do we need any Arcade executors?
388
- arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
389
- }
390
- }
391
- // Apply the label format
392
- let labels;
393
- // eslint-disable-next-line unicorn/prefer-ternary
394
- if (labelFormat) {
395
- // Find the label fields that we need to replace with values
396
- const arcadeExpressionMatches = _getExpressionsFromLabel(labelFormat);
397
- const attributeMatches = _getFieldsFromLabel(labelFormat);
398
- // Convert feature attributes into an array of labels
399
- const relationshipKeys = Object.keys(relationshipQueries);
400
- labels = await Promise.all(featureSet.map(async (feature) => {
401
- let labelPrep = labelFormat;
402
- // Replace Arcade expressions in this feature
403
- arcadeExpressionMatches.forEach((match) => {
404
- const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
405
- const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
406
- labelPrep = labelPrep.replace(match, value);
407
- });
408
- // Replace relationship expressions in this feature
409
- const relatedFeatureQueries = [];
410
- const relationshipIds = [];
411
- relationshipKeys.forEach((relationshipId) => {
412
- const relationship = relationshipQueries[relationshipId];
413
- const objectId = feature.attributes[relationship.layer.objectIdField];
414
- const relatedQuery = Object.assign(Object.assign({}, relationship.relatedQuery), { objectIds: [objectId] });
415
- relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery));
416
- relationshipIds.push(relationshipId);
417
- });
418
- // Wait for all of the queries for related records for this label
419
- const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
420
- relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
421
- // We have an object with FeatureSets grouped by source layer or table objectIds
422
- const relationshipId = relationshipIds[i];
423
- // Run through the source layer or table objectIds
424
- Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
425
- // We have a feature set
426
- const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
427
- // Get the values from each feature and replace them in the label
428
- relatedFeatures.forEach(feature => {
429
- // Merge the base and related feature attributes and create the label
430
- // Prefix related feature's attributes with "relationships/<id>/" to match popup
431
- const rePrefix = "\{relationships/" + relationshipId + "/";
432
- const reSuffix = "\}";
433
- const attributes = feature.attributes;
434
- Object.keys(attributes).forEach(attributeName => {
435
- // Replace the value using the attribute name as a relationship
436
- const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
437
- labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
438
- });
439
- });
440
- });
441
- });
442
- // Replace non-Arcade fields in this feature
443
- attributeMatches.forEach((match) => {
444
- const attributeName = match.substring(1, match.length - 1);
445
- const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
446
- labelPrep = labelPrep.replace(match, value);
447
- });
448
- // Split label into lines
449
- let label = labelPrep.split(lineSeparatorChar);
450
- // Trim lines
451
- label = label.map(line => line.trim());
452
- return label;
453
- }));
454
- }
455
- else {
456
- // Export all attributes
457
- labels = featureSet.map(feature => {
458
- return Object.keys(feature.attributes).map((attributeName) => {
459
- const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], null, intl);
460
- return `${value}`;
461
- });
462
- });
463
- }
464
- // Add header names
465
- if (includeHeaderNames) {
466
- let headerNames = [];
467
- if (labelFormat) {
468
- headerNames = labelFormat.replace(/\{/g, "").replace(/\}/g, "").split(lineSeparatorChar);
469
- }
470
- else {
471
- const featuresAttrs = featureSet[0].attributes;
472
- Object.keys(featuresAttrs).forEach(k => {
473
- headerNames.push(k);
474
- });
475
- }
476
- labels.unshift(headerNames);
477
- }
478
- return Promise.resolve(labels);
479
- }
480
- /**
481
- * Remove any duplicate labels
482
- *
483
- * @param labels Labels to evaluate for duplicates
484
- * @returns labels with duplicates removed
485
- */
486
- export function removeDuplicateLabels(labels) {
487
- const labelsAsStrings = labels.map(label => JSON.stringify(label));
488
- const uniqueLabels = new Set(labelsAsStrings);
489
- return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
490
- }
491
- /**
492
- * Extract selectionSetNames from the provided exportInfos
493
- *
494
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
495
- * @returns selectionSetNames that will be used for export filenames
496
- */
497
- function _getSelectionSetNames(exportInfos, id = /.+/) {
498
- let selectionSetNames = [];
499
- Object.keys(exportInfos).forEach(k => {
500
- const exportInfo = exportInfos[k];
501
- if (id.test(k)) {
502
- selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
503
- }
504
- });
505
- return selectionSetNames;
506
- }
507
- /**
508
- * Create and consolidate labels from all layers
509
- *
510
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
511
- * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
512
- * all attributes are exported
513
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
514
- * @returns selectionSetNames that will be used for export filenames
515
- */
516
- export async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
517
- const labelRequests = [];
518
- Object.keys(exportInfos).forEach(k => {
519
- var _a;
520
- const labelInfo = exportInfos[k];
521
- labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
522
- if (isCSVExport) {
523
- // add the layer id as a temp value separator that we can use to split values for CSV export
524
- labelRequests.push(Promise.resolve([[k]]));
525
- }
526
- });
527
- const labels = await Promise.all(labelRequests);
528
- return labels.reduce((prev, cur) => prev.concat(cur), []);
529
- }
530
- //#endregion
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /** @license
7
+ * Copyright 2022 Esri
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ //#region Declarations
22
+ import { exportCSV } from "./csvUtils";
23
+ import { exportPDF } from "./pdfUtils";
24
+ import { loadModules } from "./loadModules";
25
+ import { queryFeaturesByID } from "./queryUtils";
26
+ export { ILabel } from "./pdfUtils";
27
+ const lineSeparatorChar = "|";
28
+ //#endregion
29
+ //#region Public functions
30
+ /**
31
+ * Downloads csv of mailing labels for the provided list of ids
32
+ *
33
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
34
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
35
+ * all attributes are exported
36
+ * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
37
+ * @param addColumnTitle Indicates if column headings should be included in output
38
+ * @returns Promise resolving when function is done
39
+ */
40
+ export async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
41
+ let labels = await consolidateLabels(exportInfos, formatUsingLayerPopup, addColumnTitle, true);
42
+ labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
43
+ const layerIds = Object.keys(exportInfos);
44
+ let layerLabels = [];
45
+ labels.forEach(label => {
46
+ const id = label[0];
47
+ // layerIds are stored as value separator at the end of the values for a given layer
48
+ if (layerIds.indexOf(id) < 0) {
49
+ layerLabels.push(label);
50
+ }
51
+ else {
52
+ const selectionSetNames = _getSelectionSetNames(exportInfos, new RegExp(`\\b${id}\\b`));
53
+ // once we see the layerId we have reached the end of it's values and should export
54
+ exportCSV(_createFilename(selectionSetNames), layerLabels);
55
+ layerLabels = [];
56
+ }
57
+ });
58
+ return Promise.resolve();
59
+ }
60
+ /**
61
+ * Downloads csv of mailing labels for the provided list of ids
62
+ *
63
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
64
+ * @param labelPageDescription Provides PDF page layout info
65
+ * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
66
+ * @param title Title for each page
67
+ * @param initialImageDataUrl Data URL of image for first page
68
+ * @returns Promise resolving when function is done
69
+ */
70
+ export async function downloadPDF(exportInfos, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
71
+ let labels = await consolidateLabels(exportInfos);
72
+ const selectionSetNames = _getSelectionSetNames(exportInfos);
73
+ labels =
74
+ // Remove empty lines in labels
75
+ labels.map(labelLines => labelLines.filter(line => line.length > 0))
76
+ // Remove empty labels
77
+ .filter(label => label.length > 0);
78
+ labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
79
+ exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl);
80
+ return Promise.resolve();
81
+ }
82
+ //#endregion
83
+ //#region Private functions
84
+ /**
85
+ * Converts a set of fieldInfos into template lines.
86
+ *
87
+ * @param fieldInfos Layer's fieldInfos structure
88
+ * @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored
89
+ * @return Label spec with lines separated by `lineSeparatorChar`
90
+ */
91
+ export function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity = false) {
92
+ const labelSpec = [];
93
+ // Every visible attribute is used
94
+ fieldInfos.forEach(fieldInfo => {
95
+ if (fieldInfo.visible || bypassFieldVisiblity) {
96
+ labelSpec.push(`{${fieldInfo.fieldName}}`);
97
+ }
98
+ });
99
+ return labelSpec.join(lineSeparatorChar);
100
+ }
101
+ ;
102
+ /**
103
+ * Converts the text of a custom popup into a multiline label specification; conversion splits text into
104
+ * lines on <br>s, and removes HTML tags. It does not handle Arcade and related records.
105
+ *
106
+ * @param popupInfo Layer's popupInfo structure containing description, fieldInfos, and expressionInfos, e.g.,
107
+ * "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
108
+ * @return Label spec with lines separated by `lineSeparatorChar`
109
+ */
110
+ export function _convertPopupTextToLabelSpec(popupInfo) {
111
+ // Replace <br> variants with the line separator character
112
+ popupInfo = popupInfo.replace(/<br\s*\/?>/gi, lineSeparatorChar);
113
+ // Replace <p> variants with the line separator character, except in the first position
114
+ popupInfo = popupInfo.replace(/<p[^>]*>/gi, lineSeparatorChar).trim().replace(/^\|/, "");
115
+ // Remove </p>
116
+ popupInfo = popupInfo.replace(/<\/p>/gi, "");
117
+ // Replace \n with the line separator character
118
+ popupInfo = popupInfo.replace(/\n/gi, "|");
119
+ // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
120
+ let labelSpec = popupInfo
121
+ .replace(/<[\s.]*[^<>]*\/?>/gi, "")
122
+ .replace(/\xA0/gi, " ")
123
+ .replace(/&lt;/gi, "<")
124
+ .replace(/&gt;/gi, ">")
125
+ .replace(/&nbsp;/gi, " ");
126
+ // Trim each line
127
+ labelSpec = labelSpec.replace(/\s*\|\s*/g, "|");
128
+ // Remove empty lines
129
+ while (labelSpec.match(/\|\|/)) {
130
+ labelSpec = labelSpec.replace(/\|\|/, "|");
131
+ }
132
+ // Remove leading and trailing line feeds
133
+ labelSpec = labelSpec.replace(/^\|/, "");
134
+ labelSpec = labelSpec.replace(/\|$/, "");
135
+ return labelSpec.trim();
136
+ }
137
+ ;
138
+ /**
139
+ * Extracts Arcade expressions from the lines of a label format and creates an Arcade executor for each
140
+ * referenced expression name.
141
+ *
142
+ * @param labelFormat Label to examine
143
+ * @param layer Layer from which to fetch features
144
+ * @return Promise resolving to a set of executors keyed using the expression name
145
+ */
146
+ async function _createArcadeExecutors(labelFormat, layer) {
147
+ const arcadeExecutors = {};
148
+ // Are any Arcade expressions in the layer?
149
+ if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
150
+ return Promise.resolve(arcadeExecutors);
151
+ }
152
+ // Are there any Arcade expressions in the label format?
153
+ const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
154
+ const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
155
+ if (!arcadeExpressionsMatches) {
156
+ return Promise.resolve(arcadeExecutors);
157
+ }
158
+ // Generate an Arcade executor for each match
159
+ const [arcade] = await loadModules(["esri/arcade"]);
160
+ const labelingProfile = {
161
+ variables: [
162
+ {
163
+ name: "$feature",
164
+ type: "feature"
165
+ },
166
+ {
167
+ name: "$layer",
168
+ type: "featureSet"
169
+ },
170
+ {
171
+ name: "$datastore",
172
+ type: "featureSetCollection"
173
+ },
174
+ {
175
+ name: "$map",
176
+ type: "featureSetCollection"
177
+ }
178
+ ]
179
+ };
180
+ const createArcadeExecutorPromises = {};
181
+ arcadeExpressionsMatches.forEach((match) => {
182
+ const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
183
+ (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
184
+ if (expressionInfo.name === expressionName) {
185
+ createArcadeExecutorPromises[expressionName] =
186
+ arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
187
+ }
188
+ });
189
+ });
190
+ const promises = Object.values(createArcadeExecutorPromises);
191
+ return Promise.all(promises)
192
+ .then(executors => {
193
+ const expressionNames = Object.keys(createArcadeExecutorPromises);
194
+ for (let i = 0; i < expressionNames.length; ++i) {
195
+ arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
196
+ }
197
+ return arcadeExecutors;
198
+ });
199
+ }
200
+ /**
201
+ * Creates a title from a list of selection set names.
202
+ *
203
+ * @param selectionSetNames Names to use in title
204
+ * @return Title composed of the selectionSetNames separated by commas; if there are no
205
+ * selection set names supplied, "download" is returned
206
+ */
207
+ export function _createFilename(selectionSetNames) {
208
+ // Windows doesn't permit the characters \/:*?"<>|
209
+ const title = selectionSetNames.length > 0 ? selectionSetNames.join(", ") : "download";
210
+ return title;
211
+ }
212
+ /**
213
+ * Creates relationship queries for each relationship flag in a popup.
214
+ * @param layer Layer whose popup is to be examined
215
+ * @return Hash of relationships by their id, or null if there are no relationship flags in the
216
+ * popup; each relationship has the properties layer and relatedQuery for the related layer
217
+ * and the query for that layer
218
+ */
219
+ export function _createRelationshipQueries(layer) {
220
+ const relationships = {};
221
+ const relationshipFieldPattern = /\{relationships\/\d+\//gm;
222
+ const relationshipIdPattern = /\d+/;
223
+ // Test if this popup has any relationship references
224
+ const matches = layer.popupTemplate.content[0].text.match(relationshipFieldPattern);
225
+ if (matches) {
226
+ matches.forEach(match => {
227
+ // Add a query to a found relationship if we don't already have one
228
+ const id = match.match(relationshipIdPattern)[0];
229
+ if (!relationships.hasOwnProperty(id)) {
230
+ const relatedQuery = {
231
+ outFields: ['*'],
232
+ relationshipId: id,
233
+ returnGeometry: false
234
+ };
235
+ relationships[id] = {
236
+ layer,
237
+ relatedQuery
238
+ };
239
+ }
240
+ });
241
+ }
242
+ return relationships;
243
+ }
244
+ /**
245
+ * Extracts Arcade expression references from the lines of a label format.
246
+ *
247
+ * @param labelFormat Label to examine
248
+ * @return Array of Arcade expression references, e.g., ["{expression/expr1}", "{expression/expr2}"]
249
+ */
250
+ export function _getExpressionsFromLabel(labelFormat) {
251
+ var _a;
252
+ const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
253
+ return (_a = labelFormat.match(arcadeExpressionRegExp)) !== null && _a !== void 0 ? _a : [];
254
+ }
255
+ /**
256
+ * Extracts field name expressions from the lines of a label format.
257
+ *
258
+ * @param labelFormat Label to examine
259
+ * @returns Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
260
+ */
261
+ export function _getFieldsFromLabel(labelFormat) {
262
+ // Get all fields
263
+ const fieldExpressions = [];
264
+ let iStart = 0;
265
+ while (iStart < labelFormat.length) {
266
+ const iOpen = labelFormat.indexOf("{", iStart); // Find the next open brace
267
+ if (iOpen < 0) {
268
+ break;
269
+ } // No more open braces
270
+ const iClose = labelFormat.indexOf("}", iOpen); // Find the matching close brace
271
+ if (iClose < 0) {
272
+ break;
273
+ } // No more close braces
274
+ const fieldName = labelFormat.substring(iOpen, iClose + 1); // Extract the field name with braces
275
+ fieldExpressions.push(fieldName);
276
+ iStart = iClose + 1; // Start looking for the next field name after the close brace
277
+ }
278
+ // Get the Arcade expressions
279
+ const arcadeExpressions = _getExpressionsFromLabel(labelFormat);
280
+ // Remove the Arcade expressions from the returned list of field expressions
281
+ return fieldExpressions.filter(fieldExpression => arcadeExpressions.indexOf(fieldExpression) < 0);
282
+ }
283
+ /**
284
+ * Prepares an attribute's value by applying domain and type information.
285
+ *
286
+ * @param attributeValue Value of attribute
287
+ * @param attributeType Type of attribute
288
+ * @param attributeDomain Domain info for attribute, if any
289
+ * @param attributeFormat Format info for attribute, if any
290
+ * @param intl esri/intl
291
+ * @return Attribute value modified appropriate to domain and type
292
+ */
293
+ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl) {
294
+ if (attributeDomain && attributeDomain.type === "coded-value") {
295
+ // "coded-value" domain field
296
+ const value = attributeDomain.getName(attributeValue);
297
+ return value;
298
+ }
299
+ else {
300
+ // Non-domain field or unsupported domain type
301
+ let value = attributeValue;
302
+ switch (attributeType) {
303
+ case "date":
304
+ if (attributeFormat === null || attributeFormat === void 0 ? void 0 : attributeFormat.dateFormat) {
305
+ const dateFormatIntlOptions = intl.convertDateFormatToIntlOptions(attributeFormat.dateFormat);
306
+ value = intl.formatDate(value, dateFormatIntlOptions);
307
+ }
308
+ else {
309
+ value = intl.formatDate(value);
310
+ }
311
+ // Format date produces odd characters for the space between the time and the AM/PM text,
312
+ // e.g., "12/31/1969, 4:00 PM"
313
+ value = value.replace(/\xe2\x80\xaf/g, "");
314
+ break;
315
+ case "double":
316
+ case "integer":
317
+ case "long":
318
+ case "small-integer":
319
+ if (attributeFormat) {
320
+ const numberFormatIntlOptions = intl.convertNumberFormatToIntlOptions(attributeFormat);
321
+ value = intl.formatNumber(value, numberFormatIntlOptions);
322
+ }
323
+ else {
324
+ value = intl.formatNumber(value);
325
+ }
326
+ break;
327
+ }
328
+ return value;
329
+ }
330
+ }
331
+ /**
332
+ * Creates labels from items.
333
+ *
334
+ * @param layer Layer from which to fetch features
335
+ * @param ids List of ids to download
336
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
337
+ * all attributes are exported
338
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
339
+ * @returns Promise resolving when function is done
340
+ */
341
+ async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
342
+ var _a, _b, _c, _d;
343
+ const [intl] = await loadModules(["esri/intl"]);
344
+ // Get the features to export
345
+ const featureSet = await queryFeaturesByID(ids, layer, [], false);
346
+ // Get field data types. Do we have any domain-based fields?
347
+ const attributeTypes = {};
348
+ const attributeDomains = {};
349
+ layer.fields.forEach(field => {
350
+ attributeTypes[field.name] = field.type;
351
+ attributeDomains[field.name] = field.domain;
352
+ });
353
+ const attributeFormats = {};
354
+ // Get the label formatting, if any
355
+ let labelFormat;
356
+ let relationshipQueries = {};
357
+ let arcadeExecutors = {};
358
+ if (layer.popupEnabled) {
359
+ layer.popupTemplate.fieldInfos.forEach(
360
+ // Extract any format info that we have
361
+ fieldInfo => {
362
+ if (fieldInfo.format) {
363
+ attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
364
+ }
365
+ });
366
+ // What data fields are used in the labels?
367
+ // Example labelFormat: ['{NAME}', '{STREET}', '{CITY}, {STATE} {ZIP}']
368
+ if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
369
+ labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
370
+ // If popup is configured with "no attribute information", then no fields will visible
371
+ if (labelFormat.length === 0) {
372
+ // Can we use the popup title?
373
+ // eslint-disable-next-line unicorn/prefer-ternary
374
+ if (typeof layer.popupTemplate.title === "string") {
375
+ labelFormat = layer.popupTemplate.title;
376
+ // Otherwise revert to using attributes
377
+ }
378
+ else {
379
+ labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
380
+ }
381
+ }
382
+ }
383
+ else if (formatUsingLayerPopup && ((_d = (_c = layer.popupTemplate) === null || _c === void 0 ? void 0 : _c.content[0]) === null || _d === void 0 ? void 0 : _d.type) === "text") {
384
+ labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
385
+ // Do we need any relationship queries?
386
+ relationshipQueries = _createRelationshipQueries(layer);
387
+ // Do we need any Arcade executors?
388
+ arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
389
+ }
390
+ }
391
+ // Apply the label format
392
+ let labels;
393
+ // eslint-disable-next-line unicorn/prefer-ternary
394
+ if (labelFormat) {
395
+ // Find the label fields that we need to replace with values
396
+ const arcadeExpressionMatches = _getExpressionsFromLabel(labelFormat);
397
+ const attributeMatches = _getFieldsFromLabel(labelFormat);
398
+ // Convert feature attributes into an array of labels
399
+ const relationshipKeys = Object.keys(relationshipQueries);
400
+ labels = await Promise.all(featureSet.map(async (feature) => {
401
+ let labelPrep = labelFormat;
402
+ // Replace Arcade expressions in this feature
403
+ arcadeExpressionMatches.forEach((match) => {
404
+ const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
405
+ const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
406
+ labelPrep = labelPrep.replace(match, value);
407
+ });
408
+ // Replace relationship expressions in this feature
409
+ const relatedFeatureQueries = [];
410
+ const relationshipIds = [];
411
+ relationshipKeys.forEach((relationshipId) => {
412
+ const relationship = relationshipQueries[relationshipId];
413
+ const objectId = feature.attributes[relationship.layer.objectIdField];
414
+ const relatedQuery = Object.assign(Object.assign({}, relationship.relatedQuery), { objectIds: [objectId] });
415
+ relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery));
416
+ relationshipIds.push(relationshipId);
417
+ });
418
+ // Wait for all of the queries for related records for this label
419
+ const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
420
+ relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
421
+ // We have an object with FeatureSets grouped by source layer or table objectIds
422
+ const relationshipId = relationshipIds[i];
423
+ // Run through the source layer or table objectIds
424
+ Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
425
+ // We have a feature set
426
+ const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
427
+ // Get the values from each feature and replace them in the label
428
+ relatedFeatures.forEach(feature => {
429
+ // Merge the base and related feature attributes and create the label
430
+ // Prefix related feature's attributes with "relationships/<id>/" to match popup
431
+ const rePrefix = "\{relationships/" + relationshipId + "/";
432
+ const reSuffix = "\}";
433
+ const attributes = feature.attributes;
434
+ Object.keys(attributes).forEach(attributeName => {
435
+ // Replace the value using the attribute name as a relationship
436
+ const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
437
+ labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
438
+ });
439
+ });
440
+ });
441
+ });
442
+ // Replace non-Arcade fields in this feature
443
+ attributeMatches.forEach((match) => {
444
+ const attributeName = match.substring(1, match.length - 1);
445
+ const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
446
+ labelPrep = labelPrep.replace(match, value);
447
+ });
448
+ // Split label into lines
449
+ let label = labelPrep.split(lineSeparatorChar);
450
+ // Trim lines
451
+ label = label.map(line => line.trim());
452
+ return label;
453
+ }));
454
+ }
455
+ else {
456
+ // Export all attributes
457
+ labels = featureSet.map(feature => {
458
+ return Object.keys(feature.attributes).map((attributeName) => {
459
+ const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], null, intl);
460
+ return `${value}`;
461
+ });
462
+ });
463
+ }
464
+ // Add header names
465
+ if (includeHeaderNames) {
466
+ let headerNames = [];
467
+ if (labelFormat) {
468
+ headerNames = labelFormat.replace(/\{/g, "").replace(/\}/g, "").split(lineSeparatorChar);
469
+ }
470
+ else {
471
+ const featuresAttrs = featureSet[0].attributes;
472
+ Object.keys(featuresAttrs).forEach(k => {
473
+ headerNames.push(k);
474
+ });
475
+ }
476
+ labels.unshift(headerNames);
477
+ }
478
+ return Promise.resolve(labels);
479
+ }
480
+ /**
481
+ * Remove any duplicate labels
482
+ *
483
+ * @param labels Labels to evaluate for duplicates
484
+ * @returns labels with duplicates removed
485
+ */
486
+ export function removeDuplicateLabels(labels) {
487
+ const labelsAsStrings = labels.map(label => JSON.stringify(label));
488
+ const uniqueLabels = new Set(labelsAsStrings);
489
+ return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
490
+ }
491
+ /**
492
+ * Extract selectionSetNames from the provided exportInfos
493
+ *
494
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
495
+ * @returns selectionSetNames that will be used for export filenames
496
+ */
497
+ function _getSelectionSetNames(exportInfos, id = /.+/) {
498
+ let selectionSetNames = [];
499
+ Object.keys(exportInfos).forEach(k => {
500
+ const exportInfo = exportInfos[k];
501
+ if (id.test(k)) {
502
+ selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
503
+ }
504
+ });
505
+ return selectionSetNames;
506
+ }
507
+ /**
508
+ * Create and consolidate labels from all layers
509
+ *
510
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
511
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
512
+ * all attributes are exported
513
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
514
+ * @returns selectionSetNames that will be used for export filenames
515
+ */
516
+ export async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
517
+ const labelRequests = [];
518
+ Object.keys(exportInfos).forEach(k => {
519
+ var _a;
520
+ const labelInfo = exportInfos[k];
521
+ labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
522
+ if (isCSVExport) {
523
+ // add the layer id as a temp value separator that we can use to split values for CSV export
524
+ labelRequests.push(Promise.resolve([[k]]));
525
+ }
526
+ });
527
+ const labels = await Promise.all(labelRequests);
528
+ return labels.reduce((prev, cur) => prev.concat(cur), []);
529
+ }
530
+ //#endregion