@ukic/canary-web-components 2.0.0-canary.10 → 2.0.0-canary.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/helpers-7a069459.js.map +1 -1
  3. package/dist/cjs/helpers-f75cf7cf.js.map +1 -1
  4. package/dist/cjs/ic-badge.cjs.entry.js +15 -7
  5. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-date-input.cjs.entry.js +24 -8
  7. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-date-picker.cjs.entry.js +3 -3
  9. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-dialog.cjs.entry.js +2 -1
  11. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/collection/components/ic-date-input/ic-date-input.js +52 -8
  14. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  15. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +0 -17
  16. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -1
  17. package/dist/collection/components/ic-date-picker/ic-date-picker.js +3 -3
  18. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  19. package/dist/collection/components/ic-date-picker/story-data.js +1 -0
  20. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  21. package/dist/collection/utils/helpers.js +14 -0
  22. package/dist/collection/utils/helpers.js.map +1 -1
  23. package/dist/components/helpers.js.map +1 -1
  24. package/dist/components/helpers2.js.map +1 -1
  25. package/dist/components/ic-badge.js +16 -8
  26. package/dist/components/ic-badge.js.map +1 -1
  27. package/dist/components/ic-date-input2.js +26 -9
  28. package/dist/components/ic-date-input2.js.map +1 -1
  29. package/dist/components/ic-date-picker.js +3 -3
  30. package/dist/components/ic-date-picker.js.map +1 -1
  31. package/dist/components/ic-dialog.js +2 -1
  32. package/dist/components/ic-dialog.js.map +1 -1
  33. package/dist/core/core.esm.js +1 -1
  34. package/dist/core/core.esm.js.map +1 -1
  35. package/dist/core/{p-ca8cbd6a.entry.js → p-0080bbce.entry.js} +2 -2
  36. package/dist/core/{p-6690bc04.entry.js → p-02d0ecd2.entry.js} +2 -2
  37. package/dist/core/{p-a0f9b259.entry.js → p-0388b484.entry.js} +2 -2
  38. package/dist/core/{p-982a6e88.entry.js → p-06aef486.entry.js} +2 -2
  39. package/dist/core/{p-1ce75941.entry.js → p-0b32ba5b.entry.js} +2 -2
  40. package/dist/core/{p-d4fdd8c1.entry.js → p-170f6408.entry.js} +2 -2
  41. package/dist/core/{p-2c1fecb9.entry.js → p-1857e9a7.entry.js} +2 -2
  42. package/dist/core/{p-a42c2f37.entry.js → p-1f1b4b8b.entry.js} +2 -2
  43. package/dist/core/{p-2e2e0099.entry.js → p-21da96a9.entry.js} +2 -2
  44. package/dist/core/{p-b306cbc8.entry.js → p-221d03e1.entry.js} +2 -2
  45. package/dist/core/{p-7cecf5d5.entry.js → p-23a13636.entry.js} +2 -2
  46. package/dist/core/{p-86012178.entry.js → p-25a458bf.entry.js} +2 -2
  47. package/dist/core/{p-d35c7c18.js → p-2c3cdfa3.js} +2 -2
  48. package/dist/core/{p-d35c7c18.js.map → p-2c3cdfa3.js.map} +1 -1
  49. package/dist/core/{p-5fe96107.entry.js → p-2f31bb92.entry.js} +2 -2
  50. package/dist/core/{p-8c90110a.entry.js → p-31fdb740.entry.js} +2 -2
  51. package/dist/core/p-40ba5a51.entry.js +2 -0
  52. package/dist/core/p-40ba5a51.entry.js.map +1 -0
  53. package/dist/core/p-4f0178a7.entry.js +2 -0
  54. package/dist/core/{p-d5c99ec3.entry.js.map → p-4f0178a7.entry.js.map} +1 -1
  55. package/dist/core/{p-9d540656.entry.js → p-56d01bdb.entry.js} +2 -2
  56. package/dist/core/p-5d6750ea.entry.js +2 -0
  57. package/dist/core/p-5d6750ea.entry.js.map +1 -0
  58. package/dist/core/{p-776671cf.entry.js → p-655df7fe.entry.js} +2 -2
  59. package/dist/core/{p-1b7d426b.entry.js → p-65a8c1d6.entry.js} +2 -2
  60. package/dist/core/{p-a6447b13.entry.js → p-6e32683c.entry.js} +2 -2
  61. package/dist/core/{p-5e2e6c3b.entry.js → p-70b48a14.entry.js} +2 -2
  62. package/dist/core/{p-76d26018.entry.js → p-7373beb0.entry.js} +2 -2
  63. package/dist/core/{p-1832f4b5.entry.js → p-75a2cdac.entry.js} +2 -2
  64. package/dist/core/{p-8ab12a15.entry.js → p-7c0f24b6.entry.js} +2 -2
  65. package/dist/core/{p-98448bdb.entry.js → p-8f1aa87d.entry.js} +2 -2
  66. package/dist/core/{p-e74f1d09.entry.js → p-95374ba1.entry.js} +2 -2
  67. package/dist/core/{p-06ae5bec.entry.js → p-98c8d46a.entry.js} +2 -2
  68. package/dist/core/{p-f55ad6ae.entry.js → p-9f9b3151.entry.js} +2 -2
  69. package/dist/core/{p-4f1ffa39.entry.js → p-a16c6ff3.entry.js} +2 -2
  70. package/dist/core/{p-5392bca0.entry.js → p-a22fd338.entry.js} +2 -2
  71. package/dist/core/{p-85609bdd.entry.js → p-a6e9a8e7.entry.js} +2 -2
  72. package/dist/core/p-b1e3f20a.entry.js +2 -0
  73. package/dist/core/{p-8ea47d42.entry.js.map → p-b1e3f20a.entry.js.map} +1 -1
  74. package/dist/core/{p-5759d771.entry.js → p-b1e646e4.entry.js} +2 -2
  75. package/dist/core/{p-d3856ed3.entry.js → p-b3ce9fe4.entry.js} +2 -2
  76. package/dist/core/{p-33679c06.entry.js → p-c680c7f9.entry.js} +2 -2
  77. package/dist/core/p-cd799087.js.map +1 -1
  78. package/dist/core/{p-0939ce92.entry.js → p-ce898d90.entry.js} +2 -2
  79. package/dist/core/p-d184d9e2.entry.js +2 -0
  80. package/dist/core/p-d184d9e2.entry.js.map +1 -0
  81. package/dist/core/{p-16f67397.entry.js → p-df5d7aa4.entry.js} +2 -2
  82. package/dist/core/{p-9d01a7ad.entry.js → p-df63896a.entry.js} +2 -2
  83. package/dist/core/{p-62e22508.entry.js → p-e21083c8.entry.js} +2 -2
  84. package/dist/core/{p-47ac6838.entry.js → p-e2155d7f.entry.js} +2 -2
  85. package/dist/core/{p-caf857de.entry.js → p-e33bdca9.entry.js} +2 -2
  86. package/dist/core/{p-3745da83.entry.js → p-e9e7a7f9.entry.js} +2 -2
  87. package/dist/core/{p-c7820c23.entry.js → p-ee09f1b3.entry.js} +2 -2
  88. package/dist/core/{p-f91527a0.entry.js → p-eeacd610.entry.js} +2 -2
  89. package/dist/core/{p-6c0e2ceb.entry.js → p-f24c9356.entry.js} +2 -2
  90. package/dist/core/p-f5d5f0be.entry.js +2 -0
  91. package/dist/core/p-f5d5f0be.entry.js.map +1 -0
  92. package/dist/core/{p-d32692e2.entry.js → p-f62cd6d2.entry.js} +2 -2
  93. package/dist/core/{p-ae422058.entry.js → p-fb58d1d1.entry.js} +2 -2
  94. package/dist/esm/core.js +1 -1
  95. package/dist/esm/{helpers-7aa21b0a.js → helpers-b5f64263.js} +2 -2
  96. package/dist/esm/{helpers-7aa21b0a.js.map → helpers-b5f64263.js.map} +1 -1
  97. package/dist/esm/helpers-f328a7b6.js.map +1 -1
  98. package/dist/esm/ic-accordion.entry.js +1 -1
  99. package/dist/esm/ic-alert.entry.js +1 -1
  100. package/dist/esm/ic-back-to-top.entry.js +1 -1
  101. package/dist/esm/ic-badge.entry.js +16 -8
  102. package/dist/esm/ic-badge.entry.js.map +1 -1
  103. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  104. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  105. package/dist/esm/ic-button_3.entry.js +1 -1
  106. package/dist/esm/ic-card.entry.js +1 -1
  107. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  108. package/dist/esm/ic-checkbox.entry.js +1 -1
  109. package/dist/esm/ic-chip.entry.js +1 -1
  110. package/dist/esm/ic-data-row.entry.js +1 -1
  111. package/dist/esm/ic-date-input.entry.js +24 -8
  112. package/dist/esm/ic-date-input.entry.js.map +1 -1
  113. package/dist/esm/ic-date-picker.entry.js +3 -3
  114. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  115. package/dist/esm/ic-dialog.entry.js +3 -2
  116. package/dist/esm/ic-dialog.entry.js.map +1 -1
  117. package/dist/esm/ic-divider.entry.js +1 -1
  118. package/dist/esm/ic-empty-state.entry.js +1 -1
  119. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  120. package/dist/esm/ic-footer-link.entry.js +1 -1
  121. package/dist/esm/ic-footer.entry.js +1 -1
  122. package/dist/esm/ic-hero.entry.js +1 -1
  123. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  124. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  125. package/dist/esm/ic-link.entry.js +1 -1
  126. package/dist/esm/ic-menu-group.entry.js +1 -1
  127. package/dist/esm/ic-menu-item.entry.js +1 -1
  128. package/dist/esm/ic-menu.entry.js +1 -1
  129. package/dist/esm/ic-navigation-button.entry.js +1 -1
  130. package/dist/esm/ic-navigation-group.entry.js +1 -1
  131. package/dist/esm/ic-navigation-item.entry.js +1 -1
  132. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  133. package/dist/esm/ic-page-header.entry.js +1 -1
  134. package/dist/esm/ic-pagination_4.entry.js +1 -1
  135. package/dist/esm/ic-popover-menu.entry.js +1 -1
  136. package/dist/esm/ic-radio-group.entry.js +1 -1
  137. package/dist/esm/ic-radio-option.entry.js +1 -1
  138. package/dist/esm/ic-search-bar.entry.js +1 -1
  139. package/dist/esm/ic-side-navigation.entry.js +1 -1
  140. package/dist/esm/ic-status-tag.entry.js +1 -1
  141. package/dist/esm/ic-step.entry.js +1 -1
  142. package/dist/esm/ic-stepper.entry.js +1 -1
  143. package/dist/esm/ic-switch.entry.js +1 -1
  144. package/dist/esm/ic-tab-group.entry.js +1 -1
  145. package/dist/esm/ic-tab-panel.entry.js +1 -1
  146. package/dist/esm/ic-tab.entry.js +1 -1
  147. package/dist/esm/ic-theme.entry.js +1 -1
  148. package/dist/esm/ic-toast.entry.js +1 -1
  149. package/dist/esm/ic-toggle-button.entry.js +1 -1
  150. package/dist/esm/ic-top-navigation.entry.js +1 -1
  151. package/dist/esm/ic-typography.entry.js +1 -1
  152. package/dist/esm/loader.js +1 -1
  153. package/dist/types/components/ic-date-input/ic-date-input.d.ts +6 -0
  154. package/dist/types/components.d.ts +1 -0
  155. package/dist/types/utils/helpers.d.ts +1 -0
  156. package/hydrate/index.js +46 -20
  157. package/package.json +3 -3
  158. package/dist/core/p-36508aad.entry.js +0 -2
  159. package/dist/core/p-36508aad.entry.js.map +0 -1
  160. package/dist/core/p-550a5674.entry.js +0 -2
  161. package/dist/core/p-550a5674.entry.js.map +0 -1
  162. package/dist/core/p-8ea47d42.entry.js +0 -2
  163. package/dist/core/p-d5c99ec3.entry.js +0 -2
  164. package/dist/core/p-e5d76564.entry.js +0 -2
  165. package/dist/core/p-e5d76564.entry.js.map +0 -1
  166. package/dist/core/p-e84b0310.entry.js +0 -2
  167. package/dist/core/p-e84b0310.entry.js.map +0 -1
  168. /package/dist/core/{p-ca8cbd6a.entry.js.map → p-0080bbce.entry.js.map} +0 -0
  169. /package/dist/core/{p-6690bc04.entry.js.map → p-02d0ecd2.entry.js.map} +0 -0
  170. /package/dist/core/{p-a0f9b259.entry.js.map → p-0388b484.entry.js.map} +0 -0
  171. /package/dist/core/{p-982a6e88.entry.js.map → p-06aef486.entry.js.map} +0 -0
  172. /package/dist/core/{p-1ce75941.entry.js.map → p-0b32ba5b.entry.js.map} +0 -0
  173. /package/dist/core/{p-d4fdd8c1.entry.js.map → p-170f6408.entry.js.map} +0 -0
  174. /package/dist/core/{p-2c1fecb9.entry.js.map → p-1857e9a7.entry.js.map} +0 -0
  175. /package/dist/core/{p-a42c2f37.entry.js.map → p-1f1b4b8b.entry.js.map} +0 -0
  176. /package/dist/core/{p-2e2e0099.entry.js.map → p-21da96a9.entry.js.map} +0 -0
  177. /package/dist/core/{p-b306cbc8.entry.js.map → p-221d03e1.entry.js.map} +0 -0
  178. /package/dist/core/{p-7cecf5d5.entry.js.map → p-23a13636.entry.js.map} +0 -0
  179. /package/dist/core/{p-86012178.entry.js.map → p-25a458bf.entry.js.map} +0 -0
  180. /package/dist/core/{p-5fe96107.entry.js.map → p-2f31bb92.entry.js.map} +0 -0
  181. /package/dist/core/{p-8c90110a.entry.js.map → p-31fdb740.entry.js.map} +0 -0
  182. /package/dist/core/{p-9d540656.entry.js.map → p-56d01bdb.entry.js.map} +0 -0
  183. /package/dist/core/{p-776671cf.entry.js.map → p-655df7fe.entry.js.map} +0 -0
  184. /package/dist/core/{p-1b7d426b.entry.js.map → p-65a8c1d6.entry.js.map} +0 -0
  185. /package/dist/core/{p-a6447b13.entry.js.map → p-6e32683c.entry.js.map} +0 -0
  186. /package/dist/core/{p-5e2e6c3b.entry.js.map → p-70b48a14.entry.js.map} +0 -0
  187. /package/dist/core/{p-76d26018.entry.js.map → p-7373beb0.entry.js.map} +0 -0
  188. /package/dist/core/{p-1832f4b5.entry.js.map → p-75a2cdac.entry.js.map} +0 -0
  189. /package/dist/core/{p-8ab12a15.entry.js.map → p-7c0f24b6.entry.js.map} +0 -0
  190. /package/dist/core/{p-98448bdb.entry.js.map → p-8f1aa87d.entry.js.map} +0 -0
  191. /package/dist/core/{p-e74f1d09.entry.js.map → p-95374ba1.entry.js.map} +0 -0
  192. /package/dist/core/{p-06ae5bec.entry.js.map → p-98c8d46a.entry.js.map} +0 -0
  193. /package/dist/core/{p-f55ad6ae.entry.js.map → p-9f9b3151.entry.js.map} +0 -0
  194. /package/dist/core/{p-4f1ffa39.entry.js.map → p-a16c6ff3.entry.js.map} +0 -0
  195. /package/dist/core/{p-5392bca0.entry.js.map → p-a22fd338.entry.js.map} +0 -0
  196. /package/dist/core/{p-85609bdd.entry.js.map → p-a6e9a8e7.entry.js.map} +0 -0
  197. /package/dist/core/{p-5759d771.entry.js.map → p-b1e646e4.entry.js.map} +0 -0
  198. /package/dist/core/{p-d3856ed3.entry.js.map → p-b3ce9fe4.entry.js.map} +0 -0
  199. /package/dist/core/{p-33679c06.entry.js.map → p-c680c7f9.entry.js.map} +0 -0
  200. /package/dist/core/{p-0939ce92.entry.js.map → p-ce898d90.entry.js.map} +0 -0
  201. /package/dist/core/{p-16f67397.entry.js.map → p-df5d7aa4.entry.js.map} +0 -0
  202. /package/dist/core/{p-9d01a7ad.entry.js.map → p-df63896a.entry.js.map} +0 -0
  203. /package/dist/core/{p-62e22508.entry.js.map → p-e21083c8.entry.js.map} +0 -0
  204. /package/dist/core/{p-47ac6838.entry.js.map → p-e2155d7f.entry.js.map} +0 -0
  205. /package/dist/core/{p-caf857de.entry.js.map → p-e33bdca9.entry.js.map} +0 -0
  206. /package/dist/core/{p-3745da83.entry.js.map → p-e9e7a7f9.entry.js.map} +0 -0
  207. /package/dist/core/{p-c7820c23.entry.js.map → p-ee09f1b3.entry.js.map} +0 -0
  208. /package/dist/core/{p-f91527a0.entry.js.map → p-eeacd610.entry.js.map} +0 -0
  209. /package/dist/core/{p-6c0e2ceb.entry.js.map → p-f24c9356.entry.js.map} +0 -0
  210. /package/dist/core/{p-d32692e2.entry.js.map → p-f62cd6d2.entry.js.map} +0 -0
  211. /package/dist/core/{p-ae422058.entry.js.map → p-fb58d1d1.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -8570,6 +8570,7 @@ const icBadgeCss = "@media (prefers-reduced-motion: no-preference){/*!@:host(.sh
8570
8570
  class Badge {
8571
8571
  constructor(hostRef) {
8572
8572
  registerInstance(this, hostRef);
8573
+ this.ariaLabel = null;
8573
8574
  this.setBadgeColour = () => {
8574
8575
  let colorRGBA = null;
8575
8576
  if (this.customColor !== null) {
@@ -8652,13 +8653,22 @@ class Badge {
8652
8653
  }
8653
8654
  return label;
8654
8655
  };
8656
+ // Set aria-label on badge and / or parent element
8657
+ // Aria-describedby seems to not work, probably due to shadow DOM
8655
8658
  this.setAccessibleLabel = () => {
8659
+ const parentElType = getParentElementType(this.el);
8660
+ const parentElAriaLabel = getParentElement(this.el).ariaLabel;
8661
+ const defaultAriaLabel = this.isAccessibleLabelDefined()
8662
+ ? this.accessibleLabel
8663
+ : this.textLabel || "with badge being displayed";
8656
8664
  if (getParentElement(this.el) !== null) {
8657
- if (getParentElementType(this.el) === "IC-TAB") {
8658
- getParentElement(this.el).setAttribute("aria-describedby", "badge");
8665
+ if (parentElType !== "IC-CARD" &&
8666
+ (parentElType !== "IC-TAB" ||
8667
+ (parentElType === "IC-TAB" && parentElAriaLabel))) {
8668
+ getParentElement(this.el).ariaLabel = `${parentElAriaLabel ? `${parentElAriaLabel} ,` : ""} ${defaultAriaLabel}`;
8659
8669
  }
8660
8670
  else {
8661
- getParentElement(this.el).ariaLabel = `badge displaying ${this.accessibleLabel}`;
8671
+ this.ariaLabel = `, ${defaultAriaLabel}`;
8662
8672
  }
8663
8673
  }
8664
8674
  };
@@ -8678,7 +8688,7 @@ class Badge {
8678
8688
  componentWillLoad() {
8679
8689
  this.variant === "custom" && this.setBadgeColour();
8680
8690
  this.getBadgeForeground();
8681
- this.isAccessibleLabelDefined() && this.setAccessibleLabel();
8691
+ this.setAccessibleLabel();
8682
8692
  }
8683
8693
  componentDidLoad() {
8684
8694
  this.type === "text" &&
@@ -8706,9 +8716,7 @@ class Badge {
8706
8716
  [`foreground-${foregroundColour}`]: foregroundColour !== null,
8707
8717
  ["show"]: visible,
8708
8718
  ["hide"]: !visible,
8709
- }, id: this.el.id || null, "aria-label": this.isAccessibleLabelDefined()
8710
- ? `badge displaying ${this.accessibleLabel}`
8711
- : "badge being displayed", role: "status" }, type === "icon" && hAsync("slot", { name: "badge-icon" }), type === "text" && (hAsync("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
8719
+ }, id: this.el.id || null, "aria-label": this.ariaLabel, role: "status" }, type === "icon" && hAsync("slot", { name: "badge-icon" }), type === "text" && (hAsync("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
8712
8720
  }
8713
8721
  static get delegatesFocus() { return true; }
8714
8722
  get el() { return getElement(this); }
@@ -10800,6 +10808,7 @@ class DateInput {
10800
10808
  this.KEYBOARD_EVENT_OBJECT_STRING = "[object KeyboardEvent]";
10801
10809
  this.MAX_DAY = 31;
10802
10810
  this.MAX_MONTH = 12;
10811
+ this.previousEmittedDate = undefined;
10803
10812
  this.previousSelectedDate = null;
10804
10813
  this.selectedDate = null;
10805
10814
  this.setInputPasteValue = (input, pastedValue) => {
@@ -11426,7 +11435,8 @@ class DateInput {
11426
11435
  this.icBlur.emit({ value: this.selectedDate });
11427
11436
  };
11428
11437
  this.handleHostFocus = () => {
11429
- if (this.el.shadowRoot.activeElement.id.match(/(day|month|year)-input$/)) {
11438
+ var _a;
11439
+ if ((_a = this.el.shadowRoot.activeElement) === null || _a === void 0 ? void 0 : _a.id.match(/(day|month|year)-input$/)) {
11430
11440
  this.removeLabelledBy = false;
11431
11441
  }
11432
11442
  else {
@@ -11524,19 +11534,16 @@ class DateInput {
11524
11534
  this.inputsInOrder[0].focus();
11525
11535
  };
11526
11536
  this.handleCalendarOpen = (ev) => {
11537
+ var _a, _b;
11527
11538
  ev.stopImmediatePropagation();
11528
- this.calendarButtonEl.shadowRoot
11529
- .querySelector("ic-tooltip")
11530
- .displayTooltip(false);
11539
+ (_a = this.calendarButtonEl) === null || _a === void 0 ? void 0 : _a.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
11531
11540
  this.calendarButtonClicked.emit({ value: this.selectedDate });
11532
- this.calendarButtonEl.shadowRoot
11533
- .querySelector("ic-tooltip")
11534
- .displayTooltip(false);
11541
+ (_b = this.calendarButtonEl) === null || _b === void 0 ? void 0 : _b.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
11535
11542
  this.isDateSetFromKeyboardEvent = false;
11536
11543
  };
11537
11544
  this.setValueAndEmitChange = (value) => {
11538
11545
  if (!dateMatches(new Date(this.value), value)) {
11539
- this.icChange.emit({ value: value });
11546
+ this.emitIcChange(value);
11540
11547
  this.value = value;
11541
11548
  }
11542
11549
  };
@@ -11559,6 +11566,13 @@ class DateInput {
11559
11566
  }
11560
11567
  this.removeLabelledBy = true;
11561
11568
  };
11569
+ this.emitIcChange = (d) => {
11570
+ if (!(d === null && this.previousEmittedDate === null) &&
11571
+ !dateMatches(d, this.previousEmittedDate)) {
11572
+ this.previousEmittedDate = d;
11573
+ this.icChange.emit({ value: d });
11574
+ }
11575
+ };
11562
11576
  this.day = "";
11563
11577
  this.invalidDateText = undefined;
11564
11578
  this.maxDate = undefined;
@@ -11618,6 +11632,10 @@ class DateInput {
11618
11632
  this.watchMaxHandler();
11619
11633
  if (this.value) {
11620
11634
  this.setDate(this.value);
11635
+ this.previousEmittedDate = this.selectedDate;
11636
+ }
11637
+ else {
11638
+ this.previousEmittedDate = null;
11621
11639
  }
11622
11640
  this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;
11623
11641
  this.assistiveHintId = `${this.inputId}-assistive-hint`;
@@ -11688,6 +11706,12 @@ class DateInput {
11688
11706
  async setDisableDays(days) {
11689
11707
  this.disableDays = days;
11690
11708
  }
11709
+ /**
11710
+ * @internal Used to enable other components to invoke an IcChange event from the input.
11711
+ */
11712
+ async triggerIcChange(d) {
11713
+ this.emitIcChange(d);
11714
+ }
11691
11715
  removeAriaLabelledBy() {
11692
11716
  this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);
11693
11717
  }
@@ -11858,7 +11882,8 @@ class DateInput {
11858
11882
  "removeLabelledBy": [32],
11859
11883
  "getDate": [64],
11860
11884
  "setCalendarFocus": [64],
11861
- "setDisableDays": [64]
11885
+ "setDisableDays": [64],
11886
+ "triggerIcChange": [64]
11862
11887
  },
11863
11888
  "$listeners$": undefined,
11864
11889
  "$lazyBundleId$": "-",
@@ -12022,7 +12047,7 @@ class DatePicker {
12022
12047
  this.selectedDate = d;
12023
12048
  this.value = d;
12024
12049
  if (emit) {
12025
- this.icChange.emit({ value: d });
12050
+ this.inputEl.triggerIcChange(d);
12026
12051
  }
12027
12052
  }
12028
12053
  };
@@ -12111,7 +12136,7 @@ class DatePicker {
12111
12136
  }
12112
12137
  };
12113
12138
  this.clearButtonClickHandler = () => {
12114
- this.setSelectedDate(null, false);
12139
+ this.setSelectedDate(null);
12115
12140
  let text = "Selected date cleared.";
12116
12141
  if (!this.monthPickerVisible && !this.yearPickerVisible) {
12117
12142
  text += ` ${this.getMonthInViewText()}`;
@@ -12140,7 +12165,7 @@ class DatePicker {
12140
12165
  return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;
12141
12166
  };
12142
12167
  this.setAriaLiveRegionText = (text) => {
12143
- this.liveRegionEl.innerText = text;
12168
+ this.liveRegionEl && (this.liveRegionEl.innerText = text);
12144
12169
  };
12145
12170
  this.clearDialogDescription = () => {
12146
12171
  this.dialogDescription = "";
@@ -12981,12 +13006,13 @@ class Dialog {
12981
13006
  this.IC_ACCORDION = "IC-ACCORDION";
12982
13007
  this.resizeObserver = null;
12983
13008
  this.dialogOpened = () => {
13009
+ var _a;
12984
13010
  this.dialogRendered = true;
12985
13011
  if (this.disableHeightConstraint) {
12986
13012
  this.dialogEl.show();
12987
13013
  }
12988
13014
  else {
12989
- this.dialogEl.showModal();
13015
+ (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.showModal();
12990
13016
  }
12991
13017
  setTimeout(() => {
12992
13018
  this.fadeIn = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukic/canary-web-components",
3
- "version": "2.0.0-canary.10",
3
+ "version": "2.0.0-canary.11",
4
4
  "description": "A web component UI library compiled with StencilJS",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "./dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "dependencies": {
44
44
  "@popperjs/core": "^2.11.2",
45
45
  "@stencil/core": "^4.9.0",
46
- "@ukic/web-components": "^2.16.0"
46
+ "@ukic/web-components": "^2.17.0"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@ukic/fonts": "^2.3.0"
@@ -89,5 +89,5 @@
89
89
  "webpack": "^5.76.0"
90
90
  },
91
91
  "license": "MIT",
92
- "gitHead": "5976cc52ef4bfb8988c33bb1a582e655961fe179"
92
+ "gitHead": "3a062cfa85a5a6eb33b7988e2c9e6b93924b0692"
93
93
  }
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8455d1bb.js";import{c as n}from"./p-e081702e.js";import{f as o,d as r,i as h}from"./p-d35c7c18.js";import"./p-fd186591.js";const l='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;min-height:100% !important;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);opacity:0;transition:opacity var(--ic-easing-transition-slow)}:host(.disable-height-constraint){background:none;justify-content:unset;align-items:unset}.dialog.disable-height-constraint{max-height:none;position:relative}.dialog.disable-height-constraint .content-area{overflow-y:visible}:host(.fade-in){opacity:1;transition:opacity var(--ic-easing-transition-slow)}:host(.hidden){display:none}.dialog{background-color:var(--ic-architectural-white);border:var(--ic-border-default);border-radius:var(--ic-border-radius);padding:var(--ic-space-xs) 0 var(--ic-space-md);transform:translateY(-3rem);transition:transform 1000s;display:flex;flex-direction:column;box-sizing:border-box;overflow-x:visible}:host(.fade-in) .dialog{transform:translateY(0);transition:transform var(--ic-easing-transition-slow)}.small{width:50%;max-width:25rem;min-height:11rem;max-height:70vh}.medium{width:70vw;max-width:44rem;min-height:12.5rem;max-height:70vh}.large{width:90vw;max-width:62.5rem;min-height:12.5rem;max-height:90vh}.heading-area{display:flex;margin-bottom:var(--ic-space-xs);padding:0 var(--ic-space-md)}.heading{overflow-wrap:break-word}.close-icon{margin-left:auto}.content-area{-ms-overflow-style:none;scrollbar-width:none;padding:0 var(--ic-space-md);margin:0;overflow-y:auto}.content-area::-webkit-scrollbar{display:none}#dialog-content{margin-bottom:var(--ic-space-sm)}#dialog-content ::slotted(ic-typography){overflow-wrap:break-word}#dialog-content ::slotted(*){position:relative}.status-alert{margin-bottom:var(--ic-space-xs)}.dialog-controls{margin-top:auto;padding:var(--ic-space-xs) var(--ic-space-md) 0;display:flex;justify-content:flex-end;gap:var(--ic-space-md)}.dialog-control-button{width:-moz-fit-content;width:fit-content}.backdrop{overflow-y:auto;position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);padding-top:16px;padding-bottom:16px}@media (min-width: 800px){:host([size="large"]) .dialog:not(.disable-width-constraint)>.content-area{width:75%}}@media (max-width: 576px){.dialog{width:100vw;height:100vh;transform:translateY(-5rem);max-width:none;max-height:none;box-sizing:border-box}.backdrop{padding:0}.dialog.disable-height-constraint{height:auto;min-height:100vh}}@media (max-width: 364px){.triple-button{flex-direction:column;gap:var(--ic-space-xs)}.dialog-control-button{width:unset}}';const d=class{constructor(s){t(this,s);this.icDialogCancelled=i(this,"icDialogCancelled",7);this.icDialogClosed=i(this,"icDialogClosed",7);this.icDialogConfirmed=i(this,"icDialogConfirmed",7);this.icDialogOpened=i(this,"icDialogOpened",7);this.DATA_GETS_FOCUS="data-gets-focus";this.DATA_GETS_FOCUS_SELECTOR="[data-gets-focus]";this.DIALOG_CONTROLS="dialog-controls";this.dialogHeight=0;this.focusedElementIndex=0;this.IC_TEXT_FIELD="IC-TEXT-FIELD";this.IC_ACCORDION="IC-ACCORDION";this.resizeObserver=null;this.dialogOpened=()=>{this.dialogRendered=true;if(this.disableHeightConstraint){this.dialogEl.show()}else{this.dialogEl.showModal()}setTimeout((()=>{this.fadeIn=true;if(this.disableHeightConstraint&&this.backdropEl.scrollTop!==0){this.backdropEl.scrollTop=0}}),10);setTimeout((()=>{this.setInitialFocus();o(this.runResizeObserver)}),75);setTimeout((()=>{this.getFocusedElementIndex();this.icDialogOpened.emit()}),80)};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{clearTimeout(this.resizeTimeout);this.resizeTimeout=window.setTimeout(this.resizeObserverCallback,80)}));this.resizeObserver.observe(this.dialogEl)};this.resizeObserverCallback=()=>{if(this.dialogEl.clientHeight!==this.dialogHeight){this.dialogHeight=this.dialogEl.clientHeight}};this.refreshInteractiveElementsOnSlotChange=()=>{this.contentArea=this.el.shadowRoot.querySelector("#dialog-content slot");this.contentArea.addEventListener("slotchange",this.getInteractiveElements)};this.removeSlotChangeListener=()=>{if(this.contentArea){this.contentArea.removeEventListener("slotchange",this.getInteractiveElements)}};this.setInitialFocus=()=>{this.sourceElement=document.activeElement;let t;if(this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)!==null){t=this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}else{t=this.el.shadowRoot.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}if(t.tagName===this.IC_TEXT_FIELD){t.setFocus()}else if(t.tagName===this.IC_ACCORDION){t.setFocus()}else{t.focus({preventScroll:this.disableHeightConstraint?true:false})}};this.getFocusedElementIndex=()=>{for(let t=0;t<this.interactiveElementList.length;t++){if(this.interactiveElementList[t]===(this.el.shadowRoot.activeElement||document.activeElement)){this.focusedElementIndex=t}}};this.setAlertVariant=()=>{if(r(this.status)&&this.status!==null){const t=this.el.shadowRoot.querySelector("ic-alert");t.setAttribute("variant",this.status)}};this.closeIconClick=()=>{this.open=false};this.getInteractiveElements=()=>{this.interactiveElementList=Array.from(this.el.shadowRoot.querySelectorAll("ic-button"));const t=Array.from(this.el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex="-1"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible="true"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion`));if(t.length>0){if(t[0].slot!==this.DIALOG_CONTROLS){t[0].setAttribute(this.DATA_GETS_FOCUS,"")}else if(!this.destructive){t[t.length-1].setAttribute(this.DATA_GETS_FOCUS,"")}}for(let i=0;i<t.length;i++){this.interactiveElementList.splice(1+i,0,t[i])}};this.getNextFocusEl=t=>this.interactiveElementList[t];this.focusNextInteractiveElement=t=>{this.getFocusedElementIndex();this.setFocusIndexBasedOnShiftKey(t);this.loopNextFocusIndexIfLastElement();let i=this.getNextFocusEl(this.focusedElementIndex);const e=getComputedStyle(i).visibility==="hidden";if(i.tagName===this.IC_TEXT_FIELD){i.setFocus()}else{if(e){this.setFocusIndexBasedOnShiftKey(t);this.loopNextFocusIndexIfLastElement();i=this.getNextFocusEl(this.focusedElementIndex)}if(i.tagName===this.IC_ACCORDION){i.setFocus()}else{i.focus()}}};this.setButtonOnClick=()=>{var t,i,e;if(this.buttons){this.buttonOnclick0=new Function((t=this.buttonProps[0])===null||t===void 0?void 0:t.onclick);this.buttonOnclick1=new Function((i=this.buttonProps[1])===null||i===void 0?void 0:i.onclick);this.buttonOnclick2=new Function((e=this.buttonProps[2])===null||e===void 0?void 0:e.onclick)}};this.getButtonOnclick=t=>{if(t===0){return this.buttonOnclick0()}else if(t===1){return this.buttonOnclick1()}else{return this.buttonOnclick2()}};this.getButtonVariant=t=>{const i=this.destructive?"destructive":"primary";if(this.buttonProps.length===1){return i}else if(this.buttonProps.length===2){if(t===0){return"tertiary"}else{return i}}else{if(t===2){return i}else{return"secondary"}}};this.renderDialog=()=>{const{alertHeading:t,alertMessage:i,buttons:s,buttonProps:a,size:o,heading:r,label:l,status:d,destructive:c,dismissLabel:u,hideCloseButton:m}=this;return e("dialog",{class:{["dialog"]:true,[`${o}`]:true,["disable-height-constraint"]:this.disableHeightConstraint,["disable-width-constraint"]:this.disableWidthConstraint},"aria-labelledby":"dialog-label dialog-heading","aria-describedby":"dialog-alert dialog-content",ref:t=>this.dialogEl=t},e("div",{class:"heading-area"},e("div",{class:"heading-content"},e("div",{class:"label"},e("slot",{name:"label"},e("ic-typography",{variant:"label",id:"dialog-label"},l))),e("div",{class:"heading"},e("slot",{name:"heading"},e("ic-typography",{variant:"h4",id:"dialog-heading"},r)))),!m&&e("ic-button",{class:"close-icon",variant:"icon",innerHTML:n,"aria-label":u,onClick:this.closeIconClick,"data-gets-focus":c||!s?"":null})),e("div",{class:"content-area"},h(this.el,"alert")?e("slot",{name:"alert"}):d&&e("ic-alert",{variant:d,heading:t,message:i,"title-above":true,class:"status-alert",id:"dialog-alert"}),e("div",{id:"dialog-content"},e("slot",null))),(s||h(this.el,this.DIALOG_CONTROLS))&&e("div",{class:{[this.DIALOG_CONTROLS]:true,["triple-button"]:a.length===3}},e("slot",{name:this.DIALOG_CONTROLS},!h(this.el,this.DIALOG_CONTROLS)&&a.map(((t,i)=>{if(i>2){return}else{return e("ic-button",{variant:this.getButtonVariant(i),onClick:()=>this.getButtonOnclick(i),class:"dialog-control-button","full-width":a.length===3,"data-gets-focus":this.getButtonVariant(i)==="primary"?"":null},t.label)}})))))};this.dialogRendered=false;this.fadeIn=false;this.alertHeading=undefined;this.alertMessage=undefined;this.buttons=true;this.closeOnBackdropClick=true;this.destructive=false;this.dismissLabel="Dismiss";this.disableHeightConstraint=false;this.disableWidthConstraint=false;this.hideCloseButton=false;this.heading=undefined;this.label=undefined;this.open=undefined;this.size="small";this.status=undefined;this.buttonProps=[{label:"Cancel",onclick:"this.cancelDialog();"},{label:"Confirm",onclick:"this.confirmDialog();"}]}watchOpenHandler(){if(this.open){this.dialogOpened()}else{this.fadeIn=false;if(this.resizeObserver!==null){this.resizeObserver.disconnect()}setTimeout((()=>{var t;this.dialogRendered=false;this.dialogEl.close();(t=this.sourceElement)===null||t===void 0?void 0:t.focus();this.dialogHeight=0;this.icDialogClosed.emit()}),80)}}watchPropHandler(){this.setButtonOnClick()}disconnectedCallback(){this.removeSlotChangeListener()}componentWillLoad(){if(this.buttonProps.length){this.setButtonOnClick()}}componentDidLoad(){this.getInteractiveElements();this.setAlertVariant();this.refreshInteractiveElementsOnSlotChange();if(this.open){this.dialogOpened()}}componentDidRender(){if(getComputedStyle(this.el).display!=="none"&&this.disableHeightConstraint){document.body.style.overflow="hidden"}else{document.body.style.overflow="auto"}}handleKeyboard(t){if(this.dialogRendered){switch(t.key){case"Tab":t.preventDefault();this.focusNextInteractiveElement(t.shiftKey);break;case"Escape":if(!t.repeat){this.open=false}t.stopImmediatePropagation();break}}}handleClick(t){const i=this.el.shadowRoot.querySelector("dialog");if(this.closeOnBackdropClick&&t.composedPath().indexOf(i)<=0){const i=this.dialogEl.getBoundingClientRect();const e=i.top<=t.clientY&&t.clientY<=i.top+i.height&&i.left<=t.clientX&&t.clientX<=i.left+i.width;if(!e){this.open=false}}}async showDialog(){this.open=true}async hideDialog(){this.open=false}async cancelDialog(){this.icDialogCancelled.emit();this.open=false}async confirmDialog(){this.icDialogConfirmed.emit()}loopNextFocusIndexIfLastElement(){if(this.focusedElementIndex>this.interactiveElementList.length-1)this.focusedElementIndex=0;else if(this.focusedElementIndex<0){this.focusedElementIndex=this.interactiveElementList.length-1}}setFocusIndexBasedOnShiftKey(t){if(t){this.focusedElementIndex-=1}else{this.focusedElementIndex+=1}}render(){return e(s,{class:{["hidden"]:!this.dialogRendered,["fade-in"]:this.fadeIn,["disable-height-constraint"]:this.disableHeightConstraint}},this.disableHeightConstraint?e("div",{class:"backdrop",ref:t=>this.backdropEl=t},this.renderDialog()):this.renderDialog())}get el(){return a(this)}static get watchers(){return{open:["watchOpenHandler"],buttonProps:["watchPropHandler"]}}};d.style=l;export{d as ic_dialog};
2
- //# sourceMappingURL=p-36508aad.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDialogCss","Dialog","constructor","hostRef","this","DATA_GETS_FOCUS","DATA_GETS_FOCUS_SELECTOR","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","resizeObserver","dialogOpened","dialogRendered","disableHeightConstraint","dialogEl","show","showModal","setTimeout","fadeIn","backdropEl","scrollTop","setInitialFocus","checkResizeObserver","runResizeObserver","getFocusedElementIndex","icDialogOpened","emit","ResizeObserver","clearTimeout","resizeTimeout","window","resizeObserverCallback","observe","clientHeight","refreshInteractiveElementsOnSlotChange","contentArea","el","shadowRoot","querySelector","addEventListener","getInteractiveElements","removeSlotChangeListener","removeEventListener","sourceElement","document","activeElement","focusedElement","tagName","setFocus","focus","preventScroll","i","interactiveElementList","length","setAlertVariant","isPropDefined","status","alert","setAttribute","closeIconClick","open","Array","from","querySelectorAll","slottedInteractiveElements","slot","destructive","splice","getNextFocusEl","focusNextInteractiveElement","shiftKey","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","nextFocusEl","isHidden","getComputedStyle","visibility","setButtonOnClick","_a","_b","_c","buttons","buttonOnclick0","Function","buttonProps","onclick","buttonOnclick1","buttonOnclick2","getButtonOnclick","index","getButtonVariant","mainVariant","renderDialog","alertHeading","alertMessage","size","heading","label","dismissLabel","hideCloseButton","h","class","disableWidthConstraint","ref","name","variant","id","innerHTML","closeIcon","onClick","isSlotUsed","message","map","props","undefined","closeOnBackdropClick","watchOpenHandler","disconnect","close","icDialogClosed","watchPropHandler","disconnectedCallback","componentWillLoad","componentDidLoad","componentDidRender","display","body","style","overflow","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","dialogElement","composedPath","indexOf","rect","getBoundingClientRect","isInDialog","top","clientY","height","left","clientX","width","showDialog","hideDialog","cancelDialog","icDialogCancelled","confirmDialog","icDialogConfirmed","render","Host"],"sources":["../web-components/dist/collection/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","../web-components/dist/collection/components/ic-dialog/ic-dialog.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-dialog: z-index of dialog \n */\n\n:host {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.disable-height-constraint) {\n background: none;\n justify-content: unset;\n align-items: unset;\n}\n\n.dialog.disable-height-constraint {\n max-height: none;\n position: relative;\n}\n\n.dialog.disable-height-constraint .content-area {\n overflow-y: visible;\n}\n\n:host(.fade-in) {\n opacity: 1;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-default);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) 0 var(--ic-space-md);\n transform: translateY(-3rem);\n transition: transform 1000s;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow-x: visible;\n}\n\n:host(.fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\n}\n\n.small {\n width: 50%;\n max-width: 25rem;\n min-height: 11rem;\n max-height: 70vh;\n}\n\n.medium {\n width: 70vw;\n max-width: 44rem;\n min-height: 12.5rem;\n max-height: 70vh;\n}\n\n.large {\n width: 90vw;\n max-width: 62.5rem;\n min-height: 12.5rem;\n max-height: 90vh;\n}\n\n.heading-area {\n display: flex;\n margin-bottom: var(--ic-space-xs);\n padding: 0 var(--ic-space-md);\n}\n\n.heading {\n overflow-wrap: break-word;\n}\n\n.close-icon {\n margin-left: auto;\n}\n\n.content-area {\n -ms-overflow-style: none;\n scrollbar-width: none;\n padding: 0 var(--ic-space-md);\n margin: 0;\n overflow-y: auto;\n}\n\n.content-area::-webkit-scrollbar {\n display: none;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n#dialog-content ::slotted(ic-typography) {\n overflow-wrap: break-word;\n}\n\n#dialog-content ::slotted(*) {\n position: relative;\n}\n\n.status-alert {\n margin-bottom: var(--ic-space-xs);\n}\n\n.dialog-controls {\n margin-top: auto;\n padding: var(--ic-space-xs) var(--ic-space-md) 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.backdrop {\n overflow-y: auto;\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n padding-top: 16px;\n padding-bottom: 16px;\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .dialog:not(.disable-width-constraint) > .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n transform: translateY(-5rem);\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n\n .backdrop {\n padding: 0;\n }\n\n .dialog.disable-height-constraint {\n height: auto;\n min-height: 100vh;\n }\n}\n\n@media (max-width: 364px) {\n .triple-button {\n flex-direction: column;\n gap: var(--ic-space-xs);\n }\n\n .dialog-control-button {\n width: unset;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver, isPropDefined, } from \"../../utils/helpers\";\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\nexport class Dialog {\n constructor() {\n this.DATA_GETS_FOCUS = \"data-gets-focus\";\n this.DATA_GETS_FOCUS_SELECTOR = \"[data-gets-focus]\";\n this.DIALOG_CONTROLS = \"dialog-controls\";\n this.dialogHeight = 0;\n this.focusedElementIndex = 0;\n this.IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n this.IC_ACCORDION = \"IC-ACCORDION\";\n this.resizeObserver = null;\n this.dialogOpened = () => {\n this.dialogRendered = true;\n if (this.disableHeightConstraint) {\n this.dialogEl.show();\n }\n else {\n this.dialogEl.showModal();\n }\n setTimeout(() => {\n this.fadeIn = true;\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (this.disableHeightConstraint && this.backdropEl.scrollTop !== 0) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n };\n this.resizeObserverCallback = () => {\n if (this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n this.refreshInteractiveElementsOnSlotChange = () => {\n this.contentArea = this.el.shadowRoot.querySelector(\"#dialog-content slot\");\n this.contentArea.addEventListener(\"slotchange\", this.getInteractiveElements);\n };\n this.removeSlotChangeListener = () => {\n if (this.contentArea) {\n this.contentArea.removeEventListener(\"slotchange\", this.getInteractiveElements);\n }\n };\n this.setInitialFocus = () => {\n this.sourceElement = document.activeElement;\n let focusedElement;\n if (this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR) !== null) {\n focusedElement = this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR);\n }\n else {\n focusedElement = this.el.shadowRoot.querySelector(this.DATA_GETS_FOCUS_SELECTOR);\n }\n if (focusedElement.tagName === this.IC_TEXT_FIELD) {\n focusedElement.setFocus();\n }\n else if (focusedElement.tagName === this.IC_ACCORDION) {\n focusedElement.setFocus();\n }\n else {\n focusedElement.focus({\n preventScroll: this.disableHeightConstraint ? true : false,\n });\n }\n };\n this.getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (this.interactiveElementList[i] ===\n (this.el.shadowRoot.activeElement || document.activeElement)) {\n this.focusedElementIndex = i;\n }\n }\n };\n this.setAlertVariant = () => {\n if (isPropDefined(this.status) && this.status !== null) {\n const alert = this.el.shadowRoot.querySelector(\"ic-alert\");\n alert.setAttribute(\"variant\", this.status);\n }\n };\n this.closeIconClick = () => {\n this.open = false;\n };\n this.getInteractiveElements = () => {\n this.interactiveElementList = Array.from(this.el.shadowRoot.querySelectorAll(\"ic-button\"));\n const slottedInteractiveElements = Array.from(this.el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion`));\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n else if (!this.destructive) {\n slottedInteractiveElements[slottedInteractiveElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(1 + i, 0, slottedInteractiveElements[i]);\n }\n };\n this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];\n this.focusNextInteractiveElement = (shiftKey) => {\n this.getFocusedElementIndex();\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n let nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n const isHidden = getComputedStyle(nextFocusEl).visibility === \"hidden\";\n if (nextFocusEl.tagName === this.IC_TEXT_FIELD) {\n nextFocusEl.setFocus();\n }\n else {\n if (isHidden) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n }\n if (nextFocusEl.tagName === this.IC_ACCORDION) {\n nextFocusEl.setFocus();\n }\n else {\n nextFocusEl.focus();\n }\n }\n };\n this.setButtonOnClick = () => {\n var _a, _b, _c;\n if (this.buttons) {\n this.buttonOnclick0 = new Function((_a = this.buttonProps[0]) === null || _a === void 0 ? void 0 : _a.onclick);\n this.buttonOnclick1 = new Function((_b = this.buttonProps[1]) === null || _b === void 0 ? void 0 : _b.onclick);\n this.buttonOnclick2 = new Function((_c = this.buttonProps[2]) === null || _c === void 0 ? void 0 : _c.onclick);\n }\n };\n this.getButtonOnclick = (index) => {\n if (index === 0) {\n return this.buttonOnclick0();\n }\n else if (index === 1) {\n return this.buttonOnclick1();\n }\n else {\n return this.buttonOnclick2();\n }\n };\n this.getButtonVariant = (index) => {\n const mainVariant = this.destructive ? \"destructive\" : \"primary\";\n if (this.buttonProps.length === 1) {\n return mainVariant;\n }\n else if (this.buttonProps.length === 2) {\n if (index === 0) {\n return \"tertiary\";\n }\n else {\n return mainVariant;\n }\n }\n else {\n if (index === 2) {\n return mainVariant;\n }\n else {\n return \"secondary\";\n }\n }\n };\n this.renderDialog = () => {\n const { alertHeading, alertMessage, buttons, buttonProps, size, heading, label, status, destructive, dismissLabel, hideCloseButton, } = this;\n return (h(\"dialog\", { class: {\n [\"dialog\"]: true,\n [`${size}`]: true,\n [\"disable-height-constraint\"]: this.disableHeightConstraint,\n [\"disable-width-constraint\"]: this.disableWidthConstraint,\n }, \"aria-labelledby\": \"dialog-label dialog-heading\", \"aria-describedby\": \"dialog-alert dialog-content\", ref: (el) => (this.dialogEl = el) }, h(\"div\", { class: \"heading-area\" }, h(\"div\", { class: \"heading-content\" }, h(\"div\", { class: \"label\" }, h(\"slot\", { name: \"label\" }, h(\"ic-typography\", { variant: \"label\", id: \"dialog-label\" }, label))), h(\"div\", { class: \"heading\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\", id: \"dialog-heading\" }, heading)))), !hideCloseButton && (h(\"ic-button\", { class: \"close-icon\", variant: \"icon\", innerHTML: closeIcon, \"aria-label\": dismissLabel, onClick: this.closeIconClick, \"data-gets-focus\": destructive || !buttons ? \"\" : null }))), h(\"div\", { class: \"content-area\" }, isSlotUsed(this.el, \"alert\") ? (h(\"slot\", { name: \"alert\" })) : (status && (h(\"ic-alert\", { variant: status, heading: alertHeading, message: alertMessage, \"title-above\": true, class: \"status-alert\", id: \"dialog-alert\" }))), h(\"div\", { id: \"dialog-content\" }, h(\"slot\", null))), (buttons || isSlotUsed(this.el, this.DIALOG_CONTROLS)) && (h(\"div\", { class: {\n [this.DIALOG_CONTROLS]: true,\n [\"triple-button\"]: buttonProps.length === 3,\n } }, h(\"slot\", { name: this.DIALOG_CONTROLS }, !isSlotUsed(this.el, this.DIALOG_CONTROLS) &&\n buttonProps.map((props, index) => {\n if (index > 2) {\n return;\n }\n else {\n return (h(\"ic-button\", { variant: this.getButtonVariant(index), onClick: () => this.getButtonOnclick(index), class: \"dialog-control-button\", \"full-width\": buttonProps.length === 3, \"data-gets-focus\": this.getButtonVariant(index) === \"primary\" ? \"\" : null }, props.label));\n }\n }))))));\n };\n this.dialogRendered = false;\n this.fadeIn = false;\n this.alertHeading = undefined;\n this.alertMessage = undefined;\n this.buttons = true;\n this.closeOnBackdropClick = true;\n this.destructive = false;\n this.dismissLabel = \"Dismiss\";\n this.disableHeightConstraint = false;\n this.disableWidthConstraint = false;\n this.hideCloseButton = false;\n this.heading = undefined;\n this.label = undefined;\n this.open = undefined;\n this.size = \"small\";\n this.status = undefined;\n this.buttonProps = [\n {\n label: \"Cancel\",\n onclick: \"this.cancelDialog();\",\n },\n { label: \"Confirm\", onclick: \"this.confirmDialog();\" },\n ];\n }\n watchOpenHandler() {\n if (this.open) {\n this.dialogOpened();\n }\n else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n var _a;\n this.dialogRendered = false;\n this.dialogEl.close();\n (_a = this.sourceElement) === null || _a === void 0 ? void 0 : _a.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n watchPropHandler() {\n this.setButtonOnClick();\n }\n disconnectedCallback() {\n this.removeSlotChangeListener();\n }\n componentWillLoad() {\n if (this.buttonProps.length) {\n this.setButtonOnClick();\n }\n }\n componentDidLoad() {\n this.getInteractiveElements();\n this.setAlertVariant();\n this.refreshInteractiveElementsOnSlotChange();\n if (this.open) {\n this.dialogOpened();\n }\n }\n componentDidRender() {\n if (getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint) {\n document.body.style.overflow = \"hidden\";\n }\n else {\n document.body.style.overflow = \"auto\";\n }\n }\n handleKeyboard(ev) {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.focusNextInteractiveElement(ev.shiftKey);\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n handleClick(ev) {\n const dialogElement = this.el.shadowRoot.querySelector(\"dialog\");\n if (this.closeOnBackdropClick &&\n ev.composedPath().indexOf(dialogElement) <= 0) {\n const rect = this.dialogEl.getBoundingClientRect();\n const isInDialog = rect.top <= ev.clientY &&\n ev.clientY <= rect.top + rect.height &&\n rect.left <= ev.clientX &&\n ev.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n async showDialog() {\n this.open = true;\n }\n /**\n * @deprecated This method should not be used anymore. Use open prop to set dialog visibility.\n */\n async hideDialog() {\n this.open = false;\n }\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n async cancelDialog() {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n async confirmDialog() {\n this.icDialogConfirmed.emit();\n }\n loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n setFocusIndexBasedOnShiftKey(shiftKey) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n }\n else {\n this.focusedElementIndex += 1;\n }\n }\n render() {\n return (h(Host, { class: {\n [\"hidden\"]: !this.dialogRendered,\n [\"fade-in\"]: this.fadeIn,\n [\"disable-height-constraint\"]: this.disableHeightConstraint,\n } }, this.disableHeightConstraint ? (h(\"div\", { class: \"backdrop\", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));\n }\n static get is() { return \"ic-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get properties() {\n return {\n \"alertHeading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a heading instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"alert-heading\",\n \"reflect\": false\n },\n \"alertMessage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a message instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"alert-message\",\n \"reflect\": false\n },\n \"buttons\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, dialog controls will not be displayed overriding buttonProps or slotted dialog controls.\"\n },\n \"attribute\": \"buttons\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"closeOnBackdropClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the dialog will not close when the backdrop is clicked.\"\n },\n \"attribute\": \"close-on-backdrop-click\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"destructive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If default buttons are displayed, sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\"\n },\n \"attribute\": \"destructive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dismissLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the dismiss label tooltip and aria label.\"\n },\n \"attribute\": \"dismiss-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Dismiss\\\"\"\n },\n \"disableHeightConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\\nThis prop also prevents popover elements from being cut off within the content area.\"\n },\n \"attribute\": \"disable-height-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableWidthConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\"\n },\n \"attribute\": \"disable-width-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the close button will not be displayed.\"\n },\n \"attribute\": \"hide-close-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the heading for the dialog.\"\n },\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the optional label for the dialog which appears above the heading.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the dialog will be displayed.\"\n },\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"undefined\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"small\\\" | \\\"medium\\\" | \\\"large\\\"\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the maximum and minimum height and width for the dialog.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"small\\\"\"\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"neutral\\\" | \\\"info\\\" | \\\"warning\\\" | \\\"error\\\" | \\\"success\\\"\",\n \"resolved\": \"\\\"error\\\" | \\\"info\\\" | \\\"neutral\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Use an ic-alert/IcAlert component within an alert slot with a variant instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"status\",\n \"reflect\": false\n },\n \"buttonProps\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"{ label: string; onclick: string }[]\",\n \"resolved\": \"{ label: string; onclick: string; }[]\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the label and onclick functions for default buttons.\"\n },\n \"defaultValue\": \"[\\n {\\n label: \\\"Cancel\\\",\\n onclick: \\\"this.cancelDialog();\\\",\\n },\\n { label: \\\"Confirm\\\", onclick: \\\"this.confirmDialog();\\\" },\\n ]\"\n }\n };\n }\n static get states() {\n return {\n \"dialogRendered\": {},\n \"fadeIn\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDialogCancelled\",\n \"name\": \"icDialogCancelled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogClosed\",\n \"name\": \"icDialogClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogConfirmed\",\n \"name\": \"icDialogConfirmed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogOpened\",\n \"name\": \"icDialogOpened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"showDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use open prop to set dialog visibility.\"\n }]\n }\n },\n \"hideDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This method should not be used anymore. Use open prop to set dialog visibility.\"\n }]\n }\n },\n \"cancelDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\",\n \"tags\": []\n }\n },\n \"confirmDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }, {\n \"propName\": \"buttonProps\",\n \"methodName\": \"watchPropHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyboard\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-dialog.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,g as h}from"./p-8455d1bb.js";import{q as a,s as n,k as r,r as o,h as l,o as c,t as d,p as u,j as f,m as p,I as b,a as m}from"./p-cd799087.js";import{b as v,i as w,j as g,s as y,h as k,k as x}from"./p-33dd24eb.js";const $=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>\n</svg>\n`;const D=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M16.6667 2.50004H15.8334V0.833374H14.1667V2.50004H5.83342V0.833374H4.16675V2.50004H3.33341C2.41675 2.50004 1.66675 3.25004 1.66675 4.16671V17.5C1.66675 18.4167 2.41675 19.1667 3.33341 19.1667H16.6667C17.5834 19.1667 18.3334 18.4167 18.3334 17.5V4.16671C18.3334 3.25004 17.5834 2.50004 16.6667 2.50004ZM16.6667 17.5H3.33341V6.66671H16.6667V17.5Z" fill="currentColor"/>\n</svg>`;const Y='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}ic-input-component-container{cursor:text}ic-input-component-container,ic-input-component-container:hover{color:var(--ic-color-tertiary-text)}.focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.day-input{width:1.438rem}.month-input{width:1.813rem}.year-input,.year-input.fit-to-value{width:2.313rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-calendar-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.calendar-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.calendar-button:focus,.clear-button:active,.calendar-button:active{background-color:var(--ic-focus-blue) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-focus-glow) !important;border-radius:0.25rem}.clear-button:focus,.calendar-button:focus,.clear-button:active *,.calendar-button:active *{fill:var(--ic-architectural-white)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-architectural-400);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.default{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}';let M=0;const z=class{constructor(e){t(this,e);this.calendarButtonClicked=i(this,"calendarButtonClicked",7);this.icBlur=i(this,"icBlur",7);this.icChange=i(this,"icChange",7);this.icFocus=i(this,"icFocus",7);this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.INPUT_EVENT_OBJECT_STRING="[object InputEvent]";this.inputsInOrder=[];this.isAfterMax=false;this.isBeforeMin=false;this.isDateSetFromKeyboardEvent=false;this.isDisabledDate=false;this.isValidDay=true;this.isValidMonth=true;this.isValidDate=true;this.isZuluTime=false;this.KEYBOARD_EVENT_OBJECT_STRING="[object KeyboardEvent]";this.MAX_DAY=31;this.MAX_MONTH=12;this.previousSelectedDate=null;this.selectedDate=null;this.setInputPasteValue=(t,i)=>{const s=t;s.value=i;s.classList.add(this.FIT_TO_VALUE)};this.checkSingleCopiedValueIsValid=(t,i)=>{let s=false;const e=Number(i);switch(t){case this.dayInputEl:s=e>=1&&e<=this.MAX_DAY;break;case this.monthInputEl:s=e>=1&&e<=this.MAX_MONTH;break;case this.yearInputEl:s=true;break;default:s=false;break}return s};this.isKeyboardOrEvent=t=>Object.prototype.toString.call(t)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(t)===this.KEYBOARD_EVENT_OBJECT_STRING;this.setDateValidity=()=>{if(!a(this.day)){this.isValidDay=+this.day>this.MAX_DAY?false:true}else{this.isValidDay=true}if(!a(this.month)){this.isValidMonth=+this.month>this.MAX_MONTH?false:true}else{this.isValidMonth=true}};this.handleInput=t=>{const i=t;const s=t.target;if(s!==this.yearInputEl){if(i.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&(s===this.dayInputEl&&+s.value>=4||s===this.monthInputEl&&+s.value>=2)&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s,t);this.moveToNextInput(s)}if(s.value.length===2){if(+s.value===0){s.value="01"}this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s,t);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(t)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}}else{if(s.value.length===4){this.setInputValue(s);if(Object.prototype.toString.call(t)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s,t)};this.handleKeyDown=(t,i)=>{const s=t.target;const e=t.key.toLowerCase();const h=/-?\d*\.?\d+(e[-+]?\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!h.test(e)&&!((t.ctrlKey||t.metaKey)&&(e==="v"||e==="c"))){t.preventDefault()}switch(e){case"/":case"-":case".":t.preventDefault();this.setPasteInvalidText();this.moveToNextInput(s);break;case"arrowright":case"arrowleft":t.preventDefault();this.handleLeftRightArrowKeyPress(s,e);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(s,t);break}this.preventInput(t,i);this.isDateSetFromKeyboardEvent=true};this.handleFocus=t=>{const i=t.target;i.select()};this.handleBlur=t=>{const i=t.target;this.setPasteInvalidText();this.autocompleteInput(i)};this.handleLeftRightArrowKeyPress=(t,i)=>{if(i==="arrowright"){this.moveToNextInput(t)}else{this.moveToPreviousInput(t)}this.setPasteInvalidText()};this.notifyScreenReaderSelectedDate=()=>{const t=n(b);const i=n(m);this.selectedDateInfoEl.textContent=`Selected date: ${t[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${i[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`};this.handleUpDownArrowKeyPress=(t,i)=>{const s=t===this.yearInputEl?0:1;let e;switch(t){case this.dayInputEl:e=this.MAX_DAY;break;case this.monthInputEl:e=this.MAX_MONTH;break;case this.yearInputEl:e=9999}if(t===null||t===void 0?void 0:t.value){if(i.key==="ArrowUp"){if(+t.value===e){i.preventDefault();t.value=`0${s}`}else{t.value=+t.value+1<10?`0${+t.value+1}`:(+t.value+1).toString()}this.notifyScreenReader(t,i)}if(i.key==="ArrowDown"){if(+t.value===s){i.preventDefault();t.value=e.toString()}else{t.value=+t.value-1<10?`0${+t.value-1}`:(+t.value-1).toString()}this.notifyScreenReader(t,i)}}else{if(i.key==="ArrowDown"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=e.toString()}this.notifyScreenReader(t,i)}else if(i.key==="ArrowUp"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=`0${s}`}this.notifyScreenReader(t,i)}}this.setInputValue(t);this.setFitToValueStyling(t)};this.handleDateChange=t=>{if(t||!v(this.selectedDate,this.previousSelectedDate)){if(this.value){this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}if(this.day&&this.month&&this.year&&this.invalidDateText===""){this.setValueAndEmitChange(this.selectedDate);this.notifyScreenReaderSelectedDate()}else if(!(this.selectedDate===null&&this.previousSelectedDate===null)){this.setValueAndEmitChange(null);this.selectedDateInfoEl.textContent=""}this.previousSelectedDate=this.selectedDate;if(!this.isDateSetFromKeyboardEvent){this.updateInputValues(this.day,this.month,this.year)}}};this.slicePastedDate=(t,i)=>i.length>t?i.slice(0,t):i;this.isPastedStringDateValid=t=>{if(/\d+-\d+-\d+$/.test(t)||/\d+\/\d+\/\d+/.test(t)||/\d+\.\d+\.\d+/.test(t)){return true}if(/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\.\d+)?)?Z/.test(t)){this.isZuluTime=true;return true}return false};this.handlePaste=t=>{t.preventDefault();const i=t.clipboardData.getData("Text");const s=this.isPastedStringDateValid(i);this.setPastedValueAndValidation(s,i,t)};this.setDate=t=>{if(t===null||t===""||t===undefined){this.day=null;this.month=null;this.year=null;this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(t,false)}));this.handleDateChange(true)}else{if(w(t)){let i;if(typeof t==="string"){i=new Date(+t)}else{i=t}this.day=g(i.getDate());this.month=g(i.getMonth()+1);this.year=i.getFullYear().toString()}else if(typeof t==="string"){const i=y(t,this.dateFormat);this.year=i[0];this.month=i[1];this.day=i[2]}}this.setValidationMessage()};this.formatMinMax=t=>{let i;const s=g(t.getDate());const e=g(t.getMonth()+1);const h=t.getFullYear();switch(this.dateFormat){case"DD/MM/YYYY":i=`${s}/${e}/${h}`;break;case"MM/DD/YYYY":i=`${e}/${s}/${h}`;break;case"YYYY/MM/DD":i=`${h}/${e}/${s}`;break}return i};this.updateInputValues=(t,i,s)=>{this.dayInputEl.value=t;this.monthInputEl.value=i;this.yearInputEl.value=s};this.setInputValue=(t,i=false)=>{const s=i?"":t.value;switch(t){case this.dayInputEl:this.day=s;break;case this.monthInputEl:this.month=s;break;case this.yearInputEl:if(this.year!==s){this.year=s}}this.setValidationMessage()};this.setValidationMessage=()=>{this.setDateValidity();if(!a(this.day)&&!a(this.month)&&!a(this.year)){this.selectedDate=this.convertToDate(this.year,this.month,this.day);this.isValidDate=+this.selectedDate!==0&&this.selectedDate.getDate()==+this.day;this.isDisabledDate=this.isSelectedDateDisabled();if(!this.isValidDate||this.isDisabledDate){this.inputsInOrder.forEach((t=>t.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((t=>t.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedDate=null}if(!(this.isValidDay&&this.isValidMonth&&this.isValidDate)){this.invalidDateText="Please enter a valid date."}else if(this.isDisabledDate&&this.selectedDate!==null){if(this.isBeforeMin){if(this.disablePast){this.invalidDateText=this.disablePastMessage}else{this.invalidDateText=`Please enter a date after ${this.formatMinMax(this.minDate)}.`}}else if(this.isAfterMax){if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}else{this.invalidDateText=`Please enter a date before ${this.formatMinMax(this.maxDate)}.`}}else if(this.disableDays.length!==0){this.invalidDateText=this.disableDaysMessage}else{if(this.disablePast){this.invalidDateText=this.disablePastMessage}if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}}}else{this.invalidDateText=""}};this.setInputsInOrder=()=>{const t=this.el.shadowRoot.querySelectorAll("input");t.forEach((t=>this.inputsInOrder.push(t)))};this.setAriaLabelledBy=()=>{var t;if(this.disabled&&!a((t=this.inputCompContainerEl)===null||t===void 0?void 0:t.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const i=this.el.shadowRoot.querySelector("label");const s=`${this.inputId}-label`;if(i!==null&&i!==undefined){i.id=s;const t=!a(this.validationStatus)&&!a(this.validationText)||!a(this.invalidDateText);const e=`${s} ${this.screenReaderInfoId} ${r(this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,t)} ${this.selectedDate?this.selectedDateInfoId:""} ${this.assistiveHintId}`;this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY,e)}};this.setPreventInput=(t,i)=>{switch(t){case this.dayInputEl:this.preventDayInput=i;break;case this.monthInputEl:this.preventMonthInput=i;break;case this.yearInputEl:this.preventYearInput=i}};this.getInputFromDatePart=t=>{const i=s("input",{class:"day-input",id:"day-input",ref:t=>this.dayInputEl=t,"aria-label":"day",placeholder:"DD",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventDayInput)});const e=s("input",{id:"month-input",class:"month-input",ref:t=>this.monthInputEl=t,"aria-label":"month",placeholder:"MM",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventMonthInput)});const h=s("input",{id:"year-input",class:"year-input",ref:t=>this.yearInputEl=t,"aria-label":"year",placeholder:"YYYY",maxLength:4,disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventYearInput)});let a;switch(t){case"D":a=i;break;case"M":a=e;break;case"Y":a=h}return a};this.getInputsInOrder=()=>{const t=this.dateFormat.split("/");const i=[];t.forEach((t=>{i.push(this.getInputFromDatePart(t.substring(0,1)))}));return i};this.getDescOfInputsOrder=()=>{let t;switch(this.dateFormat){case"DD/MM/YYYY":t="day, month, and year";break;case"MM/DD/YYYY":t="month, day, and year";break;case"YYYY/MM/DD":t="year, month, and day"}return t};this.getScreenReaderInfo=t=>{let i="";if(this.required){i+="required"}if(t===u.Error){i+=" invalid data"}return i===""?"":i+", "};this.preventInput=(t,i)=>{const s=t.key;const e=t.target;let h;if(e){h=e.value.substring(e.selectionStart,e.selectionEnd)}if(s==="e"||s==="."||s==="-"||t.key>="0"&&t.key<="9"&&i&&!h){t.preventDefault()}};this.isSelectedDateDisabled=()=>{const t=new Date;this.isAfterMax=false;this.isBeforeMin=false;let i=false;const s=this.selectedDate.toDateString()!==t.toDateString();if(this.minDate&&this.selectedDate<this.minDate&&s){this.isBeforeMin=true;i=true}if(this.maxDate&&this.selectedDate>this.maxDate&&s){this.isAfterMax=true;i=true}if(this.disableDays.includes(this.selectedDate.getDay())){i=true}if((this.disablePast&&this.selectedDate<t||this.disableFuture&&this.selectedDate>t)&&s){i=true}return i};this.moveToNextInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));const s=this.inputsInOrder[i+1];this.preventAutoFormatting=false;if(s){s.focus()}};this.moveToPreviousInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));this.preventAutoFormatting=false;if(this.inputsInOrder[i-1]){this.inputsInOrder[i-1].focus()}};this.autocompleteInput=t=>{if(t===this.yearInputEl){this.autocompleteYear()}else{const i=t.value;if(i.length===1){if(+i===0){t.value="01"}else{t.value=`0${i}`}}}if(t.value){this.setInputValue(t)}};this.autocompleteYear=()=>{const t=this.yearInputEl.value;const i=["2","0","0"];let s="";if(t){i.forEach(((i,e)=>{if(t.length+e<=3){s+=i}}));this.yearInputEl.value=`${s}${t}`}};this.convertToDate=(t,i,s)=>{if(!a(t)&&!a(i)&&!a(s)){return new Date(+t,+i-1,+s)}else{return null}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedDate})};this.handleHostFocus=()=>{if(this.el.shadowRoot.activeElement.id.match(/(day|month|year)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedDate})};this.handleFormReset=()=>{this.setDate(this.initialValue);this.setValidationMessage();this.handleDateChange(false)};this.getAriaLabel=t=>t.getAttribute(this.ARIA_LABEL);this.notifyScreenReaderArrowKeys=t=>{const i=this.el.shadowRoot.querySelector("#live-region");let s="";const e=this.getAriaLabel(t);if(i&&t.value){if(t===this.monthInputEl&&!!m[+t.value-1]){s=`${t.value} - ${m[+t.value-1]}, ${e}`}if(t===this.dayInputEl||t===this.yearInputEl){s=`${t.value}, ${e}`}i.textContent=s}};this.notifyScreenReaderInput=(t,i)=>{let s="";const e=this.getAriaLabel(t);if(t===this.dayInputEl||t===this.monthInputEl){if(t.value.length===2){if(t===this.monthInputEl&&!!m[+t.value-1]&&this.isValidMonth){s=`${t.value} - ${m[+t.value-1]}, ${e}`}if(t===this.dayInputEl&&this.isValidDay){s=`${t.value}, ${e}`}}else{s=""}}else{if(t.value.length===4){s=`${t.value}, ${e}`}else{s=""}}i.textContent=s};this.setFitToValueStyling=t=>{if(t.value){t.classList.add(this.FIT_TO_VALUE)}else{t.classList.remove(this.FIT_TO_VALUE)}};this.setAriaInvalid=(t,i,s,e)=>{if(this.inputsInOrder.length){this.inputsInOrder.forEach((t=>{t.removeAttribute(this.ARIA_INVALID)}));if(!t){this.dayInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!i){this.monthInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!s||e){this.inputsInOrder.forEach((t=>{t.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setInputValue(t,true);this.setPreventInput(t,false)}));this.isDateSetFromKeyboardEvent=false;this.setValidationMessage();this.handleDateChange(true);this.inputsInOrder[0].focus()};this.handleCalendarOpen=t=>{t.stopImmediatePropagation();this.calendarButtonEl.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.calendarButtonClicked.emit({value:this.selectedDate});this.calendarButtonEl.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.isDateSetFromKeyboardEvent=false};this.setValueAndEmitChange=t=>{if(!v(new Date(this.value),t)){this.icChange.emit({value:t});this.value=t}};this.handleCalendarFocus=()=>{this.calendarFocused=true};this.handleCalendarBlur=()=>{this.calendarFocused=false};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true};this.handleClearBlur=t=>{var i;this.clearButtonFocused=false;if((i=t.relatedTarget)===null||i===void 0?void 0:i.id.match(/(day|year)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.day="";this.invalidDateText=undefined;this.maxDate=undefined;this.minDate=undefined;this.month="";this.year="";this.calendarFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.dateFormat="DD/MM/YYYY";this.disabled=false;this.disableDays=[];this.disableDaysMessage="The date you have selected is on a day of the week that is not allowed. Please select another date.";this.disableFuture=false;this.disableFutureMessage="Dates in the future are not allowed. Please select a date in the past.";this.disablePast=false;this.disablePastMessage="Dates in the past are not allowed. Please select a date in the future.";this.helperText=undefined;this.inputId=`ic-date-input-${M++}`;this.label=undefined;this.max="";this.min="";this.name=this.inputId;this.required=false;this.showCalendarButton=false;this.showClearButton=true;this.size="default";this.value="";this.validationStatus="";this.validationText=""}watchMaxHandler(){if(this.disableFuture){this.maxDate=new Date}else{this.maxDate=k(this.max,this.dateFormat)}}watchMinHandler(){if(this.disablePast){this.minDate=new Date}else{this.minDate=k(this.min,this.dateFormat)}}disconnectedCallback(){o(this.el,this.handleFormReset)}componentWillLoad(){this.defaultHelperText=`Use format ${this.dateFormat}`;if(a(this.helperText)){this.helperText=this.defaultHelperText}this.watchMinHandler();this.watchMaxHandler();if(this.value){this.setDate(this.value)}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedDateInfoId=`${this.inputId}-selected-date-info`;l(this.el,this.handleFormReset)}componentDidLoad(){this.setInputsInOrder();c([{prop:this.label,propName:"label"}],"Date Input");if(this.value){this.updateInputValues(this.day,this.month,this.year);this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);if(this.value){this.notifyScreenReaderSelectedDate()}this.inputsInOrder.forEach((t=>{t.addEventListener("input",this.handleInput);t.addEventListener("focus",this.handleFocus);t.addEventListener("blur",this.handleBlur)}));const t=this.el.shadowRoot.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("aria-hidden","true");i.textContent=" *";t===null||t===void 0?void 0:t.appendChild(i)}}componentWillUpdate(){if(!this.isDateSetFromKeyboardEvent){this.setDate(this.value)}this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);this.handleDateChange(false);this.isDateSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getDate(){return this.selectedDate}async setCalendarFocus(){if(this.calendarButtonEl){this.calendarButtonEl.focus()}}async setDisableDays(t){this.disableDays=t}removeAriaLabelledBy(){this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY)}setPastedValueAndValidation(t,i,s){switch(true){case t:{const t=this.isZuluTime?x(i):i;const s=t.split(/-|\/|\./);this.inputsInOrder.forEach(((t,i)=>{t.classList.add(this.FIT_TO_VALUE);if(this.isZuluTime){this.pasteZuluDateTime(s,i)}else{let e;if(t===this.dayInputEl||t===this.monthInputEl){e=this.slicePastedDate(2,s[i])}else{e=this.slicePastedDate(4,s[i])}t.value=e;this.setInputValue(t);this.autocompleteInput(t)}}));this.isZuluTime=false;break}case(i.length===1||i.length===2||i.length===4)&&d(i):if(this.checkSingleCopiedValueIsValid(s.target,i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.displayPastedValidation(s)}break;case i.length===3&&d(i):if(s.target!==this.yearInputEl){this.displayPastedValidation(s)}else{this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}break;case i.length>=5&&d(i):this.displayPastedValidation(s)}}pasteZuluDateTime(t,i){if(i===0){const s=this.slicePastedDate(4,t[i]);this.yearInputEl.value=s;this.setInputValue(this.yearInputEl)}else if(i===1){const s=this.slicePastedDate(2,t[i]);this.monthInputEl.value=s;this.setInputValue(this.monthInputEl)}else{const s=this.slicePastedDate(2,t[i]);this.dayInputEl.value=s;this.setInputValue(this.dayInputEl)}}displayPastedValidation(t){var i;if(((i=this.invalidDateText)===null||i===void 0?void 0:i.length)>0){this.previousInvalidDateTest=this.invalidDateText}this.invalidDateText=`Please paste a valid ${this.getAriaLabel(t.target)}`;this.validationStatus=u.Error;this.isPasteValidationDisplayed=true}setPasteInvalidText(){var t;if(this.isPasteValidationDisplayed){this.invalidDateText=(t=this.previousInvalidDateTest)!==null&&t!==void 0?t:"";this.isPasteValidationDisplayed=false;this.isDateSetFromKeyboardEvent=true}}notifyScreenReader(t,i){const s=this.el.shadowRoot.querySelector("#live-region");if(s){if(this.isKeyboardOrEvent(i)){this.notifyScreenReaderArrowKeys(t)}else if(Object.prototype.toString.call(i)===this.INPUT_EVENT_OBJECT_STRING){this.notifyScreenReaderInput(t,s)}}}render(){const{inputId:t,label:i,disabled:h,helperText:n,showClearButton:r,showCalendarButton:o,size:l}=this;const c=!a(this.validationStatus)&&!a(this.validationText);const d=c?this.validationStatus:!a(this.invalidDateText)?u.Error:"";const b=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;f(true,this.el,this.name,this.convertToDate(this.year,this.month,this.day),this.disabled);return s(e,{onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{disabled:h},s("ic-input-label",{for:t,label:i,helperText:n,disabled:h}),s("span",{id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(d),`${this.defaultHelperText}.`),s("span",{id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},b),s("span",{id:"live-region","aria-live":"assertive",class:"sr-only"}),s("ic-input-component-container",{id:t,ref:t=>this.inputCompContainerEl=t,disabled:h,validationStatus:d,size:l,role:"group"},s("div",{class:"input-container"},s("div",{class:"date-inputs"},this.getInputsInOrder()[0],"/",this.getInputsInOrder()[1],"/",this.getInputsInOrder()[2]),s("div",{class:"action-buttons"},r&&s("ic-button",{id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:a(this.day)&&a(this.month)&&a(this.year)},disabled:this.disabled,innerHTML:$,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon",appearance:this.clearButtonFocused?p.Light:p.Dark,size:l}),o&&s("div",{class:"show-calendar-button-wrapper"},s("div",{class:{divider:true,[l]:true}}),s("ic-button",{id:"calendar-button",ref:t=>this.calendarButtonEl=t,"aria-label":"Display calendar","aria-haspopup":"dialog",class:"calendar-button",disabled:this.disabled,innerHTML:D,onClick:this.handleCalendarOpen,variant:"icon",size:l,onFocus:this.handleCalendarFocus,onBlur:this.handleCalendarBlur,appearance:this.calendarFocused?p.Light:p.Default}))))),s("span",{id:this.selectedDateInfoId,class:"sr-only","aria-live":"polite"},s("span",{ref:t=>this.selectedDateInfoEl=t,role:"status"})),(c||!a(this.invalidDateText))&&s("ic-input-validation",{status:d,message:c?this.validationText:this.invalidDateText,for:t})))}static get delegatesFocus(){return true}get el(){return h(this)}static get watchers(){return{max:["watchMaxHandler"],min:["watchMinHandler"]}}};z.style=Y;export{z as ic_date_input};
2
- //# sourceMappingURL=p-550a5674.entry.js.map