@esri/solutions-components 0.6.12 → 0.6.13

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 (338) hide show
  1. package/dist/assets/t9n/layer-table/resources.json +4 -3
  2. package/dist/assets/t9n/layer-table/resources_en.json +4 -3
  3. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2 -1
  4. package/dist/cjs/card-manager_3.cjs.entry.js +60 -28
  5. package/dist/cjs/clean-url-d5326abb.js +573 -0
  6. package/dist/cjs/crowdsource-manager.cjs.entry.js +5 -3
  7. package/dist/cjs/{downloadUtils-43f5be48.js → downloadUtils-fb4744e0.js} +296 -51
  8. package/dist/cjs/edit-card_2.cjs.entry.js +3 -3
  9. package/dist/cjs/{index.es-8da43c21.js → index.es-372e33de.js} +2 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/map-select-tools_3.cjs.entry.js +8 -5
  12. package/dist/cjs/public-notification.cjs.entry.js +5 -4
  13. package/dist/cjs/solution-configuration.cjs.entry.js +44 -43
  14. package/dist/cjs/solution-contents_3.cjs.entry.js +2 -1
  15. package/dist/cjs/{solution-store-3cd104d8.js → solution-store-c443e657.js} +7 -572
  16. package/dist/cjs/solutions-components.cjs.js +1 -1
  17. package/dist/collection/components/card-manager/card-manager.css +0 -5
  18. package/dist/collection/components/card-manager/card-manager.js +1 -1
  19. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +2 -2
  20. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +40 -2
  21. package/dist/collection/components/edit-card/edit-card.css +8 -0
  22. package/dist/collection/components/info-card/info-card.css +14 -14
  23. package/dist/collection/components/info-card/info-card.js +1 -1
  24. package/dist/collection/components/layer-table/layer-table.css +12 -0
  25. package/dist/collection/components/layer-table/layer-table.js +90 -24
  26. package/dist/collection/components/pdf-download/pdf-download.js +34 -6
  27. package/dist/collection/components/public-notification/public-notification.js +3 -3
  28. package/dist/collection/utils/downloadUtils.js +208 -82
  29. package/dist/collection/utils/downloadUtils.ts +257 -85
  30. package/dist/collection/utils/test/downloadUtils.spec.js +163 -134
  31. package/dist/collection/utils/test/downloadUtils.spec.tsx +2 -0
  32. package/dist/components/calcite-modal.js +1 -409
  33. package/dist/components/card-manager2.js +2 -2
  34. package/dist/components/clean-url.js +567 -0
  35. package/dist/components/crowdsource-manager.js +16 -12
  36. package/dist/components/downloadUtils.js +295 -50
  37. package/dist/components/edit-card2.js +1 -1
  38. package/dist/components/info-card2.js +2 -2
  39. package/dist/components/layer-table2.js +65 -31
  40. package/dist/components/modal.js +416 -0
  41. package/dist/components/pdf-download2.js +6 -4
  42. package/dist/components/public-notification.js +3 -3
  43. package/dist/components/solution-configuration.js +25 -24
  44. package/dist/components/solution-store.js +2 -562
  45. package/dist/esm/{ExpandToggle-86761b28.js → ExpandToggle-e614e3e4.js} +1 -1
  46. package/dist/esm/{ar-4a5375c6.js → ar-2f678abc.js} +8 -8
  47. package/dist/esm/{bg-b25e4b7a.js → bg-e514c4d7.js} +8 -8
  48. package/dist/esm/{bs-2485dfed.js → bs-81584b09.js} +8 -8
  49. package/dist/esm/buffer-tools_4.entry.js +4 -4
  50. package/dist/esm/{ca-bba36d26.js → ca-e8c40e21.js} +8 -8
  51. package/dist/esm/calcite-accordion-item.entry.js +1 -1
  52. package/dist/esm/calcite-action-bar_3.entry.js +5 -5
  53. package/dist/esm/calcite-action-group_2.entry.js +3 -3
  54. package/dist/esm/calcite-action-pad.entry.js +4 -4
  55. package/dist/esm/calcite-action_2.entry.js +5 -5
  56. package/dist/esm/calcite-alert.entry.js +3 -3
  57. package/dist/esm/calcite-avatar.entry.js +1 -1
  58. package/dist/esm/calcite-block-section.entry.js +3 -3
  59. package/dist/esm/calcite-block.entry.js +3 -3
  60. package/dist/esm/calcite-button.entry.js +5 -5
  61. package/dist/esm/calcite-card.entry.js +3 -3
  62. package/dist/esm/calcite-checkbox.entry.js +3 -3
  63. package/dist/esm/calcite-chip-group.entry.js +1 -1
  64. package/dist/esm/calcite-chip.entry.js +3 -3
  65. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +1 -1
  66. package/dist/esm/calcite-color-picker.entry.js +3 -3
  67. package/dist/esm/calcite-combobox-item-group.entry.js +2 -2
  68. package/dist/esm/calcite-combobox_6.entry.js +7 -7
  69. package/dist/esm/calcite-date-picker-day_3.entry.js +3 -3
  70. package/dist/esm/calcite-date-picker.entry.js +5 -5
  71. package/dist/esm/calcite-fab.entry.js +1 -1
  72. package/dist/esm/calcite-filter_3.entry.js +3 -3
  73. package/dist/esm/calcite-flow-item.entry.js +3 -3
  74. package/dist/esm/calcite-icon.entry.js +1 -1
  75. package/dist/esm/calcite-inline-editable.entry.js +4 -4
  76. package/dist/esm/calcite-input-date-picker.entry.js +9 -9
  77. package/dist/esm/calcite-input-number_2.entry.js +5 -5
  78. package/dist/esm/{calcite-input-time-picker-7da2e80a.js → calcite-input-time-picker-fe6e499a.js} +55 -55
  79. package/dist/esm/calcite-input-time-picker.entry.js +8 -8
  80. package/dist/esm/calcite-input-time-zone.entry.js +5 -5
  81. package/dist/esm/calcite-input_2.entry.js +5 -5
  82. package/dist/esm/calcite-label.entry.js +2 -2
  83. package/dist/esm/calcite-link.entry.js +1 -1
  84. package/dist/esm/calcite-menu-item.entry.js +3 -3
  85. package/dist/esm/calcite-menu.entry.js +3 -3
  86. package/dist/esm/calcite-modal.entry.js +4 -4
  87. package/dist/esm/calcite-navigation.entry.js +1 -1
  88. package/dist/esm/calcite-notice.entry.js +3 -3
  89. package/dist/esm/calcite-option_2.entry.js +3 -3
  90. package/dist/esm/calcite-pagination.entry.js +3 -3
  91. package/dist/esm/calcite-panel_2.entry.js +3 -3
  92. package/dist/esm/calcite-pick-list-group.entry.js +1 -1
  93. package/dist/esm/calcite-pick-list-item.entry.js +3 -3
  94. package/dist/esm/calcite-pick-list.entry.js +2 -2
  95. package/dist/esm/calcite-radio-button.entry.js +3 -3
  96. package/dist/esm/calcite-rating.entry.js +5 -5
  97. package/dist/esm/calcite-scrim.entry.js +3 -3
  98. package/dist/esm/calcite-segmented-control_2.entry.js +3 -3
  99. package/dist/esm/calcite-shell-center-row.entry.js +1 -1
  100. package/dist/esm/calcite-shell-panel_14.entry.js +7 -6
  101. package/dist/esm/calcite-sortable-list.entry.js +2 -2
  102. package/dist/esm/calcite-stepper-item.entry.js +2 -2
  103. package/dist/esm/calcite-stepper.entry.js +1 -1
  104. package/dist/esm/calcite-switch.entry.js +3 -3
  105. package/dist/esm/calcite-text-area.entry.js +5 -5
  106. package/dist/esm/calcite-tile.entry.js +1 -1
  107. package/dist/esm/calcite-time-picker.entry.js +4 -4
  108. package/dist/esm/calcite-tip-manager.entry.js +3 -3
  109. package/dist/esm/calcite-tip.entry.js +3 -3
  110. package/dist/esm/calcite-tooltip.entry.js +2 -2
  111. package/dist/esm/calcite-tree_3.entry.js +1 -1
  112. package/dist/esm/card-manager_3.entry.js +60 -28
  113. package/dist/esm/clean-url-bce022e6.js +567 -0
  114. package/dist/esm/crowdsource-manager.entry.js +5 -3
  115. package/dist/esm/{cs-1052c5ac.js → cs-af5f115e.js} +8 -8
  116. package/dist/esm/{da-b7ed9204.js → da-06d9e22c.js} +8 -8
  117. package/dist/esm/{date-bd5b879c.js → date-641ae749.js} +1 -1
  118. package/dist/esm/{de-at-a993e5ae.js → de-at-f55a700a.js} +8 -8
  119. package/dist/esm/{de-ch-acff745d.js → de-ch-7307675f.js} +8 -8
  120. package/dist/esm/{de-bb68e752.js → de-dc98363f.js} +8 -8
  121. package/dist/esm/{dom-37f2dec9.js → dom-2b326ec3.js} +1 -1
  122. package/dist/esm/{downloadUtils-42156cd8.js → downloadUtils-67c7a6c8.js} +296 -51
  123. package/dist/esm/edit-card_2.entry.js +3 -3
  124. package/dist/esm/{el-9de96ff0.js → el-91c64808.js} +8 -8
  125. package/dist/esm/{en-au-f68b6bde.js → en-au-df08cc25.js} +8 -8
  126. package/dist/esm/{en-ca-5360517e.js → en-ca-175f7c0f.js} +8 -8
  127. package/dist/esm/{en-gb-de0b3125.js → en-gb-90a08c7f.js} +8 -8
  128. package/dist/esm/{es-5ecbba77.js → es-5cb54b05.js} +8 -8
  129. package/dist/esm/{es-mx-aa126462.js → es-mx-3a0cb804.js} +8 -8
  130. package/dist/esm/{et-7113eeb8.js → et-eceac6dc.js} +8 -8
  131. package/dist/esm/{fi-ffa60f15.js → fi-26e1c14f.js} +8 -8
  132. package/dist/esm/{floating-ui-7cde67cf.js → floating-ui-9f8e4ed4.js} +1 -1
  133. package/dist/esm/{focusTrapComponent-ec344399.js → focusTrapComponent-ad2c3a31.js} +1 -1
  134. package/dist/esm/{form-24e6ef1d.js → form-0871d2c6.js} +1 -1
  135. package/dist/esm/{fr-681c5bf6.js → fr-12a5b0f7.js} +8 -8
  136. package/dist/esm/{fr-ch-9af1f8b1.js → fr-ch-e3406887.js} +8 -8
  137. package/dist/esm/{he-5188f277.js → he-61eba811.js} +8 -8
  138. package/dist/esm/{hi-6a31e3a4.js → hi-a50282b5.js} +8 -8
  139. package/dist/esm/{hr-0598e59d.js → hr-da8bffaf.js} +8 -8
  140. package/dist/esm/{hu-13cb9f41.js → hu-dab932f1.js} +8 -8
  141. package/dist/esm/{id-7f342499.js → id-de468947.js} +8 -8
  142. package/dist/esm/{index.es-f47c4153.js → index.es-59a67d3d.js} +2 -1
  143. package/dist/esm/{it-57d790f2.js → it-375d9936.js} +8 -8
  144. package/dist/esm/{it-ch-081af760.js → it-ch-7e663d63.js} +8 -8
  145. package/dist/esm/{ja-3affb68e.js → ja-36dbe39d.js} +8 -8
  146. package/dist/esm/{ko-736632aa.js → ko-858bc871.js} +8 -8
  147. package/dist/esm/{label-b6dfb4d5.js → label-b8caf984.js} +1 -1
  148. package/dist/esm/loader.js +1 -1
  149. package/dist/esm/{locale-146251f7.js → locale-00000ab4.js} +1 -1
  150. package/dist/esm/{lt-e7d9b1c3.js → lt-d6dfa7e4.js} +8 -8
  151. package/dist/esm/{lv-4d1a507e.js → lv-facd25c5.js} +8 -8
  152. package/dist/esm/map-select-tools_3.entry.js +8 -5
  153. package/dist/esm/{mk-f960312d.js → mk-5ed05b6a.js} +8 -8
  154. package/dist/esm/{nb-4556b5e9.js → nb-936fc687.js} +8 -8
  155. package/dist/esm/{nl-8e281c01.js → nl-a923d626.js} +8 -8
  156. package/dist/esm/{pl-1460fd5a.js → pl-b1426275.js} +8 -8
  157. package/dist/esm/{pt-660332b6.js → pt-1ac2453f.js} +8 -8
  158. package/dist/esm/{pt-br-dba48f49.js → pt-br-7194cc5f.js} +8 -8
  159. package/dist/esm/public-notification.entry.js +5 -4
  160. package/dist/esm/{ro-ac18f292.js → ro-518aaed1.js} +8 -8
  161. package/dist/esm/{ru-b914f6b7.js → ru-762127a3.js} +8 -8
  162. package/dist/esm/{shared-list-render-cc889757.js → shared-list-render-ec232615.js} +1 -1
  163. package/dist/esm/{sk-1be12963.js → sk-f367b7ba.js} +8 -8
  164. package/dist/esm/{sl-5d47e4e4.js → sl-052fd4d2.js} +8 -8
  165. package/dist/esm/solution-configuration.entry.js +25 -24
  166. package/dist/esm/solution-contents_3.entry.js +2 -1
  167. package/dist/esm/{solution-store-cf902566.js → solution-store-b29d50f7.js} +2 -562
  168. package/dist/esm/solutions-components.js +1 -1
  169. package/dist/esm/{sortableComponent-8a84709a.js → sortableComponent-ebd6bb72.js} +1 -1
  170. package/dist/esm/{sr-3281c92d.js → sr-4dc0fdb9.js} +8 -8
  171. package/dist/esm/{sv-e5169404.js → sv-bdc87a4d.js} +8 -8
  172. package/dist/esm/{t9n-d9c203e4.js → t9n-9791aa0c.js} +1 -1
  173. package/dist/esm/{th-937796b8.js → th-d9df674c.js} +8 -8
  174. package/dist/esm/{time-fa1151aa.js → time-73378c4a.js} +1 -1
  175. package/dist/esm/{tr-6d3b100b.js → tr-61e134eb.js} +8 -8
  176. package/dist/esm/{uk-a6edcacf.js → uk-ea3d8da7.js} +8 -8
  177. package/dist/esm/{utils-667cc396.js → utils-593fafd7.js} +1 -1
  178. package/dist/esm/{utils-24a35b5a.js → utils-bd52db7d.js} +2 -2
  179. package/dist/esm/{vi-bf4c179c.js → vi-ade1c25b.js} +8 -8
  180. package/dist/esm/{zh-cn-de1858cb.js → zh-cn-b8756118.js} +8 -8
  181. package/dist/esm/{zh-hk-12fa404f.js → zh-hk-d18c05d9.js} +8 -8
  182. package/dist/esm/{zh-tw-5c4220e5.js → zh-tw-9c98ff7c.js} +8 -8
  183. package/dist/solutions-components/{p-3b891cc4.entry.js → p-01fea8d5.entry.js} +1 -1
  184. package/dist/solutions-components/{p-d793ec96.entry.js → p-0219a1a9.entry.js} +5 -5
  185. package/dist/solutions-components/{p-65022e7f.entry.js → p-02ff64f4.entry.js} +1 -1
  186. package/dist/solutions-components/p-062254a6.entry.js +6 -0
  187. package/dist/solutions-components/{p-bff158ff.js → p-062d2f9a.js} +1 -1
  188. package/dist/solutions-components/{p-f4e5b7e5.entry.js → p-084bced1.entry.js} +1 -1
  189. package/dist/solutions-components/{p-c261335b.entry.js → p-088e4cfc.entry.js} +1 -1
  190. package/dist/solutions-components/{p-96239d0d.js → p-08e35485.js} +1 -1
  191. package/dist/solutions-components/{p-3d3772fb.js → p-0d14d33a.js} +1 -1
  192. package/dist/solutions-components/{p-7f271c31.js → p-11550b3c.js} +3 -3
  193. package/dist/solutions-components/{p-ad19f9b0.entry.js → p-120c4098.entry.js} +1 -1
  194. package/dist/solutions-components/{p-45419d93.entry.js → p-12bcd474.entry.js} +1 -1
  195. package/dist/solutions-components/{p-bd82849c.entry.js → p-1597ec4b.entry.js} +1 -1
  196. package/dist/solutions-components/{p-afb35c95.js → p-17d176b5.js} +14 -43
  197. package/dist/solutions-components/{p-0503c78d.js → p-1b41181b.js} +44 -29
  198. package/dist/solutions-components/{p-127c3866.js → p-1c5787b1.js} +1 -1
  199. package/dist/solutions-components/{p-b97886b3.entry.js → p-1d9a5198.entry.js} +1 -1
  200. package/dist/solutions-components/{p-8e3e1ce8.entry.js → p-1dd5c4e6.entry.js} +1 -1
  201. package/dist/solutions-components/{p-97b69f54.entry.js → p-1e62d118.entry.js} +1 -1
  202. package/dist/solutions-components/{p-537c34a4.entry.js → p-1fae3819.entry.js} +1 -1
  203. package/dist/solutions-components/{p-82f0b25b.js → p-21aa112d.js} +1 -1
  204. package/dist/solutions-components/{p-f8944f59.entry.js → p-252a9a7f.entry.js} +1 -1
  205. package/dist/solutions-components/{p-80ea5869.js → p-26b28806.js} +1 -1
  206. package/dist/solutions-components/{p-dac10448.js → p-280fd963.js} +3 -3
  207. package/dist/solutions-components/{p-79d7f324.js → p-29049359.js} +1 -1
  208. package/dist/solutions-components/{p-c033b8ec.entry.js → p-2b378389.entry.js} +1 -1
  209. package/dist/solutions-components/{p-19ec0463.js → p-2bdd1a5d.js} +1 -1
  210. package/dist/solutions-components/{p-cacfa6ae.js → p-2ee21e9d.js} +1 -1
  211. package/dist/solutions-components/{p-300f4299.js → p-2f42ae51.js} +1 -1
  212. package/dist/solutions-components/{p-418be467.js → p-30b3261c.js} +1 -1
  213. package/dist/solutions-components/{p-4d91443a.entry.js → p-32ba2223.entry.js} +1 -1
  214. package/dist/solutions-components/{p-702c6093.js → p-34673137.js} +1 -1
  215. package/dist/solutions-components/{p-61af54b9.entry.js → p-3566ee69.entry.js} +1 -1
  216. package/dist/solutions-components/{p-90a9126f.js → p-358b9cc8.js} +1 -1
  217. package/dist/solutions-components/p-3a6c8fc3.entry.js +6 -0
  218. package/dist/solutions-components/p-3a8d82a2.js +11 -0
  219. package/dist/solutions-components/{p-628c170b.entry.js → p-3ab94526.entry.js} +1 -1
  220. package/dist/solutions-components/p-3b1fc7a2.entry.js +6 -0
  221. package/dist/solutions-components/{p-b1daad7e.js → p-3f7119c1.js} +1 -1
  222. package/dist/solutions-components/{p-f0f5ecb2.js → p-3fcd035e.js} +1 -1
  223. package/dist/solutions-components/{p-3766be72.js → p-419c9d89.js} +1 -1
  224. package/dist/solutions-components/p-453d1b31.entry.js +6 -0
  225. package/dist/solutions-components/{p-337f6adf.js → p-46918548.js} +1 -1
  226. package/dist/solutions-components/p-49e9e4e3.js +12 -0
  227. package/dist/solutions-components/p-4d942b0f.entry.js +36 -0
  228. package/dist/solutions-components/{p-85e0d2a3.js → p-4fc92419.js} +1 -1
  229. package/dist/solutions-components/{p-0d08a75d.entry.js → p-52afbe07.entry.js} +1 -1
  230. package/dist/solutions-components/{p-9391bb74.js → p-573d0763.js} +1 -1
  231. package/dist/solutions-components/{p-87971116.entry.js → p-59ef9461.entry.js} +1 -1
  232. package/dist/solutions-components/{p-25718b9f.entry.js → p-5e5749c0.entry.js} +1 -1
  233. package/dist/solutions-components/{p-54064b61.entry.js → p-5ff22d2e.entry.js} +1 -1
  234. package/dist/solutions-components/{p-4bd793ef.entry.js → p-617f32a0.entry.js} +1 -1
  235. package/dist/solutions-components/{p-747a1293.js → p-6510c06c.js} +1 -1
  236. package/dist/solutions-components/{p-1f69762c.js → p-65ba4d10.js} +1 -1
  237. package/dist/solutions-components/{p-4cb7cdb7.entry.js → p-65ffe4b0.entry.js} +1 -1
  238. package/dist/solutions-components/{p-1b4d6511.js → p-68007503.js} +1 -1
  239. package/dist/solutions-components/{p-e849d2ba.entry.js → p-6ba8483c.entry.js} +2 -2
  240. package/dist/solutions-components/{p-9961a2f9.entry.js → p-6c8c7b98.entry.js} +2 -2
  241. package/dist/solutions-components/{p-ff863f3d.entry.js → p-6e5d9ae9.entry.js} +1 -1
  242. package/dist/solutions-components/{p-b6a1c34f.entry.js → p-6ebf870c.entry.js} +1 -1
  243. package/dist/solutions-components/{p-d2d3e4b5.js → p-72f34a0a.js} +1 -1
  244. package/dist/solutions-components/{p-981fc8e4.entry.js → p-7359a6ac.entry.js} +1 -1
  245. package/dist/solutions-components/{p-9791fbf1.entry.js → p-73ab9d9a.entry.js} +1 -1
  246. package/dist/solutions-components/{p-9abb1c4c.entry.js → p-73fe6f7e.entry.js} +1 -1
  247. package/dist/solutions-components/{p-62e3adbb.js → p-7452d79a.js} +1 -1
  248. package/dist/solutions-components/{p-34169501.js → p-76c2c379.js} +1 -1
  249. package/dist/solutions-components/{p-941721ba.js → p-788aa5d7.js} +1 -1
  250. package/dist/solutions-components/{p-557d4cc5.js → p-79cc0531.js} +2 -2
  251. package/dist/solutions-components/{p-a19d8147.js → p-7a0fa011.js} +1 -1
  252. package/dist/solutions-components/{p-019fe9fe.entry.js → p-7a55cee6.entry.js} +3 -3
  253. package/dist/solutions-components/{p-48329056.entry.js → p-7bc63171.entry.js} +1 -1
  254. package/dist/solutions-components/{p-e7304151.entry.js → p-81664d83.entry.js} +1 -1
  255. package/dist/solutions-components/{p-9504c1b7.js → p-8354f486.js} +1 -1
  256. package/dist/solutions-components/{p-f812e3ee.entry.js → p-84dff306.entry.js} +1 -1
  257. package/dist/solutions-components/{p-a59dba2f.js → p-8594fe6b.js} +1 -1
  258. package/dist/solutions-components/{p-ae3ec77d.js → p-8b2d396e.js} +1 -1
  259. package/dist/solutions-components/{p-38cc8a4d.js → p-8ec6ea34.js} +1 -1
  260. package/dist/solutions-components/{p-da760d1d.entry.js → p-8ee00658.entry.js} +1 -1
  261. package/dist/solutions-components/{p-38211628.js → p-905fcf73.js} +1 -1
  262. package/dist/solutions-components/{p-e502ccce.entry.js → p-929909bc.entry.js} +1 -1
  263. package/dist/solutions-components/{p-dd5f68f2.js → p-948b5722.js} +1 -1
  264. package/dist/solutions-components/{p-39fe9a4c.js → p-956f3207.js} +1 -1
  265. package/dist/solutions-components/{p-f7aa542c.js → p-96287d23.js} +1 -1
  266. package/dist/solutions-components/{p-68630513.entry.js → p-964c0e7d.entry.js} +1 -1
  267. package/dist/solutions-components/{p-b09d8c0e.entry.js → p-98051370.entry.js} +1 -1
  268. package/dist/solutions-components/p-9a8c51bf.entry.js +6 -0
  269. package/dist/solutions-components/{p-efd70bf7.entry.js → p-9a94f48c.entry.js} +2 -2
  270. package/dist/solutions-components/{p-318790b8.js → p-9b94501c.js} +1 -1
  271. package/dist/solutions-components/{p-69e26726.js → p-9d4467a3.js} +1 -1
  272. package/dist/solutions-components/{p-f6cf9943.js → p-9e3c9cd2.js} +1 -1
  273. package/dist/solutions-components/{p-30542275.js → p-9fd59203.js} +1 -1
  274. package/dist/solutions-components/{p-d902b790.js → p-a201bffc.js} +1 -1
  275. package/dist/solutions-components/{p-1552c479.entry.js → p-a3729795.entry.js} +1 -1
  276. package/dist/solutions-components/{p-ae4ad673.entry.js → p-a47ed290.entry.js} +2 -2
  277. package/dist/solutions-components/{p-ca5be55f.entry.js → p-a5ef322f.entry.js} +2 -2
  278. package/dist/solutions-components/p-a776b7e6.entry.js +6 -0
  279. package/dist/solutions-components/{p-3658ebd8.entry.js → p-a97e8d6a.entry.js} +1 -1
  280. package/dist/solutions-components/{p-2937523d.js → p-aaea9203.js} +1 -1
  281. package/dist/solutions-components/{p-b7093e6d.entry.js → p-ad1d56b1.entry.js} +1 -1
  282. package/dist/solutions-components/{p-0ca528ec.js → p-adeb0e8f.js} +1 -1
  283. package/dist/solutions-components/{p-31d2a105.entry.js → p-af63959a.entry.js} +1 -1
  284. package/dist/solutions-components/{p-fbd71543.entry.js → p-b1125581.entry.js} +2 -2
  285. package/dist/solutions-components/{p-b029c6d8.js → p-b20a31c8.js} +1 -1
  286. package/dist/solutions-components/{p-71400268.js → p-b81131b3.js} +1 -1
  287. package/dist/solutions-components/p-b892e595.entry.js +6 -0
  288. package/dist/solutions-components/{p-cc624b0c.entry.js → p-b89c5865.entry.js} +1 -1
  289. package/dist/solutions-components/{p-245d667e.js → p-b9b52743.js} +1 -1
  290. package/dist/solutions-components/{p-0870f436.entry.js → p-ba99e562.entry.js} +1 -1
  291. package/dist/solutions-components/{p-2d614afc.js → p-bc548c06.js} +1 -1
  292. package/dist/solutions-components/{p-29b2f046.js → p-bccbdeb5.js} +1 -1
  293. package/dist/solutions-components/{p-f72e0965.entry.js → p-bd318e33.entry.js} +1 -1
  294. package/dist/solutions-components/{p-74aa84f6.js → p-bd766e49.js} +1 -1
  295. package/dist/solutions-components/{p-1a47516a.entry.js → p-be36d5ed.entry.js} +1 -1
  296. package/dist/solutions-components/{p-9b75102b.entry.js → p-c073d2d6.entry.js} +1 -1
  297. package/dist/solutions-components/{p-712ea336.entry.js → p-c644edf5.entry.js} +1 -1
  298. package/dist/solutions-components/p-c6b7e7ff.js +11 -0
  299. package/dist/solutions-components/{p-dc80cb69.entry.js → p-ca0b3a2b.entry.js} +1 -1
  300. package/dist/solutions-components/{p-3e9fc0aa.entry.js → p-cfd88a2f.entry.js} +1 -1
  301. package/dist/solutions-components/{p-e9fcf408.js → p-d5228aed.js} +1 -1
  302. package/dist/solutions-components/{p-80b87453.js → p-d98caa4c.js} +1 -1
  303. package/dist/solutions-components/{p-45b829b5.js → p-dd9c065e.js} +1 -1
  304. package/dist/solutions-components/{p-05b2bdf9.js → p-dedc167c.js} +1 -1
  305. package/dist/solutions-components/{p-a16feeec.js → p-e4f9b782.js} +1 -1
  306. package/dist/solutions-components/{p-ac1bd870.entry.js → p-e572a692.entry.js} +1 -1
  307. package/dist/solutions-components/{p-74521615.entry.js → p-e5dda947.entry.js} +1 -1
  308. package/dist/solutions-components/{p-bbfc2724.js → p-e7fbf2fe.js} +1 -1
  309. package/dist/solutions-components/{p-dda325a4.entry.js → p-e9ba0c7f.entry.js} +1 -1
  310. package/dist/solutions-components/{p-75e707d1.js → p-eb60ec2a.js} +1 -1
  311. package/dist/solutions-components/p-ecc95259.js +20 -0
  312. package/dist/solutions-components/{p-85791b16.entry.js → p-ee144348.entry.js} +1 -1
  313. package/dist/solutions-components/{p-4b4559f9.js → p-f03bed0c.js} +1 -1
  314. package/dist/solutions-components/{p-7a11983d.js → p-f5028a8e.js} +1 -1
  315. package/dist/solutions-components/{p-fb23ba4a.entry.js → p-f50cf603.entry.js} +1 -1
  316. package/dist/solutions-components/{p-f7b520ae.js → p-f7d8b6b3.js} +1 -1
  317. package/dist/solutions-components/{p-89cbb86a.js → p-f9166fcb.js} +3 -3
  318. package/dist/solutions-components/{p-792fcd62.entry.js → p-fb0f2016.entry.js} +1 -1
  319. package/dist/solutions-components/solutions-components.esm.js +1 -1
  320. package/dist/solutions-components/utils/downloadUtils.ts +257 -85
  321. package/dist/solutions-components/utils/test/downloadUtils.spec.tsx +2 -0
  322. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +8 -0
  323. package/dist/types/components/layer-table/layer-table.d.ts +42 -26
  324. package/dist/types/components/pdf-download/pdf-download.d.ts +4 -2
  325. package/dist/types/components.d.ts +36 -2
  326. package/dist/types/utils/downloadUtils.d.ts +34 -16
  327. package/package.json +8 -9
  328. package/dist/solutions-components/p-06712292.js +0 -11
  329. package/dist/solutions-components/p-0a0c3764.js +0 -11
  330. package/dist/solutions-components/p-12a7c2db.entry.js +0 -6
  331. package/dist/solutions-components/p-3a7cd2b0.entry.js +0 -37
  332. package/dist/solutions-components/p-8e9d9e6a.js +0 -12
  333. package/dist/solutions-components/p-97088307.entry.js +0 -6
  334. package/dist/solutions-components/p-a16e6f5f.entry.js +0 -6
  335. package/dist/solutions-components/p-d118a76e.entry.js +0 -6
  336. package/dist/solutions-components/p-d54c2dfd.entry.js +0 -6
  337. package/dist/solutions-components/p-d7d466e8.entry.js +0 -6
  338. package/dist/solutions-components/p-ffbe89cf.entry.js +0 -6
@@ -9,6 +9,7 @@ const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
9
  const index = require('./index-ee37804b.js');
10
10
  const loadModules = require('./loadModules-f6df8d6a.js');
11
11
  const mapViewUtils = require('./mapViewUtils-a4dd36ec.js');
12
+ const cleanUrl = require('./clean-url-d5326abb.js');
12
13
 
13
14
  /** @license
14
15
  * Copyright 2022 Esri
@@ -1507,7 +1508,7 @@ function(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++
1507
1508
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1508
1509
  * ====================================================================
1509
1510
  */
1510
- function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-8da43c21.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1511
+ function(t){function e(){return (n.canvg?Promise.resolve(n.canvg):Promise.resolve().then(function () { return require('./index.es-372e33de.js'); })).catch((function(t){return Promise.reject(new Error("Could not load canvg: "+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error("jsPDF.addSvgAsImage: Invalid coordinates",arguments),new Error("Invalid coordinates passed to jsPDF.addSvgAsImage");if(isNaN(i)||isNaN(o))throw a.error("jsPDF.addSvgAsImage: Invalid measurements",arguments),new Error("Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage");var h=document.createElement("canvas");h.width=i,h.height=o;var l=h.getContext("2d");l.fillStyle="#fff",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error("Could not load canvg."))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL("image/jpeg",1),r,n,i,o,c,u);}))};}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,"g"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),"g"),r=this.pdfEscape16(this.internal.getNumberOfPages()+"",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:"UseNone",value:"UseNone",type:"name",explicitSet:!1,valueSet:["UseNone","UseOutlines","UseThumbs","UseOC"],pdfVersion:1.3},Direction:{defaultValue:"L2R",value:"L2R",type:"name",explicitSet:!1,valueSet:["L2R","R2L"],pdfVersion:1.3},ViewArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},ViewClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintArea:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintClip:{defaultValue:"CropBox",value:"CropBox",type:"name",explicitSet:!1,valueSet:["MediaBox","CropBox","TrimBox","BleedBox","ArtBox"],pdfVersion:1.4},PrintScaling:{defaultValue:"AppDefault",value:"AppDefault",type:"name",explicitSet:!1,valueSet:["AppDefault","None"],pdfVersion:1.6},Duplex:{defaultValue:"",value:"none",type:"name",explicitSet:!1,valueSet:["Simplex","DuplexFlipShortEdge","DuplexFlipLongEdge","none"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:"boolean",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:"",value:"",type:"array",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:"integer",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,"reset"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1;}if("object"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if("boolean"===n[a].type&&"boolean"==typeof o)n[a].value=o;else if("name"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if("integer"===n[a].type&&Number.isInteger(o))n[a].value=o;else if("array"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&"number"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)"number"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(" "));}n[a].value="["+u.join(" ")+"]";}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0;}return !1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe("putCatalog",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&("name"===n[t].type?e.push("/"+t+" /"+n[t].value):e.push("/"+t+" "+n[t].value));0!==e.length&&this.internal.write("/ViewerPreferences\n<<\n"+e.join("\n")+"\n>>");})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},
1511
1512
  /** ====================================================================
1512
1513
  * @license
1513
1514
  * jsPDF XMP metadata plugin
@@ -2242,6 +2243,94 @@ function downloadPDFFile(filename, labels, labelPageDescription, title = "", ini
2242
2243
  }
2243
2244
  //#endregion
2244
2245
 
2246
+ /*! *****************************************************************************
2247
+ Copyright (c) Microsoft Corporation.
2248
+
2249
+ Permission to use, copy, modify, and/or distribute this software for any
2250
+ purpose with or without fee is hereby granted.
2251
+
2252
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
2253
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
2254
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
2255
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
2256
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
2257
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2258
+ PERFORMANCE OF THIS SOFTWARE.
2259
+ ***************************************************************************** */
2260
+
2261
+ var __assign = function() {
2262
+ __assign = Object.assign || function __assign(t) {
2263
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2264
+ s = arguments[i];
2265
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2266
+ }
2267
+ return t;
2268
+ };
2269
+ return __assign.apply(this, arguments);
2270
+ };
2271
+
2272
+ /* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.
2273
+ * Apache-2.0 */
2274
+ /**
2275
+ * Helper for methods with lots of first order request options to pass through as request parameters.
2276
+ */
2277
+ function appendCustomParams(customOptions, keys, baseOptions) {
2278
+ var requestOptionsKeys = [
2279
+ "params",
2280
+ "httpMethod",
2281
+ "rawResponse",
2282
+ "authentication",
2283
+ "portal",
2284
+ "fetch",
2285
+ "maxUrlLength",
2286
+ "headers"
2287
+ ];
2288
+ var options = cleanUrl.__assign(cleanUrl.__assign({ params: {} }, baseOptions), customOptions);
2289
+ // merge all keys in customOptions into options.params
2290
+ options.params = keys.reduce(function (value, key) {
2291
+ if (customOptions[key] || typeof customOptions[key] === "boolean") {
2292
+ value[key] = customOptions[key];
2293
+ }
2294
+ return value;
2295
+ }, options.params);
2296
+ // now remove all properties in options that don't exist in IRequestOptions
2297
+ return requestOptionsKeys.reduce(function (value, key) {
2298
+ if (options[key]) {
2299
+ value[key] = options[key];
2300
+ }
2301
+ return value;
2302
+ }, {});
2303
+ }
2304
+
2305
+ /* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
2306
+ * Apache-2.0 */
2307
+ /**
2308
+ *
2309
+ * ```js
2310
+ * import { queryRelated } from '@esri/arcgis-rest-feature-layer'
2311
+ * //
2312
+ * queryRelated({
2313
+ * url: "http://services.myserver/OrgID/ArcGIS/rest/services/Petroleum/KSPetro/FeatureServer/0",
2314
+ * relationshipId: 1,
2315
+ * params: { returnCountOnly: true }
2316
+ * })
2317
+ * .then(response) // response.relatedRecords
2318
+ * ```
2319
+ * Query the related records for a feature service. See the [REST Documentation](https://developers.arcgis.com/rest/services-reference/query-related-records-feature-service-.htm) for more information.
2320
+ *
2321
+ * @param requestOptions
2322
+ * @returns A Promise that will resolve with the query response
2323
+ */
2324
+ function queryRelated(requestOptions) {
2325
+ var options = appendCustomParams(requestOptions, ["objectIds", "relationshipId", "definitionExpression", "outFields"], {
2326
+ httpMethod: "GET",
2327
+ params: __assign({
2328
+ // set default query parameters
2329
+ definitionExpression: "1=1", outFields: "*", relationshipId: 0 }, requestOptions.params)
2330
+ });
2331
+ return cleanUrl.request(cleanUrl.cleanUrl(requestOptions.url) + "/queryRelatedRecords", options);
2332
+ }
2333
+
2245
2334
  /** @license
2246
2335
  * Copyright 2022 Esri
2247
2336
  *
@@ -2258,24 +2347,40 @@ function downloadPDFFile(filename, labels, labelPageDescription, title = "", ini
2258
2347
  * limitations under the License.
2259
2348
  */
2260
2349
  const lineSeparatorChar = "|";
2350
+ /**
2351
+ * Get the related records for a feature service.
2352
+ *
2353
+ * @param url Feature service's URL, e.g., layer.url
2354
+ * @param relationshipId Id of relationship
2355
+ * @param objectIds Objects in the feature service whose related records are sought
2356
+ */
2357
+ function getFeatureServiceRelatedRecords(url, relationshipId, objectIds) {
2358
+ const options = {
2359
+ url: url + `/${relationshipId}`,
2360
+ relationshipId,
2361
+ objectIds
2362
+ };
2363
+ return queryRelated(options);
2364
+ }
2261
2365
  //#endregion
2262
2366
  // ------------------------------------------------------------------------------------------------------------------ //
2263
2367
  //#region Public functions
2264
2368
  /**
2265
2369
  * Create and consolidate labels from all layers
2266
2370
  *
2371
+ * @param webmap Webmap containing layer
2267
2372
  * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2268
2373
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2269
2374
  * all attributes are exported
2270
2375
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2271
2376
  * @returns selectionSetNames that will be used for export filenames
2272
2377
  */
2273
- async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2378
+ async function consolidateLabels(webmap, exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2274
2379
  const labelRequests = [];
2275
2380
  Object.keys(exportInfos).forEach(k => {
2276
2381
  var _a;
2277
2382
  const labelInfo = exportInfos[k];
2278
- labelRequests.push(_prepareLabels(((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2383
+ labelRequests.push(_prepareLabels(webmap, ((_a = labelInfo.layerView) === null || _a === void 0 ? void 0 : _a.layer) || labelInfo.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2279
2384
  if (isCSVExport) {
2280
2385
  // add the layer id as a temp value separator that we can use to split values for CSV export
2281
2386
  labelRequests.push(Promise.resolve([[k]]));
@@ -2287,6 +2392,7 @@ async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, incl
2287
2392
  /**
2288
2393
  * Downloads csv of mailing labels for the provided list of ids
2289
2394
  *
2395
+ * @param webmap Webmap containing layer
2290
2396
  * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2291
2397
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2292
2398
  * all attributes are exported
@@ -2294,8 +2400,8 @@ async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, incl
2294
2400
  * @param addColumnTitle Indicates if column headings should be included in output
2295
2401
  * @returns Promise resolving when function is done
2296
2402
  */
2297
- async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
2298
- let labels = await consolidateLabels(exportInfos, formatUsingLayerPopup, addColumnTitle, true);
2403
+ async function downloadCSV(webmap, exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
2404
+ let labels = await consolidateLabels(webmap, exportInfos, formatUsingLayerPopup, addColumnTitle, true);
2299
2405
  labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
2300
2406
  const layerIds = Object.keys(exportInfos);
2301
2407
  let layerLabels = [];
@@ -2317,6 +2423,7 @@ async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates
2317
2423
  /**
2318
2424
  * Downloads csv of mailing labels for the provided list of ids
2319
2425
  *
2426
+ * @param webmap Webmap containing layer
2320
2427
  * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2321
2428
  * @param labelPageDescription Provides PDF page layout info
2322
2429
  * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
@@ -2324,8 +2431,8 @@ async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates
2324
2431
  * @param initialImageDataUrl Data URL of image for first page
2325
2432
  * @returns Promise resolving when function is done
2326
2433
  */
2327
- async function downloadPDF(exportInfos, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
2328
- let labels = await consolidateLabels(exportInfos);
2434
+ async function downloadPDF(webmap, exportInfos, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
2435
+ let labels = await consolidateLabels(webmap, exportInfos);
2329
2436
  const selectionSetNames = _getSelectionSetNames(exportInfos);
2330
2437
  labels =
2331
2438
  // Remove empty lines in labels
@@ -2454,6 +2561,87 @@ async function _convertPopupArcadeToLabelSpec(expressionInfo) {
2454
2561
  format: executor
2455
2562
  });
2456
2563
  }
2564
+ /**
2565
+ * Extracts Arcade expressions from the lines of a label format and creates an Arcade executor for each
2566
+ * referenced expression name.
2567
+ *
2568
+ * @param labelFormat Label to examine
2569
+ * @param layer Layer from which to fetch features
2570
+ * @return Promise resolving to a set of executors keyed using the expression name
2571
+ */
2572
+ /*
2573
+ async function _createArcadeExecutors(
2574
+ labelFormat: string,
2575
+ layer: __esri.FeatureLayer
2576
+ ): Promise<IArcadeExecutors> {
2577
+ const arcadeExecutors: IArcadeExecutors = {};
2578
+
2579
+ // Are any Arcade expressions in the layer?
2580
+ if (!Array.isArray(layer.popupTemplate.expressionInfos) || layer.popupTemplate.expressionInfos.length === 0) {
2581
+ return Promise.resolve(arcadeExecutors);
2582
+ }
2583
+
2584
+ // Are there any Arcade expressions in the label format?
2585
+ const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
2586
+ const arcadeExpressionsMatches = labelFormat.match(arcadeExpressionRegExp);
2587
+ if (!arcadeExpressionsMatches) {
2588
+ return Promise.resolve(arcadeExecutors);
2589
+ }
2590
+
2591
+ // Generate an Arcade executor for each match
2592
+ const [arcade] = await loadModules(["esri/arcade"]);
2593
+ const labelingProfile: __esri.Profile = {
2594
+ variables: [
2595
+ {
2596
+ name: "$feature",
2597
+ type: "feature"
2598
+ },
2599
+ {
2600
+ name: "$layer",
2601
+ type: "featureSet"
2602
+ },
2603
+ {
2604
+ name: "$datastore",
2605
+ type: "featureSetCollection"
2606
+ },
2607
+ {
2608
+ name: "$map",
2609
+ type: "featureSetCollection"
2610
+ }
2611
+ ]
2612
+ };
2613
+
2614
+ const createArcadeExecutorPromises: IArcadeExecutorPromises = {};
2615
+ arcadeExpressionsMatches.forEach(
2616
+ (match: string) => {
2617
+ const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2618
+
2619
+ (layer.popupTemplate.expressionInfos || []).forEach(
2620
+ expressionInfo => {
2621
+ if (expressionInfo.name === expressionName) {
2622
+ createArcadeExecutorPromises[expressionName] =
2623
+ arcade.createArcadeExecutor(expressionInfo.expression, labelingProfile);
2624
+ }
2625
+ }
2626
+ );
2627
+ }
2628
+ );
2629
+
2630
+ const promises = Object.values(createArcadeExecutorPromises);
2631
+ return Promise.all(promises)
2632
+ .then(
2633
+ executors => {
2634
+ const expressionNames = Object.keys(createArcadeExecutorPromises);
2635
+
2636
+ for (let i = 0; i < expressionNames.length; ++i) {
2637
+ arcadeExecutors[expressionNames[i]] = executors[i].valueOf() as __esri.ArcadeExecutor;
2638
+ }
2639
+
2640
+ return arcadeExecutors;
2641
+ }
2642
+ );
2643
+ }
2644
+ */
2457
2645
  /**
2458
2646
  * Creates a title from a list of selection set names.
2459
2647
  *
@@ -2517,52 +2705,73 @@ function _getFieldNamesFromFieldExpressions(fieldExpressions) {
2517
2705
  /**
2518
2706
  * Extracts the label format from the layer.
2519
2707
  *
2708
+ * @param webmap Webmap containing layer
2520
2709
  * @param layer Layer with label format
2521
2710
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2522
2711
  * all attributes are exported
2523
- * @param attributeFormats Empty object to hold the formats for each attribute in a feature; the object is filled
2524
- * with formats by this function
2525
2712
  * @returns A Promise resolving to the format of a single label with fields coerced to lowercase, e.g.,
2526
- * for ILabelFormat type "pattern": "{name}|{street}|{city}, {state} {zip}"
2713
+ * for ILabelFormatProps type "pattern": "{name}|{street}|{city}, {state} {zip}"
2527
2714
  */
2528
- async function _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats) {
2529
- var _a, _b, _c, _d, _e, _f;
2530
- let labelFormat = {
2531
- type: "unsupported",
2532
- format: undefined
2715
+ async function _getLabelFormat(webmap, layer, formatUsingLayerPopup) {
2716
+ var _a, _b;
2717
+ let labelFormatProps = {
2718
+ layer,
2719
+ attributeFormats: {},
2720
+ relationshipId: undefined,
2721
+ labelFormat: {
2722
+ type: "unsupported",
2723
+ format: undefined
2724
+ }
2533
2725
  };
2534
2726
  if (layer.popupEnabled) {
2535
2727
  layer.popupTemplate.fieldInfos.forEach(
2536
2728
  // Extract any format info that we have
2537
2729
  fieldInfo => {
2538
2730
  if (fieldInfo.format) {
2539
- attributeFormats[fieldInfo.fieldName.toLowerCase()] = fieldInfo.format;
2731
+ labelFormatProps.attributeFormats[fieldInfo.fieldName.toLowerCase()] = fieldInfo.format;
2540
2732
  }
2541
2733
  });
2542
2734
  // What is the nature of the label content?
2543
2735
  // Fields list
2544
- if (formatUsingLayerPopup && ((_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type) === "fields") {
2545
- labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
2546
- // If popup is configured with "no attribute information", then no fields will visible
2547
- if (labelFormat.format.length === 0) {
2548
- // Can we use the popup title?
2549
- labelFormat = layer.popupTemplate.title && typeof layer.popupTemplate.title === "string" ?
2550
- { type: "pattern", format: layer.popupTemplate.title }
2551
- :
2552
- // Otherwise revert to using attributes
2553
- _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
2736
+ if (formatUsingLayerPopup) {
2737
+ const labelFormatType = (_b = (_a = layer.popupTemplate) === null || _a === void 0 ? void 0 : _a.content[0]) === null || _b === void 0 ? void 0 : _b.type;
2738
+ if (labelFormatType === "relationship") {
2739
+ const relationshipId = layer.popupTemplate.content[0].relationshipId;
2740
+ const webmapLayers = webmap.layers.toArray().concat(webmap.tables.toArray())
2741
+ .filter((entry) => entry.type === "feature"
2742
+ && entry.id !== layer.id
2743
+ && entry.relationships
2744
+ && entry.relationships.some(relationship => relationship.id === relationshipId));
2745
+ labelFormatProps = await _getLabelFormat(webmap, webmapLayers[0], formatUsingLayerPopup);
2746
+ labelFormatProps.relationshipId = relationshipId;
2747
+ }
2748
+ else if (labelFormatType === "fields") {
2749
+ labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
2750
+ // If popup is configured with "no attribute information", then no fields will visible
2751
+ if (labelFormatProps.labelFormat.format.length === 0) {
2752
+ // Can we use the popup title?
2753
+ labelFormatProps.labelFormat = layer.popupTemplate.title && typeof layer.popupTemplate.title === "string" ?
2754
+ { type: "pattern", format: layer.popupTemplate.title }
2755
+ :
2756
+ // Otherwise revert to using attributes
2757
+ _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos, true);
2758
+ }
2759
+ // Example text: '<p>{name} {age} years &nbsp;</p><p>started: {start}</p>'
2760
+ }
2761
+ else if (labelFormatType === "text") {
2762
+ labelFormatProps.labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
2763
+ // 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}',
2764
+ }
2765
+ else if (labelFormatType === "expression") {
2766
+ labelFormatProps.labelFormat = await _convertPopupArcadeToLabelSpec(layer.popupTemplate.content[0].expressionInfo);
2767
+ // Fallback to all fields
2768
+ }
2769
+ else {
2770
+ labelFormatProps.labelFormat = _convertPopupFieldsToLabelSpec(layer.popupTemplate.fieldInfos);
2554
2771
  }
2555
- // Example text: '<p>{name} {age} years &nbsp;</p><p>started: {start}</p>'
2556
- }
2557
- 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") {
2558
- labelFormat = _convertPopupTextToLabelSpec(layer.popupTemplate.content[0].text);
2559
- // 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}',
2560
- }
2561
- 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") {
2562
- labelFormat = await _convertPopupArcadeToLabelSpec(layer.popupTemplate.content[0].expressionInfo);
2563
2772
  }
2564
2773
  }
2565
- return Promise.resolve(labelFormat);
2774
+ return Promise.resolve(labelFormatProps);
2566
2775
  }
2567
2776
  /**
2568
2777
  * Extract selectionSetNames from the provided exportInfos
@@ -2634,6 +2843,7 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2634
2843
  /**
2635
2844
  * Creates labels from items.
2636
2845
  *
2846
+ * @param webmap Webmap containing layer
2637
2847
  * @param layer Layer from which to fetch features
2638
2848
  * @param ids List of ids to download
2639
2849
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
@@ -2641,32 +2851,51 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2641
2851
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2642
2852
  * @returns Promise resolving when function is done
2643
2853
  */
2644
- async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
2645
- // Get the features to export
2646
- const featureSet = await mapViewUtils.queryFeaturesByID(ids, layer, [], false);
2854
+ async function _prepareLabels(webmap, layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
2855
+ // Get the label formatting, if any
2856
+ const labelFormatProps = await _getLabelFormat(webmap, layer, formatUsingLayerPopup);
2857
+ // Because the label may actually come from a related layer, we'll use the layer that comes back from _getLabelFormat.
2858
+ // That function returns the supplied layer in all cases except for a "relationship" type of popup.
2859
+ const featureLayer = labelFormatProps.layer;
2860
+ let featureSet = [];
2861
+ if (typeof (labelFormatProps.relationshipId) !== "undefined") {
2862
+ // Get the related items for each id
2863
+ const relatedRecResponse = await getFeatureServiceRelatedRecords(layer.url, labelFormatProps.relationshipId, ids);
2864
+ const objectIdField = layer.objectIdField;
2865
+ let relatedFeatureIds = [];
2866
+ relatedRecResponse.relatedRecordGroups.forEach((relatedRecGroup) => {
2867
+ relatedFeatureIds = relatedFeatureIds.concat(relatedRecGroup.relatedRecords.map((rec) => rec.attributes[objectIdField]));
2868
+ });
2869
+ // Remove duplicates
2870
+ relatedFeatureIds.sort();
2871
+ relatedFeatureIds = relatedFeatureIds.filter((id, i) => i === 0 ? true : id !== relatedFeatureIds[i - 1]);
2872
+ // Get the full items
2873
+ featureSet = await mapViewUtils.queryFeaturesByID(relatedFeatureIds, featureLayer, [], false);
2874
+ }
2875
+ else {
2876
+ // Get the features to export
2877
+ featureSet = await mapViewUtils.queryFeaturesByID(ids, featureLayer, [], false);
2878
+ }
2647
2879
  // Get field data types. Do we have any domain-based fields?
2648
2880
  const attributeOrigNames = {};
2649
2881
  const attributeTypes = {};
2650
2882
  const attributeDomains = {};
2651
- layer.fields.forEach(field => {
2883
+ featureLayer.fields.forEach(field => {
2652
2884
  const lowercaseFieldname = field.name.toLowerCase();
2653
2885
  attributeOrigNames[lowercaseFieldname] = field.name;
2654
2886
  attributeDomains[lowercaseFieldname] = field.domain;
2655
2887
  attributeTypes[lowercaseFieldname] = field.type;
2656
2888
  });
2657
- const attributeFormats = {};
2658
- // Get the label formatting, if any
2659
- const labelFormat = await _getLabelFormat(layer, formatUsingLayerPopup, attributeFormats);
2660
2889
  // Apply the label format
2661
- const labels = labelFormat.type === "unsupported" ?
2662
- // Export all attributes
2663
- await _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames)
2664
- : labelFormat.type == "pattern" ?
2665
- // Export attributes in format
2666
- await _prepareLabelsFromPattern(featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat.format, includeHeaderNames)
2890
+ const labels = labelFormatProps.labelFormat.type === "pattern" ?
2891
+ // Export attributes in format
2892
+ await _prepareLabelsFromPattern(/*layer,*/ featureSet, attributeOrigNames, attributeTypes, attributeDomains, labelFormatProps.attributeFormats, labelFormatProps.labelFormat.format, includeHeaderNames)
2893
+ : labelFormatProps.labelFormat.type === "executor" ?
2894
+ // Export attributes in expression
2895
+ await _prepareLabelsUsingExecutor(featureSet, labelFormatProps.labelFormat.format)
2667
2896
  :
2668
- // Export attributes in expression
2669
- await _prepareLabelsUsingExecutor(featureSet, labelFormat.format);
2897
+ // Export all attributes
2898
+ await _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomains, includeHeaderNames);
2670
2899
  return Promise.resolve(labels);
2671
2900
  }
2672
2901
  /**
@@ -2710,14 +2939,30 @@ async function _prepareLabelsFromAll(featureSet, attributeTypes, attributeDomain
2710
2939
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2711
2940
  * @returns Promise resolving with list of labels, each of which is a list of label lines
2712
2941
  */
2713
- async function _prepareLabelsFromPattern(featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
2942
+ async function _prepareLabelsFromPattern(
2943
+ //layer: __esri.FeatureLayer,
2944
+ featureSet, attributeOrigNames, attributeTypes, attributeDomains, attributeFormats, labelFormat, includeHeaderNames = false) {
2714
2945
  const [intl] = await loadModules.loadModules(["esri/intl"]);
2715
2946
  // Find the label fields that we need to replace with values
2716
2947
  const attributeExpressionMatches = _getFieldExpressionsFromLabel(labelFormat);
2717
2948
  const attributeNames = _getFieldNamesFromFieldExpressions(attributeExpressionMatches);
2949
+ // Do we need any Arcade executors?
2950
+ //const arcadeExecutors = await _createArcadeExecutors(labelFormat, layer);
2951
+ //const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
2952
+ // Find the label fields that we need to replace with values
2953
+ //const arcadeExpressionMatches = labelFormat.match(arcadeExpressionRegExp) ?? [];
2718
2954
  // Convert feature attributes into an array of labels
2719
2955
  const labels = await Promise.all(featureSet.map(async (feature) => {
2720
2956
  let labelPrep = labelFormat;
2957
+ /*
2958
+ // Replace Arcade expressions in this feature
2959
+ for (let i = 0; i < arcadeExpressionMatches.length; i++) {
2960
+ const match: string = arcadeExpressionMatches[i];
2961
+ const expressionName = match.substring(match.indexOf("/") + 1, match.length - 1);
2962
+ const value = await arcadeExecutors[expressionName].executeAsync({"$feature": feature, "$layer", layer});
2963
+ labelPrep = labelPrep.replace(match, value);
2964
+ }
2965
+ */
2721
2966
  // Replace non-Arcade fields in this feature
2722
2967
  attributeNames.forEach((attributeName, i) => {
2723
2968
  const lowercaseFieldname = attributeName.toLowerCase();
@@ -12,7 +12,7 @@ const loadModules = require('./loadModules-f6df8d6a.js');
12
12
  const locale = require('./locale-67f5f6b6.js');
13
13
  require('./_commonjsHelpers-384729db.js');
14
14
 
15
- const editCardCss = ":host{display:block}.padding-bottom-1{padding-bottom:1rem}.font-bold{font-weight:var(--calcite-font-weight-bold)}.font-500{font-weight:var(--calcite-font-weight-medium)}.font-italic{font-style:italic}#feature-form{--calcite-ui-background:none;padding-top:0px}.padding-sides-bottom-1{padding:0 1rem 1rem 1rem}.position-relative{position:relative}.esri-editor__prompt--danger{position:relative !important;width:100% !important;background-color:var(--calcite-ui-foreground-1) !important}";
15
+ const editCardCss = ":host{display:block}.padding-bottom-1{padding-bottom:1rem}.font-bold{font-weight:var(--calcite-font-weight-bold)}.font-500{font-weight:var(--calcite-font-weight-medium)}.font-italic{font-style:italic}#feature-form{--calcite-ui-background:none;padding-top:0px}.padding-sides-bottom-1{padding:0 1rem 1rem 1rem}.position-relative{position:relative}.esri-editor__prompt--danger{position:relative !important;width:100% !important;background-color:var(--calcite-ui-foreground-1) !important}.esri-feature__content-node{background-color:var(--calcite-ui-foreground-1) !important}.esri-editor__panel-toolbar{display:none !important}";
16
16
 
17
17
  const EditCard = class {
18
18
  constructor(hostRef) {
@@ -176,7 +176,7 @@ const EditCard = class {
176
176
  };
177
177
  EditCard.style = editCardCss;
178
178
 
179
- const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px}tr:nth-child(odd){background:var(--calcite-ui-foreground-2)}.bottom-border{padding-bottom:0.5rem;border-bottom:1px solid var(--calcite-ui-border-1)}.padding-1-2{padding:0.5rem}.padding-top-1-2{padding-top:0.5rem}.font-color-3{color:var(--calcite-ui-text-3)}.display-none{display:none}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.edit-btn{z-index:999;position:absolute}.edit-btn-position{right:0.5rem;top:0.5rem}html[dir=\"rtl\"] .edit-btn-position{left:0}.esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.min-width-100{min-width:100px}";
179
+ const infoCardCss = ":host{display:block;--calcite-label-margin-bottom:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px}tr:nth-child(odd){background:var(--calcite-ui-foreground-2)}.bottom-border{padding-bottom:0.5rem;border-bottom:1px solid var(--calcite-ui-border-1)}.padding-1-2{padding:0.5rem}.padding-top-1-2{padding-top:0.5rem}.font-color-3{color:var(--calcite-ui-text-3)}.display-none{display:none}.display-flex{display:flex}.position-absolute{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.esri-features__footer{display:none !important}.button-container{justify-content:space-between;align-items:center}.top-border{border-top:1px solid var(--calcite-ui-border-1)}.min-width-100{min-width:100px}.width-100{width:100%}.esri-features__container{padding:0.5rem !important;background-color:var(--calcite-ui-foreground-1) !important;height:100% !important}";
180
180
 
181
181
  const InfoCard = class {
182
182
  constructor(hostRef) {
@@ -266,7 +266,7 @@ const InfoCard = class {
266
266
  const featureNodeClass = this.isLoading || this._editRecordOpen ? "display-none" : "position-absolute";
267
267
  const editClass = !this.isLoading && this._editRecordOpen ? "position-absolute" : "display-none";
268
268
  const editButtonClass = !this.isLoading && this._editRecordOpen ? "display-none" : "";
269
- return (index.h(index.Host, null, index.h("calcite-shell", null, index.h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), index.h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), index.h("div", { class: `${editButtonClass} display-flex padding-1-2 button-container`, slot: "footer" }, index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, index.h("span", null, this._translations.back))), index.h("div", null, this._getCount()), index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, index.h("span", null, this._translations.next)))), index.h("div", { class: `${editButtonClass} edit-btn edit-btn-position` }, index.h("calcite-button", { appearance: "outline", "icon-start": "pencil", id: "solutions-edit", onClick: () => this._openEditRecord() }, this._translations.edit), index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, index.h("span", null, this._translations.edit))), index.h("edit-card", { class: editClass, graphicIndex: (_a = this._features) === null || _a === void 0 ? void 0 : _a.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), index.h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, index.h("div", { slot: "title" }, this._translations.editDisabled), index.h("div", { slot: "message" }, this._translations.enableEditing)))));
269
+ return (index.h(index.Host, null, index.h("calcite-shell", null, index.h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), index.h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), index.h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, index.h("div", { class: "display-flex top-border padding-1-2" }, index.h("calcite-button", { appearance: "solid", "icon-start": "pencil", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), index.h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, index.h("span", null, this._translations.edit))), index.h("div", { class: "display-flex padding-1-2 button-container top-border" }, index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, index.h("span", null, this._translations.back))), index.h("div", null, this._getCount()), index.h("div", { class: "min-width-100" }, index.h("calcite-button", { appearance: "outline", id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), index.h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, index.h("span", null, this._translations.next))))), index.h("edit-card", { class: editClass, graphicIndex: (_a = this._features) === null || _a === void 0 ? void 0 : _a.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), index.h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, index.h("div", { slot: "title" }, this._translations.editDisabled), index.h("div", { slot: "message" }, this._translations.enableEditing)))));
270
270
  }
271
271
  //--------------------------------------------------------------------------
272
272
  //
@@ -6,12 +6,13 @@
6
6
  'use strict';
7
7
 
8
8
  const _commonjsHelpers = require('./_commonjsHelpers-384729db.js');
9
- const downloadUtils = require('./downloadUtils-43f5be48.js');
9
+ const downloadUtils = require('./downloadUtils-fb4744e0.js');
10
10
  require('./index-ee37804b.js');
11
11
  require('./loadModules-f6df8d6a.js');
12
12
  require('./locale-67f5f6b6.js');
13
13
  require('./mapViewUtils-a4dd36ec.js');
14
14
  require('./interfaces-000be6de.js');
15
+ require('./clean-url-d5326abb.js');
15
16
 
16
17
  var check = function (it) {
17
18
  return it && it.Math == Math && it;