@ukic/web-components 2.22.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -1
  3. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-checkbox.cjs.entry.js +17 -5
  6. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-stepper.cjs.entry.js +29 -8
  14. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-tab-context.cjs.entry.js +8 -0
  16. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-toast.cjs.entry.js +6 -0
  19. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +10 -0
  24. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -0
  25. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  26. package/dist/collection/components/ic-button/ic-button.css +1 -0
  27. package/dist/collection/components/ic-checkbox/ic-checkbox.js +42 -8
  28. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  29. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +50 -0
  30. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  31. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -1
  32. package/dist/collection/components/ic-radio-option/ic-radio-option.js +1 -1
  33. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  34. package/dist/collection/components/ic-section-container/ic-section-container.js +1 -1
  35. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  36. package/dist/collection/components/ic-stepper/ic-stepper.js +34 -8
  37. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  38. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +26 -0
  39. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  40. package/dist/collection/components/ic-tab/ic-tab.css +2 -0
  41. package/dist/collection/components/ic-tab-context/ic-tab-context.js +10 -0
  42. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  43. package/dist/collection/components/ic-toast/ic-toast.js +9 -0
  44. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  45. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +3 -1
  46. package/dist/components/ic-back-to-top.js +2 -1
  47. package/dist/components/ic-back-to-top.js.map +1 -1
  48. package/dist/components/ic-button2.js.map +1 -1
  49. package/dist/components/ic-checkbox.js +23 -7
  50. package/dist/components/ic-checkbox.js.map +1 -1
  51. package/dist/components/ic-navigation-item.js +1 -1
  52. package/dist/components/ic-navigation-item.js.map +1 -1
  53. package/dist/components/ic-radio-option.js +1 -1
  54. package/dist/components/ic-radio-option.js.map +1 -1
  55. package/dist/components/ic-section-container2.js +1 -1
  56. package/dist/components/ic-section-container2.js.map +1 -1
  57. package/dist/components/ic-stepper.js +32 -8
  58. package/dist/components/ic-stepper.js.map +1 -1
  59. package/dist/components/ic-tab-context.js +9 -0
  60. package/dist/components/ic-tab-context.js.map +1 -1
  61. package/dist/components/ic-tab.js.map +1 -1
  62. package/dist/components/ic-toast.js +9 -1
  63. package/dist/components/ic-toast.js.map +1 -1
  64. package/dist/components/ic-toggle-button-group.js +1 -1
  65. package/dist/components/ic-toggle-button-group.js.map +1 -1
  66. package/dist/core/core.esm.js +1 -1
  67. package/dist/core/core.esm.js.map +1 -1
  68. package/dist/core/{p-af5e3bab.entry.js → p-1c228028.entry.js} +2 -2
  69. package/dist/core/{p-af5e3bab.entry.js.map → p-1c228028.entry.js.map} +1 -1
  70. package/dist/core/{p-4a0acd0f.entry.js → p-244d38ed.entry.js} +2 -2
  71. package/dist/core/{p-4a0acd0f.entry.js.map → p-244d38ed.entry.js.map} +1 -1
  72. package/dist/core/p-4522e5c0.entry.js.map +1 -1
  73. package/dist/core/{p-27bdf6e5.entry.js → p-69fc2feb.entry.js} +2 -2
  74. package/dist/core/p-69fc2feb.entry.js.map +1 -0
  75. package/dist/core/{p-c6ac1a01.entry.js → p-a2704b98.entry.js} +2 -2
  76. package/dist/core/p-a2704b98.entry.js.map +1 -0
  77. package/dist/core/{p-e9723eaa.entry.js → p-a87d13b3.entry.js} +2 -2
  78. package/dist/core/{p-e9723eaa.entry.js.map → p-a87d13b3.entry.js.map} +1 -1
  79. package/dist/core/{p-6fae929c.entry.js → p-b47021d8.entry.js} +2 -2
  80. package/dist/core/p-b47021d8.entry.js.map +1 -0
  81. package/dist/core/p-bbfe15b5.entry.js.map +1 -1
  82. package/dist/core/p-c59c733e.entry.js +2 -0
  83. package/dist/core/p-c59c733e.entry.js.map +1 -0
  84. package/dist/core/p-cf93053d.entry.js +2 -0
  85. package/dist/core/p-cf93053d.entry.js.map +1 -0
  86. package/dist/core/{p-1624f4de.entry.js → p-df0deff0.entry.js} +2 -2
  87. package/dist/core/p-df0deff0.entry.js.map +1 -0
  88. package/dist/esm/core.js +1 -1
  89. package/dist/esm/ic-back-to-top.entry.js +2 -1
  90. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  91. package/dist/esm/ic-button_3.entry.js.map +1 -1
  92. package/dist/esm/ic-checkbox.entry.js +17 -5
  93. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  94. package/dist/esm/ic-navigation-item.entry.js +1 -1
  95. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  96. package/dist/esm/ic-radio-option.entry.js +1 -1
  97. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  98. package/dist/esm/ic-section-container.entry.js +1 -1
  99. package/dist/esm/ic-section-container.entry.js.map +1 -1
  100. package/dist/esm/ic-stepper.entry.js +29 -8
  101. package/dist/esm/ic-stepper.entry.js.map +1 -1
  102. package/dist/esm/ic-tab-context.entry.js +8 -0
  103. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  104. package/dist/esm/ic-tab.entry.js.map +1 -1
  105. package/dist/esm/ic-toast.entry.js +6 -0
  106. package/dist/esm/ic-toast.entry.js.map +1 -1
  107. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  108. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  109. package/dist/esm/loader.js +1 -1
  110. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +6 -0
  111. package/dist/types/components/ic-stepper/ic-stepper.d.ts +3 -0
  112. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -0
  113. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -0
  114. package/dist/types/components.d.ts +8 -0
  115. package/hydrate/index.js +70 -20
  116. package/package.json +2 -2
  117. package/vscode-data.json +4 -0
  118. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +0 -11
  119. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +0 -1
  120. package/dist/core/p-1624f4de.entry.js.map +0 -1
  121. package/dist/core/p-27bdf6e5.entry.js.map +0 -1
  122. package/dist/core/p-49cdaddc.entry.js +0 -2
  123. package/dist/core/p-49cdaddc.entry.js.map +0 -1
  124. package/dist/core/p-6fae929c.entry.js.map +0 -1
  125. package/dist/core/p-ad6176a2.entry.js +0 -2
  126. package/dist/core/p-ad6176a2.entry.js.map +0 -1
  127. package/dist/core/p-c6ac1a01.entry.js.map +0 -1
  128. package/dist/types/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ic-stepper.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-stepper/test/basic/ic-stepper.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { resizeTo } from \"../../../../testspec.setup\";\nimport { Step } from \"../../../ic-step/ic-step\";\nimport { Stepper } from \"../../ic-stepper\";\n\ndescribe(\"default variant of ic-stepper component\", () => {\n it(\"should render a full-width stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"aligned-full-width\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a left-aligned stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper aligned=\"left\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n expect(page.rootInstance.aligned).toMatch(\"left\");\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper with hidden step info\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n expect(stepTitleArea.classList.contains(\"visually-hidden\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n expect(step[\"stepTitle\"]).toBeUndefined();\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n expect(stepTitleArea).toBeNull();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n });\n\n it(\"should render a stepper with a custom connector width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper aligned=\"left\" connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n });\n\n it(\"should ignore the connectorWidth prop if the stepper is set to be aligned full-width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeFalsy();\n });\n\n it(\"should add 'disabled step' to the aria labels of all disabled steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-type=\"disabled\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const disabledSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n disabledSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should add the className 'last-step' to the last step in the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step last-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const lastStep = await page.root.querySelector(\"ic-step[last-step='']\");\n\n expect(lastStep.classList.contains(\"last-step\")).toBeTruthy();\n });\n});\n\ndescribe(\"resizeObserver for ic-stepper\", () => {\n it(\"shouldn't call the resizeObserver if the resizeObserver is null\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.rootInstance.runResizeObserver();\n\n page.setContent(\"\");\n });\n\n it(\"should call the functions in the resizeObserver\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.waitForChanges();\n\n await page.rootInstance.runResizeObserver();\n\n await page.rootInstance.getChildren();\n\n await page.rootInstance.checkStepTitles();\n\n await page.rootInstance.overrideVariant();\n\n await page.rootInstance.setStepperWidth();\n\n await page.rootInstance.initialiseStepStates();\n });\n});\n\ndescribe(\"compact variant of ic-stepper component\", () => {\n it(\"should render a compact step with no step status\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance[\"variantOverride\"]).toBeFalsy();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should render a stepper with hidden step information\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"visually-hidden\")).toBeFalsy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\" ></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n const stepTitle = \"Step \" + step[\"stepNum\"];\n expect(step[\"stepTitle\"]).toMatch(stepTitle);\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(1);\n });\n\n it(\"should only show the current step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentStep = page.root.querySelector('ic-step:not([current=\"\"])');\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n\n notCurrentStep.classList.add(\"show\");\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"shouldn't add the 'show' and 'hide' classes to default steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"show\")).toBeFalsy();\n expect(step.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should only add the 'show' and 'hide' classes to compact steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentSteps = page.root.querySelector(\n 'ic-step:not([current=\"\"])'\n );\n\n expect(notCurrentSteps.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentSteps.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"should render status icons next to all steps with a disabled stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-type=\"disabled\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const notRequiredSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n notRequiredSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Not required\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > .step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"warning-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should render status icons next to all steps with a completed stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const completeSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"completed\"]'\n );\n\n completeSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Completed\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > span.step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"check-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Completed step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'optional'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"optional\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const optionalSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"optional\"]'\n );\n\n optionalSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Optional step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'required'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const requiredSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"required\"]'\n );\n\n requiredSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Required step/i);\n });\n });\n\n it(\"should only show the title of the next step if it isn't the last step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step[\"variant\"]).toMatch(\"compact\");\n });\n\n for (let i = 0; i < steps.length; i++) {\n if (steps[i] !== steps[steps.length - 1]) {\n expect(steps[i][\"nextStepTitle\"]).toBe(steps[i + 1][\"stepTitle\"]);\n } else {\n expect(steps[i][\"nextStepTitle\"]).toBeUndefined();\n }\n }\n });\n});\n\ndescribe(\"switch between the compact and default stepper depending on whether the stepper has a scroll\", () => {\n it(\"should change from the default variant to the compact variant if there's a scroll on the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n\n it(\"should change from the compact variant to the stepper variant if the stepper is greater than the min width for the default stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n resizeTo(window, 375, 812);\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n resizeTo(window, 1920, 1080);\n\n page.rootInstance.el.clientWidth = 1000;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n\n it(\"should render a light stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper appearance=\"light\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toMatch(\"light\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"light\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-stepper.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-stepper/test/basic/ic-stepper.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAElE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CACjD,0BAA0B,CAC3B,CAAC;YAEF,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;0DAI8C;SACrD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAClE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAClC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YAE7C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CACjD,0BAA0B,CAC3B,CAAC;YACF,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACpG,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0BQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9C,+BAA+B,CAChC,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;KAOP;SACA,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAExE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE;;;;;;;KAOP;SACA,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAE5C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE;;;;;;;KAOP;SACA,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;QAE5C,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAE1C,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAE1C,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QAE1C,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;oBAuBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAEzD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC7C,wCAAwC,CACzC,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC7C,wCAAwC,CACzC,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAClE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAClC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;oBAuBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAEnE,MAAM,CACJ,WAAW,CAAC,UAAU;aACnB,aAAa,CAAC,OAAO,CAAC;aACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjC,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1D,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;QAE5E,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAE7D,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5D,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;oBAuBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAEnE,MAAM,CACJ,WAAW,CAAC,UAAU;aACnB,aAAa,CAAC,OAAO,CAAC;aACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA2BQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAEnE,MAAM,CACJ,WAAW,CAAC,UAAU;aACnB,aAAa,CAAC,OAAO,CAAC;aACtB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjC,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1D,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAC7C,2BAA2B,CAC5B,CAAC;QAEF,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7D,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;oBAyBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CACjD,+BAA+B,CAChC,CAAC;QAEF,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC/C,sEAAsE,CACvE,CAAC,WAAW,CAAC;YAEd,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9C,mEAAmE,CACpE,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAC5B,oEAAoE,CACrE,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;oBAwBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9C,gCAAgC,CACjC,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC/C,sEAAsE,CACvE,CAAC,WAAW,CAAC;YAEd,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9C,uEAAuE,CACxE,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAC5B,kEAAkE,CACnE,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0BQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9C,iCAAiC,CAClC,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;oBA0BQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9C,iCAAiC,CAClC,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;oBAqBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8FAA8F,EAAE,GAAG,EAAE;IAC5G,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;QAChH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;oBAsBQ;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oIAAoI,EAAE,KAAK,IAAI,EAAE;QAClJ,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;oBAsBQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;QAExC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,EAAE;;;;2DAI+C;SACtD,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAEnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC7C,0BAA0B,CAC3B,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;QACtC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QAEpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAC7C,0BAA0B,CAC3B,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { resizeTo } from \"../../../../testspec.setup\";\nimport { Step } from \"../../../ic-step/ic-step\";\nimport { Stepper } from \"../../ic-stepper\";\n\ndescribe(\"default variant of ic-stepper component\", () => {\n it(\"should render a full-width stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"aligned-full-width\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a left-aligned stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper aligned=\"left\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n expect(page.rootInstance.aligned).toMatch(\"left\");\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper with hidden step info\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n expect(stepTitleArea.classList.contains(\"visually-hidden\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n expect(step[\"stepTitle\"]).toBeUndefined();\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n expect(stepTitleArea).toBeNull();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n });\n\n it(\"should render a stepper with a custom connector width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper aligned=\"left\" connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n });\n\n it(\"should ignore the connectorWidth prop if the stepper is set to be aligned full-width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeFalsy();\n });\n\n it(\"should add 'disabled step' to the aria labels of all disabled steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-type=\"disabled\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const disabledSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n disabledSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should add the className 'last-step' to the last step in the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step last-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const lastStep = await page.root.querySelector(\"ic-step[last-step='']\");\n\n expect(lastStep.classList.contains(\"last-step\")).toBeTruthy();\n });\n});\n\ndescribe(\"resizeObserver for ic-stepper\", () => {\n it(\"shouldn't call the resizeObserver if the resizeObserver is null\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.rootInstance.runResizeObserver();\n\n page.setContent(\"\");\n });\n\n it(\"should call the functions in the resizeObserver\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.waitForChanges();\n\n await page.rootInstance.runResizeObserver();\n\n await page.rootInstance.getChildren();\n\n await page.rootInstance.checkStepTitles();\n\n await page.rootInstance.overrideVariant();\n\n await page.rootInstance.setStepperWidth();\n\n await page.rootInstance.initialiseStepStates();\n });\n});\n\ndescribe(\"compact variant of ic-stepper component\", () => {\n it(\"should render a compact step with no step status\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance[\"variantOverride\"]).toBeFalsy();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should render a stepper with hidden step information\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"visually-hidden\")).toBeFalsy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\" ></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n const stepTitle = \"Step \" + step[\"stepNum\"];\n expect(step[\"stepTitle\"]).toMatch(stepTitle);\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(1);\n });\n\n it(\"should only show the current step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentStep = page.root.querySelector('ic-step:not([current=\"\"])');\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n\n notCurrentStep.classList.add(\"show\");\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"shouldn't add the 'show' and 'hide' classes to default steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"show\")).toBeFalsy();\n expect(step.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should only add the 'show' and 'hide' classes to compact steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentSteps = page.root.querySelector(\n 'ic-step:not([current=\"\"])'\n );\n\n expect(notCurrentSteps.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentSteps.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"should render status icons next to all steps with a disabled stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-type=\"disabled\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const notRequiredSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n notRequiredSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Not required\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > .step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"warning-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should render status icons next to all steps with a completed stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const completeSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"completed\"]'\n );\n\n completeSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Completed\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > span.step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"check-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Completed step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'optional'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"optional\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const optionalSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"optional\"]'\n );\n\n optionalSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Optional step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'required'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const requiredSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"required\"]'\n );\n\n requiredSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Required step/i);\n });\n });\n\n it(\"should only show the title of the next step if it isn't the last step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step[\"variant\"]).toMatch(\"compact\");\n });\n\n for (let i = 0; i < steps.length; i++) {\n if (steps[i] !== steps[steps.length - 1]) {\n expect(steps[i][\"nextStepTitle\"]).toBe(steps[i + 1][\"stepTitle\"]);\n } else {\n expect(steps[i][\"nextStepTitle\"]).toBeUndefined();\n }\n }\n });\n});\n\ndescribe(\"switch between the compact and default stepper depending on whether the stepper has a scroll\", () => {\n it(\"should change from the default variant to the compact variant if there's a scroll on the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n\n it(\"should change from the compact variant to the stepper variant if the stepper is greater than the min width for the default stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n resizeTo(window, 375, 812);\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n resizeTo(window, 1920, 1080);\n\n page.rootInstance.el.clientWidth = 1000;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n\n it(\"should render a light stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper appearance=\"light\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.appearance).toMatch(\"light\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"light\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should test the setHideStepInfo method\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n await page.waitForChanges();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"visually-hidden\")).toBeFalsy();\n });\n\n page.rootInstance.hideStepInfo = true;\n await page.waitForChanges();\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"visually-hidden\")).toBeTruthy();\n });\n });\n});\n"]}
@@ -496,12 +496,14 @@ video {
496
496
  pointer-events: none;
497
497
  color: var(--ic-architectural-300);
498
498
  }
499
+
499
500
  @media (prefers-reduced-motion: no-preference) {
500
501
  :host(.selected.with-transition) {
501
502
  transition: all var(--ic-easing-transition-slow),
502
503
  border-color var(--ic-transition-duration-slow);
503
504
  }
504
505
  }
506
+
505
507
  .ic-tab-label {
506
508
  pointer-events: none;
507
509
  text-wrap: nowrap;
@@ -192,6 +192,13 @@ export class TabContext {
192
192
  this.contextId = "default";
193
193
  this.selectedTabIndex = undefined;
194
194
  }
195
+ watchAppearanceHandler() {
196
+ this.tabs.forEach((tab, index) => {
197
+ tab.appearance = this.appearance;
198
+ this.tabPanels[index].appearance = this.appearance;
199
+ });
200
+ this.tabGroup.appearance = this.appearance;
201
+ }
195
202
  updateSelectedTab(newValue) {
196
203
  this.selectedTab = newValue;
197
204
  }
@@ -438,6 +445,9 @@ export class TabContext {
438
445
  static get elementRef() { return "el"; }
439
446
  static get watchers() {
440
447
  return [{
448
+ "propName": "appearance",
449
+ "methodName": "watchAppearanceHandler"
450
+ }, {
441
451
  "propName": "selectedTabIndex",
442
452
  "methodName": "updateSelectedTab"
443
453
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-context.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n private controlledMode: boolean;\n private enabledTabs: HTMLIcTabElement[];\n private focusedTabIndex: number;\n private newTabPanels: HTMLIcTabPanelElement[] = [];\n private newTabs: HTMLIcTabElement[] = [];\n private tabs: HTMLIcTabElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private tabPanels: HTMLIcTabPanelElement[];\n\n @Element() el: HTMLIcTabContextElement;\n\n @State() selectedTab: number | null;\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event({ bubbles: false }) icTabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event({ bubbles: false }) tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [event.detail.position].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [event.detail.position].textContent.trim(),\n });\n /* eslint-enable no-unexpected-multiline */\n event.stopImmediatePropagation();\n }\n\n @Listen(\"tabCreated\")\n @Listen(\"tabPanelCreated\")\n tabCreatedHandler(ev: CustomEvent): void {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n\n @Listen(\"tabEnabled\")\n tabEnabledHandler(): void {\n this.enabledTabs = this.getEnabledTabs();\n }\n\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n @Method()\n async tabRemovedHandler(hadFocus?: boolean): Promise<void> {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n } else {\n this.setInitialTab();\n }\n\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n\n // Sets attributes to link tab-group, tabs and tab-panels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n private getChildren = (): void => {\n this.tabGroup = this.el.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.el.children).filter(\n (child) => child.tagName === \"IC-TAB-PANEL\"\n ) as HTMLIcTabPanelElement[];\n this.enabledTabs = this.getEnabledTabs();\n };\n\n private keydownHandler = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n } else {\n this.handleKeyBoardNavManual(event);\n }\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [newIndex].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [newIndex].textContent.trim(),\n });\n }\n /* eslint-enable no-unexpected-multiline */\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab-context.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n private controlledMode: boolean;\n private enabledTabs: HTMLIcTabElement[];\n private focusedTabIndex: number;\n private newTabPanels: HTMLIcTabPanelElement[] = [];\n private newTabs: HTMLIcTabElement[] = [];\n private tabs: HTMLIcTabElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private tabPanels: HTMLIcTabPanelElement[];\n\n @Element() el: HTMLIcTabContextElement;\n\n @State() selectedTab: number | null;\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n @Watch(\"appearance\")\n watchAppearanceHandler(): void {\n this.tabs.forEach((tab, index) => {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n });\n this.tabGroup.appearance = this.appearance;\n }\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event({ bubbles: false }) icTabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event({ bubbles: false }) tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [event.detail.position].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [event.detail.position].textContent.trim(),\n });\n /* eslint-enable no-unexpected-multiline */\n event.stopImmediatePropagation();\n }\n\n @Listen(\"tabCreated\")\n @Listen(\"tabPanelCreated\")\n tabCreatedHandler(ev: CustomEvent): void {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n\n @Listen(\"tabEnabled\")\n tabEnabledHandler(): void {\n this.enabledTabs = this.getEnabledTabs();\n }\n\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n @Method()\n async tabRemovedHandler(hadFocus?: boolean): Promise<void> {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n } else {\n this.setInitialTab();\n }\n\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n\n // Sets attributes to link tab-group, tabs and tab-panels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n private getChildren = (): void => {\n this.tabGroup = this.el.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.el.children).filter(\n (child) => child.tagName === \"IC-TAB-PANEL\"\n ) as HTMLIcTabPanelElement[];\n this.enabledTabs = this.getEnabledTabs();\n };\n\n private keydownHandler = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n } else {\n this.handleKeyBoardNavManual(event);\n }\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [newIndex].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")\n [newIndex].textContent.trim(),\n });\n }\n /* eslint-enable no-unexpected-multiline */\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
@@ -30,6 +30,9 @@ export class Toast {
30
30
  this.neutralIconAriaLabel = undefined;
31
31
  this.variant = undefined;
32
32
  }
33
+ dismissModeChangeHandler(newValue) {
34
+ this.isManual = newValue === "manual";
35
+ }
33
36
  disconnectedCallback() {
34
37
  window.clearTimeout(this.dismissTimeout);
35
38
  window.clearInterval(this.timerRefreshInterval);
@@ -360,6 +363,12 @@ export class Toast {
360
363
  };
361
364
  }
362
365
  static get elementRef() { return "el"; }
366
+ static get watchers() {
367
+ return [{
368
+ "propName": "dismissMode",
369
+ "methodName": "dismissModeChangeHandler"
370
+ }];
371
+ }
363
372
  static get listeners() {
364
373
  return [{
365
374
  "name": "icDismiss",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-toast.js","sourceRoot":"","sources":["../../../src/components/ic-toast/ic-toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex: number;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot.activeElement\n : document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-toast.js","sourceRoot":"","sources":["../../../src/components/ic-toast/ic-toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,GACN,MAAM,eAAe,CAAC;AACvB,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,OAAO,EACP,aAAa,EACb,UAAU,EACV,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,kCAAkC,GAAG,IAAI,CAAC;AAChD,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;GAGG;AAMH,MAAM,OAAO,KAAK;;QAER,wBAAmB,GAA6B,EAAE,CAAC;QAgLnD,kBAAa,GAAG,GAAS,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC;QAEM,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,CAAC,aAAa;gBAChB,CAAC,kCAAkC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC;QACzE,CAAC,CAAC;6BAhLuB,GAAG;uBACT,KAAK;kCAMuB,IAAI;sCAKjB,SAAS;2BAKgB,QAAQ;;;;;;IAEnE,wBAAwB,CAAC,QAA2B;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,KAAK,QAAQ,CAAC;IACxC,CAAC;IA2BD,oBAAoB;QAClB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;;QACf,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAC9C,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,IAAG,wBAAwB,CAChD,CAAC;QAEF,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAEnE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;YAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC;QAE9C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAClE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,mBAAmB;gBACtB,MAAA,IAAI,CAAC,oBAAoB,mCAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,YAAY,GAAW,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtD,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;gBACrB,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,EAAE,CAAC,YAAY,CAClB,YAAY,EACZ,IAAI,CAAC,OAAO;gBACV,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS;gBACnE,CAAC,CAAC,IAAI,CAAC,OAAO,CACjB,CAAC;YACF,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,EAAE,CAAC,YAAY,CAClB,kBAAkB,EAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAC/D,CAAC;QACN,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAC7C,OAAO,CACR,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAA2B,CAAC;QAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,aAAa;YAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,aAAa;YAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC;IAGD,aAAa;QACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3B,CAAC;IAGD,cAAc,CAAC,EAAiB;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,KAAK,KAAK;oBACR,EAAE,CAAC,cAAc,EAAE,CAAC;oBACpB,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACxD,MAAM;gBACR,KAAK,QAAQ;oBACX,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnC,EAAE,CAAC,wBAAwB,EAAE,CAAC;oBAC9B,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAID,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,YAAY;oBACf,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAChD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;oBACzB,MAAM;gBACR,KAAK,YAAY;oBACf,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CACrC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,CACxB,CAAC;oBACF,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,WAAW,CAC5C,IAAI,CAAC,oBAAoB,EACzB,kCAAkC,CACnC,CAAC;oBACF,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IAEH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CACrC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,CACxB,CAAC;YACF,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,WAAW,CAC5C,IAAI,CAAC,oBAAoB,EACzB,kCAAkC,CACnC,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC,aAA4B,CAAC;QAC/C,CAAC;IACH,CAAC;IAWO,cAAc,CACpB,cAAuB,EACvB,cAAwB;QAExB,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CACX,gCAAgC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAC7D,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC/C,GACE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC/B,+DAA+D,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,WAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GACV,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/C,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAExC,IAAI,YAAoB,CAAC;QAEzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrC,YAAY,GAAG,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;YACA,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAEO,QAAQ,CAAC,QAAqB;QACpC,OAAO,QAAQ,KAAK,IAAI,CAAC,EAAE;YACzB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa;YACpC,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,MAAM,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,QAAQ,EACR,sBAAsB,GACvB,GAAG,IAAI,CAAC;QACT,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAC/B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAEpC,WAAK,KAAK,EAAC,WAAW;gBACnB,OAAO,IAAI,OAAO,IAAI,CACrB,WAAK,KAAK,EAAC,sBAAsB;oBAC/B,WACE,KAAK,EAAE;4BACL,CAAC,SAAS,CAAC,EAAE,IAAI;4BACjB,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,IAAI;yBAC7B,GACI;oBACN,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CACvB,YAAM,IAAI,EAAC,cAAc,GAAG,CAC7B,CAAC,CAAC,CAAC,CACF,YACE,KAAK,EAAC,YAAY,EAClB,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAChC,CACT,CACG,CACP;gBACD,WACE,KAAK,EAAE;wBACL,CAAC,eAAe,CAAC,EAAE,IAAI;wBACvB,CAAC,SAAS,CAAC,EACT,OAAO,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;qBAChE;oBAED,WAAK,KAAK,EAAC,eAAe;wBACxB,qBAAe,OAAO,EAAC,gBAAgB,IACpC,OAAO,IAAI,cAAK,OAAO,CAAM,CAChB;wBACf,OAAO,IAAI,CACV,qBAAe,OAAO,EAAC,MAAM,IAC1B,OAAO,IAAI,aAAI,OAAO,CAAK,CACd,CACjB,CACG;oBACL,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAChC,WAAK,KAAK,EAAC,wBAAwB;wBACjC,YAAM,IAAI,EAAC,QAAQ,GAAG,CAClB,CACP,CACG;gBACL,CAAC,QAAQ,CAAC,CAAC,CAAC,CACX,4BACE,KAAK,EAAC,qBAAqB,EAC3B,UAAU,EAAC,OAAO,EAClB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,IAAI,CAAC,aAAa,GACN,CACzB,CAAC,CAAC,CAAC,CACF,iBACE,EAAE,EAAC,gBAAgB,EACnB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,OAAO,EAAC,MAAM,EACd,UAAU,EAAE,qBAAqB,CAAC,KAAK,gBAC3B,sBAAsB,GACvB,CACd,CACG,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n @Watch(\"dismissMode\")\n dismissModeChangeHandler(newValue: IcActivationTypes): void {\n this.isManual = newValue === \"manual\";\n }\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const firstEl = this.interactiveElements[0];\n const lastEl =\n this.interactiveElements[this.interactiveElements.length - 1];\n\n if (this.isActive(isBackwards ? firstEl : lastEl))\n return isBackwards ? lastEl : firstEl;\n\n let currentIndex: number;\n\n return this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n })\n ? this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)]\n : firstEl;\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n return targetEl === this.el\n ? !!this.el.shadowRoot.activeElement\n : document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -479,9 +479,10 @@ video {
479
479
 
480
480
  ::slotted(ic-toggle-button) {
481
481
  flex-grow: 1;
482
- --toggle-button-border: none;
483
482
  width: -moz-min-content;
484
483
  width: min-content;
484
+
485
+ --toggle-button-border: none;
485
486
  }
486
487
 
487
488
  ::slotted(ic-toggle-button:not(:last-of-type)) {
@@ -493,6 +494,7 @@ video {
493
494
  border: var(--ic-border-disabled);
494
495
  pointer-events: none;
495
496
  }
497
+
496
498
  :host(.disabled) ::slotted(ic-toggle-button:not(:last-of-type)) {
497
499
  border-right: var(--ic-border-disabled);
498
500
  }
@@ -8,7 +8,7 @@ const ArrowUpward = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"
8
8
  </svg>
9
9
  `;
10
10
 
11
- const icBackToTopCss = "/*! 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{display:block;position:absolute;right:0}.positioning{position:fixed;right:var(--ic-space-md);bottom:var(--ic-space-md);transition:visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);z-index:var(--ic-z-index-back-to-top)}button{height:2.5rem;align-items:center;padding:var(--ic-space-xs) var(--ic-space-md) var(--ic-space-xs)\n var(--ic-space-sm);margin:0;gap:var(--ic-space-xs);display:flex;background-color:var(--ic-architectural-white);border:var(--ic-border-width) solid var(--ic-action-default);outline-width:inherit;box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:5rem;text-decoration:none;visibility:hidden;opacity:0;cursor:pointer}button:hover{text-decoration:none;background-color:var(--ic-action-default-bg-hover-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-hover)}button:active{text-decoration:none;background-color:var(--ic-action-default-bg-active-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-active)}button:focus{box-shadow:var(--ic-border-focus)}.ic-back-to-top-link.show{visibility:visible;opacity:1;transition:visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast)}.ic-back-to-top-link.by-footer{position:relative;right:var(--ic-space-md);bottom:3.5rem}.ic-back-to-top-link.offset-banner{margin-bottom:var(--ic-space-lg)}.ic-back-to-top-icon{fill:var(--ic-action-default);padding-left:var(--ic-space-xxs);padding-top:var(--ic-space-xxxs)}.ic-back-to-top-icon>svg{height:var(--ic-space-md);width:var(--ic-space-md);display:inline-block}.ic-back-to-top-link span{color:var(--ic-action-default)}.ic-back-to-top-link:hover .ic-back-to-top-icon{fill:var(--ic-action-default-hover)}.ic-back-to-top-link:hover span{color:var(--ic-action-default-hover)}@media (forced-colors: active){.ic-back-to-top-icon{fill:currentcolor}}";
11
+ const icBackToTopCss = "/*! 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{display:block;position:absolute;right:0}.positioning{position:fixed;right:var(--ic-space-md);bottom:var(--ic-space-md);transition:visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);z-index:var(--ic-z-index-back-to-top)}.icon-only{width:2.5rem;padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs)\n var(--ic-space-xs)}.icon-only .ic-back-to-top-icon{padding-left:calc(var(--ic-space-xxxs) + var(--ic-space-1px))}button{height:2.5rem;align-items:center;padding:var(--ic-space-xs) var(--ic-space-md) var(--ic-space-xs)\n var(--ic-space-sm);margin:0;gap:var(--ic-space-xs);display:flex;background-color:var(--ic-architectural-white);border:var(--ic-border-width) solid var(--ic-action-default);outline-width:inherit;box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:5rem;text-decoration:none;visibility:hidden;opacity:0;cursor:pointer}button:hover{text-decoration:none;background-color:var(--ic-action-default-bg-hover-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-hover)}button:active{text-decoration:none;background-color:var(--ic-action-default-bg-active-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-active)}button:focus{box-shadow:var(--ic-border-focus)}.ic-back-to-top-link.show{visibility:visible;opacity:1;transition:visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast)}.ic-back-to-top-link.by-footer{position:relative;right:var(--ic-space-md);bottom:3.5rem}.ic-back-to-top-link.offset-banner{margin-bottom:var(--ic-space-lg)}.ic-back-to-top-icon{fill:var(--ic-action-default);padding-left:var(--ic-space-xxs);padding-top:var(--ic-space-xxxs)}.ic-back-to-top-icon>svg{height:var(--ic-space-md);width:var(--ic-space-md);display:inline-block}.ic-back-to-top-link span{color:var(--ic-action-default)}.ic-back-to-top-link:hover .ic-back-to-top-icon{fill:var(--ic-action-default-hover)}.ic-back-to-top-link:hover span{color:var(--ic-action-default-hover)}@media (forced-colors: active){.ic-back-to-top-icon{fill:currentcolor}}";
12
12
 
13
13
  const backToTopLabel = "Back to top";
14
14
  const BackToTop = /*@__PURE__*/ proxyCustomElement(class BackToTop extends HTMLElement {
@@ -97,6 +97,7 @@ const BackToTop = /*@__PURE__*/ proxyCustomElement(class BackToTop extends HTMLE
97
97
  ["show"]: !targetElVisible,
98
98
  ["by-footer"]: footerVisible,
99
99
  ["positioning"]: variant !== "icon",
100
+ ["icon-only"]: variant === "icon",
100
101
  }, "aria-label": backToTopLabel, onClick: this.handleClick }, h("span", { class: "ic-back-to-top-icon", innerHTML: ArrowUpward }), this.variant !== "icon" && (h("ic-typography", { variant: "subtitle-small" }, h("span", null, backToTopLabel)))));
101
102
  };
102
103
  this.bannerOffset = false;