@esri/solutions-components 0.6.8 → 0.6.9

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 (775) hide show
  1. package/dist/assets/t9n/info-card/resources.json +1 -1
  2. package/dist/assets/t9n/info-card/resources_en.json +1 -1
  3. package/dist/assets/t9n/map-tools/resources.json +1 -1
  4. package/dist/assets/t9n/map-tools/resources_en.json +1 -1
  5. package/dist/cjs/{ExpandToggle-e6a0d66e.js → ExpandToggle-c5690e14.js} +5 -5
  6. package/dist/cjs/{FloatingArrow-0119ec6e.js → FloatingArrow-675171a6.js} +1 -1
  7. package/dist/cjs/{Heading-521f39ac.js → Heading-3712677d.js} +1 -1
  8. package/dist/cjs/{app-globals-72576a1c.js → app-globals-a62ad1ad.js} +3 -3
  9. package/dist/cjs/{ar-1718ae57.js → ar-1dc23c0a.js} +14 -14
  10. package/dist/cjs/{array-46bb7df1.js → array-2db3fd4a.js} +1 -1
  11. package/dist/cjs/{basemap-gallery_4.cjs.entry.js → basemap-gallery_5.cjs.entry.js} +115 -6
  12. package/dist/cjs/{bg-190a176c.js → bg-4024b354.js} +14 -14
  13. package/dist/cjs/{bs-919e0de8.js → bs-3134d711.js} +14 -14
  14. package/dist/cjs/buffer-tools_4.cjs.entry.js +15 -15
  15. package/dist/cjs/{ca-94918e06.js → ca-8d6647d3.js} +14 -14
  16. package/dist/cjs/calcite-accordion-item.cjs.entry.js +7 -12
  17. package/dist/cjs/calcite-accordion.cjs.entry.js +1 -6
  18. package/dist/cjs/calcite-action-bar.cjs.entry.js +31 -26
  19. package/dist/cjs/calcite-action-group_2.cjs.entry.js +18 -20
  20. package/dist/cjs/calcite-action-pad.cjs.entry.js +20 -16
  21. package/dist/cjs/calcite-action_2.cjs.entry.js +17 -22
  22. package/dist/cjs/calcite-alert.cjs.entry.js +11 -11
  23. package/dist/cjs/calcite-avatar.cjs.entry.js +6 -6
  24. package/dist/cjs/calcite-block-section.cjs.entry.js +9 -9
  25. package/dist/cjs/calcite-block.cjs.entry.js +12 -12
  26. package/dist/cjs/calcite-button.cjs.entry.js +12 -12
  27. package/dist/cjs/calcite-card.cjs.entry.js +9 -9
  28. package/dist/cjs/calcite-checkbox.cjs.entry.js +8 -13
  29. package/dist/cjs/calcite-chip-group.cjs.entry.js +6 -11
  30. package/dist/cjs/calcite-chip.cjs.entry.js +11 -11
  31. package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +8 -8
  32. package/dist/cjs/calcite-color-picker.cjs.entry.js +12 -12
  33. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +5 -5
  34. package/dist/cjs/calcite-combobox_6.cjs.entry.js +21 -26
  35. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +10 -10
  36. package/dist/cjs/calcite-date-picker.cjs.entry.js +11 -11
  37. package/dist/cjs/calcite-fab.cjs.entry.js +6 -6
  38. package/dist/cjs/calcite-filter_5.cjs.entry.js +16 -16
  39. package/dist/cjs/calcite-flow-item.cjs.entry.js +11 -11
  40. package/dist/cjs/calcite-flow.cjs.entry.js +3 -3
  41. package/dist/cjs/calcite-graph.cjs.entry.js +5 -10
  42. package/dist/cjs/calcite-icon.cjs.entry.js +6 -6
  43. package/dist/cjs/calcite-inline-editable.cjs.entry.js +11 -11
  44. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +17 -17
  45. package/dist/cjs/calcite-input-number_2.cjs.entry.js +13 -13
  46. package/dist/cjs/{calcite-input-time-picker-b99baf7b.js → calcite-input-time-picker-4efcd55d.js} +60 -60
  47. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +14 -14
  48. package/dist/cjs/calcite-input-time-zone.cjs.entry.js +12 -12
  49. package/dist/cjs/calcite-input_2.cjs.entry.js +12 -12
  50. package/dist/cjs/calcite-label.cjs.entry.js +5 -5
  51. package/dist/cjs/calcite-link.cjs.entry.js +5 -5
  52. package/dist/cjs/calcite-list-item-group.cjs.entry.js +3 -3
  53. package/dist/cjs/calcite-loader.cjs.entry.js +1 -1
  54. package/dist/cjs/calcite-menu-item.cjs.entry.js +9 -9
  55. package/dist/cjs/calcite-menu.cjs.entry.js +9 -9
  56. package/dist/cjs/calcite-modal.cjs.entry.js +12 -12
  57. package/dist/cjs/calcite-navigation-logo.cjs.entry.js +2 -2
  58. package/dist/cjs/calcite-navigation-user.cjs.entry.js +2 -2
  59. package/dist/cjs/calcite-navigation.cjs.entry.js +5 -5
  60. package/dist/cjs/calcite-notice.cjs.entry.js +11 -11
  61. package/dist/cjs/calcite-option_2.cjs.entry.js +9 -9
  62. package/dist/cjs/calcite-pagination.cjs.entry.js +9 -9
  63. package/dist/cjs/calcite-panel_2.cjs.entry.js +14 -14
  64. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +7 -7
  65. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +12 -12
  66. package/dist/cjs/calcite-pick-list.cjs.entry.js +10 -10
  67. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +2 -7
  68. package/dist/cjs/calcite-radio-button.cjs.entry.js +9 -9
  69. package/dist/cjs/calcite-rating.cjs.entry.js +12 -12
  70. package/dist/cjs/calcite-scrim.cjs.entry.js +8 -8
  71. package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +8 -8
  72. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +6 -6
  73. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +29 -32
  74. package/dist/cjs/calcite-sortable-list.cjs.entry.js +7 -7
  75. package/dist/cjs/calcite-split-button.cjs.entry.js +3 -3
  76. package/dist/cjs/calcite-stepper-item.cjs.entry.js +8 -8
  77. package/dist/cjs/calcite-stepper.cjs.entry.js +3 -8
  78. package/dist/cjs/calcite-switch.cjs.entry.js +8 -8
  79. package/dist/cjs/calcite-text-area.cjs.entry.js +15 -15
  80. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +1 -1
  81. package/dist/cjs/calcite-tile-select.cjs.entry.js +4 -4
  82. package/dist/cjs/calcite-tile.cjs.entry.js +7 -7
  83. package/dist/cjs/calcite-time-picker.cjs.entry.js +10 -10
  84. package/dist/cjs/calcite-tip-manager.cjs.entry.js +9 -9
  85. package/dist/cjs/calcite-tip.cjs.entry.js +10 -10
  86. package/dist/cjs/calcite-tooltip.cjs.entry.js +9 -9
  87. package/dist/cjs/calcite-tree_3.cjs.entry.js +8 -8
  88. package/dist/cjs/{card-manager_4.cjs.entry.js → card-manager_3.cjs.entry.js} +47 -93
  89. package/dist/cjs/{conditionalSlot-85b3a6b3.js → conditionalSlot-126d557f.js} +2 -2
  90. package/dist/cjs/crowdsource-manager.cjs.entry.js +23 -11
  91. package/dist/cjs/{cs-fe27e732.js → cs-b24cd994.js} +14 -14
  92. package/dist/cjs/{da-1b7f3440.js → da-9dee3a1f.js} +14 -14
  93. package/dist/cjs/{date-cec32b0e.js → date-0fec6f6b.js} +2 -2
  94. package/dist/cjs/{de-0dc1effa.js → de-1a98b964.js} +14 -14
  95. package/dist/cjs/{de-at-acdc4d01.js → de-at-782e6c7f.js} +14 -14
  96. package/dist/cjs/{de-ch-778a0d99.js → de-ch-d5c95469.js} +14 -14
  97. package/dist/cjs/{dom-c1807fc1.js → dom-456f9f13.js} +3 -3
  98. package/dist/cjs/{downloadUtils-a8c530f7.js → downloadUtils-1f057ec0.js} +249 -262
  99. package/dist/cjs/edit-card_2.cjs.entry.js +6 -5
  100. package/dist/cjs/{el-fdbc9bc1.js → el-af28cafa.js} +14 -14
  101. package/dist/cjs/{en-au-0ff50cdf.js → en-au-109f3119.js} +14 -14
  102. package/dist/cjs/{en-ca-284e9368.js → en-ca-22890a25.js} +14 -14
  103. package/dist/cjs/{en-gb-0fcae8ae.js → en-gb-dc23c9dd.js} +14 -14
  104. package/dist/cjs/{es-cd54acba.js → es-3f353355.js} +14 -14
  105. package/dist/cjs/{es-mx-2078d50f.js → es-mx-ccb57857.js} +14 -14
  106. package/dist/cjs/{et-17f323f6.js → et-119c047b.js} +14 -14
  107. package/dist/cjs/{fi-82f27397.js → fi-13096d81.js} +14 -14
  108. package/dist/cjs/{filter-bda212b4.js → filter-8d8c453e.js} +1 -1
  109. package/dist/cjs/{floating-ui-8d10af88.js → floating-ui-2b0fbba0.js} +2 -2
  110. package/dist/cjs/{focusTrapComponent-a22fc6a8.js → focusTrapComponent-d8412ddc.js} +4 -4
  111. package/dist/cjs/{form-9d8ebf06.js → form-7c6054c3.js} +2 -2
  112. package/dist/cjs/{fr-af7e1192.js → fr-563dfcd5.js} +14 -14
  113. package/dist/cjs/{fr-ch-5e1f2c28.js → fr-ch-f66cfd49.js} +14 -14
  114. package/dist/cjs/{guid-3abe3cc6.js → guid-d1123d5e.js} +1 -1
  115. package/dist/cjs/{he-ea851800.js → he-d8253a1a.js} +14 -14
  116. package/dist/cjs/{hi-5212a21d.js → hi-58c7c3b5.js} +14 -14
  117. package/dist/cjs/{hr-4eecb2ed.js → hr-5aba114a.js} +14 -14
  118. package/dist/cjs/{hu-6b527d8e.js → hu-38c15915.js} +14 -14
  119. package/dist/cjs/{id-d78f12ec.js → id-3a94c080.js} +14 -14
  120. package/dist/cjs/{index.es-4542630e.js → index.es-a1507f1c.js} +3 -3
  121. package/dist/cjs/{interactive-2fe0f43a.js → interactive-48299817.js} +2 -2
  122. package/dist/cjs/{it-15242935.js → it-88834555.js} +14 -14
  123. package/dist/cjs/{it-ch-9dc21944.js → it-ch-970563cd.js} +14 -14
  124. package/dist/cjs/{ja-f702cfc2.js → ja-13d4b1ae.js} +14 -14
  125. package/dist/cjs/{key-b8b55ea3.js → key-8de93212.js} +1 -1
  126. package/dist/cjs/{ko-aa9bde2c.js → ko-10cbdd98.js} +14 -14
  127. package/dist/cjs/{label-6e33e971.js → label-166e2d81.js} +3 -3
  128. package/dist/cjs/layout-manager.cjs.entry.js +93 -0
  129. package/dist/cjs/{loadModules-31cab7ac.js → loadModules-c5490589.js} +1 -1
  130. package/dist/cjs/{loadable-bac9cdd6.js → loadable-6925d840.js} +1 -1
  131. package/dist/cjs/loader.cjs.js +3 -3
  132. package/dist/cjs/{locale-c63a1b57.js → locale-79c3d30e.js} +5 -5
  133. package/dist/cjs/{locale-d15cd743.js → locale-88c21da2.js} +15 -15
  134. package/dist/cjs/{lt-e741ff2f.js → lt-3fc5017a.js} +14 -14
  135. package/dist/cjs/{lv-92d6768e.js → lv-9d9cf999.js} +14 -14
  136. package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
  137. package/dist/cjs/{math-5132d9bd.js → math-f28069f3.js} +1 -1
  138. package/dist/cjs/{mk-b209ac0d.js → mk-9f79812b.js} +14 -14
  139. package/dist/cjs/{nb-db13e666.js → nb-673fe3fd.js} +14 -14
  140. package/dist/cjs/{nl-fcd9e0c5.js → nl-4dc0504f.js} +14 -14
  141. package/dist/cjs/{observers-f5fa975b.js → observers-9912f013.js} +1 -1
  142. package/dist/cjs/{openCloseComponent-5d70fcd8.js → openCloseComponent-05cb01ff.js} +9 -4
  143. package/dist/cjs/{pl-87c83322.js → pl-d809a6c3.js} +14 -14
  144. package/dist/cjs/{pt-b0b5f472.js → pt-78eefbc7.js} +14 -14
  145. package/dist/cjs/{pt-br-03333e90.js → pt-br-55f1893a.js} +14 -14
  146. package/dist/cjs/public-notification.cjs.entry.js +3 -3
  147. package/dist/cjs/{resources-60c27547.js → resources-030a27ed.js} +1 -1
  148. package/dist/cjs/{resources-91409a5d.js → resources-10d29626.js} +1 -1
  149. package/dist/cjs/{resources-9f2b33ee.js → resources-24b6eee0.js} +1 -1
  150. package/dist/cjs/{resources-4da89742.js → resources-2b51cf4c.js} +1 -1
  151. package/dist/cjs/{resources-e1258e8a.js → resources-8f4e8ba8.js} +1 -1
  152. package/dist/cjs/{resources-77713c2e.js → resources-993f6faf.js} +1 -1
  153. package/dist/cjs/{resources-2901b608.js → resources-a2e2a544.js} +1 -1
  154. package/dist/cjs/{resources-c913200c.js → resources-acf9a7ea.js} +1 -1
  155. package/dist/cjs/{resources-8233a151.js → resources-caca31c2.js} +1 -1
  156. package/dist/cjs/{ro-c3661b73.js → ro-f0cff196.js} +14 -14
  157. package/dist/cjs/{ru-8dd3fd58.js → ru-5e9b37f9.js} +14 -14
  158. package/dist/cjs/{shared-list-render-c0adb192.js → shared-list-render-9bbcb306.js} +6 -6
  159. package/dist/cjs/{sk-151d9acf.js → sk-322cd349.js} +14 -14
  160. package/dist/cjs/{sl-9b45a152.js → sl-fd948e50.js} +14 -14
  161. package/dist/cjs/solution-configuration.cjs.entry.js +1 -1
  162. package/dist/cjs/solution-contents_3.cjs.entry.js +1 -1
  163. package/dist/cjs/solutions-components.cjs.js +3 -3
  164. package/dist/cjs/{sortableComponent-58679f07.js → sortableComponent-70bf79de.js} +2 -2
  165. package/dist/cjs/{sr-186bf15c.js → sr-f0058b24.js} +14 -14
  166. package/dist/cjs/{sv-a93fee0c.js → sv-8a8378bf.js} +14 -14
  167. package/dist/cjs/{t9n-1d032c30.js → t9n-62d807df.js} +2 -2
  168. package/dist/cjs/{th-41680352.js → th-f219fad6.js} +14 -14
  169. package/dist/cjs/{time-5e450ec8.js → time-24d40c60.js} +2 -2
  170. package/dist/cjs/{tr-0bd886d6.js → tr-03109641.js} +14 -14
  171. package/dist/cjs/{uk-4fade133.js → uk-dde46112.js} +14 -14
  172. package/dist/cjs/{utils-cd14113f.js → utils-09191c93.js} +2 -2
  173. package/dist/cjs/{utils-acfeed9d.js → utils-651e6663.js} +3 -3
  174. package/dist/cjs/{utils-ae9bdd59.js → utils-852fe124.js} +3 -3
  175. package/dist/cjs/{utils-bae432a9.js → utils-a194dc3d.js} +5 -2
  176. package/dist/cjs/{vi-1c9fe343.js → vi-60ed6e30.js} +14 -14
  177. package/dist/cjs/{zh-cn-28fa1fe1.js → zh-cn-a2f6f51d.js} +14 -14
  178. package/dist/cjs/{zh-hk-5abf8eb5.js → zh-hk-e14e2fc0.js} +14 -14
  179. package/dist/cjs/{zh-tw-07500357.js → zh-tw-7ea0d7e4.js} +14 -14
  180. package/dist/collection/collection-manifest.json +1 -0
  181. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +22 -28
  182. package/dist/collection/components/info-card/info-card.css +14 -0
  183. package/dist/collection/components/info-card/info-card.js +3 -2
  184. package/dist/collection/components/layer-table/layer-table.js +60 -9
  185. package/dist/collection/components/map-card/map-card.js +10 -6
  186. package/dist/collection/components/map-legend/map-legend.css +3 -0
  187. package/dist/collection/components/map-legend/map-legend.js +166 -0
  188. package/dist/collection/components/map-legend/test/map-legend.e2e.js +14 -0
  189. package/dist/collection/components/map-legend/test/map-legend.spec.js +22 -0
  190. package/dist/collection/components/map-tools/map-tools.js +25 -4
  191. package/dist/collection/demos/crowdsource-manager.html +26 -1
  192. package/dist/collection/utils/downloadUtils.js +250 -230
  193. package/dist/collection/utils/downloadUtils.ts +347 -326
  194. package/dist/collection/utils/interfaces.ts +11 -0
  195. package/dist/collection/utils/test/downloadUtils.spec.js +503 -57
  196. package/dist/collection/utils/test/downloadUtils.spec.tsx +587 -61
  197. package/dist/components/ExpandToggle.js +2 -2
  198. package/dist/components/FloatingArrow.js +1 -1
  199. package/dist/components/Heading.js +1 -1
  200. package/dist/components/action-bar.js +23 -15
  201. package/dist/components/action-group.js +9 -10
  202. package/dist/components/action-menu.js +1 -1
  203. package/dist/components/action.js +1 -1
  204. package/dist/components/alert.js +2 -2
  205. package/dist/components/array.js +1 -1
  206. package/dist/components/avatar.js +2 -2
  207. package/dist/components/button.js +1 -1
  208. package/dist/components/calcite-accordion-item.js +2 -7
  209. package/dist/components/calcite-accordion.js +0 -5
  210. package/dist/components/calcite-action-pad.js +10 -5
  211. package/dist/components/calcite-block-section.js +2 -2
  212. package/dist/components/calcite-block.js +2 -2
  213. package/dist/components/calcite-card.js +1 -1
  214. package/dist/components/calcite-chip-group.js +0 -5
  215. package/dist/components/calcite-combobox-item-group.js +1 -1
  216. package/dist/components/calcite-fab.js +1 -1
  217. package/dist/components/calcite-flow-item.js +1 -1
  218. package/dist/components/calcite-flow.js +1 -1
  219. package/dist/components/calcite-inline-editable.js +1 -1
  220. package/dist/components/calcite-input-date-picker.js +1 -1
  221. package/dist/components/calcite-input-time-picker.js +1 -1
  222. package/dist/components/calcite-input-time-zone.js +1 -1
  223. package/dist/components/calcite-list-item-group.js +1 -1
  224. package/dist/components/calcite-menu-item.js +1 -1
  225. package/dist/components/calcite-modal.js +2 -2
  226. package/dist/components/calcite-navigation-logo.js +1 -1
  227. package/dist/components/calcite-navigation-user.js +1 -1
  228. package/dist/components/calcite-navigation.js +2 -2
  229. package/dist/components/calcite-pagination.js +1 -1
  230. package/dist/components/calcite-radio-button-group.js +0 -5
  231. package/dist/components/calcite-radio-button.js +1 -1
  232. package/dist/components/calcite-rating.js +1 -1
  233. package/dist/components/calcite-shell-center-row.js +1 -1
  234. package/dist/components/calcite-sortable-list.js +1 -1
  235. package/dist/components/calcite-split-button.js +1 -1
  236. package/dist/components/calcite-stepper.js +0 -5
  237. package/dist/components/calcite-text-area.js +5 -5
  238. package/dist/components/calcite-tile-select.js +1 -1
  239. package/dist/components/calcite-tip-manager.js +1 -1
  240. package/dist/components/calcite-tip.js +1 -1
  241. package/dist/components/card-manager2.js +5 -5
  242. package/dist/components/checkbox.js +0 -5
  243. package/dist/components/chip.js +2 -2
  244. package/dist/components/color-picker-hex-input.js +2 -2
  245. package/dist/components/color-picker-swatch.js +1 -1
  246. package/dist/components/combobox-item.js +1 -1
  247. package/dist/components/combobox.js +1 -6
  248. package/dist/components/conditionalSlot.js +1 -1
  249. package/dist/components/crowdsource-manager.js +29 -18
  250. package/dist/components/date-picker-month-header.js +1 -1
  251. package/dist/components/date-picker.js +2 -2
  252. package/dist/components/date.js +1 -1
  253. package/dist/components/dom.js +2 -2
  254. package/dist/components/downloadUtils.js +247 -260
  255. package/dist/components/dropdown-group.js +1 -1
  256. package/dist/components/dropdown-item.js +1 -1
  257. package/dist/components/dropdown.js +1 -1
  258. package/dist/components/esri-loader.js +15 -15
  259. package/dist/components/filter.js +1 -1
  260. package/dist/components/filter2.js +1 -1
  261. package/dist/components/floating-ui.js +1 -1
  262. package/dist/components/focusTrapComponent.js +4 -4
  263. package/dist/components/form.js +1 -1
  264. package/dist/components/graph.js +3 -8
  265. package/dist/components/guid.js +1 -1
  266. package/dist/components/handle.js +1 -1
  267. package/dist/components/icon.js +2 -2
  268. package/dist/components/index.js +2 -2
  269. package/dist/components/info-card2.js +9 -8
  270. package/dist/components/input-message.js +1 -1
  271. package/dist/components/input-number.js +1 -1
  272. package/dist/components/input-text.js +1 -1
  273. package/dist/components/input.js +1 -1
  274. package/dist/components/interactive.js +2 -2
  275. package/dist/components/key.js +1 -1
  276. package/dist/components/label.js +2 -2
  277. package/dist/components/label2.js +1 -1
  278. package/dist/components/layer-table2.js +40 -9
  279. package/dist/components/layout-manager.js +129 -1
  280. package/dist/components/list-item2.js +1 -1
  281. package/dist/components/list.js +2 -2
  282. package/dist/components/loadable.js +1 -1
  283. package/dist/components/locale2.js +2 -2
  284. package/dist/components/map-card2.js +46 -37
  285. package/dist/components/map-legend.d.ts +11 -0
  286. package/dist/components/map-legend.js +11 -0
  287. package/dist/components/map-legend2.js +118 -0
  288. package/dist/components/map-tools2.js +47 -22
  289. package/dist/components/math.js +1 -1
  290. package/dist/components/menu.js +1 -1
  291. package/dist/components/notice.js +1 -1
  292. package/dist/components/observers.js +1 -1
  293. package/dist/components/openCloseComponent.js +9 -4
  294. package/dist/components/panel.js +2 -2
  295. package/dist/components/pick-list-item.js +1 -1
  296. package/dist/components/popover.js +3 -8
  297. package/dist/components/resources.js +1 -1
  298. package/dist/components/resources2.js +1 -1
  299. package/dist/components/resources3.js +1 -1
  300. package/dist/components/resources4.js +1 -1
  301. package/dist/components/scrim.js +1 -1
  302. package/dist/components/segmented-control-item.js +1 -1
  303. package/dist/components/select.js +1 -1
  304. package/dist/components/shared-list-render.js +2 -2
  305. package/dist/components/shell-panel.js +9 -6
  306. package/dist/components/shell.js +2 -2
  307. package/dist/components/slider.js +1 -1
  308. package/dist/components/sortableComponent.js +1 -1
  309. package/dist/components/stack.js +2 -2
  310. package/dist/components/t9n.js +1 -1
  311. package/dist/components/tab-title.js +1 -6
  312. package/dist/components/tabs.js +1 -1
  313. package/dist/components/tile.js +1 -1
  314. package/dist/components/time-picker.js +2 -2
  315. package/dist/components/tooltip.js +3 -3
  316. package/dist/components/tree-item.js +2 -2
  317. package/dist/components/tree.js +1 -1
  318. package/dist/components/utils.js +5 -2
  319. package/dist/components/utils2.js +2 -2
  320. package/dist/components/utils3.js +2 -2
  321. package/dist/components/value-list-item.js +1 -1
  322. package/dist/components/value-list.js +2 -2
  323. package/dist/esm/{ExpandToggle-3d10bd1e.js → ExpandToggle-3bfcb842.js} +5 -5
  324. package/dist/esm/{FloatingArrow-29db6da6.js → FloatingArrow-cf140d6b.js} +1 -1
  325. package/dist/esm/{Heading-cb79e5b2.js → Heading-140d10ff.js} +1 -1
  326. package/dist/esm/{app-globals-5cbac6b0.js → app-globals-fffe4e27.js} +3 -3
  327. package/dist/esm/{ar-4b751ba8.js → ar-45abeb31.js} +14 -14
  328. package/dist/esm/{array-751a2b87.js → array-d95985ad.js} +1 -1
  329. package/dist/esm/{basemap-gallery_4.entry.js → basemap-gallery_5.entry.js} +115 -7
  330. package/dist/esm/{bg-5d8bf5ea.js → bg-af759e86.js} +14 -14
  331. package/dist/esm/{bs-ff510e71.js → bs-20d012de.js} +14 -14
  332. package/dist/esm/buffer-tools_4.entry.js +15 -15
  333. package/dist/esm/{ca-b9a5e51a.js → ca-1498df65.js} +14 -14
  334. package/dist/esm/calcite-accordion-item.entry.js +7 -12
  335. package/dist/esm/calcite-accordion.entry.js +1 -6
  336. package/dist/esm/calcite-action-bar.entry.js +31 -26
  337. package/dist/esm/calcite-action-group_2.entry.js +18 -20
  338. package/dist/esm/calcite-action-pad.entry.js +20 -16
  339. package/dist/esm/calcite-action_2.entry.js +17 -22
  340. package/dist/esm/calcite-alert.entry.js +11 -11
  341. package/dist/esm/calcite-avatar.entry.js +6 -6
  342. package/dist/esm/calcite-block-section.entry.js +9 -9
  343. package/dist/esm/calcite-block.entry.js +12 -12
  344. package/dist/esm/calcite-button.entry.js +12 -12
  345. package/dist/esm/calcite-card.entry.js +9 -9
  346. package/dist/esm/calcite-checkbox.entry.js +8 -13
  347. package/dist/esm/calcite-chip-group.entry.js +6 -11
  348. package/dist/esm/calcite-chip.entry.js +11 -11
  349. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +8 -8
  350. package/dist/esm/calcite-color-picker.entry.js +12 -12
  351. package/dist/esm/calcite-combobox-item-group.entry.js +5 -5
  352. package/dist/esm/calcite-combobox_6.entry.js +21 -26
  353. package/dist/esm/calcite-date-picker-day_3.entry.js +10 -10
  354. package/dist/esm/calcite-date-picker.entry.js +11 -11
  355. package/dist/esm/calcite-fab.entry.js +6 -6
  356. package/dist/esm/calcite-filter_5.entry.js +16 -16
  357. package/dist/esm/calcite-flow-item.entry.js +11 -11
  358. package/dist/esm/calcite-flow.entry.js +3 -3
  359. package/dist/esm/calcite-graph.entry.js +5 -10
  360. package/dist/esm/calcite-icon.entry.js +6 -6
  361. package/dist/esm/calcite-inline-editable.entry.js +11 -11
  362. package/dist/esm/calcite-input-date-picker.entry.js +17 -17
  363. package/dist/esm/calcite-input-number_2.entry.js +13 -13
  364. package/dist/esm/{calcite-input-time-picker-13448515.js → calcite-input-time-picker-227e60c3.js} +60 -60
  365. package/dist/esm/calcite-input-time-picker.entry.js +14 -14
  366. package/dist/esm/calcite-input-time-zone.entry.js +12 -12
  367. package/dist/esm/calcite-input_2.entry.js +12 -12
  368. package/dist/esm/calcite-label.entry.js +5 -5
  369. package/dist/esm/calcite-link.entry.js +5 -5
  370. package/dist/esm/calcite-list-item-group.entry.js +3 -3
  371. package/dist/esm/calcite-loader.entry.js +1 -1
  372. package/dist/esm/calcite-menu-item.entry.js +9 -9
  373. package/dist/esm/calcite-menu.entry.js +9 -9
  374. package/dist/esm/calcite-modal.entry.js +12 -12
  375. package/dist/esm/calcite-navigation-logo.entry.js +2 -2
  376. package/dist/esm/calcite-navigation-user.entry.js +2 -2
  377. package/dist/esm/calcite-navigation.entry.js +5 -5
  378. package/dist/esm/calcite-notice.entry.js +11 -11
  379. package/dist/esm/calcite-option_2.entry.js +9 -9
  380. package/dist/esm/calcite-pagination.entry.js +9 -9
  381. package/dist/esm/calcite-panel_2.entry.js +14 -14
  382. package/dist/esm/calcite-pick-list-group.entry.js +7 -7
  383. package/dist/esm/calcite-pick-list-item.entry.js +12 -12
  384. package/dist/esm/calcite-pick-list.entry.js +10 -10
  385. package/dist/esm/calcite-radio-button-group.entry.js +2 -7
  386. package/dist/esm/calcite-radio-button.entry.js +9 -9
  387. package/dist/esm/calcite-rating.entry.js +12 -12
  388. package/dist/esm/calcite-scrim.entry.js +8 -8
  389. package/dist/esm/calcite-segmented-control_2.entry.js +8 -8
  390. package/dist/esm/calcite-shell-center-row.entry.js +6 -6
  391. package/dist/esm/calcite-shell-panel_14.entry.js +29 -32
  392. package/dist/esm/calcite-sortable-list.entry.js +7 -7
  393. package/dist/esm/calcite-split-button.entry.js +3 -3
  394. package/dist/esm/calcite-stepper-item.entry.js +8 -8
  395. package/dist/esm/calcite-stepper.entry.js +3 -8
  396. package/dist/esm/calcite-switch.entry.js +8 -8
  397. package/dist/esm/calcite-text-area.entry.js +15 -15
  398. package/dist/esm/calcite-tile-select-group.entry.js +1 -1
  399. package/dist/esm/calcite-tile-select.entry.js +4 -4
  400. package/dist/esm/calcite-tile.entry.js +7 -7
  401. package/dist/esm/calcite-time-picker.entry.js +10 -10
  402. package/dist/esm/calcite-tip-manager.entry.js +9 -9
  403. package/dist/esm/calcite-tip.entry.js +10 -10
  404. package/dist/esm/calcite-tooltip.entry.js +9 -9
  405. package/dist/esm/calcite-tree_3.entry.js +8 -8
  406. package/dist/esm/{card-manager_4.entry.js → card-manager_3.entry.js} +48 -93
  407. package/dist/esm/{conditionalSlot-27a0fce0.js → conditionalSlot-55a14abd.js} +2 -2
  408. package/dist/esm/crowdsource-manager.entry.js +23 -11
  409. package/dist/esm/{cs-f21a0628.js → cs-3bd67855.js} +14 -14
  410. package/dist/esm/{da-dc48fc4c.js → da-7a76e131.js} +14 -14
  411. package/dist/esm/{date-0ed48e97.js → date-bd5b879c.js} +2 -2
  412. package/dist/esm/{de-59290071.js → de-0808a43e.js} +14 -14
  413. package/dist/esm/{de-at-cd6e6ab7.js → de-at-0b6874cb.js} +14 -14
  414. package/dist/esm/{de-ch-27c44e34.js → de-ch-c9d429dd.js} +14 -14
  415. package/dist/esm/{dom-843e3afd.js → dom-37f2dec9.js} +3 -3
  416. package/dist/esm/{downloadUtils-63661805.js → downloadUtils-64c27514.js} +249 -262
  417. package/dist/esm/edit-card_2.entry.js +6 -5
  418. package/dist/esm/{el-f09fdec6.js → el-66001281.js} +14 -14
  419. package/dist/esm/{en-au-90087aa5.js → en-au-6424fec0.js} +14 -14
  420. package/dist/esm/{en-ca-10751695.js → en-ca-f5f1659d.js} +14 -14
  421. package/dist/esm/{en-gb-0f8547bd.js → en-gb-796beadd.js} +14 -14
  422. package/dist/esm/{es-b0997cf1.js → es-cd139926.js} +14 -14
  423. package/dist/esm/{es-mx-226f5028.js → es-mx-854dc3e4.js} +14 -14
  424. package/dist/esm/{et-dc96c453.js → et-2aa6782d.js} +14 -14
  425. package/dist/esm/{fi-0941704d.js → fi-965727bd.js} +14 -14
  426. package/dist/esm/{filter-1cac3edf.js → filter-60517290.js} +1 -1
  427. package/dist/esm/{floating-ui-d28d0fd6.js → floating-ui-7cde67cf.js} +2 -2
  428. package/dist/esm/{focusTrapComponent-ff3a9f28.js → focusTrapComponent-ec344399.js} +4 -4
  429. package/dist/esm/{form-11c6a015.js → form-04d47b0b.js} +2 -2
  430. package/dist/esm/{fr-8da3458d.js → fr-c1884e89.js} +14 -14
  431. package/dist/esm/{fr-ch-739ceddf.js → fr-ch-1fd8dd3a.js} +14 -14
  432. package/dist/esm/{guid-2bbb8cd1.js → guid-70cda807.js} +1 -1
  433. package/dist/esm/{he-8b662dfa.js → he-0d7b78b4.js} +14 -14
  434. package/dist/esm/{hi-10996f89.js → hi-0376c82d.js} +14 -14
  435. package/dist/esm/{hr-42c2024d.js → hr-28a64903.js} +14 -14
  436. package/dist/esm/{hu-4768b3ff.js → hu-44a02ff7.js} +14 -14
  437. package/dist/esm/{id-24a08170.js → id-034fc4a5.js} +14 -14
  438. package/dist/esm/{index.es-3a3aa8e3.js → index.es-b7bc2db1.js} +3 -3
  439. package/dist/esm/{interactive-eaf4be29.js → interactive-bd6837bc.js} +2 -2
  440. package/dist/esm/{it-ad09649f.js → it-56e52026.js} +14 -14
  441. package/dist/esm/{it-ch-b05fc10d.js → it-ch-a4a0e136.js} +14 -14
  442. package/dist/esm/{ja-ab839b73.js → ja-f2365272.js} +14 -14
  443. package/dist/esm/{key-7a525416.js → key-02fa06ae.js} +1 -1
  444. package/dist/esm/{ko-c778539e.js → ko-e7650b4c.js} +14 -14
  445. package/dist/esm/{label-6a1caf64.js → label-b6dfb4d5.js} +3 -3
  446. package/dist/{components/layout-manager2.js → esm/layout-manager.entry.js} +11 -58
  447. package/dist/esm/{loadModules-2ecd1e44.js → loadModules-f5f910b6.js} +1 -1
  448. package/dist/esm/{loadable-6bca96ad.js → loadable-47170cb6.js} +1 -1
  449. package/dist/esm/loader.js +3 -3
  450. package/dist/esm/{locale-d8561d54.js → locale-146251f7.js} +5 -5
  451. package/dist/esm/{locale-aa3de591.js → locale-efad8f83.js} +15 -15
  452. package/dist/esm/{lt-447d9aa9.js → lt-1577a952.js} +14 -14
  453. package/dist/esm/{lv-4d715e11.js → lv-9ef7e4f6.js} +14 -14
  454. package/dist/esm/map-select-tools_3.entry.js +3 -3
  455. package/dist/esm/{math-5f92f517.js → math-0d6817c3.js} +1 -1
  456. package/dist/esm/{mk-b3d7401a.js → mk-94264e08.js} +14 -14
  457. package/dist/esm/{nb-2b4a8366.js → nb-fa24d5b2.js} +14 -14
  458. package/dist/esm/{nl-c0db1da2.js → nl-33f10900.js} +14 -14
  459. package/dist/esm/{observers-9d66685a.js → observers-95c50046.js} +1 -1
  460. package/dist/esm/{openCloseComponent-2b5c6bed.js → openCloseComponent-10efeff3.js} +9 -4
  461. package/dist/esm/{pl-0d322bb4.js → pl-9ed16565.js} +14 -14
  462. package/dist/esm/{pt-5997598c.js → pt-52731ddf.js} +14 -14
  463. package/dist/esm/{pt-br-6b77e7db.js → pt-br-8de51ff4.js} +14 -14
  464. package/dist/esm/public-notification.entry.js +3 -3
  465. package/dist/esm/{resources-5bce3953.js → resources-0151b0c0.js} +1 -1
  466. package/dist/esm/{resources-94c47e64.js → resources-1e6d76df.js} +1 -1
  467. package/dist/esm/{resources-40d8e06f.js → resources-24255b05.js} +1 -1
  468. package/dist/esm/{resources-dca3d475.js → resources-2e5aa562.js} +1 -1
  469. package/dist/esm/{resources-c253772f.js → resources-2edfa0af.js} +1 -1
  470. package/dist/esm/{resources-a9b2d33c.js → resources-41416583.js} +1 -1
  471. package/dist/esm/{resources-d6a4d343.js → resources-b392187d.js} +1 -1
  472. package/dist/esm/{resources-58d30a0f.js → resources-c676d5de.js} +1 -1
  473. package/dist/esm/{resources-c65f5654.js → resources-efae7280.js} +1 -1
  474. package/dist/esm/{ro-ac3724e0.js → ro-99f009ad.js} +14 -14
  475. package/dist/esm/{ru-4e75151f.js → ru-592ffaf0.js} +14 -14
  476. package/dist/esm/{shared-list-render-abd19c8d.js → shared-list-render-4f0f6af8.js} +6 -6
  477. package/dist/esm/{sk-bbfa22a3.js → sk-44f7bd19.js} +14 -14
  478. package/dist/esm/{sl-867cecfc.js → sl-08cad9bd.js} +14 -14
  479. package/dist/esm/solution-configuration.entry.js +1 -1
  480. package/dist/esm/solution-contents_3.entry.js +1 -1
  481. package/dist/esm/solutions-components.js +3 -3
  482. package/dist/esm/{sortableComponent-db502e97.js → sortableComponent-8a84709a.js} +2 -2
  483. package/dist/esm/{sr-198b5c00.js → sr-84f261fc.js} +14 -14
  484. package/dist/esm/{sv-02d64370.js → sv-d0d7bc1e.js} +14 -14
  485. package/dist/esm/{t9n-76168237.js → t9n-5f748619.js} +2 -2
  486. package/dist/esm/{th-1616e303.js → th-a5149d44.js} +14 -14
  487. package/dist/esm/{time-6721a4c2.js → time-fa1151aa.js} +2 -2
  488. package/dist/esm/{tr-f4619f64.js → tr-feb0cad4.js} +14 -14
  489. package/dist/esm/{uk-df7df34a.js → uk-c9ba62a0.js} +14 -14
  490. package/dist/esm/{utils-f54411df.js → utils-0a5c1a07.js} +3 -3
  491. package/dist/esm/{utils-ccfd94a7.js → utils-667cc396.js} +3 -3
  492. package/dist/esm/{utils-18db6b1d.js → utils-7af1efcc.js} +2 -2
  493. package/dist/esm/{utils-2c91c963.js → utils-7cf107ec.js} +5 -2
  494. package/dist/esm/{vi-176ca9f7.js → vi-788dcb99.js} +14 -14
  495. package/dist/esm/{zh-cn-e13d83d1.js → zh-cn-3ccfb820.js} +14 -14
  496. package/dist/esm/{zh-hk-d97365d8.js → zh-hk-b29b61e8.js} +14 -14
  497. package/dist/esm/{zh-tw-a2b6f0b7.js → zh-tw-2bdbc6eb.js} +14 -14
  498. package/dist/solutions-components/assets/icon/applySelectionToExistingView16.json +1 -0
  499. package/dist/solutions-components/assets/icon/applySelectionToExistingView24.json +1 -0
  500. package/dist/solutions-components/assets/icon/applySelectionToExistingView32.json +1 -0
  501. package/dist/solutions-components/assets/icon/channels16.json +1 -0
  502. package/dist/solutions-components/assets/icon/channels24.json +1 -0
  503. package/dist/solutions-components/assets/icon/channels32.json +1 -0
  504. package/dist/solutions-components/assets/icon/chevronDownLeft16.json +1 -0
  505. package/dist/solutions-components/assets/icon/chevronDownLeft24.json +1 -0
  506. package/dist/solutions-components/assets/icon/chevronDownLeft32.json +1 -0
  507. package/dist/solutions-components/assets/icon/chevronDownRight16.json +1 -0
  508. package/dist/solutions-components/assets/icon/chevronDownRight24.json +1 -0
  509. package/dist/solutions-components/assets/icon/chevronDownRight32.json +1 -0
  510. package/dist/solutions-components/assets/icon/chevronUpLeft16.json +1 -0
  511. package/dist/solutions-components/assets/icon/chevronUpLeft24.json +1 -0
  512. package/dist/solutions-components/assets/icon/chevronUpLeft32.json +1 -0
  513. package/dist/solutions-components/assets/icon/chevronUpRight16.json +1 -0
  514. package/dist/solutions-components/assets/icon/chevronUpRight24.json +1 -0
  515. package/dist/solutions-components/assets/icon/chevronUpRight32.json +1 -0
  516. package/dist/solutions-components/assets/icon/clearSelection16.json +1 -0
  517. package/dist/solutions-components/assets/icon/clearSelection24.json +1 -0
  518. package/dist/solutions-components/assets/icon/clearSelection32.json +1 -0
  519. package/dist/solutions-components/assets/icon/communityLinkChartLayout16.json +1 -0
  520. package/dist/solutions-components/assets/icon/communityLinkChartLayout24.json +1 -0
  521. package/dist/solutions-components/assets/icon/communityLinkChartLayout32.json +1 -0
  522. package/dist/solutions-components/assets/icon/dataCard16.json +1 -0
  523. package/dist/solutions-components/assets/icon/dataCard24.json +1 -0
  524. package/dist/solutions-components/assets/icon/dataCard32.json +1 -0
  525. package/dist/solutions-components/assets/icon/dateTime16.json +1 -0
  526. package/dist/solutions-components/assets/icon/dateTime24.json +1 -0
  527. package/dist/solutions-components/assets/icon/dateTime32.json +1 -0
  528. package/dist/solutions-components/assets/icon/expressionDefinedColor16.json +1 -0
  529. package/dist/solutions-components/assets/icon/expressionDefinedColor24.json +1 -0
  530. package/dist/solutions-components/assets/icon/expressionDefinedColor32.json +1 -0
  531. package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout16.json +1 -0
  532. package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout24.json +1 -0
  533. package/dist/solutions-components/assets/icon/forceDirectedLinkChartLayout32.json +1 -0
  534. package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout16.json +1 -0
  535. package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout24.json +1 -0
  536. package/dist/solutions-components/assets/icon/hierarchicalLinkChartLayout32.json +1 -0
  537. package/dist/solutions-components/assets/icon/knowledgeStudio16.json +1 -0
  538. package/dist/solutions-components/assets/icon/knowledgeStudio24.json +1 -0
  539. package/dist/solutions-components/assets/icon/knowledgeStudio32.json +1 -0
  540. package/dist/solutions-components/assets/icon/linkChartExpand16.json +1 -0
  541. package/dist/solutions-components/assets/icon/linkChartExpand24.json +1 -0
  542. package/dist/solutions-components/assets/icon/linkChartExpand32.json +1 -0
  543. package/dist/solutions-components/assets/icon/minusSquare16F.json +1 -0
  544. package/dist/solutions-components/assets/icon/minusSquare24F.json +1 -0
  545. package/dist/solutions-components/assets/icon/minusSquare32F.json +1 -0
  546. package/dist/solutions-components/assets/icon/newLinkChart16.json +1 -0
  547. package/dist/solutions-components/assets/icon/newLinkChart24.json +1 -0
  548. package/dist/solutions-components/assets/icon/newLinkChart32.json +1 -0
  549. package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout16.json +1 -0
  550. package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout24.json +1 -0
  551. package/dist/solutions-components/assets/icon/radialTreeLinkChartYayout32.json +1 -0
  552. package/dist/solutions-components/assets/icon/removeLinkchart16.json +1 -0
  553. package/dist/solutions-components/assets/icon/removeLinkchart24.json +1 -0
  554. package/dist/solutions-components/assets/icon/removeLinkchart32.json +1 -0
  555. package/dist/solutions-components/assets/icon/simpleLinkChartLayout16.json +1 -0
  556. package/dist/solutions-components/assets/icon/simpleLinkChartLayout24.json +1 -0
  557. package/dist/solutions-components/assets/icon/simpleLinkChartLayout32.json +1 -0
  558. package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout16.json +1 -0
  559. package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout24.json +1 -0
  560. package/dist/solutions-components/assets/icon/smartTreeLinkChartLayout32.json +1 -0
  561. package/dist/solutions-components/assets/icon/sortAscendingArrow16.json +1 -1
  562. package/dist/solutions-components/assets/icon/sortAscendingArrow24.json +1 -1
  563. package/dist/solutions-components/assets/icon/sortAscendingArrow32.json +1 -1
  564. package/dist/solutions-components/assets/icon/sortDescendingArrow16.json +1 -1
  565. package/dist/solutions-components/assets/icon/sortDescendingArrow24.json +1 -1
  566. package/dist/solutions-components/assets/icon/sortDescendingArrow32.json +1 -1
  567. package/dist/solutions-components/assets/icon/timeZone16.json +1 -0
  568. package/dist/solutions-components/assets/icon/timeZone24.json +1 -0
  569. package/dist/solutions-components/assets/icon/timeZone32.json +1 -0
  570. package/dist/solutions-components/assets/icon/updateProject16.json +1 -0
  571. package/dist/solutions-components/assets/icon/updateProject24.json +1 -0
  572. package/dist/solutions-components/assets/icon/updateProject32.json +1 -0
  573. package/dist/solutions-components/demos/crowdsource-manager.html +26 -1
  574. package/dist/solutions-components/{p-9fb16c72.entry.js → p-0109bef4.entry.js} +10 -10
  575. package/dist/solutions-components/{p-46d5970b.entry.js → p-01c83b8c.entry.js} +1 -1
  576. package/dist/solutions-components/{p-6de98c51.js → p-0266ca81.js} +1 -1
  577. package/dist/solutions-components/{p-8a758303.js → p-05b2bdf9.js} +3 -3
  578. package/dist/solutions-components/p-072155f9.js +12 -0
  579. package/dist/solutions-components/{p-e07b8a72.entry.js → p-082365d6.entry.js} +3 -3
  580. package/dist/solutions-components/{p-ea282908.js → p-0b8463d6.js} +1 -1
  581. package/dist/solutions-components/{p-cad5587c.entry.js → p-0c2e392e.entry.js} +6 -6
  582. package/dist/solutions-components/p-0dce2c3b.entry.js +6 -0
  583. package/dist/solutions-components/{p-c3f8b670.js → p-0ecd7346.js} +1 -1
  584. package/dist/solutions-components/{p-18f1772b.js → p-0ed14b4b.js} +1 -1
  585. package/dist/solutions-components/p-0f77e83c.entry.js +11 -0
  586. package/dist/solutions-components/{p-29d41c7e.js → p-0f85fa4b.js} +1 -1
  587. package/dist/solutions-components/{p-541697d0.js → p-0fa3d1aa.js} +2 -2
  588. package/dist/solutions-components/{p-a6900100.entry.js → p-10e1ebe4.entry.js} +3 -3
  589. package/dist/solutions-components/{p-7c33e500.entry.js → p-12f06497.entry.js} +1 -1
  590. package/dist/solutions-components/{p-f41105c8.js → p-138cf009.js} +1 -1
  591. package/dist/solutions-components/{p-2b96e551.entry.js → p-149b4d3c.entry.js} +3 -3
  592. package/dist/solutions-components/{p-022a9b7a.js → p-167eb73b.js} +1 -1
  593. package/dist/solutions-components/{p-32f9c709.js → p-168a7d63.js} +1 -1
  594. package/dist/solutions-components/{p-2b252afd.entry.js → p-17a29fa6.entry.js} +1 -1
  595. package/dist/solutions-components/p-18538cd9.entry.js +11 -0
  596. package/dist/solutions-components/p-1bcfca9b.entry.js +6 -0
  597. package/dist/solutions-components/{p-19fe7725.js → p-1cebde99.js} +1 -1
  598. package/dist/solutions-components/{p-b948ecd2.entry.js → p-1dbaff04.entry.js} +2 -2
  599. package/dist/solutions-components/{p-2656168f.entry.js → p-1e7a31c1.entry.js} +3 -3
  600. package/dist/solutions-components/{p-d554507d.js → p-1eda2d20.js} +1 -1
  601. package/dist/solutions-components/{p-ef48bd77.entry.js → p-1efcac52.entry.js} +3 -3
  602. package/dist/solutions-components/{p-c6d83122.entry.js → p-1fba74a5.entry.js} +3 -3
  603. package/dist/solutions-components/{p-3cbe5ef3.js → p-2154de6d.js} +1 -1
  604. package/dist/solutions-components/{p-1ea1dcac.js → p-22d06238.js} +1 -1
  605. package/dist/solutions-components/{p-1ede2e18.js → p-2592c0b8.js} +3 -3
  606. package/dist/solutions-components/{p-90bbf223.entry.js → p-261394d7.entry.js} +1 -1
  607. package/dist/solutions-components/{p-754e2df2.js → p-27e0f599.js} +1 -1
  608. package/dist/solutions-components/{p-6a820c4d.js → p-28b5a7cf.js} +1 -1
  609. package/dist/solutions-components/{p-804e4751.entry.js → p-29efbf76.entry.js} +3 -3
  610. package/dist/solutions-components/{p-421d5e7c.js → p-2bf63e2e.js} +1 -1
  611. package/dist/solutions-components/{p-d4c103a8.js → p-2e8a41da.js} +1 -1
  612. package/dist/solutions-components/{p-de59d2f5.js → p-31aaa60f.js} +1 -1
  613. package/dist/solutions-components/{p-a2748b38.entry.js → p-34ef43ce.entry.js} +1 -1
  614. package/dist/solutions-components/{p-97c47bbd.entry.js → p-35cb6eca.entry.js} +3 -3
  615. package/dist/solutions-components/{p-39ff5ee5.js → p-3766be72.js} +2 -2
  616. package/dist/solutions-components/{p-9e727488.js → p-38f906f2.js} +1 -1
  617. package/dist/solutions-components/{p-c5e294e4.js → p-3948a96c.js} +1 -1
  618. package/dist/solutions-components/{p-9bbc05ff.js → p-3a844a72.js} +1 -1
  619. package/dist/solutions-components/{p-825bac0e.js → p-3c15959e.js} +1 -1
  620. package/dist/solutions-components/{p-ffac6f88.entry.js → p-3ce89910.entry.js} +1 -1
  621. package/dist/solutions-components/{p-7920b5a2.entry.js → p-3cfaf52b.entry.js} +2 -2
  622. package/dist/solutions-components/{p-b9749e09.js → p-3d3e6e20.js} +1 -1
  623. package/dist/solutions-components/{p-844ee452.entry.js → p-410068d9.entry.js} +2 -2
  624. package/dist/solutions-components/{p-a775ba2f.entry.js → p-42f9ab43.entry.js} +3 -3
  625. package/dist/solutions-components/{p-2291b598.js → p-43ba7a04.js} +1 -1
  626. package/dist/solutions-components/{p-f28d69ac.entry.js → p-446ab7f8.entry.js} +3 -3
  627. package/dist/solutions-components/{p-4bc7b875.entry.js → p-452850b4.entry.js} +2 -2
  628. package/dist/solutions-components/{p-0fbc27fd.entry.js → p-456f5afe.entry.js} +2 -2
  629. package/dist/solutions-components/{p-b86b4512.entry.js → p-46e0ce0c.entry.js} +2 -2
  630. package/dist/solutions-components/p-470a9ec4.entry.js +6 -0
  631. package/dist/solutions-components/{p-d62784a4.js → p-476e5302.js} +1 -1
  632. package/dist/solutions-components/{p-7b90c18e.entry.js → p-476eb52c.entry.js} +1 -1
  633. package/dist/solutions-components/{p-5961c4e0.js → p-4a75b3dc.js} +1 -1
  634. package/dist/solutions-components/{p-42c7a5fa.entry.js → p-4d76eaf6.entry.js} +2 -2
  635. package/dist/solutions-components/{p-4e4b55b9.entry.js → p-4f9f97b2.entry.js} +3 -3
  636. package/dist/solutions-components/{p-67ce3c0c.entry.js → p-56f1d66b.entry.js} +3 -3
  637. package/dist/solutions-components/{p-5b9b1cbb.entry.js → p-58167087.entry.js} +3 -3
  638. package/dist/solutions-components/{p-ad72a379.entry.js → p-586f0e3d.entry.js} +3 -3
  639. package/dist/solutions-components/{p-6f2edf5b.js → p-588bc0c0.js} +1 -1
  640. package/dist/solutions-components/{p-a040efff.js → p-5958dad9.js} +1 -1
  641. package/dist/solutions-components/{p-4d17943f.js → p-5c9fa0e7.js} +1 -1
  642. package/dist/solutions-components/{p-b4157e6a.js → p-5ceef49b.js} +1 -1
  643. package/dist/solutions-components/{p-c9858d8f.entry.js → p-5d62566c.entry.js} +2 -2
  644. package/dist/solutions-components/{p-5f5c371e.js → p-5e08d4de.js} +1 -1
  645. package/dist/solutions-components/{p-b684bbc7.entry.js → p-5eaaf6ea.entry.js} +1 -1
  646. package/dist/solutions-components/{p-10248e04.js → p-60c15592.js} +1 -1
  647. package/dist/solutions-components/{p-7601988d.entry.js → p-6295e168.entry.js} +2 -2
  648. package/dist/solutions-components/{p-4f0c3fc1.js → p-635bbbd4.js} +1 -1
  649. package/dist/solutions-components/{p-aeebdb15.js → p-636f4631.js} +1 -1
  650. package/dist/solutions-components/{p-fb7e0054.js → p-643a0325.js} +1 -1
  651. package/dist/solutions-components/{p-606ca126.js → p-64e2c099.js} +1 -1
  652. package/dist/solutions-components/{p-ad4d6d02.entry.js → p-651459e2.entry.js} +4 -4
  653. package/dist/solutions-components/{p-b0c4138f.entry.js → p-667e7134.entry.js} +2 -2
  654. package/dist/solutions-components/{p-4b95d05e.entry.js → p-66b5211f.entry.js} +1 -1
  655. package/dist/solutions-components/{p-216801d5.js → p-688f6a0a.js} +1 -1
  656. package/dist/solutions-components/{p-3e139360.js → p-6be3c411.js} +1 -1
  657. package/dist/solutions-components/{p-6a524392.entry.js → p-6ce7b446.entry.js} +2 -2
  658. package/dist/solutions-components/{p-0e7914e6.entry.js → p-6ddc9567.entry.js} +3 -3
  659. package/dist/solutions-components/{p-7b9adfff.js → p-7060caf6.js} +1 -1
  660. package/dist/solutions-components/{p-bd3a3afe.js → p-7262469a.js} +1 -1
  661. package/dist/solutions-components/{p-3f0193e9.js → p-73220ff1.js} +1 -1
  662. package/dist/solutions-components/{p-31ff3452.entry.js → p-78a40191.entry.js} +2 -2
  663. package/dist/solutions-components/{p-82199b7b.entry.js → p-7a027758.entry.js} +1 -1
  664. package/dist/solutions-components/{p-a843af2a.js → p-7b2314ac.js} +1 -1
  665. package/dist/solutions-components/p-7bb12deb.js +11 -0
  666. package/dist/solutions-components/{p-56300653.js → p-7f271c31.js} +5 -5
  667. package/dist/solutions-components/p-7f9642d5.js +21 -0
  668. package/dist/solutions-components/{p-5c097e25.entry.js → p-80cb42e4.entry.js} +3 -3
  669. package/dist/solutions-components/{p-5383607a.js → p-80ea5869.js} +3 -3
  670. package/dist/solutions-components/{p-ab8f5c6b.entry.js → p-81814234.entry.js} +2 -2
  671. package/dist/solutions-components/{p-abda8ca2.entry.js → p-8544d557.entry.js} +2 -2
  672. package/dist/solutions-components/{p-680d193d.entry.js → p-864c190b.entry.js} +3 -3
  673. package/dist/solutions-components/p-869d4521.entry.js +6 -0
  674. package/dist/solutions-components/{p-d3a22725.js → p-872036a8.js} +1 -1
  675. package/dist/solutions-components/{p-22d580b0.entry.js → p-879d6377.entry.js} +3 -3
  676. package/dist/solutions-components/{p-4805ff13.js → p-87d66120.js} +1 -1
  677. package/dist/solutions-components/{p-9cb94ea0.js → p-8927339d.js} +1 -1
  678. package/dist/solutions-components/{p-7aa949a3.entry.js → p-89504313.entry.js} +2 -2
  679. package/dist/solutions-components/{p-cf43278c.entry.js → p-8af52074.entry.js} +3 -3
  680. package/dist/solutions-components/{p-3fc17d72.js → p-8b448a5b.js} +1 -1
  681. package/dist/solutions-components/{p-03fccde6.entry.js → p-8b74f5bb.entry.js} +3 -3
  682. package/dist/solutions-components/p-8b8a6c1f.entry.js +6 -0
  683. package/dist/solutions-components/{p-2ae17fa2.js → p-8c61431d.js} +1 -1
  684. package/dist/solutions-components/{p-634e1240.js → p-8d00a17e.js} +1 -1
  685. package/dist/solutions-components/{p-c07af9c2.entry.js → p-8f68f1d3.entry.js} +2 -2
  686. package/dist/solutions-components/{p-e6bee82f.js → p-8f8d2861.js} +1 -1
  687. package/dist/solutions-components/{p-108fbf59.entry.js → p-90cef98d.entry.js} +1 -1
  688. package/dist/solutions-components/{p-9603c3ff.entry.js → p-9370bb48.entry.js} +2 -2
  689. package/dist/solutions-components/{p-a777b18c.js → p-96239d0d.js} +2 -2
  690. package/dist/solutions-components/p-97a4001d.entry.js +6 -0
  691. package/dist/solutions-components/{p-215d3505.js → p-99402001.js} +1 -1
  692. package/dist/solutions-components/p-99891e57.js +11 -0
  693. package/dist/solutions-components/{p-15ef7894.js → p-9a35ef8e.js} +1 -1
  694. package/dist/solutions-components/{p-35123c90.js → p-9b76bf3d.js} +1 -1
  695. package/dist/solutions-components/{p-6b2f2b85.js → p-a16feeec.js} +4 -4
  696. package/dist/solutions-components/{p-e645edf2.entry.js → p-a1c6db13.entry.js} +1 -1
  697. package/dist/solutions-components/{p-75f26870.js → p-a26dc184.js} +13 -13
  698. package/dist/solutions-components/{p-0cc32f06.js → p-a287be8b.js} +1 -1
  699. package/dist/solutions-components/{p-052ff2c7.js → p-a46f1b45.js} +1 -1
  700. package/dist/solutions-components/{p-1f468797.js → p-ab072027.js} +1 -1
  701. package/dist/solutions-components/{p-31316d61.entry.js → p-ac0abf04.entry.js} +3 -3
  702. package/dist/solutions-components/{p-38ef0684.js → p-ad75b9bb.js} +2 -2
  703. package/dist/solutions-components/{p-a08bd8c1.entry.js → p-ae6a7b3b.entry.js} +1 -1
  704. package/dist/solutions-components/{p-05db4340.js → p-aea37c90.js} +1 -1
  705. package/dist/solutions-components/{p-164be8ef.entry.js → p-b25005cf.entry.js} +1 -1
  706. package/dist/solutions-components/{p-b2e6c578.js → p-b28b6d40.js} +1 -1
  707. package/dist/solutions-components/{p-639cca97.js → p-b28ff52c.js} +1 -1
  708. package/dist/solutions-components/{p-5e59219b.entry.js → p-b2a52acb.entry.js} +1 -1
  709. package/dist/solutions-components/{p-21f00df6.js → p-bde323ec.js} +1 -1
  710. package/dist/solutions-components/{p-a0edbb27.js → p-be146646.js} +1 -1
  711. package/dist/solutions-components/{p-a258f5e7.js → p-c1dcc1e7.js} +1 -1
  712. package/dist/solutions-components/p-c3ab7439.js +11 -0
  713. package/dist/solutions-components/{p-283e3a2d.js → p-c6e55b32.js} +1 -1
  714. package/dist/solutions-components/{p-e10a62f4.entry.js → p-c79c7978.entry.js} +3 -3
  715. package/dist/solutions-components/{p-647a4130.js → p-c9633864.js} +3 -3
  716. package/dist/solutions-components/{p-916f90ec.entry.js → p-c968f9aa.entry.js} +1 -1
  717. package/dist/solutions-components/{p-cf1af08f.entry.js → p-c9df539a.entry.js} +1 -1
  718. package/dist/solutions-components/{p-93074bd4.entry.js → p-ca3d7edd.entry.js} +2 -2
  719. package/dist/solutions-components/{p-2005280f.js → p-cacfa6ae.js} +2 -2
  720. package/dist/solutions-components/{p-27a1ac1f.entry.js → p-cc2393c3.entry.js} +3 -3
  721. package/dist/solutions-components/p-cd673260.js +6 -0
  722. package/dist/solutions-components/{p-761a033a.entry.js → p-cec47579.entry.js} +2 -2
  723. package/dist/solutions-components/{p-32ef065d.entry.js → p-ced11bea.entry.js} +2 -2
  724. package/dist/solutions-components/{p-ee066c67.js → p-cee23126.js} +5 -5
  725. package/dist/solutions-components/p-d2d3e4b5.js +11 -0
  726. package/dist/solutions-components/{p-0ece6df1.entry.js → p-d6f68a4e.entry.js} +2 -2
  727. package/dist/solutions-components/{p-326fa270.js → p-d864b7e3.js} +1 -1
  728. package/dist/solutions-components/{p-5adf37ea.entry.js → p-da6acb22.entry.js} +2 -2
  729. package/dist/solutions-components/{p-de58bd49.js → p-e0c011b8.js} +1 -1
  730. package/dist/solutions-components/{p-58ce5639.js → p-e0fb0920.js} +1 -1
  731. package/dist/solutions-components/{p-b1f84ae5.js → p-e2637fe6.js} +1 -1
  732. package/dist/solutions-components/{p-ef96894d.entry.js → p-e2eb4fd3.entry.js} +4 -4
  733. package/dist/solutions-components/{p-18869c0f.js → p-e3525c00.js} +1 -1
  734. package/dist/solutions-components/{p-1add4e39.entry.js → p-e3d72832.entry.js} +2 -2
  735. package/dist/solutions-components/{p-6431fd69.js → p-e4d2fcc5.js} +3 -3
  736. package/dist/solutions-components/{p-f055a840.js → p-e761b7cd.js} +1 -1
  737. package/dist/solutions-components/{p-4daae757.js → p-ea285144.js} +1 -1
  738. package/dist/solutions-components/p-ebbff02e.js +6 -0
  739. package/dist/solutions-components/{p-07bc4f07.entry.js → p-ec378ea0.entry.js} +3 -3
  740. package/dist/solutions-components/{p-12a4fa84.js → p-ec889511.js} +1 -1
  741. package/dist/solutions-components/{p-e02fcfa9.entry.js → p-f153f1c9.entry.js} +2 -2
  742. package/dist/solutions-components/{p-b49bdc72.entry.js → p-f596eabd.entry.js} +1 -1
  743. package/dist/solutions-components/{p-3aba40e8.js → p-f7b520ae.js} +2 -2
  744. package/dist/solutions-components/{p-4c43820f.entry.js → p-f815b5ef.entry.js} +1 -1
  745. package/dist/solutions-components/{p-955a956a.entry.js → p-fe96e0d9.entry.js} +4 -4
  746. package/dist/solutions-components/{p-b5d67495.entry.js → p-feff224c.entry.js} +2 -2
  747. package/dist/solutions-components/solutions-components.esm.js +1 -1
  748. package/dist/solutions-components/utils/downloadUtils.ts +347 -326
  749. package/dist/solutions-components/utils/interfaces.ts +11 -0
  750. package/dist/solutions-components/utils/test/downloadUtils.spec.tsx +587 -61
  751. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +11 -4
  752. package/dist/types/components/layer-table/layer-table.d.ts +14 -2
  753. package/dist/types/components/map-card/map-card.d.ts +2 -2
  754. package/dist/types/components/map-legend/map-legend.d.ts +64 -0
  755. package/dist/types/components/map-tools/map-tools.d.ts +13 -1
  756. package/dist/types/components.d.ts +40 -11
  757. package/dist/types/preact.d.ts +2 -0
  758. package/dist/types/utils/downloadUtils.d.ts +122 -15
  759. package/dist/types/utils/interfaces.d.ts +9 -0
  760. package/package.json +4 -10
  761. package/dist/solutions-components/p-2d70d3fd.js +0 -12
  762. package/dist/solutions-components/p-361f1fe1.js +0 -11
  763. package/dist/solutions-components/p-3bd99fc9.js +0 -11
  764. package/dist/solutions-components/p-418d0b60.entry.js +0 -6
  765. package/dist/solutions-components/p-525f1188.js +0 -11
  766. package/dist/solutions-components/p-55aefaa8.entry.js +0 -6
  767. package/dist/solutions-components/p-5b5a6ac8.entry.js +0 -6
  768. package/dist/solutions-components/p-91caf655.entry.js +0 -11
  769. package/dist/solutions-components/p-a0a2c53d.js +0 -21
  770. package/dist/solutions-components/p-a6c85bd7.entry.js +0 -6
  771. package/dist/solutions-components/p-b6578a32.js +0 -6
  772. package/dist/solutions-components/p-baccfd70.entry.js +0 -6
  773. package/dist/solutions-components/p-bba3fa4e.entry.js +0 -11
  774. package/dist/solutions-components/p-c1ee0d69.js +0 -11
  775. package/dist/solutions-components/p-d6322e4b.js +0 -6
@@ -2257,7 +2257,31 @@ function downloadPDFFile(filename, labels, labelPageDescription, title = "", ini
2257
2257
  */
2258
2258
  const lineSeparatorChar = "|";
2259
2259
  //#endregion
2260
+ // ------------------------------------------------------------------------------------------------------------------ //
2260
2261
  //#region Public functions
2262
+ /**
2263
+ * Create and consolidate labels from all layers
2264
+ *
2265
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2266
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2267
+ * all attributes are exported
2268
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
2269
+ * @returns selectionSetNames that will be used for export filenames
2270
+ */
2271
+ async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2272
+ const labelRequests = [];
2273
+ Object.keys(exportInfos).forEach(k => {
2274
+ var _a;
2275
+ const labelInfo = exportInfos[k];
2276
+ labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2277
+ if (isCSVExport) {
2278
+ // add the layer id as a temp value separator that we can use to split values for CSV export
2279
+ labelRequests.push(Promise.resolve([[k]]));
2280
+ }
2281
+ });
2282
+ const labels = await Promise.all(labelRequests);
2283
+ return labels.reduce((prev, cur) => prev.concat(cur), []);
2284
+ }
2261
2285
  /**
2262
2286
  * Downloads csv of mailing labels for the provided list of ids
2263
2287
  *
@@ -2310,14 +2334,61 @@ async function downloadPDF(exportInfos, labelPageDescription, removeDuplicates =
2310
2334
  exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl);
2311
2335
  return Promise.resolve();
2312
2336
  }
2337
+ /**
2338
+ * Remove any duplicate labels
2339
+ *
2340
+ * @param labels Labels to evaluate for duplicates
2341
+ * @returns labels with duplicates removed
2342
+ */
2343
+ function removeDuplicateLabels(labels) {
2344
+ const labelsAsStrings = labels.map(label => JSON.stringify(label));
2345
+ const uniqueLabels = new Set(labelsAsStrings);
2346
+ return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
2347
+ }
2313
2348
  //#endregion
2349
+ // ------------------------------------------------------------------------------------------------------------------ //
2314
2350
  //#region Private functions
2351
+ /**
2352
+ * Converts the text of a custom popup into a multiline label specification; conversion splits text into
2353
+ * lines on <br>s, and removes HTML tags.
2354
+ *
2355
+ * @param labelText Layer's popup text, e.g.,
2356
+ * "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
2357
+ * @return Cleaned-up popup text with lines separated by `lineSeparatorChar`
2358
+ */
2359
+ function _cleanupLabel(labelText) {
2360
+ // Replace <br> variants with the line separator character
2361
+ labelText = labelText.replace(/<br\s*\/?>/gi, lineSeparatorChar);
2362
+ // Replace <p> variants with the line separator character, except in the first position
2363
+ labelText = labelText.replace(/<p[^>]*>/gi, lineSeparatorChar).trim().replace(/^\|/, "");
2364
+ // Remove </p>
2365
+ labelText = labelText.replace(/<\/p>/gi, "");
2366
+ // Replace \n with the line separator character
2367
+ labelText = labelText.replace(/\n/gi, "|");
2368
+ // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
2369
+ labelText = labelText
2370
+ .replace(/<[\s.]*[^<>]*\/?>/gi, "")
2371
+ .replace(/\xA0/gi, " ")
2372
+ .replace(/&lt;/gi, "<")
2373
+ .replace(/&gt;/gi, ">")
2374
+ .replace(/&nbsp;/gi, " ");
2375
+ // Trim each line
2376
+ labelText = labelText.replace(/\s*\|\s*/g, "|");
2377
+ // Remove empty lines
2378
+ while (labelText.match(/\|\|/)) {
2379
+ labelText = labelText.replace(/\|\|/, "|");
2380
+ }
2381
+ // Remove leading and trailing line feeds
2382
+ labelText = labelText.replace(/^\|/, "");
2383
+ labelText = labelText.replace(/\|$/, "");
2384
+ return labelText;
2385
+ }
2315
2386
  /**
2316
2387
  * Converts a set of fieldInfos into template lines.
2317
2388
  *
2318
2389
  * @param fieldInfos Layer's fieldInfos structure
2319
2390
  * @param bypassFieldVisiblity Indicates if the configured fieldInfo visibility property should be ignored
2320
- * @return Label spec with lines separated by `lineSeparatorChar`
2391
+ * @return "pattern" label spec with lines separated by `lineSeparatorChar`
2321
2392
  */
2322
2393
  function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity = false) {
2323
2394
  const labelSpec = [];
@@ -2327,64 +2398,33 @@ function _convertPopupFieldsToLabelSpec(fieldInfos, bypassFieldVisiblity = false
2327
2398
  labelSpec.push(`{${fieldInfo.fieldName}}`);
2328
2399
  }
2329
2400
  });
2330
- return labelSpec.join(lineSeparatorChar);
2401
+ return {
2402
+ type: "pattern",
2403
+ format: labelSpec.join(lineSeparatorChar)
2404
+ };
2331
2405
  }
2332
2406
  /**
2333
2407
  * Converts the text of a custom popup into a multiline label specification; conversion splits text into
2334
2408
  * lines on <br>s, and removes HTML tags. It does not handle Arcade and related records.
2335
2409
  *
2336
- * @param popupInfo Layer's popupInfo structure containing description, fieldInfos, and expressionInfos, e.g.,
2410
+ * @param labelText Layer's labelText structure containing description, fieldInfos, and expressionInfos, e.g.,
2337
2411
  * "<div style='text-align: left;'>{NAME}<br />{STREET}<br />{CITY}, {STATE} {ZIP} <br /></div>"
2338
- * @return Label spec with lines separated by `lineSeparatorChar`
2412
+ * @return "pattern" label spec with lines separated by `lineSeparatorChar`
2339
2413
  */
2340
2414
  function _convertPopupTextToLabelSpec(popupInfo) {
2341
- // Replace <br> variants with the line separator character
2342
- popupInfo = popupInfo.replace(/<br\s*\/?>/gi, lineSeparatorChar);
2343
- // Replace <p> variants with the line separator character, except in the first position
2344
- popupInfo = popupInfo.replace(/<p[^>]*>/gi, lineSeparatorChar).trim().replace(/^\|/, "");
2345
- // Remove </p>
2346
- popupInfo = popupInfo.replace(/<\/p>/gi, "");
2347
- // Replace \n with the line separator character
2348
- popupInfo = popupInfo.replace(/\n/gi, "|");
2349
- // Remove remaining HTML tags, replace 0xA0 that popup uses for spaces, and replace some char representations
2350
- let labelSpec = popupInfo
2351
- .replace(/<[\s.]*[^<>]*\/?>/gi, "")
2352
- .replace(/\xA0/gi, " ")
2353
- .replace(/&lt;/gi, "<")
2354
- .replace(/&gt;/gi, ">")
2355
- .replace(/&nbsp;/gi, " ");
2356
- // Trim each line
2357
- labelSpec = labelSpec.replace(/\s*\|\s*/g, "|");
2358
- // Remove empty lines
2359
- while (labelSpec.match(/\|\|/)) {
2360
- labelSpec = labelSpec.replace(/\|\|/, "|");
2361
- }
2362
- // Remove leading and trailing line feeds
2363
- labelSpec = labelSpec.replace(/^\|/, "");
2364
- labelSpec = labelSpec.replace(/\|$/, "");
2365
- return labelSpec.trim();
2415
+ return {
2416
+ type: "pattern",
2417
+ format: _cleanupLabel(popupInfo)
2418
+ };
2366
2419
  }
2367
2420
  /**
2368
- * Extracts Arcade expressions from the lines of a label format and creates an Arcade executor for each
2369
- * referenced expression name.
2421
+ * Converts an Arcade expression of a custom popup into a multiline label specification.
2370
2422
  *
2371
- * @param labelFormat Label to examine
2372
- * @param layer Layer from which to fetch features
2373
- * @return Promise resolving to a set of executors keyed using the expression name
2423
+ * @param expressionInfo Structure containing expression and info about it
2424
+ * @return Promise resolving to an "executor" label spec
2374
2425
  */
2375
- async function _createArcadeExecutors(labelFormat, layer) {
2376
- const arcadeExecutors = {};
2377
- // Are any Arcade expressions in the layer?
2378
- if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
2379
- return Promise.resolve(arcadeExecutors);
2380
- }
2381
- // Are there any Arcade expressions in the label format?
2382
- const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
2383
- const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
2384
- if (!arcadeExpressionsMatches) {
2385
- return Promise.resolve(arcadeExecutors);
2386
- }
2387
- // Generate an Arcade executor for each match
2426
+ async function _convertPopupArcadeToLabelSpec(expressionInfo) {
2427
+ // Generate an Arcade executor
2388
2428
  const [arcade] = await loadModules(["esri/arcade"]);
2389
2429
  const labelingProfile = {
2390
2430
  variables: [
@@ -2406,24 +2446,10 @@ async function _createArcadeExecutors(labelFormat, layer) {
2406
2446
  }
2407
2447
  ]
2408
2448
  };
2409
- const createArcadeExecutorPromises = {};
2410
- arcadeExpressionsMatches.forEach((match) => {
2411
- const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2412
- (layer.popupTemplate.expressionInfos || []).forEach(expressionInfo => {
2413
- if (expressionInfo.name === expressionName) {
2414
- createArcadeExecutorPromises[expressionName] =
2415
- arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
2416
- }
2417
- });
2418
- });
2419
- const promises = Object.values(createArcadeExecutorPromises);
2420
- return Promise.all(promises)
2421
- .then(executors => {
2422
- const expressionNames = Object.keys(createArcadeExecutorPromises);
2423
- for (let i = 0; i < expressionNames.length; ++i) {
2424
- arcadeExecutors[expressionNames[i]] = executors[i].valueOf();
2425
- }
2426
- return arcadeExecutors;
2449
+ const executor = await arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
2450
+ return Promise.resolve({
2451
+ type: "executor",
2452
+ format: executor
2427
2453
  });
2428
2454
  }
2429
2455
  /**
@@ -2438,38 +2464,6 @@ function _createFilename(selectionSetNames) {
2438
2464
  const title = selectionSetNames.length > 0 ? selectionSetNames.join(", ") : "download";
2439
2465
  return title;
2440
2466
  }
2441
- /**
2442
- * Creates relationship queries for each relationship flag in a popup.
2443
- * @param layer Layer whose popup is to be examined
2444
- * @return Hash of relationships by their id, or null if there are no relationship flags in the
2445
- * popup; each relationship has the properties layer and relatedQuery for the related layer
2446
- * and the query for that layer
2447
- */
2448
- function _createRelationshipQueries(layer) {
2449
- const relationships = {};
2450
- const relationshipFieldPattern = /\{relationships\/\d+\//gm;
2451
- const relationshipIdPattern = /\d+/;
2452
- // Test if this popup has any relationship references
2453
- const matches = layer.popupTemplate.content[0].text.match(relationshipFieldPattern);
2454
- if (matches) {
2455
- matches.forEach(match => {
2456
- // Add a query to a found relationship if we don't already have one
2457
- const id = match.match(relationshipIdPattern)[0];
2458
- if (!relationships.hasOwnProperty(id)) {
2459
- const relatedQuery = {
2460
- outFields: ['*'],
2461
- relationshipId: id,
2462
- returnGeometry: false
2463
- };
2464
- relationships[id] = {
2465
- layer,
2466
- relatedQuery
2467
- };
2468
- }
2469
- });
2470
- }
2471
- return relationships;
2472
- }
2473
2467
  /**
2474
2468
  * Extracts Arcade expression references from the lines of a label format.
2475
2469
  *
@@ -2487,7 +2481,7 @@ function _getExpressionsFromLabel(labelFormat) {
2487
2481
  * @param labelFormat Label to examine
2488
2482
  * @returns Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
2489
2483
  */
2490
- function _getFieldsFromLabel(labelFormat) {
2484
+ function _getFieldExpressionsFromLabel(labelFormat) {
2491
2485
  // Get all fields
2492
2486
  const fieldExpressions = [];
2493
2487
  let iStart = 0;
@@ -2509,6 +2503,81 @@ function _getFieldsFromLabel(labelFormat) {
2509
2503
  // Remove the Arcade expressions from the returned list of field expressions
2510
2504
  return fieldExpressions.filter(fieldExpression => arcadeExpressions.indexOf(fieldExpression) < 0);
2511
2505
  }
2506
+ /**
2507
+ * Extracts field names from field name expressions.
2508
+ *
2509
+ * @param fieldExpressions Array of field name expressions, e.g., ["{NAME}", "{STREET}", "{CITY}", "{STATE}", "{ZIP}"]
2510
+ * @returns Array of field names, e.g., ["NAME", "STREET", "CITY", "STATE", "ZIP"]
2511
+ */
2512
+ function _getFieldNamesFromFieldExpressions(fieldExpressions) {
2513
+ return fieldExpressions.map(expr => expr.substring(1, expr.length - 1));
2514
+ }
2515
+ /**
2516
+ * Extracts the label format from the layer.
2517
+ *
2518
+ * @param layer Layer with label format
2519
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2520
+ * all attributes are exported
2521
+ * @param attributeFormats Empty object to hold the formats for each attribute in a feature; the object is filled
2522
+ * with formats by this function
2523
+ * @returns A Promise resolving to the format of a single label, e.g., for ILabelFormat type "pattern":
2524
+ * "{NAME}|{STREET}|{CITY}, {STATE} {ZIP}"
2525
+ */
2526
+ async function _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats) {
2527
+ var _a, _b, _c, _d, _e, _f;
2528
+ let labelFormat = {
2529
+ type: "unsupported",
2530
+ format: undefined
2531
+ };
2532
+ if (layer.popupEnabled) {
2533
+ layer.popupTemplate.fieldInfos.forEach(
2534
+ // Extract any format info that we have
2535
+ fieldInfo => {
2536
+ if (fieldInfo.format) {
2537
+ attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
2538
+ }
2539
+ });
2540
+ // What is the nature of the label content?
2541
+ // Fields list
2542
+ if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
2543
+ labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
2544
+ // If popup is configured with "no attribute information", then no fields will visible
2545
+ if (labelFormat.format.length === 0) {
2546
+ // Can we use the popup title?
2547
+ labelFormat = layer.popupTemplate.title && typeof layer.popupTemplate.title === "string" ?
2548
+ { type: "pattern", format: layer.popupTemplate.title }
2549
+ :
2550
+ // Otherwise revert to using attributes
2551
+ _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
2552
+ }
2553
+ // Example text: '<p>{name} {age} years &nbsp;</p><p>started: {start}</p>'
2554
+ }
2555
+ 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") {
2556
+ labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
2557
+ // Example expression: 'var feat = $feature\nvar label = `\n\t${feat["name"]} ${feat["age"]} years <br>\n\tstarted: ${feat["start"]}\n`\n\nreturn { \n type : \'text\', \n text : label\n}',
2558
+ }
2559
+ else if (formatUsingLayerPopup && ((_f = (_e = layer.popupTemplate) === null || _e === void 0 ? void 0 : _e.content[0]) === null || _f === void 0 ? void 0 : _f.type) === "expression") {
2560
+ labelFormat = await _convertPopupArcadeToLabelSpec(layer.popupTemplate.content[0].expressionInfo);
2561
+ }
2562
+ }
2563
+ return Promise.resolve(labelFormat);
2564
+ }
2565
+ /**
2566
+ * Extract selectionSetNames from the provided exportInfos
2567
+ *
2568
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2569
+ * @returns selectionSetNames that will be used for export filenames
2570
+ */
2571
+ function _getSelectionSetNames(exportInfos, id = /.+/) {
2572
+ let selectionSetNames = [];
2573
+ Object.keys(exportInfos).forEach(k => {
2574
+ const exportInfo = exportInfos[k];
2575
+ if (id.test(k)) {
2576
+ selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
2577
+ }
2578
+ });
2579
+ return selectionSetNames;
2580
+ }
2512
2581
  /**
2513
2582
  * Prepares an attribute's value by applying domain and type information.
2514
2583
  *
@@ -2517,13 +2586,16 @@ function _getFieldsFromLabel(labelFormat) {
2517
2586
  * @param attributeDomain Domain info for attribute, if any
2518
2587
  * @param attributeFormat Format info for attribute, if any
2519
2588
  * @param intl esri/intl
2520
- * @return Attribute value modified appropriate to domain and type
2589
+ * @return Attribute value modified appropriate to domain and type and converted to a string
2521
2590
  */
2522
2591
  function _prepareAttributeValue(attributeValue, attributeType, attributeDomain, attributeFormat, intl) {
2592
+ if (attributeValue === null || typeof attributeValue === "undefined") {
2593
+ return "";
2594
+ }
2523
2595
  if (attributeDomain && attributeDomain.type === "coded-value") {
2524
2596
  // "coded-value" domain field
2525
2597
  const value = attributeDomain.getName(attributeValue);
2526
- return value;
2598
+ return value.toString();
2527
2599
  }
2528
2600
  else {
2529
2601
  // Non-domain field or unsupported domain type
@@ -2568,8 +2640,6 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2568
2640
  * @returns Promise resolving when function is done
2569
2641
  */
2570
2642
  async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
2571
- var _a, _b, _c, _d;
2572
- const [intl] = await loadModules(["esri/intl"]);
2573
2643
  // Get the features to export
2574
2644
  const featureSet = await queryFeaturesByID(ids, layer, [], false);
2575
2645
  // Get field data types. Do we have any domain-based fields?
@@ -2581,180 +2651,97 @@ async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeH
2581
2651
  });
2582
2652
  const attributeFormats = {};
2583
2653
  // Get the label formatting, if any
2584
- let labelFormat;
2585
- let relationshipQueries = {};
2586
- let arcadeExecutors = {};
2587
- if (layer.popupEnabled) {
2588
- layer.popupTemplate.fieldInfos.forEach(
2589
- // Extract any format info that we have
2590
- fieldInfo => {
2591
- if (fieldInfo.format) {
2592
- attributeFormats[fieldInfo.fieldName] = fieldInfo.format;
2593
- }
2594
- });
2595
- // What data fields are used in the labels?
2596
- // Example labelFormat: ['{NAME}', '{STREET}', '{CITY}, {STATE} {ZIP}']
2597
- if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
2598
- labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
2599
- // If popup is configured with "no attribute information", then no fields will visible
2600
- if (labelFormat.length === 0) {
2601
- // Can we use the popup title?
2602
- // eslint-disable-next-line unicorn/prefer-ternary
2603
- if (typeof layer.popupTemplate.title === "string") {
2604
- labelFormat = layer.popupTemplate.title;
2605
- // Otherwise revert to using attributes
2606
- }
2607
- else {
2608
- labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
2609
- }
2610
- }
2611
- }
2612
- 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") {
2613
- labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
2614
- // Do we need any relationship queries?
2615
- relationshipQueries = _createRelationshipQueries(layer);
2616
- // Do we need any Arcade executors?
2617
- arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
2618
- }
2619
- }
2654
+ const labelFormat = await _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats);
2620
2655
  // Apply the label format
2621
- let labels;
2622
- // eslint-disable-next-line unicorn/prefer-ternary
2623
- if (labelFormat) {
2624
- // Find the label fields that we need to replace with values
2625
- const arcadeExpressionMatches = _getExpressionsFromLabel(labelFormat);
2626
- const attributeMatches = _getFieldsFromLabel(labelFormat);
2627
- // Convert feature attributes into an array of labels
2628
- const relationshipKeys = Object.keys(relationshipQueries);
2629
- labels = await Promise.all(featureSet.map(async (feature) => {
2630
- let labelPrep = labelFormat;
2631
- // Replace Arcade expressions in this feature
2632
- arcadeExpressionMatches.forEach((match) => {
2633
- const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2634
- const value = arcadeExecutors[expressionName].execute({ "$feature": feature });
2635
- labelPrep = labelPrep.replace(match, value);
2636
- });
2637
- // Replace relationship expressions in this feature
2638
- const relatedFeatureQueries = [];
2639
- const relationshipIds = [];
2640
- relationshipKeys.forEach((relationshipId) => {
2641
- const relationship = relationshipQueries[relationshipId];
2642
- const objectId = feature.attributes[relationship.layer.objectIdField];
2643
- const relatedQuery = Object.assign(Object.assign({}, relationship.relatedQuery), { objectIds: [objectId] });
2644
- relatedFeatureQueries.push(relationship.layer.queryRelatedFeatures(relatedQuery));
2645
- relationshipIds.push(relationshipId);
2646
- });
2647
- // Wait for all of the queries for related records for this label
2648
- const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
2649
- relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
2650
- // We have an object with FeatureSets grouped by source layer or table objectIds
2651
- const relationshipId = relationshipIds[i];
2652
- // Run through the source layer or table objectIds
2653
- Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
2654
- // We have a feature set
2655
- const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
2656
- // Get the values from each feature and replace them in the label
2657
- relatedFeatures.forEach(feature => {
2658
- // Merge the base and related feature attributes and create the label
2659
- // Prefix related feature's attributes with "relationships/<id>/" to match popup
2660
- const rePrefix = "\{relationships/" + relationshipId + "/";
2661
- const reSuffix = "\}";
2662
- const attributes = feature.attributes;
2663
- Object.keys(attributes).forEach(attributeName => {
2664
- // Replace the value using the attribute name as a relationship
2665
- const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
2666
- labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
2667
- });
2668
- });
2669
- });
2670
- });
2671
- // Replace non-Arcade fields in this feature
2672
- attributeMatches.forEach((match) => {
2673
- const attributeName = match.substring(1, match.length - 1);
2674
- const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
2675
- labelPrep = labelPrep.replace(match, value);
2676
- });
2677
- // Split label into lines
2678
- let label = labelPrep.split(lineSeparatorChar);
2679
- // Trim lines
2680
- label = label.map(line => line.trim());
2681
- return label;
2682
- }));
2683
- }
2684
- else {
2656
+ const labels = labelFormat.type === "unsupported" ?
2685
2657
  // Export all attributes
2686
- labels = featureSet.map(feature => {
2687
- return Object.keys(feature.attributes).map((attributeName) => {
2688
- const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], null, intl);
2689
- return `${value}`;
2690
- });
2658
+ await _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames)
2659
+ : labelFormat.type == "pattern" ?
2660
+ // Export attributes in format
2661
+ await _prepareLabelsFromPattern(featureSet, attributeTypes, attributeDomains, attributeFormats, labelFormat.format, includeHeaderNames)
2662
+ :
2663
+ // Export attributes in expression
2664
+ await _prepareLabelsUsingExecutor(featureSet, labelFormat.format);
2665
+ return Promise.resolve(labels);
2666
+ }
2667
+ /**
2668
+ * Creates labels from all attributes in items.
2669
+ *
2670
+ * @param featureSet Features to convert to labels
2671
+ * @param attributeTypes Type for each attribute in a feature
2672
+ * @param attributeDomains Domains for each attribute in a feature
2673
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
2674
+ * @returns Promise resolving with list of labels, each of which is a list of label lines
2675
+ */
2676
+ async function _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames = false) {
2677
+ const [intl] = await loadModules(["esri/intl"]);
2678
+ // Export all attributes
2679
+ const labels = featureSet.map(feature => {
2680
+ return Object.keys(feature.attributes).map((attributeName) => {
2681
+ return _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], null, intl);
2691
2682
  });
2692
- }
2683
+ });
2693
2684
  // Add header names
2694
2685
  if (includeHeaderNames) {
2695
- let headerNames = [];
2696
- if (labelFormat) {
2697
- headerNames = labelFormat.replace(/\{/g, "").replace(/\}/g, "").split(lineSeparatorChar);
2698
- }
2699
- else {
2700
- const featuresAttrs = featureSet[0].attributes;
2701
- Object.keys(featuresAttrs).forEach(k => {
2702
- headerNames.push(k);
2703
- });
2704
- }
2686
+ const headerNames = [];
2687
+ const featuresAttrs = featureSet[0].attributes;
2688
+ Object.keys(featuresAttrs).forEach(k => {
2689
+ headerNames.push(k);
2690
+ });
2705
2691
  labels.unshift(headerNames);
2706
2692
  }
2707
2693
  return Promise.resolve(labels);
2708
2694
  }
2709
2695
  /**
2710
- * Remove any duplicate labels
2711
- *
2712
- * @param labels Labels to evaluate for duplicates
2713
- * @returns labels with duplicates removed
2714
- */
2715
- function removeDuplicateLabels(labels) {
2716
- const labelsAsStrings = labels.map(label => JSON.stringify(label));
2717
- const uniqueLabels = new Set(labelsAsStrings);
2718
- return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
2719
- }
2720
- /**
2721
- * Extract selectionSetNames from the provided exportInfos
2696
+ * Creates labels from attributes in a layer popup.
2722
2697
  *
2723
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2724
- * @returns selectionSetNames that will be used for export filenames
2698
+ * @param featureSet Features to convert to labels
2699
+ * @param attributeTypes Type for each attribute in a feature
2700
+ * @param attributeDomains Domains for each attribute in a feature
2701
+ * @param attributeFormats Formats for each attribute in a feature
2702
+ * @param labelFormat Format for label
2703
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
2704
+ * @returns Promise resolving with list of labels, each of which is a list of label lines
2725
2705
  */
2726
- function _getSelectionSetNames(exportInfos, id = /.+/) {
2727
- let selectionSetNames = [];
2728
- Object.keys(exportInfos).forEach(k => {
2729
- const exportInfo = exportInfos[k];
2730
- if (id.test(k)) {
2731
- selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
2732
- }
2733
- });
2734
- return selectionSetNames;
2706
+ async function _prepareLabelsFromPattern(featureSet, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
2707
+ const [intl] = await loadModules(["esri/intl"]);
2708
+ // Find the label fields that we need to replace with values
2709
+ const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
2710
+ const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
2711
+ // Convert feature attributes into an array of labels
2712
+ const labels = await Promise.all(featureSet.map(async (feature) => {
2713
+ let labelPrep = labelFormat;
2714
+ // Replace non-Arcade fields in this feature
2715
+ attributeNames.forEach((attributeName, i) => {
2716
+ const value = _prepareAttributeValue(feature.attributes[attributeName], attributeTypes[attributeName], attributeDomains[attributeName], attributeFormats[attributeName], intl);
2717
+ labelPrep = labelPrep.replace(attributeExpressionMatches[i], value);
2718
+ });
2719
+ // Split label into lines
2720
+ let label = labelPrep.split(lineSeparatorChar);
2721
+ // Trim lines
2722
+ label = label.map(line => _cleanupLabel(line));
2723
+ return label;
2724
+ }));
2725
+ // Add header names
2726
+ if (includeHeaderNames) {
2727
+ labels.unshift(attributeNames);
2728
+ }
2729
+ return Promise.resolve(labels);
2735
2730
  }
2736
2731
  /**
2737
- * Create and consolidate labels from all layers
2732
+ * Creates labels from attributes in an Arcade label.
2738
2733
  *
2739
- * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2740
- * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2741
- * all attributes are exported
2742
- * @param includeHeaderNames Add the label format at the front of the list of generated labels
2743
- * @returns selectionSetNames that will be used for export filenames
2734
+ * @param featureSet Features to convert to labels
2735
+ * @param labelFormat Arcade executor for label
2736
+ * @returns Promise resolving with list of labels, each of which is a list of label lines
2744
2737
  */
2745
- async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2746
- const labelRequests = [];
2747
- Object.keys(exportInfos).forEach(k => {
2748
- var _a;
2749
- const labelInfo = exportInfos[k];
2750
- labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2751
- if (isCSVExport) {
2752
- // add the layer id as a temp value separator that we can use to split values for CSV export
2753
- labelRequests.push(Promise.resolve([[k]]));
2754
- }
2755
- });
2756
- const labels = await Promise.all(labelRequests);
2757
- return labels.reduce((prev, cur) => prev.concat(cur), []);
2738
+ async function _prepareLabelsUsingExecutor(featureSet, labelFormat) {
2739
+ // Convert feature attributes into an array of labels
2740
+ const execResults = await Promise.all(featureSet.map(async (feature) => {
2741
+ return labelFormat.executeAsync({ "$feature": feature });
2742
+ }));
2743
+ const labels = execResults.map(result => _cleanupLabel(result.text).split(lineSeparatorChar));
2744
+ return Promise.resolve(labels);
2758
2745
  }
2759
2746
  //#endregion
2760
2747
 
@@ -9,7 +9,7 @@ import { y as getElementProp } from './dom.js';
9
9
  /*!
10
10
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
11
11
  * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
12
- * v1.6.0
12
+ * v1.6.1
13
13
  */
14
14
  const CSS = {
15
15
  containerSmall: "container--s",
@@ -11,7 +11,7 @@ import { d as defineCustomElement$1 } from './icon.js';
11
11
  /*!
12
12
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
13
13
  * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
14
- * v1.6.0
14
+ * v1.6.1
15
15
  */
16
16
  const CSS = {
17
17
  containerLink: "container--link",
@@ -16,7 +16,7 @@ import { o as onToggleOpenCloseComponent } from './openCloseComponent.js';
16
16
  /*!
17
17
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
18
18
  * See https://github.com/Esri/calcite-design-system/blob/main/LICENSE.md for details.
19
- * v1.6.0
19
+ * v1.6.1
20
20
  */
21
21
  const SLOTS = {
22
22
  dropdownTrigger: "trigger",