@esri/solutions-components 0.6.7 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1280) hide show
  1. package/dist/cjs/ExpandToggle-e6a0d66e.js +117 -0
  2. package/dist/cjs/FloatingArrow-0119ec6e.js +48 -0
  3. package/dist/cjs/Heading-521f39ac.js +25 -0
  4. package/dist/cjs/app-globals-72576a1c.js +69 -0
  5. package/dist/cjs/ar-1718ae57.js +97 -0
  6. package/dist/cjs/basemap-gallery_4.cjs.entry.js +622 -0
  7. package/dist/cjs/bg-190a176c.js +78 -0
  8. package/dist/cjs/bs-919e0de8.js +47 -0
  9. package/dist/cjs/buffer-tools_4.cjs.entry.js +1437 -1437
  10. package/dist/cjs/ca-94918e06.js +67 -0
  11. package/dist/cjs/calcite-accordion-item.cjs.entry.js +140 -140
  12. package/dist/cjs/calcite-accordion.cjs.entry.js +75 -75
  13. package/dist/cjs/calcite-action-bar.cjs.entry.js +216 -216
  14. package/dist/cjs/calcite-action-group_2.cjs.entry.js +365 -365
  15. package/dist/cjs/calcite-action-pad.cjs.entry.js +135 -135
  16. package/dist/cjs/calcite-action_2.cjs.entry.js +445 -445
  17. package/dist/cjs/calcite-alert.cjs.entry.js +247 -247
  18. package/dist/cjs/calcite-avatar.cjs.entry.js +73 -73
  19. package/dist/cjs/calcite-block-section.cjs.entry.js +122 -122
  20. package/dist/cjs/calcite-block.cjs.entry.js +131 -131
  21. package/dist/cjs/calcite-button.cjs.entry.js +182 -182
  22. package/dist/cjs/calcite-card.cjs.entry.js +99 -99
  23. package/dist/cjs/calcite-checkbox.cjs.entry.js +125 -125
  24. package/dist/cjs/calcite-chip-group.cjs.entry.js +164 -164
  25. package/dist/cjs/calcite-chip.cjs.entry.js +213 -213
  26. package/dist/cjs/calcite-color-picker-hex-input_2.cjs.entry.js +303 -303
  27. package/dist/cjs/calcite-color-picker.cjs.entry.js +886 -886
  28. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +35 -35
  29. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1786 -1786
  30. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +589 -589
  31. package/dist/cjs/calcite-date-picker.cjs.entry.js +434 -434
  32. package/dist/cjs/calcite-fab.cjs.entry.js +66 -66
  33. package/dist/cjs/calcite-filter_5.cjs.entry.js +1131 -1131
  34. package/dist/cjs/calcite-flow-item.cjs.entry.js +146 -146
  35. package/dist/cjs/calcite-flow.cjs.entry.js +117 -117
  36. package/dist/cjs/calcite-graph.cjs.entry.js +66 -66
  37. package/dist/cjs/calcite-icon.cjs.entry.js +80 -80
  38. package/dist/cjs/calcite-inline-editable.cjs.entry.js +225 -225
  39. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +632 -632
  40. package/dist/cjs/calcite-input-number_2.cjs.entry.js +846 -846
  41. package/dist/cjs/calcite-input-time-picker-b99baf7b.js +1718 -0
  42. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +15 -15
  43. package/dist/cjs/calcite-input-time-zone.cjs.entry.js +150 -150
  44. package/dist/cjs/calcite-input_2.cjs.entry.js +645 -645
  45. package/dist/cjs/calcite-label.cjs.entry.js +40 -40
  46. package/dist/cjs/calcite-link.cjs.entry.js +96 -96
  47. package/dist/cjs/calcite-list-item-group.cjs.entry.js +46 -46
  48. package/dist/cjs/calcite-loader.cjs.entry.js +65 -65
  49. package/dist/cjs/calcite-menu-item.cjs.entry.js +246 -246
  50. package/dist/cjs/calcite-menu.cjs.entry.js +161 -161
  51. package/dist/cjs/calcite-modal.cjs.entry.js +282 -282
  52. package/dist/cjs/calcite-navigation-logo.cjs.entry.js +52 -52
  53. package/dist/cjs/calcite-navigation-user.cjs.entry.js +45 -45
  54. package/dist/cjs/calcite-navigation.cjs.entry.js +126 -126
  55. package/dist/cjs/calcite-notice.cjs.entry.js +105 -105
  56. package/dist/cjs/calcite-option-group.cjs.entry.js +24 -24
  57. package/dist/cjs/calcite-option_2.cjs.entry.js +271 -271
  58. package/dist/cjs/calcite-pagination.cjs.entry.js +191 -191
  59. package/dist/cjs/calcite-panel_2.cjs.entry.js +346 -346
  60. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +46 -46
  61. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +181 -181
  62. package/dist/cjs/calcite-pick-list.cjs.entry.js +130 -130
  63. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +118 -118
  64. package/dist/cjs/calcite-radio-button.cjs.entry.js +292 -292
  65. package/dist/cjs/calcite-rating.cjs.entry.js +245 -245
  66. package/dist/cjs/calcite-scrim.cjs.entry.js +93 -93
  67. package/dist/cjs/calcite-segmented-control_2.cjs.entry.js +225 -225
  68. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +42 -42
  69. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +2604 -2604
  70. package/dist/cjs/calcite-sortable-list.cjs.entry.js +134 -134
  71. package/dist/cjs/calcite-split-button.cjs.entry.js +92 -92
  72. package/dist/cjs/calcite-stepper-item.cjs.entry.js +197 -197
  73. package/dist/cjs/calcite-stepper.cjs.entry.js +187 -187
  74. package/dist/cjs/calcite-switch.cjs.entry.js +100 -100
  75. package/dist/cjs/calcite-text-area.cjs.entry.js +235 -235
  76. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +27 -27
  77. package/dist/cjs/calcite-tile-select.cjs.entry.js +180 -180
  78. package/dist/cjs/calcite-tile.cjs.entry.js +58 -58
  79. package/dist/cjs/calcite-time-picker.cjs.entry.js +619 -619
  80. package/dist/cjs/calcite-tip-group.cjs.entry.js +10 -10
  81. package/dist/cjs/calcite-tip-manager.cjs.entry.js +185 -185
  82. package/dist/cjs/calcite-tip.cjs.entry.js +94 -94
  83. package/dist/cjs/calcite-tooltip.cjs.entry.js +185 -185
  84. package/dist/cjs/calcite-tree_3.cjs.entry.js +821 -821
  85. package/dist/cjs/card-manager_4.cjs.entry.js +707 -653
  86. package/dist/cjs/conditionalSlot-85b3a6b3.js +63 -0
  87. package/dist/cjs/crowdsource-manager.cjs.entry.js +258 -256
  88. package/dist/cjs/crowdsource-reporter.cjs.entry.js +60 -60
  89. package/dist/cjs/cs-fe27e732.js +143 -0
  90. package/dist/cjs/da-1b7f3440.js +62 -0
  91. package/dist/cjs/date-cec32b0e.js +250 -0
  92. package/dist/cjs/de-0dc1effa.js +87 -0
  93. package/dist/cjs/de-at-acdc4d01.js +86 -0
  94. package/dist/cjs/de-ch-778a0d99.js +86 -0
  95. package/dist/cjs/deduct-calculator.cjs.entry.js +90 -90
  96. package/dist/cjs/dom-c1807fc1.js +1046 -0
  97. package/dist/cjs/downloadUtils-a8c530f7.js +2767 -0
  98. package/dist/cjs/edit-card_2.cjs.entry.js +345 -345
  99. package/dist/cjs/el-fdbc9bc1.js +62 -0
  100. package/dist/cjs/en-au-0ff50cdf.js +62 -0
  101. package/dist/cjs/en-ca-284e9368.js +61 -0
  102. package/dist/cjs/en-gb-0fcae8ae.js +65 -0
  103. package/dist/cjs/es-cd54acba.js +62 -0
  104. package/dist/cjs/es-mx-2078d50f.js +61 -0
  105. package/dist/cjs/et-17f323f6.js +88 -0
  106. package/dist/cjs/fi-82f27397.js +111 -0
  107. package/dist/cjs/filter-bda212b4.js +765 -0
  108. package/dist/cjs/floating-ui-8d10af88.js +1888 -0
  109. package/dist/cjs/focusTrapComponent-a22fc6a8.js +1009 -0
  110. package/dist/cjs/form-9d8ebf06.js +288 -0
  111. package/dist/cjs/fr-af7e1192.js +64 -0
  112. package/dist/cjs/fr-ch-5e1f2c28.js +62 -0
  113. package/dist/cjs/he-ea851800.js +101 -0
  114. package/dist/cjs/hi-5212a21d.js +61 -0
  115. package/dist/cjs/hr-4eecb2ed.js +76 -0
  116. package/dist/cjs/hu-6b527d8e.js +84 -0
  117. package/dist/cjs/id-d78f12ec.js +62 -0
  118. package/dist/cjs/index-0e50040c.js +1938 -0
  119. package/dist/cjs/index-2b60e135.js +201 -0
  120. package/dist/cjs/index.es-4542630e.js +10808 -0
  121. package/dist/cjs/interfaces-d539e30c.js +85 -0
  122. package/dist/cjs/it-15242935.js +62 -0
  123. package/dist/cjs/it-ch-9dc21944.js +62 -0
  124. package/dist/cjs/ja-f702cfc2.js +68 -0
  125. package/dist/cjs/ko-aa9bde2c.js +68 -0
  126. package/dist/cjs/label-6e33e971.js +136 -0
  127. package/dist/cjs/list-item.cjs.entry.js +60 -60
  128. package/dist/cjs/loadModules-31cab7ac.js +30 -0
  129. package/dist/cjs/loadable-bac9cdd6.js +94 -0
  130. package/dist/cjs/loader.cjs.js +5 -14
  131. package/dist/cjs/locale-c63a1b57.js +604 -0
  132. package/dist/cjs/locale-d15cd743.js +416 -0
  133. package/dist/cjs/lt-e741ff2f.js +93 -0
  134. package/dist/cjs/lv-92d6768e.js +62 -0
  135. package/dist/cjs/map-select-tools_3.cjs.entry.js +1285 -1285
  136. package/dist/cjs/mapViewUtils-9da2dddd.js +411 -0
  137. package/dist/cjs/mk-b209ac0d.js +62 -0
  138. package/dist/cjs/nb-db13e666.js +63 -0
  139. package/dist/cjs/nl-fcd9e0c5.js +63 -0
  140. package/dist/cjs/openCloseComponent-5d70fcd8.js +84 -0
  141. package/dist/cjs/pci-calculator.cjs.entry.js +102 -102
  142. package/dist/cjs/pciUtils-e0ddeb7c.js +847 -0
  143. package/dist/cjs/pl-87c83322.js +110 -0
  144. package/dist/cjs/pt-b0b5f472.js +63 -0
  145. package/dist/cjs/pt-br-03333e90.js +61 -0
  146. package/dist/cjs/public-notification.cjs.entry.js +844 -844
  147. package/dist/cjs/publicNotificationStore-55edd658.js +51 -0
  148. package/dist/cjs/ro-c3661b73.js +62 -0
  149. package/dist/cjs/ru-8dd3fd58.js +122 -0
  150. package/dist/cjs/shared-list-render-c0adb192.js +364 -0
  151. package/dist/cjs/sk-151d9acf.js +144 -0
  152. package/dist/cjs/sl-9b45a152.js +62 -0
  153. package/dist/cjs/solution-configuration.cjs.entry.js +888 -888
  154. package/dist/cjs/solution-contents_3.cjs.entry.js +21506 -21506
  155. package/dist/cjs/solution-store-0004e4e6.js +4100 -0
  156. package/dist/cjs/solutions-components.cjs.js +5 -5
  157. package/dist/cjs/sortableComponent-58679f07.js +3112 -0
  158. package/dist/cjs/sr-186bf15c.js +97 -0
  159. package/dist/cjs/store-manager.cjs.entry.js +52 -52
  160. package/dist/cjs/sv-a93fee0c.js +67 -0
  161. package/dist/cjs/t9n-1d032c30.js +100 -0
  162. package/dist/cjs/th-41680352.js +61 -0
  163. package/dist/cjs/throttle-aeeb1b4d.js +75 -0
  164. package/dist/cjs/time-5e450ec8.js +208 -0
  165. package/dist/cjs/tr-0bd886d6.js +62 -0
  166. package/dist/cjs/uk-4fade133.js +100 -0
  167. package/dist/cjs/utils-acfeed9d.js +64 -0
  168. package/dist/cjs/utils-ae9bdd59.js +55 -0
  169. package/dist/cjs/vi-1c9fe343.js +66 -0
  170. package/dist/cjs/zh-cn-28fa1fe1.js +90 -0
  171. package/dist/cjs/zh-hk-5abf8eb5.js +67 -0
  172. package/dist/cjs/zh-tw-07500357.js +88 -0
  173. package/dist/collection/collection-manifest.json +37 -35
  174. package/dist/collection/components/basemap-gallery/basemap-gallery.css +19 -0
  175. package/dist/collection/components/basemap-gallery/basemap-gallery.js +166 -0
  176. package/dist/collection/components/basemap-gallery/test/basemap-gallery.e2e.js +29 -0
  177. package/dist/collection/components/basemap-gallery/test/basemap-gallery.spec.js +37 -0
  178. package/dist/collection/components/buffer-tools/buffer-tools.js +481 -476
  179. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +29 -0
  180. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +160 -0
  181. package/dist/collection/components/card-manager/card-manager.js +199 -197
  182. package/dist/collection/components/card-manager/test/card-manager.e2e.js +29 -0
  183. package/dist/collection/components/card-manager/test/card-manager.spec.js +37 -0
  184. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +448 -406
  185. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +29 -0
  186. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +37 -0
  187. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +89 -89
  188. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +29 -0
  189. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +37 -0
  190. package/dist/collection/components/deduct-calculator/deduct-calculator.js +143 -143
  191. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +29 -0
  192. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +37 -0
  193. package/dist/collection/components/edit-card/edit-card.js +302 -300
  194. package/dist/collection/components/edit-card/test/edit-card.e2e.js +14 -0
  195. package/dist/collection/components/edit-card/test/edit-card.spec.js +22 -0
  196. package/dist/collection/components/info-card/info-card.js +361 -357
  197. package/dist/collection/components/info-card/test/info-card.e2e.js +29 -0
  198. package/dist/collection/components/info-card/test/info-card.spec.js +37 -0
  199. package/dist/collection/components/json-editor/json-editor.js +618 -614
  200. package/dist/collection/components/json-editor/test/json-editor.e2e.js +36 -0
  201. package/dist/collection/components/json-editor/test/json-editor.spec.js +65 -0
  202. package/dist/collection/components/layer-table/layer-table.js +620 -548
  203. package/dist/collection/components/layer-table/test/layer-table.e2e.js +29 -0
  204. package/dist/collection/components/layer-table/test/layer-table.spec.js +37 -0
  205. package/dist/collection/components/layout-manager/layout-manager.js +136 -135
  206. package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +29 -0
  207. package/dist/collection/components/layout-manager/test/layout-manager.spec.js +37 -0
  208. package/dist/collection/components/list-item/list-item.js +89 -89
  209. package/dist/collection/components/list-item/test/list-item.e2e.js +29 -0
  210. package/dist/collection/components/list-item/test/list-item.spec.js +37 -0
  211. package/dist/collection/components/map-card/map-card.css +0 -7
  212. package/dist/collection/components/map-card/map-card.js +211 -203
  213. package/dist/collection/components/map-card/test/map-card.e2e.js +29 -0
  214. package/dist/collection/components/map-card/test/map-card.spec.js +37 -0
  215. package/dist/collection/components/map-draw-tools/map-draw-tools.js +692 -683
  216. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +29 -0
  217. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +37 -0
  218. package/dist/collection/components/map-layer-picker/map-layer-picker.js +424 -423
  219. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +29 -0
  220. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +114 -0
  221. package/dist/collection/components/map-picker/map-picker.js +226 -224
  222. package/dist/collection/components/map-picker/test/map-picker.e2e.js +29 -0
  223. package/dist/collection/components/map-picker/test/map-picker.spec.js +37 -0
  224. package/dist/collection/components/map-search/map-search.css +24 -0
  225. package/dist/collection/components/map-search/map-search.js +321 -0
  226. package/dist/collection/components/map-search/test/map-search.e2e.js +29 -0
  227. package/dist/collection/components/map-search/test/map-search.spec.js +37 -0
  228. package/dist/collection/components/map-select-tools/map-select-tools.js +1242 -1229
  229. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +29 -0
  230. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +366 -0
  231. package/dist/collection/components/map-tools/map-tools.js +337 -210
  232. package/dist/collection/components/map-tools/test/map-tools.e2e.js +29 -0
  233. package/dist/collection/components/map-tools/test/map-tools.spec.js +37 -0
  234. package/dist/collection/components/pci-calculator/pci-calculator.js +143 -143
  235. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +29 -0
  236. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +37 -0
  237. package/dist/collection/components/pdf-download/pdf-download.js +338 -333
  238. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +76 -0
  239. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +107 -0
  240. package/dist/collection/components/public-notification/public-notification.js +1295 -1287
  241. package/dist/collection/components/public-notification/test/public-notification.spec.js +161 -0
  242. package/dist/collection/components/refine-selection/refine-selection.js +608 -601
  243. package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +14 -0
  244. package/dist/collection/components/refine-selection/test/refine-selection.spec.js +22 -0
  245. package/dist/collection/components/solution-configuration/solution-configuration.js +739 -735
  246. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +36 -0
  247. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +119 -0
  248. package/dist/collection/components/solution-contents/solution-contents.js +163 -162
  249. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +94 -0
  250. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +143 -0
  251. package/dist/collection/components/solution-item/solution-item.js +203 -202
  252. package/dist/collection/components/solution-item/test/solution-item.e2e.js +36 -0
  253. package/dist/collection/components/solution-item/test/solution-item.spec.js +77 -0
  254. package/dist/collection/components/solution-item-details/solution-item-details.js +248 -248
  255. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +36 -0
  256. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +142 -0
  257. package/dist/collection/components/solution-item-icon/solution-item-icon.js +398 -398
  258. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +29 -0
  259. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +39 -0
  260. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +200 -199
  261. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +36 -0
  262. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +54 -0
  263. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +156 -156
  264. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +36 -0
  265. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +65 -0
  266. package/dist/collection/components/solution-resource-item/solution-resource-item.js +348 -347
  267. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +36 -0
  268. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +55 -0
  269. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +515 -510
  270. package/dist/collection/components/solution-spatial-ref/spatialreferences.js +21046 -21046
  271. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +36 -0
  272. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +175 -0
  273. package/dist/collection/components/solution-template-data/solution-template-data.js +230 -230
  274. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +36 -0
  275. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +60 -0
  276. package/dist/collection/components/solution-variables/solution-variables.js +168 -168
  277. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +36 -0
  278. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +131 -0
  279. package/dist/collection/components/store-manager/store-manager.js +128 -127
  280. package/dist/collection/demos/crowdsource-manager.html +3 -3
  281. package/dist/collection/index.js +1 -1
  282. package/dist/collection/utils/common.js +296 -296
  283. package/dist/collection/utils/csvDownload.js +41 -41
  284. package/dist/collection/utils/csvUtils.js +37 -37
  285. package/dist/collection/utils/downloadUtils.js +530 -530
  286. package/dist/collection/utils/interfaces.js +83 -83
  287. package/dist/collection/utils/interfaces.ts +2 -0
  288. package/dist/collection/utils/languageUtil.js +90 -90
  289. package/dist/collection/utils/loadModules.js +25 -25
  290. package/dist/collection/utils/locale.js +61 -61
  291. package/dist/collection/utils/mapViewUtils.js +240 -240
  292. package/dist/collection/utils/pciUtils.js +842 -842
  293. package/dist/collection/utils/pdfUtils.js +87 -87
  294. package/dist/collection/utils/publicNotificationStore.js +47 -47
  295. package/dist/collection/utils/queryUtils.js +200 -200
  296. package/dist/collection/utils/solution-store.js +584 -584
  297. package/dist/collection/utils/templates.e2e.js +30 -0
  298. package/dist/collection/utils/templates.js +346 -346
  299. package/dist/collection/utils/test/csvUtils.spec.js +51 -0
  300. package/dist/collection/utils/test/downloadUtils.spec.js +357 -0
  301. package/dist/collection/utils/test/mocks/jsApi.js +79 -79
  302. package/dist/collection/utils/test/pciUtils.spec.js +302 -0
  303. package/dist/collection/utils/test/solution-store.spec.js +444 -0
  304. package/dist/collection/utils/test/testUtils.js +123 -123
  305. package/dist/collection/utils/types.js +1 -1
  306. package/dist/components/ExpandToggle.js +1 -1
  307. package/dist/components/action-bar.js +262 -262
  308. package/dist/components/action-group.js +144 -144
  309. package/dist/components/action-menu.js +310 -310
  310. package/dist/components/action.js +185 -185
  311. package/dist/components/alert.js +286 -286
  312. package/dist/components/avatar.js +99 -99
  313. package/dist/components/basemap-gallery.d.ts +11 -0
  314. package/dist/components/basemap-gallery.js +11 -0
  315. package/dist/components/basemap-gallery2.js +118 -0
  316. package/dist/components/buffer-tools2.js +263 -263
  317. package/dist/components/button.js +225 -225
  318. package/dist/components/calcite-accordion-item.js +168 -167
  319. package/dist/components/calcite-accordion.js +95 -95
  320. package/dist/components/calcite-action-pad.js +180 -180
  321. package/dist/components/calcite-block-section.js +150 -150
  322. package/dist/components/calcite-block.js +186 -186
  323. package/dist/components/calcite-card.js +132 -132
  324. package/dist/components/calcite-chip-group.js +181 -181
  325. package/dist/components/calcite-color-picker.js +979 -979
  326. package/dist/components/calcite-combobox-item-group.js +52 -52
  327. package/dist/components/calcite-fab.js +104 -104
  328. package/dist/components/calcite-filter.js +1 -1
  329. package/dist/components/calcite-flow-item.js +204 -204
  330. package/dist/components/calcite-flow.js +136 -136
  331. package/dist/components/calcite-inline-editable.js +259 -259
  332. package/dist/components/calcite-input-date-picker.js +703 -703
  333. package/dist/components/calcite-input-time-picker.js +595 -595
  334. package/dist/components/calcite-input-time-zone.js +189 -189
  335. package/dist/components/calcite-label.js +1 -1
  336. package/dist/components/calcite-list-item-group.js +64 -64
  337. package/dist/components/calcite-menu-item.js +297 -296
  338. package/dist/components/calcite-modal.js +328 -328
  339. package/dist/components/calcite-navigation-logo.js +76 -76
  340. package/dist/components/calcite-navigation-user.js +78 -78
  341. package/dist/components/calcite-navigation.js +166 -166
  342. package/dist/components/calcite-option-group.js +42 -42
  343. package/dist/components/calcite-pagination.js +217 -217
  344. package/dist/components/calcite-pick-list-group.js +59 -59
  345. package/dist/components/calcite-pick-list.js +150 -150
  346. package/dist/components/calcite-radio-button-group.js +141 -141
  347. package/dist/components/calcite-radio-button.js +316 -316
  348. package/dist/components/calcite-rating.js +279 -279
  349. package/dist/components/calcite-shell-center-row.js +57 -57
  350. package/dist/components/calcite-sortable-list.js +153 -153
  351. package/dist/components/calcite-split-button.js +142 -142
  352. package/dist/components/calcite-stack.js +1 -1
  353. package/dist/components/calcite-stepper-item.js +225 -225
  354. package/dist/components/calcite-stepper.js +212 -212
  355. package/dist/components/calcite-text-area.js +266 -266
  356. package/dist/components/calcite-tile-select-group.js +44 -44
  357. package/dist/components/calcite-tile-select.js +223 -223
  358. package/dist/components/calcite-tip-group.js +27 -27
  359. package/dist/components/calcite-tip-manager.js +222 -222
  360. package/dist/components/calcite-tip.js +126 -126
  361. package/dist/components/card-manager2.js +155 -155
  362. package/dist/components/checkbox.js +146 -146
  363. package/dist/components/chip.js +245 -245
  364. package/dist/components/color-picker-hex-input.js +287 -287
  365. package/dist/components/color-picker-swatch.js +79 -79
  366. package/dist/components/combobox-item.js +135 -135
  367. package/dist/components/combobox.js +921 -921
  368. package/dist/components/crowdsource-manager.js +528 -512
  369. package/dist/components/crowdsource-reporter.js +75 -75
  370. package/dist/components/date-picker-day.js +110 -109
  371. package/dist/components/date-picker-month-header.js +197 -197
  372. package/dist/components/date-picker-month.js +372 -372
  373. package/dist/components/date-picker.js +492 -492
  374. package/dist/components/date.js +1 -1
  375. package/dist/components/deduct-calculator2.js +981 -981
  376. package/dist/components/dom.js +2 -23
  377. package/dist/components/downloadUtils.js +655 -655
  378. package/dist/components/dropdown-group.js +72 -72
  379. package/dist/components/dropdown-item.js +195 -195
  380. package/dist/components/dropdown.js +420 -420
  381. package/dist/components/edit-card2.js +191 -191
  382. package/dist/components/esri-loader.js +301 -0
  383. package/dist/components/filter.js +751 -202
  384. package/dist/components/filter2.js +191 -740
  385. package/dist/components/floating-ui.js +2 -2
  386. package/dist/components/focusTrapComponent.js +1 -1
  387. package/dist/components/graph.js +86 -86
  388. package/dist/components/handle.js +165 -165
  389. package/dist/components/icon.js +99 -99
  390. package/dist/components/index.d.ts +5 -35
  391. package/dist/components/index.js +26 -154
  392. package/dist/components/info-card2.js +251 -251
  393. package/dist/components/input-message.js +66 -66
  394. package/dist/components/input-number.js +600 -599
  395. package/dist/components/input-text.js +368 -367
  396. package/dist/components/input.js +687 -686
  397. package/dist/components/interfaces.js +78 -78
  398. package/dist/components/json-editor2.js +425 -425
  399. package/dist/components/label.js +117 -65
  400. package/dist/components/label2.js +58 -110
  401. package/dist/components/layer-table2.js +598 -547
  402. package/dist/components/layout-manager2.js +118 -118
  403. package/dist/components/link.js +123 -122
  404. package/dist/components/list-item.js +75 -75
  405. package/dist/components/list-item2.js +431 -431
  406. package/dist/components/list.js +510 -510
  407. package/dist/components/loadModules.js +19 -19
  408. package/dist/components/loader.js +86 -86
  409. package/dist/components/locale.js +106 -399
  410. package/dist/components/locale2.js +2 -2
  411. package/dist/components/map-card2.js +236 -218
  412. package/dist/components/map-draw-tools2.js +383 -383
  413. package/dist/components/map-layer-picker2.js +291 -291
  414. package/dist/components/map-picker2.js +235 -235
  415. package/dist/components/map-search.d.ts +11 -0
  416. package/dist/components/map-search.js +11 -0
  417. package/dist/components/map-search2.js +201 -0
  418. package/dist/components/map-select-tools2.js +916 -916
  419. package/dist/components/map-tools2.js +287 -177
  420. package/dist/components/mapViewUtils.js +235 -235
  421. package/dist/components/menu.js +178 -178
  422. package/dist/components/notice.js +130 -130
  423. package/dist/components/option.js +91 -91
  424. package/dist/components/panel.js +307 -307
  425. package/dist/components/pci-calculator.js +169 -169
  426. package/dist/components/pdf-download2.js +173 -173
  427. package/dist/components/pick-list-item.js +219 -219
  428. package/dist/components/popover.js +349 -349
  429. package/dist/components/progress.js +46 -45
  430. package/dist/components/public-notification.js +1101 -1101
  431. package/dist/components/publicNotificationStore.js +39 -39
  432. package/dist/components/queryUtils.js +152 -152
  433. package/dist/components/refine-selection2.js +546 -546
  434. package/dist/components/resources.js +17 -9
  435. package/dist/components/resources2.js +9 -13
  436. package/dist/components/resources3.js +9 -5
  437. package/dist/components/scrim.js +115 -115
  438. package/dist/components/segmented-control-item.js +62 -62
  439. package/dist/components/segmented-control.js +213 -213
  440. package/dist/components/select.js +226 -226
  441. package/dist/components/shared-list-render.js +3 -3
  442. package/dist/components/shell-panel.js +398 -397
  443. package/dist/components/shell.js +119 -119
  444. package/dist/components/slider.js +898 -898
  445. package/dist/components/solution-configuration.js +1095 -1095
  446. package/dist/components/solution-contents2.js +111 -111
  447. package/dist/components/solution-item-details2.js +217 -217
  448. package/dist/components/solution-item-icon2.js +330 -330
  449. package/dist/components/solution-item-sharing2.js +151 -151
  450. package/dist/components/solution-item2.js +269 -269
  451. package/dist/components/solution-organization-variables2.js +115 -115
  452. package/dist/components/solution-resource-item2.js +331 -331
  453. package/dist/components/solution-spatial-ref2.js +21420 -21420
  454. package/dist/components/solution-store.js +575 -575
  455. package/dist/components/solution-template-data2.js +202 -202
  456. package/dist/components/solution-variables2.js +132 -132
  457. package/dist/components/sortableComponent.js +1 -1
  458. package/dist/components/stack.js +78 -78
  459. package/dist/components/store-manager.js +70 -70
  460. package/dist/components/switch.js +118 -118
  461. package/dist/components/tab-nav.js +254 -254
  462. package/dist/components/tab-title.js +300 -300
  463. package/dist/components/tab.js +111 -111
  464. package/dist/components/tabs.js +130 -130
  465. package/dist/components/tile.js +89 -89
  466. package/dist/components/time-picker.js +654 -654
  467. package/dist/components/tooltip.js +207 -207
  468. package/dist/components/tree-item.js +288 -287
  469. package/dist/components/tree.js +281 -281
  470. package/dist/components/utils.js +1 -1
  471. package/dist/components/utils2.js +2 -2
  472. package/dist/components/utils3.js +1 -1
  473. package/dist/components/value-list-item.js +169 -169
  474. package/dist/components/value-list.js +275 -275
  475. package/dist/esm/ExpandToggle-3d10bd1e.js +109 -0
  476. package/dist/esm/FloatingArrow-29db6da6.js +46 -0
  477. package/dist/esm/Heading-cb79e5b2.js +22 -0
  478. package/dist/esm/app-globals-5cbac6b0.js +67 -0
  479. package/dist/esm/ar-4b751ba8.js +95 -0
  480. package/dist/esm/basemap-gallery_4.entry.js +615 -0
  481. package/dist/esm/bg-5d8bf5ea.js +76 -0
  482. package/dist/esm/bs-ff510e71.js +45 -0
  483. package/dist/esm/buffer-tools_4.entry.js +1437 -1437
  484. package/dist/esm/ca-b9a5e51a.js +65 -0
  485. package/dist/esm/calcite-accordion-item.entry.js +140 -140
  486. package/dist/esm/calcite-accordion.entry.js +75 -75
  487. package/dist/esm/calcite-action-bar.entry.js +216 -216
  488. package/dist/esm/calcite-action-group_2.entry.js +365 -365
  489. package/dist/esm/calcite-action-pad.entry.js +135 -135
  490. package/dist/esm/calcite-action_2.entry.js +445 -445
  491. package/dist/esm/calcite-alert.entry.js +247 -247
  492. package/dist/esm/calcite-avatar.entry.js +73 -73
  493. package/dist/esm/calcite-block-section.entry.js +122 -122
  494. package/dist/esm/calcite-block.entry.js +131 -131
  495. package/dist/esm/calcite-button.entry.js +182 -182
  496. package/dist/esm/calcite-card.entry.js +99 -99
  497. package/dist/esm/calcite-checkbox.entry.js +125 -125
  498. package/dist/esm/calcite-chip-group.entry.js +164 -164
  499. package/dist/esm/calcite-chip.entry.js +213 -213
  500. package/dist/esm/calcite-color-picker-hex-input_2.entry.js +303 -303
  501. package/dist/esm/calcite-color-picker.entry.js +886 -886
  502. package/dist/esm/calcite-combobox-item-group.entry.js +35 -35
  503. package/dist/esm/calcite-combobox_6.entry.js +1786 -1786
  504. package/dist/esm/calcite-date-picker-day_3.entry.js +589 -589
  505. package/dist/esm/calcite-date-picker.entry.js +434 -434
  506. package/dist/esm/calcite-fab.entry.js +66 -66
  507. package/dist/esm/calcite-filter_5.entry.js +1131 -1131
  508. package/dist/esm/calcite-flow-item.entry.js +146 -146
  509. package/dist/esm/calcite-flow.entry.js +117 -117
  510. package/dist/esm/calcite-graph.entry.js +66 -66
  511. package/dist/esm/calcite-icon.entry.js +80 -80
  512. package/dist/esm/calcite-inline-editable.entry.js +225 -225
  513. package/dist/esm/calcite-input-date-picker.entry.js +632 -632
  514. package/dist/esm/calcite-input-number_2.entry.js +846 -846
  515. package/dist/esm/calcite-input-time-picker-13448515.js +1715 -0
  516. package/dist/esm/calcite-input-time-picker.entry.js +15 -15
  517. package/dist/esm/calcite-input-time-zone.entry.js +150 -150
  518. package/dist/esm/calcite-input_2.entry.js +645 -645
  519. package/dist/esm/calcite-label.entry.js +40 -40
  520. package/dist/esm/calcite-link.entry.js +96 -96
  521. package/dist/esm/calcite-list-item-group.entry.js +46 -46
  522. package/dist/esm/calcite-loader.entry.js +65 -65
  523. package/dist/esm/calcite-menu-item.entry.js +246 -246
  524. package/dist/esm/calcite-menu.entry.js +161 -161
  525. package/dist/esm/calcite-modal.entry.js +282 -282
  526. package/dist/esm/calcite-navigation-logo.entry.js +52 -52
  527. package/dist/esm/calcite-navigation-user.entry.js +45 -45
  528. package/dist/esm/calcite-navigation.entry.js +126 -126
  529. package/dist/esm/calcite-notice.entry.js +105 -105
  530. package/dist/esm/calcite-option-group.entry.js +24 -24
  531. package/dist/esm/calcite-option_2.entry.js +271 -271
  532. package/dist/esm/calcite-pagination.entry.js +191 -191
  533. package/dist/esm/calcite-panel_2.entry.js +346 -346
  534. package/dist/esm/calcite-pick-list-group.entry.js +46 -46
  535. package/dist/esm/calcite-pick-list-item.entry.js +181 -181
  536. package/dist/esm/calcite-pick-list.entry.js +130 -130
  537. package/dist/esm/calcite-radio-button-group.entry.js +118 -118
  538. package/dist/esm/calcite-radio-button.entry.js +292 -292
  539. package/dist/esm/calcite-rating.entry.js +245 -245
  540. package/dist/esm/calcite-scrim.entry.js +93 -93
  541. package/dist/esm/calcite-segmented-control_2.entry.js +225 -225
  542. package/dist/esm/calcite-shell-center-row.entry.js +42 -42
  543. package/dist/esm/calcite-shell-panel_14.entry.js +2604 -2604
  544. package/dist/esm/calcite-sortable-list.entry.js +134 -134
  545. package/dist/esm/calcite-split-button.entry.js +92 -92
  546. package/dist/esm/calcite-stepper-item.entry.js +197 -197
  547. package/dist/esm/calcite-stepper.entry.js +187 -187
  548. package/dist/esm/calcite-switch.entry.js +100 -100
  549. package/dist/esm/calcite-text-area.entry.js +235 -235
  550. package/dist/esm/calcite-tile-select-group.entry.js +27 -27
  551. package/dist/esm/calcite-tile-select.entry.js +180 -180
  552. package/dist/esm/calcite-tile.entry.js +58 -58
  553. package/dist/esm/calcite-time-picker.entry.js +619 -619
  554. package/dist/esm/calcite-tip-group.entry.js +10 -10
  555. package/dist/esm/calcite-tip-manager.entry.js +185 -185
  556. package/dist/esm/calcite-tip.entry.js +94 -94
  557. package/dist/esm/calcite-tooltip.entry.js +185 -185
  558. package/dist/esm/calcite-tree_3.entry.js +821 -821
  559. package/dist/esm/card-manager_4.entry.js +707 -653
  560. package/dist/esm/conditionalSlot-27a0fce0.js +60 -0
  561. package/dist/esm/crowdsource-manager.entry.js +258 -256
  562. package/dist/esm/crowdsource-reporter.entry.js +60 -60
  563. package/dist/esm/cs-f21a0628.js +141 -0
  564. package/dist/esm/da-dc48fc4c.js +60 -0
  565. package/dist/esm/date-0ed48e97.js +235 -0
  566. package/dist/esm/de-59290071.js +85 -0
  567. package/dist/esm/de-at-cd6e6ab7.js +84 -0
  568. package/dist/esm/de-ch-27c44e34.js +84 -0
  569. package/dist/esm/deduct-calculator.entry.js +90 -90
  570. package/dist/esm/dom-843e3afd.js +1017 -0
  571. package/dist/esm/downloadUtils-63661805.js +2761 -0
  572. package/dist/esm/edit-card_2.entry.js +345 -345
  573. package/dist/esm/el-f09fdec6.js +60 -0
  574. package/dist/esm/en-au-90087aa5.js +60 -0
  575. package/dist/esm/en-ca-10751695.js +59 -0
  576. package/dist/esm/en-gb-0f8547bd.js +63 -0
  577. package/dist/esm/es-b0997cf1.js +60 -0
  578. package/dist/esm/es-mx-226f5028.js +59 -0
  579. package/dist/esm/et-dc96c453.js +86 -0
  580. package/dist/esm/fi-0941704d.js +109 -0
  581. package/dist/esm/filter-1cac3edf.js +763 -0
  582. package/dist/esm/floating-ui-d28d0fd6.js +1880 -0
  583. package/dist/esm/focusTrapComponent-ff3a9f28.js +1004 -0
  584. package/dist/esm/form-11c6a015.js +280 -0
  585. package/dist/esm/fr-8da3458d.js +62 -0
  586. package/dist/esm/fr-ch-739ceddf.js +60 -0
  587. package/dist/esm/he-8b662dfa.js +99 -0
  588. package/dist/esm/hi-10996f89.js +59 -0
  589. package/dist/esm/hr-42c2024d.js +74 -0
  590. package/dist/esm/hu-4768b3ff.js +82 -0
  591. package/dist/esm/id-24a08170.js +60 -0
  592. package/dist/esm/index-b5d9d795.js +1904 -0
  593. package/dist/esm/index-b91c174c.js +199 -0
  594. package/dist/esm/index.es-3a3aa8e3.js +10722 -0
  595. package/dist/esm/interfaces-5a2fe8b4.js +85 -0
  596. package/dist/esm/it-ad09649f.js +60 -0
  597. package/dist/esm/it-ch-b05fc10d.js +60 -0
  598. package/dist/esm/ja-ab839b73.js +66 -0
  599. package/dist/esm/ko-c778539e.js +66 -0
  600. package/dist/esm/label-6a1caf64.js +130 -0
  601. package/dist/esm/list-item.entry.js +60 -60
  602. package/dist/esm/loadModules-2ecd1e44.js +28 -0
  603. package/dist/esm/loadable-6bca96ad.js +89 -0
  604. package/dist/esm/loader.js +6 -15
  605. package/dist/esm/locale-aa3de591.js +412 -0
  606. package/dist/esm/locale-d8561d54.js +592 -0
  607. package/dist/esm/lt-447d9aa9.js +91 -0
  608. package/dist/esm/lv-4d715e11.js +60 -0
  609. package/dist/esm/map-select-tools_3.entry.js +1285 -1285
  610. package/dist/esm/mapViewUtils-f0c04325.js +395 -0
  611. package/dist/esm/mk-b3d7401a.js +60 -0
  612. package/dist/esm/nb-2b4a8366.js +61 -0
  613. package/dist/esm/nl-c0db1da2.js +61 -0
  614. package/dist/esm/openCloseComponent-2b5c6bed.js +82 -0
  615. package/dist/esm/pci-calculator.entry.js +102 -102
  616. package/dist/esm/pciUtils-59c29b42.js +844 -0
  617. package/dist/esm/pl-0d322bb4.js +108 -0
  618. package/dist/esm/pt-5997598c.js +61 -0
  619. package/dist/esm/pt-br-6b77e7db.js +59 -0
  620. package/dist/esm/public-notification.entry.js +844 -844
  621. package/dist/esm/publicNotificationStore-ade82148.js +49 -0
  622. package/dist/esm/resources-40d8e06f.js +20 -0
  623. package/dist/esm/ro-ac3724e0.js +60 -0
  624. package/dist/esm/ru-4e75151f.js +120 -0
  625. package/dist/esm/shared-list-render-abd19c8d.js +342 -0
  626. package/dist/esm/sk-bbfa22a3.js +142 -0
  627. package/dist/esm/sl-867cecfc.js +60 -0
  628. package/dist/esm/solution-configuration.entry.js +888 -888
  629. package/dist/esm/solution-contents_3.entry.js +21506 -21506
  630. package/dist/esm/solution-store-46bc46a5.js +4092 -0
  631. package/dist/esm/solutions-components.js +6 -6
  632. package/dist/esm/sortableComponent-db502e97.js +3109 -0
  633. package/dist/esm/sr-198b5c00.js +95 -0
  634. package/dist/esm/store-manager.entry.js +52 -52
  635. package/dist/esm/sv-02d64370.js +65 -0
  636. package/dist/esm/t9n-76168237.js +95 -0
  637. package/dist/esm/th-1616e303.js +59 -0
  638. package/dist/esm/throttle-9ab70933.js +73 -0
  639. package/dist/esm/time-6721a4c2.js +195 -0
  640. package/dist/esm/tr-f4619f64.js +60 -0
  641. package/dist/esm/uk-df7df34a.js +98 -0
  642. package/dist/esm/utils-ccfd94a7.js +45 -0
  643. package/dist/esm/utils-f54411df.js +61 -0
  644. package/dist/esm/vi-176ca9f7.js +64 -0
  645. package/dist/esm/zh-cn-e13d83d1.js +88 -0
  646. package/dist/esm/zh-hk-d97365d8.js +65 -0
  647. package/dist/esm/zh-tw-a2b6f0b7.js +86 -0
  648. package/dist/loader/index.d.ts +2 -2
  649. package/dist/solutions-components/demos/crowdsource-manager.html +3 -3
  650. package/dist/solutions-components/p-022a9b7a.js +6 -0
  651. package/dist/solutions-components/p-03fccde6.entry.js +11 -0
  652. package/dist/solutions-components/p-052ff2c7.js +6 -0
  653. package/dist/solutions-components/p-05db4340.js +6 -0
  654. package/dist/solutions-components/p-07bc4f07.entry.js +11 -0
  655. package/dist/solutions-components/p-0cc32f06.js +6 -0
  656. package/dist/solutions-components/p-0e7914e6.entry.js +11 -0
  657. package/dist/solutions-components/p-0ece6df1.entry.js +12 -0
  658. package/dist/solutions-components/p-0f8440bb.entry.js +6 -0
  659. package/dist/solutions-components/p-0fbc27fd.entry.js +11 -0
  660. package/dist/solutions-components/p-10248e04.js +11 -0
  661. package/dist/solutions-components/p-108fbf59.entry.js +6 -0
  662. package/dist/solutions-components/p-12a4fa84.js +6 -0
  663. package/dist/solutions-components/p-13290851.js +259 -0
  664. package/dist/solutions-components/p-15ef7894.js +6 -0
  665. package/dist/solutions-components/p-164be8ef.entry.js +6 -0
  666. package/dist/solutions-components/p-19fe7725.js +6 -0
  667. package/dist/solutions-components/p-1add4e39.entry.js +11 -0
  668. package/dist/solutions-components/p-1ea1dcac.js +61 -0
  669. package/dist/solutions-components/p-1ede2e18.js +11 -0
  670. package/dist/solutions-components/p-2005280f.js +11 -0
  671. package/dist/solutions-components/p-216801d5.js +6 -0
  672. package/dist/solutions-components/p-21f00df6.js +6 -0
  673. package/dist/solutions-components/p-22d580b0.entry.js +11 -0
  674. package/dist/solutions-components/p-2656168f.entry.js +11 -0
  675. package/dist/solutions-components/p-27a1ac1f.entry.js +17 -0
  676. package/dist/solutions-components/p-28d2670f.entry.js +6 -0
  677. package/dist/solutions-components/p-29d41c7e.js +11 -0
  678. package/dist/solutions-components/p-2ae17fa2.js +6 -0
  679. package/dist/solutions-components/p-2b252afd.entry.js +6 -0
  680. package/dist/solutions-components/p-2b96e551.entry.js +11 -0
  681. package/dist/solutions-components/p-2c0dc7b1.js +6 -0
  682. package/dist/solutions-components/p-2d70d3fd.js +12 -0
  683. package/dist/solutions-components/p-31316d61.entry.js +11 -0
  684. package/dist/solutions-components/p-31ff3452.entry.js +11 -0
  685. package/dist/solutions-components/p-326fa270.js +6 -0
  686. package/dist/solutions-components/p-32ef065d.entry.js +11 -0
  687. package/dist/solutions-components/p-32f9c709.js +6 -0
  688. package/dist/solutions-components/p-3445a8c6.js +21 -0
  689. package/dist/solutions-components/p-35123c90.js +6 -0
  690. package/dist/solutions-components/p-361f1fe1.js +11 -0
  691. package/dist/solutions-components/p-39ff5ee5.js +11 -0
  692. package/dist/solutions-components/p-3aba40e8.js +18 -0
  693. package/dist/solutions-components/p-3bd99fc9.js +11 -0
  694. package/dist/solutions-components/p-3cbe5ef3.js +6 -0
  695. package/dist/solutions-components/p-3cce003d.js +27 -0
  696. package/dist/solutions-components/p-3e139360.js +6 -0
  697. package/dist/solutions-components/p-3f0193e9.js +6 -0
  698. package/dist/solutions-components/p-418d0b60.entry.js +6 -0
  699. package/dist/solutions-components/p-421d5e7c.js +6 -0
  700. package/dist/solutions-components/p-42c7a5fa.entry.js +11 -0
  701. package/dist/solutions-components/p-46d5970b.entry.js +37 -0
  702. package/dist/solutions-components/p-4b95d05e.entry.js +6 -0
  703. package/dist/solutions-components/p-4bc7b875.entry.js +11 -0
  704. package/dist/solutions-components/p-4c43820f.entry.js +6 -0
  705. package/dist/solutions-components/p-4d17943f.js +6 -0
  706. package/dist/solutions-components/p-4daae757.js +6 -0
  707. package/dist/solutions-components/p-4e4b55b9.entry.js +37 -0
  708. package/dist/solutions-components/p-4f0c3fc1.js +6 -0
  709. package/dist/solutions-components/p-525f1188.js +11 -0
  710. package/dist/solutions-components/p-5383607a.js +22 -0
  711. package/dist/solutions-components/p-541697d0.js +11 -0
  712. package/dist/solutions-components/p-55aefaa8.entry.js +6 -0
  713. package/dist/solutions-components/p-56300653.js +16 -0
  714. package/dist/solutions-components/p-57c08531.entry.js +6 -0
  715. package/dist/solutions-components/p-5adf37ea.entry.js +12 -0
  716. package/dist/solutions-components/p-5b5a6ac8.entry.js +6 -0
  717. package/dist/solutions-components/p-5b9b1cbb.entry.js +11 -0
  718. package/dist/solutions-components/p-5c097e25.entry.js +11 -0
  719. package/dist/solutions-components/p-5e59219b.entry.js +6 -0
  720. package/dist/solutions-components/p-5f5c371e.js +6 -0
  721. package/dist/solutions-components/p-606ca126.js +6 -0
  722. package/dist/solutions-components/p-634e1240.js +6 -0
  723. package/dist/solutions-components/p-639cca97.js +6 -0
  724. package/dist/solutions-components/p-6431fd69.js +11 -0
  725. package/dist/solutions-components/p-647a4130.js +16 -0
  726. package/dist/solutions-components/p-6665fa1f.js +6 -0
  727. package/dist/solutions-components/p-67ce3c0c.entry.js +11 -0
  728. package/dist/solutions-components/p-680d193d.entry.js +11 -0
  729. package/dist/solutions-components/p-6a524392.entry.js +11 -0
  730. package/dist/solutions-components/p-6a820c4d.js +6 -0
  731. package/dist/solutions-components/p-6b2f2b85.js +17 -0
  732. package/dist/solutions-components/p-6de98c51.js +21 -0
  733. package/dist/solutions-components/p-754e2df2.js +6 -0
  734. package/dist/solutions-components/p-75f26870.js +474 -0
  735. package/dist/solutions-components/p-7601988d.entry.js +11 -0
  736. package/dist/solutions-components/p-761a033a.entry.js +11 -0
  737. package/dist/solutions-components/p-7920b5a2.entry.js +11 -0
  738. package/dist/solutions-components/p-7aa949a3.entry.js +11 -0
  739. package/dist/solutions-components/p-7b90c18e.entry.js +6 -0
  740. package/dist/solutions-components/p-7b9adfff.js +6 -0
  741. package/dist/solutions-components/p-7c33e500.entry.js +6 -0
  742. package/dist/solutions-components/p-804e4751.entry.js +17 -0
  743. package/dist/solutions-components/p-82199b7b.entry.js +6 -0
  744. package/dist/solutions-components/p-825bac0e.js +6 -0
  745. package/dist/solutions-components/p-844ee452.entry.js +11 -0
  746. package/dist/solutions-components/p-8a758303.js +17 -0
  747. package/dist/solutions-components/p-90bbf223.entry.js +6 -0
  748. package/dist/solutions-components/p-916f90ec.entry.js +6 -0
  749. package/dist/solutions-components/p-91caf655.entry.js +11 -0
  750. package/dist/solutions-components/p-93074bd4.entry.js +11 -0
  751. package/dist/solutions-components/p-9310b882.js +7 -0
  752. package/dist/solutions-components/p-955a956a.entry.js +23 -0
  753. package/dist/solutions-components/p-9603c3ff.entry.js +11 -0
  754. package/dist/solutions-components/p-97c47bbd.entry.js +18 -0
  755. package/dist/solutions-components/p-9bbc05ff.js +11 -0
  756. package/dist/solutions-components/p-9cb94ea0.js +6 -0
  757. package/dist/solutions-components/p-9e727488.js +6 -0
  758. package/dist/solutions-components/p-9fb16c72.entry.js +35 -0
  759. package/dist/solutions-components/p-a040efff.js +6 -0
  760. package/dist/solutions-components/p-a08bd8c1.entry.js +6 -0
  761. package/dist/solutions-components/p-a0a2c53d.js +21 -0
  762. package/dist/solutions-components/p-a0edbb27.js +6 -0
  763. package/dist/solutions-components/p-a258f5e7.js +6 -0
  764. package/dist/solutions-components/p-a2748b38.entry.js +6 -0
  765. package/dist/solutions-components/p-a6900100.entry.js +11 -0
  766. package/dist/solutions-components/p-a6c85bd7.entry.js +6 -0
  767. package/dist/solutions-components/p-a775ba2f.entry.js +11 -0
  768. package/dist/solutions-components/p-a777b18c.js +11 -0
  769. package/dist/solutions-components/p-a82f35c9.js +6 -0
  770. package/dist/solutions-components/p-a843af2a.js +6 -0
  771. package/dist/solutions-components/p-ab8f5c6b.entry.js +11 -0
  772. package/dist/solutions-components/p-abda8ca2.entry.js +11 -0
  773. package/dist/solutions-components/p-ad4d6d02.entry.js +22 -0
  774. package/dist/solutions-components/p-ad72a379.entry.js +16 -0
  775. package/dist/solutions-components/p-aeebdb15.js +6 -0
  776. package/dist/solutions-components/p-b0c4138f.entry.js +11 -0
  777. package/dist/solutions-components/p-b1f84ae5.js +6 -0
  778. package/dist/solutions-components/p-b2e6c578.js +6 -0
  779. package/dist/solutions-components/p-b4157e6a.js +6 -0
  780. package/dist/solutions-components/p-b49bdc72.entry.js +6 -0
  781. package/dist/solutions-components/p-b5d67495.entry.js +11 -0
  782. package/dist/solutions-components/p-b6578a32.js +6 -0
  783. package/dist/solutions-components/p-b684bbc7.entry.js +6 -0
  784. package/dist/solutions-components/p-b86b4512.entry.js +11 -0
  785. package/dist/solutions-components/p-b948ecd2.entry.js +11 -0
  786. package/dist/solutions-components/p-baccfd70.entry.js +6 -0
  787. package/dist/solutions-components/p-bba3fa4e.entry.js +11 -0
  788. package/dist/solutions-components/p-bbb0d957.entry.js +6 -0
  789. package/dist/solutions-components/p-bd3a3afe.js +6 -0
  790. package/dist/solutions-components/p-bf9e18d4.js +8 -0
  791. package/dist/solutions-components/p-c07af9c2.entry.js +11 -0
  792. package/dist/solutions-components/p-c1ee0d69.js +11 -0
  793. package/dist/solutions-components/p-c3f8b670.js +6 -0
  794. package/dist/solutions-components/p-c5e294e4.js +6 -0
  795. package/dist/solutions-components/p-c6d83122.entry.js +11 -0
  796. package/dist/solutions-components/p-c70392c4.entry.js +6 -0
  797. package/dist/solutions-components/p-c9858d8f.entry.js +11 -0
  798. package/dist/solutions-components/p-cad5587c.entry.js +35 -0
  799. package/dist/solutions-components/p-cf1af08f.entry.js +6 -0
  800. package/dist/solutions-components/p-cf43278c.entry.js +11 -0
  801. package/dist/solutions-components/p-d3a22725.js +6 -0
  802. package/dist/solutions-components/p-d62784a4.js +11 -0
  803. package/dist/solutions-components/p-d6322e4b.js +6 -0
  804. package/dist/solutions-components/p-dc9dad31.entry.js +6 -0
  805. package/dist/solutions-components/p-de58bd49.js +6 -0
  806. package/dist/solutions-components/p-de59d2f5.js +6 -0
  807. package/dist/solutions-components/p-e02fcfa9.entry.js +12 -0
  808. package/dist/solutions-components/p-e07b8a72.entry.js +11 -0
  809. package/dist/solutions-components/p-e10a62f4.entry.js +11 -0
  810. package/dist/solutions-components/p-e4253e1b.entry.js +6 -0
  811. package/dist/solutions-components/p-e645edf2.entry.js +6 -0
  812. package/dist/solutions-components/p-e6bee82f.js +6 -0
  813. package/dist/solutions-components/p-ea282908.js +6 -0
  814. package/dist/solutions-components/p-ee066c67.js +16 -0
  815. package/dist/solutions-components/p-ef48bd77.entry.js +17 -0
  816. package/dist/solutions-components/p-ef96894d.entry.js +23 -0
  817. package/dist/solutions-components/p-f28d69ac.entry.js +11 -0
  818. package/dist/solutions-components/p-f41105c8.js +6 -0
  819. package/dist/solutions-components/p-f8dd2784.js +36 -0
  820. package/dist/solutions-components/p-ffac6f88.entry.js +6 -0
  821. package/dist/solutions-components/solutions-components.esm.js +1 -1
  822. package/dist/solutions-components/utils/interfaces.ts +2 -0
  823. package/dist/types/components/basemap-gallery/basemap-gallery.d.ts +64 -0
  824. package/dist/types/components/buffer-tools/buffer-tools.d.ts +170 -170
  825. package/dist/types/components/card-manager/card-manager.d.ts +70 -70
  826. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +182 -174
  827. package/dist/types/components/crowdsource-reporter/crowdsource-reporter.d.ts +26 -26
  828. package/dist/types/components/deduct-calculator/deduct-calculator.d.ts +90 -90
  829. package/dist/types/components/edit-card/edit-card.d.ts +140 -140
  830. package/dist/types/components/info-card/info-card.d.ts +143 -143
  831. package/dist/types/components/json-editor/json-editor.d.ts +229 -229
  832. package/dist/types/components/layer-table/layer-table.d.ts +298 -276
  833. package/dist/types/components/layout-manager/layout-manager.d.ts +69 -69
  834. package/dist/types/components/list-item/list-item.d.ts +26 -26
  835. package/dist/types/components/map-card/map-card.d.ts +91 -83
  836. package/dist/types/components/map-draw-tools/map-draw-tools.d.ts +231 -231
  837. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +160 -160
  838. package/dist/types/components/map-picker/map-picker.d.ts +109 -109
  839. package/dist/types/components/map-search/map-search.d.ts +107 -0
  840. package/dist/types/components/map-select-tools/map-select-tools.d.ts +469 -469
  841. package/dist/types/components/map-tools/map-tools.d.ts +167 -104
  842. package/dist/types/components/pci-calculator/pci-calculator.d.ts +71 -71
  843. package/dist/types/components/pdf-download/pdf-download.d.ts +101 -101
  844. package/dist/types/components/public-notification/public-notification.d.ts +610 -610
  845. package/dist/types/components/refine-selection/refine-selection.d.ts +234 -234
  846. package/dist/types/components/solution-configuration/solution-configuration.d.ts +205 -205
  847. package/dist/types/components/solution-contents/solution-contents.d.ts +46 -46
  848. package/dist/types/components/solution-item/solution-item.d.ts +71 -71
  849. package/dist/types/components/solution-item-details/solution-item-details.d.ts +100 -100
  850. package/dist/types/components/solution-item-icon/solution-item-icon.d.ts +44 -44
  851. package/dist/types/components/solution-item-sharing/solution-item-sharing.d.ts +62 -62
  852. package/dist/types/components/solution-organization-variables/solution-organization-variables.d.ts +63 -63
  853. package/dist/types/components/solution-resource-item/solution-resource-item.d.ts +144 -144
  854. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +180 -180
  855. package/dist/types/components/solution-spatial-ref/spatialreferences.d.ts +17 -17
  856. package/dist/types/components/solution-template-data/solution-template-data.d.ts +72 -72
  857. package/dist/types/components/solution-variables/solution-variables.d.ts +69 -69
  858. package/dist/types/components/store-manager/store-manager.d.ts +55 -55
  859. package/dist/types/components.d.ts +124 -0
  860. package/dist/types/index.d.ts +16 -16
  861. package/dist/types/preact.d.ts +4 -0
  862. package/dist/types/stencil-public-runtime.d.ts +29 -14
  863. package/dist/types/utils/common.d.ts +49 -49
  864. package/dist/types/utils/csvDownload.d.ts +24 -24
  865. package/dist/types/utils/csvUtils.d.ts +22 -22
  866. package/dist/types/utils/downloadUtils.d.ts +118 -118
  867. package/dist/types/utils/interfaces.d.ts +400 -398
  868. package/dist/types/utils/languageUtil.d.ts +11 -11
  869. package/dist/types/utils/loadModules.d.ts +17 -17
  870. package/dist/types/utils/locale.d.ts +22 -22
  871. package/dist/types/utils/mapViewUtils.d.ts +124 -124
  872. package/dist/types/utils/pciUtils.d.ts +97 -97
  873. package/dist/types/utils/pdfUtils.d.ts +27 -27
  874. package/dist/types/utils/publicNotificationStore.d.ts +24 -24
  875. package/dist/types/utils/queryUtils.d.ts +95 -95
  876. package/dist/types/utils/solution-store.d.ts +234 -234
  877. package/dist/types/utils/templates.d.ts +50 -50
  878. package/dist/types/utils/test/mocks/jsApi.d.ts +59 -59
  879. package/dist/types/utils/test/testUtils.d.ts +36 -36
  880. package/dist/types/utils/types.d.ts +1 -1
  881. package/package.json +2 -2
  882. package/dist/cjs/ExpandToggle-70890ae0.js +0 -117
  883. package/dist/cjs/FloatingArrow-4ca06439.js +0 -48
  884. package/dist/cjs/Heading-c5c71fc5.js +0 -25
  885. package/dist/cjs/app-globals-a34c0991.js +0 -64
  886. package/dist/cjs/ar-fa16156d.js +0 -97
  887. package/dist/cjs/bg-b39e773e.js +0 -78
  888. package/dist/cjs/bs-4579ea2a.js +0 -47
  889. package/dist/cjs/ca-f3f64686.js +0 -67
  890. package/dist/cjs/calcite-input-time-picker-6f38ef8c.js +0 -1718
  891. package/dist/cjs/conditionalSlot-a51326e7.js +0 -63
  892. package/dist/cjs/cs-1bcd5b46.js +0 -143
  893. package/dist/cjs/da-30ee21db.js +0 -62
  894. package/dist/cjs/date-f6611a19.js +0 -250
  895. package/dist/cjs/de-42aae5ad.js +0 -87
  896. package/dist/cjs/de-at-a3a6f020.js +0 -86
  897. package/dist/cjs/de-ch-36c13310.js +0 -86
  898. package/dist/cjs/dom-d529bae8.js +0 -1046
  899. package/dist/cjs/downloadUtils-6eb59363.js +0 -2767
  900. package/dist/cjs/el-90d066ae.js +0 -62
  901. package/dist/cjs/en-au-685b882b.js +0 -62
  902. package/dist/cjs/en-ca-ff4bc403.js +0 -61
  903. package/dist/cjs/en-gb-2f5587ad.js +0 -65
  904. package/dist/cjs/es-e9183ca0.js +0 -62
  905. package/dist/cjs/es-mx-dcc9afb2.js +0 -61
  906. package/dist/cjs/et-a18949ea.js +0 -88
  907. package/dist/cjs/fi-1ce00d38.js +0 -111
  908. package/dist/cjs/filter-494bf35e.js +0 -765
  909. package/dist/cjs/floating-ui-7d6e57d3.js +0 -1888
  910. package/dist/cjs/focusTrapComponent-0c4d7671.js +0 -1009
  911. package/dist/cjs/form-bcf49eae.js +0 -288
  912. package/dist/cjs/fr-a9435a19.js +0 -64
  913. package/dist/cjs/fr-ch-51efa9bf.js +0 -62
  914. package/dist/cjs/he-c5dccfa2.js +0 -101
  915. package/dist/cjs/hi-0898e7f2.js +0 -61
  916. package/dist/cjs/hr-68f7d8da.js +0 -76
  917. package/dist/cjs/hu-e494037d.js +0 -84
  918. package/dist/cjs/id-bef40c1c.js +0 -62
  919. package/dist/cjs/index-6654298b.js +0 -1796
  920. package/dist/cjs/index-e1b1954f.js +0 -201
  921. package/dist/cjs/index.es-d9b5d3a5.js +0 -10808
  922. package/dist/cjs/interfaces-ad03ec39.js +0 -85
  923. package/dist/cjs/it-1144ca67.js +0 -62
  924. package/dist/cjs/it-ch-2c14dca7.js +0 -62
  925. package/dist/cjs/ja-caad9809.js +0 -68
  926. package/dist/cjs/ko-ddec9054.js +0 -68
  927. package/dist/cjs/label-215c4af3.js +0 -136
  928. package/dist/cjs/loadModules-ae7715f2.js +0 -30
  929. package/dist/cjs/loadable-6da743c6.js +0 -94
  930. package/dist/cjs/locale-477d8d51.js +0 -604
  931. package/dist/cjs/locale-b113c6b2.js +0 -416
  932. package/dist/cjs/lt-205a1aa6.js +0 -93
  933. package/dist/cjs/lv-3ba82f9b.js +0 -62
  934. package/dist/cjs/map-picker_2.cjs.entry.js +0 -264
  935. package/dist/cjs/mapViewUtils-77a1ff88.js +0 -411
  936. package/dist/cjs/mk-069ea86a.js +0 -62
  937. package/dist/cjs/nb-9e9c934f.js +0 -63
  938. package/dist/cjs/nl-5dd0116f.js +0 -63
  939. package/dist/cjs/openCloseComponent-3fa18210.js +0 -84
  940. package/dist/cjs/pciUtils-423cfc68.js +0 -847
  941. package/dist/cjs/pl-74e70b37.js +0 -110
  942. package/dist/cjs/pt-br-0f76e430.js +0 -61
  943. package/dist/cjs/pt-cc737fcc.js +0 -63
  944. package/dist/cjs/publicNotificationStore-ec1bdd2d.js +0 -51
  945. package/dist/cjs/ro-5e396753.js +0 -62
  946. package/dist/cjs/ru-f7371aca.js +0 -122
  947. package/dist/cjs/shared-list-render-76c5dc25.js +0 -364
  948. package/dist/cjs/sk-ec02498f.js +0 -144
  949. package/dist/cjs/sl-8363f4d7.js +0 -62
  950. package/dist/cjs/solution-store-bd956f06.js +0 -4100
  951. package/dist/cjs/sortableComponent-8135ea87.js +0 -3112
  952. package/dist/cjs/sr-b0f92cb1.js +0 -97
  953. package/dist/cjs/sv-e2c27fff.js +0 -67
  954. package/dist/cjs/t9n-8be30efb.js +0 -100
  955. package/dist/cjs/th-8a6dc2cc.js +0 -61
  956. package/dist/cjs/throttle-8ee74c77.js +0 -75
  957. package/dist/cjs/time-9004df7e.js +0 -208
  958. package/dist/cjs/tr-09137435.js +0 -62
  959. package/dist/cjs/uk-c30401f4.js +0 -100
  960. package/dist/cjs/utils-ed4e5028.js +0 -55
  961. package/dist/cjs/utils-fb81c6b3.js +0 -64
  962. package/dist/cjs/vi-e069c9e4.js +0 -66
  963. package/dist/cjs/zh-cn-50f223a8.js +0 -90
  964. package/dist/cjs/zh-hk-5498073d.js +0 -67
  965. package/dist/cjs/zh-tw-dfdb0ae8.js +0 -88
  966. package/dist/esm/ExpandToggle-3420fa39.js +0 -109
  967. package/dist/esm/FloatingArrow-cd8eafa4.js +0 -46
  968. package/dist/esm/Heading-1763134e.js +0 -22
  969. package/dist/esm/app-globals-580889bd.js +0 -62
  970. package/dist/esm/ar-ceb1b389.js +0 -95
  971. package/dist/esm/bg-a8824832.js +0 -76
  972. package/dist/esm/bs-5c2ca44f.js +0 -45
  973. package/dist/esm/ca-47f86073.js +0 -65
  974. package/dist/esm/calcite-input-time-picker-59a3ed66.js +0 -1715
  975. package/dist/esm/conditionalSlot-91396dd5.js +0 -60
  976. package/dist/esm/cs-f651c3cd.js +0 -141
  977. package/dist/esm/da-e32ccc0a.js +0 -60
  978. package/dist/esm/date-51fa981b.js +0 -235
  979. package/dist/esm/de-9b417aed.js +0 -85
  980. package/dist/esm/de-at-f73447e2.js +0 -84
  981. package/dist/esm/de-ch-7ec8c31e.js +0 -84
  982. package/dist/esm/dom-8a9e4ee8.js +0 -1017
  983. package/dist/esm/downloadUtils-43b53f5a.js +0 -2761
  984. package/dist/esm/el-9a3189a2.js +0 -60
  985. package/dist/esm/en-au-5aea3b73.js +0 -60
  986. package/dist/esm/en-ca-fe3e706b.js +0 -59
  987. package/dist/esm/en-gb-a4278000.js +0 -63
  988. package/dist/esm/es-383f9c9e.js +0 -60
  989. package/dist/esm/es-mx-7845b382.js +0 -59
  990. package/dist/esm/et-d8f8df06.js +0 -86
  991. package/dist/esm/fi-14894338.js +0 -109
  992. package/dist/esm/filter-bf34614b.js +0 -763
  993. package/dist/esm/floating-ui-9870f74c.js +0 -1880
  994. package/dist/esm/focusTrapComponent-34010d00.js +0 -1004
  995. package/dist/esm/form-6669a774.js +0 -280
  996. package/dist/esm/fr-6f570086.js +0 -62
  997. package/dist/esm/fr-ch-b9f89159.js +0 -60
  998. package/dist/esm/he-174aca6e.js +0 -99
  999. package/dist/esm/hi-7e469aab.js +0 -59
  1000. package/dist/esm/hr-a4ac455a.js +0 -74
  1001. package/dist/esm/hu-207da291.js +0 -82
  1002. package/dist/esm/id-8e4d57bf.js +0 -60
  1003. package/dist/esm/index-4c4a4f3d.js +0 -199
  1004. package/dist/esm/index-d298aca9.js +0 -1762
  1005. package/dist/esm/index.es-a185f2b1.js +0 -10722
  1006. package/dist/esm/interfaces-bf20e69c.js +0 -85
  1007. package/dist/esm/it-7ade952c.js +0 -60
  1008. package/dist/esm/it-ch-181d76ab.js +0 -60
  1009. package/dist/esm/ja-42013dd3.js +0 -66
  1010. package/dist/esm/ko-8de07550.js +0 -66
  1011. package/dist/esm/label-661d8e10.js +0 -130
  1012. package/dist/esm/loadModules-cd3569de.js +0 -28
  1013. package/dist/esm/loadable-08376d90.js +0 -89
  1014. package/dist/esm/locale-54cac39a.js +0 -412
  1015. package/dist/esm/locale-73d0926a.js +0 -592
  1016. package/dist/esm/lt-1ef29b5b.js +0 -91
  1017. package/dist/esm/lv-263a2f78.js +0 -60
  1018. package/dist/esm/map-picker_2.entry.js +0 -259
  1019. package/dist/esm/mapViewUtils-1e68cede.js +0 -395
  1020. package/dist/esm/mk-d8bae136.js +0 -60
  1021. package/dist/esm/nb-494542b3.js +0 -61
  1022. package/dist/esm/nl-cd882d7f.js +0 -61
  1023. package/dist/esm/openCloseComponent-a40fd6fd.js +0 -82
  1024. package/dist/esm/pciUtils-ecda46e5.js +0 -844
  1025. package/dist/esm/pl-b79095d5.js +0 -108
  1026. package/dist/esm/polyfills/css-shim.js +0 -1
  1027. package/dist/esm/pt-5ca0b751.js +0 -61
  1028. package/dist/esm/pt-br-e1a1ce60.js +0 -59
  1029. package/dist/esm/publicNotificationStore-6ef555f3.js +0 -49
  1030. package/dist/esm/ro-5cbc0f2a.js +0 -60
  1031. package/dist/esm/ru-e66f5b84.js +0 -120
  1032. package/dist/esm/shared-list-render-5b788e63.js +0 -342
  1033. package/dist/esm/sk-be2b5cec.js +0 -142
  1034. package/dist/esm/sl-74600272.js +0 -60
  1035. package/dist/esm/solution-store-c107ca4d.js +0 -4092
  1036. package/dist/esm/sortableComponent-1dd8a4ae.js +0 -3109
  1037. package/dist/esm/sr-58280ce5.js +0 -95
  1038. package/dist/esm/sv-f0e2171a.js +0 -65
  1039. package/dist/esm/t9n-745553e0.js +0 -95
  1040. package/dist/esm/th-6c3eac31.js +0 -59
  1041. package/dist/esm/throttle-26fa347b.js +0 -73
  1042. package/dist/esm/time-7e3ba7c6.js +0 -195
  1043. package/dist/esm/tr-092713ca.js +0 -60
  1044. package/dist/esm/uk-95df0f95.js +0 -98
  1045. package/dist/esm/utils-4f695ec2.js +0 -45
  1046. package/dist/esm/utils-ddff4ef3.js +0 -61
  1047. package/dist/esm/vi-70a9857c.js +0 -64
  1048. package/dist/esm/zh-cn-e024ef2d.js +0 -88
  1049. package/dist/esm/zh-hk-36ff9e8f.js +0 -65
  1050. package/dist/esm/zh-tw-96ddb74c.js +0 -86
  1051. package/dist/solutions-components/p-0056655c.js +0 -6
  1052. package/dist/solutions-components/p-017265ef.entry.js +0 -23
  1053. package/dist/solutions-components/p-017543d5.entry.js +0 -11
  1054. package/dist/solutions-components/p-0209ed2e.js +0 -6
  1055. package/dist/solutions-components/p-0245bb56.entry.js +0 -6
  1056. package/dist/solutions-components/p-043ead99.entry.js +0 -6
  1057. package/dist/solutions-components/p-048a2a6d.js +0 -6
  1058. package/dist/solutions-components/p-050e12eb.entry.js +0 -12
  1059. package/dist/solutions-components/p-06916de9.entry.js +0 -11
  1060. package/dist/solutions-components/p-08320fb9.entry.js +0 -11
  1061. package/dist/solutions-components/p-08e12eb0.js +0 -6
  1062. package/dist/solutions-components/p-0a2c02fd.js +0 -6
  1063. package/dist/solutions-components/p-0a4bc416.js +0 -6
  1064. package/dist/solutions-components/p-0afa17dc.entry.js +0 -23
  1065. package/dist/solutions-components/p-0b4eb6e4.entry.js +0 -11
  1066. package/dist/solutions-components/p-0d900572.js +0 -6
  1067. package/dist/solutions-components/p-0f4d3009.entry.js +0 -11
  1068. package/dist/solutions-components/p-10181f33.entry.js +0 -6
  1069. package/dist/solutions-components/p-105ef63c.entry.js +0 -17
  1070. package/dist/solutions-components/p-11983a08.js +0 -6
  1071. package/dist/solutions-components/p-1260db08.js +0 -61
  1072. package/dist/solutions-components/p-129fcd0a.js +0 -6
  1073. package/dist/solutions-components/p-13f7e487.js +0 -11
  1074. package/dist/solutions-components/p-14769a01.js +0 -11
  1075. package/dist/solutions-components/p-14a4ad77.entry.js +0 -11
  1076. package/dist/solutions-components/p-15e67907.entry.js +0 -11
  1077. package/dist/solutions-components/p-17799448.entry.js +0 -11
  1078. package/dist/solutions-components/p-185a82e0.js +0 -17
  1079. package/dist/solutions-components/p-191c59e9.js +0 -6
  1080. package/dist/solutions-components/p-1b63bec9.entry.js +0 -11
  1081. package/dist/solutions-components/p-1c810f4c.entry.js +0 -6
  1082. package/dist/solutions-components/p-1d28ff09.entry.js +0 -11
  1083. package/dist/solutions-components/p-1e30069a.entry.js +0 -6
  1084. package/dist/solutions-components/p-1e63db11.entry.js +0 -6
  1085. package/dist/solutions-components/p-20274226.entry.js +0 -6
  1086. package/dist/solutions-components/p-2411f1f6.js +0 -6
  1087. package/dist/solutions-components/p-2509b65f.entry.js +0 -22
  1088. package/dist/solutions-components/p-25faeab6.js +0 -6
  1089. package/dist/solutions-components/p-27f5bb4f.js +0 -36
  1090. package/dist/solutions-components/p-2a0d8a46.entry.js +0 -11
  1091. package/dist/solutions-components/p-2dea68b6.entry.js +0 -17
  1092. package/dist/solutions-components/p-2ecd5cb7.js +0 -6
  1093. package/dist/solutions-components/p-30dbc43d.entry.js +0 -11
  1094. package/dist/solutions-components/p-32d821d1.entry.js +0 -37
  1095. package/dist/solutions-components/p-3479d873.entry.js +0 -6
  1096. package/dist/solutions-components/p-36d09c0c.entry.js +0 -35
  1097. package/dist/solutions-components/p-375f0b74.js +0 -474
  1098. package/dist/solutions-components/p-38b4873b.entry.js +0 -6
  1099. package/dist/solutions-components/p-38d61356.js +0 -18
  1100. package/dist/solutions-components/p-3a7156b8.entry.js +0 -6
  1101. package/dist/solutions-components/p-3b041268.js +0 -6
  1102. package/dist/solutions-components/p-3ca9bb95.js +0 -6
  1103. package/dist/solutions-components/p-3e5c8b2f.js +0 -6
  1104. package/dist/solutions-components/p-3ee6af74.js +0 -11
  1105. package/dist/solutions-components/p-3eecbcf0.entry.js +0 -18
  1106. package/dist/solutions-components/p-40432de5.entry.js +0 -11
  1107. package/dist/solutions-components/p-4058733e.entry.js +0 -11
  1108. package/dist/solutions-components/p-4152fae0.js +0 -6
  1109. package/dist/solutions-components/p-4321edfc.js +0 -6
  1110. package/dist/solutions-components/p-4344b6ca.entry.js +0 -11
  1111. package/dist/solutions-components/p-44e26e37.js +0 -6
  1112. package/dist/solutions-components/p-477ae127.js +0 -21
  1113. package/dist/solutions-components/p-4c8b1179.js +0 -6
  1114. package/dist/solutions-components/p-4e32bf8c.js +0 -6
  1115. package/dist/solutions-components/p-4e93132b.entry.js +0 -6
  1116. package/dist/solutions-components/p-4ea79dc4.entry.js +0 -11
  1117. package/dist/solutions-components/p-4f51db32.js +0 -6
  1118. package/dist/solutions-components/p-4f64d786.js +0 -6
  1119. package/dist/solutions-components/p-4ff653eb.js +0 -6
  1120. package/dist/solutions-components/p-53347add.js +0 -6
  1121. package/dist/solutions-components/p-54fce798.js +0 -11
  1122. package/dist/solutions-components/p-573d282b.entry.js +0 -11
  1123. package/dist/solutions-components/p-58340eba.js +0 -6
  1124. package/dist/solutions-components/p-5930cd6d.entry.js +0 -6
  1125. package/dist/solutions-components/p-5fc99541.js +0 -257
  1126. package/dist/solutions-components/p-6071078a.entry.js +0 -6
  1127. package/dist/solutions-components/p-69863a28.entry.js +0 -6
  1128. package/dist/solutions-components/p-699031c9.entry.js +0 -11
  1129. package/dist/solutions-components/p-6998e886.entry.js +0 -11
  1130. package/dist/solutions-components/p-6a813a31.entry.js +0 -6
  1131. package/dist/solutions-components/p-6b12b5eb.entry.js +0 -16
  1132. package/dist/solutions-components/p-6e89e9dd.js +0 -6
  1133. package/dist/solutions-components/p-705b7f81.entry.js +0 -12
  1134. package/dist/solutions-components/p-75578ebf.entry.js +0 -6
  1135. package/dist/solutions-components/p-7c72df3c.js +0 -22
  1136. package/dist/solutions-components/p-7ca47589.entry.js +0 -11
  1137. package/dist/solutions-components/p-7cb8a4db.js +0 -6
  1138. package/dist/solutions-components/p-7cc13b24.js +0 -8
  1139. package/dist/solutions-components/p-8008b2fe.entry.js +0 -6
  1140. package/dist/solutions-components/p-81531fbe.entry.js +0 -11
  1141. package/dist/solutions-components/p-81627211.entry.js +0 -11
  1142. package/dist/solutions-components/p-8aa806fe.js +0 -12
  1143. package/dist/solutions-components/p-8ae8b789.js +0 -6
  1144. package/dist/solutions-components/p-8b1236bf.js +0 -6
  1145. package/dist/solutions-components/p-8b14f9aa.js +0 -16
  1146. package/dist/solutions-components/p-8b4e79fd.js +0 -16
  1147. package/dist/solutions-components/p-8bc91d5b.entry.js +0 -11
  1148. package/dist/solutions-components/p-8df0c98c.entry.js +0 -35
  1149. package/dist/solutions-components/p-953cf07a.entry.js +0 -6
  1150. package/dist/solutions-components/p-95cf8aa0.entry.js +0 -11
  1151. package/dist/solutions-components/p-99ece5e1.js +0 -11
  1152. package/dist/solutions-components/p-9a2a551d.js +0 -6
  1153. package/dist/solutions-components/p-9b43b4cf.js +0 -11
  1154. package/dist/solutions-components/p-9f922d49.js +0 -11
  1155. package/dist/solutions-components/p-9fb09c2c.js +0 -11
  1156. package/dist/solutions-components/p-a0e50ea6.entry.js +0 -6
  1157. package/dist/solutions-components/p-a1154bb5.entry.js +0 -11
  1158. package/dist/solutions-components/p-a709a84a.js +0 -11
  1159. package/dist/solutions-components/p-a99832c1.js +0 -27
  1160. package/dist/solutions-components/p-ad41cd27.entry.js +0 -6
  1161. package/dist/solutions-components/p-ad962e25.js +0 -6
  1162. package/dist/solutions-components/p-ae1459ed.entry.js +0 -6
  1163. package/dist/solutions-components/p-af9510a4.entry.js +0 -6
  1164. package/dist/solutions-components/p-afc462f0.js +0 -6
  1165. package/dist/solutions-components/p-b02a2b2f.js +0 -11
  1166. package/dist/solutions-components/p-b0eb13a1.js +0 -6
  1167. package/dist/solutions-components/p-b1228e6c.entry.js +0 -11
  1168. package/dist/solutions-components/p-b1ff9f2e.entry.js +0 -11
  1169. package/dist/solutions-components/p-b20bf7b7.entry.js +0 -6
  1170. package/dist/solutions-components/p-b361af64.entry.js +0 -11
  1171. package/dist/solutions-components/p-b4a6abe2.js +0 -11
  1172. package/dist/solutions-components/p-b68b17b6.entry.js +0 -37
  1173. package/dist/solutions-components/p-b73e9c4d.js +0 -6
  1174. package/dist/solutions-components/p-b9111e12.js +0 -6
  1175. package/dist/solutions-components/p-b9653a1e.js +0 -6
  1176. package/dist/solutions-components/p-b9fa9ca9.js +0 -6
  1177. package/dist/solutions-components/p-ba9bb2ba.entry.js +0 -11
  1178. package/dist/solutions-components/p-bc35e445.entry.js +0 -6
  1179. package/dist/solutions-components/p-bccc74a8.js +0 -6
  1180. package/dist/solutions-components/p-bd213033.entry.js +0 -6
  1181. package/dist/solutions-components/p-c0dc792a.entry.js +0 -11
  1182. package/dist/solutions-components/p-c16e540d.js +0 -6
  1183. package/dist/solutions-components/p-c35b219b.entry.js +0 -11
  1184. package/dist/solutions-components/p-c38c0612.entry.js +0 -11
  1185. package/dist/solutions-components/p-c8c3554b.js +0 -17
  1186. package/dist/solutions-components/p-cbebdffa.js +0 -6
  1187. package/dist/solutions-components/p-cbf52aa2.entry.js +0 -11
  1188. package/dist/solutions-components/p-ce21ee76.js +0 -6
  1189. package/dist/solutions-components/p-ce3e73ae.entry.js +0 -6
  1190. package/dist/solutions-components/p-cf14e2f3.js +0 -6
  1191. package/dist/solutions-components/p-cfebc45c.entry.js +0 -11
  1192. package/dist/solutions-components/p-d15a4f36.entry.js +0 -11
  1193. package/dist/solutions-components/p-d3550542.js +0 -6
  1194. package/dist/solutions-components/p-d3dceabd.entry.js +0 -11
  1195. package/dist/solutions-components/p-d43c1fc8.entry.js +0 -11
  1196. package/dist/solutions-components/p-d7ddd3a2.js +0 -21
  1197. package/dist/solutions-components/p-d841cb8b.js +0 -6
  1198. package/dist/solutions-components/p-d9868bac.js +0 -6
  1199. package/dist/solutions-components/p-dc94bec2.js +0 -6
  1200. package/dist/solutions-components/p-dd0f8875.js +0 -6
  1201. package/dist/solutions-components/p-dec7b660.js +0 -11
  1202. package/dist/solutions-components/p-deca8a07.js +0 -6
  1203. package/dist/solutions-components/p-df5ec082.entry.js +0 -11
  1204. package/dist/solutions-components/p-e046f728.js +0 -6
  1205. package/dist/solutions-components/p-e27ce6d2.entry.js +0 -11
  1206. package/dist/solutions-components/p-e2abc969.js +0 -6
  1207. package/dist/solutions-components/p-e3f9e213.js +0 -6
  1208. package/dist/solutions-components/p-e43839a8.entry.js +0 -11
  1209. package/dist/solutions-components/p-e4d5188b.entry.js +0 -6
  1210. package/dist/solutions-components/p-e666c0d6.entry.js +0 -6
  1211. package/dist/solutions-components/p-e6c20791.js +0 -11
  1212. package/dist/solutions-components/p-ec4c8dc3.js +0 -11
  1213. package/dist/solutions-components/p-ef34c9e2.entry.js +0 -11
  1214. package/dist/solutions-components/p-f346f8ab.js +0 -11
  1215. package/dist/solutions-components/p-f780ecc1.entry.js +0 -11
  1216. package/dist/solutions-components/p-f8be5d5f.js +0 -7
  1217. package/dist/solutions-components/p-f9a56d6b.entry.js +0 -6
  1218. package/dist/solutions-components/p-f9b9b211.entry.js +0 -12
  1219. package/dist/solutions-components/p-fc2277fe.js +0 -21
  1220. package/dist/solutions-components/p-fd65b14d.entry.js +0 -6
  1221. package/dist/solutions-components/p-fe0e8542.entry.js +0 -17
  1222. /package/dist/cjs/{array-51e7da8f.js → array-46bb7df1.js} +0 -0
  1223. /package/dist/cjs/{debounce-69c3bada.js → debounce-30afab47.js} +0 -0
  1224. /package/dist/cjs/{guid-ca85ade0.js → guid-3abe3cc6.js} +0 -0
  1225. /package/dist/cjs/{html2canvas-770c1171.js → html2canvas-34208bbf.js} +0 -0
  1226. /package/dist/cjs/{interactive-4e212b36.js → interactive-2fe0f43a.js} +0 -0
  1227. /package/dist/cjs/{key-b32a6438.js → key-b8b55ea3.js} +0 -0
  1228. /package/dist/cjs/{math-ef14a84a.js → math-5132d9bd.js} +0 -0
  1229. /package/dist/cjs/{observers-20fe6f01.js → observers-f5fa975b.js} +0 -0
  1230. /package/dist/cjs/{purify-5389d8d6.js → purify-f8c3e427.js} +0 -0
  1231. /package/dist/cjs/{resources-1d2258a1.js → resources-2901b608.js} +0 -0
  1232. /package/dist/cjs/{resources-a7e3371d.js → resources-4da89742.js} +0 -0
  1233. /package/dist/cjs/{resources-7c9bff85.js → resources-60c27547.js} +0 -0
  1234. /package/dist/cjs/{resources-b4b4b4fe.js → resources-77713c2e.js} +0 -0
  1235. /package/dist/cjs/{resources-b176fc52.js → resources-8233a151.js} +0 -0
  1236. /package/dist/cjs/{resources-f13e2605.js → resources-91409a5d.js} +0 -0
  1237. /package/dist/cjs/{resources-9dcbf30f.js → resources-9f2b33ee.js} +0 -0
  1238. /package/dist/cjs/{resources-f3e30b7b.js → resources-c913200c.js} +0 -0
  1239. /package/dist/cjs/{resources-c6f066a4.js → resources-e1258e8a.js} +0 -0
  1240. /package/dist/cjs/{utils-662561ad.js → utils-bae432a9.js} +0 -0
  1241. /package/dist/cjs/{utils-8a0f3e68.js → utils-cd14113f.js} +0 -0
  1242. /package/dist/{esm/resources-b5267429.js → components/resources4.js} +0 -0
  1243. /package/dist/esm/{array-4a653f59.js → array-751a2b87.js} +0 -0
  1244. /package/dist/esm/{debounce-4c884e5c.js → debounce-229b1a22.js} +0 -0
  1245. /package/dist/esm/{guid-1608fd71.js → guid-2bbb8cd1.js} +0 -0
  1246. /package/dist/esm/{html2canvas-12c862c8.js → html2canvas-a0a4df55.js} +0 -0
  1247. /package/dist/esm/{interactive-0733ee76.js → interactive-eaf4be29.js} +0 -0
  1248. /package/dist/esm/{key-97b504af.js → key-7a525416.js} +0 -0
  1249. /package/dist/esm/{math-e006358c.js → math-5f92f517.js} +0 -0
  1250. /package/dist/esm/{observers-67bdf9e5.js → observers-9d66685a.js} +0 -0
  1251. /package/dist/esm/{purify-75c61cf7.js → purify-c99d2ace.js} +0 -0
  1252. /package/dist/esm/{resources-913009ae.js → resources-58d30a0f.js} +0 -0
  1253. /package/dist/esm/{resources-6be20fcc.js → resources-5bce3953.js} +0 -0
  1254. /package/dist/esm/{resources-f97db74e.js → resources-94c47e64.js} +0 -0
  1255. /package/dist/esm/{resources-43d63050.js → resources-a9b2d33c.js} +0 -0
  1256. /package/dist/esm/{resources-34b761fa.js → resources-c253772f.js} +0 -0
  1257. /package/dist/esm/{resources-6b7800e6.js → resources-c65f5654.js} +0 -0
  1258. /package/dist/esm/{resources-01034dfa.js → resources-d6a4d343.js} +0 -0
  1259. /package/dist/esm/{resources-5490ccf4.js → resources-dca3d475.js} +0 -0
  1260. /package/dist/esm/{utils-dcd05f69.js → utils-18db6b1d.js} +0 -0
  1261. /package/dist/esm/{utils-649c76ab.js → utils-2c91c963.js} +0 -0
  1262. /package/dist/solutions-components/{p-5d25ba99.js → p-18869c0f.js} +0 -0
  1263. /package/dist/solutions-components/{p-43ebe36a.js → p-18f1772b.js} +0 -0
  1264. /package/dist/solutions-components/{p-76b83a13.js → p-1f468797.js} +0 -0
  1265. /package/dist/solutions-components/{p-f93e6931.js → p-215d3505.js} +0 -0
  1266. /package/dist/solutions-components/{p-0b32d4fe.js → p-2291b598.js} +0 -0
  1267. /package/dist/solutions-components/{p-0630e686.js → p-283e3a2d.js} +0 -0
  1268. /package/dist/solutions-components/{p-a963dd48.js → p-38ef0684.js} +0 -0
  1269. /package/dist/solutions-components/{p-3adf63ca.js → p-3fc17d72.js} +0 -0
  1270. /package/dist/solutions-components/{p-fb3ba11a.js → p-4805ff13.js} +0 -0
  1271. /package/dist/solutions-components/{p-5242a652.js → p-58ce5639.js} +0 -0
  1272. /package/dist/solutions-components/{p-203b16df.js → p-5961c4e0.js} +0 -0
  1273. /package/dist/solutions-components/{p-cc815aca.js → p-63a0e9bf.js} +0 -0
  1274. /package/dist/solutions-components/{p-d556b5c4.js → p-6f2edf5b.js} +0 -0
  1275. /package/dist/solutions-components/{p-9ab03591.js → p-868df4a0.js} +0 -0
  1276. /package/dist/solutions-components/{p-ff4afb7d.js → p-b9749e09.js} +0 -0
  1277. /package/dist/solutions-components/{p-3b72043f.js → p-d4c103a8.js} +0 -0
  1278. /package/dist/solutions-components/{p-7ac7b1a1.js → p-d554507d.js} +0 -0
  1279. /package/dist/solutions-components/{p-0506e06f.js → p-f055a840.js} +0 -0
  1280. /package/dist/solutions-components/{p-08ab045a.js → p-fb7e0054.js} +0 -0
@@ -3,28 +3,28 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-d298aca9.js';
7
- import { f as filter } from './filter-bf34614b.js';
8
- import { i as isPrimaryPointerButton, t as toAriaBoolean, e as getElementProp, g as getSlotted, d as focusElementInGroup, h as focusElement } from './dom-8a9e4ee8.js';
9
- import { d as defaultMenuPlacement, f as filterComputedPlacements, c as connectFloatingUI, r as reposition, a as disconnectFloatingUI, F as FloatingCSS } from './floating-ui-9870f74c.js';
10
- import { s as submitForm, c as connectForm, a as afterConnectDefaultValueSet, d as disconnectForm, H as HiddenFormInputSlot } from './form-6669a774.js';
11
- import { g as guid } from './guid-1608fd71.js';
12
- import { c as connectInteractive, u as updateHostInteraction, d as disconnectInteractive } from './interactive-0733ee76.js';
13
- import { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label-661d8e10.js';
14
- import { c as componentFocusable, s as setUpLoadableComponent, a as setComponentLoaded } from './loadable-08376d90.js';
15
- import { c as connectLocalized, d as disconnectLocalized } from './locale-73d0926a.js';
16
- import { c as createObserver } from './observers-67bdf9e5.js';
17
- import { o as onToggleOpenCloseComponent } from './openCloseComponent-a40fd6fd.js';
18
- import { c as connectMessages, s as setUpMessages, d as disconnectMessages, u as updateMessages } from './t9n-745553e0.js';
19
- import { C as ComboboxChildSelector, b as getItemAncestors, c as getItemChildren, h as hasActiveChildren, d as ComboboxItem$1, e as ComboboxItemGroup, f as CSS$4, g as getAncestors, a as getDepth } from './utils-4f695ec2.js';
20
- import { d as debounce } from './debounce-4c884e5c.js';
21
- import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot-91396dd5.js';
22
- import { i as isActivationKey } from './key-97b504af.js';
23
- import { b as getMapLayerIds, l as getMapTableIds, m as getMapLayerHash, n as getMapTableHash } from './mapViewUtils-1e68cede.js';
24
- import { s as state } from './publicNotificationStore-6ef555f3.js';
25
- import './resources-f97db74e.js';
26
- import './interfaces-bf20e69c.js';
27
- import './index-4c4a4f3d.js';
6
+ import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-b5d9d795.js';
7
+ import { f as filter } from './filter-1cac3edf.js';
8
+ import { i as isPrimaryPointerButton, t as toAriaBoolean, e as getElementProp, g as getSlotted, d as focusElementInGroup, h as focusElement } from './dom-843e3afd.js';
9
+ import { d as defaultMenuPlacement, f as filterComputedPlacements, c as connectFloatingUI, r as reposition, a as disconnectFloatingUI, F as FloatingCSS } from './floating-ui-d28d0fd6.js';
10
+ import { s as submitForm, c as connectForm, a as afterConnectDefaultValueSet, d as disconnectForm, H as HiddenFormInputSlot } from './form-11c6a015.js';
11
+ import { g as guid } from './guid-2bbb8cd1.js';
12
+ import { c as connectInteractive, u as updateHostInteraction, d as disconnectInteractive } from './interactive-eaf4be29.js';
13
+ import { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label-6a1caf64.js';
14
+ import { c as componentFocusable, s as setUpLoadableComponent, a as setComponentLoaded } from './loadable-6bca96ad.js';
15
+ import { c as connectLocalized, d as disconnectLocalized } from './locale-d8561d54.js';
16
+ import { c as createObserver } from './observers-9d66685a.js';
17
+ import { o as onToggleOpenCloseComponent } from './openCloseComponent-2b5c6bed.js';
18
+ import { c as connectMessages, s as setUpMessages, d as disconnectMessages, u as updateMessages } from './t9n-76168237.js';
19
+ import { C as ComboboxChildSelector, b as getItemAncestors, c as getItemChildren, h as hasActiveChildren, d as ComboboxItem$1, e as ComboboxItemGroup, f as CSS$4, g as getAncestors, a as getDepth } from './utils-ccfd94a7.js';
20
+ import { d as debounce } from './debounce-229b1a22.js';
21
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot-27a0fce0.js';
22
+ import { i as isActivationKey } from './key-7a525416.js';
23
+ import { b as getMapLayerIds, l as getMapTableIds, m as getMapLayerHash, n as getMapTableHash } from './mapViewUtils-f0c04325.js';
24
+ import { s as state } from './publicNotificationStore-ade82148.js';
25
+ import './resources-94c47e64.js';
26
+ import './interfaces-5a2fe8b4.js';
27
+ import './index-b91c174c.js';
28
28
 
29
29
  /*!
30
30
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
@@ -42,864 +42,864 @@ function XButton({ disabled, key, label, onClick, ref, scale, }) {
42
42
 
43
43
  const comboboxCss = ":host([disabled]){cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{position:relative;display:block}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host([scale=s]) .x-button{inline-size:1rem;block-size:1rem}:host([scale=m]) .x-button{inline-size:1.5rem;block-size:1.5rem}:host([scale=l]) .x-button{inline-size:2rem;block-size:2rem}.x-button{margin:0px;display:flex;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;align-content:center;align-items:center;justify-content:center;align-self:center;border-width:2px;background-color:transparent;color:var(--calcite-ui-text-3);outline-color:transparent;transition:all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;border-radius:50%;border-color:transparent;background-color:var(--calcite-ui-foreground-2)}.x-button:active,.x-button:hover{color:var(--calcite-ui-text-1);background-color:var(--calcite-ui-foreground-3)}.x-button:active{border-style:solid;border-color:var(--calcite-ui-brand)}.x-button calcite-icon{color:inherit}:host([scale=s]){font-size:var(--calcite-font-size--2);--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-input-height:1.5rem}:host([scale=s]) .x-button{margin-inline-end:0.5rem}:host([scale=m]){font-size:var(--calcite-font-size--1);--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-input-height:2rem}:host([scale=m]) .x-button{margin-inline-end:0.75rem}:host([scale=l]){font-size:var(--calcite-font-size-0);--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.75rem;--calcite-combobox-input-height:2.75rem}:host([scale=l]) .x-button{margin-inline-end:1rem}.wrapper{display:flex;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-1);outline-color:transparent;padding-block:calc(var(--calcite-combobox-item-spacing-unit-s) / 4);padding-inline:var(--calcite-combobox-item-spacing-unit-l)}:host(:focus-within) .wrapper,.wrapper--active{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-ui-brand));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-ui-focus-offset-invert),\n 1\n )\n )\n )}.wrapper--single{padding-block:0;padding-inline:var(--calcite-combobox-item-spacing-unit-l);cursor:pointer;flex-wrap:nowrap}.grid-input{display:flex;flex-grow:1;flex-wrap:wrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0px}.input{flex-grow:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:none;background-color:transparent;padding:0px;font-family:inherit;color:var(--calcite-ui-text-1);font-size:inherit;block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);min-inline-size:120px;margin-block-end:var(--calcite-combobox-item-spacing-unit-s)}.input:focus{outline:2px solid transparent;outline-offset:2px}.input--transparent{opacity:0}.input--single{margin-block:0px;padding:0px}.wrapper--active .input-single{cursor:text}.input--hidden{pointer-events:none;inline-size:0px;min-inline-size:0px;opacity:0}.input--icon{padding-block:0;padding-inline:var(--calcite-combobox-item-spacing-unit-l)}.input-wrap{display:flex;flex-grow:1}.input-wrap--single{flex:1 1 0%;overflow:hidden}.label{pointer-events:none;display:flex;max-inline-size:100%;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0px;font-weight:var(--calcite-font-weight-normal);block-size:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--icon{padding-inline:var(--calcite-combobox-item-spacing-unit-l)}.icon-end,.icon-start{display:flex;inline-size:1rem;cursor:pointer;align-items:center}.icon-end{flex:none}.floating-ui-container{--calcite-floating-ui-z-index:var(--calcite-app-z-index-dropdown);display:block;position:absolute;z-index:var(--calcite-floating-ui-z-index);visibility:hidden}.floating-ui-container .calcite-floating-ui-anim{position:relative;transition:var(--calcite-floating-ui-transition);transition-property:transform, visibility, opacity;opacity:0;box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);z-index:var(--calcite-app-z-index);border-radius:0.25rem}.floating-ui-container[data-placement^=bottom] .calcite-floating-ui-anim{transform:translateY(-5px)}.floating-ui-container[data-placement^=top] .calcite-floating-ui-anim{transform:translateY(5px)}.floating-ui-container[data-placement^=left] .calcite-floating-ui-anim{transform:translateX(5px)}.floating-ui-container[data-placement^=right] .calcite-floating-ui-anim{transform:translateX(-5px)}.floating-ui-container[data-placement] .calcite-floating-ui-anim--active{opacity:1;transform:translate(0)}.floating-ui-container--active{visibility:visible}@media (forced-colors: active){.wrapper,.floating-ui-container--active{border:1px solid canvasText}}.screen-readers-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.list-container{max-block-size:45vh;overflow-y:auto;background-color:var(--calcite-ui-foreground-1);inline-size:var(--calcite-dropdown-width)}.list{margin:0px;display:block;padding:0px}.list--hide{block-size:0px;overflow:hidden}.chip{margin-block:calc(var(--calcite-combobox-item-spacing-unit-s) / 4);margin-inline:0 var(--calcite-combobox-item-spacing-unit-s);max-inline-size:100%}.chip--active{background-color:var(--calcite-ui-foreground-3)}.item{display:block}::slotted(input[slot=hidden-form-input]){margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;inset:0 !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}:host([hidden]){display:none}[hidden]{display:none}::slotted(calcite-combobox-item-group:not(:first-child)){padding-block-start:var(--calcite-combobox-item-spacing-unit-l)}";
44
44
 
45
- const isGroup = (el) => el.tagName === ComboboxItemGroup;
46
- const itemUidPrefix = "combobox-item-";
47
- const chipUidPrefix = "combobox-chip-";
48
- const labelUidPrefix = "combobox-label-";
49
- const listboxUidPrefix = "combobox-listbox-";
50
- const inputUidPrefix = "combobox-input-";
51
- const Combobox = class {
52
- constructor(hostRef) {
53
- registerInstance(this, hostRef);
54
- this.calciteComboboxChange = createEvent(this, "calciteComboboxChange", 6);
55
- this.calciteComboboxFilterChange = createEvent(this, "calciteComboboxFilterChange", 6);
56
- this.calciteComboboxChipClose = createEvent(this, "calciteComboboxChipClose", 6);
57
- this.calciteComboboxBeforeClose = createEvent(this, "calciteComboboxBeforeClose", 6);
58
- this.calciteComboboxClose = createEvent(this, "calciteComboboxClose", 6);
59
- this.calciteComboboxBeforeOpen = createEvent(this, "calciteComboboxBeforeOpen", 6);
60
- this.calciteComboboxOpen = createEvent(this, "calciteComboboxOpen", 6);
61
- //--------------------------------------------------------------------------
62
- //
63
- // Private State/Props
64
- //
65
- //--------------------------------------------------------------------------
66
- this.placement = defaultMenuPlacement;
67
- this.internalValueChangeFlag = false;
68
- this.textInput = null;
69
- this.mutationObserver = createObserver("mutation", () => this.updateItems());
70
- this.resizeObserver = createObserver("resize", () => this.setMaxScrollerHeight());
71
- this.guid = guid();
72
- this.inputHeight = 0;
73
- this.ignoreSelectedEventsFlag = false;
74
- this.openTransitionProp = "opacity";
75
- this.setFilteredPlacements = () => {
76
- const { el, flipPlacements } = this;
77
- this.filteredFlipPlacements = flipPlacements
78
- ? filterComputedPlacements(flipPlacements, el)
79
- : null;
80
- };
81
- this.getValue = () => {
82
- const items = this.selectedItems.map((item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.value) === null || _a === void 0 ? void 0 : _a.toString(); });
83
- return (items === null || items === void 0 ? void 0 : items.length) ? (items.length > 1 ? items : items[0]) : "";
84
- };
85
- this.onLabelClick = () => {
86
- this.setFocus();
87
- };
88
- this.keyDownHandler = (event) => {
89
- const { key } = event;
90
- switch (key) {
91
- case "Tab":
92
- this.activeChipIndex = -1;
93
- this.activeItemIndex = -1;
94
- if (this.allowCustomValues && this.text) {
95
- this.addCustomChip(this.text, true);
96
- event.preventDefault();
97
- }
98
- else if (this.open) {
99
- this.open = false;
100
- event.preventDefault();
101
- }
102
- break;
103
- case "ArrowLeft":
104
- this.previousChip();
105
- event.preventDefault();
106
- break;
107
- case "ArrowRight":
108
- this.nextChip();
109
- event.preventDefault();
110
- break;
111
- case "ArrowUp":
112
- event.preventDefault();
113
- if (this.open) {
114
- this.shiftActiveItemIndex(-1);
115
- }
116
- if (!this.comboboxInViewport()) {
117
- this.el.scrollIntoView();
118
- }
119
- break;
120
- case "ArrowDown":
121
- event.preventDefault();
122
- if (this.open) {
123
- this.shiftActiveItemIndex(1);
124
- }
125
- else {
126
- this.open = true;
127
- this.ensureRecentSelectedItemIsActive();
128
- }
129
- if (!this.comboboxInViewport()) {
130
- this.el.scrollIntoView();
131
- }
132
- break;
133
- case " ":
134
- if (!this.textInput.value) {
135
- if (!this.open) {
136
- this.open = true;
137
- this.shiftActiveItemIndex(1);
138
- }
139
- event.preventDefault();
140
- }
141
- break;
142
- case "Home":
143
- if (!this.open) {
144
- return;
145
- }
146
- event.preventDefault();
147
- this.updateActiveItemIndex(0);
148
- this.scrollToActiveItem();
149
- if (!this.comboboxInViewport()) {
150
- this.el.scrollIntoView();
151
- }
152
- break;
153
- case "End":
154
- if (!this.open) {
155
- return;
156
- }
157
- event.preventDefault();
158
- this.updateActiveItemIndex(this.filteredItems.length - 1);
159
- this.scrollToActiveItem();
160
- if (!this.comboboxInViewport()) {
161
- this.el.scrollIntoView();
162
- }
163
- break;
164
- case "Escape":
165
- if (!this.clearDisabled && !this.open) {
166
- this.clearValue();
167
- }
168
- this.open = false;
169
- event.preventDefault();
170
- break;
171
- case "Enter":
172
- if (this.activeItemIndex > -1) {
173
- this.toggleSelection(this.filteredItems[this.activeItemIndex]);
174
- event.preventDefault();
175
- }
176
- else if (this.activeChipIndex > -1) {
177
- this.removeActiveChip();
178
- event.preventDefault();
179
- }
180
- else if (this.allowCustomValues && this.text) {
181
- this.addCustomChip(this.text, true);
182
- event.preventDefault();
183
- }
184
- else if (!event.defaultPrevented) {
185
- if (submitForm(this)) {
186
- event.preventDefault();
187
- }
188
- }
189
- break;
190
- case "Delete":
191
- case "Backspace":
192
- if (this.activeChipIndex > -1) {
193
- event.preventDefault();
194
- this.removeActiveChip();
195
- }
196
- else if (!this.text && this.isMulti()) {
197
- event.preventDefault();
198
- this.removeLastChip();
199
- }
200
- break;
201
- }
202
- };
203
- this.toggleCloseEnd = () => {
204
- this.open = false;
205
- this.el.removeEventListener("calciteComboboxClose", this.toggleCloseEnd);
206
- };
207
- this.toggleOpenEnd = () => {
208
- this.open = false;
209
- this.el.removeEventListener("calciteComboboxOpen", this.toggleOpenEnd);
210
- };
211
- this.setMaxScrollerHeight = async () => {
212
- const { listContainerEl, open, referenceEl } = this;
213
- if (!listContainerEl || !open) {
214
- return;
215
- }
216
- await this.reposition(true);
217
- const maxScrollerHeight = this.getMaxScrollerHeight();
218
- listContainerEl.style.maxHeight = maxScrollerHeight > 0 ? `${maxScrollerHeight}px` : "";
219
- listContainerEl.style.minWidth = `${referenceEl.clientWidth}px`;
220
- await this.reposition(true);
221
- };
222
- this.calciteChipCloseHandler = (comboboxItem) => {
223
- this.open = false;
224
- const selection = this.items.find((item) => item === comboboxItem);
225
- if (selection) {
226
- this.toggleSelection(selection, false);
227
- }
228
- this.calciteComboboxChipClose.emit();
229
- };
230
- this.clickHandler = (event) => {
231
- const composedPath = event.composedPath();
232
- if (composedPath.some((node) => node.tagName === "CALCITE-CHIP")) {
233
- this.open = false;
234
- event.preventDefault();
235
- return;
236
- }
237
- if (composedPath.some((node) => { var _a; return (_a = node.classList) === null || _a === void 0 ? void 0 : _a.contains(CSS$3.button); })) {
238
- this.clearValue();
239
- event.preventDefault();
240
- return;
241
- }
242
- this.open = !this.open;
243
- this.ensureRecentSelectedItemIsActive();
244
- };
245
- this.setInactiveIfNotContained = (event) => {
246
- const composedPath = event.composedPath();
247
- if (!this.open || composedPath.includes(this.el) || composedPath.includes(this.referenceEl)) {
248
- return;
249
- }
250
- if (this.allowCustomValues && this.text.trim().length) {
251
- this.addCustomChip(this.text);
252
- }
253
- if (this.selectionMode === "single") {
254
- if (this.textInput) {
255
- this.textInput.value = "";
256
- }
257
- this.text = "";
258
- this.filterItems("");
259
- this.updateActiveItemIndex(-1);
260
- }
261
- this.open = false;
262
- };
263
- this.setFloatingEl = (el) => {
264
- this.floatingEl = el;
265
- connectFloatingUI(this, this.referenceEl, this.floatingEl);
266
- };
267
- this.setContainerEl = (el) => {
268
- this.resizeObserver.observe(el);
269
- this.listContainerEl = el;
270
- this.transitionEl = el;
271
- };
272
- this.setReferenceEl = (el) => {
273
- this.referenceEl = el;
274
- connectFloatingUI(this, this.referenceEl, this.floatingEl);
275
- };
276
- this.inputHandler = (event) => {
277
- const value = event.target.value;
278
- this.text = value;
279
- this.filterItems(value);
280
- if (value) {
281
- this.activeChipIndex = -1;
282
- }
283
- };
284
- this.filterItems = (() => {
285
- const find = (item, filteredData) => item &&
286
- filteredData.some(({ label, value }) => {
287
- if (isGroup(item)) {
288
- return value === item.label;
289
- }
290
- return (value === item.textLabel ||
291
- value === item.value ||
292
- label === item.textLabel ||
293
- label === item.value);
294
- });
295
- return debounce((text) => {
296
- const filteredData = filter(this.data, text);
297
- const items = this.getCombinedItems();
298
- items.forEach((item) => {
299
- const hidden = !find(item, filteredData);
300
- item.hidden = hidden;
301
- const [parent, grandparent] = item.ancestors;
302
- if (find(parent, filteredData) || find(grandparent, filteredData)) {
303
- item.hidden = false;
304
- }
305
- if (!hidden) {
306
- item.ancestors.forEach((ancestor) => (ancestor.hidden = false));
307
- }
308
- });
309
- this.filteredItems = this.getFilteredItems();
310
- this.calciteComboboxFilterChange.emit();
311
- }, 100);
312
- })();
313
- this.internalComboboxChangeEvent = () => {
314
- this.calciteComboboxChange.emit();
315
- };
316
- this.emitComboboxChange = debounce(this.internalComboboxChangeEvent, 0);
317
- this.updateItems = () => {
318
- this.items = this.getItems();
319
- this.groupItems = this.getGroupItems();
320
- this.data = this.getData();
321
- this.selectedItems = this.getSelectedItems();
322
- this.filteredItems = this.getFilteredItems();
323
- this.needsIcon = this.getNeedsIcon();
324
- if (!this.allowCustomValues) {
325
- this.setMaxScrollerHeight();
326
- }
327
- this.groupItems.forEach((groupItem, index, items) => {
328
- if (index === 0) {
329
- groupItem.afterEmptyGroup = false;
330
- }
331
- const nextGroupItem = items[index + 1];
332
- if (nextGroupItem) {
333
- nextGroupItem.afterEmptyGroup = groupItem.children.length === 0;
334
- }
335
- });
336
- };
337
- this.scrollToActiveItem = () => {
338
- const activeItem = this.filteredItems[this.activeItemIndex];
339
- if (!activeItem) {
340
- return;
341
- }
342
- const height = this.calculateSingleItemHeight(activeItem);
343
- const { offsetHeight, scrollTop } = this.listContainerEl;
344
- if (offsetHeight + scrollTop < activeItem.offsetTop + height) {
345
- this.listContainerEl.scrollTop = activeItem.offsetTop - offsetHeight + height;
346
- }
347
- else if (activeItem.offsetTop < scrollTop) {
348
- this.listContainerEl.scrollTop = activeItem.offsetTop;
349
- }
350
- };
351
- this.comboboxFocusHandler = () => {
352
- var _a;
353
- if (this.disabled) {
354
- return;
355
- }
356
- (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus();
357
- };
358
- this.comboboxBlurHandler = (event) => {
359
- this.setInactiveIfNotContained(event);
360
- };
361
- this.clearDisabled = false;
362
- this.open = false;
363
- this.disabled = false;
364
- this.form = undefined;
365
- this.label = undefined;
366
- this.placeholder = undefined;
367
- this.placeholderIcon = undefined;
368
- this.placeholderIconFlipRtl = false;
369
- this.maxItems = 0;
370
- this.name = undefined;
371
- this.allowCustomValues = undefined;
372
- this.overlayPositioning = "absolute";
373
- this.required = false;
374
- this.selectionMode = "multiple";
375
- this.scale = "m";
376
- this.value = null;
377
- this.flipPlacements = undefined;
378
- this.messages = undefined;
379
- this.messageOverrides = undefined;
380
- this.selectedItems = [];
381
- this.filteredItems = [];
382
- this.items = [];
383
- this.groupItems = [];
384
- this.needsIcon = undefined;
385
- this.activeItemIndex = -1;
386
- this.activeChipIndex = -1;
387
- this.activeDescendant = "";
388
- this.text = "";
389
- this.effectiveLocale = undefined;
390
- this.defaultMessages = undefined;
391
- }
392
- openHandler() {
393
- onToggleOpenCloseComponent(this);
394
- if (this.disabled) {
395
- this.open = false;
396
- return;
397
- }
398
- this.setMaxScrollerHeight();
399
- }
400
- handleDisabledChange(value) {
401
- if (!value) {
402
- this.open = false;
403
- }
404
- }
405
- maxItemsHandler() {
406
- this.setMaxScrollerHeight();
407
- }
408
- overlayPositioningHandler() {
409
- this.reposition(true);
410
- }
411
- valueHandler(value) {
412
- if (!this.internalValueChangeFlag) {
413
- const items = this.getItems();
414
- if (Array.isArray(value)) {
415
- items.forEach((item) => (item.selected = value.includes(item.value)));
416
- }
417
- else if (value) {
418
- items.forEach((item) => (item.selected = value === item.value));
419
- }
420
- else {
421
- items.forEach((item) => (item.selected = false));
422
- }
423
- this.updateItems();
424
- }
425
- }
426
- onMessagesChange() {
427
- /* wired up by t9n util */
428
- }
429
- flipPlacementsHandler() {
430
- this.setFilteredPlacements();
431
- this.reposition(true);
432
- }
433
- selectedItemsHandler() {
434
- this.internalValueChangeFlag = true;
435
- this.value = this.getValue();
436
- this.internalValueChangeFlag = false;
437
- }
438
- //--------------------------------------------------------------------------
439
- //
440
- // Event Listeners
441
- //
442
- //--------------------------------------------------------------------------
443
- documentClickHandler(event) {
444
- if (this.disabled || !isPrimaryPointerButton(event)) {
445
- return;
446
- }
447
- this.setInactiveIfNotContained(event);
448
- }
449
- calciteComboboxItemChangeHandler(event) {
450
- if (this.ignoreSelectedEventsFlag) {
451
- return;
452
- }
453
- const target = event.target;
454
- const newIndex = this.filteredItems.indexOf(target);
455
- this.updateActiveItemIndex(newIndex);
456
- this.toggleSelection(target, target.selected);
457
- }
458
- //--------------------------------------------------------------------------
459
- //
460
- // Public Methods
461
- //
462
- //--------------------------------------------------------------------------
463
- /**
464
- * Updates the position of the component.
465
- *
466
- * @param delayed
467
- */
468
- async reposition(delayed = false) {
469
- const { floatingEl, referenceEl, placement, overlayPositioning, filteredFlipPlacements } = this;
470
- return reposition(this, {
471
- floatingEl,
472
- referenceEl,
473
- overlayPositioning,
474
- placement,
475
- flipPlacements: filteredFlipPlacements,
476
- type: "menu",
477
- }, delayed);
478
- }
479
- /** Sets focus on the component. */
480
- async setFocus() {
481
- var _a;
482
- await componentFocusable(this);
483
- (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus();
484
- this.activeChipIndex = -1;
485
- this.activeItemIndex = -1;
486
- }
487
- // --------------------------------------------------------------------------
488
- //
489
- // Lifecycle
490
- //
491
- // --------------------------------------------------------------------------
492
- connectedCallback() {
493
- var _a;
494
- connectInteractive(this);
495
- connectLocalized(this);
496
- connectMessages(this);
497
- this.internalValueChangeFlag = true;
498
- this.value = this.getValue();
499
- this.internalValueChangeFlag = false;
500
- (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
501
- connectLabel(this);
502
- connectForm(this);
503
- this.setFilteredPlacements();
504
- this.reposition(true);
505
- if (this.open) {
506
- this.openHandler();
507
- onToggleOpenCloseComponent(this);
508
- }
509
- }
510
- async componentWillLoad() {
511
- setUpLoadableComponent(this);
512
- this.updateItems();
513
- await setUpMessages(this);
514
- }
515
- componentDidLoad() {
516
- afterConnectDefaultValueSet(this, this.getValue());
517
- this.reposition(true);
518
- setComponentLoaded(this);
519
- }
520
- componentDidRender() {
521
- if (this.el.offsetHeight !== this.inputHeight) {
522
- this.reposition(true);
523
- this.inputHeight = this.el.offsetHeight;
524
- }
525
- updateHostInteraction(this);
526
- }
527
- disconnectedCallback() {
528
- var _a, _b;
529
- (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
530
- (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
531
- disconnectInteractive(this);
532
- disconnectLabel(this);
533
- disconnectForm(this);
534
- disconnectFloatingUI(this, this.referenceEl, this.floatingEl);
535
- disconnectLocalized(this);
536
- disconnectMessages(this);
537
- }
538
- /** when search text is cleared, reset active to */
539
- textHandler() {
540
- this.updateActiveItemIndex(-1);
541
- }
542
- effectiveLocaleChange() {
543
- updateMessages(this, this.effectiveLocale);
544
- }
545
- // --------------------------------------------------------------------------
546
- //
547
- // Private Methods
548
- //
549
- // --------------------------------------------------------------------------
550
- clearValue() {
551
- this.ignoreSelectedEventsFlag = true;
552
- this.items.forEach((el) => (el.selected = false));
553
- this.ignoreSelectedEventsFlag = false;
554
- this.selectedItems = [];
555
- this.emitComboboxChange();
556
- this.open = false;
557
- this.updateActiveItemIndex(-1);
558
- this.resetText();
559
- this.filterItems("");
560
- this.setFocus();
561
- }
562
- comboboxInViewport() {
563
- const bounding = this.el.getBoundingClientRect();
564
- return (bounding.top >= 0 &&
565
- bounding.left >= 0 &&
566
- bounding.right <= (window.innerWidth || document.documentElement.clientWidth) &&
567
- bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight));
568
- }
569
- onBeforeOpen() {
570
- this.scrollToActiveItem();
571
- this.calciteComboboxBeforeOpen.emit();
572
- }
573
- onOpen() {
574
- this.calciteComboboxOpen.emit();
575
- }
576
- onBeforeClose() {
577
- this.calciteComboboxBeforeClose.emit();
578
- }
579
- onClose() {
580
- this.calciteComboboxClose.emit();
581
- }
582
- ensureRecentSelectedItemIsActive() {
583
- const { selectedItems } = this;
584
- const targetIndex = selectedItems.length === 0 ? 0 : this.items.indexOf(selectedItems[selectedItems.length - 1]);
585
- this.updateActiveItemIndex(targetIndex);
586
- }
587
- getMaxScrollerHeight() {
588
- const items = this.getCombinedItems().filter((item) => !item.hidden);
589
- const { maxItems } = this;
590
- let itemsToProcess = 0;
591
- let maxScrollerHeight = 0;
592
- if (items.length > maxItems) {
593
- items.forEach((item) => {
594
- if (itemsToProcess < maxItems && maxItems > 0) {
595
- const height = this.calculateSingleItemHeight(item);
596
- if (height > 0) {
597
- maxScrollerHeight += height;
598
- itemsToProcess++;
599
- }
600
- }
601
- });
602
- }
603
- return maxScrollerHeight;
604
- }
605
- calculateSingleItemHeight(item) {
606
- if (!item) {
607
- return;
608
- }
609
- let height = item.offsetHeight;
610
- // if item has children items, don't count their height twice
611
- const children = Array.from(item.querySelectorAll(ComboboxChildSelector));
612
- children
613
- .map((child) => child === null || child === void 0 ? void 0 : child.offsetHeight)
614
- .forEach((offsetHeight) => {
615
- height -= offsetHeight;
616
- });
617
- return height;
618
- }
619
- getCombinedItems() {
620
- return [...this.groupItems, ...this.items];
621
- }
622
- toggleSelection(item, value = !item.selected) {
623
- if (!item) {
624
- return;
625
- }
626
- if (this.isMulti()) {
627
- item.selected = value;
628
- this.updateAncestors(item);
629
- this.selectedItems = this.getSelectedItems();
630
- this.emitComboboxChange();
631
- this.resetText();
632
- this.filterItems("");
633
- }
634
- else {
635
- this.ignoreSelectedEventsFlag = true;
636
- this.items.forEach((el) => (el.selected = el === item ? value : false));
637
- this.ignoreSelectedEventsFlag = false;
638
- this.selectedItems = this.getSelectedItems();
639
- this.emitComboboxChange();
640
- if (this.textInput) {
641
- this.textInput.value = item.textLabel;
642
- }
643
- this.open = false;
644
- this.updateActiveItemIndex(-1);
645
- this.resetText();
646
- this.filterItems("");
647
- }
648
- }
649
- updateAncestors(item) {
650
- if (this.selectionMode !== "ancestors") {
651
- return;
652
- }
653
- const ancestors = getItemAncestors(item);
654
- const children = getItemChildren(item);
655
- if (item.selected) {
656
- ancestors.forEach((el) => {
657
- el.selected = true;
658
- });
659
- }
660
- else {
661
- children.forEach((el) => (el.selected = false));
662
- [...ancestors].forEach((el) => {
663
- if (!hasActiveChildren(el)) {
664
- el.selected = false;
665
- }
666
- });
667
- }
668
- }
669
- getFilteredItems() {
670
- return this.items.filter((item) => !item.hidden);
671
- }
672
- getSelectedItems() {
673
- if (!this.isMulti()) {
674
- const match = this.items.find(({ selected }) => selected);
675
- return match ? [match] : [];
676
- }
677
- return (this.items
678
- .filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item)))
679
- /** Preserve order of entered tags */
680
- .sort((a, b) => {
681
- const aIdx = this.selectedItems.indexOf(a);
682
- const bIdx = this.selectedItems.indexOf(b);
683
- if (aIdx > -1 && bIdx > -1) {
684
- return aIdx - bIdx;
685
- }
686
- return bIdx - aIdx;
687
- }));
688
- }
689
- getData() {
690
- return this.items.map((item) => ({
691
- filterDisabled: item.filterDisabled,
692
- value: item.value,
693
- label: item.textLabel,
694
- }));
695
- }
696
- getNeedsIcon() {
697
- return this.selectionMode === "single" && this.items.some((item) => item.icon);
698
- }
699
- resetText() {
700
- if (this.textInput) {
701
- this.textInput.value = "";
702
- }
703
- this.text = "";
704
- }
705
- getItems() {
706
- const items = Array.from(this.el.querySelectorAll(ComboboxItem$1));
707
- return items.filter((item) => !item.disabled);
708
- }
709
- getGroupItems() {
710
- return Array.from(this.el.querySelectorAll(ComboboxItemGroup));
711
- }
712
- addCustomChip(value, focus) {
713
- const existingItem = this.items.find((el) => el.textLabel === value);
714
- if (existingItem) {
715
- this.toggleSelection(existingItem, true);
716
- }
717
- else {
718
- if (!this.isMulti()) {
719
- this.toggleSelection(this.selectedItems[this.selectedItems.length - 1], false);
720
- }
721
- const item = document.createElement(ComboboxItem$1);
722
- item.value = value;
723
- item.textLabel = value;
724
- item.selected = true;
725
- this.el.appendChild(item);
726
- this.resetText();
727
- if (focus) {
728
- this.setFocus();
729
- }
730
- this.updateItems();
731
- this.filterItems("");
732
- this.emitComboboxChange();
733
- }
734
- }
735
- removeActiveChip() {
736
- this.toggleSelection(this.selectedItems[this.activeChipIndex], false);
737
- this.setFocus();
738
- }
739
- removeLastChip() {
740
- this.toggleSelection(this.selectedItems[this.selectedItems.length - 1], false);
741
- this.setFocus();
742
- }
743
- previousChip() {
744
- if (this.text) {
745
- return;
746
- }
747
- const length = this.selectedItems.length - 1;
748
- const active = this.activeChipIndex;
749
- this.activeChipIndex = active === -1 ? length : Math.max(active - 1, 0);
750
- this.updateActiveItemIndex(-1);
751
- this.focusChip();
752
- }
753
- nextChip() {
754
- if (this.text || this.activeChipIndex === -1) {
755
- return;
756
- }
757
- const last = this.selectedItems.length - 1;
758
- const newIndex = this.activeChipIndex + 1;
759
- if (newIndex > last) {
760
- this.activeChipIndex = -1;
761
- this.setFocus();
762
- }
763
- else {
764
- this.activeChipIndex = newIndex;
765
- this.focusChip();
766
- }
767
- this.updateActiveItemIndex(-1);
768
- }
769
- focusChip() {
770
- var _a;
771
- const guid = (_a = this.selectedItems[this.activeChipIndex]) === null || _a === void 0 ? void 0 : _a.guid;
772
- const chip = guid
773
- ? this.referenceEl.querySelector(`#${chipUidPrefix}${guid}`)
774
- : null;
775
- chip === null || chip === void 0 ? void 0 : chip.setFocus();
776
- }
777
- shiftActiveItemIndex(delta) {
778
- const { length } = this.filteredItems;
779
- const newIndex = (this.activeItemIndex + length + delta) % length;
780
- this.updateActiveItemIndex(newIndex);
781
- this.scrollToActiveItem();
782
- }
783
- updateActiveItemIndex(index) {
784
- this.activeItemIndex = index;
785
- let activeDescendant = null;
786
- this.filteredItems.forEach((el, i) => {
787
- if (i === index) {
788
- el.active = true;
789
- activeDescendant = `${itemUidPrefix}${el.guid}`;
790
- }
791
- else {
792
- el.active = false;
793
- }
794
- });
795
- this.activeDescendant = activeDescendant;
796
- if (this.activeItemIndex > -1) {
797
- this.activeChipIndex = -1;
798
- }
799
- }
800
- isMulti() {
801
- return this.selectionMode !== "single";
802
- }
803
- //--------------------------------------------------------------------------
804
- //
805
- // Render Methods
806
- //
807
- //--------------------------------------------------------------------------
808
- renderChips() {
809
- const { activeChipIndex, scale, selectionMode, messages } = this;
810
- return this.selectedItems.map((item, i) => {
811
- const chipClasses = {
812
- chip: true,
813
- "chip--active": activeChipIndex === i,
814
- };
815
- const ancestors = [...getItemAncestors(item)].reverse();
816
- const pathLabel = [...ancestors, item].map((el) => el.textLabel);
817
- const label = selectionMode !== "ancestors" ? item.textLabel : pathLabel.join(" / ");
818
- return (h("calcite-chip", { class: chipClasses, closable: true, icon: item.icon, iconFlipRtl: item.iconFlipRtl, id: item.guid ? `${chipUidPrefix}${item.guid}` : null, key: item.textLabel, messageOverrides: { dismissLabel: messages.removeTag }, onCalciteChipClose: () => this.calciteChipCloseHandler(item), scale: scale, title: label, value: item.value }, label));
819
- });
820
- }
821
- renderInput() {
822
- const { guid, disabled, placeholder, selectionMode, selectedItems, open } = this;
823
- const single = selectionMode === "single";
824
- const selectedItem = selectedItems[0];
825
- const showLabel = !open && single && !!selectedItem;
826
- return (h("span", { class: {
827
- "input-wrap": true,
828
- "input-wrap--single": single,
829
- } }, showLabel && (h("span", { class: {
830
- label: true,
831
- "label--icon": !!(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon),
832
- }, key: "label" }, selectedItem.textLabel)), h("input", { "aria-activedescendant": this.activeDescendant, "aria-autocomplete": "list", "aria-controls": `${listboxUidPrefix}${guid}`, "aria-label": getLabelText(this), class: {
833
- input: true,
834
- "input--single": true,
835
- "input--transparent": this.activeChipIndex > -1,
836
- "input--hidden": showLabel,
837
- "input--icon": !!this.placeholderIcon,
838
- }, disabled: disabled, id: `${inputUidPrefix}${guid}`, key: "input", onBlur: this.comboboxBlurHandler, onFocus: this.comboboxFocusHandler, onInput: this.inputHandler, placeholder: placeholder, type: "text",
839
- // eslint-disable-next-line react/jsx-sort-props
840
- ref: (el) => (this.textInput = el) })));
841
- }
842
- renderListBoxOptions() {
843
- return this.filteredItems.map((item) => (h("li", { "aria-selected": toAriaBoolean(item.selected), id: item.guid ? `${itemUidPrefix}${item.guid}` : null, role: "option", tabindex: "-1" }, item.textLabel)));
844
- }
845
- renderFloatingUIContainer() {
846
- const { setFloatingEl, setContainerEl, open } = this;
847
- const classes = {
848
- [CSS$4.listContainer]: true,
849
- [FloatingCSS.animation]: true,
850
- [FloatingCSS.animationActive]: open,
851
- };
852
- return (h("div", { "aria-hidden": "true", class: {
853
- "floating-ui-container": true,
854
- "floating-ui-container--active": open,
855
- },
856
- // eslint-disable-next-line react/jsx-sort-props
857
- ref: setFloatingEl }, h("div", { class: classes,
858
- // eslint-disable-next-line react/jsx-sort-props
859
- ref: setContainerEl }, h("ul", { class: { list: true, "list--hide": !open } }, h("slot", null)))));
860
- }
861
- renderIconStart() {
862
- const { selectedItems, placeholderIcon, selectionMode, placeholderIconFlipRtl } = this;
863
- const selectedItem = selectedItems[0];
864
- const selectedIcon = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon;
865
- const singleSelectionMode = selectionMode === "single";
866
- const iconAtStart = !this.open && selectedItem
867
- ? !!selectedIcon && singleSelectionMode
868
- : !!this.placeholderIcon && (!selectedItem || singleSelectionMode);
869
- return (iconAtStart && (h("span", { class: "icon-start" }, h("calcite-icon", { class: "selected-icon", flipRtl: this.open && selectedItem ? selectedItem.iconFlipRtl : placeholderIconFlipRtl, icon: !this.open && selectedItem ? selectedIcon : placeholderIcon, scale: "s" }))));
870
- }
871
- renderIconEnd() {
872
- const { open } = this;
873
- return (h("span", { class: "icon-end" }, h("calcite-icon", { icon: open ? "chevron-up" : "chevron-down", scale: "s" })));
874
- }
875
- render() {
876
- var _a;
877
- const { guid, label, open } = this;
878
- const single = this.selectionMode === "single";
879
- const isClearable = !this.clearDisabled && ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) > 0;
880
- return (h(Host, { onClick: this.comboboxFocusHandler }, h("div", { "aria-autocomplete": "list", "aria-controls": `${listboxUidPrefix}${guid}`, "aria-expanded": toAriaBoolean(open), "aria-haspopup": "listbox", "aria-label": getLabelText(this), "aria-live": "polite", "aria-owns": `${listboxUidPrefix}${guid}`, class: {
881
- wrapper: true,
882
- "wrapper--single": single || !this.selectedItems.length,
883
- "wrapper--active": open,
884
- }, onClick: this.clickHandler, onKeyDown: this.keyDownHandler, role: "combobox",
885
- // eslint-disable-next-line react/jsx-sort-props
886
- ref: this.setReferenceEl }, h("div", { class: "grid-input" }, this.renderIconStart(), !single && this.renderChips(), h("label", { class: "screen-readers-only", htmlFor: `${inputUidPrefix}${guid}`, id: `${labelUidPrefix}${guid}` }, label), this.renderInput()), isClearable ? (h(XButton, { disabled: this.disabled, key: "close-button", label: this.messages.clear, scale: this.scale })) : null, this.renderIconEnd()), h("ul", { "aria-labelledby": `${labelUidPrefix}${guid}`, "aria-multiselectable": "true", class: "screen-readers-only", id: `${listboxUidPrefix}${guid}`, role: "listbox", tabIndex: -1 }, this.renderListBoxOptions()), this.renderFloatingUIContainer(), h(HiddenFormInputSlot, { component: this })));
887
- }
888
- static get assetsDirs() { return ["assets"]; }
889
- get el() { return getElement(this); }
890
- static get watchers() { return {
891
- "open": ["openHandler"],
892
- "disabled": ["handleDisabledChange"],
893
- "maxItems": ["maxItemsHandler"],
894
- "overlayPositioning": ["overlayPositioningHandler"],
895
- "value": ["valueHandler"],
896
- "messageOverrides": ["onMessagesChange"],
897
- "flipPlacements": ["flipPlacementsHandler"],
898
- "selectedItems": ["selectedItemsHandler"],
899
- "text": ["textHandler"],
900
- "effectiveLocale": ["effectiveLocaleChange"]
901
- }; }
902
- };
45
+ const isGroup = (el) => el.tagName === ComboboxItemGroup;
46
+ const itemUidPrefix = "combobox-item-";
47
+ const chipUidPrefix = "combobox-chip-";
48
+ const labelUidPrefix = "combobox-label-";
49
+ const listboxUidPrefix = "combobox-listbox-";
50
+ const inputUidPrefix = "combobox-input-";
51
+ const Combobox = class {
52
+ constructor(hostRef) {
53
+ registerInstance(this, hostRef);
54
+ this.calciteComboboxChange = createEvent(this, "calciteComboboxChange", 6);
55
+ this.calciteComboboxFilterChange = createEvent(this, "calciteComboboxFilterChange", 6);
56
+ this.calciteComboboxChipClose = createEvent(this, "calciteComboboxChipClose", 6);
57
+ this.calciteComboboxBeforeClose = createEvent(this, "calciteComboboxBeforeClose", 6);
58
+ this.calciteComboboxClose = createEvent(this, "calciteComboboxClose", 6);
59
+ this.calciteComboboxBeforeOpen = createEvent(this, "calciteComboboxBeforeOpen", 6);
60
+ this.calciteComboboxOpen = createEvent(this, "calciteComboboxOpen", 6);
61
+ //--------------------------------------------------------------------------
62
+ //
63
+ // Private State/Props
64
+ //
65
+ //--------------------------------------------------------------------------
66
+ this.placement = defaultMenuPlacement;
67
+ this.internalValueChangeFlag = false;
68
+ this.textInput = null;
69
+ this.mutationObserver = createObserver("mutation", () => this.updateItems());
70
+ this.resizeObserver = createObserver("resize", () => this.setMaxScrollerHeight());
71
+ this.guid = guid();
72
+ this.inputHeight = 0;
73
+ this.ignoreSelectedEventsFlag = false;
74
+ this.openTransitionProp = "opacity";
75
+ this.setFilteredPlacements = () => {
76
+ const { el, flipPlacements } = this;
77
+ this.filteredFlipPlacements = flipPlacements
78
+ ? filterComputedPlacements(flipPlacements, el)
79
+ : null;
80
+ };
81
+ this.getValue = () => {
82
+ const items = this.selectedItems.map((item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.value) === null || _a === void 0 ? void 0 : _a.toString(); });
83
+ return (items === null || items === void 0 ? void 0 : items.length) ? (items.length > 1 ? items : items[0]) : "";
84
+ };
85
+ this.onLabelClick = () => {
86
+ this.setFocus();
87
+ };
88
+ this.keyDownHandler = (event) => {
89
+ const { key } = event;
90
+ switch (key) {
91
+ case "Tab":
92
+ this.activeChipIndex = -1;
93
+ this.activeItemIndex = -1;
94
+ if (this.allowCustomValues && this.text) {
95
+ this.addCustomChip(this.text, true);
96
+ event.preventDefault();
97
+ }
98
+ else if (this.open) {
99
+ this.open = false;
100
+ event.preventDefault();
101
+ }
102
+ break;
103
+ case "ArrowLeft":
104
+ this.previousChip();
105
+ event.preventDefault();
106
+ break;
107
+ case "ArrowRight":
108
+ this.nextChip();
109
+ event.preventDefault();
110
+ break;
111
+ case "ArrowUp":
112
+ event.preventDefault();
113
+ if (this.open) {
114
+ this.shiftActiveItemIndex(-1);
115
+ }
116
+ if (!this.comboboxInViewport()) {
117
+ this.el.scrollIntoView();
118
+ }
119
+ break;
120
+ case "ArrowDown":
121
+ event.preventDefault();
122
+ if (this.open) {
123
+ this.shiftActiveItemIndex(1);
124
+ }
125
+ else {
126
+ this.open = true;
127
+ this.ensureRecentSelectedItemIsActive();
128
+ }
129
+ if (!this.comboboxInViewport()) {
130
+ this.el.scrollIntoView();
131
+ }
132
+ break;
133
+ case " ":
134
+ if (!this.textInput.value) {
135
+ if (!this.open) {
136
+ this.open = true;
137
+ this.shiftActiveItemIndex(1);
138
+ }
139
+ event.preventDefault();
140
+ }
141
+ break;
142
+ case "Home":
143
+ if (!this.open) {
144
+ return;
145
+ }
146
+ event.preventDefault();
147
+ this.updateActiveItemIndex(0);
148
+ this.scrollToActiveItem();
149
+ if (!this.comboboxInViewport()) {
150
+ this.el.scrollIntoView();
151
+ }
152
+ break;
153
+ case "End":
154
+ if (!this.open) {
155
+ return;
156
+ }
157
+ event.preventDefault();
158
+ this.updateActiveItemIndex(this.filteredItems.length - 1);
159
+ this.scrollToActiveItem();
160
+ if (!this.comboboxInViewport()) {
161
+ this.el.scrollIntoView();
162
+ }
163
+ break;
164
+ case "Escape":
165
+ if (!this.clearDisabled && !this.open) {
166
+ this.clearValue();
167
+ }
168
+ this.open = false;
169
+ event.preventDefault();
170
+ break;
171
+ case "Enter":
172
+ if (this.activeItemIndex > -1) {
173
+ this.toggleSelection(this.filteredItems[this.activeItemIndex]);
174
+ event.preventDefault();
175
+ }
176
+ else if (this.activeChipIndex > -1) {
177
+ this.removeActiveChip();
178
+ event.preventDefault();
179
+ }
180
+ else if (this.allowCustomValues && this.text) {
181
+ this.addCustomChip(this.text, true);
182
+ event.preventDefault();
183
+ }
184
+ else if (!event.defaultPrevented) {
185
+ if (submitForm(this)) {
186
+ event.preventDefault();
187
+ }
188
+ }
189
+ break;
190
+ case "Delete":
191
+ case "Backspace":
192
+ if (this.activeChipIndex > -1) {
193
+ event.preventDefault();
194
+ this.removeActiveChip();
195
+ }
196
+ else if (!this.text && this.isMulti()) {
197
+ event.preventDefault();
198
+ this.removeLastChip();
199
+ }
200
+ break;
201
+ }
202
+ };
203
+ this.toggleCloseEnd = () => {
204
+ this.open = false;
205
+ this.el.removeEventListener("calciteComboboxClose", this.toggleCloseEnd);
206
+ };
207
+ this.toggleOpenEnd = () => {
208
+ this.open = false;
209
+ this.el.removeEventListener("calciteComboboxOpen", this.toggleOpenEnd);
210
+ };
211
+ this.setMaxScrollerHeight = async () => {
212
+ const { listContainerEl, open, referenceEl } = this;
213
+ if (!listContainerEl || !open) {
214
+ return;
215
+ }
216
+ await this.reposition(true);
217
+ const maxScrollerHeight = this.getMaxScrollerHeight();
218
+ listContainerEl.style.maxHeight = maxScrollerHeight > 0 ? `${maxScrollerHeight}px` : "";
219
+ listContainerEl.style.minWidth = `${referenceEl.clientWidth}px`;
220
+ await this.reposition(true);
221
+ };
222
+ this.calciteChipCloseHandler = (comboboxItem) => {
223
+ this.open = false;
224
+ const selection = this.items.find((item) => item === comboboxItem);
225
+ if (selection) {
226
+ this.toggleSelection(selection, false);
227
+ }
228
+ this.calciteComboboxChipClose.emit();
229
+ };
230
+ this.clickHandler = (event) => {
231
+ const composedPath = event.composedPath();
232
+ if (composedPath.some((node) => node.tagName === "CALCITE-CHIP")) {
233
+ this.open = false;
234
+ event.preventDefault();
235
+ return;
236
+ }
237
+ if (composedPath.some((node) => { var _a; return (_a = node.classList) === null || _a === void 0 ? void 0 : _a.contains(CSS$3.button); })) {
238
+ this.clearValue();
239
+ event.preventDefault();
240
+ return;
241
+ }
242
+ this.open = !this.open;
243
+ this.ensureRecentSelectedItemIsActive();
244
+ };
245
+ this.setInactiveIfNotContained = (event) => {
246
+ const composedPath = event.composedPath();
247
+ if (!this.open || composedPath.includes(this.el) || composedPath.includes(this.referenceEl)) {
248
+ return;
249
+ }
250
+ if (this.allowCustomValues && this.text.trim().length) {
251
+ this.addCustomChip(this.text);
252
+ }
253
+ if (this.selectionMode === "single") {
254
+ if (this.textInput) {
255
+ this.textInput.value = "";
256
+ }
257
+ this.text = "";
258
+ this.filterItems("");
259
+ this.updateActiveItemIndex(-1);
260
+ }
261
+ this.open = false;
262
+ };
263
+ this.setFloatingEl = (el) => {
264
+ this.floatingEl = el;
265
+ connectFloatingUI(this, this.referenceEl, this.floatingEl);
266
+ };
267
+ this.setContainerEl = (el) => {
268
+ this.resizeObserver.observe(el);
269
+ this.listContainerEl = el;
270
+ this.transitionEl = el;
271
+ };
272
+ this.setReferenceEl = (el) => {
273
+ this.referenceEl = el;
274
+ connectFloatingUI(this, this.referenceEl, this.floatingEl);
275
+ };
276
+ this.inputHandler = (event) => {
277
+ const value = event.target.value;
278
+ this.text = value;
279
+ this.filterItems(value);
280
+ if (value) {
281
+ this.activeChipIndex = -1;
282
+ }
283
+ };
284
+ this.filterItems = (() => {
285
+ const find = (item, filteredData) => item &&
286
+ filteredData.some(({ label, value }) => {
287
+ if (isGroup(item)) {
288
+ return value === item.label;
289
+ }
290
+ return (value === item.textLabel ||
291
+ value === item.value ||
292
+ label === item.textLabel ||
293
+ label === item.value);
294
+ });
295
+ return debounce((text) => {
296
+ const filteredData = filter(this.data, text);
297
+ const items = this.getCombinedItems();
298
+ items.forEach((item) => {
299
+ const hidden = !find(item, filteredData);
300
+ item.hidden = hidden;
301
+ const [parent, grandparent] = item.ancestors;
302
+ if (find(parent, filteredData) || find(grandparent, filteredData)) {
303
+ item.hidden = false;
304
+ }
305
+ if (!hidden) {
306
+ item.ancestors.forEach((ancestor) => (ancestor.hidden = false));
307
+ }
308
+ });
309
+ this.filteredItems = this.getFilteredItems();
310
+ this.calciteComboboxFilterChange.emit();
311
+ }, 100);
312
+ })();
313
+ this.internalComboboxChangeEvent = () => {
314
+ this.calciteComboboxChange.emit();
315
+ };
316
+ this.emitComboboxChange = debounce(this.internalComboboxChangeEvent, 0);
317
+ this.updateItems = () => {
318
+ this.items = this.getItems();
319
+ this.groupItems = this.getGroupItems();
320
+ this.data = this.getData();
321
+ this.selectedItems = this.getSelectedItems();
322
+ this.filteredItems = this.getFilteredItems();
323
+ this.needsIcon = this.getNeedsIcon();
324
+ if (!this.allowCustomValues) {
325
+ this.setMaxScrollerHeight();
326
+ }
327
+ this.groupItems.forEach((groupItem, index, items) => {
328
+ if (index === 0) {
329
+ groupItem.afterEmptyGroup = false;
330
+ }
331
+ const nextGroupItem = items[index + 1];
332
+ if (nextGroupItem) {
333
+ nextGroupItem.afterEmptyGroup = groupItem.children.length === 0;
334
+ }
335
+ });
336
+ };
337
+ this.scrollToActiveItem = () => {
338
+ const activeItem = this.filteredItems[this.activeItemIndex];
339
+ if (!activeItem) {
340
+ return;
341
+ }
342
+ const height = this.calculateSingleItemHeight(activeItem);
343
+ const { offsetHeight, scrollTop } = this.listContainerEl;
344
+ if (offsetHeight + scrollTop < activeItem.offsetTop + height) {
345
+ this.listContainerEl.scrollTop = activeItem.offsetTop - offsetHeight + height;
346
+ }
347
+ else if (activeItem.offsetTop < scrollTop) {
348
+ this.listContainerEl.scrollTop = activeItem.offsetTop;
349
+ }
350
+ };
351
+ this.comboboxFocusHandler = () => {
352
+ var _a;
353
+ if (this.disabled) {
354
+ return;
355
+ }
356
+ (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus();
357
+ };
358
+ this.comboboxBlurHandler = (event) => {
359
+ this.setInactiveIfNotContained(event);
360
+ };
361
+ this.clearDisabled = false;
362
+ this.open = false;
363
+ this.disabled = false;
364
+ this.form = undefined;
365
+ this.label = undefined;
366
+ this.placeholder = undefined;
367
+ this.placeholderIcon = undefined;
368
+ this.placeholderIconFlipRtl = false;
369
+ this.maxItems = 0;
370
+ this.name = undefined;
371
+ this.allowCustomValues = undefined;
372
+ this.overlayPositioning = "absolute";
373
+ this.required = false;
374
+ this.selectionMode = "multiple";
375
+ this.scale = "m";
376
+ this.value = null;
377
+ this.flipPlacements = undefined;
378
+ this.messages = undefined;
379
+ this.messageOverrides = undefined;
380
+ this.selectedItems = [];
381
+ this.filteredItems = [];
382
+ this.items = [];
383
+ this.groupItems = [];
384
+ this.needsIcon = undefined;
385
+ this.activeItemIndex = -1;
386
+ this.activeChipIndex = -1;
387
+ this.activeDescendant = "";
388
+ this.text = "";
389
+ this.effectiveLocale = undefined;
390
+ this.defaultMessages = undefined;
391
+ }
392
+ openHandler() {
393
+ onToggleOpenCloseComponent(this);
394
+ if (this.disabled) {
395
+ this.open = false;
396
+ return;
397
+ }
398
+ this.setMaxScrollerHeight();
399
+ }
400
+ handleDisabledChange(value) {
401
+ if (!value) {
402
+ this.open = false;
403
+ }
404
+ }
405
+ maxItemsHandler() {
406
+ this.setMaxScrollerHeight();
407
+ }
408
+ overlayPositioningHandler() {
409
+ this.reposition(true);
410
+ }
411
+ valueHandler(value) {
412
+ if (!this.internalValueChangeFlag) {
413
+ const items = this.getItems();
414
+ if (Array.isArray(value)) {
415
+ items.forEach((item) => (item.selected = value.includes(item.value)));
416
+ }
417
+ else if (value) {
418
+ items.forEach((item) => (item.selected = value === item.value));
419
+ }
420
+ else {
421
+ items.forEach((item) => (item.selected = false));
422
+ }
423
+ this.updateItems();
424
+ }
425
+ }
426
+ onMessagesChange() {
427
+ /* wired up by t9n util */
428
+ }
429
+ flipPlacementsHandler() {
430
+ this.setFilteredPlacements();
431
+ this.reposition(true);
432
+ }
433
+ selectedItemsHandler() {
434
+ this.internalValueChangeFlag = true;
435
+ this.value = this.getValue();
436
+ this.internalValueChangeFlag = false;
437
+ }
438
+ //--------------------------------------------------------------------------
439
+ //
440
+ // Event Listeners
441
+ //
442
+ //--------------------------------------------------------------------------
443
+ documentClickHandler(event) {
444
+ if (this.disabled || !isPrimaryPointerButton(event)) {
445
+ return;
446
+ }
447
+ this.setInactiveIfNotContained(event);
448
+ }
449
+ calciteComboboxItemChangeHandler(event) {
450
+ if (this.ignoreSelectedEventsFlag) {
451
+ return;
452
+ }
453
+ const target = event.target;
454
+ const newIndex = this.filteredItems.indexOf(target);
455
+ this.updateActiveItemIndex(newIndex);
456
+ this.toggleSelection(target, target.selected);
457
+ }
458
+ //--------------------------------------------------------------------------
459
+ //
460
+ // Public Methods
461
+ //
462
+ //--------------------------------------------------------------------------
463
+ /**
464
+ * Updates the position of the component.
465
+ *
466
+ * @param delayed
467
+ */
468
+ async reposition(delayed = false) {
469
+ const { floatingEl, referenceEl, placement, overlayPositioning, filteredFlipPlacements } = this;
470
+ return reposition(this, {
471
+ floatingEl,
472
+ referenceEl,
473
+ overlayPositioning,
474
+ placement,
475
+ flipPlacements: filteredFlipPlacements,
476
+ type: "menu",
477
+ }, delayed);
478
+ }
479
+ /** Sets focus on the component. */
480
+ async setFocus() {
481
+ var _a;
482
+ await componentFocusable(this);
483
+ (_a = this.textInput) === null || _a === void 0 ? void 0 : _a.focus();
484
+ this.activeChipIndex = -1;
485
+ this.activeItemIndex = -1;
486
+ }
487
+ // --------------------------------------------------------------------------
488
+ //
489
+ // Lifecycle
490
+ //
491
+ // --------------------------------------------------------------------------
492
+ connectedCallback() {
493
+ var _a;
494
+ connectInteractive(this);
495
+ connectLocalized(this);
496
+ connectMessages(this);
497
+ this.internalValueChangeFlag = true;
498
+ this.value = this.getValue();
499
+ this.internalValueChangeFlag = false;
500
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
501
+ connectLabel(this);
502
+ connectForm(this);
503
+ this.setFilteredPlacements();
504
+ this.reposition(true);
505
+ if (this.open) {
506
+ this.openHandler();
507
+ onToggleOpenCloseComponent(this);
508
+ }
509
+ }
510
+ async componentWillLoad() {
511
+ setUpLoadableComponent(this);
512
+ this.updateItems();
513
+ await setUpMessages(this);
514
+ }
515
+ componentDidLoad() {
516
+ afterConnectDefaultValueSet(this, this.getValue());
517
+ this.reposition(true);
518
+ setComponentLoaded(this);
519
+ }
520
+ componentDidRender() {
521
+ if (this.el.offsetHeight !== this.inputHeight) {
522
+ this.reposition(true);
523
+ this.inputHeight = this.el.offsetHeight;
524
+ }
525
+ updateHostInteraction(this);
526
+ }
527
+ disconnectedCallback() {
528
+ var _a, _b;
529
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
530
+ (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
531
+ disconnectInteractive(this);
532
+ disconnectLabel(this);
533
+ disconnectForm(this);
534
+ disconnectFloatingUI(this, this.referenceEl, this.floatingEl);
535
+ disconnectLocalized(this);
536
+ disconnectMessages(this);
537
+ }
538
+ /** when search text is cleared, reset active to */
539
+ textHandler() {
540
+ this.updateActiveItemIndex(-1);
541
+ }
542
+ effectiveLocaleChange() {
543
+ updateMessages(this, this.effectiveLocale);
544
+ }
545
+ // --------------------------------------------------------------------------
546
+ //
547
+ // Private Methods
548
+ //
549
+ // --------------------------------------------------------------------------
550
+ clearValue() {
551
+ this.ignoreSelectedEventsFlag = true;
552
+ this.items.forEach((el) => (el.selected = false));
553
+ this.ignoreSelectedEventsFlag = false;
554
+ this.selectedItems = [];
555
+ this.emitComboboxChange();
556
+ this.open = false;
557
+ this.updateActiveItemIndex(-1);
558
+ this.resetText();
559
+ this.filterItems("");
560
+ this.setFocus();
561
+ }
562
+ comboboxInViewport() {
563
+ const bounding = this.el.getBoundingClientRect();
564
+ return (bounding.top >= 0 &&
565
+ bounding.left >= 0 &&
566
+ bounding.right <= (window.innerWidth || document.documentElement.clientWidth) &&
567
+ bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight));
568
+ }
569
+ onBeforeOpen() {
570
+ this.scrollToActiveItem();
571
+ this.calciteComboboxBeforeOpen.emit();
572
+ }
573
+ onOpen() {
574
+ this.calciteComboboxOpen.emit();
575
+ }
576
+ onBeforeClose() {
577
+ this.calciteComboboxBeforeClose.emit();
578
+ }
579
+ onClose() {
580
+ this.calciteComboboxClose.emit();
581
+ }
582
+ ensureRecentSelectedItemIsActive() {
583
+ const { selectedItems } = this;
584
+ const targetIndex = selectedItems.length === 0 ? 0 : this.items.indexOf(selectedItems[selectedItems.length - 1]);
585
+ this.updateActiveItemIndex(targetIndex);
586
+ }
587
+ getMaxScrollerHeight() {
588
+ const items = this.getCombinedItems().filter((item) => !item.hidden);
589
+ const { maxItems } = this;
590
+ let itemsToProcess = 0;
591
+ let maxScrollerHeight = 0;
592
+ if (items.length > maxItems) {
593
+ items.forEach((item) => {
594
+ if (itemsToProcess < maxItems && maxItems > 0) {
595
+ const height = this.calculateSingleItemHeight(item);
596
+ if (height > 0) {
597
+ maxScrollerHeight += height;
598
+ itemsToProcess++;
599
+ }
600
+ }
601
+ });
602
+ }
603
+ return maxScrollerHeight;
604
+ }
605
+ calculateSingleItemHeight(item) {
606
+ if (!item) {
607
+ return;
608
+ }
609
+ let height = item.offsetHeight;
610
+ // if item has children items, don't count their height twice
611
+ const children = Array.from(item.querySelectorAll(ComboboxChildSelector));
612
+ children
613
+ .map((child) => child === null || child === void 0 ? void 0 : child.offsetHeight)
614
+ .forEach((offsetHeight) => {
615
+ height -= offsetHeight;
616
+ });
617
+ return height;
618
+ }
619
+ getCombinedItems() {
620
+ return [...this.groupItems, ...this.items];
621
+ }
622
+ toggleSelection(item, value = !item.selected) {
623
+ if (!item) {
624
+ return;
625
+ }
626
+ if (this.isMulti()) {
627
+ item.selected = value;
628
+ this.updateAncestors(item);
629
+ this.selectedItems = this.getSelectedItems();
630
+ this.emitComboboxChange();
631
+ this.resetText();
632
+ this.filterItems("");
633
+ }
634
+ else {
635
+ this.ignoreSelectedEventsFlag = true;
636
+ this.items.forEach((el) => (el.selected = el === item ? value : false));
637
+ this.ignoreSelectedEventsFlag = false;
638
+ this.selectedItems = this.getSelectedItems();
639
+ this.emitComboboxChange();
640
+ if (this.textInput) {
641
+ this.textInput.value = item.textLabel;
642
+ }
643
+ this.open = false;
644
+ this.updateActiveItemIndex(-1);
645
+ this.resetText();
646
+ this.filterItems("");
647
+ }
648
+ }
649
+ updateAncestors(item) {
650
+ if (this.selectionMode !== "ancestors") {
651
+ return;
652
+ }
653
+ const ancestors = getItemAncestors(item);
654
+ const children = getItemChildren(item);
655
+ if (item.selected) {
656
+ ancestors.forEach((el) => {
657
+ el.selected = true;
658
+ });
659
+ }
660
+ else {
661
+ children.forEach((el) => (el.selected = false));
662
+ [...ancestors].forEach((el) => {
663
+ if (!hasActiveChildren(el)) {
664
+ el.selected = false;
665
+ }
666
+ });
667
+ }
668
+ }
669
+ getFilteredItems() {
670
+ return this.items.filter((item) => !item.hidden);
671
+ }
672
+ getSelectedItems() {
673
+ if (!this.isMulti()) {
674
+ const match = this.items.find(({ selected }) => selected);
675
+ return match ? [match] : [];
676
+ }
677
+ return (this.items
678
+ .filter((item) => item.selected && (this.selectionMode !== "ancestors" || !hasActiveChildren(item)))
679
+ /** Preserve order of entered tags */
680
+ .sort((a, b) => {
681
+ const aIdx = this.selectedItems.indexOf(a);
682
+ const bIdx = this.selectedItems.indexOf(b);
683
+ if (aIdx > -1 && bIdx > -1) {
684
+ return aIdx - bIdx;
685
+ }
686
+ return bIdx - aIdx;
687
+ }));
688
+ }
689
+ getData() {
690
+ return this.items.map((item) => ({
691
+ filterDisabled: item.filterDisabled,
692
+ value: item.value,
693
+ label: item.textLabel,
694
+ }));
695
+ }
696
+ getNeedsIcon() {
697
+ return this.selectionMode === "single" && this.items.some((item) => item.icon);
698
+ }
699
+ resetText() {
700
+ if (this.textInput) {
701
+ this.textInput.value = "";
702
+ }
703
+ this.text = "";
704
+ }
705
+ getItems() {
706
+ const items = Array.from(this.el.querySelectorAll(ComboboxItem$1));
707
+ return items.filter((item) => !item.disabled);
708
+ }
709
+ getGroupItems() {
710
+ return Array.from(this.el.querySelectorAll(ComboboxItemGroup));
711
+ }
712
+ addCustomChip(value, focus) {
713
+ const existingItem = this.items.find((el) => el.textLabel === value);
714
+ if (existingItem) {
715
+ this.toggleSelection(existingItem, true);
716
+ }
717
+ else {
718
+ if (!this.isMulti()) {
719
+ this.toggleSelection(this.selectedItems[this.selectedItems.length - 1], false);
720
+ }
721
+ const item = document.createElement(ComboboxItem$1);
722
+ item.value = value;
723
+ item.textLabel = value;
724
+ item.selected = true;
725
+ this.el.appendChild(item);
726
+ this.resetText();
727
+ if (focus) {
728
+ this.setFocus();
729
+ }
730
+ this.updateItems();
731
+ this.filterItems("");
732
+ this.emitComboboxChange();
733
+ }
734
+ }
735
+ removeActiveChip() {
736
+ this.toggleSelection(this.selectedItems[this.activeChipIndex], false);
737
+ this.setFocus();
738
+ }
739
+ removeLastChip() {
740
+ this.toggleSelection(this.selectedItems[this.selectedItems.length - 1], false);
741
+ this.setFocus();
742
+ }
743
+ previousChip() {
744
+ if (this.text) {
745
+ return;
746
+ }
747
+ const length = this.selectedItems.length - 1;
748
+ const active = this.activeChipIndex;
749
+ this.activeChipIndex = active === -1 ? length : Math.max(active - 1, 0);
750
+ this.updateActiveItemIndex(-1);
751
+ this.focusChip();
752
+ }
753
+ nextChip() {
754
+ if (this.text || this.activeChipIndex === -1) {
755
+ return;
756
+ }
757
+ const last = this.selectedItems.length - 1;
758
+ const newIndex = this.activeChipIndex + 1;
759
+ if (newIndex > last) {
760
+ this.activeChipIndex = -1;
761
+ this.setFocus();
762
+ }
763
+ else {
764
+ this.activeChipIndex = newIndex;
765
+ this.focusChip();
766
+ }
767
+ this.updateActiveItemIndex(-1);
768
+ }
769
+ focusChip() {
770
+ var _a;
771
+ const guid = (_a = this.selectedItems[this.activeChipIndex]) === null || _a === void 0 ? void 0 : _a.guid;
772
+ const chip = guid
773
+ ? this.referenceEl.querySelector(`#${chipUidPrefix}${guid}`)
774
+ : null;
775
+ chip === null || chip === void 0 ? void 0 : chip.setFocus();
776
+ }
777
+ shiftActiveItemIndex(delta) {
778
+ const { length } = this.filteredItems;
779
+ const newIndex = (this.activeItemIndex + length + delta) % length;
780
+ this.updateActiveItemIndex(newIndex);
781
+ this.scrollToActiveItem();
782
+ }
783
+ updateActiveItemIndex(index) {
784
+ this.activeItemIndex = index;
785
+ let activeDescendant = null;
786
+ this.filteredItems.forEach((el, i) => {
787
+ if (i === index) {
788
+ el.active = true;
789
+ activeDescendant = `${itemUidPrefix}${el.guid}`;
790
+ }
791
+ else {
792
+ el.active = false;
793
+ }
794
+ });
795
+ this.activeDescendant = activeDescendant;
796
+ if (this.activeItemIndex > -1) {
797
+ this.activeChipIndex = -1;
798
+ }
799
+ }
800
+ isMulti() {
801
+ return this.selectionMode !== "single";
802
+ }
803
+ //--------------------------------------------------------------------------
804
+ //
805
+ // Render Methods
806
+ //
807
+ //--------------------------------------------------------------------------
808
+ renderChips() {
809
+ const { activeChipIndex, scale, selectionMode, messages } = this;
810
+ return this.selectedItems.map((item, i) => {
811
+ const chipClasses = {
812
+ chip: true,
813
+ "chip--active": activeChipIndex === i,
814
+ };
815
+ const ancestors = [...getItemAncestors(item)].reverse();
816
+ const pathLabel = [...ancestors, item].map((el) => el.textLabel);
817
+ const label = selectionMode !== "ancestors" ? item.textLabel : pathLabel.join(" / ");
818
+ return (h("calcite-chip", { class: chipClasses, closable: true, icon: item.icon, iconFlipRtl: item.iconFlipRtl, id: item.guid ? `${chipUidPrefix}${item.guid}` : null, key: item.textLabel, messageOverrides: { dismissLabel: messages.removeTag }, onCalciteChipClose: () => this.calciteChipCloseHandler(item), scale: scale, title: label, value: item.value }, label));
819
+ });
820
+ }
821
+ renderInput() {
822
+ const { guid, disabled, placeholder, selectionMode, selectedItems, open } = this;
823
+ const single = selectionMode === "single";
824
+ const selectedItem = selectedItems[0];
825
+ const showLabel = !open && single && !!selectedItem;
826
+ return (h("span", { class: {
827
+ "input-wrap": true,
828
+ "input-wrap--single": single,
829
+ } }, showLabel && (h("span", { class: {
830
+ label: true,
831
+ "label--icon": !!(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon),
832
+ }, key: "label" }, selectedItem.textLabel)), h("input", { "aria-activedescendant": this.activeDescendant, "aria-autocomplete": "list", "aria-controls": `${listboxUidPrefix}${guid}`, "aria-label": getLabelText(this), class: {
833
+ input: true,
834
+ "input--single": true,
835
+ "input--transparent": this.activeChipIndex > -1,
836
+ "input--hidden": showLabel,
837
+ "input--icon": !!this.placeholderIcon,
838
+ }, disabled: disabled, id: `${inputUidPrefix}${guid}`, key: "input", onBlur: this.comboboxBlurHandler, onFocus: this.comboboxFocusHandler, onInput: this.inputHandler, placeholder: placeholder, type: "text",
839
+ // eslint-disable-next-line react/jsx-sort-props
840
+ ref: (el) => (this.textInput = el) })));
841
+ }
842
+ renderListBoxOptions() {
843
+ return this.filteredItems.map((item) => (h("li", { "aria-selected": toAriaBoolean(item.selected), id: item.guid ? `${itemUidPrefix}${item.guid}` : null, role: "option", tabindex: "-1" }, item.textLabel)));
844
+ }
845
+ renderFloatingUIContainer() {
846
+ const { setFloatingEl, setContainerEl, open } = this;
847
+ const classes = {
848
+ [CSS$4.listContainer]: true,
849
+ [FloatingCSS.animation]: true,
850
+ [FloatingCSS.animationActive]: open,
851
+ };
852
+ return (h("div", { "aria-hidden": "true", class: {
853
+ "floating-ui-container": true,
854
+ "floating-ui-container--active": open,
855
+ },
856
+ // eslint-disable-next-line react/jsx-sort-props
857
+ ref: setFloatingEl }, h("div", { class: classes,
858
+ // eslint-disable-next-line react/jsx-sort-props
859
+ ref: setContainerEl }, h("ul", { class: { list: true, "list--hide": !open } }, h("slot", null)))));
860
+ }
861
+ renderIconStart() {
862
+ const { selectedItems, placeholderIcon, selectionMode, placeholderIconFlipRtl } = this;
863
+ const selectedItem = selectedItems[0];
864
+ const selectedIcon = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.icon;
865
+ const singleSelectionMode = selectionMode === "single";
866
+ const iconAtStart = !this.open && selectedItem
867
+ ? !!selectedIcon && singleSelectionMode
868
+ : !!this.placeholderIcon && (!selectedItem || singleSelectionMode);
869
+ return (iconAtStart && (h("span", { class: "icon-start" }, h("calcite-icon", { class: "selected-icon", flipRtl: this.open && selectedItem ? selectedItem.iconFlipRtl : placeholderIconFlipRtl, icon: !this.open && selectedItem ? selectedIcon : placeholderIcon, scale: "s" }))));
870
+ }
871
+ renderIconEnd() {
872
+ const { open } = this;
873
+ return (h("span", { class: "icon-end" }, h("calcite-icon", { icon: open ? "chevron-up" : "chevron-down", scale: "s" })));
874
+ }
875
+ render() {
876
+ var _a;
877
+ const { guid, label, open } = this;
878
+ const single = this.selectionMode === "single";
879
+ const isClearable = !this.clearDisabled && ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) > 0;
880
+ return (h(Host, { onClick: this.comboboxFocusHandler }, h("div", { "aria-autocomplete": "list", "aria-controls": `${listboxUidPrefix}${guid}`, "aria-expanded": toAriaBoolean(open), "aria-haspopup": "listbox", "aria-label": getLabelText(this), "aria-live": "polite", "aria-owns": `${listboxUidPrefix}${guid}`, class: {
881
+ wrapper: true,
882
+ "wrapper--single": single || !this.selectedItems.length,
883
+ "wrapper--active": open,
884
+ }, onClick: this.clickHandler, onKeyDown: this.keyDownHandler, role: "combobox",
885
+ // eslint-disable-next-line react/jsx-sort-props
886
+ ref: this.setReferenceEl }, h("div", { class: "grid-input" }, this.renderIconStart(), !single && this.renderChips(), h("label", { class: "screen-readers-only", htmlFor: `${inputUidPrefix}${guid}`, id: `${labelUidPrefix}${guid}` }, label), this.renderInput()), isClearable ? (h(XButton, { disabled: this.disabled, key: "close-button", label: this.messages.clear, scale: this.scale })) : null, this.renderIconEnd()), h("ul", { "aria-labelledby": `${labelUidPrefix}${guid}`, "aria-multiselectable": "true", class: "screen-readers-only", id: `${listboxUidPrefix}${guid}`, role: "listbox", tabIndex: -1 }, this.renderListBoxOptions()), this.renderFloatingUIContainer(), h(HiddenFormInputSlot, { component: this })));
887
+ }
888
+ static get assetsDirs() { return ["assets"]; }
889
+ get el() { return getElement(this); }
890
+ static get watchers() { return {
891
+ "open": ["openHandler"],
892
+ "disabled": ["handleDisabledChange"],
893
+ "maxItems": ["maxItemsHandler"],
894
+ "overlayPositioning": ["overlayPositioningHandler"],
895
+ "value": ["valueHandler"],
896
+ "messageOverrides": ["onMessagesChange"],
897
+ "flipPlacements": ["flipPlacementsHandler"],
898
+ "selectedItems": ["selectedItemsHandler"],
899
+ "text": ["textHandler"],
900
+ "effectiveLocale": ["effectiveLocaleChange"]
901
+ }; }
902
+ };
903
903
  Combobox.style = comboboxCss;
904
904
 
905
905
  /*!
@@ -923,107 +923,107 @@ const CSS$2 = {
923
923
 
924
924
  const comboboxItemCss = "@charset \"UTF-8\";:host([disabled]){cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host([hidden]){display:none}[hidden]{display:none}.scale--s{font-size:var(--calcite-font-size--2);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-item-spacing-indent:0.5rem;--calcite-combobox-item-selector-icon-size:1rem}.scale--m{font-size:var(--calcite-font-size--1);line-height:1rem;--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-item-spacing-indent:0.75rem;--calcite-combobox-item-selector-icon-size:1rem}.scale--l{font-size:var(--calcite-font-size-0);line-height:1.25rem;--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.625rem;--calcite-combobox-item-spacing-indent:1rem;--calcite-combobox-item-selector-icon-size:1.5rem}.container{--calcite-combobox-item-indent-value:calc(\n var(--calcite-combobox-item-spacing-indent) * var(--calcite-combobox-item-spacing-indent-multiplier)\n )}:host(:focus){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host,ul{margin:0px;display:flex;flex-direction:column;padding:0px}:host(:focus),ul:focus{outline:2px solid transparent;outline-offset:2px}.label{position:relative;box-sizing:border-box;display:flex;inline-size:100%;min-inline-size:100%;cursor:pointer;align-items:center;color:var(--calcite-ui-text-3);-webkit-text-decoration-line:none;text-decoration-line:none;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);outline-color:transparent;word-wrap:break-word;word-break:break-word;padding-block:var(--calcite-combobox-item-spacing-unit-s);padding-inline:var(--calcite-combobox-item-spacing-unit-l)}:host([disabled]) .label{cursor:default}.label--selected{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1)}.label--active{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-ui-brand));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-ui-focus-offset-invert),\n 1\n )\n )\n )}.label:hover,.label:active{background-color:var(--calcite-ui-foreground-2);color:var(--calcite-ui-text-1);-webkit-text-decoration-line:none;text-decoration-line:none;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.title{padding-block:0;padding-inline:var(--calcite-combobox-item-spacing-unit-l)}.icon{display:inline-flex;opacity:0;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);color:var(--calcite-ui-border-1)}.icon--indent{padding-inline-start:var(--calcite-combobox-item-indent-value)}.icon--custom{margin-block-start:-1px;padding-inline-start:var(--calcite-combobox-item-spacing-unit-l);color:var(--calcite-ui-text-3)}.icon--active{color:var(--calcite-ui-text-1)}.icon--dot{display:flex;justify-content:center;min-inline-size:var(--calcite-combobox-item-selector-icon-size)}.icon--dot:before{text-align:start;content:\"•\"}.label--active .icon{opacity:1}.label--selected .icon{opacity:1;color:var(--calcite-ui-brand)}:host(:hover[disabled]) .icon{opacity:1}";
925
925
 
926
- const ComboboxItem = class {
927
- constructor(hostRef) {
928
- registerInstance(this, hostRef);
929
- this.calciteComboboxItemChange = createEvent(this, "calciteComboboxItemChange", 6);
930
- /** Specifies the scale of the combobox-item controlled by parent, defaults to m */
931
- this.scale = "m";
932
- this.itemClickHandler = (event) => {
933
- event.preventDefault();
934
- this.toggleSelected();
935
- };
936
- this.disabled = false;
937
- this.selected = false;
938
- this.active = false;
939
- this.ancestors = undefined;
940
- this.guid = guid();
941
- this.icon = undefined;
942
- this.iconFlipRtl = false;
943
- this.textLabel = undefined;
944
- this.value = undefined;
945
- this.filterDisabled = undefined;
946
- }
947
- selectedWatchHandler() {
948
- this.calciteComboboxItemChange.emit();
949
- }
950
- // --------------------------------------------------------------------------
951
- //
952
- // Lifecycle
953
- //
954
- // --------------------------------------------------------------------------
955
- connectedCallback() {
956
- this.ancestors = getAncestors(this.el);
957
- this.scale = getElementProp(this.el, "scale", this.scale);
958
- connectConditionalSlotComponent(this);
959
- connectInteractive(this);
960
- }
961
- disconnectedCallback() {
962
- disconnectConditionalSlotComponent(this);
963
- disconnectInteractive(this);
964
- }
965
- componentDidRender() {
966
- updateHostInteraction(this);
967
- }
968
- // --------------------------------------------------------------------------
969
- //
970
- // Private Methods
971
- //
972
- // --------------------------------------------------------------------------
973
- toggleSelected() {
974
- if (this.disabled) {
975
- return;
976
- }
977
- this.selected = !this.selected;
978
- }
979
- // --------------------------------------------------------------------------
980
- //
981
- // Render Methods
982
- //
983
- // --------------------------------------------------------------------------
984
- renderIcon(iconPath) {
985
- return this.icon ? (h("calcite-icon", { class: {
986
- [CSS$2.custom]: !!this.icon,
987
- [CSS$2.iconActive]: this.icon && this.selected,
988
- [CSS$2.iconIndent]: true,
989
- }, flipRtl: this.iconFlipRtl, icon: this.icon || iconPath, key: "icon", scale: this.scale === "l" ? "m" : "s" })) : null;
990
- }
991
- renderSelectIndicator(showDot, iconPath) {
992
- return showDot ? (h("span", { class: {
993
- [CSS$2.icon]: true,
994
- [CSS$2.dot]: true,
995
- [CSS$2.iconIndent]: true,
996
- } })) : (h("calcite-icon", { class: {
997
- [CSS$2.icon]: true,
998
- [CSS$2.iconActive]: this.selected,
999
- [CSS$2.iconIndent]: true,
1000
- }, flipRtl: this.iconFlipRtl, icon: iconPath, key: "indicator", scale: this.scale === "l" ? "m" : "s" }));
1001
- }
1002
- renderChildren() {
1003
- if (getSlotted(this.el)) {
1004
- return (h("ul", { key: "default-slot-container" }, h("slot", null)));
1005
- }
1006
- return null;
1007
- }
1008
- render() {
1009
- const isSingleSelect = getElementProp(this.el, "selection-mode", "multiple") === "single";
1010
- const showDot = isSingleSelect && !this.disabled;
1011
- const defaultIcon = isSingleSelect ? "dot" : "check";
1012
- const iconPath = this.disabled ? "circle-disallowed" : defaultIcon;
1013
- const classes = {
1014
- [CSS$2.label]: true,
1015
- [CSS$2.selected]: this.selected,
1016
- [CSS$2.active]: this.active,
1017
- [CSS$2.single]: isSingleSelect,
1018
- };
1019
- const depth = getDepth(this.el);
1020
- return (h(Host, { "aria-hidden": "true" }, h("div", { class: `container scale--${this.scale}`, style: { "--calcite-combobox-item-spacing-indent-multiplier": `${depth}` } }, h("li", { class: classes, id: this.guid, onClick: this.itemClickHandler }, this.renderSelectIndicator(showDot, iconPath), this.renderIcon(iconPath), h("span", { class: "title" }, this.textLabel)), this.renderChildren())));
1021
- }
1022
- get el() { return getElement(this); }
1023
- static get watchers() { return {
1024
- "selected": ["selectedWatchHandler"]
1025
- }; }
1026
- };
926
+ const ComboboxItem = class {
927
+ constructor(hostRef) {
928
+ registerInstance(this, hostRef);
929
+ this.calciteComboboxItemChange = createEvent(this, "calciteComboboxItemChange", 6);
930
+ /** Specifies the scale of the combobox-item controlled by parent, defaults to m */
931
+ this.scale = "m";
932
+ this.itemClickHandler = (event) => {
933
+ event.preventDefault();
934
+ this.toggleSelected();
935
+ };
936
+ this.disabled = false;
937
+ this.selected = false;
938
+ this.active = false;
939
+ this.ancestors = undefined;
940
+ this.guid = guid();
941
+ this.icon = undefined;
942
+ this.iconFlipRtl = false;
943
+ this.textLabel = undefined;
944
+ this.value = undefined;
945
+ this.filterDisabled = undefined;
946
+ }
947
+ selectedWatchHandler() {
948
+ this.calciteComboboxItemChange.emit();
949
+ }
950
+ // --------------------------------------------------------------------------
951
+ //
952
+ // Lifecycle
953
+ //
954
+ // --------------------------------------------------------------------------
955
+ connectedCallback() {
956
+ this.ancestors = getAncestors(this.el);
957
+ this.scale = getElementProp(this.el, "scale", this.scale);
958
+ connectConditionalSlotComponent(this);
959
+ connectInteractive(this);
960
+ }
961
+ disconnectedCallback() {
962
+ disconnectConditionalSlotComponent(this);
963
+ disconnectInteractive(this);
964
+ }
965
+ componentDidRender() {
966
+ updateHostInteraction(this);
967
+ }
968
+ // --------------------------------------------------------------------------
969
+ //
970
+ // Private Methods
971
+ //
972
+ // --------------------------------------------------------------------------
973
+ toggleSelected() {
974
+ if (this.disabled) {
975
+ return;
976
+ }
977
+ this.selected = !this.selected;
978
+ }
979
+ // --------------------------------------------------------------------------
980
+ //
981
+ // Render Methods
982
+ //
983
+ // --------------------------------------------------------------------------
984
+ renderIcon(iconPath) {
985
+ return this.icon ? (h("calcite-icon", { class: {
986
+ [CSS$2.custom]: !!this.icon,
987
+ [CSS$2.iconActive]: this.icon && this.selected,
988
+ [CSS$2.iconIndent]: true,
989
+ }, flipRtl: this.iconFlipRtl, icon: this.icon || iconPath, key: "icon", scale: this.scale === "l" ? "m" : "s" })) : null;
990
+ }
991
+ renderSelectIndicator(showDot, iconPath) {
992
+ return showDot ? (h("span", { class: {
993
+ [CSS$2.icon]: true,
994
+ [CSS$2.dot]: true,
995
+ [CSS$2.iconIndent]: true,
996
+ } })) : (h("calcite-icon", { class: {
997
+ [CSS$2.icon]: true,
998
+ [CSS$2.iconActive]: this.selected,
999
+ [CSS$2.iconIndent]: true,
1000
+ }, flipRtl: this.iconFlipRtl, icon: iconPath, key: "indicator", scale: this.scale === "l" ? "m" : "s" }));
1001
+ }
1002
+ renderChildren() {
1003
+ if (getSlotted(this.el)) {
1004
+ return (h("ul", { key: "default-slot-container" }, h("slot", null)));
1005
+ }
1006
+ return null;
1007
+ }
1008
+ render() {
1009
+ const isSingleSelect = getElementProp(this.el, "selection-mode", "multiple") === "single";
1010
+ const showDot = isSingleSelect && !this.disabled;
1011
+ const defaultIcon = isSingleSelect ? "dot" : "check";
1012
+ const iconPath = this.disabled ? "circle-disallowed" : defaultIcon;
1013
+ const classes = {
1014
+ [CSS$2.label]: true,
1015
+ [CSS$2.selected]: this.selected,
1016
+ [CSS$2.active]: this.active,
1017
+ [CSS$2.single]: isSingleSelect,
1018
+ };
1019
+ const depth = getDepth(this.el);
1020
+ return (h(Host, { "aria-hidden": "true" }, h("div", { class: `container scale--${this.scale}`, style: { "--calcite-combobox-item-spacing-indent-multiplier": `${depth}` } }, h("li", { class: classes, id: this.guid, onClick: this.itemClickHandler }, this.renderSelectIndicator(showDot, iconPath), this.renderIcon(iconPath), h("span", { class: "title" }, this.textLabel)), this.renderChildren())));
1021
+ }
1022
+ get el() { return getElement(this); }
1023
+ static get watchers() { return {
1024
+ "selected": ["selectedWatchHandler"]
1025
+ }; }
1026
+ };
1027
1027
  ComboboxItem.style = comboboxItemCss;
1028
1028
 
1029
1029
  /*!
@@ -1037,394 +1037,394 @@ const SLOTS = {
1037
1037
 
1038
1038
  const dropdownCss = ":host([disabled]){cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host{display:inline-flex;flex:0 1 auto}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host .calcite-dropdown-wrapper{--calcite-floating-ui-z-index:var(--calcite-app-z-index-dropdown);display:block;position:absolute;z-index:var(--calcite-floating-ui-z-index);visibility:hidden}.calcite-dropdown-wrapper .calcite-floating-ui-anim{position:relative;transition:var(--calcite-floating-ui-transition);transition-property:transform, visibility, opacity;opacity:0;box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);z-index:var(--calcite-app-z-index);border-radius:0.25rem}.calcite-dropdown-wrapper[data-placement^=bottom] .calcite-floating-ui-anim{transform:translateY(-5px)}.calcite-dropdown-wrapper[data-placement^=top] .calcite-floating-ui-anim{transform:translateY(5px)}.calcite-dropdown-wrapper[data-placement^=left] .calcite-floating-ui-anim{transform:translateX(5px)}.calcite-dropdown-wrapper[data-placement^=right] .calcite-floating-ui-anim{transform:translateX(-5px)}.calcite-dropdown-wrapper[data-placement] .calcite-floating-ui-anim--active{opacity:1;transform:translate(0)}:host([open]) .calcite-dropdown-wrapper{visibility:visible}:host .calcite-dropdown-content{max-block-size:45vh;inline-size:auto;overflow-y:auto;overflow-x:hidden;background-color:var(--calcite-ui-foreground-1);inline-size:var(--calcite-dropdown-width)}.calcite-trigger-container{position:relative;display:flex;flex:1 1 auto;word-wrap:break-word;word-break:break-word}@media (forced-colors: active){:host([open]) .calcite-dropdown-wrapper{border:1px solid canvasText}}:host([width=s]){--calcite-dropdown-width:12rem}:host([width=m]){--calcite-dropdown-width:14rem}:host([width=l]){--calcite-dropdown-width:16rem}:host([hidden]){display:none}[hidden]{display:none}";
1039
1039
 
1040
- const Dropdown = class {
1041
- constructor(hostRef) {
1042
- registerInstance(this, hostRef);
1043
- this.calciteDropdownSelect = createEvent(this, "calciteDropdownSelect", 6);
1044
- this.calciteDropdownBeforeClose = createEvent(this, "calciteDropdownBeforeClose", 6);
1045
- this.calciteDropdownClose = createEvent(this, "calciteDropdownClose", 6);
1046
- this.calciteDropdownBeforeOpen = createEvent(this, "calciteDropdownBeforeOpen", 6);
1047
- this.calciteDropdownOpen = createEvent(this, "calciteDropdownOpen", 6);
1048
- this.items = [];
1049
- this.groups = [];
1050
- this.mutationObserver = createObserver("mutation", () => this.updateItems());
1051
- this.resizeObserver = createObserver("resize", (entries) => this.resizeObserverCallback(entries));
1052
- this.openTransitionProp = "opacity";
1053
- this.guid = `calcite-dropdown-${guid()}`;
1054
- this.defaultAssignedElements = [];
1055
- //--------------------------------------------------------------------------
1056
- //
1057
- // Private Methods
1058
- //
1059
- //--------------------------------------------------------------------------
1060
- this.slotChangeHandler = (event) => {
1061
- this.defaultAssignedElements = event.target.assignedElements({
1062
- flatten: true,
1063
- });
1064
- this.updateItems();
1065
- };
1066
- this.setFilteredPlacements = () => {
1067
- const { el, flipPlacements } = this;
1068
- this.filteredFlipPlacements = flipPlacements
1069
- ? filterComputedPlacements(flipPlacements, el)
1070
- : null;
1071
- };
1072
- this.updateTriggers = (event) => {
1073
- this.triggers = event.target.assignedElements({
1074
- flatten: true,
1075
- });
1076
- this.reposition(true);
1077
- };
1078
- this.updateItems = () => {
1079
- this.items = this.groups
1080
- .map((group) => Array.from(group === null || group === void 0 ? void 0 : group.querySelectorAll("calcite-dropdown-item")))
1081
- .reduce((previousValue, currentValue) => [...previousValue, ...currentValue], []);
1082
- this.updateSelectedItems();
1083
- this.reposition(true);
1084
- };
1085
- this.updateGroups = (event) => {
1086
- const groups = event.target
1087
- .assignedElements({ flatten: true })
1088
- .filter((el) => el === null || el === void 0 ? void 0 : el.matches("calcite-dropdown-group"));
1089
- this.groups = groups;
1090
- this.updateItems();
1091
- };
1092
- this.resizeObserverCallback = (entries) => {
1093
- entries.forEach((entry) => {
1094
- const { target } = entry;
1095
- if (target === this.referenceEl) {
1096
- this.setDropdownWidth();
1097
- }
1098
- else if (target === this.scrollerEl) {
1099
- this.setMaxScrollerHeight();
1100
- }
1101
- });
1102
- };
1103
- this.setDropdownWidth = () => {
1104
- const { referenceEl, scrollerEl } = this;
1105
- const referenceElWidth = referenceEl === null || referenceEl === void 0 ? void 0 : referenceEl.clientWidth;
1106
- if (!referenceElWidth || !scrollerEl) {
1107
- return;
1108
- }
1109
- scrollerEl.style.minWidth = `${referenceElWidth}px`;
1110
- };
1111
- this.setMaxScrollerHeight = () => {
1112
- const { scrollerEl } = this;
1113
- if (!scrollerEl) {
1114
- return;
1115
- }
1116
- this.reposition(true);
1117
- const maxScrollerHeight = this.getMaxScrollerHeight();
1118
- scrollerEl.style.maxHeight = maxScrollerHeight > 0 ? `${maxScrollerHeight}px` : "";
1119
- this.reposition(true);
1120
- };
1121
- this.setScrollerAndTransitionEl = (el) => {
1122
- this.resizeObserver.observe(el);
1123
- this.scrollerEl = el;
1124
- this.transitionEl = el;
1125
- };
1126
- this.setReferenceEl = (el) => {
1127
- this.referenceEl = el;
1128
- connectFloatingUI(this, this.referenceEl, this.floatingEl);
1129
- this.resizeObserver.observe(el);
1130
- };
1131
- this.setFloatingEl = (el) => {
1132
- this.floatingEl = el;
1133
- connectFloatingUI(this, this.referenceEl, this.floatingEl);
1134
- };
1135
- this.keyDownHandler = (event) => {
1136
- const target = event.target;
1137
- if (target !== this.referenceEl) {
1138
- return;
1139
- }
1140
- const { defaultPrevented, key } = event;
1141
- if (defaultPrevented) {
1142
- return;
1143
- }
1144
- if (this.open) {
1145
- if (key === "Escape") {
1146
- this.closeCalciteDropdown();
1147
- event.preventDefault();
1148
- return;
1149
- }
1150
- else if (event.shiftKey && key === "Tab") {
1151
- this.closeCalciteDropdown();
1152
- event.preventDefault();
1153
- return;
1154
- }
1155
- }
1156
- if (isActivationKey(key)) {
1157
- this.openCalciteDropdown();
1158
- event.preventDefault();
1159
- }
1160
- else if (key === "Escape") {
1161
- this.closeCalciteDropdown();
1162
- event.preventDefault();
1163
- }
1164
- };
1165
- this.focusOnFirstActiveOrFirstItem = () => {
1166
- this.getFocusableElement(this.items.find((item) => item.selected) || this.items[0]);
1167
- };
1168
- this.toggleOpenEnd = () => {
1169
- this.focusOnFirstActiveOrFirstItem();
1170
- this.el.removeEventListener("calciteDropdownOpen", this.toggleOpenEnd);
1171
- };
1172
- this.openCalciteDropdown = () => {
1173
- this.open = !this.open;
1174
- if (this.open) {
1175
- this.el.addEventListener("calciteDropdownOpen", this.toggleOpenEnd);
1176
- }
1177
- };
1178
- this.open = false;
1179
- this.closeOnSelectDisabled = false;
1180
- this.disabled = false;
1181
- this.flipPlacements = undefined;
1182
- this.maxItems = 0;
1183
- this.overlayPositioning = "absolute";
1184
- this.placement = defaultMenuPlacement;
1185
- this.scale = "m";
1186
- this.selectedItems = [];
1187
- this.type = "click";
1188
- this.width = undefined;
1189
- }
1190
- openHandler(value) {
1191
- if (!this.disabled) {
1192
- if (value) {
1193
- this.reposition(true);
1194
- }
1195
- onToggleOpenCloseComponent(this);
1196
- return;
1197
- }
1198
- this.open = false;
1199
- }
1200
- handleDisabledChange(value) {
1201
- if (!value) {
1202
- this.open = false;
1203
- }
1204
- }
1205
- flipPlacementsHandler() {
1206
- this.setFilteredPlacements();
1207
- this.reposition(true);
1208
- }
1209
- maxItemsHandler() {
1210
- this.setMaxScrollerHeight();
1211
- }
1212
- overlayPositioningHandler() {
1213
- this.reposition(true);
1214
- }
1215
- placementHandler() {
1216
- this.reposition(true);
1217
- }
1218
- //--------------------------------------------------------------------------
1219
- //
1220
- // Public Methods
1221
- //
1222
- //--------------------------------------------------------------------------
1223
- /** Sets focus on the component's first focusable element. */
1224
- async setFocus() {
1225
- await componentFocusable(this);
1226
- this.el.focus();
1227
- }
1228
- //--------------------------------------------------------------------------
1229
- //
1230
- // Lifecycle
1231
- //
1232
- //--------------------------------------------------------------------------
1233
- connectedCallback() {
1234
- var _a;
1235
- (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
1236
- this.setFilteredPlacements();
1237
- this.reposition(true);
1238
- if (this.open) {
1239
- this.openHandler(this.open);
1240
- onToggleOpenCloseComponent(this);
1241
- }
1242
- connectInteractive(this);
1243
- }
1244
- componentWillLoad() {
1245
- setUpLoadableComponent(this);
1246
- }
1247
- componentDidLoad() {
1248
- setComponentLoaded(this);
1249
- this.reposition(true);
1250
- }
1251
- componentDidRender() {
1252
- updateHostInteraction(this);
1253
- }
1254
- disconnectedCallback() {
1255
- var _a, _b;
1256
- (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
1257
- (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
1258
- disconnectInteractive(this);
1259
- disconnectFloatingUI(this, this.referenceEl, this.floatingEl);
1260
- }
1261
- render() {
1262
- const { open, guid } = this;
1263
- return (h(Host, null, h("div", { class: "calcite-trigger-container", id: `${guid}-menubutton`, onClick: this.openCalciteDropdown, onKeyDown: this.keyDownHandler,
1264
- // eslint-disable-next-line react/jsx-sort-props
1265
- ref: this.setReferenceEl }, h("slot", { "aria-controls": `${guid}-menu`, "aria-expanded": toAriaBoolean(open), "aria-haspopup": "menu", name: SLOTS.dropdownTrigger, onSlotchange: this.updateTriggers })), h("div", { "aria-hidden": toAriaBoolean(!open), class: "calcite-dropdown-wrapper",
1266
- // eslint-disable-next-line react/jsx-sort-props
1267
- ref: this.setFloatingEl }, h("div", { "aria-labelledby": `${guid}-menubutton`, class: {
1268
- ["calcite-dropdown-content"]: true,
1269
- [FloatingCSS.animation]: true,
1270
- [FloatingCSS.animationActive]: open,
1271
- }, id: `${guid}-menu`, role: "menu",
1272
- // eslint-disable-next-line react/jsx-sort-props
1273
- ref: this.setScrollerAndTransitionEl }, h("slot", { onSlotchange: this.updateGroups })))));
1274
- }
1275
- //--------------------------------------------------------------------------
1276
- //
1277
- // Public Methods
1278
- //
1279
- //--------------------------------------------------------------------------
1280
- /**
1281
- * Updates the position of the component.
1282
- *
1283
- * @param delayed
1284
- */
1285
- async reposition(delayed = false) {
1286
- const { floatingEl, referenceEl, placement, overlayPositioning, filteredFlipPlacements } = this;
1287
- return reposition(this, {
1288
- floatingEl,
1289
- referenceEl,
1290
- overlayPositioning,
1291
- placement,
1292
- flipPlacements: filteredFlipPlacements,
1293
- type: "menu",
1294
- }, delayed);
1295
- }
1296
- closeCalciteDropdownOnClick(event) {
1297
- if (this.disabled ||
1298
- !isPrimaryPointerButton(event) ||
1299
- !this.open ||
1300
- event.composedPath().includes(this.el)) {
1301
- return;
1302
- }
1303
- this.closeCalciteDropdown(false);
1304
- }
1305
- closeCalciteDropdownOnEvent(event) {
1306
- this.closeCalciteDropdown();
1307
- event.stopPropagation();
1308
- }
1309
- closeCalciteDropdownOnOpenEvent(event) {
1310
- if (event.composedPath().includes(this.el)) {
1311
- return;
1312
- }
1313
- this.open = false;
1314
- }
1315
- pointerEnterHandler() {
1316
- if (this.disabled || this.type !== "hover") {
1317
- return;
1318
- }
1319
- this.openCalciteDropdown();
1320
- }
1321
- pointerLeaveHandler() {
1322
- if (this.disabled || this.type !== "hover") {
1323
- return;
1324
- }
1325
- this.closeCalciteDropdown();
1326
- }
1327
- calciteInternalDropdownItemKeyEvent(event) {
1328
- const { keyboardEvent } = event.detail;
1329
- const target = keyboardEvent.target;
1330
- switch (keyboardEvent.key) {
1331
- case "Tab":
1332
- if (this.items.indexOf(target) === this.items.length - 1 && !keyboardEvent.shiftKey) {
1333
- this.closeCalciteDropdown();
1334
- }
1335
- else if (this.items.indexOf(target) === 0 && keyboardEvent.shiftKey) {
1336
- this.closeCalciteDropdown();
1337
- }
1338
- break;
1339
- case "ArrowDown":
1340
- focusElementInGroup(this.items, target, "next");
1341
- break;
1342
- case "ArrowUp":
1343
- focusElementInGroup(this.items, target, "previous");
1344
- break;
1345
- case "Home":
1346
- focusElementInGroup(this.items, target, "first");
1347
- break;
1348
- case "End":
1349
- focusElementInGroup(this.items, target, "last");
1350
- break;
1351
- }
1352
- event.stopPropagation();
1353
- }
1354
- handleItemSelect(event) {
1355
- this.updateSelectedItems();
1356
- event.stopPropagation();
1357
- this.calciteDropdownSelect.emit();
1358
- if (!this.closeOnSelectDisabled ||
1359
- event.detail.requestedDropdownGroup.selectionMode === "none") {
1360
- this.closeCalciteDropdown();
1361
- }
1362
- event.stopPropagation();
1363
- }
1364
- onBeforeOpen() {
1365
- this.calciteDropdownBeforeOpen.emit();
1366
- }
1367
- onOpen() {
1368
- this.calciteDropdownOpen.emit();
1369
- }
1370
- onBeforeClose() {
1371
- this.calciteDropdownBeforeClose.emit();
1372
- }
1373
- onClose() {
1374
- this.calciteDropdownClose.emit();
1375
- }
1376
- updateSelectedItems() {
1377
- this.selectedItems = this.items.filter((item) => item.selected);
1378
- }
1379
- getMaxScrollerHeight() {
1380
- const { maxItems, items } = this;
1381
- let itemsToProcess = 0;
1382
- let maxScrollerHeight = 0;
1383
- let groupHeaderHeight;
1384
- this.groups.forEach((group) => {
1385
- if (maxItems > 0 && itemsToProcess < maxItems) {
1386
- Array.from(group.children).forEach((item, index) => {
1387
- if (index === 0) {
1388
- if (isNaN(groupHeaderHeight)) {
1389
- groupHeaderHeight = item.offsetTop;
1390
- }
1391
- maxScrollerHeight += groupHeaderHeight;
1392
- }
1393
- if (itemsToProcess < maxItems) {
1394
- maxScrollerHeight += item.offsetHeight;
1395
- itemsToProcess += 1;
1396
- }
1397
- });
1398
- }
1399
- });
1400
- return items.length > maxItems ? maxScrollerHeight : 0;
1401
- }
1402
- closeCalciteDropdown(focusTrigger = true) {
1403
- this.open = false;
1404
- if (focusTrigger) {
1405
- focusElement(this.triggers[0]);
1406
- }
1407
- }
1408
- getFocusableElement(item) {
1409
- if (!item) {
1410
- return;
1411
- }
1412
- const target = item.attributes.isLink
1413
- ? item.shadowRoot.querySelector("a")
1414
- : item;
1415
- focusElement(target);
1416
- }
1417
- static get delegatesFocus() { return true; }
1418
- get el() { return getElement(this); }
1419
- static get watchers() { return {
1420
- "open": ["openHandler"],
1421
- "disabled": ["handleDisabledChange"],
1422
- "flipPlacements": ["flipPlacementsHandler"],
1423
- "maxItems": ["maxItemsHandler"],
1424
- "overlayPositioning": ["overlayPositioningHandler"],
1425
- "placement": ["placementHandler"]
1426
- }; }
1427
- };
1040
+ const Dropdown = class {
1041
+ constructor(hostRef) {
1042
+ registerInstance(this, hostRef);
1043
+ this.calciteDropdownSelect = createEvent(this, "calciteDropdownSelect", 6);
1044
+ this.calciteDropdownBeforeClose = createEvent(this, "calciteDropdownBeforeClose", 6);
1045
+ this.calciteDropdownClose = createEvent(this, "calciteDropdownClose", 6);
1046
+ this.calciteDropdownBeforeOpen = createEvent(this, "calciteDropdownBeforeOpen", 6);
1047
+ this.calciteDropdownOpen = createEvent(this, "calciteDropdownOpen", 6);
1048
+ this.items = [];
1049
+ this.groups = [];
1050
+ this.mutationObserver = createObserver("mutation", () => this.updateItems());
1051
+ this.resizeObserver = createObserver("resize", (entries) => this.resizeObserverCallback(entries));
1052
+ this.openTransitionProp = "opacity";
1053
+ this.guid = `calcite-dropdown-${guid()}`;
1054
+ this.defaultAssignedElements = [];
1055
+ //--------------------------------------------------------------------------
1056
+ //
1057
+ // Private Methods
1058
+ //
1059
+ //--------------------------------------------------------------------------
1060
+ this.slotChangeHandler = (event) => {
1061
+ this.defaultAssignedElements = event.target.assignedElements({
1062
+ flatten: true,
1063
+ });
1064
+ this.updateItems();
1065
+ };
1066
+ this.setFilteredPlacements = () => {
1067
+ const { el, flipPlacements } = this;
1068
+ this.filteredFlipPlacements = flipPlacements
1069
+ ? filterComputedPlacements(flipPlacements, el)
1070
+ : null;
1071
+ };
1072
+ this.updateTriggers = (event) => {
1073
+ this.triggers = event.target.assignedElements({
1074
+ flatten: true,
1075
+ });
1076
+ this.reposition(true);
1077
+ };
1078
+ this.updateItems = () => {
1079
+ this.items = this.groups
1080
+ .map((group) => Array.from(group === null || group === void 0 ? void 0 : group.querySelectorAll("calcite-dropdown-item")))
1081
+ .reduce((previousValue, currentValue) => [...previousValue, ...currentValue], []);
1082
+ this.updateSelectedItems();
1083
+ this.reposition(true);
1084
+ };
1085
+ this.updateGroups = (event) => {
1086
+ const groups = event.target
1087
+ .assignedElements({ flatten: true })
1088
+ .filter((el) => el === null || el === void 0 ? void 0 : el.matches("calcite-dropdown-group"));
1089
+ this.groups = groups;
1090
+ this.updateItems();
1091
+ };
1092
+ this.resizeObserverCallback = (entries) => {
1093
+ entries.forEach((entry) => {
1094
+ const { target } = entry;
1095
+ if (target === this.referenceEl) {
1096
+ this.setDropdownWidth();
1097
+ }
1098
+ else if (target === this.scrollerEl) {
1099
+ this.setMaxScrollerHeight();
1100
+ }
1101
+ });
1102
+ };
1103
+ this.setDropdownWidth = () => {
1104
+ const { referenceEl, scrollerEl } = this;
1105
+ const referenceElWidth = referenceEl === null || referenceEl === void 0 ? void 0 : referenceEl.clientWidth;
1106
+ if (!referenceElWidth || !scrollerEl) {
1107
+ return;
1108
+ }
1109
+ scrollerEl.style.minWidth = `${referenceElWidth}px`;
1110
+ };
1111
+ this.setMaxScrollerHeight = () => {
1112
+ const { scrollerEl } = this;
1113
+ if (!scrollerEl) {
1114
+ return;
1115
+ }
1116
+ this.reposition(true);
1117
+ const maxScrollerHeight = this.getMaxScrollerHeight();
1118
+ scrollerEl.style.maxHeight = maxScrollerHeight > 0 ? `${maxScrollerHeight}px` : "";
1119
+ this.reposition(true);
1120
+ };
1121
+ this.setScrollerAndTransitionEl = (el) => {
1122
+ this.resizeObserver.observe(el);
1123
+ this.scrollerEl = el;
1124
+ this.transitionEl = el;
1125
+ };
1126
+ this.setReferenceEl = (el) => {
1127
+ this.referenceEl = el;
1128
+ connectFloatingUI(this, this.referenceEl, this.floatingEl);
1129
+ this.resizeObserver.observe(el);
1130
+ };
1131
+ this.setFloatingEl = (el) => {
1132
+ this.floatingEl = el;
1133
+ connectFloatingUI(this, this.referenceEl, this.floatingEl);
1134
+ };
1135
+ this.keyDownHandler = (event) => {
1136
+ const target = event.target;
1137
+ if (target !== this.referenceEl) {
1138
+ return;
1139
+ }
1140
+ const { defaultPrevented, key } = event;
1141
+ if (defaultPrevented) {
1142
+ return;
1143
+ }
1144
+ if (this.open) {
1145
+ if (key === "Escape") {
1146
+ this.closeCalciteDropdown();
1147
+ event.preventDefault();
1148
+ return;
1149
+ }
1150
+ else if (event.shiftKey && key === "Tab") {
1151
+ this.closeCalciteDropdown();
1152
+ event.preventDefault();
1153
+ return;
1154
+ }
1155
+ }
1156
+ if (isActivationKey(key)) {
1157
+ this.openCalciteDropdown();
1158
+ event.preventDefault();
1159
+ }
1160
+ else if (key === "Escape") {
1161
+ this.closeCalciteDropdown();
1162
+ event.preventDefault();
1163
+ }
1164
+ };
1165
+ this.focusOnFirstActiveOrFirstItem = () => {
1166
+ this.getFocusableElement(this.items.find((item) => item.selected) || this.items[0]);
1167
+ };
1168
+ this.toggleOpenEnd = () => {
1169
+ this.focusOnFirstActiveOrFirstItem();
1170
+ this.el.removeEventListener("calciteDropdownOpen", this.toggleOpenEnd);
1171
+ };
1172
+ this.openCalciteDropdown = () => {
1173
+ this.open = !this.open;
1174
+ if (this.open) {
1175
+ this.el.addEventListener("calciteDropdownOpen", this.toggleOpenEnd);
1176
+ }
1177
+ };
1178
+ this.open = false;
1179
+ this.closeOnSelectDisabled = false;
1180
+ this.disabled = false;
1181
+ this.flipPlacements = undefined;
1182
+ this.maxItems = 0;
1183
+ this.overlayPositioning = "absolute";
1184
+ this.placement = defaultMenuPlacement;
1185
+ this.scale = "m";
1186
+ this.selectedItems = [];
1187
+ this.type = "click";
1188
+ this.width = undefined;
1189
+ }
1190
+ openHandler(value) {
1191
+ if (!this.disabled) {
1192
+ if (value) {
1193
+ this.reposition(true);
1194
+ }
1195
+ onToggleOpenCloseComponent(this);
1196
+ return;
1197
+ }
1198
+ this.open = false;
1199
+ }
1200
+ handleDisabledChange(value) {
1201
+ if (!value) {
1202
+ this.open = false;
1203
+ }
1204
+ }
1205
+ flipPlacementsHandler() {
1206
+ this.setFilteredPlacements();
1207
+ this.reposition(true);
1208
+ }
1209
+ maxItemsHandler() {
1210
+ this.setMaxScrollerHeight();
1211
+ }
1212
+ overlayPositioningHandler() {
1213
+ this.reposition(true);
1214
+ }
1215
+ placementHandler() {
1216
+ this.reposition(true);
1217
+ }
1218
+ //--------------------------------------------------------------------------
1219
+ //
1220
+ // Public Methods
1221
+ //
1222
+ //--------------------------------------------------------------------------
1223
+ /** Sets focus on the component's first focusable element. */
1224
+ async setFocus() {
1225
+ await componentFocusable(this);
1226
+ this.el.focus();
1227
+ }
1228
+ //--------------------------------------------------------------------------
1229
+ //
1230
+ // Lifecycle
1231
+ //
1232
+ //--------------------------------------------------------------------------
1233
+ connectedCallback() {
1234
+ var _a;
1235
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
1236
+ this.setFilteredPlacements();
1237
+ this.reposition(true);
1238
+ if (this.open) {
1239
+ this.openHandler(this.open);
1240
+ onToggleOpenCloseComponent(this);
1241
+ }
1242
+ connectInteractive(this);
1243
+ }
1244
+ componentWillLoad() {
1245
+ setUpLoadableComponent(this);
1246
+ }
1247
+ componentDidLoad() {
1248
+ setComponentLoaded(this);
1249
+ this.reposition(true);
1250
+ }
1251
+ componentDidRender() {
1252
+ updateHostInteraction(this);
1253
+ }
1254
+ disconnectedCallback() {
1255
+ var _a, _b;
1256
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
1257
+ (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
1258
+ disconnectInteractive(this);
1259
+ disconnectFloatingUI(this, this.referenceEl, this.floatingEl);
1260
+ }
1261
+ render() {
1262
+ const { open, guid } = this;
1263
+ return (h(Host, null, h("div", { class: "calcite-trigger-container", id: `${guid}-menubutton`, onClick: this.openCalciteDropdown, onKeyDown: this.keyDownHandler,
1264
+ // eslint-disable-next-line react/jsx-sort-props
1265
+ ref: this.setReferenceEl }, h("slot", { "aria-controls": `${guid}-menu`, "aria-expanded": toAriaBoolean(open), "aria-haspopup": "menu", name: SLOTS.dropdownTrigger, onSlotchange: this.updateTriggers })), h("div", { "aria-hidden": toAriaBoolean(!open), class: "calcite-dropdown-wrapper",
1266
+ // eslint-disable-next-line react/jsx-sort-props
1267
+ ref: this.setFloatingEl }, h("div", { "aria-labelledby": `${guid}-menubutton`, class: {
1268
+ ["calcite-dropdown-content"]: true,
1269
+ [FloatingCSS.animation]: true,
1270
+ [FloatingCSS.animationActive]: open,
1271
+ }, id: `${guid}-menu`, role: "menu",
1272
+ // eslint-disable-next-line react/jsx-sort-props
1273
+ ref: this.setScrollerAndTransitionEl }, h("slot", { onSlotchange: this.updateGroups })))));
1274
+ }
1275
+ //--------------------------------------------------------------------------
1276
+ //
1277
+ // Public Methods
1278
+ //
1279
+ //--------------------------------------------------------------------------
1280
+ /**
1281
+ * Updates the position of the component.
1282
+ *
1283
+ * @param delayed
1284
+ */
1285
+ async reposition(delayed = false) {
1286
+ const { floatingEl, referenceEl, placement, overlayPositioning, filteredFlipPlacements } = this;
1287
+ return reposition(this, {
1288
+ floatingEl,
1289
+ referenceEl,
1290
+ overlayPositioning,
1291
+ placement,
1292
+ flipPlacements: filteredFlipPlacements,
1293
+ type: "menu",
1294
+ }, delayed);
1295
+ }
1296
+ closeCalciteDropdownOnClick(event) {
1297
+ if (this.disabled ||
1298
+ !isPrimaryPointerButton(event) ||
1299
+ !this.open ||
1300
+ event.composedPath().includes(this.el)) {
1301
+ return;
1302
+ }
1303
+ this.closeCalciteDropdown(false);
1304
+ }
1305
+ closeCalciteDropdownOnEvent(event) {
1306
+ this.closeCalciteDropdown();
1307
+ event.stopPropagation();
1308
+ }
1309
+ closeCalciteDropdownOnOpenEvent(event) {
1310
+ if (event.composedPath().includes(this.el)) {
1311
+ return;
1312
+ }
1313
+ this.open = false;
1314
+ }
1315
+ pointerEnterHandler() {
1316
+ if (this.disabled || this.type !== "hover") {
1317
+ return;
1318
+ }
1319
+ this.openCalciteDropdown();
1320
+ }
1321
+ pointerLeaveHandler() {
1322
+ if (this.disabled || this.type !== "hover") {
1323
+ return;
1324
+ }
1325
+ this.closeCalciteDropdown();
1326
+ }
1327
+ calciteInternalDropdownItemKeyEvent(event) {
1328
+ const { keyboardEvent } = event.detail;
1329
+ const target = keyboardEvent.target;
1330
+ switch (keyboardEvent.key) {
1331
+ case "Tab":
1332
+ if (this.items.indexOf(target) === this.items.length - 1 && !keyboardEvent.shiftKey) {
1333
+ this.closeCalciteDropdown();
1334
+ }
1335
+ else if (this.items.indexOf(target) === 0 && keyboardEvent.shiftKey) {
1336
+ this.closeCalciteDropdown();
1337
+ }
1338
+ break;
1339
+ case "ArrowDown":
1340
+ focusElementInGroup(this.items, target, "next");
1341
+ break;
1342
+ case "ArrowUp":
1343
+ focusElementInGroup(this.items, target, "previous");
1344
+ break;
1345
+ case "Home":
1346
+ focusElementInGroup(this.items, target, "first");
1347
+ break;
1348
+ case "End":
1349
+ focusElementInGroup(this.items, target, "last");
1350
+ break;
1351
+ }
1352
+ event.stopPropagation();
1353
+ }
1354
+ handleItemSelect(event) {
1355
+ this.updateSelectedItems();
1356
+ event.stopPropagation();
1357
+ this.calciteDropdownSelect.emit();
1358
+ if (!this.closeOnSelectDisabled ||
1359
+ event.detail.requestedDropdownGroup.selectionMode === "none") {
1360
+ this.closeCalciteDropdown();
1361
+ }
1362
+ event.stopPropagation();
1363
+ }
1364
+ onBeforeOpen() {
1365
+ this.calciteDropdownBeforeOpen.emit();
1366
+ }
1367
+ onOpen() {
1368
+ this.calciteDropdownOpen.emit();
1369
+ }
1370
+ onBeforeClose() {
1371
+ this.calciteDropdownBeforeClose.emit();
1372
+ }
1373
+ onClose() {
1374
+ this.calciteDropdownClose.emit();
1375
+ }
1376
+ updateSelectedItems() {
1377
+ this.selectedItems = this.items.filter((item) => item.selected);
1378
+ }
1379
+ getMaxScrollerHeight() {
1380
+ const { maxItems, items } = this;
1381
+ let itemsToProcess = 0;
1382
+ let maxScrollerHeight = 0;
1383
+ let groupHeaderHeight;
1384
+ this.groups.forEach((group) => {
1385
+ if (maxItems > 0 && itemsToProcess < maxItems) {
1386
+ Array.from(group.children).forEach((item, index) => {
1387
+ if (index === 0) {
1388
+ if (isNaN(groupHeaderHeight)) {
1389
+ groupHeaderHeight = item.offsetTop;
1390
+ }
1391
+ maxScrollerHeight += groupHeaderHeight;
1392
+ }
1393
+ if (itemsToProcess < maxItems) {
1394
+ maxScrollerHeight += item.offsetHeight;
1395
+ itemsToProcess += 1;
1396
+ }
1397
+ });
1398
+ }
1399
+ });
1400
+ return items.length > maxItems ? maxScrollerHeight : 0;
1401
+ }
1402
+ closeCalciteDropdown(focusTrigger = true) {
1403
+ this.open = false;
1404
+ if (focusTrigger) {
1405
+ focusElement(this.triggers[0]);
1406
+ }
1407
+ }
1408
+ getFocusableElement(item) {
1409
+ if (!item) {
1410
+ return;
1411
+ }
1412
+ const target = item.attributes.isLink
1413
+ ? item.shadowRoot.querySelector("a")
1414
+ : item;
1415
+ focusElement(target);
1416
+ }
1417
+ static get delegatesFocus() { return true; }
1418
+ get el() { return getElement(this); }
1419
+ static get watchers() { return {
1420
+ "open": ["openHandler"],
1421
+ "disabled": ["handleDisabledChange"],
1422
+ "flipPlacements": ["flipPlacementsHandler"],
1423
+ "maxItems": ["maxItemsHandler"],
1424
+ "overlayPositioning": ["overlayPositioningHandler"],
1425
+ "placement": ["placementHandler"]
1426
+ }; }
1427
+ };
1428
1428
  Dropdown.style = dropdownCss;
1429
1429
 
1430
1430
  /*!
@@ -1440,57 +1440,57 @@ const CSS$1 = {
1440
1440
 
1441
1441
  const dropdownGroupCss = ":host{position:relative;display:block}.container{text-align:start}.container--s{font-size:var(--calcite-font-size--2);line-height:1rem}.container--s .dropdown-title{padding:0.5rem}.container--m{font-size:var(--calcite-font-size--1);line-height:1rem}.container--m .dropdown-title{padding:0.75rem}.container--l{font-size:var(--calcite-font-size-0);line-height:1.25rem}.container--l .dropdown-title{padding:1rem}.dropdown-title{margin-block-end:-1px;display:block;cursor:default;overflow-wrap:break-word;border-width:0px;border-block-end-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);font-weight:var(--calcite-font-weight-bold);color:var(--calcite-ui-text-2)}.dropdown-separator{display:block;block-size:1px;background-color:var(--calcite-ui-border-3)}:host([hidden]){display:none}[hidden]{display:none}";
1442
1442
 
1443
- const DropdownGroup = class {
1444
- constructor(hostRef) {
1445
- registerInstance(this, hostRef);
1446
- this.calciteInternalDropdownItemChange = createEvent(this, "calciteInternalDropdownItemChange", 6);
1447
- this.groupTitle = undefined;
1448
- this.selectionMode = "single";
1449
- this.scale = undefined;
1450
- }
1451
- //--------------------------------------------------------------------------
1452
- //
1453
- // Lifecycle
1454
- //
1455
- //--------------------------------------------------------------------------
1456
- componentWillLoad() {
1457
- this.groupPosition = this.getGroupPosition();
1458
- }
1459
- render() {
1460
- const scale = this.scale || getElementProp(this.el, "scale", "m");
1461
- const groupTitle = this.groupTitle ? (h("span", { "aria-hidden": "true", class: "dropdown-title" }, this.groupTitle)) : null;
1462
- const dropdownSeparator = this.groupPosition > 0 ? h("div", { class: "dropdown-separator", role: "separator" }) : null;
1463
- return (h(Host, { "aria-label": this.groupTitle, role: "group" }, h("div", { class: {
1464
- container: true,
1465
- [CSS$1.containerSmall]: scale === "s",
1466
- [CSS$1.containerMedium]: scale === "m",
1467
- [CSS$1.containerLarge]: scale === "l",
1468
- }, title: this.groupTitle }, dropdownSeparator, groupTitle, h("slot", null))));
1469
- }
1470
- //--------------------------------------------------------------------------
1471
- //
1472
- // Event Listeners
1473
- //
1474
- //--------------------------------------------------------------------------
1475
- updateActiveItemOnChange(event) {
1476
- this.requestedDropdownGroup = event.detail.requestedDropdownGroup;
1477
- this.requestedDropdownItem = event.detail.requestedDropdownItem;
1478
- this.calciteInternalDropdownItemChange.emit({
1479
- requestedDropdownGroup: this.requestedDropdownGroup,
1480
- requestedDropdownItem: this.requestedDropdownItem,
1481
- });
1482
- }
1483
- //--------------------------------------------------------------------------
1484
- //
1485
- // Private Methods
1486
- //
1487
- //--------------------------------------------------------------------------
1488
- getGroupPosition() {
1489
- return Array.prototype.indexOf.call(this.el.parentElement.querySelectorAll("calcite-dropdown-group"), this.el);
1490
- }
1491
- static get delegatesFocus() { return true; }
1492
- get el() { return getElement(this); }
1493
- };
1443
+ const DropdownGroup = class {
1444
+ constructor(hostRef) {
1445
+ registerInstance(this, hostRef);
1446
+ this.calciteInternalDropdownItemChange = createEvent(this, "calciteInternalDropdownItemChange", 6);
1447
+ this.groupTitle = undefined;
1448
+ this.selectionMode = "single";
1449
+ this.scale = undefined;
1450
+ }
1451
+ //--------------------------------------------------------------------------
1452
+ //
1453
+ // Lifecycle
1454
+ //
1455
+ //--------------------------------------------------------------------------
1456
+ componentWillLoad() {
1457
+ this.groupPosition = this.getGroupPosition();
1458
+ }
1459
+ render() {
1460
+ const scale = this.scale || getElementProp(this.el, "scale", "m");
1461
+ const groupTitle = this.groupTitle ? (h("span", { "aria-hidden": "true", class: "dropdown-title" }, this.groupTitle)) : null;
1462
+ const dropdownSeparator = this.groupPosition > 0 ? h("div", { class: "dropdown-separator", role: "separator" }) : null;
1463
+ return (h(Host, { "aria-label": this.groupTitle, role: "group" }, h("div", { class: {
1464
+ container: true,
1465
+ [CSS$1.containerSmall]: scale === "s",
1466
+ [CSS$1.containerMedium]: scale === "m",
1467
+ [CSS$1.containerLarge]: scale === "l",
1468
+ }, title: this.groupTitle }, dropdownSeparator, groupTitle, h("slot", null))));
1469
+ }
1470
+ //--------------------------------------------------------------------------
1471
+ //
1472
+ // Event Listeners
1473
+ //
1474
+ //--------------------------------------------------------------------------
1475
+ updateActiveItemOnChange(event) {
1476
+ this.requestedDropdownGroup = event.detail.requestedDropdownGroup;
1477
+ this.requestedDropdownItem = event.detail.requestedDropdownItem;
1478
+ this.calciteInternalDropdownItemChange.emit({
1479
+ requestedDropdownGroup: this.requestedDropdownGroup,
1480
+ requestedDropdownItem: this.requestedDropdownItem,
1481
+ });
1482
+ }
1483
+ //--------------------------------------------------------------------------
1484
+ //
1485
+ // Private Methods
1486
+ //
1487
+ //--------------------------------------------------------------------------
1488
+ getGroupPosition() {
1489
+ return Array.prototype.indexOf.call(this.el.parentElement.querySelectorAll("calcite-dropdown-group"), this.el);
1490
+ }
1491
+ static get delegatesFocus() { return true; }
1492
+ get el() { return getElement(this); }
1493
+ };
1494
1494
  DropdownGroup.style = dropdownGroupCss;
1495
1495
 
1496
1496
  /*!
@@ -1515,376 +1515,376 @@ const CSS = {
1515
1515
 
1516
1516
  const dropdownItemCss = ".container--s{padding-block:0.25rem;font-size:var(--calcite-font-size--2);line-height:1rem;padding-inline-end:0.5rem;padding-inline-start:1.5rem}.container--m{padding-block:0.5rem;font-size:var(--calcite-font-size--1);line-height:1rem;padding-inline-end:0.75rem;padding-inline-start:2rem}.container--l{padding-block:0.625rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;padding-inline-end:1rem;padding-inline-start:2.5rem}.container--s.container--none-selection{padding-inline-start:0.25rem}.container--s.container--none-selection .dropdown-link{padding-inline-start:0px}.container--m.container--none-selection{padding-inline-start:0.5rem}.container--m.container--none-selection .dropdown-link{padding-inline-start:0px}.container--l.container--none-selection{padding-inline-start:0.75rem}.container--l.container--none-selection .dropdown-link{padding-inline-start:0px}:host{position:relative;display:flex;flex-grow:1;align-items:center}.container{position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;color:var(--calcite-ui-text-3);-webkit-text-decoration-line:none;text-decoration-line:none;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);text-align:start}.dropdown-item-content{flex:1 1 auto;padding-block:0.125rem;padding-inline-end:auto;padding-inline-start:0.25rem}:host,.container--link a{outline-color:transparent}:host(:focus){outline:2px solid transparent;outline-offset:2px;outline:2px solid var(--calcite-ui-focus-color, var(--calcite-ui-brand));outline-offset:calc(\n -2px *\n calc(\n 1 -\n 2 * clamp(\n 0,\n var(--calcite-ui-focus-offset-invert),\n 1\n )\n )\n )}.container--link{padding:0px}.container--link a{position:relative;display:flex;flex-grow:1;cursor:pointer;align-items:center;color:var(--calcite-ui-text-3);-webkit-text-decoration-line:none;text-decoration-line:none;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.container--s .dropdown-link{padding-block:0.25rem;font-size:var(--calcite-font-size--2);line-height:1rem;padding-inline-end:0.5rem;padding-inline-start:1.5rem}.container--m .dropdown-link{padding-block:0.5rem;font-size:var(--calcite-font-size--1);line-height:1rem;padding-inline-end:0.75rem;padding-inline-start:2rem}.container--l .dropdown-link{padding-block:0.75rem;font-size:var(--calcite-font-size-0);line-height:1.25rem;padding-inline-end:1rem;padding-inline-start:2.5rem}:host(:hover) .container,:host(:active) .container{background-color:var(--calcite-ui-foreground-2);color:var(--calcite-ui-text-1);-webkit-text-decoration-line:none;text-decoration-line:none}:host(:hover) .container--link .dropdown-link,:host(:active) .container--link .dropdown-link{color:var(--calcite-ui-text-1)}:host(:focus) .container{color:var(--calcite-ui-text-1);-webkit-text-decoration-line:none;text-decoration-line:none}:host(:active) .container{background-color:var(--calcite-ui-foreground-3)}:host(:hover) .container:before,:host(:active) .container:before,:host(:focus) .container:before{opacity:1}:host([selected]) .container:not(.container--none-selection),:host([selected]) .container--link .dropdown-link{font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1)}:host([selected]) .container:not(.container--none-selection):before,:host([selected]) .container--link .dropdown-link:before{opacity:1;color:var(--calcite-ui-brand)}:host([selected]) .container:not(.container--none-selection) calcite-icon,:host([selected]) .container--link .dropdown-link calcite-icon{color:var(--calcite-ui-brand)}.container--multi-selection:before,.container--none-selection:before{display:none}.container--s:before{inset-inline-start:0.5rem}.container--m:before{inset-inline-start:0.75rem}.container--l:before{inset-inline-start:1rem}.dropdown-item-icon{position:absolute;opacity:0;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:scale(0.9)}.container--s .dropdown-item-icon{inset-inline-start:0.25rem}.container--m .dropdown-item-icon{inset-inline-start:0.5rem}.container--l .dropdown-item-icon{inset-inline-start:0.75rem}:host(:hover) .dropdown-item-icon{color:var(--calcite-ui-border-1);opacity:1}:host([selected]) .dropdown-item-icon{color:var(--calcite-ui-brand);opacity:1}.container--s .dropdown-item-icon-start{margin-inline-end:0.5rem;margin-inline-start:0.25rem}.container--s .dropdown-item-icon-end{margin-inline-start:0.5rem}.container--m .dropdown-item-icon-start{margin-inline-end:0.75rem;margin-inline-start:0.25rem}.container--m .dropdown-item-icon-end{margin-inline-start:0.75rem}.container--l .dropdown-item-icon-start{margin-inline-end:1rem;margin-inline-start:0.25rem}.container--l .dropdown-item-icon-end{margin-inline-start:1rem}:host([hidden]){display:none}[hidden]{display:none}";
1517
1517
 
1518
- const DropdownItem = class {
1519
- constructor(hostRef) {
1520
- registerInstance(this, hostRef);
1521
- this.calciteDropdownItemSelect = createEvent(this, "calciteDropdownItemSelect", 6);
1522
- this.calciteInternalDropdownItemSelect = createEvent(this, "calciteInternalDropdownItemSelect", 6);
1523
- this.calciteInternalDropdownItemKeyEvent = createEvent(this, "calciteInternalDropdownItemKeyEvent", 6);
1524
- this.calciteInternalDropdownCloseRequest = createEvent(this, "calciteInternalDropdownCloseRequest", 6);
1525
- /** Specifies the scale of dropdown-item controlled by the parent, defaults to m */
1526
- this.scale = "m";
1527
- this.selected = false;
1528
- this.iconFlipRtl = undefined;
1529
- this.iconStart = undefined;
1530
- this.iconEnd = undefined;
1531
- this.href = undefined;
1532
- this.label = undefined;
1533
- this.rel = undefined;
1534
- this.target = undefined;
1535
- }
1536
- //--------------------------------------------------------------------------
1537
- //
1538
- // Public Methods
1539
- //
1540
- //--------------------------------------------------------------------------
1541
- /** Sets focus on the component. */
1542
- async setFocus() {
1543
- var _a;
1544
- await componentFocusable(this);
1545
- (_a = this.el) === null || _a === void 0 ? void 0 : _a.focus();
1546
- }
1547
- //--------------------------------------------------------------------------
1548
- //
1549
- // Lifecycle
1550
- //
1551
- //--------------------------------------------------------------------------
1552
- componentWillLoad() {
1553
- setUpLoadableComponent(this);
1554
- this.initialize();
1555
- }
1556
- componentDidLoad() {
1557
- setComponentLoaded(this);
1558
- }
1559
- connectedCallback() {
1560
- this.initialize();
1561
- }
1562
- render() {
1563
- const scale = getElementProp(this.el, "scale", this.scale);
1564
- const { href, selectionMode, label, iconFlipRtl } = this;
1565
- const iconStartEl = (h("calcite-icon", { class: CSS.iconStart, flipRtl: iconFlipRtl === "start" || iconFlipRtl === "both", icon: this.iconStart, scale: scale === "l" ? "m" : "s" }));
1566
- const contentNode = (h("span", { class: CSS.itemContent }, h("slot", null)));
1567
- const iconEndEl = (h("calcite-icon", { class: CSS.iconEnd, flipRtl: iconFlipRtl === "end" || iconFlipRtl === "both", icon: this.iconEnd, scale: scale === "l" ? "m" : "s" }));
1568
- const slottedContent = this.iconStart && this.iconEnd
1569
- ? [iconStartEl, contentNode, iconEndEl]
1570
- : this.iconStart
1571
- ? [iconStartEl, contentNode]
1572
- : this.iconEnd
1573
- ? [contentNode, iconEndEl]
1574
- : contentNode;
1575
- const contentEl = !href ? (slottedContent) : (h("a", { "aria-label": label, class: CSS.link, href: href, rel: this.rel, tabIndex: -1, target: this.target,
1576
- // eslint-disable-next-line react/jsx-sort-props
1577
- ref: (el) => (this.childLink = el) }, slottedContent));
1578
- const itemRole = href
1579
- ? null
1580
- : selectionMode === "single"
1581
- ? "menuitemradio"
1582
- : selectionMode === "multiple"
1583
- ? "menuitemcheckbox"
1584
- : "menuitem";
1585
- const itemAria = selectionMode !== "none" ? toAriaBoolean(this.selected) : null;
1586
- return (h(Host, { "aria-checked": itemAria, "aria-label": !href ? label : "", role: itemRole, tabindex: "0" }, h("div", { class: {
1587
- container: true,
1588
- [CSS.containerLink]: !!href,
1589
- [CSS.containerSmall]: scale === "s",
1590
- [CSS.containerMedium]: scale === "m",
1591
- [CSS.containerLarge]: scale === "l",
1592
- [CSS.containerMulti]: selectionMode === "multiple",
1593
- [CSS.containerSingle]: selectionMode === "single",
1594
- [CSS.containerNone]: selectionMode === "none",
1595
- } }, selectionMode !== "none" ? (h("calcite-icon", { class: CSS.icon, icon: selectionMode === "multiple" ? "check" : "bullet-point", scale: scale === "l" ? "m" : "s" })) : null, contentEl)));
1596
- }
1597
- //--------------------------------------------------------------------------
1598
- //
1599
- // Event Listeners
1600
- //
1601
- //--------------------------------------------------------------------------
1602
- onClick() {
1603
- this.emitRequestedItem();
1604
- }
1605
- keyDownHandler(event) {
1606
- switch (event.key) {
1607
- case " ":
1608
- case "Enter":
1609
- this.emitRequestedItem();
1610
- if (this.href) {
1611
- this.childLink.click();
1612
- }
1613
- event.preventDefault();
1614
- break;
1615
- case "Escape":
1616
- this.calciteInternalDropdownCloseRequest.emit();
1617
- event.preventDefault();
1618
- break;
1619
- case "Tab":
1620
- this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
1621
- break;
1622
- case "ArrowUp":
1623
- case "ArrowDown":
1624
- case "Home":
1625
- case "End":
1626
- event.preventDefault();
1627
- this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
1628
- break;
1629
- }
1630
- }
1631
- updateActiveItemOnChange(event) {
1632
- const parentEmittedChange = event.composedPath().includes(this.parentDropdownGroupEl);
1633
- if (parentEmittedChange) {
1634
- this.requestedDropdownGroup = event.detail.requestedDropdownGroup;
1635
- this.requestedDropdownItem = event.detail.requestedDropdownItem;
1636
- this.determineActiveItem();
1637
- }
1638
- event.stopPropagation();
1639
- }
1640
- //--------------------------------------------------------------------------
1641
- //
1642
- // Private Methods
1643
- //
1644
- //--------------------------------------------------------------------------
1645
- initialize() {
1646
- this.selectionMode = getElementProp(this.el, "selection-mode", "single");
1647
- this.parentDropdownGroupEl = this.el.closest("calcite-dropdown-group");
1648
- if (this.selectionMode === "none") {
1649
- this.selected = false;
1650
- }
1651
- }
1652
- determineActiveItem() {
1653
- switch (this.selectionMode) {
1654
- case "multiple":
1655
- if (this.el === this.requestedDropdownItem) {
1656
- this.selected = !this.selected;
1657
- }
1658
- break;
1659
- case "single":
1660
- if (this.el === this.requestedDropdownItem) {
1661
- this.selected = true;
1662
- }
1663
- else if (this.requestedDropdownGroup === this.parentDropdownGroupEl) {
1664
- this.selected = false;
1665
- }
1666
- break;
1667
- case "none":
1668
- this.selected = false;
1669
- break;
1670
- }
1671
- }
1672
- emitRequestedItem() {
1673
- this.calciteDropdownItemSelect.emit();
1674
- this.calciteInternalDropdownItemSelect.emit({
1675
- requestedDropdownItem: this.el,
1676
- requestedDropdownGroup: this.parentDropdownGroupEl,
1677
- });
1678
- }
1679
- get el() { return getElement(this); }
1680
- };
1518
+ const DropdownItem = class {
1519
+ constructor(hostRef) {
1520
+ registerInstance(this, hostRef);
1521
+ this.calciteDropdownItemSelect = createEvent(this, "calciteDropdownItemSelect", 6);
1522
+ this.calciteInternalDropdownItemSelect = createEvent(this, "calciteInternalDropdownItemSelect", 6);
1523
+ this.calciteInternalDropdownItemKeyEvent = createEvent(this, "calciteInternalDropdownItemKeyEvent", 6);
1524
+ this.calciteInternalDropdownCloseRequest = createEvent(this, "calciteInternalDropdownCloseRequest", 6);
1525
+ /** Specifies the scale of dropdown-item controlled by the parent, defaults to m */
1526
+ this.scale = "m";
1527
+ this.selected = false;
1528
+ this.iconFlipRtl = undefined;
1529
+ this.iconStart = undefined;
1530
+ this.iconEnd = undefined;
1531
+ this.href = undefined;
1532
+ this.label = undefined;
1533
+ this.rel = undefined;
1534
+ this.target = undefined;
1535
+ }
1536
+ //--------------------------------------------------------------------------
1537
+ //
1538
+ // Public Methods
1539
+ //
1540
+ //--------------------------------------------------------------------------
1541
+ /** Sets focus on the component. */
1542
+ async setFocus() {
1543
+ var _a;
1544
+ await componentFocusable(this);
1545
+ (_a = this.el) === null || _a === void 0 ? void 0 : _a.focus();
1546
+ }
1547
+ //--------------------------------------------------------------------------
1548
+ //
1549
+ // Lifecycle
1550
+ //
1551
+ //--------------------------------------------------------------------------
1552
+ componentWillLoad() {
1553
+ setUpLoadableComponent(this);
1554
+ this.initialize();
1555
+ }
1556
+ componentDidLoad() {
1557
+ setComponentLoaded(this);
1558
+ }
1559
+ connectedCallback() {
1560
+ this.initialize();
1561
+ }
1562
+ render() {
1563
+ const scale = getElementProp(this.el, "scale", this.scale);
1564
+ const { href, selectionMode, label, iconFlipRtl } = this;
1565
+ const iconStartEl = (h("calcite-icon", { class: CSS.iconStart, flipRtl: iconFlipRtl === "start" || iconFlipRtl === "both", icon: this.iconStart, scale: scale === "l" ? "m" : "s" }));
1566
+ const contentNode = (h("span", { class: CSS.itemContent }, h("slot", null)));
1567
+ const iconEndEl = (h("calcite-icon", { class: CSS.iconEnd, flipRtl: iconFlipRtl === "end" || iconFlipRtl === "both", icon: this.iconEnd, scale: scale === "l" ? "m" : "s" }));
1568
+ const slottedContent = this.iconStart && this.iconEnd
1569
+ ? [iconStartEl, contentNode, iconEndEl]
1570
+ : this.iconStart
1571
+ ? [iconStartEl, contentNode]
1572
+ : this.iconEnd
1573
+ ? [contentNode, iconEndEl]
1574
+ : contentNode;
1575
+ const contentEl = !href ? (slottedContent) : (h("a", { "aria-label": label, class: CSS.link, href: href, rel: this.rel, tabIndex: -1, target: this.target,
1576
+ // eslint-disable-next-line react/jsx-sort-props
1577
+ ref: (el) => (this.childLink = el) }, slottedContent));
1578
+ const itemRole = href
1579
+ ? null
1580
+ : selectionMode === "single"
1581
+ ? "menuitemradio"
1582
+ : selectionMode === "multiple"
1583
+ ? "menuitemcheckbox"
1584
+ : "menuitem";
1585
+ const itemAria = selectionMode !== "none" ? toAriaBoolean(this.selected) : null;
1586
+ return (h(Host, { "aria-checked": itemAria, "aria-label": !href ? label : "", role: itemRole, tabindex: "0" }, h("div", { class: {
1587
+ container: true,
1588
+ [CSS.containerLink]: !!href,
1589
+ [CSS.containerSmall]: scale === "s",
1590
+ [CSS.containerMedium]: scale === "m",
1591
+ [CSS.containerLarge]: scale === "l",
1592
+ [CSS.containerMulti]: selectionMode === "multiple",
1593
+ [CSS.containerSingle]: selectionMode === "single",
1594
+ [CSS.containerNone]: selectionMode === "none",
1595
+ } }, selectionMode !== "none" ? (h("calcite-icon", { class: CSS.icon, icon: selectionMode === "multiple" ? "check" : "bullet-point", scale: scale === "l" ? "m" : "s" })) : null, contentEl)));
1596
+ }
1597
+ //--------------------------------------------------------------------------
1598
+ //
1599
+ // Event Listeners
1600
+ //
1601
+ //--------------------------------------------------------------------------
1602
+ onClick() {
1603
+ this.emitRequestedItem();
1604
+ }
1605
+ keyDownHandler(event) {
1606
+ switch (event.key) {
1607
+ case " ":
1608
+ case "Enter":
1609
+ this.emitRequestedItem();
1610
+ if (this.href) {
1611
+ this.childLink.click();
1612
+ }
1613
+ event.preventDefault();
1614
+ break;
1615
+ case "Escape":
1616
+ this.calciteInternalDropdownCloseRequest.emit();
1617
+ event.preventDefault();
1618
+ break;
1619
+ case "Tab":
1620
+ this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
1621
+ break;
1622
+ case "ArrowUp":
1623
+ case "ArrowDown":
1624
+ case "Home":
1625
+ case "End":
1626
+ event.preventDefault();
1627
+ this.calciteInternalDropdownItemKeyEvent.emit({ keyboardEvent: event });
1628
+ break;
1629
+ }
1630
+ }
1631
+ updateActiveItemOnChange(event) {
1632
+ const parentEmittedChange = event.composedPath().includes(this.parentDropdownGroupEl);
1633
+ if (parentEmittedChange) {
1634
+ this.requestedDropdownGroup = event.detail.requestedDropdownGroup;
1635
+ this.requestedDropdownItem = event.detail.requestedDropdownItem;
1636
+ this.determineActiveItem();
1637
+ }
1638
+ event.stopPropagation();
1639
+ }
1640
+ //--------------------------------------------------------------------------
1641
+ //
1642
+ // Private Methods
1643
+ //
1644
+ //--------------------------------------------------------------------------
1645
+ initialize() {
1646
+ this.selectionMode = getElementProp(this.el, "selection-mode", "single");
1647
+ this.parentDropdownGroupEl = this.el.closest("calcite-dropdown-group");
1648
+ if (this.selectionMode === "none") {
1649
+ this.selected = false;
1650
+ }
1651
+ }
1652
+ determineActiveItem() {
1653
+ switch (this.selectionMode) {
1654
+ case "multiple":
1655
+ if (this.el === this.requestedDropdownItem) {
1656
+ this.selected = !this.selected;
1657
+ }
1658
+ break;
1659
+ case "single":
1660
+ if (this.el === this.requestedDropdownItem) {
1661
+ this.selected = true;
1662
+ }
1663
+ else if (this.requestedDropdownGroup === this.parentDropdownGroupEl) {
1664
+ this.selected = false;
1665
+ }
1666
+ break;
1667
+ case "none":
1668
+ this.selected = false;
1669
+ break;
1670
+ }
1671
+ }
1672
+ emitRequestedItem() {
1673
+ this.calciteDropdownItemSelect.emit();
1674
+ this.calciteInternalDropdownItemSelect.emit({
1675
+ requestedDropdownItem: this.el,
1676
+ requestedDropdownGroup: this.parentDropdownGroupEl,
1677
+ });
1678
+ }
1679
+ get el() { return getElement(this); }
1680
+ };
1681
1681
  DropdownItem.style = dropdownItemCss;
1682
1682
 
1683
1683
  const mapLayerPickerCss = ":host{display:block}.map-layer-picker-container{width:100%}.map-layer-picker{position:relative;width:100%;display:inline-block}.padding-bottom-1{padding-bottom:1rem}.layer-picker-dropdown{height:100%;width:100%}.max-width-350{max-width:350px}";
1684
1684
 
1685
- const MapLayerPicker = class {
1686
- constructor(hostRef) {
1687
- registerInstance(this, hostRef);
1688
- this.layerSelectionChange = createEvent(this, "layerSelectionChange", 7);
1689
- this.appearance = "transparent";
1690
- this.enabledLayerIds = [];
1691
- this.enabledTableIds = [];
1692
- this.mapView = undefined;
1693
- this.placeholderIcon = "";
1694
- this.selectedIds = [];
1695
- this.scale = "m";
1696
- this.showTables = true;
1697
- this.type = "select";
1698
- this.ids = [];
1699
- this.selectedName = "";
1700
- }
1701
- //--------------------------------------------------------------------------
1702
- //
1703
- // Watch handlers
1704
- //
1705
- //--------------------------------------------------------------------------
1706
- /**
1707
- * Called each time the mapView prop is changed.
1708
- *
1709
- */
1710
- async mapViewWatchHandler() {
1711
- await this._setLayers();
1712
- const hasLayers = Object.keys(state.layerNameHash).length > 0;
1713
- const hasTables = Object.keys(state.tableNameHash).length > 0 && this.showTables;
1714
- if (hasLayers || hasTables) {
1715
- this._setSelectedLayer(this.ids[0], hasLayers ? "layer" : "table");
1716
- }
1717
- }
1718
- //--------------------------------------------------------------------------
1719
- //
1720
- // Functions (lifecycle)
1721
- //
1722
- //--------------------------------------------------------------------------
1723
- /**
1724
- * StencilJS: Called once just after the component is first connected to the DOM.
1725
- */
1726
- async componentWillLoad() {
1727
- await this._setLayers();
1728
- if (this.ids.length > 0 || this.selectedIds.length === 1) {
1729
- this.layerSelectionChange.emit(this.selectedIds.length === 1 ? [this.selectedIds[0]] : [this.ids[0]]);
1730
- }
1731
- }
1732
- /**
1733
- * Renders the component.
1734
- */
1735
- render() {
1736
- return (h(Host, null, h("div", { class: "map-layer-picker-container" }, h("div", { class: "map-layer-picker" }, this.type === "combobox" ? this._getCombobox() :
1737
- this.type === "select" ? this._getSelect() : this._getDropdown()))));
1738
- }
1739
- /**
1740
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
1741
- */
1742
- async componentDidLoad() {
1743
- if (this.ids.length > 0 || this.selectedIds.length === 1) {
1744
- const id = this.selectedIds.length === 1 ? this.selectedIds[0] : this.ids[0];
1745
- if (this.type === "select") {
1746
- this._layerElement.value = id;
1747
- }
1748
- else if (this.type === "dropdown") {
1749
- this.selectedName = Object.keys(state.layerNameHash).indexOf(id) > -1 ?
1750
- state.layerNameHash[id] : Object.keys(state.tableNameHash).indexOf(id) > -1 ?
1751
- state.tableNameHash[id] : "";
1752
- }
1753
- }
1754
- }
1755
- //--------------------------------------------------------------------------
1756
- //
1757
- // Functions (protected)
1758
- //
1759
- //--------------------------------------------------------------------------
1760
- /**
1761
- * Create a list of layers from the map
1762
- *
1763
- * Used for selecting a single layer.
1764
- *
1765
- * @returns Calcite Select component with the ids of the layers from the map
1766
- */
1767
- _getSelect() {
1768
- return (h("calcite-select", { label: "", onCalciteSelectChange: () => this._layerSelectionChange(), ref: (el) => { this._layerElement = el; }, scale: this.scale }, this._getMapLayerOptions()));
1769
- }
1770
- /**
1771
- * Create a list of layer ids from the map
1772
- *
1773
- * Used for selecting multiple layers
1774
- *
1775
- * @returns Calcite ComboBox component with the ids of the layers from the map
1776
- */
1777
- _getCombobox() {
1778
- return (h("calcite-combobox", { clearDisabled: true, label: "", onCalciteComboboxChange: () => this._layerSelectionChange(), "placeholder-icon": this.placeholderIcon, ref: (el) => { this._layerElement = el; }, scale: this.scale, "selection-mode": "single" }, this._getMapLayerOptions()));
1779
- }
1780
- /**
1781
- * Hydrate a dropdown component with items to display the layer names
1782
- *
1783
- * @returns Array of Dropdown items with layer names
1784
- */
1785
- _getDropdown() {
1786
- return (h("calcite-dropdown", { class: "layer-picker-dropdown" }, h("calcite-action", { slot: "trigger", text: "" }, h("calcite-button", { alignment: "icon-end-space-between", appearance: this.appearance, class: "max-width-350", iconEnd: "chevron-down", iconStart: "layers", kind: "neutral", width: "full" }, h("div", null, this.selectedName))), h("calcite-dropdown-group", { "selection-mode": "single" }, this._getMapLayerOptions())));
1787
- }
1788
- /**
1789
- * Get the appropriate type of dom nodes for each valid layer or table
1790
- *
1791
- * @returns Array of dom nodes with the names of the layers and optionally of the tables
1792
- */
1793
- _getMapLayerOptions() {
1794
- return this.ids.reduce((prev, cur) => {
1795
- if (this._validLayer(cur)) {
1796
- prev.push(this._getItem(cur, "layer"));
1797
- }
1798
- else if (this._validTable(cur)) {
1799
- prev.push(this._getItem(cur, "table"));
1800
- }
1801
- return prev;
1802
- }, []);
1803
- }
1804
- /**
1805
- * Get the appropriate type of dom node for the current layer or table id
1806
- *
1807
- * @returns A dom node with the name of the layer or table
1808
- */
1809
- _getItem(id, itemType) {
1810
- const name = itemType === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
1811
- return this.type === "combobox" ? (h("calcite-combobox-item", { textLabel: name, value: id })) :
1812
- this.type === "select" ? (h("calcite-option", { label: name, value: id })) :
1813
- (h("calcite-dropdown-item", { onClick: () => void this._setSelectedLayer(id, itemType) }, name));
1814
- }
1815
- /**
1816
- * Store the layer name based on the user selection
1817
- */
1818
- _setSelectedLayer(id, type) {
1819
- this.selectedName = type === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
1820
- this.selectedIds = [id];
1821
- this.layerSelectionChange.emit(this.selectedIds);
1822
- }
1823
- /**
1824
- * Fetch the ids of the layers from the map
1825
- *
1826
- * @returns Promise when the operation has completed
1827
- */
1828
- async _setLayers() {
1829
- if (this.mapView) {
1830
- const mapLayerIds = await getMapLayerIds(this.mapView);
1831
- const mapTableIds = this.showTables ? await getMapTableIds(this.mapView) : [];
1832
- this.ids = [
1833
- ...mapLayerIds.filter(n => { var _a; return ((_a = this.enabledLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledLayerIds.indexOf(n) > -1 : true; }),
1834
- ...mapTableIds.filter(n => { var _a; return ((_a = this.enabledTableIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledTableIds.indexOf(n) > -1 : true; }),
1835
- ];
1836
- await this._initStateHash();
1837
- }
1838
- }
1839
- /**
1840
- * Create a layer id:title hash for layer name display
1841
- *
1842
- * @returns Promise when the operation has completed
1843
- */
1844
- async _initStateHash() {
1845
- if (this.mapView) {
1846
- state.layerNameHash = await getMapLayerHash(this.mapView);
1847
- state.tableNameHash = this.showTables ? await getMapTableHash(this.mapView) : {};
1848
- }
1849
- }
1850
- /**
1851
- * Evaluate if the id exists in the current hash and verify if it should be excluded
1852
- *
1853
- * @returns boolean when true the layer will be used in the current layer picker type
1854
- */
1855
- _validLayer(id) {
1856
- const name = state.layerNameHash[id];
1857
- return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
1858
- this.enabledLayerIds.indexOf(id) > -1 : name);
1859
- }
1860
- /**
1861
- * Evaluate if the id exists in the current hash and verify if it should be excluded
1862
- *
1863
- * @returns boolean when true the table will be used in the current layer picker type
1864
- */
1865
- _validTable(id) {
1866
- const name = state.tableNameHash[id];
1867
- const validName = name && this.showTables;
1868
- return validName ? state.managedTables.indexOf(name) < 0 &&
1869
- (this.enabledTableIds.length > 0 ? this.enabledTableIds.indexOf(id) > -1 : true) : validName;
1870
- }
1871
- /**
1872
- * Fetch the ids of the layers from the map
1873
- *
1874
- * @returns Promise when the operation has completed
1875
- */
1876
- _layerSelectionChange() {
1877
- const ids = Array.isArray(this._layerElement.value) ? this._layerElement.value : [this._layerElement.value];
1878
- if (JSON.stringify(ids) !== JSON.stringify([""])) {
1879
- this.selectedIds = ids;
1880
- this.layerSelectionChange.emit(this.selectedIds);
1881
- }
1882
- }
1883
- get el() { return getElement(this); }
1884
- static get watchers() { return {
1885
- "mapView": ["mapViewWatchHandler"]
1886
- }; }
1887
- };
1685
+ const MapLayerPicker = class {
1686
+ constructor(hostRef) {
1687
+ registerInstance(this, hostRef);
1688
+ this.layerSelectionChange = createEvent(this, "layerSelectionChange", 7);
1689
+ this.appearance = "transparent";
1690
+ this.enabledLayerIds = [];
1691
+ this.enabledTableIds = [];
1692
+ this.mapView = undefined;
1693
+ this.placeholderIcon = "";
1694
+ this.selectedIds = [];
1695
+ this.scale = "m";
1696
+ this.showTables = true;
1697
+ this.type = "select";
1698
+ this.ids = [];
1699
+ this.selectedName = "";
1700
+ }
1701
+ //--------------------------------------------------------------------------
1702
+ //
1703
+ // Watch handlers
1704
+ //
1705
+ //--------------------------------------------------------------------------
1706
+ /**
1707
+ * Called each time the mapView prop is changed.
1708
+ *
1709
+ */
1710
+ async mapViewWatchHandler() {
1711
+ await this._setLayers();
1712
+ const hasLayers = Object.keys(state.layerNameHash).length > 0;
1713
+ const hasTables = Object.keys(state.tableNameHash).length > 0 && this.showTables;
1714
+ if (hasLayers || hasTables) {
1715
+ this._setSelectedLayer(this.ids[0], hasLayers ? "layer" : "table");
1716
+ }
1717
+ }
1718
+ //--------------------------------------------------------------------------
1719
+ //
1720
+ // Functions (lifecycle)
1721
+ //
1722
+ //--------------------------------------------------------------------------
1723
+ /**
1724
+ * StencilJS: Called once just after the component is first connected to the DOM.
1725
+ */
1726
+ async componentWillLoad() {
1727
+ await this._setLayers();
1728
+ if (this.ids.length > 0 || this.selectedIds.length === 1) {
1729
+ this.layerSelectionChange.emit(this.selectedIds.length === 1 ? [this.selectedIds[0]] : [this.ids[0]]);
1730
+ }
1731
+ }
1732
+ /**
1733
+ * Renders the component.
1734
+ */
1735
+ render() {
1736
+ return (h(Host, null, h("div", { class: "map-layer-picker-container" }, h("div", { class: "map-layer-picker" }, this.type === "combobox" ? this._getCombobox() :
1737
+ this.type === "select" ? this._getSelect() : this._getDropdown()))));
1738
+ }
1739
+ /**
1740
+ * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
1741
+ */
1742
+ async componentDidLoad() {
1743
+ if (this.ids.length > 0 || this.selectedIds.length === 1) {
1744
+ const id = this.selectedIds.length === 1 ? this.selectedIds[0] : this.ids[0];
1745
+ if (this.type === "select") {
1746
+ this._layerElement.value = id;
1747
+ }
1748
+ else if (this.type === "dropdown") {
1749
+ this.selectedName = Object.keys(state.layerNameHash).indexOf(id) > -1 ?
1750
+ state.layerNameHash[id] : Object.keys(state.tableNameHash).indexOf(id) > -1 ?
1751
+ state.tableNameHash[id] : "";
1752
+ }
1753
+ }
1754
+ }
1755
+ //--------------------------------------------------------------------------
1756
+ //
1757
+ // Functions (protected)
1758
+ //
1759
+ //--------------------------------------------------------------------------
1760
+ /**
1761
+ * Create a list of layers from the map
1762
+ *
1763
+ * Used for selecting a single layer.
1764
+ *
1765
+ * @returns Calcite Select component with the ids of the layers from the map
1766
+ */
1767
+ _getSelect() {
1768
+ return (h("calcite-select", { label: "", onCalciteSelectChange: () => this._layerSelectionChange(), ref: (el) => { this._layerElement = el; }, scale: this.scale }, this._getMapLayerOptions()));
1769
+ }
1770
+ /**
1771
+ * Create a list of layer ids from the map
1772
+ *
1773
+ * Used for selecting multiple layers
1774
+ *
1775
+ * @returns Calcite ComboBox component with the ids of the layers from the map
1776
+ */
1777
+ _getCombobox() {
1778
+ return (h("calcite-combobox", { clearDisabled: true, label: "", onCalciteComboboxChange: () => this._layerSelectionChange(), "placeholder-icon": this.placeholderIcon, ref: (el) => { this._layerElement = el; }, scale: this.scale, "selection-mode": "single" }, this._getMapLayerOptions()));
1779
+ }
1780
+ /**
1781
+ * Hydrate a dropdown component with items to display the layer names
1782
+ *
1783
+ * @returns Array of Dropdown items with layer names
1784
+ */
1785
+ _getDropdown() {
1786
+ return (h("calcite-dropdown", { class: "layer-picker-dropdown" }, h("calcite-action", { slot: "trigger", text: "" }, h("calcite-button", { alignment: "icon-end-space-between", appearance: this.appearance, class: "max-width-350", iconEnd: "chevron-down", iconStart: "layers", kind: "neutral", width: "full" }, h("div", null, this.selectedName))), h("calcite-dropdown-group", { "selection-mode": "single" }, this._getMapLayerOptions())));
1787
+ }
1788
+ /**
1789
+ * Get the appropriate type of dom nodes for each valid layer or table
1790
+ *
1791
+ * @returns Array of dom nodes with the names of the layers and optionally of the tables
1792
+ */
1793
+ _getMapLayerOptions() {
1794
+ return this.ids.reduce((prev, cur) => {
1795
+ if (this._validLayer(cur)) {
1796
+ prev.push(this._getItem(cur, "layer"));
1797
+ }
1798
+ else if (this._validTable(cur)) {
1799
+ prev.push(this._getItem(cur, "table"));
1800
+ }
1801
+ return prev;
1802
+ }, []);
1803
+ }
1804
+ /**
1805
+ * Get the appropriate type of dom node for the current layer or table id
1806
+ *
1807
+ * @returns A dom node with the name of the layer or table
1808
+ */
1809
+ _getItem(id, itemType) {
1810
+ const name = itemType === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
1811
+ return this.type === "combobox" ? (h("calcite-combobox-item", { textLabel: name, value: id })) :
1812
+ this.type === "select" ? (h("calcite-option", { label: name, value: id })) :
1813
+ (h("calcite-dropdown-item", { onClick: () => void this._setSelectedLayer(id, itemType) }, name));
1814
+ }
1815
+ /**
1816
+ * Store the layer name based on the user selection
1817
+ */
1818
+ _setSelectedLayer(id, type) {
1819
+ this.selectedName = type === "layer" ? state.layerNameHash[id] : state.tableNameHash[id];
1820
+ this.selectedIds = [id];
1821
+ this.layerSelectionChange.emit(this.selectedIds);
1822
+ }
1823
+ /**
1824
+ * Fetch the ids of the layers from the map
1825
+ *
1826
+ * @returns Promise when the operation has completed
1827
+ */
1828
+ async _setLayers() {
1829
+ if (this.mapView) {
1830
+ const mapLayerIds = await getMapLayerIds(this.mapView);
1831
+ const mapTableIds = this.showTables ? await getMapTableIds(this.mapView) : [];
1832
+ this.ids = [
1833
+ ...mapLayerIds.filter(n => { var _a; return ((_a = this.enabledLayerIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledLayerIds.indexOf(n) > -1 : true; }),
1834
+ ...mapTableIds.filter(n => { var _a; return ((_a = this.enabledTableIds) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.enabledTableIds.indexOf(n) > -1 : true; }),
1835
+ ];
1836
+ await this._initStateHash();
1837
+ }
1838
+ }
1839
+ /**
1840
+ * Create a layer id:title hash for layer name display
1841
+ *
1842
+ * @returns Promise when the operation has completed
1843
+ */
1844
+ async _initStateHash() {
1845
+ if (this.mapView) {
1846
+ state.layerNameHash = await getMapLayerHash(this.mapView);
1847
+ state.tableNameHash = this.showTables ? await getMapTableHash(this.mapView) : {};
1848
+ }
1849
+ }
1850
+ /**
1851
+ * Evaluate if the id exists in the current hash and verify if it should be excluded
1852
+ *
1853
+ * @returns boolean when true the layer will be used in the current layer picker type
1854
+ */
1855
+ _validLayer(id) {
1856
+ const name = state.layerNameHash[id];
1857
+ return name && state.managedLayers.indexOf(name) < 0 && (this.enabledLayerIds.length > 0 ?
1858
+ this.enabledLayerIds.indexOf(id) > -1 : name);
1859
+ }
1860
+ /**
1861
+ * Evaluate if the id exists in the current hash and verify if it should be excluded
1862
+ *
1863
+ * @returns boolean when true the table will be used in the current layer picker type
1864
+ */
1865
+ _validTable(id) {
1866
+ const name = state.tableNameHash[id];
1867
+ const validName = name && this.showTables;
1868
+ return validName ? state.managedTables.indexOf(name) < 0 &&
1869
+ (this.enabledTableIds.length > 0 ? this.enabledTableIds.indexOf(id) > -1 : true) : validName;
1870
+ }
1871
+ /**
1872
+ * Fetch the ids of the layers from the map
1873
+ *
1874
+ * @returns Promise when the operation has completed
1875
+ */
1876
+ _layerSelectionChange() {
1877
+ const ids = Array.isArray(this._layerElement.value) ? this._layerElement.value : [this._layerElement.value];
1878
+ if (JSON.stringify(ids) !== JSON.stringify([""])) {
1879
+ this.selectedIds = ids;
1880
+ this.layerSelectionChange.emit(this.selectedIds);
1881
+ }
1882
+ }
1883
+ get el() { return getElement(this); }
1884
+ static get watchers() { return {
1885
+ "mapView": ["mapViewWatchHandler"]
1886
+ }; }
1887
+ };
1888
1888
  MapLayerPicker.style = mapLayerPickerCss;
1889
1889
 
1890
1890
  export { Combobox as calcite_combobox, ComboboxItem as calcite_combobox_item, Dropdown as calcite_dropdown, DropdownGroup as calcite_dropdown_group, DropdownItem as calcite_dropdown_item, MapLayerPicker as map_layer_picker };