@esri/solutions-components 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/dist/cjs/deduct-calculator.cjs.entry.js +1 -1
  2. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  3. package/dist/cjs/{pciUtils-6a806ba4.js → pciUtils-423cfc68.js} +25 -7
  4. package/dist/collection/demos/deduct-calculator.html +2 -5
  5. package/dist/collection/demos/new-public-notification.html +6 -4
  6. package/dist/collection/utils/pciUtils.js +25 -7
  7. package/dist/collection/utils/pciUtils.ts +30 -7
  8. package/dist/components/ExpandToggle.js +110 -0
  9. package/dist/components/Heading.js +22 -0
  10. package/dist/components/_commonjsHelpers.js +22 -0
  11. package/dist/components/action-bar.js +276 -0
  12. package/dist/components/action-group.js +149 -0
  13. package/dist/components/action-menu.js +356 -0
  14. package/dist/components/action.js +214 -0
  15. package/dist/components/add-record-modal.d.ts +11 -0
  16. package/dist/components/add-record-modal.js +171 -0
  17. package/dist/components/array.js +15 -0
  18. package/dist/components/block.js +272 -0
  19. package/dist/components/buffer-tools.d.ts +11 -0
  20. package/dist/components/buffer-tools.js +11 -0
  21. package/dist/components/buffer-tools2.js +262 -0
  22. package/dist/components/button.js +263 -0
  23. package/dist/components/calcite-accordion-item.js +244 -0
  24. package/dist/components/calcite-accordion.js +180 -0
  25. package/dist/components/calcite-action-bar.js +11 -0
  26. package/dist/components/calcite-action-group.js +11 -0
  27. package/dist/components/calcite-action-menu.js +11 -0
  28. package/dist/components/calcite-action-pad.js +197 -0
  29. package/dist/components/calcite-action.js +11 -0
  30. package/dist/components/calcite-alert.js +297 -0
  31. package/dist/components/calcite-avatar.js +182 -0
  32. package/dist/components/calcite-block-section.js +155 -0
  33. package/dist/components/calcite-block.js +11 -0
  34. package/dist/components/calcite-button.js +11 -0
  35. package/dist/components/calcite-card.js +187 -0
  36. package/dist/components/calcite-checkbox.js +11 -0
  37. package/dist/components/calcite-chip.js +11 -0
  38. package/dist/components/calcite-color-picker-hex-input.js +11 -0
  39. package/dist/components/calcite-color-picker-swatch.js +11 -0
  40. package/dist/components/calcite-color-picker.js +1036 -0
  41. package/dist/components/calcite-combobox-item-group.js +75 -0
  42. package/dist/components/calcite-combobox-item.js +11 -0
  43. package/dist/components/calcite-combobox.js +11 -0
  44. package/dist/components/calcite-date-picker-day.js +11 -0
  45. package/dist/components/calcite-date-picker-month-header.js +11 -0
  46. package/dist/components/calcite-date-picker-month.js +11 -0
  47. package/dist/components/calcite-date-picker.js +11 -0
  48. package/dist/components/calcite-dropdown-group.js +11 -0
  49. package/dist/components/calcite-dropdown-item.js +11 -0
  50. package/dist/components/calcite-dropdown.js +11 -0
  51. package/dist/components/calcite-fab.js +144 -0
  52. package/dist/components/calcite-filter.js +195 -0
  53. package/dist/components/calcite-flow-item.js +243 -0
  54. package/dist/components/calcite-flow.js +147 -0
  55. package/dist/components/calcite-graph.js +11 -0
  56. package/dist/components/calcite-handle.js +11 -0
  57. package/dist/components/calcite-icon.js +11 -0
  58. package/dist/components/calcite-inline-editable.js +294 -0
  59. package/dist/components/calcite-input-date-picker.js +713 -0
  60. package/dist/components/calcite-input-message.js +11 -0
  61. package/dist/components/calcite-input-number.js +637 -0
  62. package/dist/components/calcite-input-text.js +400 -0
  63. package/dist/components/calcite-input-time-picker.js +434 -0
  64. package/dist/components/calcite-input.js +11 -0
  65. package/dist/components/calcite-label.js +11 -0
  66. package/dist/components/calcite-link.js +11 -0
  67. package/dist/components/calcite-list-item-group.js +65 -0
  68. package/dist/components/calcite-list-item.js +11 -0
  69. package/dist/components/calcite-list.js +11 -0
  70. package/dist/components/calcite-loader.js +11 -0
  71. package/dist/components/calcite-modal.js +11 -0
  72. package/dist/components/calcite-notice.js +11 -0
  73. package/dist/components/calcite-option-group.js +64 -0
  74. package/dist/components/calcite-option.js +11 -0
  75. package/dist/components/calcite-pagination.js +258 -0
  76. package/dist/components/calcite-panel.js +11 -0
  77. package/dist/components/calcite-pick-list-group.js +74 -0
  78. package/dist/components/calcite-pick-list-item.js +11 -0
  79. package/dist/components/calcite-pick-list.js +11 -0
  80. package/dist/components/calcite-popover-manager.js +94 -0
  81. package/dist/components/calcite-popover.js +11 -0
  82. package/dist/components/calcite-progress.js +11 -0
  83. package/dist/components/calcite-radio-button-group.js +132 -0
  84. package/dist/components/calcite-radio-button.js +310 -0
  85. package/dist/components/calcite-radio-group-item.js +11 -0
  86. package/dist/components/calcite-radio-group.js +11 -0
  87. package/dist/components/calcite-rating.js +201 -0
  88. package/dist/components/calcite-scrim.js +11 -0
  89. package/dist/components/calcite-select.js +11 -0
  90. package/dist/components/calcite-shell-center-row.js +100 -0
  91. package/dist/components/calcite-shell-panel.js +11 -0
  92. package/dist/components/calcite-shell.js +11 -0
  93. package/dist/components/calcite-slider.js +11 -0
  94. package/dist/components/calcite-sortable-list.js +202 -0
  95. package/dist/components/calcite-split-button.js +11 -0
  96. package/dist/components/calcite-stepper-item.js +271 -0
  97. package/dist/components/calcite-stepper.js +256 -0
  98. package/dist/components/calcite-switch.js +11 -0
  99. package/dist/components/calcite-tab-nav.js +11 -0
  100. package/dist/components/calcite-tab-title.js +11 -0
  101. package/dist/components/calcite-tab.js +11 -0
  102. package/dist/components/calcite-tabs.js +11 -0
  103. package/dist/components/calcite-tile-select-group.js +65 -0
  104. package/dist/components/calcite-tile-select.js +266 -0
  105. package/dist/components/calcite-tile.js +11 -0
  106. package/dist/components/calcite-time-picker.js +11 -0
  107. package/dist/components/calcite-tip-group.js +41 -0
  108. package/dist/components/calcite-tip-manager.js +223 -0
  109. package/dist/components/calcite-tip.js +162 -0
  110. package/dist/components/calcite-tooltip-manager.js +57 -0
  111. package/dist/components/calcite-tooltip.js +11 -0
  112. package/dist/components/calcite-tree-item.js +11 -0
  113. package/dist/components/calcite-tree.js +11 -0
  114. package/dist/components/calcite-value-list-item.js +11 -0
  115. package/dist/components/calcite-value-list.js +11 -0
  116. package/dist/components/card-manager.d.ts +11 -0
  117. package/dist/components/card-manager.js +143 -0
  118. package/dist/components/check-list.d.ts +11 -0
  119. package/dist/components/check-list.js +11 -0
  120. package/dist/components/check-list2.js +131 -0
  121. package/dist/components/checkbox.js +165 -0
  122. package/dist/components/chip.js +170 -0
  123. package/dist/components/color-picker-hex-input.js +363 -0
  124. package/dist/components/color-picker-swatch.js +2034 -0
  125. package/dist/components/combobox-item.js +182 -0
  126. package/dist/components/combobox.js +912 -0
  127. package/dist/components/comment-card.d.ts +11 -0
  128. package/dist/components/comment-card.js +90 -0
  129. package/dist/components/conditionalSlot.js +50 -0
  130. package/dist/components/config-buffer-tools.d.ts +11 -0
  131. package/dist/components/config-buffer-tools.js +187 -0
  132. package/dist/components/config-draw-tools.d.ts +11 -0
  133. package/dist/components/config-draw-tools.js +121 -0
  134. package/dist/components/config-layer-picker.d.ts +11 -0
  135. package/dist/components/config-layer-picker.js +163 -0
  136. package/dist/components/config-pdf-download.d.ts +11 -0
  137. package/dist/components/config-pdf-download.js +154 -0
  138. package/dist/components/crowdsource-manager.d.ts +11 -0
  139. package/dist/components/crowdsource-manager.js +90 -0
  140. package/dist/components/crowdsource-reporter.d.ts +11 -0
  141. package/dist/components/crowdsource-reporter.js +90 -0
  142. package/dist/components/csvUtils.js +74 -0
  143. package/dist/components/date-picker-day.js +111 -0
  144. package/dist/components/date-picker-month-header.js +224 -0
  145. package/dist/components/date-picker-month.js +344 -0
  146. package/dist/components/date-picker.js +575 -0
  147. package/dist/components/date.js +180 -0
  148. package/dist/components/debounce.js +487 -0
  149. package/dist/components/deduct-calculator.d.ts +11 -0
  150. package/dist/components/deduct-calculator.js +11 -0
  151. package/dist/components/deduct-calculator2.js +1002 -0
  152. package/dist/components/dom.js +231 -0
  153. package/dist/components/dropdown-group.js +96 -0
  154. package/dist/components/dropdown-item.js +232 -0
  155. package/dist/components/dropdown.js +505 -0
  156. package/dist/components/edit-record-modal.d.ts +11 -0
  157. package/dist/components/edit-record-modal.js +11 -0
  158. package/dist/components/edit-record-modal2.js +161 -0
  159. package/dist/components/filter.js +763 -0
  160. package/dist/components/floating-ui.js +1768 -0
  161. package/dist/components/form.js +228 -0
  162. package/dist/components/graph.js +254 -0
  163. package/dist/components/guid.js +24 -0
  164. package/dist/components/handle.js +119 -0
  165. package/dist/components/icon.js +202 -0
  166. package/dist/components/index.d.ts +61 -0
  167. package/dist/components/index.js +196 -0
  168. package/dist/components/index2.js +199 -0
  169. package/dist/components/info-card.d.ts +11 -0
  170. package/dist/components/info-card.js +11 -0
  171. package/dist/components/info-card2.js +97 -0
  172. package/dist/components/input-message.js +101 -0
  173. package/dist/components/input.js +740 -0
  174. package/dist/components/interactive.js +51 -0
  175. package/dist/components/interfaces.js +19 -0
  176. package/dist/components/interfaces2.js +21 -0
  177. package/dist/components/interfaces3.js +80 -0
  178. package/dist/components/json-editor.d.ts +11 -0
  179. package/dist/components/json-editor.js +11 -0
  180. package/dist/components/json-editor2.js +441 -0
  181. package/dist/components/key.js +16 -0
  182. package/dist/components/label.js +106 -0
  183. package/dist/components/label2.js +131 -0
  184. package/dist/components/labelFormats.js +210 -0
  185. package/dist/components/layer-table.d.ts +11 -0
  186. package/dist/components/layer-table.js +453 -0
  187. package/dist/components/link.js +123 -0
  188. package/dist/components/list-item.d.ts +11 -0
  189. package/dist/components/list-item.js +90 -0
  190. package/dist/components/list-item2.js +149 -0
  191. package/dist/components/list.js +83 -0
  192. package/dist/components/loadModules.js +28 -0
  193. package/dist/components/loader.js +116 -0
  194. package/dist/components/locale.js +412 -0
  195. package/dist/components/locale2.js +413 -0
  196. package/dist/components/map-card.d.ts +11 -0
  197. package/dist/components/map-card.js +354 -0
  198. package/dist/components/map-draw-tools.d.ts +11 -0
  199. package/dist/components/map-draw-tools.js +11 -0
  200. package/dist/components/map-draw-tools2.js +228 -0
  201. package/dist/components/map-layer-picker.d.ts +11 -0
  202. package/dist/components/map-layer-picker.js +11 -0
  203. package/dist/components/map-layer-picker2.js +188 -0
  204. package/dist/components/map-search.d.ts +11 -0
  205. package/dist/components/map-search.js +155 -0
  206. package/dist/components/map-select-tools.d.ts +11 -0
  207. package/dist/components/map-select-tools.js +11 -0
  208. package/dist/components/map-select-tools2.js +588 -0
  209. package/dist/components/mapViewUtils.js +129 -0
  210. package/dist/components/math.js +24 -0
  211. package/dist/components/media-card.d.ts +11 -0
  212. package/dist/components/media-card.js +11 -0
  213. package/dist/components/media-card2.js +177 -0
  214. package/dist/components/modal.js +495 -0
  215. package/dist/components/nonChromiumPlatformUtils.js +503 -0
  216. package/dist/components/notice.js +192 -0
  217. package/dist/components/observers.js +56 -0
  218. package/dist/components/openCloseComponent.js +56 -0
  219. package/dist/components/option.js +109 -0
  220. package/dist/components/panel.js +459 -0
  221. package/dist/components/pci-calculator.d.ts +11 -0
  222. package/dist/components/pci-calculator.js +193 -0
  223. package/dist/components/pdf-download.d.ts +11 -0
  224. package/dist/components/pdf-download.js +11 -0
  225. package/dist/components/pdf-download2.js +189 -0
  226. package/dist/components/pick-list-item.js +255 -0
  227. package/dist/components/pick-list.js +170 -0
  228. package/dist/components/popover.js +500 -0
  229. package/dist/components/progress.js +60 -0
  230. package/dist/components/public-notification.d.ts +11 -0
  231. package/dist/components/public-notification.js +825 -0
  232. package/dist/components/publicNotificationStore.js +38 -0
  233. package/dist/components/queryUtils.js +187 -0
  234. package/dist/components/radio-group-item.js +101 -0
  235. package/dist/components/radio-group.js +235 -0
  236. package/dist/components/refine-selection-tools.d.ts +11 -0
  237. package/dist/components/refine-selection-tools.js +11 -0
  238. package/dist/components/refine-selection-tools2.js +492 -0
  239. package/dist/components/refine-selection.d.ts +11 -0
  240. package/dist/components/refine-selection.js +11 -0
  241. package/dist/components/refine-selection2.js +376 -0
  242. package/dist/components/resources.js +24 -0
  243. package/dist/components/resources2.js +21 -0
  244. package/dist/components/resources3.js +38 -0
  245. package/dist/components/scrim.js +83 -0
  246. package/dist/components/select.js +259 -0
  247. package/dist/components/shared-list-render.js +319 -0
  248. package/dist/components/shell-panel.js +281 -0
  249. package/dist/components/shell.js +121 -0
  250. package/dist/components/slider.js +896 -0
  251. package/dist/components/solution-configuration.d.ts +11 -0
  252. package/dist/components/solution-configuration.js +2233 -0
  253. package/dist/components/solution-contents.d.ts +11 -0
  254. package/dist/components/solution-contents.js +11 -0
  255. package/dist/components/solution-contents2.js +128 -0
  256. package/dist/components/solution-item-details.d.ts +11 -0
  257. package/dist/components/solution-item-details.js +11 -0
  258. package/dist/components/solution-item-details2.js +234 -0
  259. package/dist/components/solution-item-icon.d.ts +11 -0
  260. package/dist/components/solution-item-icon.js +11 -0
  261. package/dist/components/solution-item-icon2.js +342 -0
  262. package/dist/components/solution-item-sharing.d.ts +11 -0
  263. package/dist/components/solution-item-sharing.js +11 -0
  264. package/dist/components/solution-item-sharing2.js +167 -0
  265. package/dist/components/solution-item.d.ts +11 -0
  266. package/dist/components/solution-item.js +11 -0
  267. package/dist/components/solution-item2.js +315 -0
  268. package/dist/components/solution-organization-variables.d.ts +11 -0
  269. package/dist/components/solution-organization-variables.js +11 -0
  270. package/dist/components/solution-organization-variables2.js +132 -0
  271. package/dist/components/solution-resource-item.d.ts +11 -0
  272. package/dist/components/solution-resource-item.js +11 -0
  273. package/dist/components/solution-resource-item2.js +356 -0
  274. package/dist/components/solution-spatial-ref.d.ts +11 -0
  275. package/dist/components/solution-spatial-ref.js +11 -0
  276. package/dist/components/solution-spatial-ref2.js +21446 -0
  277. package/dist/components/solution-store.js +4092 -0
  278. package/dist/components/solution-template-data.d.ts +11 -0
  279. package/dist/components/solution-template-data.js +11 -0
  280. package/dist/components/solution-template-data2.js +233 -0
  281. package/dist/components/solution-variables.d.ts +11 -0
  282. package/dist/components/solution-variables.js +11 -0
  283. package/dist/components/solution-variables2.js +150 -0
  284. package/dist/components/sortable.esm.js +3026 -0
  285. package/dist/components/split-button.js +165 -0
  286. package/dist/components/store-manager.d.ts +11 -0
  287. package/dist/components/store-manager.js +83 -0
  288. package/dist/components/switch.js +139 -0
  289. package/dist/components/tab-nav.js +241 -0
  290. package/dist/components/tab-title.js +276 -0
  291. package/dist/components/tab.js +154 -0
  292. package/dist/components/tabs.js +188 -0
  293. package/dist/components/tile.js +129 -0
  294. package/dist/components/time-picker.js +943 -0
  295. package/dist/components/tooltip.js +399 -0
  296. package/dist/components/tree-item.js +294 -0
  297. package/dist/components/tree.js +327 -0
  298. package/dist/components/utils.js +119 -0
  299. package/dist/components/utils2.js +51 -0
  300. package/dist/components/value-list-item.js +204 -0
  301. package/dist/components/value-list.js +333 -0
  302. package/dist/esm/deduct-calculator.entry.js +1 -1
  303. package/dist/esm/pci-calculator.entry.js +1 -1
  304. package/dist/esm/{pciUtils-e3007a1c.js → pciUtils-ecda46e5.js} +25 -7
  305. package/dist/solutions-components/demos/deduct-calculator.html +2 -5
  306. package/dist/solutions-components/demos/new-public-notification.html +6 -4
  307. package/dist/solutions-components/{p-ff80ffbb.entry.js → p-0512635b.entry.js} +1 -1
  308. package/dist/solutions-components/{p-5ec407c2.entry.js → p-0c088725.entry.js} +1 -1
  309. package/dist/solutions-components/p-cc815aca.js +21 -0
  310. package/dist/solutions-components/solutions-components.esm.js +1 -1
  311. package/dist/solutions-components/utils/pciUtils.ts +30 -7
  312. package/dist/types/utils/pciUtils.d.ts +2 -1
  313. package/package.json +4 -3
  314. package/dist/solutions-components/p-647bbd18.js +0 -21
@@ -0,0 +1,495 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
+ import { f as focusElement, b as getSlotted, j as ensureId, k as isCalciteFocusable } from './dom.js';
8
+ import { c as createObserver } from './observers.js';
9
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
10
+ import { c as connectOpenCloseComponent, d as disconnectOpenCloseComponent } from './openCloseComponent.js';
11
+ import { d as defineCustomElement$3 } from './icon.js';
12
+ import { d as defineCustomElement$2 } from './loader.js';
13
+ import { d as defineCustomElement$1 } from './scrim.js';
14
+
15
+ /**
16
+ * Traverses the slots of the open shadowroots and returns all children matching the query.
17
+ * @param {ShadowRoot | HTMLElement} root
18
+ * @param skipNode
19
+ * @param isMatch
20
+ * @param {number} maxDepth
21
+ * @param {number} depth
22
+ * @returns {HTMLElement[]}
23
+ */
24
+ function queryShadowRoot(root, skipNode, isMatch, maxDepth = 20, depth = 0) {
25
+ let matches = [];
26
+ // If the depth is above the max depth, abort the searching here.
27
+ if (depth >= maxDepth) {
28
+ return matches;
29
+ }
30
+ // Traverses a slot element
31
+ const traverseSlot = ($slot) => {
32
+ // Only check nodes that are of the type Node.ELEMENT_NODE
33
+ // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
34
+ const assignedNodes = $slot.assignedNodes().filter(node => node.nodeType === 1);
35
+ if (assignedNodes.length > 0) {
36
+ return queryShadowRoot(assignedNodes[0].parentElement, skipNode, isMatch, maxDepth, depth + 1);
37
+ }
38
+ return [];
39
+ };
40
+ // Go through each child and continue the traversing if necessary
41
+ // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.
42
+ // Therefore we fallback to an empty array if it is undefined.
43
+ const children = Array.from(root.children || []);
44
+ for (const $child of children) {
45
+ // Check if the node and its descendants should be skipped
46
+ if (skipNode($child)) {
47
+ continue;
48
+ }
49
+ // If the child matches we always add it
50
+ if (isMatch($child)) {
51
+ matches.push($child);
52
+ }
53
+ if ($child.shadowRoot != null) {
54
+ matches.push(...queryShadowRoot($child.shadowRoot, skipNode, isMatch, maxDepth, depth + 1));
55
+ }
56
+ else if ($child.tagName === "SLOT") {
57
+ matches.push(...traverseSlot($child));
58
+ }
59
+ else {
60
+ matches.push(...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1));
61
+ }
62
+ }
63
+ return matches;
64
+ }
65
+
66
+ /**
67
+ * Returns whether the element is hidden.
68
+ * @param $elem
69
+ */
70
+ function isHidden($elem) {
71
+ return $elem.hasAttribute("hidden")
72
+ || ($elem.hasAttribute("aria-hidden") && $elem.getAttribute("aria-hidden") !== "false")
73
+ // A quick and dirty way to check whether the element is hidden.
74
+ // For a more fine-grained check we could use "window.getComputedStyle" but we don't because of bad performance.
75
+ // If the element has visibility set to "hidden" or "collapse", display set to "none" or opacity set to "0" through CSS
76
+ // we won't be able to catch it here. We accept it due to the huge performance benefits.
77
+ || $elem.style.display === `none`
78
+ || $elem.style.opacity === `0`
79
+ || $elem.style.visibility === `hidden`
80
+ || $elem.style.visibility === `collapse`;
81
+ // If offsetParent is null we can assume that the element is hidden
82
+ // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null
83
+ //|| $elem.offsetParent == null;
84
+ }
85
+ /**
86
+ * Returns whether the element is disabled.
87
+ * @param $elem
88
+ */
89
+ function isDisabled($elem) {
90
+ return $elem.hasAttribute("disabled")
91
+ || ($elem.hasAttribute("aria-disabled") && $elem.getAttribute("aria-disabled") !== "false");
92
+ }
93
+ /**
94
+ * Determines whether an element is focusable.
95
+ * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194
96
+ * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable
97
+ * @param $elem
98
+ */
99
+ function isFocusable($elem) {
100
+ // Discard elements that are removed from the tab order.
101
+ if ($elem.getAttribute("tabindex") === "-1" || isHidden($elem) || isDisabled($elem)) {
102
+ return false;
103
+ }
104
+ return (
105
+ // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists
106
+ $elem.hasAttribute("tabindex")
107
+ // Anchor tags or area tags with a href set
108
+ || ($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) && $elem.hasAttribute("href")
109
+ // Form elements which are not disabled
110
+ || ($elem instanceof HTMLButtonElement
111
+ || $elem instanceof HTMLInputElement
112
+ || $elem instanceof HTMLTextAreaElement
113
+ || $elem instanceof HTMLSelectElement)
114
+ // IFrames
115
+ || $elem instanceof HTMLIFrameElement);
116
+ }
117
+
118
+ /*!
119
+ * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
120
+ * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
121
+ * v1.0.0-beta.97
122
+ */
123
+ const CSS = {
124
+ modal: "modal",
125
+ modalOpen: "modal--open",
126
+ title: "title",
127
+ header: "header",
128
+ footer: "footer",
129
+ scrim: "scrim",
130
+ back: "back",
131
+ close: "close",
132
+ secondary: "secondary",
133
+ primary: "primary",
134
+ overflowHidden: "overflow-hidden",
135
+ // these classes help apply the animation in phases to only set transform on open/close
136
+ // this helps avoid a positioning issue for any floating-ui-owning children
137
+ openingIdle: "modal--opening-idle",
138
+ openingActive: "modal--opening-active",
139
+ closingIdle: "modal--closing-idle",
140
+ closingActive: "modal--closing-active"
141
+ };
142
+ const ICONS = {
143
+ close: "x"
144
+ };
145
+ const SLOTS = {
146
+ content: "content",
147
+ header: "header",
148
+ back: "back",
149
+ secondary: "secondary",
150
+ primary: "primary"
151
+ };
152
+ const TEXT = {
153
+ close: "Close"
154
+ };
155
+
156
+ const modalCss = "@keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in-down{0%{opacity:0;transform:translate3D(0, -5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;transform:translate3D(0, 5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-scale{0%{opacity:0;transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;animation-fill-mode:both;animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{animation-name:in}.calcite-animate__in-down{animation-name:in-down}.calcite-animate__in-up{animation-name:in-up}.calcite-animate__in-scale{animation-name:in-scale}@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0.01}}:root{--calcite-floating-ui-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:fixed;inset:0px;z-index:700;display:flex;align-items:center;justify-content:center;overflow-y:hidden;color:var(--calcite-ui-text-2);opacity:0;visibility:hidden !important;transition:visibility 0ms linear var(--calcite-internal-animation-timing-slow), opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88)}:host([scale=s]){--calcite-modal-padding:0.75rem;--calcite-modal-padding-large:1rem;--calcite-modal-title-text:var(--calcite-font-size-1);--calcite-modal-content-text:var(--calcite-font-size--1);--calcite-modal-padding-internal:0.75rem;--calcite-modal-padding-large-internal:1rem;--calcite-modal-title-text-internal:var(--calcite-font-size-1);--calcite-modal-content-text-internal:var(--calcite-font-size--1)}:host([scale=m]){--calcite-modal-padding:1rem;--calcite-modal-padding-large:1.25rem;--calcite-modal-title-text:var(--calcite-font-size-2);--calcite-modal-content-text:var(--calcite-font-size-0);--calcite-modal-padding-internal:1rem;--calcite-modal-padding-large-internal:1.25rem;--calcite-modal-title-text-internal:var(--calcite-font-size-2);--calcite-modal-content-text-internal:var(--calcite-font-size-0)}:host([scale=l]){--calcite-modal-padding:1.25rem;--calcite-modal-padding-large:1.5rem;--calcite-modal-title-text:var(--calcite-font-size-3);--calcite-modal-content-text:var(--calcite-font-size-1);--calcite-modal-padding-internal:1.25rem;--calcite-modal-padding-large-internal:1.5rem;--calcite-modal-title-text-internal:var(--calcite-font-size-3);--calcite-modal-content-text-internal:var(--calcite-font-size-1)}.scrim{--calcite-scrim-background:rgba(0, 0, 0, 0.75);position:fixed;inset:0px;display:flex;overflow-y:hidden}.modal{pointer-events:none;z-index:800;float:none;margin:1.5rem;box-sizing:border-box;display:flex;inline-size:100%;flex-direction:column;overflow:hidden;border-radius:0.25rem;background-color:var(--calcite-ui-foreground-1);opacity:0;--tw-shadow:0 2px 12px -4px rgba(0, 0, 0, 0.2), 0 2px 4px -2px rgba(0, 0, 0, 0.16);--tw-shadow-colored:0 2px 12px -4px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-overflow-scrolling:touch;visibility:hidden;transition:transform var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), visibility 0ms linear var(--calcite-internal-animation-timing-slow), opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88);--calcite-modal-hidden-position:translate3d(0, 20px, 0);--calcite-modal-shown-position:translate3d(0, 0, 0)}.modal--opening-idle{transform:var(--calcite-modal-hidden-position)}.modal--opening-active{transform:var(--calcite-modal-shown-position)}.modal--closing-idle{transform:var(--calcite-modal-shown-position)}.modal--closing-active{transform:var(--calcite-modal-hidden-position)}:host([open]){opacity:1;visibility:visible !important;transition-delay:0ms}:host([open]) .modal--open{pointer-events:auto;visibility:visible;opacity:1;transition:transform var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), visibility 0ms linear, opacity var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), max-inline-size var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88), max-block-size var(--calcite-internal-animation-timing-slow) cubic-bezier(0.215, 0.44, 0.42, 0.88);transition-delay:0ms}.header{z-index:400;display:flex;min-inline-size:0px;max-inline-size:100%;border-start-start-radius:0.25rem;border-start-end-radius:0.25rem;border-width:0px;border-block-end-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1);flex:0 0 auto}.close{order:2;margin:0px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:none;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-start-end-radius:0.25rem;padding-block:var(--calcite-modal-padding, var(--calcite-modal-padding-internal));padding-inline:var(--calcite-modal-padding, var(--calcite-modal-padding-internal));flex:0 0 auto}.close calcite-icon{pointer-events:none;vertical-align:-2px}.close:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.close:hover,.close:focus,.close:active{background-color:var(--calcite-ui-foreground-2);color:var(--calcite-ui-text-1)}.title{order:1;display:flex;min-inline-size:0px;align-items:center;flex:1 1 auto;padding-block:var(--calcite-modal-padding, var(--calcite-model-padding-internal));padding-inline:var(--calcite-modal-padding-large, var(--calcite-modal-padding-large-internal))}slot[name=header]::slotted(*),*::slotted([slot=header]){margin:0px;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-1);font-size:var(--calcite-modal-title-text, var(--calcite-modal-title-text-internal))}.content{position:relative;box-sizing:border-box;display:block;block-size:100%;overflow:auto;background-color:var(--calcite-ui-foreground-1);padding:0px;max-block-size:calc(100vh - 12rem)}.content--spaced{padding:var(--calcite-modal-padding)}.content--no-footer{border-end-end-radius:0.25rem;border-end-start-radius:0.25rem}slot[name=content]::slotted(*),*::slotted([slot=content]){font-size:var(--calcite-modal-content-text, var(--calcite-modal-context-text-internal))}:host([background-color=grey]) .content{background-color:var(--calcite-ui-background)}.footer{z-index:400;-webkit-margin-before:auto;margin-block-start:auto;box-sizing:border-box;display:flex;inline-size:100%;justify-content:space-between;border-end-end-radius:0.25rem;border-end-start-radius:0.25rem;border-width:0px;border-block-start-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1);flex:0 0 auto;padding-block:var(--calcite-modal-padding, var(--calcite-modal-padding-internal));padding-inline:var(--calcite-modal-padding-large, var(--calcite-modal-padding-large-internal))}.footer--hide-back .back,.footer--hide-secondary .secondary{display:none}.back{display:block;-webkit-margin-end:auto;margin-inline-end:auto}.secondary{margin-inline:0.25rem;display:block}slot[name=primary]{display:block}:host([width=small]) .modal{inline-size:auto}:host([width=s]) .modal{max-inline-size:32rem}@media screen and (max-width: 35rem){:host([width=s]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0px}:host([width=s]) .content{flex:1 1 auto;max-block-size:unset}:host([width=s][docked]){align-items:flex-end}}:host([width=m]) .modal{max-inline-size:48rem}@media screen and (max-width: 51rem){:host([width=m]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0px}:host([width=m]) .content{flex:1 1 auto;max-block-size:unset}:host([width=m][docked]){align-items:flex-end}}:host([width=l]) .modal{max-inline-size:94rem}@media screen and (max-width: 97rem){:host([width=l]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0px}:host([width=l]) .content{flex:1 1 auto;max-block-size:unset}:host([width=l][docked]){align-items:flex-end}}:host([fullscreen]){background-color:transparent}:host([fullscreen]) .modal{margin:0px;block-size:100%;max-block-size:100%;inline-size:100%;max-inline-size:100%;--calcite-modal-hidden-position:translate3D(0, 20px, 0) scale(0.95);--calcite-modal-shown-position:translate3D(0, 0, 0) scale(1)}:host([fullscreen]) .content{max-block-size:100%;flex:1 1 auto}:host([open][fullscreen]) .header{border-radius:0}:host([open][fullscreen]) .footer{border-radius:0}:host([docked]) .modal{block-size:auto}:host([docked]) .content{block-size:auto;flex:1 1 auto}@media screen and (max-width: 860px){:host([docked]) .modal{border-radius:var(--calcite-border-radius) var(--calcite-border-radius) 0 0}:host([docked]) .close{border-start-end-radius:var(--calcite-border-radius)}}:host([color=red]) .modal{border-color:var(--calcite-ui-danger)}:host([color=blue]) .modal{border-color:var(--calcite-ui-info)}:host([color=red]) .modal,:host([color=blue]) .modal{border-width:0px;border-block-start-width:4px;border-style:solid}:host([color=red]) .header,:host([color=blue]) .header{border-radius:0.25rem;border-end-end-radius:0px;border-end-start-radius:0px}@media screen and (max-width: 860px){slot[name=header]::slotted(*),*::slotted([slot=header]){font-size:var(--calcite-font-size-1)}.footer{position:sticky;inset-block-end:0px}}@media screen and (max-width: 480px){.footer{flex-direction:column}.back,.secondary{margin:0px;-webkit-margin-after:0.25rem;margin-block-end:0.25rem}}";
157
+
158
+ const isFocusableExtended = (el) => {
159
+ return isCalciteFocusable(el) || isFocusable(el);
160
+ };
161
+ const getFocusableElements = (el) => {
162
+ return queryShadowRoot(el, isHidden, isFocusableExtended);
163
+ };
164
+ const Modal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
165
+ constructor() {
166
+ super();
167
+ this.__registerHost();
168
+ this.__attachShadow();
169
+ this.calciteModalBeforeClose = createEvent(this, "calciteModalBeforeClose", 6);
170
+ this.calciteModalClose = createEvent(this, "calciteModalClose", 6);
171
+ this.calciteModalBeforeOpen = createEvent(this, "calciteModalBeforeOpen", 6);
172
+ this.calciteModalOpen = createEvent(this, "calciteModalOpen", 6);
173
+ //--------------------------------------------------------------------------
174
+ //
175
+ // Properties
176
+ //
177
+ //--------------------------------------------------------------------------
178
+ /**
179
+ * When `true`, the component is active.
180
+ *
181
+ * @deprecated use `open` instead.
182
+ */
183
+ this.active = false;
184
+ /** When `true`, displays and positions the component. */
185
+ this.open = false;
186
+ /** Passes a function to run before the component closes. */
187
+ this.beforeClose = () => Promise.resolve();
188
+ /** When `true`, disables the component's close button. */
189
+ this.disableCloseButton = false;
190
+ /** When `true`, disables the closing of the component when clicked outside. */
191
+ this.disableOutsideClose = false;
192
+ /** Accessible name for the component's close button. */
193
+ this.intlClose = TEXT.close;
194
+ /** When `true`, disables the default close on escape behavior. */
195
+ this.disableEscape = false;
196
+ /** Specifies the size of the component. */
197
+ this.scale = "m";
198
+ /** Specifies the width of the component. Can use scale sizes or pass a number (displays in pixels). */
199
+ this.width = "m";
200
+ /** Sets the background color of the component's content. */
201
+ this.backgroundColor = "white";
202
+ /**
203
+ * When `true`, disables spacing to the content area slot.
204
+ *
205
+ * @deprecated Use `--calcite-modal-padding` CSS variable instead.
206
+ */
207
+ this.noPadding = false;
208
+ //--------------------------------------------------------------------------
209
+ //
210
+ // Variables
211
+ //
212
+ //--------------------------------------------------------------------------
213
+ this.hasFooter = true;
214
+ /**
215
+ * We use internal variable to make sure initially open modal can transition from closed state when rendered
216
+ *
217
+ * @private
218
+ */
219
+ this.isOpen = false;
220
+ this.mutationObserver = createObserver("mutation", () => this.updateFooterVisibility());
221
+ this.openTransitionProp = "opacity";
222
+ //--------------------------------------------------------------------------
223
+ //
224
+ // Private Methods
225
+ //
226
+ //--------------------------------------------------------------------------
227
+ this.setTransitionEl = (el) => {
228
+ this.transitionEl = el;
229
+ connectOpenCloseComponent(this);
230
+ };
231
+ this.openEnd = () => {
232
+ this.setFocus();
233
+ this.el.removeEventListener("calciteModalOpen", this.openEnd);
234
+ };
235
+ this.handleOutsideClose = () => {
236
+ if (this.disableOutsideClose) {
237
+ return;
238
+ }
239
+ this.close();
240
+ };
241
+ /** Close the modal, first running the `beforeClose` method */
242
+ this.close = () => {
243
+ return this.beforeClose(this.el).then(() => {
244
+ this.open = false;
245
+ this.isOpen = false;
246
+ focusElement(this.previousActiveElement);
247
+ this.removeOverflowHiddenClass();
248
+ });
249
+ };
250
+ this.focusFirstElement = () => {
251
+ focusElement(this.disableCloseButton ? getFocusableElements(this.el)[0] : this.closeButtonEl);
252
+ };
253
+ this.focusLastElement = () => {
254
+ const focusableElements = getFocusableElements(this.el).filter((el) => !el.getAttribute("data-focus-fence"));
255
+ if (focusableElements.length > 0) {
256
+ focusElement(focusableElements[focusableElements.length - 1]);
257
+ }
258
+ else {
259
+ focusElement(this.closeButtonEl);
260
+ }
261
+ };
262
+ this.updateFooterVisibility = () => {
263
+ this.hasFooter = !!getSlotted(this.el, [SLOTS.back, SLOTS.primary, SLOTS.secondary]);
264
+ };
265
+ }
266
+ //--------------------------------------------------------------------------
267
+ //
268
+ // Lifecycle
269
+ //
270
+ //--------------------------------------------------------------------------
271
+ componentWillLoad() {
272
+ // when modal initially renders, if active was set we need to open as watcher doesn't fire
273
+ if (this.open) {
274
+ requestAnimationFrame(() => this.openModal());
275
+ }
276
+ }
277
+ connectedCallback() {
278
+ var _a;
279
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
280
+ this.updateFooterVisibility();
281
+ connectConditionalSlotComponent(this);
282
+ connectOpenCloseComponent(this);
283
+ if (this.open) {
284
+ this.active = this.open;
285
+ }
286
+ if (this.active) {
287
+ this.activeHandler(this.active);
288
+ }
289
+ }
290
+ disconnectedCallback() {
291
+ var _a;
292
+ this.removeOverflowHiddenClass();
293
+ (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
294
+ disconnectConditionalSlotComponent(this);
295
+ disconnectOpenCloseComponent(this);
296
+ }
297
+ render() {
298
+ return (h(Host, { "aria-describedby": this.contentId, "aria-labelledby": this.titleId, "aria-modal": "true", role: "dialog" }, h("calcite-scrim", { class: CSS.scrim, onClick: this.handleOutsideClose }), this.renderStyle(), h("div", { class: {
299
+ [CSS.modal]: true,
300
+ [CSS.modalOpen]: this.isOpen
301
+ }, ref: this.setTransitionEl }, h("div", { "data-focus-fence": true, onFocus: this.focusLastElement, tabindex: "0" }), h("div", { class: CSS.header }, this.renderCloseButton(), h("header", { class: CSS.title }, h("slot", { name: CSS.header }))), h("div", { class: {
302
+ content: true,
303
+ "content--spaced": !this.noPadding,
304
+ "content--no-footer": !this.hasFooter
305
+ }, ref: (el) => (this.modalContent = el) }, h("slot", { name: SLOTS.content })), this.renderFooter(), h("div", { "data-focus-fence": true, onFocus: this.focusFirstElement, tabindex: "0" }))));
306
+ }
307
+ renderFooter() {
308
+ return this.hasFooter ? (h("div", { class: CSS.footer, key: "footer" }, h("span", { class: CSS.back }, h("slot", { name: SLOTS.back })), h("span", { class: CSS.secondary }, h("slot", { name: SLOTS.secondary })), h("span", { class: CSS.primary }, h("slot", { name: SLOTS.primary })))) : null;
309
+ }
310
+ renderCloseButton() {
311
+ return !this.disableCloseButton ? (h("button", { "aria-label": this.intlClose, class: CSS.close, key: "button", onClick: this.close, ref: (el) => (this.closeButtonEl = el), title: this.intlClose }, h("calcite-icon", { icon: ICONS.close, scale: this.scale === "s" ? "s" : this.scale === "m" ? "m" : this.scale === "l" ? "l" : null }))) : null;
312
+ }
313
+ renderStyle() {
314
+ const hasCustomWidth = !isNaN(parseInt(`${this.width}`));
315
+ return hasCustomWidth ? (h("style", null, `
316
+ .${CSS.modal} {
317
+ max-width: ${this.width}px !important;
318
+ }
319
+ @media screen and (max-width: ${this.width}px) {
320
+ .${CSS.modal} {
321
+ height: 100% !important;
322
+ max-height: 100% !important;
323
+ width: 100% !important;
324
+ max-width: 100% !important;
325
+ margin: 0 !important;
326
+ border-radius: 0 !important;
327
+ }
328
+ .content {
329
+ flex: 1 1 auto !important;
330
+ max-height: unset !important;
331
+ }
332
+ }
333
+ `)) : null;
334
+ }
335
+ //--------------------------------------------------------------------------
336
+ //
337
+ // Event Listeners
338
+ //
339
+ //--------------------------------------------------------------------------
340
+ handleEscape(event) {
341
+ if (this.open && !this.disableEscape && event.key === "Escape" && !event.defaultPrevented) {
342
+ this.close();
343
+ event.preventDefault();
344
+ }
345
+ }
346
+ //--------------------------------------------------------------------------
347
+ //
348
+ // Public Methods
349
+ //
350
+ //--------------------------------------------------------------------------
351
+ /**
352
+ * Focus the first interactive element.
353
+ *
354
+ * @param el
355
+ * @deprecated use `setFocus` instead.
356
+ */
357
+ async focusElement(el) {
358
+ if (el) {
359
+ el.focus();
360
+ }
361
+ return this.setFocus();
362
+ }
363
+ /**
364
+ * Sets focus on the component.
365
+ *
366
+ * By default, tries to focus on focusable content. If there is none, it will focus on the close button.
367
+ * To focus on the close button, use the `close-button` focus ID.
368
+ *
369
+ * @param focusId
370
+ */
371
+ async setFocus(focusId) {
372
+ const closeButton = this.closeButtonEl;
373
+ return focusElement(focusId === "close-button" ? closeButton : getFocusableElements(this.el)[0] || closeButton);
374
+ }
375
+ /**
376
+ * Sets the scroll top of the component's content.
377
+ *
378
+ * @param top
379
+ * @param left
380
+ */
381
+ async scrollContent(top = 0, left = 0) {
382
+ if (this.modalContent) {
383
+ if (this.modalContent.scrollTo) {
384
+ this.modalContent.scrollTo({ top, left, behavior: "smooth" });
385
+ }
386
+ else {
387
+ this.modalContent.scrollTop = top;
388
+ this.modalContent.scrollLeft = left;
389
+ }
390
+ }
391
+ }
392
+ onBeforeOpen() {
393
+ this.transitionEl.classList.add(CSS.openingActive);
394
+ this.calciteModalBeforeOpen.emit();
395
+ }
396
+ onOpen() {
397
+ this.transitionEl.classList.remove(CSS.openingIdle, CSS.openingActive);
398
+ this.calciteModalOpen.emit();
399
+ }
400
+ onBeforeClose() {
401
+ this.transitionEl.classList.add(CSS.closingActive);
402
+ this.calciteModalBeforeClose.emit();
403
+ }
404
+ onClose() {
405
+ this.transitionEl.classList.remove(CSS.closingIdle, CSS.closingActive);
406
+ this.calciteModalClose.emit();
407
+ }
408
+ activeHandler(value) {
409
+ this.open = value;
410
+ }
411
+ async toggleModal(value) {
412
+ var _a, _b;
413
+ this.active = value;
414
+ if (value) {
415
+ (_a = this.transitionEl) === null || _a === void 0 ? void 0 : _a.classList.add(CSS.openingIdle);
416
+ this.openModal();
417
+ }
418
+ else {
419
+ (_b = this.transitionEl) === null || _b === void 0 ? void 0 : _b.classList.add(CSS.closingIdle);
420
+ this.close();
421
+ }
422
+ }
423
+ /** Open the modal */
424
+ openModal() {
425
+ this.previousActiveElement = document.activeElement;
426
+ this.el.addEventListener("calciteModalOpen", this.openEnd);
427
+ this.open = true;
428
+ this.isOpen = true;
429
+ const titleEl = getSlotted(this.el, SLOTS.header);
430
+ const contentEl = getSlotted(this.el, SLOTS.content);
431
+ this.titleId = ensureId(titleEl);
432
+ this.contentId = ensureId(contentEl);
433
+ document.documentElement.classList.add(CSS.overflowHidden);
434
+ }
435
+ removeOverflowHiddenClass() {
436
+ document.documentElement.classList.remove(CSS.overflowHidden);
437
+ }
438
+ get el() { return this; }
439
+ static get watchers() { return {
440
+ "active": ["activeHandler"],
441
+ "open": ["toggleModal"]
442
+ }; }
443
+ static get style() { return modalCss; }
444
+ }, [1, "calcite-modal", {
445
+ "active": [1540],
446
+ "open": [1540],
447
+ "beforeClose": [16],
448
+ "disableCloseButton": [516, "disable-close-button"],
449
+ "disableOutsideClose": [516, "disable-outside-close"],
450
+ "intlClose": [1, "intl-close"],
451
+ "docked": [516],
452
+ "disableEscape": [516, "disable-escape"],
453
+ "scale": [513],
454
+ "width": [520],
455
+ "fullscreen": [516],
456
+ "color": [513],
457
+ "backgroundColor": [513, "background-color"],
458
+ "noPadding": [516, "no-padding"],
459
+ "hasFooter": [32],
460
+ "isOpen": [32],
461
+ "focusElement": [64],
462
+ "setFocus": [64],
463
+ "scrollContent": [64]
464
+ }, [[8, "keydown", "handleEscape"]]]);
465
+ function defineCustomElement() {
466
+ if (typeof customElements === "undefined") {
467
+ return;
468
+ }
469
+ const components = ["calcite-modal", "calcite-icon", "calcite-loader", "calcite-scrim"];
470
+ components.forEach(tagName => { switch (tagName) {
471
+ case "calcite-modal":
472
+ if (!customElements.get(tagName)) {
473
+ customElements.define(tagName, Modal);
474
+ }
475
+ break;
476
+ case "calcite-icon":
477
+ if (!customElements.get(tagName)) {
478
+ defineCustomElement$3();
479
+ }
480
+ break;
481
+ case "calcite-loader":
482
+ if (!customElements.get(tagName)) {
483
+ defineCustomElement$2();
484
+ }
485
+ break;
486
+ case "calcite-scrim":
487
+ if (!customElements.get(tagName)) {
488
+ defineCustomElement$1();
489
+ }
490
+ break;
491
+ } });
492
+ }
493
+ defineCustomElement();
494
+
495
+ export { Modal as M, defineCustomElement as d };