@esri/solutions-components 0.5.8 → 0.5.10

Sign up to get free protection for your applications and to get access to all the features.
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) {