@esri/solutions-components 0.5.8 → 0.5.10

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 (260) hide show
  1. package/dist/assets/t9n/buffer-tools/resources_ar.json +4 -4
  2. package/dist/assets/t9n/buffer-tools/resources_bg.json +4 -4
  3. package/dist/assets/t9n/buffer-tools/resources_bs.json +4 -4
  4. package/dist/assets/t9n/buffer-tools/resources_ca.json +4 -4
  5. package/dist/assets/t9n/buffer-tools/resources_cs.json +4 -4
  6. package/dist/assets/t9n/buffer-tools/resources_da.json +4 -4
  7. package/dist/assets/t9n/buffer-tools/resources_de.json +4 -4
  8. package/dist/assets/t9n/buffer-tools/resources_el.json +4 -4
  9. package/dist/assets/t9n/buffer-tools/resources_es.json +4 -4
  10. package/dist/assets/t9n/buffer-tools/resources_et.json +4 -4
  11. package/dist/assets/t9n/buffer-tools/resources_fi.json +4 -4
  12. package/dist/assets/t9n/buffer-tools/resources_fr.json +4 -4
  13. package/dist/assets/t9n/buffer-tools/resources_he.json +4 -4
  14. package/dist/assets/t9n/buffer-tools/resources_hr.json +4 -4
  15. package/dist/assets/t9n/buffer-tools/resources_hu.json +4 -4
  16. package/dist/assets/t9n/buffer-tools/resources_id.json +4 -4
  17. package/dist/assets/t9n/buffer-tools/resources_it.json +4 -4
  18. package/dist/assets/t9n/buffer-tools/resources_ja.json +4 -4
  19. package/dist/assets/t9n/buffer-tools/resources_ko.json +4 -4
  20. package/dist/assets/t9n/buffer-tools/resources_lt.json +4 -4
  21. package/dist/assets/t9n/buffer-tools/resources_lv.json +4 -4
  22. package/dist/assets/t9n/buffer-tools/resources_nb.json +4 -4
  23. package/dist/assets/t9n/buffer-tools/resources_nl.json +4 -4
  24. package/dist/assets/t9n/buffer-tools/resources_pl.json +4 -4
  25. package/dist/assets/t9n/buffer-tools/resources_pt-BR.json +4 -4
  26. package/dist/assets/t9n/buffer-tools/resources_pt-PT.json +4 -4
  27. package/dist/assets/t9n/buffer-tools/resources_ro.json +4 -4
  28. package/dist/assets/t9n/buffer-tools/resources_ru.json +4 -4
  29. package/dist/assets/t9n/buffer-tools/resources_sk.json +4 -4
  30. package/dist/assets/t9n/buffer-tools/resources_sl.json +4 -4
  31. package/dist/assets/t9n/buffer-tools/resources_sr.json +4 -4
  32. package/dist/assets/t9n/buffer-tools/resources_sv.json +4 -4
  33. package/dist/assets/t9n/buffer-tools/resources_th.json +4 -4
  34. package/dist/assets/t9n/buffer-tools/resources_tr.json +4 -4
  35. package/dist/assets/t9n/buffer-tools/resources_uk.json +4 -4
  36. package/dist/assets/t9n/buffer-tools/resources_vi.json +4 -4
  37. package/dist/assets/t9n/buffer-tools/resources_zh-CN.json +4 -4
  38. package/dist/assets/t9n/buffer-tools/resources_zh-HK.json +4 -4
  39. package/dist/assets/t9n/buffer-tools/resources_zh-TW.json +4 -4
  40. package/dist/assets/t9n/map-draw-tools/resources_ar.json +3 -3
  41. package/dist/assets/t9n/map-draw-tools/resources_bg.json +3 -3
  42. package/dist/assets/t9n/map-draw-tools/resources_bs.json +3 -3
  43. package/dist/assets/t9n/map-draw-tools/resources_ca.json +3 -3
  44. package/dist/assets/t9n/map-draw-tools/resources_cs.json +3 -3
  45. package/dist/assets/t9n/map-draw-tools/resources_da.json +3 -3
  46. package/dist/assets/t9n/map-draw-tools/resources_de.json +3 -3
  47. package/dist/assets/t9n/map-draw-tools/resources_el.json +3 -3
  48. package/dist/assets/t9n/map-draw-tools/resources_es.json +3 -3
  49. package/dist/assets/t9n/map-draw-tools/resources_et.json +3 -3
  50. package/dist/assets/t9n/map-draw-tools/resources_fi.json +3 -3
  51. package/dist/assets/t9n/map-draw-tools/resources_fr.json +3 -3
  52. package/dist/assets/t9n/map-draw-tools/resources_he.json +3 -3
  53. package/dist/assets/t9n/map-draw-tools/resources_hr.json +3 -3
  54. package/dist/assets/t9n/map-draw-tools/resources_hu.json +3 -3
  55. package/dist/assets/t9n/map-draw-tools/resources_id.json +3 -3
  56. package/dist/assets/t9n/map-draw-tools/resources_it.json +3 -3
  57. package/dist/assets/t9n/map-draw-tools/resources_ja.json +3 -3
  58. package/dist/assets/t9n/map-draw-tools/resources_ko.json +3 -3
  59. package/dist/assets/t9n/map-draw-tools/resources_lt.json +3 -3
  60. package/dist/assets/t9n/map-draw-tools/resources_lv.json +3 -3
  61. package/dist/assets/t9n/map-draw-tools/resources_nb.json +3 -3
  62. package/dist/assets/t9n/map-draw-tools/resources_nl.json +3 -3
  63. package/dist/assets/t9n/map-draw-tools/resources_pl.json +3 -3
  64. package/dist/assets/t9n/map-draw-tools/resources_pt-BR.json +3 -3
  65. package/dist/assets/t9n/map-draw-tools/resources_pt-PT.json +3 -3
  66. package/dist/assets/t9n/map-draw-tools/resources_ro.json +3 -3
  67. package/dist/assets/t9n/map-draw-tools/resources_ru.json +3 -3
  68. package/dist/assets/t9n/map-draw-tools/resources_sk.json +3 -3
  69. package/dist/assets/t9n/map-draw-tools/resources_sl.json +3 -3
  70. package/dist/assets/t9n/map-draw-tools/resources_sr.json +3 -3
  71. package/dist/assets/t9n/map-draw-tools/resources_sv.json +3 -3
  72. package/dist/assets/t9n/map-draw-tools/resources_th.json +3 -3
  73. package/dist/assets/t9n/map-draw-tools/resources_tr.json +3 -3
  74. package/dist/assets/t9n/map-draw-tools/resources_uk.json +3 -3
  75. package/dist/assets/t9n/map-draw-tools/resources_vi.json +3 -3
  76. package/dist/assets/t9n/map-draw-tools/resources_zh-CN.json +3 -3
  77. package/dist/assets/t9n/map-draw-tools/resources_zh-HK.json +3 -3
  78. package/dist/assets/t9n/map-draw-tools/resources_zh-TW.json +3 -3
  79. package/dist/assets/t9n/map-select-tools/resources_ar.json +13 -11
  80. package/dist/assets/t9n/map-select-tools/resources_bg.json +13 -11
  81. package/dist/assets/t9n/map-select-tools/resources_bs.json +13 -11
  82. package/dist/assets/t9n/map-select-tools/resources_ca.json +13 -11
  83. package/dist/assets/t9n/map-select-tools/resources_cs.json +13 -11
  84. package/dist/assets/t9n/map-select-tools/resources_da.json +13 -11
  85. package/dist/assets/t9n/map-select-tools/resources_de.json +13 -11
  86. package/dist/assets/t9n/map-select-tools/resources_el.json +13 -11
  87. package/dist/assets/t9n/map-select-tools/resources_es.json +13 -11
  88. package/dist/assets/t9n/map-select-tools/resources_et.json +13 -11
  89. package/dist/assets/t9n/map-select-tools/resources_fi.json +13 -11
  90. package/dist/assets/t9n/map-select-tools/resources_fr.json +13 -11
  91. package/dist/assets/t9n/map-select-tools/resources_he.json +13 -11
  92. package/dist/assets/t9n/map-select-tools/resources_hr.json +13 -11
  93. package/dist/assets/t9n/map-select-tools/resources_hu.json +13 -11
  94. package/dist/assets/t9n/map-select-tools/resources_id.json +13 -11
  95. package/dist/assets/t9n/map-select-tools/resources_it.json +13 -11
  96. package/dist/assets/t9n/map-select-tools/resources_ja.json +13 -11
  97. package/dist/assets/t9n/map-select-tools/resources_ko.json +13 -11
  98. package/dist/assets/t9n/map-select-tools/resources_lt.json +13 -11
  99. package/dist/assets/t9n/map-select-tools/resources_lv.json +13 -11
  100. package/dist/assets/t9n/map-select-tools/resources_nb.json +13 -11
  101. package/dist/assets/t9n/map-select-tools/resources_nl.json +13 -11
  102. package/dist/assets/t9n/map-select-tools/resources_pl.json +13 -11
  103. package/dist/assets/t9n/map-select-tools/resources_pt-BR.json +13 -11
  104. package/dist/assets/t9n/map-select-tools/resources_pt-PT.json +13 -11
  105. package/dist/assets/t9n/map-select-tools/resources_ro.json +13 -11
  106. package/dist/assets/t9n/map-select-tools/resources_ru.json +13 -11
  107. package/dist/assets/t9n/map-select-tools/resources_sk.json +13 -11
  108. package/dist/assets/t9n/map-select-tools/resources_sl.json +13 -11
  109. package/dist/assets/t9n/map-select-tools/resources_sr.json +13 -11
  110. package/dist/assets/t9n/map-select-tools/resources_sv.json +13 -11
  111. package/dist/assets/t9n/map-select-tools/resources_th.json +13 -11
  112. package/dist/assets/t9n/map-select-tools/resources_tr.json +13 -11
  113. package/dist/assets/t9n/map-select-tools/resources_uk.json +13 -11
  114. package/dist/assets/t9n/map-select-tools/resources_vi.json +13 -11
  115. package/dist/assets/t9n/map-select-tools/resources_zh-CN.json +13 -11
  116. package/dist/assets/t9n/map-select-tools/resources_zh-HK.json +13 -11
  117. package/dist/assets/t9n/map-select-tools/resources_zh-TW.json +13 -11
  118. package/dist/assets/t9n/pdf-download/resources_ar.json +1 -1
  119. package/dist/assets/t9n/pdf-download/resources_bg.json +1 -1
  120. package/dist/assets/t9n/pdf-download/resources_bs.json +1 -1
  121. package/dist/assets/t9n/pdf-download/resources_ca.json +1 -1
  122. package/dist/assets/t9n/pdf-download/resources_cs.json +1 -1
  123. package/dist/assets/t9n/pdf-download/resources_da.json +1 -1
  124. package/dist/assets/t9n/pdf-download/resources_de.json +1 -1
  125. package/dist/assets/t9n/pdf-download/resources_el.json +1 -1
  126. package/dist/assets/t9n/pdf-download/resources_es.json +1 -1
  127. package/dist/assets/t9n/pdf-download/resources_et.json +1 -1
  128. package/dist/assets/t9n/pdf-download/resources_fi.json +1 -1
  129. package/dist/assets/t9n/pdf-download/resources_fr.json +1 -1
  130. package/dist/assets/t9n/pdf-download/resources_he.json +1 -1
  131. package/dist/assets/t9n/pdf-download/resources_hr.json +1 -1
  132. package/dist/assets/t9n/pdf-download/resources_hu.json +1 -1
  133. package/dist/assets/t9n/pdf-download/resources_id.json +1 -1
  134. package/dist/assets/t9n/pdf-download/resources_it.json +1 -1
  135. package/dist/assets/t9n/pdf-download/resources_ja.json +1 -1
  136. package/dist/assets/t9n/pdf-download/resources_ko.json +1 -1
  137. package/dist/assets/t9n/pdf-download/resources_lt.json +1 -1
  138. package/dist/assets/t9n/pdf-download/resources_lv.json +1 -1
  139. package/dist/assets/t9n/pdf-download/resources_nb.json +1 -1
  140. package/dist/assets/t9n/pdf-download/resources_nl.json +1 -1
  141. package/dist/assets/t9n/pdf-download/resources_pl.json +1 -1
  142. package/dist/assets/t9n/pdf-download/resources_pt-BR.json +1 -1
  143. package/dist/assets/t9n/pdf-download/resources_pt-PT.json +1 -1
  144. package/dist/assets/t9n/pdf-download/resources_ro.json +1 -1
  145. package/dist/assets/t9n/pdf-download/resources_ru.json +1 -1
  146. package/dist/assets/t9n/pdf-download/resources_sk.json +1 -1
  147. package/dist/assets/t9n/pdf-download/resources_sl.json +1 -1
  148. package/dist/assets/t9n/pdf-download/resources_sr.json +1 -1
  149. package/dist/assets/t9n/pdf-download/resources_sv.json +1 -1
  150. package/dist/assets/t9n/pdf-download/resources_th.json +1 -1
  151. package/dist/assets/t9n/pdf-download/resources_tr.json +1 -1
  152. package/dist/assets/t9n/pdf-download/resources_uk.json +1 -1
  153. package/dist/assets/t9n/pdf-download/resources_vi.json +1 -1
  154. package/dist/assets/t9n/pdf-download/resources_zh-CN.json +1 -1
  155. package/dist/assets/t9n/pdf-download/resources_zh-HK.json +1 -1
  156. package/dist/assets/t9n/pdf-download/resources_zh-TW.json +1 -1
  157. package/dist/assets/t9n/public-notification/resources.json +11 -9
  158. package/dist/assets/t9n/public-notification/resources_ar.json +40 -38
  159. package/dist/assets/t9n/public-notification/resources_bg.json +40 -38
  160. package/dist/assets/t9n/public-notification/resources_bs.json +40 -38
  161. package/dist/assets/t9n/public-notification/resources_ca.json +40 -38
  162. package/dist/assets/t9n/public-notification/resources_cs.json +40 -38
  163. package/dist/assets/t9n/public-notification/resources_da.json +40 -38
  164. package/dist/assets/t9n/public-notification/resources_de.json +40 -38
  165. package/dist/assets/t9n/public-notification/resources_el.json +40 -38
  166. package/dist/assets/t9n/public-notification/resources_en.json +11 -9
  167. package/dist/assets/t9n/public-notification/resources_es.json +40 -38
  168. package/dist/assets/t9n/public-notification/resources_et.json +40 -38
  169. package/dist/assets/t9n/public-notification/resources_fi.json +40 -38
  170. package/dist/assets/t9n/public-notification/resources_fr.json +40 -38
  171. package/dist/assets/t9n/public-notification/resources_he.json +40 -38
  172. package/dist/assets/t9n/public-notification/resources_hr.json +40 -38
  173. package/dist/assets/t9n/public-notification/resources_hu.json +40 -38
  174. package/dist/assets/t9n/public-notification/resources_id.json +40 -38
  175. package/dist/assets/t9n/public-notification/resources_it.json +40 -38
  176. package/dist/assets/t9n/public-notification/resources_ja.json +40 -38
  177. package/dist/assets/t9n/public-notification/resources_ko.json +40 -38
  178. package/dist/assets/t9n/public-notification/resources_lt.json +40 -38
  179. package/dist/assets/t9n/public-notification/resources_lv.json +40 -38
  180. package/dist/assets/t9n/public-notification/resources_nb.json +40 -38
  181. package/dist/assets/t9n/public-notification/resources_nl.json +40 -38
  182. package/dist/assets/t9n/public-notification/resources_pl.json +40 -38
  183. package/dist/assets/t9n/public-notification/resources_pt-BR.json +40 -38
  184. package/dist/assets/t9n/public-notification/resources_pt-PT.json +40 -38
  185. package/dist/assets/t9n/public-notification/resources_ro.json +40 -38
  186. package/dist/assets/t9n/public-notification/resources_ru.json +40 -38
  187. package/dist/assets/t9n/public-notification/resources_sk.json +40 -38
  188. package/dist/assets/t9n/public-notification/resources_sl.json +40 -38
  189. package/dist/assets/t9n/public-notification/resources_sr.json +40 -38
  190. package/dist/assets/t9n/public-notification/resources_sv.json +40 -38
  191. package/dist/assets/t9n/public-notification/resources_th.json +40 -38
  192. package/dist/assets/t9n/public-notification/resources_tr.json +40 -38
  193. package/dist/assets/t9n/public-notification/resources_uk.json +40 -38
  194. package/dist/assets/t9n/public-notification/resources_vi.json +40 -38
  195. package/dist/assets/t9n/public-notification/resources_zh-CN.json +40 -38
  196. package/dist/assets/t9n/public-notification/resources_zh-HK.json +40 -38
  197. package/dist/assets/t9n/public-notification/resources_zh-TW.json +40 -38
  198. package/dist/assets/t9n/refine-selection/resources.json +3 -1
  199. package/dist/assets/t9n/refine-selection/resources_en.json +3 -1
  200. package/dist/cjs/buffer-tools_4.cjs.entry.js +3 -3
  201. package/dist/cjs/calcite-input-text_5.cjs.entry.js +8 -13
  202. package/dist/cjs/{downloadUtils-8d66f03e.js → downloadUtils-7a0fd3c0.js} +77 -28
  203. package/dist/cjs/{index.es-4f5dfcc6.js → index.es-9965b78c.js} +1 -1
  204. package/dist/cjs/layer-table_2.cjs.entry.js +8 -3
  205. package/dist/cjs/loader.cjs.js +1 -1
  206. package/dist/cjs/public-notification.cjs.entry.js +56 -21
  207. package/dist/cjs/solutions-components.cjs.js +1 -1
  208. package/dist/collection/components/buffer-tools/buffer-tools.css +4 -0
  209. package/dist/collection/components/buffer-tools/buffer-tools.js +1 -1
  210. package/dist/collection/components/layer-table/layer-table.js +7 -2
  211. package/dist/collection/components/map-draw-tools/map-draw-tools.css +4 -0
  212. package/dist/collection/components/map-select-tools/map-select-tools.js +18 -1
  213. package/dist/collection/components/pdf-download/pdf-download.js +3 -9
  214. package/dist/collection/components/public-notification/public-notification.js +57 -21
  215. package/dist/collection/components/refine-selection/refine-selection.css +21 -0
  216. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  217. package/dist/collection/demos/new-public-notification.html +6 -4
  218. package/dist/collection/utils/downloadUtils.js +74 -27
  219. package/dist/collection/utils/downloadUtils.ts +93 -34
  220. package/dist/collection/utils/interfaces.ts +2 -2
  221. package/dist/components/buffer-tools2.js +2 -2
  222. package/dist/components/downloadUtils.js +75 -28
  223. package/dist/components/layer-table2.js +7 -2
  224. package/dist/components/map-draw-tools2.js +1 -1
  225. package/dist/components/map-select-tools2.js +3 -1
  226. package/dist/components/pdf-download2.js +3 -9
  227. package/dist/components/public-notification.js +57 -21
  228. package/dist/components/refine-selection2.js +36 -24
  229. package/dist/esm/buffer-tools_4.entry.js +3 -3
  230. package/dist/esm/calcite-combobox_3.entry.js +1 -1
  231. package/dist/esm/calcite-input-text_5.entry.js +9 -14
  232. package/dist/esm/{downloadUtils-b9785635.js → downloadUtils-a447bab1.js} +77 -30
  233. package/dist/esm/{index.es-70994c40.js → index.es-b9cb902a.js} +2 -2
  234. package/dist/esm/layer-table_2.entry.js +9 -4
  235. package/dist/esm/loader.js +1 -1
  236. package/dist/esm/{mapViewUtils-ebbd4733.js → mapViewUtils-27dfdc29.js} +1 -1
  237. package/dist/esm/public-notification.entry.js +57 -22
  238. package/dist/esm/solutions-components.js +1 -1
  239. package/dist/solutions-components/demos/new-public-notification.html +6 -4
  240. package/dist/solutions-components/p-2f4e1ddf.entry.js +6 -0
  241. package/dist/solutions-components/{p-be943993.js → p-345f517c.js} +5 -5
  242. package/dist/solutions-components/{p-390d7de8.js → p-4b426bab.js} +1 -1
  243. package/dist/solutions-components/{p-b4d4b50a.entry.js → p-52b747fa.entry.js} +3 -3
  244. package/dist/solutions-components/p-62492a2d.entry.js +17 -0
  245. package/dist/solutions-components/{p-5d5e10d4.js → p-80757ebd.js} +1 -1
  246. package/dist/solutions-components/p-cf00a2ef.entry.js +6 -0
  247. package/dist/solutions-components/{p-83e3db8e.entry.js → p-db099e05.entry.js} +1 -1
  248. package/dist/solutions-components/solutions-components.esm.js +1 -1
  249. package/dist/solutions-components/utils/downloadUtils.ts +93 -34
  250. package/dist/solutions-components/utils/interfaces.ts +2 -2
  251. package/dist/types/components/map-select-tools/map-select-tools.d.ts +5 -0
  252. package/dist/types/components/public-notification/public-notification.d.ts +18 -11
  253. package/dist/types/components.d.ts +8 -0
  254. package/dist/types/utils/downloadUtils.d.ts +22 -8
  255. package/dist/types/utils/interfaces.d.ts +2 -2
  256. package/package.json +1 -1
  257. package/dist/solutions-components/p-10336554.entry.js +0 -6
  258. package/dist/solutions-components/p-c3e3d0bb.entry.js +0 -17
  259. package/dist/solutions-components/p-f66a7ea7.entry.js +0 -6
  260. package/dist/solutions-components_commit.txt +0 -8
@@ -2261,39 +2261,52 @@ const lineSeparatorChar = "|";
2261
2261
  /**
2262
2262
  * Downloads csv of mailing labels for the provided list of ids
2263
2263
  *
2264
- * @param selectionSetNames Names of the selection sets used to provide ids
2265
- * @param layer Layer providing features and attributes for download
2266
- * @param ids List of ids to download
2264
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2267
2265
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2268
2266
  * all attributes are exported
2269
2267
  * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
2270
2268
  * @param addColumnTitle Indicates if column headings should be included in output
2271
2269
  * @returns Promise resolving when function is done
2272
2270
  */
2273
- async function downloadCSV(selectionSetNames, layer, ids, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
2274
- const labels = await _prepareLabels(layer, ids, removeDuplicates, formatUsingLayerPopup, addColumnTitle);
2275
- exportCSV(_createFilename(selectionSetNames), labels);
2271
+ async function downloadCSV(exportInfos, formatUsingLayerPopup, removeDuplicates = false, addColumnTitle = false) {
2272
+ let labels = await consolidateLabels(exportInfos, formatUsingLayerPopup, addColumnTitle, true);
2273
+ labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
2274
+ const layerIds = Object.keys(exportInfos);
2275
+ let layerLabels = [];
2276
+ labels.forEach(label => {
2277
+ const id = label[0];
2278
+ // layerIds are stored as value separator at the end of the values for a given layer
2279
+ if (layerIds.indexOf(id) < 0) {
2280
+ layerLabels.push(label);
2281
+ }
2282
+ else {
2283
+ const selectionSetNames = _getSelectionSetNames(exportInfos, new RegExp(`\\b${id}\\b`));
2284
+ // once we see the layerId we have reached the end of it's values and should export
2285
+ exportCSV(_createFilename(selectionSetNames), layerLabels);
2286
+ layerLabels = [];
2287
+ }
2288
+ });
2276
2289
  return Promise.resolve();
2277
2290
  }
2278
2291
  /**
2279
2292
  * Downloads csv of mailing labels for the provided list of ids
2280
2293
  *
2281
- * @param selectionSetNames Names of the selection sets used to provide ids
2282
- * @param layer Layer providing features and attributes for download
2283
- * @param ids List of ids to download
2294
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2284
2295
  * @param labelPageDescription Provides PDF page layout info
2285
2296
  * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
2286
2297
  * @param title Title for each page
2287
2298
  * @param initialImageDataUrl Data URL of image for first page
2288
2299
  * @returns Promise resolving when function is done
2289
2300
  */
2290
- async function downloadPDF(selectionSetNames, layer, ids, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
2291
- let labels = await _prepareLabels(layer, ids, removeDuplicates);
2301
+ async function downloadPDF(exportInfos, labelPageDescription, removeDuplicates = false, title = "", initialImageDataUrl = "") {
2302
+ let labels = await consolidateLabels(exportInfos);
2303
+ const selectionSetNames = _getSelectionSetNames(exportInfos);
2292
2304
  labels =
2293
2305
  // Remove empty lines in labels
2294
2306
  labels.map(labelLines => labelLines.filter(line => line.length > 0))
2295
2307
  // Remove empty labels
2296
2308
  .filter(label => label.length > 0);
2309
+ labels = removeDuplicates ? removeDuplicateLabels(labels) : labels;
2297
2310
  exportPDF(_createFilename(selectionSetNames), labels, labelPageDescription, title, initialImageDataUrl);
2298
2311
  return Promise.resolve();
2299
2312
  }
@@ -2510,13 +2523,12 @@ function _prepareAttributeValue(attributeValue, attributeType, attributeDomain,
2510
2523
  *
2511
2524
  * @param layer Layer from which to fetch features
2512
2525
  * @param ids List of ids to download
2513
- * @param removeDuplicates When true a single label is generated when multiple featues have a shared address value
2514
2526
  * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2515
2527
  * all attributes are exported
2516
2528
  * @param includeHeaderNames Add the label format at the front of the list of generated labels
2517
2529
  * @returns Promise resolving when function is done
2518
2530
  */
2519
- async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLayerPopup = true, includeHeaderNames = false) {
2531
+ async function _prepareLabels(layer, ids, formatUsingLayerPopup = true, includeHeaderNames = false) {
2520
2532
  var _a, _b, _c, _d, _e, _f;
2521
2533
  const [intl] = await loadModules(["esri/intl"]);
2522
2534
  // Get the features to export
@@ -2570,7 +2582,6 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2570
2582
  let labels;
2571
2583
  // eslint-disable-next-line unicorn/prefer-ternary
2572
2584
  if (labelFormat) {
2573
- console.log("labelFormat", labelFormat); //???
2574
2585
  const arcadeExpressionRegExp = /\{expression\/\w+\}/g;
2575
2586
  const attributeRegExp = /\{\w+\}/g;
2576
2587
  // Find the label fields that we need to replace with values
@@ -2598,28 +2609,21 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2598
2609
  });
2599
2610
  // Wait for all of the queries for related records for this label
2600
2611
  const relatedFeatureQueryResults = await Promise.all(relatedFeatureQueries);
2601
- console.log("relatedFeatureQueryResults", relatedFeatureQueryResults); //???
2602
2612
  relatedFeatureQueryResults.forEach((relatedFeatureQueryResult, i) => {
2603
2613
  // We have an object with FeatureSets grouped by source layer or table objectIds
2604
2614
  const relationshipId = relationshipIds[i];
2605
- console.log("relationshipId", relationshipId); //???
2606
- console.log("relatedFeatureQueryResult", relatedFeatureQueryResult); //???
2607
2615
  // Run through the source layer or table objectIds
2608
2616
  Object.keys(relatedFeatureQueryResult).forEach(relatedFeatureSetId => {
2609
- console.log("relatedFeatureSetId", relatedFeatureSetId); //???
2610
2617
  // We have a feature set
2611
2618
  const relatedFeatures = relatedFeatureQueryResult[relatedFeatureSetId].features;
2612
- console.log("relatedFeatures", relatedFeatures); //???
2613
2619
  // Get the values from each feature and replace them in the label
2614
2620
  relatedFeatures.forEach(feature => {
2615
2621
  // Merge the base and related feature attributes and create the label
2616
2622
  // Prefix related feature's attributes with "relationships/<id>/" to match popup
2617
2623
  const rePrefix = "\{relationships/" + relationshipId + "/";
2618
2624
  const reSuffix = "\}";
2619
- console.log("/rePrefix + attributeName + reSuffix/g", rePrefix + "attributeName" + reSuffix); //???
2620
2625
  const attributes = feature.attributes;
2621
2626
  Object.keys(attributes).forEach(attributeName => {
2622
- console.log("/rePrefix + attributeName + reSuffix/g", rePrefix + attributeName + reSuffix); //???
2623
2627
  // Replace the value using the attribute name as a relationship
2624
2628
  const attributeRelationshipRegExp = new RegExp(rePrefix + attributeName + reSuffix, "g");
2625
2629
  labelPrep = labelPrep.replaceAll(attributeRelationshipRegExp, attributes[attributeName]);
@@ -2649,12 +2653,6 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2649
2653
  });
2650
2654
  });
2651
2655
  }
2652
- // Remove duplicates
2653
- if (removeDuplicates) {
2654
- const labelsAsStrings = labels.map(label => JSON.stringify(label));
2655
- const uniqueLabels = new Set(labelsAsStrings);
2656
- labels = Array.from(uniqueLabels, labelString => JSON.parse(labelString));
2657
- }
2658
2656
  // Add header names
2659
2657
  if (includeHeaderNames) {
2660
2658
  let headerNames = [];
@@ -2671,6 +2669,55 @@ async function _prepareLabels(layer, ids, removeDuplicates = true, formatUsingLa
2671
2669
  }
2672
2670
  return Promise.resolve(labels);
2673
2671
  }
2672
+ /**
2673
+ * Remove any duplicate labels
2674
+ *
2675
+ * @param labels Labels to evaluate for duplicates
2676
+ * @returns labels with duplicates removed
2677
+ */
2678
+ function removeDuplicateLabels(labels) {
2679
+ const labelsAsStrings = labels.map(label => JSON.stringify(label));
2680
+ const uniqueLabels = new Set(labelsAsStrings);
2681
+ return Array.from(uniqueLabels, labelString => JSON.parse(labelString));
2682
+ }
2683
+ /**
2684
+ * Extract selectionSetNames from the provided exportInfos
2685
+ *
2686
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2687
+ * @returns selectionSetNames that will be used for export filenames
2688
+ */
2689
+ function _getSelectionSetNames(exportInfos, id = /.+/) {
2690
+ let selectionSetNames = [];
2691
+ Object.keys(exportInfos).forEach(k => {
2692
+ const exportInfo = exportInfos[k];
2693
+ if (id.test(k)) {
2694
+ selectionSetNames = selectionSetNames.concat(exportInfo.selectionSetNames);
2695
+ }
2696
+ });
2697
+ return selectionSetNames;
2698
+ }
2699
+ /**
2700
+ * Create and consolidate labels from all layers
2701
+ *
2702
+ * @param exportInfos Key details about what to export (ids, layer, and selectionSetNames)
2703
+ * @param formatUsingLayerPopup When true, the layer's popup is used to choose attributes for each column; when false,
2704
+ * all attributes are exported
2705
+ * @param includeHeaderNames Add the label format at the front of the list of generated labels
2706
+ * @returns selectionSetNames that will be used for export filenames
2707
+ */
2708
+ async function consolidateLabels(exportInfos, formatUsingLayerPopup = true, includeHeaderNames = false, isCSVExport = false) {
2709
+ const labelRequests = [];
2710
+ Object.keys(exportInfos).forEach(k => {
2711
+ const labelInfo = exportInfos[k];
2712
+ labelRequests.push(_prepareLabels(labelInfo.layerView.layer, labelInfo.ids, formatUsingLayerPopup, includeHeaderNames));
2713
+ if (isCSVExport) {
2714
+ // add the layer id as a temp value separator that we can use to split values for CSV export
2715
+ labelRequests.push(Promise.resolve([[k]]));
2716
+ }
2717
+ });
2718
+ const labels = await Promise.all(labelRequests);
2719
+ return labels.reduce((prev, cur) => prev.concat(cur), []);
2720
+ }
2674
2721
  //#endregion
2675
2722
 
2676
- export { _typeof_1 as _, downloadPDF as a, downloadCSV as d };
2723
+ export { _typeof_1 as _, downloadPDF as a, consolidateLabels as c, downloadCSV as d, removeDuplicateLabels as r };
@@ -195,8 +195,13 @@ const LayerTable = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
195
195
  * @returns a promise that will resolve when the operation is complete
196
196
  */
197
197
  _exportToCSV() {
198
- void downloadCSV([], this._layerView.layer, this._getSelectedIds(), false, // formatUsingLayerPopup
199
- false, // removeDuplicates
198
+ const exportInfos = {};
199
+ exportInfos[this._layerView.layer.id] = {
200
+ selectionSetNames: [],
201
+ ids: this._getSelectedIds(),
202
+ layerView: this._layerView
203
+ };
204
+ void downloadCSV(exportInfos, false, // formatUsingLayerPopup
200
205
  true);
201
206
  }
202
207
  /**
@@ -12,7 +12,7 @@ import { d as defineCustomElement$3 } from './action.js';
12
12
  import { d as defineCustomElement$2 } from './icon.js';
13
13
  import { d as defineCustomElement$1 } from './loader.js';
14
14
 
15
- const mapDrawToolsCss = ":host{display:block}.border{outline:1px solid var(--calcite-ui-border-input)}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.margin-top-1{margin-top:1rem}.border-left{border-left:1px solid rgba(110,110,110,.3)}.border-left[dir=\"rtl\"]{border-right:1px solid rgba(110,110,110,.3)}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:#fff;--esri-widget-padding-v:12px;--esri-widget-padding-h:15px;--esri-widget-padding:var(--esri-widget-padding-v) var(--esri-widget-padding-h)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row wrap;padding:0}.esri-sketch__section{align-items:center;display:flex;flex-flow:row wrap;padding:0 7px;margin:6px 0}";
15
+ const mapDrawToolsCss = ":host{display:block}.border{outline:1px solid var(--calcite-ui-border-input)}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.margin-top-1{margin-top:1rem}.border-left{border-left:1px solid rgba(110,110,110,.3)}.border-left[dir=\"rtl\"]{border-right:1px solid rgba(110,110,110,.3)}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:#fff;--esri-widget-padding-v:12px;--esri-widget-padding-h:15px;--esri-widget-padding:var(--esri-widget-padding-v) var(--esri-widget-padding-h)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row wrap;padding:0}.esri-sketch__section{align-items:center;display:flex;flex-flow:row wrap;padding:0 7px;margin:6px 0}.esri-sketch__section.esri-sketch__info-section>calcite-action:first-of-type{display:none}";
16
16
 
17
17
  const MapDrawTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
18
18
  constructor() {
@@ -65,6 +65,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
65
65
  this.noResultText = undefined;
66
66
  this.searchConfiguration = undefined;
67
67
  this.selectionSet = undefined;
68
+ this.selectionLayerIds = [];
68
69
  this.selectLayerView = undefined;
69
70
  this.sketchLineSymbol = undefined;
70
71
  this.sketchPointSymbol = undefined;
@@ -207,7 +208,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
207
208
  */
208
209
  _getUseLayerFeaturesOptions() {
209
210
  const useLayerFeaturesClass = this._useLayerFeaturesEnabled ? "div-visible" : "div-not-visible";
210
- return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
211
+ return (h("div", null, h("div", { class: "padding-top-1 display-flex" }, h("calcite-label", { class: "label-margin-0 w-100", layout: "inline-space-between" }, h("div", { class: "tooltip-container" }, this._translations.useLayerFeatures, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "use-layer-features-icon", scale: "s" }))), h("calcite-popover", { closable: true, label: "", referenceElement: "use-layer-features-icon" }, h("span", { class: "tooltip-message" }, this._translations.useLayerFeaturesTooltip)), h("calcite-switch", { checked: this._useLayerFeaturesEnabled, onCalciteSwitchChange: () => { this._useLayerFeaturesEnabledChanged(); } })), h("div", { class: useLayerFeaturesClass + " padding-top-1" }, h("map-layer-picker", { enabledLayerIds: this.selectionLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, selectedLayerIds: this.layerViews.map(l => l.layer.id), selectionMode: "single" }))));
211
212
  }
212
213
  /**
213
214
  * Renders the number of selected features
@@ -792,6 +793,7 @@ const MapSelectTools = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
792
793
  "noResultText": [1, "no-result-text"],
793
794
  "searchConfiguration": [1040],
794
795
  "selectionSet": [16],
796
+ "selectionLayerIds": [16],
795
797
  "selectLayerView": [16],
796
798
  "sketchLineSymbol": [16],
797
799
  "sketchPointSymbol": [16],
@@ -237,11 +237,8 @@ const PdfDownload = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
237
237
  * @returns Promise resolving when function is done
238
238
  */
239
239
  async downloadCSV(exportInfos, removeDuplicates, addColumnTitle = true) {
240
- Object.keys(exportInfos).forEach(k => {
241
- const exportInfo = exportInfos[k];
242
- void downloadCSV(exportInfo.selectionSetNames, exportInfo.layerView.layer, exportInfo.ids, true, // formatUsingLayerPopup
243
- removeDuplicates, addColumnTitle);
244
- });
240
+ void downloadCSV(exportInfos, true, // formatUsingLayerPopup
241
+ removeDuplicates, addColumnTitle);
245
242
  }
246
243
  /**
247
244
  * Downloads pdf of mailing labels for the provided list of ids
@@ -253,10 +250,7 @@ const PdfDownload = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
253
250
  * @returns Promise resolving when function is done
254
251
  */
255
252
  async downloadPDF(exportInfos, removeDuplicates = false, title = "", initialImageDataUrl = "") {
256
- Object.keys(exportInfos).forEach(k => {
257
- const exportInfo = exportInfos[k];
258
- void downloadPDF(exportInfo.selectionSetNames, exportInfo.layerView.layer, exportInfo.ids, this._labelInfoElement.selectedOption.value, removeDuplicates, title, initialImageDataUrl);
259
- });
253
+ void downloadPDF(exportInfos, this._labelInfoElement.selectedOption.value, removeDuplicates, title, initialImageDataUrl);
260
254
  }
261
255
  //--------------------------------------------------------------------------
262
256
  //
@@ -9,6 +9,7 @@ import { l as loadModules } from './loadModules.js';
9
9
  import { g as goToSelection, h as highlightFeatures, d as defineCustomElement$5 } from './map-layer-picker2.js';
10
10
  import { s as state } from './publicNotificationStore.js';
11
11
  import { g as getLocaleComponentStrings } from './locale.js';
12
+ import { c as consolidateLabels, r as removeDuplicateLabels } from './downloadUtils.js';
12
13
  import { d as defineCustomElement$D } from './buffer-tools2.js';
13
14
  import { d as defineCustomElement$C } from './action.js';
14
15
  import { d as defineCustomElement$B } from './action-bar.js';
@@ -79,6 +80,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
79
80
  this._addTitle = false;
80
81
  this._downloadActive = true;
81
82
  this._exportType = EExportType.PDF;
83
+ this._numDuplicates = 0;
82
84
  this._pageType = EPageType.LIST;
83
85
  this._saveEnabled = false;
84
86
  this._selectionSets = [];
@@ -145,6 +147,9 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
145
147
  if ((_a = this.mapView) === null || _a === void 0 ? void 0 : _a.popup) {
146
148
  this.mapView.popup.autoOpenEnabled = pageType !== EPageType.LIST ? false : this._popupsEnabled;
147
149
  }
150
+ if (pageType === EPageType.EXPORT) {
151
+ this._numDuplicates = await this._getNumDuplicates();
152
+ }
148
153
  this._clearHighlight();
149
154
  if (oldPageType === EPageType.SELECT || oldPageType === EPageType.REFINE) {
150
155
  // clear any draw shapes or buffers
@@ -352,7 +357,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
352
357
  validSet = numIds > 0;
353
358
  }
354
359
  if (validSet) {
355
- prev.push((h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, h("div", { slot: "content" }, h("div", { class: "list-label" }, cur.label), h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
360
+ prev.push((h("calcite-list-item", { label: cur.label, onClick: () => this._gotoSelection(cur, this.mapView) }, h("div", { slot: "content" }, h("div", { class: "list-label" }, cur.label), h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))), this._getAction(true, "pencil", "", (evt) => this._openSelection(cur, evt), false, "actions-end"), this._getAction(true, "x", "", (evt) => this._deleteSelection(i, evt), false, "actions-end"))));
356
361
  }
357
362
  return prev;
358
363
  }, []))));
@@ -388,39 +393,67 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
388
393
  return validateRefineSet && hasRefineSet ? ids.length > 0 || this._selectionSets.length > 1 : this._selectionSets.length > 0;
389
394
  }
390
395
  /**
391
- * Check if any duplicates exist
396
+ * Check if any duplicate labels exist
392
397
  *
393
398
  * @returns true if duplicates are found
394
399
  *
395
400
  * @protected
396
401
  */
397
- _hasDuplicates() {
398
- const selectedIds = this._getSelectedIds();
399
- return this._getNumDuplicates(selectedIds) > 0;
402
+ async _getNumDuplicates() {
403
+ const exportInfos = this._getExportInfos();
404
+ const labels = await consolidateLabels(exportInfos);
405
+ const duplicatesRemoved = removeDuplicateLabels(labels);
406
+ return labels.length - duplicatesRemoved.length;
400
407
  }
401
408
  /**
402
- * Return the number of duplicates
403
- *
404
- * @param ids the list of currently selected ids
409
+ * Get key details about what to export
405
410
  *
406
- * @returns the number of duplicates
411
+ * @returns IExportInfos that contain ids and layer
407
412
  *
408
413
  * @protected
409
414
  */
410
- _getNumDuplicates(ids) {
411
- return ids.length - new Set(ids).size;
415
+ _getExportInfos() {
416
+ return this._selectionSets.reduce((prev, cur) => {
417
+ if (cur.download) {
418
+ if (cur.workflowType !== EWorkflowType.REFINE) {
419
+ const id = cur.layerView.layer.id;
420
+ this._updateIds(id, cur.layerView, cur.selectedIds, prev);
421
+ }
422
+ else {
423
+ // REFINE stores ids differently as it can contain ids from multiple layers
424
+ // REFINE will only ever be 1 ISelectionSet
425
+ Object.keys(cur.refineInfos).forEach(k => {
426
+ const refineIds = cur.refineInfos[k];
427
+ this._updateIds(k, refineIds.layerView, refineIds.addIds, prev);
428
+ });
429
+ }
430
+ }
431
+ return prev;
432
+ }, {});
412
433
  }
413
434
  /**
414
- * Get the complete list of selected ids
435
+ * Consolidate ids for each layer
415
436
  *
416
- * @returns all currently selected IDs
437
+ * @param id the layer id from the selectionSet
438
+ * @param layerView the layerView from the selectionSet
439
+ * @param ids the selectedIds from the selectionSet
440
+ * @param obj the object that will store the consolidated ids and layer info
441
+ *
442
+ * @returns IExportInfo key details that will be used for export
417
443
  *
418
444
  * @protected
419
445
  */
420
- _getSelectedIds() {
421
- return this._selectionSets.reduce((prev, cur) => {
422
- return prev.concat(cur.download ? cur.selectedIds : []);
423
- }, []);
446
+ _updateIds(id, layerView, ids, obj) {
447
+ if (obj[id]) {
448
+ obj[id].ids = obj[id].ids.concat(ids);
449
+ }
450
+ else {
451
+ obj[id] = {
452
+ layerView,
453
+ ids
454
+ };
455
+ }
456
+ return obj;
424
457
  }
425
458
  /**
426
459
  * Create the Select page that shows the selection workflows
@@ -430,7 +463,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
430
463
  */
431
464
  _getSelectPage() {
432
465
  const noticeText = this._translations.selectSearchTip;
433
- return (h("calcite-panel", null, this._getLabel(this._translations.stepTwoFull, true), this._getNotice(noticeText), h("div", { class: "padding-top-1" }, h("map-select-tools", { bufferColor: this.bufferColor, bufferOutlineColor: this.bufferOutlineColor, class: "font-bold", customLabelEnabled: this.customLabelEnabled, defaultBufferDistance: this.defaultBufferDistance, defaultBufferUnit: this.defaultBufferUnit, enabledLayerIds: this.selectionLayerIds, isUpdate: !!this._activeSelection, mapView: this.mapView, noResultText: this.noResultText, onSelectionSetChange: (evt) => this._updateForSelection(evt), ref: (el) => { this._selectTools = el; }, searchConfiguration: this._searchConfiguration, selectionSet: this._activeSelection, sketchLineSymbol: this.sketchLineSymbol, sketchPointSymbol: this.sketchPointSymbol, sketchPolygonSymbol: this.sketchPolygonSymbol })), this._getPageNavButtons(this._translations.done, this._numSelected === 0, () => { void this._saveSelection(); }, this._translations.cancel, false, () => { void this._home(); })));
466
+ return (h("calcite-panel", null, this._getLabel(this._translations.stepTwoFull, true), this._getNotice(noticeText), h("div", null, h("map-select-tools", { bufferColor: this.bufferColor, bufferOutlineColor: this.bufferOutlineColor, class: "font-bold", customLabelEnabled: this.customLabelEnabled, defaultBufferDistance: this.defaultBufferDistance, defaultBufferUnit: this.defaultBufferUnit, enabledLayerIds: this.addresseeLayerIds, isUpdate: !!this._activeSelection, mapView: this.mapView, noResultText: this.noResultText, onSelectionSetChange: (evt) => this._updateForSelection(evt), ref: (el) => { this._selectTools = el; }, searchConfiguration: this._searchConfiguration, selectionLayerIds: this.selectionLayerIds, selectionSet: this._activeSelection, sketchLineSymbol: this.sketchLineSymbol, sketchPointSymbol: this.sketchPointSymbol, sketchPolygonSymbol: this.sketchPolygonSymbol })), this._getPageNavButtons(this._translations.done, this._numSelected === 0, () => { void this._saveSelection(); }, this._translations.cancel, false, () => { void this._home(); })));
434
467
  }
435
468
  /**
436
469
  * Create the main download page that has the shared aspects of both PDF and CSV
@@ -441,8 +474,8 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
441
474
  */
442
475
  _getExportPage() {
443
476
  const hasSelections = this._hasSelections(this.showRefineSelection);
444
- const numDuplicates = this._getNumDuplicates(this._getSelectedIds());
445
- return (h("calcite-panel", null, h("div", null, this._getLabel(this._translations.export, false), hasSelections ? (h("div", null, this._getNotice(this._translations.exportTip, "padding-sides-1"), this._getLabel(this._translations.myLists), this._getExportSelectionLists(), h("div", { class: "padding-sides-1" }, h("calcite-label", { layout: "inline" }, h("calcite-checkbox", { ref: (el) => { this._removeDuplicates = el; } }), h("div", { class: "display-flex" }, this._translations.removeDuplicate, h("div", { class: "info-message padding-start-1-2" }, h("calcite-input-message", { class: "info-blue margin-top-0", scale: "m" }, ` ${this._translations.numDuplicates.replace("{{n}}", numDuplicates.toString())}`))))), h("div", { class: "border-bottom" }), h("div", { class: "padding-top-sides-1" }, h("calcite-segmented-control", { class: "w-100", onCalciteSegmentedControlChange: (evt) => this._exportTypeChange(evt) }, h("calcite-segmented-control-item", { checked: this._exportType === EExportType.PDF, class: "w-50 end-border", value: EExportType.PDF }, this._translations.pdf), h("calcite-segmented-control-item", { checked: this._exportType === EExportType.CSV, class: "w-50", value: EExportType.CSV }, this._translations.csv))), h("div", { class: "padding-bottom-1" }, this._getExportOptions()), h("div", { class: "padding-1 display-flex" }, h("calcite-button", { disabled: !this._downloadActive, onClick: () => void this._export(), width: "full" }, this._translations.export)))) : (this._getNotice(this._translations.downloadNoLists, "padding-sides-1 padding-bottom-1")))));
477
+ const displayDuplicatesClass = this._numDuplicates > 0 ? "display-block" : "display-none";
478
+ return (h("calcite-panel", null, h("div", null, this._getLabel(this._translations.export, false), hasSelections ? (h("div", null, this._getNotice(this._translations.exportTip, "padding-sides-1"), this._getLabel(this._translations.exportListsLabel), this._getExportSelectionLists(), h("div", { class: "padding-sides-1 " + displayDuplicatesClass }, h("div", { class: "display-flex" }, h("calcite-label", { layout: "inline" }, h("calcite-checkbox", { ref: (el) => { this._removeDuplicates = el; } }), h("div", { class: "display-flex" }, this._translations.removeDuplicate, h("div", { class: "info-message padding-start-1-2" }, h("calcite-input-message", { class: "info-blue margin-top-0", scale: "m" }, ` ${this._translations.numDuplicates.replace("{{n}}", this._numDuplicates.toString())}`)))), h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "remove-duplicates-icon", scale: "s" })), h("calcite-popover", { closable: true, label: "", referenceElement: "remove-duplicates-icon" }, h("span", { class: "tooltip-message" }, this._translations.duplicatesTip))), h("div", { class: "border-bottom" }), h("div", { class: "padding-top-sides-1" }, h("calcite-segmented-control", { class: "w-100", onCalciteSegmentedControlChange: (evt) => this._exportTypeChange(evt) }, h("calcite-segmented-control-item", { checked: this._exportType === EExportType.PDF, class: "w-50 end-border", value: EExportType.PDF }, this._translations.pdf), h("calcite-segmented-control-item", { checked: this._exportType === EExportType.CSV, class: "w-50", value: EExportType.CSV }, this._translations.csv))), h("div", { class: "padding-bottom-1" }, this._getExportOptions()), h("div", { class: "padding-1 display-flex" }, h("calcite-button", { disabled: !this._downloadActive, onClick: () => void this._export(), width: "full" }, this._translations.export)))) : (this._getNotice(this._translations.downloadNoLists, "padding-sides-1 padding-bottom-1")))));
446
479
  }
447
480
  /**
448
481
  * Store the user selected export type CSV || PDF
@@ -522,13 +555,14 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
522
555
  */
523
556
  _getExportSelectionLists() {
524
557
  return this._selectionSets.reduce((prev, cur) => {
558
+ var _a;
525
559
  const ids = this._getSelectionSetIds(cur);
526
560
  const validSet = cur.workflowType !== EWorkflowType.REFINE || ids.length > 0;
527
561
  if (!this._downloadActive && cur.download && validSet) {
528
562
  this._downloadActive = true;
529
563
  }
530
564
  if (validSet) {
531
- prev.push((h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, h("calcite-checkbox", { checked: cur.download, class: "align-center", onClick: () => { void this._toggleDownload(cur.id); } }), h("calcite-list", { class: "list-border margin-start-1-2 width-full", id: "download-list" }, h("calcite-list-item", { description: this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()), disabled: !cur.download, label: cur.label, onClick: () => { void this._toggleDownload(cur.id); } })))));
565
+ prev.push((h("div", { class: "display-flex padding-sides-1 padding-bottom-1" }, h("calcite-checkbox", { checked: cur.download, class: "align-center", onClick: () => { void this._toggleDownload(cur.id); } }), h("calcite-list", { class: "list-border margin-start-1-2 width-full", id: "download-list" }, h("calcite-list-item", { disabled: !cur.download, label: cur.label, onClick: () => { void this._toggleDownload(cur.id); } }, h("div", { slot: "content" }, h("div", { class: "list-label" }, cur.label), h("div", { class: "list-description" }, (_a = cur === null || cur === void 0 ? void 0 : cur.layerView) === null || _a === void 0 ? void 0 : _a.layer.title), h("div", { class: "list-description" }, this._translations.selectedFeatures.replace("{{n}}", ids.length.toString()))))))));
532
566
  }
533
567
  return prev;
534
568
  }, []) || (h("div", null));
@@ -548,6 +582,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
548
582
  return ss;
549
583
  });
550
584
  this._downloadActive = isActive;
585
+ this._numDuplicates = await this._getNumDuplicates();
551
586
  await this._highlightFeatures();
552
587
  }
553
588
  /**
@@ -811,6 +846,7 @@ const PublicNotification$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
811
846
  "_addTitle": [32],
812
847
  "_downloadActive": [32],
813
848
  "_exportType": [32],
849
+ "_numDuplicates": [32],
814
850
  "_pageType": [32],
815
851
  "_saveEnabled": [32],
816
852
  "_selectionSets": [32],
@@ -9,17 +9,19 @@ import { b as getMapLayerView, c as getIdSets, e as highlightAllFeatures, d as d
9
9
  import { c as queryFeaturesByGeometry } from './queryUtils.js';
10
10
  import { s as state } from './publicNotificationStore.js';
11
11
  import { g as getLocaleComponentStrings } from './locale.js';
12
- import { d as defineCustomElement$i } from './action.js';
13
- import { d as defineCustomElement$h } from './chip.js';
14
- import { d as defineCustomElement$g } from './combobox.js';
15
- import { d as defineCustomElement$f } from './combobox-item.js';
16
- import { d as defineCustomElement$e } from './filter.js';
17
- import { d as defineCustomElement$d } from './icon.js';
18
- import { d as defineCustomElement$c } from './input.js';
19
- import { d as defineCustomElement$b } from './list.js';
20
- import { d as defineCustomElement$a } from './list-item2.js';
21
- import { d as defineCustomElement$9 } from './loader.js';
22
- import { d as defineCustomElement$8 } from './option.js';
12
+ import { d as defineCustomElement$k } from './action.js';
13
+ import { d as defineCustomElement$j } from './chip.js';
14
+ import { d as defineCustomElement$i } from './combobox.js';
15
+ import { d as defineCustomElement$h } from './combobox-item.js';
16
+ import { d as defineCustomElement$g } from './filter.js';
17
+ import { d as defineCustomElement$f } from './icon.js';
18
+ import { d as defineCustomElement$e } from './input.js';
19
+ import { d as defineCustomElement$d } from './label.js';
20
+ import { d as defineCustomElement$c } from './list.js';
21
+ import { d as defineCustomElement$b } from './list-item2.js';
22
+ import { d as defineCustomElement$a } from './loader.js';
23
+ import { d as defineCustomElement$9 } from './option.js';
24
+ import { d as defineCustomElement$8 } from './popover.js';
23
25
  import { d as defineCustomElement$7 } from './progress.js';
24
26
  import { d as defineCustomElement$6 } from './scrim.js';
25
27
  import { d as defineCustomElement$5 } from './segmented-control.js';
@@ -27,7 +29,7 @@ import { d as defineCustomElement$4 } from './segmented-control-item.js';
27
29
  import { d as defineCustomElement$3 } from './select.js';
28
30
  import { d as defineCustomElement$2 } from './map-draw-tools2.js';
29
31
 
30
- const refineSelectionCss = ":host{display:block}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.border{outline:1px solid var(--calcite-ui-border-input)}.margin-top-1{margin-top:1rem}.esri-sketch{display:flex;flex-flow:column wrap}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:var(--calcite-ui-foreground-1)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row nowrap;padding:0}*/ .esri-sketch__tool-section{border-right:1px solid rgba(110,110,110,.3)}.esri-sketch__section{align-items:center;display:flex;flex-flow:row nowrap;padding:0 7px;margin:6px 0;border-right:1px solid rgba(110,110,110,.3)}";
32
+ const refineSelectionCss = ":host{display:block}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.border{outline:1px solid var(--calcite-ui-border-input)}.margin-top-1{margin-top:1rem}.esri-sketch{display:flex;flex-flow:column wrap}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:var(--calcite-ui-foreground-1)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row nowrap;padding:0}*/ .esri-sketch__tool-section{border-right:1px solid rgba(110,110,110,.3)}.esri-sketch__section{align-items:center;display:flex;flex-flow:row nowrap;padding:0 7px;margin:6px 0;border-right:1px solid rgba(110,110,110,.3)}.display-flex{display:flex}.font-bold{font-weight:bold}.width-full{width:100%}.label-margin-0{--calcite-label-margin-bottom:0}.padding-start-1-2{-webkit-padding-start:0.5rem;padding-inline-start:0.5rem}";
31
33
 
32
34
  const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
33
35
  constructor() {
@@ -86,7 +88,7 @@ const RefineSelection = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
86
88
  render() {
87
89
  var _a, _b;
88
90
  const layerPickerClass = this._enabledLayerIds.length > 1 ? "display-block" : "display-none";
89
- return (h(Host, null, h("div", { class: layerPickerClass + " padding-top-sides-1" }, h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedLayerIds: [this._refineLayer.layer.id], selectionMode: "single" })), h("div", { class: "padding-1" }, h("div", { class: "padding-bottom-1" }, h("calcite-segmented-control", { class: "w-100" }, h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, this._translations.add), h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, this._translations.remove))), h("div", null, h("map-draw-tools", { active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
91
+ return (h(Host, null, h("div", { class: layerPickerClass + " padding-top-sides-1" }, h("div", { class: "display-flex" }, h("calcite-label", { class: "font-bold width-full label-margin-0" }, h("div", { class: "display-flex" }, this._translations.inputLayer, h("calcite-icon", { class: "padding-start-1-2 icon", icon: "question", id: "refine-input-layer", scale: "s" })), h("map-layer-picker", { enabledLayerIds: this._enabledLayerIds, mapView: this.mapView, onLayerSelectionChange: (evt) => { void this._layerSelectionChange(evt); }, ref: (el) => { this._layerPicker = el; }, selectedLayerIds: [this._refineLayer.layer.id], selectionMode: "single" })), h("calcite-popover", { closable: true, label: "", referenceElement: "refine-input-layer" }, h("span", { class: "tooltip-message" }, this._translations.inputLayerTip)))), h("div", { class: "padding-1" }, h("div", { class: "padding-bottom-1" }, h("calcite-segmented-control", { class: "w-100" }, h("calcite-segmented-control-item", { checked: this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.ADD), value: ESelectionMode.ADD }, this._translations.add), h("calcite-segmented-control-item", { checked: !this._addEnabled, class: "w-50", onClick: () => this._setSelectionMode(ESelectionMode.REMOVE), value: ESelectionMode.REMOVE }, this._translations.remove))), h("div", null, h("map-draw-tools", { active: true, drawMode: EDrawMode.REFINE, mapView: this.mapView, onDrawRedo: () => this._redo(), onDrawUndo: () => this._undo(), onSketchGraphicsChange: (evt) => this._sketchGraphicsChanged(evt), pointSymbol: this.sketchPointSymbol, polygonSymbol: this.sketchPolygonSymbol, polylineSymbol: this.sketchLineSymbol, redoEnabled: ((_a = this._refineSelectionSet) === null || _a === void 0 ? void 0 : _a.redoStack.length) > 0, ref: (el) => { this._drawTools = el; }, undoEnabled: ((_b = this._refineSelectionSet) === null || _b === void 0 ? void 0 : _b.undoStack.length) > 0 })), h("br", null), (h("calcite-list", { class: "list-border" }, this._getRefineSelectionSetList())))));
90
92
  }
91
93
  //--------------------------------------------------------------------------
92
94
  //
@@ -432,7 +434,7 @@ function defineCustomElement() {
432
434
  if (typeof customElements === "undefined") {
433
435
  return;
434
436
  }
435
- const components = ["refine-selection", "calcite-action", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-filter", "calcite-icon", "calcite-input", "calcite-list", "calcite-list-item", "calcite-loader", "calcite-option", "calcite-progress", "calcite-scrim", "calcite-segmented-control", "calcite-segmented-control-item", "calcite-select", "map-draw-tools", "map-layer-picker"];
437
+ const components = ["refine-selection", "calcite-action", "calcite-chip", "calcite-combobox", "calcite-combobox-item", "calcite-filter", "calcite-icon", "calcite-input", "calcite-label", "calcite-list", "calcite-list-item", "calcite-loader", "calcite-option", "calcite-popover", "calcite-progress", "calcite-scrim", "calcite-segmented-control", "calcite-segmented-control-item", "calcite-select", "map-draw-tools", "map-layer-picker"];
436
438
  components.forEach(tagName => { switch (tagName) {
437
439
  case "refine-selection":
438
440
  if (!customElements.get(tagName)) {
@@ -441,55 +443,65 @@ function defineCustomElement() {
441
443
  break;
442
444
  case "calcite-action":
443
445
  if (!customElements.get(tagName)) {
444
- defineCustomElement$i();
446
+ defineCustomElement$k();
445
447
  }
446
448
  break;
447
449
  case "calcite-chip":
448
450
  if (!customElements.get(tagName)) {
449
- defineCustomElement$h();
451
+ defineCustomElement$j();
450
452
  }
451
453
  break;
452
454
  case "calcite-combobox":
453
455
  if (!customElements.get(tagName)) {
454
- defineCustomElement$g();
456
+ defineCustomElement$i();
455
457
  }
456
458
  break;
457
459
  case "calcite-combobox-item":
458
460
  if (!customElements.get(tagName)) {
459
- defineCustomElement$f();
461
+ defineCustomElement$h();
460
462
  }
461
463
  break;
462
464
  case "calcite-filter":
463
465
  if (!customElements.get(tagName)) {
464
- defineCustomElement$e();
466
+ defineCustomElement$g();
465
467
  }
466
468
  break;
467
469
  case "calcite-icon":
468
470
  if (!customElements.get(tagName)) {
469
- defineCustomElement$d();
471
+ defineCustomElement$f();
470
472
  }
471
473
  break;
472
474
  case "calcite-input":
473
475
  if (!customElements.get(tagName)) {
474
- defineCustomElement$c();
476
+ defineCustomElement$e();
477
+ }
478
+ break;
479
+ case "calcite-label":
480
+ if (!customElements.get(tagName)) {
481
+ defineCustomElement$d();
475
482
  }
476
483
  break;
477
484
  case "calcite-list":
478
485
  if (!customElements.get(tagName)) {
479
- defineCustomElement$b();
486
+ defineCustomElement$c();
480
487
  }
481
488
  break;
482
489
  case "calcite-list-item":
483
490
  if (!customElements.get(tagName)) {
484
- defineCustomElement$a();
491
+ defineCustomElement$b();
485
492
  }
486
493
  break;
487
494
  case "calcite-loader":
488
495
  if (!customElements.get(tagName)) {
489
- defineCustomElement$9();
496
+ defineCustomElement$a();
490
497
  }
491
498
  break;
492
499
  case "calcite-option":
500
+ if (!customElements.get(tagName)) {
501
+ defineCustomElement$9();
502
+ }
503
+ break;
504
+ case "calcite-popover":
493
505
  if (!customElements.get(tagName)) {
494
506
  defineCustomElement$8();
495
507
  }
@@ -22,7 +22,7 @@ import './resources-e83f65b3.js';
22
22
  import './observers-81c91acd.js';
23
23
  import './index-4c4a4f3d.js';
24
24
 
25
- const bufferToolsCss = ":host{display:block}.c-container{display:inline-flex}.flex-1{flex:\"1\"}.padding-end-1{-webkit-padding-end:1rem;padding-inline-end:1rem}";
25
+ const bufferToolsCss = ":host{display:block}.c-container{display:inline-flex}.flex-1{flex:\"1\"}.padding-end-1{-webkit-padding-end:1rem;padding-inline-end:1rem}.w-50{width:50%}";
26
26
 
27
27
  const BufferTools = class {
28
28
  constructor(hostRef) {
@@ -181,7 +181,7 @@ const BufferTools = class {
181
181
  * @protected
182
182
  */
183
183
  _getTextBoxDisplay() {
184
- return (h("div", { class: "c-container" }, h("calcite-input", { class: "padding-end-1", max: this.max && this.max > 0 ? this.max : undefined, min: this.min, "number-button-type": "vertical", onCalciteInputInput: (evt) => this._setDistance(evt), placeholder: "0", type: "number", value: this.distance ? this.distance.toString() : undefined }), h("calcite-select", { class: "flex-1", label: "label", onCalciteSelectChange: () => this._setUnit(this._unitElement.value), ref: (el) => { this._unitElement = el; } }, this._getUnits())));
184
+ return (h("div", { class: "c-container" }, h("calcite-input", { class: "padding-end-1 w-50", max: this.max && this.max > 0 ? this.max : undefined, min: this.min, "number-button-type": "vertical", onCalciteInputInput: (evt) => this._setDistance(evt), placeholder: "0", type: "number", value: this.distance ? this.distance.toString() : undefined }), h("calcite-select", { class: "flex-1 w-50", label: "label", onCalciteSelectChange: () => this._setUnit(this._unitElement.value), ref: (el) => { this._unitElement = el; } }, this._getUnits())));
185
185
  }
186
186
  /**
187
187
  * Render distance control as a slider
@@ -1122,7 +1122,7 @@ const Slider = class {
1122
1122
  };
1123
1123
  Slider.style = sliderCss;
1124
1124
 
1125
- const mapDrawToolsCss = ":host{display:block}.border{outline:1px solid var(--calcite-ui-border-input)}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.margin-top-1{margin-top:1rem}.border-left{border-left:1px solid rgba(110,110,110,.3)}.border-left[dir=\"rtl\"]{border-right:1px solid rgba(110,110,110,.3)}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:#fff;--esri-widget-padding-v:12px;--esri-widget-padding-h:15px;--esri-widget-padding:var(--esri-widget-padding-v) var(--esri-widget-padding-h)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row wrap;padding:0}.esri-sketch__section{align-items:center;display:flex;flex-flow:row wrap;padding:0 7px;margin:6px 0}";
1125
+ const mapDrawToolsCss = ":host{display:block}.border{outline:1px solid var(--calcite-ui-border-input)}.div-visible{display:inherit}.div-not-visible{display:none !important}.padding-top-1-2{padding-top:.5rem}.main-label{display:flex;float:left}html[dir=\"rtl\"] .main-label{display:flex;float:right}.margin-top-1{margin-top:1rem}.border-left{border-left:1px solid rgba(110,110,110,.3)}.border-left[dir=\"rtl\"]{border-right:1px solid rgba(110,110,110,.3)}.esri-widget{box-sizing:border-box;color:#323232;font-size:14px;font-family:\"Avenir Next\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.3em;background-color:#fff;--esri-widget-padding-v:12px;--esri-widget-padding-h:15px;--esri-widget-padding:var(--esri-widget-padding-v) var(--esri-widget-padding-h)}.esri-sketch__panel{align-items:center;display:flex;flex-flow:row wrap;padding:0}.esri-sketch__section{align-items:center;display:flex;flex-flow:row wrap;padding:0 7px;margin:6px 0}.esri-sketch__section.esri-sketch__info-section>calcite-action:first-of-type{display:none}";
1126
1126
 
1127
1127
  const MapDrawTools = class {
1128
1128
  constructor(hostRef) {