@ukic/web-components 2.21.0 → 2.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) 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 +1 -1
  5. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-checkbox.cjs.entry.js +18 -5
  7. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +5 -7
  11. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-stepper.cjs.entry.js +29 -8
  24. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-tab-context.cjs.entry.js +8 -0
  26. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-toast.cjs.entry.js +6 -0
  29. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -2
  33. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +10 -0
  36. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -0
  37. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  38. package/dist/collection/components/ic-button/ic-button.css +42 -171
  39. package/dist/collection/components/ic-checkbox/ic-checkbox.js +61 -8
  40. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  41. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +61 -2
  42. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  43. package/dist/collection/components/ic-dialog/ic-dialog.css +10 -5
  44. package/dist/collection/components/ic-input-label/ic-input-label.css +11 -0
  45. package/dist/collection/components/ic-menu/ic-menu.css +1 -0
  46. package/dist/collection/components/ic-menu/ic-menu.js +4 -6
  47. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  48. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -1
  49. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -0
  50. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  51. package/dist/collection/components/ic-radio-option/ic-radio-option.js +1 -1
  52. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  53. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  54. package/dist/collection/components/ic-section-container/ic-section-container.js +1 -1
  55. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  56. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +4 -0
  57. package/dist/collection/components/ic-step/ic-step.css +13 -0
  58. package/dist/collection/components/ic-stepper/ic-stepper.js +34 -8
  59. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  60. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +26 -0
  61. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  62. package/dist/collection/components/ic-tab/ic-tab.css +2 -0
  63. package/dist/collection/components/ic-tab-context/ic-tab-context.js +10 -0
  64. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  65. package/dist/collection/components/ic-toast/ic-toast.js +9 -0
  66. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  67. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +5 -0
  68. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +3 -1
  69. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  70. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +3 -1
  71. package/dist/components/ic-back-to-top.js +2 -1
  72. package/dist/components/ic-back-to-top.js.map +1 -1
  73. package/dist/components/ic-button2.js +1 -1
  74. package/dist/components/ic-button2.js.map +1 -1
  75. package/dist/components/ic-checkbox.js +25 -7
  76. package/dist/components/ic-checkbox.js.map +1 -1
  77. package/dist/components/ic-dialog.js +1 -1
  78. package/dist/components/ic-dialog.js.map +1 -1
  79. package/dist/components/ic-input-label2.js.map +1 -1
  80. package/dist/components/ic-menu2.js +5 -7
  81. package/dist/components/ic-menu2.js.map +1 -1
  82. package/dist/components/ic-navigation-item.js +1 -1
  83. package/dist/components/ic-navigation-item.js.map +1 -1
  84. package/dist/components/ic-radio-option.js +1 -1
  85. package/dist/components/ic-radio-option.js.map +1 -1
  86. package/dist/components/ic-search-bar.js.map +1 -1
  87. package/dist/components/ic-section-container2.js +1 -1
  88. package/dist/components/ic-section-container2.js.map +1 -1
  89. package/dist/components/ic-side-navigation.js +1 -1
  90. package/dist/components/ic-side-navigation.js.map +1 -1
  91. package/dist/components/ic-step.js.map +1 -1
  92. package/dist/components/ic-stepper.js +32 -8
  93. package/dist/components/ic-stepper.js.map +1 -1
  94. package/dist/components/ic-tab-context.js +9 -0
  95. package/dist/components/ic-tab-context.js.map +1 -1
  96. package/dist/components/ic-tab.js.map +1 -1
  97. package/dist/components/ic-toast.js +9 -1
  98. package/dist/components/ic-toast.js.map +1 -1
  99. package/dist/components/ic-toggle-button-group.js +1 -1
  100. package/dist/components/ic-toggle-button-group.js.map +1 -1
  101. package/dist/components/ic-toggle-button.js +4 -2
  102. package/dist/components/ic-toggle-button.js.map +1 -1
  103. package/dist/core/core.esm.js +1 -1
  104. package/dist/core/core.esm.js.map +1 -1
  105. package/dist/core/{p-af5e3bab.entry.js → p-1c228028.entry.js} +2 -2
  106. package/dist/core/{p-af5e3bab.entry.js.map → p-1c228028.entry.js.map} +1 -1
  107. package/dist/core/{p-4a0acd0f.entry.js → p-244d38ed.entry.js} +2 -2
  108. package/dist/core/{p-4a0acd0f.entry.js.map → p-244d38ed.entry.js.map} +1 -1
  109. package/dist/core/p-26793ea2.entry.js +2 -0
  110. package/dist/core/p-26793ea2.entry.js.map +1 -0
  111. package/dist/core/p-4522e5c0.entry.js.map +1 -1
  112. package/dist/core/p-687af4e5.entry.js.map +1 -1
  113. package/dist/core/{p-de40b0b1.entry.js → p-69fc2feb.entry.js} +2 -2
  114. package/dist/core/p-69fc2feb.entry.js.map +1 -0
  115. package/dist/core/p-7dbd0a9f.entry.js.map +1 -1
  116. package/dist/core/p-9de95c50.entry.js +2 -0
  117. package/dist/core/p-9de95c50.entry.js.map +1 -0
  118. package/dist/core/{p-c6ac1a01.entry.js → p-a2704b98.entry.js} +2 -2
  119. package/dist/core/p-a2704b98.entry.js.map +1 -0
  120. package/dist/core/{p-e9723eaa.entry.js → p-a87d13b3.entry.js} +2 -2
  121. package/dist/core/{p-e9723eaa.entry.js.map → p-a87d13b3.entry.js.map} +1 -1
  122. package/dist/core/{p-6fae929c.entry.js → p-b47021d8.entry.js} +2 -2
  123. package/dist/core/p-b47021d8.entry.js.map +1 -0
  124. package/dist/core/p-bbfe15b5.entry.js +2 -0
  125. package/dist/core/p-bbfe15b5.entry.js.map +1 -0
  126. package/dist/core/p-c59c733e.entry.js +2 -0
  127. package/dist/core/p-c59c733e.entry.js.map +1 -0
  128. package/dist/core/{p-adecaedd.entry.js → p-c698064f.entry.js} +2 -2
  129. package/dist/core/p-c698064f.entry.js.map +1 -0
  130. package/dist/core/p-cf93053d.entry.js +2 -0
  131. package/dist/core/p-cf93053d.entry.js.map +1 -0
  132. package/dist/core/{p-1624f4de.entry.js → p-df0deff0.entry.js} +2 -2
  133. package/dist/core/p-df0deff0.entry.js.map +1 -0
  134. package/dist/core/p-e6a8f0de.entry.js +2 -0
  135. package/dist/core/p-e6a8f0de.entry.js.map +1 -0
  136. package/dist/core/p-e70c6b33.entry.js.map +1 -1
  137. package/dist/esm/core.js +1 -1
  138. package/dist/esm/ic-back-to-top.entry.js +2 -1
  139. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  140. package/dist/esm/ic-button_3.entry.js +1 -1
  141. package/dist/esm/ic-button_3.entry.js.map +1 -1
  142. package/dist/esm/ic-checkbox.entry.js +18 -5
  143. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  144. package/dist/esm/ic-dialog.entry.js +1 -1
  145. package/dist/esm/ic-dialog.entry.js.map +1 -1
  146. package/dist/esm/ic-input-component-container_3.entry.js +5 -7
  147. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  148. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  149. package/dist/esm/ic-navigation-item.entry.js +1 -1
  150. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  151. package/dist/esm/ic-radio-option.entry.js +1 -1
  152. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  153. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  154. package/dist/esm/ic-section-container.entry.js +1 -1
  155. package/dist/esm/ic-section-container.entry.js.map +1 -1
  156. package/dist/esm/ic-side-navigation.entry.js +1 -1
  157. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  158. package/dist/esm/ic-step.entry.js.map +1 -1
  159. package/dist/esm/ic-stepper.entry.js +29 -8
  160. package/dist/esm/ic-stepper.entry.js.map +1 -1
  161. package/dist/esm/ic-tab-context.entry.js +8 -0
  162. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  163. package/dist/esm/ic-tab.entry.js.map +1 -1
  164. package/dist/esm/ic-toast.entry.js +6 -0
  165. package/dist/esm/ic-toast.entry.js.map +1 -1
  166. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  167. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  168. package/dist/esm/ic-toggle-button.entry.js +4 -2
  169. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  170. package/dist/esm/loader.js +1 -1
  171. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +10 -0
  172. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  173. package/dist/types/components/ic-stepper/ic-stepper.d.ts +3 -0
  174. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -0
  175. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -0
  176. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +1 -0
  177. package/dist/types/components.d.ts +16 -0
  178. package/hydrate/index.js +85 -32
  179. package/package.json +2 -2
  180. package/vscode-data.json +8 -0
  181. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +0 -11
  182. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +0 -1
  183. package/dist/core/p-1624f4de.entry.js.map +0 -1
  184. package/dist/core/p-49cdaddc.entry.js +0 -2
  185. package/dist/core/p-49cdaddc.entry.js.map +0 -1
  186. package/dist/core/p-6fae929c.entry.js.map +0 -1
  187. package/dist/core/p-ad6176a2.entry.js +0 -2
  188. package/dist/core/p-ad6176a2.entry.js.map +0 -1
  189. package/dist/core/p-adecaedd.entry.js.map +0 -1
  190. package/dist/core/p-c6ac1a01.entry.js.map +0 -1
  191. package/dist/core/p-cbba9c7c.entry.js +0 -2
  192. package/dist/core/p-cbba9c7c.entry.js.map +0 -1
  193. package/dist/core/p-d3f10067.entry.js +0 -2
  194. package/dist/core/p-d3f10067.entry.js.map +0 -1
  195. package/dist/core/p-dae27567.entry.js +0 -2
  196. package/dist/core/p-dae27567.entry.js.map +0 -1
  197. package/dist/core/p-de40b0b1.entry.js.map +0 -1
  198. package/dist/core/p-fe702898.entry.js +0 -2
  199. package/dist/core/p-fe702898.entry.js.map +0 -1
  200. 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.js","sourceRoot":"","sources":["../../../src/components/ic-stepper/ic-stepper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport { checkResizeObserver, pxToRem } from \"../../utils/helpers\";\nimport { IcStepperAlignment } from \"./ic-stepper.types\";\nimport { IcStepTypes, IcStepVariants } from \"../ic-step/ic-step.types\";\n\n@Component({\n tag: \"ic-stepper\",\n styleUrl: \"ic-stepper.css\",\n shadow: true,\n})\nexport class Stepper {\n private resizeObserver: ResizeObserver = null;\n private steps: HTMLIcStepElement[];\n private stepsWithStepTitles: HTMLIcStepElement[];\n\n @Element() el: HTMLIcStepperElement;\n\n @State() alignedFullWidth: boolean = true;\n @State() autoSetStepTitles: boolean = true;\n @State() lastStepWidth: number = 0;\n @State() noOfResizes?: number = 0;\n @State() stepperWidth: number = document\n .querySelector(\"ic-stepper\")\n .getBoundingClientRect().width;\n @State() stepTypes: IcStepTypes[] = [];\n @State() variantOverride?: boolean = this.variant !== \"compact\";\n\n /**\n * The alignment of the default stepper within its container.\n */\n @Prop() aligned?: IcStepperAlignment = \"full-width\";\n\n /**\n * The appearance of the stepper.\n */\n @Prop() appearance?: \"light\" | \"default\" = \"default\";\n\n /**\n * The length of the connnector between each step in pixels. Minimum length is 100px.\n */\n @Prop() connectorWidth?: number = 100;\n\n /**\n * If `true`, the information about each step, i.e. step title, step subtitle and step status, will be hidden on all default steps. The information about each step will still be visible in the compact variant of the stepper.\n */\n @Prop() hideStepInfo?: boolean = false;\n\n /**\n * The variant of the stepper.\n */\n @Prop({ mutable: true }) variant?: IcStepVariants = \"default\";\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.setStepTypes();\n\n if (this.variant === \"compact\") {\n this.variantOverride = false;\n }\n }\n\n componentWillRender(): void {\n this.initialiseStepStates();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n // Get all steps currently within this stepper\n private getChildren = (): void => {\n this.steps = Array.from(this.el.querySelectorAll(\"ic-step\"));\n\n this.stepsWithStepTitles = Array.from(\n this.el.querySelectorAll(\"ic-step[step-title]\")\n );\n };\n\n // Inform the user that stepTitles are required on all steps in a compact stepper\n private checkStepTitles = (): void => {\n if (\n this.stepsWithStepTitles.length < this.steps.length &&\n this.variantOverride &&\n this.variant === \"compact\"\n ) {\n this.noOfResizes = this.noOfResizes + 1;\n if (this.noOfResizes === 1) {\n console.error(\n `The prop 'step-title' (web components) / 'stepTitle' (react) is required for all steps of the Stepper component (compact variant)`\n );\n }\n }\n };\n\n private setStepTypes = (): void => {\n this.getChildren();\n this.stepTypes = [];\n for (let i = 0; i < this.steps.length; i++) {\n this.stepTypes.push(\"active\");\n }\n };\n\n private setStepperWidth = (): void => {\n this.alignedFullWidth =\n this.variant === \"default\" && this.aligned === \"full-width\";\n\n const lastStep = this.steps[this.steps.length - 1];\n lastStep.style.maxWidth = \"none\";\n\n if (this.alignedFullWidth) {\n this.stepperWidth = this.el.offsetWidth;\n lastStep.style.maxWidth = pxToRem(\n `${this.stepperWidth / this.steps.length}px`\n );\n this.lastStepWidth = lastStep.offsetWidth;\n }\n };\n\n private initialiseStepStates = (): void => {\n this.steps.forEach((step, index) => {\n // Set variant\n step.variant = this.variant;\n // Assign stepNum to each step\n step.stepNum = index + 1;\n // Assign lastStep to final step\n step.lastStep = index === this.steps.length - 1;\n step.lastStepNum = this.steps.length;\n\n if (step.stepType !== \"current\") {\n step.current = false;\n this.stepTypes[index] = step.stepType;\n } else {\n step.current = true;\n }\n\n const stepTitleArea =\n step.shadowRoot &&\n step.shadowRoot.querySelector(\".step > .step-title-area\");\n\n if (this.stepsWithStepTitles.length == 0 && this.variantOverride) {\n if (this.variant === \"compact\") {\n this.autoSetStepTitles = true;\n if (this.autoSetStepTitles) {\n step.stepTitle = \"Step \" + step.stepNum;\n stepTitleArea &&\n stepTitleArea\n .querySelector(\".step-title\")\n .setAttribute(\"aria-hidden\", \"true\");\n }\n }\n if (this.variant === \"default\") {\n this.autoSetStepTitles = false;\n if (!this.autoSetStepTitles) {\n step.stepTitle = undefined;\n stepTitleArea &&\n stepTitleArea\n .querySelector(\".step-title\")\n .removeAttribute(\"aria-hidden\");\n }\n }\n }\n\n if (this.variant === \"compact\") {\n if (step.current === true || step.stepType === \"current\") {\n step.classList.remove(\"hide\");\n step.classList.add(\"show\");\n } else if (step.classList.contains(\"show\")) {\n step.classList.remove(\"show\");\n step.classList.add(\"hide\");\n }\n\n if (!step.lastStep) {\n step.nextStepTitle = this.steps[index + 1].stepTitle;\n step.progress = (step.stepNum / this.steps.length) * 100;\n } else if (step.lastStep && this.stepTypes[index] !== \"completed\") {\n step.progress = 95;\n } else {\n step.progress = 100;\n }\n\n if (this.hideStepInfo && stepTitleArea !== null) {\n stepTitleArea.classList.remove(\"visually-hidden\");\n }\n\n step.compactStepStyling = this.stepTypes[index];\n }\n\n if (this.variant === \"default\") {\n if (!step.lastStep) {\n if (this.alignedFullWidth) {\n step.style.width = pxToRem(\n `${\n (this.stepperWidth - this.lastStepWidth) /\n (this.steps.length - 1)\n }px`\n );\n step.style.minWidth = pxToRem(\"148px\");\n }\n } else if (step.lastStep) {\n step.classList.add(\"last-step\");\n if (this.alignedFullWidth) {\n step.style.maxWidth = `${this.lastStepWidth}px`;\n } else {\n step.style.maxWidth =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth + 48}px`)\n : pxToRem(\"148px\");\n }\n }\n\n if (this.aligned === \"left\") {\n step.style.width =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth + 48}px`)\n : pxToRem(\"148px\");\n const stepConnect = step.shadowRoot.querySelector(\n \".step > .step-top > .step-connect\"\n ) as HTMLElement;\n\n if (stepConnect) {\n stepConnect.style.width =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth}px`)\n : pxToRem(\"100px\");\n }\n }\n\n if (this.hideStepInfo && stepTitleArea !== null) {\n stepTitleArea.classList.add(\"visually-hidden\");\n }\n }\n });\n };\n\n private overrideVariant = () => {\n let minDefaultStepperWidth = 148 * this.steps.length;\n\n if (this.aligned === \"left\" && this.connectorWidth > 100) {\n minDefaultStepperWidth = (this.connectorWidth + 48) * this.steps.length;\n }\n\n if (this.variantOverride) {\n if (this.el.clientWidth < minDefaultStepperWidth) {\n this.variant = \"compact\";\n this.getChildren();\n } else {\n this.variant = \"default\";\n this.getChildren();\n }\n }\n };\n\n private resizeObserverCallback = () => {\n this.getChildren();\n this.checkStepTitles();\n this.overrideVariant();\n this.setStepperWidth();\n this.initialiseStepStates();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.el);\n };\n\n render() {\n return (\n <Host\n class={{\n [`${this.variant}`]: true,\n [\"aligned-left\"]:\n this.variant === \"default\" && this.aligned === \"left\",\n }}\n >\n <ul class=\"step-item-list\">\n <slot></slot>\n </ul>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-stepper.js","sourceRoot":"","sources":["../../../src/components/ic-stepper/ic-stepper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, h, State, Watch } from \"@stencil/core\";\nimport { checkResizeObserver, pxToRem } from \"../../utils/helpers\";\nimport { IcStepperAlignment } from \"./ic-stepper.types\";\nimport { IcStepTypes, IcStepVariants } from \"../ic-step/ic-step.types\";\n\n@Component({\n tag: \"ic-stepper\",\n styleUrl: \"ic-stepper.css\",\n shadow: true,\n})\nexport class Stepper {\n private resizeObserver: ResizeObserver = null;\n private steps: HTMLIcStepElement[];\n private stepsWithStepTitles: HTMLIcStepElement[];\n private visuallyHidden: string = \"visually-hidden\";\n\n @Element() el: HTMLIcStepperElement;\n\n @State() alignedFullWidth: boolean = true;\n @State() autoSetStepTitles: boolean = true;\n @State() lastStepWidth: number = 0;\n @State() noOfResizes?: number = 0;\n @State() stepperWidth: number = document\n .querySelector(\"ic-stepper\")\n .getBoundingClientRect().width;\n @State() stepTypes: IcStepTypes[] = [];\n @State() variantOverride?: boolean = this.variant !== \"compact\";\n\n /**\n * The alignment of the default stepper within its container.\n */\n @Prop() aligned?: IcStepperAlignment = \"full-width\";\n\n /**\n * The appearance of the stepper.\n */\n @Prop() appearance?: \"light\" | \"default\" = \"default\";\n\n /**\n * The length of the connnector between each step in pixels. Minimum length is 100px.\n */\n @Prop() connectorWidth?: number = 100;\n\n /**\n * If `true`, the information about each step, i.e. step title, step subtitle and step status, will be hidden on all default steps. The information about each step will still be visible in the compact variant of the stepper.\n */\n @Prop() hideStepInfo?: boolean = false;\n\n /**\n * The variant of the stepper.\n */\n @Prop({ mutable: true }) variant?: IcStepVariants = \"default\";\n\n @Watch(\"hideStepInfo\")\n @Watch(\"variant\")\n handlePropChange(): void {\n this.setHideStepInfo();\n this.getChildren();\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.setStepTypes();\n\n if (this.variant === \"compact\") {\n this.variantOverride = false;\n }\n }\n\n componentWillRender(): void {\n this.initialiseStepStates();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n // Get all steps currently within this stepper\n private getChildren = (): void => {\n this.steps = Array.from(this.el.querySelectorAll(\"ic-step\"));\n\n this.stepsWithStepTitles = Array.from(\n this.el.querySelectorAll(\"ic-step[step-title]\")\n );\n };\n\n // Inform the user that stepTitles are required on all steps in a compact stepper\n private checkStepTitles = (): void => {\n if (\n this.stepsWithStepTitles.length < this.steps.length &&\n this.variantOverride &&\n this.variant === \"compact\"\n ) {\n this.noOfResizes = this.noOfResizes + 1;\n if (this.noOfResizes === 1) {\n console.error(\n `The prop 'step-title' (web components) / 'stepTitle' (react) is required for all steps of the Stepper component (compact variant)`\n );\n }\n }\n };\n\n private setStepTypes = (): void => {\n this.getChildren();\n this.stepTypes = [];\n for (let i = 0; i < this.steps.length; i++) {\n this.stepTypes.push(\"active\");\n }\n };\n\n private setStepperWidth = (): void => {\n this.alignedFullWidth =\n this.variant === \"default\" && this.aligned === \"full-width\";\n\n const lastStep = this.steps[this.steps.length - 1];\n lastStep.style.maxWidth = \"none\";\n\n if (this.alignedFullWidth) {\n this.stepperWidth = this.el.offsetWidth;\n lastStep.style.maxWidth = pxToRem(\n `${this.stepperWidth / this.steps.length}px`\n );\n this.lastStepWidth = lastStep.offsetWidth;\n }\n };\n\n private initialiseStepStates = (): void => {\n this.steps.forEach((step, index) => {\n // Set variant\n step.variant = this.variant;\n // Assign stepNum to each step\n step.stepNum = index + 1;\n // Assign lastStep to final step\n step.lastStep = index === this.steps.length - 1;\n step.lastStepNum = this.steps.length;\n\n if (step.stepType !== \"current\") {\n step.current = false;\n this.stepTypes[index] = step.stepType;\n } else {\n step.current = true;\n }\n\n const stepTitleArea =\n step.shadowRoot &&\n step.shadowRoot.querySelector(\".step > .step-title-area\");\n\n if (this.stepsWithStepTitles.length == 0 && this.variantOverride) {\n if (this.variant === \"compact\") {\n this.autoSetStepTitles = true;\n if (this.autoSetStepTitles) {\n step.stepTitle = \"Step \" + step.stepNum;\n stepTitleArea &&\n stepTitleArea\n .querySelector(\".step-title\")\n .setAttribute(\"aria-hidden\", \"true\");\n }\n }\n if (this.variant === \"default\") {\n this.autoSetStepTitles = false;\n if (!this.autoSetStepTitles) {\n step.stepTitle = undefined;\n stepTitleArea &&\n stepTitleArea\n .querySelector(\".step-title\")\n .removeAttribute(\"aria-hidden\");\n }\n }\n }\n\n if (this.variant === \"compact\") {\n if (step.current === true || step.stepType === \"current\") {\n step.classList.remove(\"hide\");\n step.classList.add(\"show\");\n } else if (step.classList.contains(\"show\")) {\n step.classList.remove(\"show\");\n step.classList.add(\"hide\");\n }\n\n if (!step.lastStep) {\n step.nextStepTitle = this.steps[index + 1].stepTitle;\n step.progress = (step.stepNum / this.steps.length) * 100;\n } else if (step.lastStep && this.stepTypes[index] !== \"completed\") {\n step.progress = 95;\n } else {\n step.progress = 100;\n }\n\n if (this.hideStepInfo && stepTitleArea !== null) {\n stepTitleArea.classList.remove(this.visuallyHidden);\n }\n\n step.compactStepStyling = this.stepTypes[index];\n }\n\n if (this.variant === \"default\") {\n if (!step.lastStep) {\n if (this.alignedFullWidth) {\n step.style.width = pxToRem(\n `${\n (this.stepperWidth - this.lastStepWidth) /\n (this.steps.length - 1)\n }px`\n );\n step.style.minWidth = pxToRem(\"148px\");\n }\n } else if (step.lastStep) {\n step.classList.add(\"last-step\");\n if (this.alignedFullWidth) {\n step.style.maxWidth = `${this.lastStepWidth}px`;\n } else {\n step.style.maxWidth =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth + 48}px`)\n : pxToRem(\"148px\");\n }\n }\n\n if (this.aligned === \"left\") {\n step.style.width =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth + 48}px`)\n : pxToRem(\"148px\");\n const stepConnect = step.shadowRoot.querySelector(\n \".step > .step-top > .step-connect\"\n ) as HTMLElement;\n\n if (stepConnect) {\n stepConnect.style.width =\n this.connectorWidth > 100\n ? pxToRem(`${this.connectorWidth}px`)\n : pxToRem(\"100px\");\n }\n }\n\n if (this.hideStepInfo && stepTitleArea !== null) {\n stepTitleArea.classList.add(this.visuallyHidden);\n }\n }\n });\n };\n\n private setHideStepInfo = (): void => {\n this.steps.forEach((step) => {\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n if (stepTitleArea !== null) {\n if (this.hideStepInfo) {\n stepTitleArea.classList?.add(this.visuallyHidden);\n } else {\n stepTitleArea.classList?.remove(this.visuallyHidden);\n }\n }\n });\n };\n\n private overrideVariant = () => {\n if (this.variantOverride) {\n let minDefaultStepperWidth = 148 * this.steps.length;\n\n if (this.aligned === \"left\" && this.connectorWidth > 100) {\n minDefaultStepperWidth = (this.connectorWidth + 48) * this.steps.length;\n }\n if (this.el.clientWidth < minDefaultStepperWidth) {\n this.variant = \"compact\";\n } else {\n this.variant = \"default\";\n }\n }\n };\n\n private resizeObserverCallback = () => {\n this.getChildren();\n this.checkStepTitles();\n this.overrideVariant();\n this.setStepperWidth();\n this.initialiseStepStates();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.el);\n };\n\n render() {\n return (\n <Host\n class={{\n [`${this.variant}`]: true,\n [\"aligned-left\"]:\n this.variant === \"default\" && this.aligned === \"left\",\n }}\n >\n <ul class=\"step-item-list\">\n <slot></slot>\n </ul>\n </Host>\n );\n }\n}\n"]}
@@ -722,5 +722,31 @@ describe("switch between the compact and default stepper depending on whether th
722
722
  });
723
723
  expect(page.root).toMatchSnapshot();
724
724
  });
725
+ it("should test the setHideStepInfo method", async () => {
726
+ const page = await newSpecPage({
727
+ components: [Stepper, Step],
728
+ html: `<ic-stepper>
729
+ <ic-step step-title="Create" step-type="completed"></ic-step>
730
+ <ic-step step-title="Read" step-type="current"></ic-step>
731
+ <ic-step step-title="Update"></ic-step>
732
+ <ic-step step-title="Delete"></ic-step></ic-stepper>`,
733
+ });
734
+ await page.waitForChanges();
735
+ expect(page.rootInstance.hideStepInfo).toBeFalsy();
736
+ const steps = page.root.querySelectorAll("ic-step");
737
+ steps.forEach((step) => {
738
+ const stepTitle = step.shadowRoot.querySelector(".step > .step-title-area");
739
+ expect(stepTitle).not.toBeNull();
740
+ expect(stepTitle.classList.contains("visually-hidden")).toBeFalsy();
741
+ });
742
+ page.rootInstance.hideStepInfo = true;
743
+ await page.waitForChanges();
744
+ expect(page.rootInstance.hideStepInfo).toBeTruthy();
745
+ steps.forEach((step) => {
746
+ const stepTitle = step.shadowRoot.querySelector(".step > .step-title-area");
747
+ expect(stepTitle).not.toBeNull();
748
+ expect(stepTitle.classList.contains("visually-hidden")).toBeTruthy();
749
+ });
750
+ });
725
751
  });
726
752
  //# sourceMappingURL=ic-stepper.spec.js.map
@@ -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":"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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 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",