@worksafevictoria/wcl7.5 1.1.0-beta.11 → 1.1.0-beta.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/.env +1 -3
  2. package/.storybook/preview.js +20 -13
  3. package/README.md +4 -4
  4. package/bin/deploy.sh +1 -1
  5. package/ci/build/build_validation.yml +2 -2
  6. package/ci/release/beta.yml +4 -3
  7. package/ci/release/master.yml +4 -3
  8. package/jest.config.js +10 -8
  9. package/lib/utility.js +10 -8
  10. package/package.json +17 -14
  11. package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
  12. package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
  13. package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
  14. package/src/assets/icons/WSV-reversed.svg +20 -0
  15. package/src/assets/icons/contrast.svg +4 -0
  16. package/src/assets/icons/lang.svg +13 -0
  17. package/src/assets/icons/login.svg +4 -0
  18. package/src/assets/styles/modal.scss +51 -0
  19. package/src/components/Common/CardGrid/cardgrid.stories.js +4 -57
  20. package/src/components/Common/CardGrid/index.vue +69 -49
  21. package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
  22. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +15 -19
  23. package/src/components/Common/CardGridItem/index.vue +95 -71
  24. package/src/components/Containers/Carousel/index.stories.js +30 -0
  25. package/src/components/Containers/Carousel/index.vue +172 -0
  26. package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
  27. package/src/components/Containers/HomepageHeader/index.vue +16 -26
  28. package/src/components/Containers/HomepageHeaderNew/index.stories.js +75 -0
  29. package/src/components/Containers/HomepageHeaderNew/index.vue +227 -0
  30. package/src/components/Containers/SectionGroup/index.vue +1 -1
  31. package/src/components/Containers/Subheader/index.vue +30 -20
  32. package/src/components/Global/AlertStrip/index.stories.js +1 -0
  33. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
  34. package/src/components/Global/AppFooter/index.stories.js +1 -0
  35. package/src/components/Global/AppFooter/index.vue +42 -33
  36. package/src/components/Global/AppFooter/styles.scss +3 -0
  37. package/src/components/Global/AppHeader/index.vue +49 -52
  38. package/src/components/Global/AppHeaderNew/ModalSearch/index.vue +71 -0
  39. package/src/components/Global/AppHeaderNew/ModalSearch/styles.scss +43 -0
  40. package/src/components/Global/AppHeaderNew/includes.scss +71 -0
  41. package/src/components/Global/AppHeaderNew/index.stories.js +74 -0
  42. package/src/components/Global/AppHeaderNew/index.vue +1176 -0
  43. package/src/components/Global/AppHeaderNew/mobile.scss +269 -0
  44. package/src/components/Global/AppHeaderNew/styles.scss +642 -0
  45. package/src/components/Global/BackToTop/index.vue +8 -8
  46. package/src/components/Global/ContrastMode/index.stories.js +1 -0
  47. package/src/components/Global/ContrastMode/index.vue +1 -1
  48. package/src/components/Global/Cookies/index.stories.js +16 -10
  49. package/src/components/Global/Cookies/index.vue +209 -172
  50. package/src/components/Global/Cookies/styles.scss +54 -54
  51. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -132
  52. package/src/components/Global/DirectoryFilters/index.vue +3 -0
  53. package/src/components/Global/GlobalNotice/index.stories.js +7 -1
  54. package/src/components/Global/GlobalNotice/index.vue +84 -84
  55. package/src/components/Global/HeroHeader/index.stories.js +3 -4
  56. package/src/components/Global/HeroHeader/index.vue +28 -29
  57. package/src/components/Global/ProgressBar/index.stories.js +6 -16
  58. package/src/components/Global/SocialShare/index.vue +3 -2
  59. package/src/components/Global/Strip/index.stories.js +1 -17
  60. package/src/components/Global/Strip/index.vue +9 -5
  61. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +29 -21
  62. package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
  63. package/src/components/Paragraphs/Accordion/index.stories.js +22 -18
  64. package/src/components/Paragraphs/Accordion/index.vue +52 -48
  65. package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
  66. package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
  67. package/src/components/Paragraphs/BrowseContent/index.vue +42 -32
  68. package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
  69. package/src/components/Paragraphs/Calculator/Constants.js +2 -2
  70. package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
  71. package/src/components/Paragraphs/Chart/Constants.js +952 -952
  72. package/src/components/Paragraphs/Chart/index.vue +232 -241
  73. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.stories.js +34 -0
  74. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.vue +321 -0
  75. package/src/components/Paragraphs/Directory/HSCP/Records/index.stories.js +19 -0
  76. package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +345 -0
  77. package/src/components/Paragraphs/Directory/HSCP/Records/pagination.vue +179 -0
  78. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +4 -4
  79. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +6 -6
  80. package/src/components/Paragraphs/Directory/Records/PRS/index.stories.js +34 -0
  81. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +7 -3
  82. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
  83. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
  84. package/src/components/Paragraphs/Directory/Records/index.storieshide.js +47 -0
  85. package/src/components/Paragraphs/Directory/Records/index.vue +55 -36
  86. package/src/components/Paragraphs/Directory/constants.js +23 -5
  87. package/src/components/Paragraphs/Directory/index.vue +56 -45
  88. package/src/components/Paragraphs/Directory/{Records/styles.scss → styles.scss} +5 -3
  89. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +1 -0
  90. package/src/components/Paragraphs/ListGroup/index.vue +60 -47
  91. package/src/components/Paragraphs/ListGroup/list-group.stories.js +1 -0
  92. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +1 -0
  93. package/src/components/Paragraphs/Map/Constants.js +4790 -0
  94. package/src/components/Paragraphs/Map/index.mdx +29 -0
  95. package/src/components/Paragraphs/Map/index.stories.js +15 -0
  96. package/src/components/Paragraphs/Map/index.vue +313 -0
  97. package/src/components/Paragraphs/Map/lga-map.json +33462 -0
  98. package/src/components/Paragraphs/Map/postcode_location.json +3543 -0
  99. package/src/components/Paragraphs/MarketingBanner/index.stories.js +4 -18
  100. package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
  101. package/src/components/Paragraphs/RelatedInformation/index.stories.js +8 -0
  102. package/src/components/Paragraphs/RichText/index.stories.js +2 -1
  103. package/src/components/Paragraphs/ScrollSpy/index.stories.js +3 -1
  104. package/src/components/Paragraphs/ScrollSpy/index.vue +26 -12
  105. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +1 -0
  106. package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
  107. package/src/components/Paragraphs/Statistics/index.stories.js +1 -0
  108. package/src/components/Paragraphs/Statistics/index.vue +1 -0
  109. package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
  110. package/src/components/Paragraphs/TabbedCards/index.vue +68 -103
  111. package/src/components/Paragraphs/Tabs/index.stories.js +1 -0
  112. package/src/components/Paragraphs/Tabs/index.vue +19 -17
  113. package/src/components/Paragraphs/TabulatedData/index.stories.js +6 -5
  114. package/src/components/Paragraphs/TabulatedData/index.vue +63 -35
  115. package/src/components/Paragraphs/TaskFinder/index.stories.js +2 -2
  116. package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
  117. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
  118. package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
  119. package/src/components/Paragraphs/TextMedia/index.stories.js +1 -0
  120. package/src/components/Paragraphs/TextMedia/index.vue +20 -16
  121. package/src/components/Paragraphs/VideoGrid/index.stories.js +44 -19
  122. package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
  123. package/src/components/Paragraphs/VideoPlayer/index.stories.js +1 -13
  124. package/src/components/Paragraphs/Webform/index.stories.js +94 -57
  125. package/src/components/Paragraphs/Webform/index.vue +11 -8
  126. package/src/components/SubComponents/Breadcrumb/index.stories.js +3 -11
  127. package/src/components/SubComponents/Breadcrumb/index.vue +4 -0
  128. package/src/components/SubComponents/CardGroup/index.stories.js +1 -30
  129. package/src/components/SubComponents/CardGroup/index.vue +38 -28
  130. package/src/components/SubComponents/CtaButton/index.stories.js +1 -24
  131. package/src/components/SubComponents/CtaButton/index.vue +27 -25
  132. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
  133. package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
  134. package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
  135. package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
  136. package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
  137. package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
  138. package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
  139. package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
  140. package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
  141. package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
  142. package/src/components/SubComponents/FormInstance/components/handler/index.vue +204 -0
  143. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +333 -0
  144. package/src/components/SubComponents/FormInstance/index.test.js +65 -0
  145. package/src/components/SubComponents/FormInstance/index.vue +55 -6
  146. package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
  147. package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
  148. package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
  149. package/src/components/SubComponents/FormInstance/models/overrides/address.js +141 -0
  150. package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
  151. package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
  152. package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
  153. package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
  154. package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
  155. package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
  156. package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
  157. package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
  158. package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
  159. package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
  160. package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
  161. package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
  162. package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
  163. package/src/components/SubComponents/FormInstance/models/overrides/file.js +54 -0
  164. package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
  165. package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
  166. package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
  167. package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
  168. package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
  169. package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
  170. package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
  171. package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
  172. package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
  173. package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
  174. package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
  175. package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
  176. package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
  177. package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
  178. package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
  179. package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
  180. package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
  181. package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
  182. package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
  183. package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
  184. package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
  185. package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
  186. package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
  187. package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
  188. package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
  189. package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
  190. package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
  191. package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
  192. package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
  193. package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
  194. package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
  195. package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
  196. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
  197. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +68 -0
  198. package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
  199. package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
  200. package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
  201. package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
  202. package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
  203. package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
  204. package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
  205. package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
  206. package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
  207. package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
  208. package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
  209. package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
  210. package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
  211. package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
  212. package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
  213. package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
  214. package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
  215. package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
  216. package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
  217. package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
  218. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
  219. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
  220. package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
  221. package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
  222. package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
  223. package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
  224. package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
  225. package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
  226. package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
  227. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
  228. package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
  229. package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
  230. package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
  231. package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
  232. package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
  233. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
  234. package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
  235. package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
  236. package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
  237. package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
  238. package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
  239. package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
  240. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
  241. package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
  242. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
  243. package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
  244. package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
  245. package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
  246. package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
  247. package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
  248. package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
  249. package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
  250. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
  251. package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
  252. package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
  253. package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
  254. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
  255. package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
  256. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
  257. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
  258. package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
  259. package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
  260. package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
  261. package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
  262. package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
  263. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
  264. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
  265. package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
  266. package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
  267. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
  268. package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
  269. package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
  270. package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
  271. package/src/components/SubComponents/FormInstance/style.scss +185 -0
  272. package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
  273. package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
  274. package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
  275. package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
  276. package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
  277. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
  278. package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
  279. package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
  280. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
  281. package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
  282. package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
  283. package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
  284. package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
  285. package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
  286. package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
  287. package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
  288. package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
  289. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
  290. package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
  291. package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
  292. package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
  293. package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
  294. package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
  295. package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
  296. package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
  297. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
  298. package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
  299. package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
  300. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
  301. package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
  302. package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
  303. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
  304. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
  305. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
  306. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
  307. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
  308. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
  309. package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
  310. package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
  311. package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
  312. package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
  313. package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
  314. package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
  315. package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
  316. package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
  317. package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
  318. package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
  319. package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
  320. package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
  321. package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
  322. package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
  323. package/src/components/SubComponents/FormInstance/tests/url.test.js +48 -0
  324. package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
  325. package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
  326. package/src/components/SubComponents/Icon/index.stories.js +1 -6
  327. package/src/components/SubComponents/MediaPlayer/index.stories.js +1 -6
  328. package/src/components/SubComponents/Pagination/index.stories.js +3 -8
  329. package/src/components/SubComponents/Pagination/index.vue +19 -18
  330. package/src/components/SubComponents/ResourceGroup/List/index.stories.js +3 -2
  331. package/src/components/SubComponents/ResourceGroup/index.vue +211 -174
  332. package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
  333. package/src/components/SubComponents/Search/index.vue +47 -40
  334. package/src/components/SubComponents/SingleImage/index.stories.js +2 -16
  335. package/src/components/SubComponents/VideoThumbnail/index.stories.js +1 -0
  336. package/src/components/SubComponents/VideoThumbnail/index.vue +48 -136
  337. package/src/includes/scss/mixins/src/grid.scss +4 -2
  338. package/src/includes/scss/mixins/src/units.scss +25 -4
  339. package/src/includes/scss/vars/src/colors.module.scss +28 -1
  340. package/src/index.js +25 -3
  341. package/src/main.js +2 -10
  342. package/src/mock/app-header-new.js +715 -0
  343. package/src/mock/carousel-items.js +82 -0
  344. package/src/mock/course-provider.js +273 -0
  345. package/src/mock/jest.fileMock.js +1 -0
  346. package/vite.config.js +28 -15
  347. package/src/components/SubComponents/FormInstance/index.stories.js +0 -8
@@ -3,31 +3,17 @@ import MarketingBanner from './index.vue'
3
3
  export default {
4
4
  title: 'Paragraphs/MarketingBanner',
5
5
  component: MarketingBanner,
6
+ tags: ['autodocs'],
6
7
  argTypes: {
7
- image: {
8
- control: 'text'
9
- },
10
- leftText: {
11
- control: 'text'
12
- },
13
- leftBg: {
8
+ leftBg: {
14
9
  control: 'select',
15
10
  options: ['yellow', 'black', 'white']
16
11
  },
17
- rightText: {
18
- control: 'text'
19
- },
20
- rightBg: {
12
+ rightBg: {
21
13
  control: 'select',
22
14
  options: ['yellow', 'black', 'white']
23
15
  },
24
- withLink: {
25
- control: 'boolean'
26
- },
27
- hideLeft: {
28
- control: 'boolean'
29
- },
30
- link: {
16
+ link: {
31
17
  control: 'text',
32
18
  table: { disable: true }
33
19
  },
@@ -106,40 +106,39 @@ const itemListAr = [
106
106
  export default {
107
107
  title: 'Paragraphs/ProofPoints',
108
108
  component: ProofPoints,
109
+ tags: ['autodocs'],
109
110
  argTypes: {
110
- title: {
111
- control: 'text',
112
- defaultValue: 'Section heading'
113
- },
114
111
  headingTag: {
115
112
  control: 'select',
116
- options: ['h2', 'h3'],
117
- defaultValue: 'h2'
118
- },
119
- rtl: {
120
- control: 'boolean',
121
- defaultValue: false
113
+ options: ['h2', 'h3']
122
114
  },
123
- columns: {
115
+ columns: {
124
116
  control: 'select',
125
- options: [3, 4],
126
- defaultValue: 3
117
+ options: [3, 4]
127
118
  },
128
119
  itemList: {
129
120
  table: { disable: true }
130
121
  },
131
122
  type: {
132
123
  control: 'select',
133
- options: ['default', 'icon', 'image'],
134
- defaultValue: 'icon'
124
+ options: ['default', 'icon', 'image']
135
125
  }
126
+ },
127
+ args: {
128
+ title: 'Section heading',
129
+ headingTag: 'h2',
130
+ rtl: false,
131
+ columns: 3,
132
+ type: 'icon'
136
133
  }
137
134
  }
138
135
 
139
- const DefaultProofPoint = (args, { argTypes }) => ({
136
+ const DefaultProofPoint = (args) => ({
140
137
  components: { ProofPoints },
141
- props: Object.keys(argTypes),
142
- template: `<proof-points v-bind="$props" :item-list="dynamicItemList" />`,
138
+ setup() {
139
+ return { args };
140
+ },
141
+ template: `<proof-points v-bind="args" :item-list="dynamicItemList" />`,
143
142
  data() {
144
143
  return {
145
144
  itemListDefault,
@@ -156,9 +155,9 @@ const DefaultProofPoint = (args, { argTypes }) => ({
156
155
  }
157
156
  return array.map((item) => {
158
157
  const clone = JSON.parse(JSON.stringify(item))
159
- if (this.type === 'image') {
158
+ if (args.type === 'image') {
160
159
  clone.icon = undefined
161
- } else if (this.type === 'icon') {
160
+ } else if (args.type === 'icon') {
162
161
  clone.image = undefined
163
162
  } else {
164
163
  clone.icon = undefined
@@ -4,6 +4,14 @@ import { taxonomyTagsList } from '../../../mock/related-info'
4
4
  export default {
5
5
  title: 'Paragraphs/RelatedInformation',
6
6
  component: RelatedInformation,
7
+ tags: ['autodocs'],
8
+ argTypes: {
9
+ goToCollectionPage: {
10
+ table: {
11
+ disable: true
12
+ }
13
+ }
14
+ },
7
15
  args: {
8
16
  showTaxonomies: true,
9
17
  showTaxonomyHeading: true,
@@ -379,7 +379,8 @@ const mockData = {
379
379
 
380
380
  export default {
381
381
  title: 'SubComponents/RichText',
382
- component: RichText
382
+ component: RichText,
383
+ tags: ['autodocs'],
383
384
  }
384
385
 
385
386
  export const WYSIWYG = {
@@ -42,6 +42,7 @@ const arabicItemList = [
42
42
  export default {
43
43
  title: 'Paragraphs/ScrollSpy',
44
44
  component: ScrollSpy,
45
+ tags: ['autodocs'],
45
46
  argTypes: {
46
47
  itemList: {
47
48
  table: {disable: true}
@@ -51,7 +52,8 @@ export default {
51
52
  title: 'On this page',
52
53
  itemListEnglish: englishItemList,
53
54
  itemListArabic: arabicItemList,
54
- rtl: false
55
+ rtl: false,
56
+ scrollSpy: { element: 'scrollspy-nested', offset: 100, method: 'auto' }
55
57
  }
56
58
  }
57
59
  const DefaultContent = (args) => ({
@@ -1,10 +1,7 @@
1
1
  <template>
2
2
  <section-group class="sticky-top">
3
3
  <b-navbar class="paragraph--scrollspy" :class="{ rtl: rtl }">
4
- <b-list-group
5
- v-b-scrollspy="{ offset: 100, method: 'auto' }"
6
- class="flex-column"
7
- >
4
+ <b-list-group v-b-scrollspy="scrollSpy" class="flex-column">
8
5
  <div class="scrollspy__title">{{ title }}</div>
9
6
  <b-list-group-item
10
7
  v-for="(item, index) in itemList"
@@ -22,24 +19,41 @@
22
19
 
23
20
  <script>
24
21
  import SectionGroup from '../../Containers/SectionGroup/index.vue'
25
- import { BNavbar, BListGroup, BListGroupItem } from 'bootstrap-vue-next'
22
+ import {
23
+ BNavbar,
24
+ BListGroup,
25
+ BListGroupItem,
26
+ vBScrollspy,
27
+ } from 'bootstrap-vue-next'
26
28
 
27
29
  export default {
28
30
  name: 'ScrollSpy',
29
31
  components: { SectionGroup, BNavbar, BListGroup, BListGroupItem },
32
+ directives: { 'b-scrollspy': vBScrollspy },
30
33
  props: {
31
34
  title: {
32
35
  type: String,
33
- default: 'On this page'
36
+ default: 'On this page',
34
37
  },
35
38
  itemList: {
36
39
  type: Array,
37
- required: true
40
+ required: true,
38
41
  },
39
42
  rtl: {
40
43
  type: Boolean,
41
- default: false
42
- }
44
+ default: false,
45
+ },
46
+ scrollSpy: {
47
+ type: Object,
48
+ default: () => {
49
+ return {
50
+ element: 'body',
51
+ offset: 100,
52
+ method: 'auto',
53
+ contentQuery: '[id]',
54
+ }
55
+ },
56
+ },
43
57
  },
44
58
  methods: {
45
59
  scrollToAnchor(anchor) {
@@ -47,11 +61,11 @@ export default {
47
61
  if (anchorElement) {
48
62
  anchorElement.focus()
49
63
  anchorElement.scrollIntoView({
50
- behavior: 'smooth'
64
+ behavior: 'smooth',
51
65
  })
52
66
  }
53
- }
54
- }
67
+ },
68
+ },
55
69
  }
56
70
  </script>
57
71
 
@@ -4,6 +4,7 @@ import { mockSelectableCards } from '../../../../mock/control-selectable-cards'
4
4
  export default {
5
5
  title: 'Paragraphs/SelectableCards',
6
6
  component: SelectableCards,
7
+ tags: ['autodocs'],
7
8
  argTypes: {
8
9
  cardType: {
9
10
  table: { disable: true }
@@ -67,42 +67,45 @@ export default {
67
67
  CardGrid,
68
68
  CardGridItem,
69
69
  CardBody,
70
- CardTop
70
+ CardTop,
71
+ },
72
+ emits: {
73
+ selected: false,
71
74
  },
72
75
  props: {
73
76
  cards: {
74
77
  type: Array,
75
78
  required: true,
76
- default: () => []
79
+ default: () => [],
77
80
  },
78
81
  title: {
79
82
  type: String,
80
- default: null
83
+ default: null,
81
84
  },
82
85
  headingTag: {
83
86
  type: String,
84
- default: 'h2'
87
+ default: 'h2',
85
88
  },
86
89
  subHeading: {
87
90
  type: String,
88
- default: null
91
+ default: null,
89
92
  },
90
93
  iconIsBordered: {
91
94
  type: Boolean,
92
- default: true
95
+ default: true,
93
96
  },
94
97
  columns: {
95
98
  type: Number,
96
- default: 4
99
+ default: 4,
97
100
  },
98
101
  cardType: {
99
102
  type: String,
100
- default: null
103
+ default: null,
101
104
  },
102
105
  cardTextAlign: {
103
106
  type: String,
104
- default: null
105
- }
107
+ default: null,
108
+ },
106
109
  },
107
110
  methods: {
108
111
  selectedCardChangeFocus(card) {
@@ -110,7 +113,7 @@ export default {
110
113
  },
111
114
  clearCard() {
112
115
  this.$refs.cardgrid.clearCards()
113
- }
114
- }
116
+ },
117
+ },
115
118
  }
116
119
  </script>
@@ -57,6 +57,7 @@ const itemListAr = [
57
57
  export default {
58
58
  title: 'Paragraphs/Statistics',
59
59
  component: Statistics,
60
+ tags: ['autodocs'],
60
61
  argTypes: {
61
62
  headingTag: {
62
63
  control: 'select',
@@ -80,6 +80,7 @@ export default {
80
80
  border-radius: 10px 10px 10px 10px;
81
81
  margin-bottom: 16px;
82
82
  border-top: none;
83
+ opacity: unset;
83
84
  }
84
85
  :deep(.card-title) {
85
86
  line-height: 1.2;
@@ -4,33 +4,14 @@ import { tabbedCardsMockLinks } from '../../../mock/tabbed-cards'
4
4
  export default {
5
5
  title: 'Paragraphs/TabbedCards',
6
6
  component: TabbedCards,
7
- argTypes: {
8
- description: {
9
- control: 'text',
10
- defaultValue: 'Tabbed cards h2 heading'
11
- },
12
- heading: {
13
- control: 'text',
14
- defaultValue: 'Tabbed cards h2 heading'
15
- },
16
- tabbedCards: {
17
- control: 'object',
18
- defaultValue: tabbedCardsMockLinks
19
- },
20
- workwell: {
21
- control: 'boolean',
22
- defaultValue: false
23
- }
7
+ tags: ['autodocs'],
8
+ args: {
9
+ description: 'Tabbed cards h2 heading',
10
+ heading: 'Tabbed cards h2 heading',
11
+ tabbedCards: tabbedCardsMockLinks,
12
+ workwell: false,
13
+ rtl: false
24
14
  }
25
15
  }
26
16
 
27
- const Template = (args, { argTypes }) => ({
28
- components: { TabbedCards },
29
- props: Object.keys(argTypes),
30
- template: `
31
- <tabbed-cards
32
- v-bind="$props"
33
- /> `
34
- })
35
-
36
- export const Default = Template.bind({})
17
+ export const Default = {}
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="tabbedCards.length > 0 && loaded"
4
- :ref="`tabbedCards-${_uid}`"
4
+ :ref="`tabbedCards-${tabbedCards[0].cardid}`"
5
5
  class="tabbed-cards"
6
6
  >
7
7
  <div v-for="(r, rIndex) in rows" :key="rIndex">
@@ -20,7 +20,7 @@
20
20
  :content-class="`tabbed-cards-content`"
21
21
  class="tabbed-cards__grid"
22
22
  @selected="(card, cardIndex) => setCurrentRow(rIndex, card)"
23
- @focussed="focussed($event)"
23
+ @keydown.tab="focussed($event)"
24
24
  >
25
25
  <template v-slot:cardItem="{ card }">
26
26
  <card-grid-item
@@ -28,26 +28,25 @@
28
28
  :show-divider="false"
29
29
  :header-size="'large'"
30
30
  class="tabbed-card"
31
- :class="card === selectedCard ? 'isSelected' : ''"
31
+ :class="checkSelectedCard(card) ? 'isSelected' : ''"
32
32
  :card-padding="'small'"
33
33
  :card-header-title="card.title"
34
- :caret="card === selectedCard ? 'up' : 'down'"
34
+ :caret="checkSelectedCard(card) ? 'up' : 'down'"
35
35
  :caret-position="'bottom'"
36
36
  :rtl="rtl || card.rtl"
37
37
  :description="card.text"
38
38
  :button-role="'link'"
39
- :is-selected="card === selectedCard"
39
+ :is-selected="checkSelectedCard(card)"
40
40
  :is-expandable="true"
41
41
  />
42
42
  </template>
43
- <template
44
- v-if="selectedRow === rIndex && selectedCard"
45
- v-slot:cardGridFooter
46
- >
47
- <column class="listgroup-column">
43
+ <template v-slot:cardGridFooter>
44
+ <column
45
+ v-if="selectedRow === rIndex && selectedCard"
46
+ class="listgroup-column"
47
+ >
48
48
  <div ref="listgroup" class="tabbed-cards__listGroup">
49
- <component
50
- :is="ListGroupComponent"
49
+ <list-group
51
50
  :list="selectedCard.links"
52
51
  :title="selectedCard.linksTitle"
53
52
  :title-tag="selectedCard.linksTag"
@@ -69,48 +68,48 @@ import CardGrid from './../../Common/CardGrid/index.vue'
69
68
  import CardGridItem from './../../Common/CardGridItem/index.vue'
70
69
  import Column from './../../Containers/Column/index.vue'
71
70
  import Icon from './../../SubComponents/Icon/index.vue'
71
+ import ListGroup from './../../Paragraphs/ListGroup/index.vue'
72
+ import VueScrollTo from 'vue-scrollto'
73
+ import { nextTick } from 'vue'
72
74
 
73
75
  export default {
74
76
  name: 'TabbedCards',
75
- components: { CardGrid, CardGridItem, Icon, Column },
77
+ components: { CardGrid, CardGridItem, Icon, Column, ListGroup },
76
78
  props: {
77
79
  heading: {
78
80
  type: String,
79
- default: ''
81
+ default: '',
80
82
  },
81
83
  description: {
82
84
  type: String,
83
- default: ''
85
+ default: '',
84
86
  },
85
87
  tabbedCards: {
86
88
  type: Array,
87
- default: () => []
89
+ default: () => [],
88
90
  },
89
91
  rtl: {
90
92
  type: Boolean,
91
- default: false
93
+ default: false,
92
94
  },
93
95
  workwell: {
94
96
  type: Boolean,
95
- default: false
96
- }
97
+ default: false,
98
+ },
97
99
  },
98
100
  data() {
99
101
  return {
100
102
  selectedCard: undefined,
101
103
  selectedRow: undefined,
102
104
  screenWidth: 0,
103
- loaded: false
105
+ loaded: false,
106
+ tabList: null,
104
107
  }
105
108
  },
106
109
  computed: {
107
110
  rows() {
108
- let r = Math.floor(this.tabbedCards.length / this.cols)
109
- if (r % 1 != 0) {
110
- return r
111
- } else {
112
- return r + 1
113
- }
111
+ let r = Math.ceil(this.tabbedCards.length / this.cols)
112
+ return r
114
113
  },
115
114
  cols() {
116
115
  if (this.screenWidth < 575.98) {
@@ -121,18 +120,17 @@ export default {
121
120
  return 3
122
121
  }
123
122
  },
124
- ListGroupComponent() {
125
- //List group component import to fix storybook bug
126
- return () => import('./../ListGroup/index.vue')
127
- }
128
123
  },
129
124
  mounted() {
130
125
  window.addEventListener('resize', this.updateScreenWidth)
131
126
  this.screenWidth = document.documentElement.clientWidth
132
- this.$root.$on('last-focus-out', () => {
133
- this.selectedCard = null
134
- this.selectedRow = null
135
- })
127
+ if (this.$bus) {
128
+ this.$bus.$on('last-focus-out', () => {
129
+ this.selectedCard = null
130
+ this.selectedRow = null
131
+ })
132
+ }
133
+
136
134
  this.loaded = true
137
135
  },
138
136
  beforeDestroy() {
@@ -140,7 +138,7 @@ export default {
140
138
  },
141
139
  methods: {
142
140
  getCardIdPrefix(rIndex, cardIndex) {
143
- const cardPrefix = `tabbedcards-${this._uid}-r-${rIndex}`
141
+ const cardPrefix = `tabbedcards-${this.tabbedCards[0].cardid}-r-${rIndex}`
144
142
  if (cardIndex !== null && cardIndex !== undefined) {
145
143
  return `${cardPrefix}-${cardIndex}`
146
144
  }
@@ -151,9 +149,13 @@ export default {
151
149
  let end = start + this.cols
152
150
  return rows.slice(start, end)
153
151
  },
152
+ checkSelectedCard(card) {
153
+ return JSON.stringify(card) === JSON.stringify(this.selectedCard)
154
+ },
154
155
  setCurrentRow(rowIndex, card) {
155
156
  const sameCardSelected =
156
- card.selectedCard === this.selectedCard || !card.selectedCard
157
+ this.checkSelectedCard(card.selectedCard) || !card.selectedCard
158
+
157
159
  this.selectedCard = null
158
160
  this.selectedRow = null
159
161
  const cardGrids = this.$refs.cardgrid || []
@@ -162,17 +164,17 @@ export default {
162
164
  cardGrid.clearCards()
163
165
  }
164
166
  })
167
+ this.tabList = this.getFocusElements()
165
168
  setTimeout(() => {
166
169
  if (window && !sameCardSelected) {
167
170
  this.selectedCard = card.selectedCard
168
171
  this.selectedRow = rowIndex
169
- let VueScrollTo = require('vue-scrollto')
170
172
  let options = {
171
173
  container: 'body',
172
174
  easing: 'ease-in',
173
175
  offset: -100,
174
176
  force: true,
175
- cancelable: true
177
+ cancelable: true,
176
178
  }
177
179
  setTimeout(() => {
178
180
  const listGroup = this.$refs.listgroup[0]
@@ -192,68 +194,37 @@ export default {
192
194
  return cols
193
195
  },
194
196
  focussed(ev) {
195
- if (ev.shiftKey) {
196
- let prevTabbedCard = ev.target?.parentElement?.parentElement?.previousSibling?.getElementsByTagName(
197
- 'button'
198
- )[0]
199
- if (
200
- prevTabbedCard &&
201
- prevTabbedCard.getAttribute('aria-expanded') === 'true'
202
- ) {
203
- ev.preventDefault()
204
- const lG = this.$refs.listgroup
205
- let itemsOfLG = lG[0].getElementsByTagName('button')
206
- itemsOfLG[itemsOfLG.length - 1].focus()
207
- }
208
- return
209
- }
210
- const lG = this.$refs.listgroup
211
- const isListGroupOpen = Array.isArray(lG) && lG.length > 0
212
- const cardIsSelected = ev.target.parentElement.classList.contains(
213
- 'isSelected'
214
- )
215
- if (cardIsSelected && isListGroupOpen) {
216
- ev.preventDefault()
217
- lG[0].getElementsByTagName('button')[0].focus()
218
- } else if (!cardIsSelected && isListGroupOpen) {
219
- ev.preventDefault()
220
- let nextTabbedCard = ev.target?.parentElement?.parentElement?.nextSibling?.getElementsByTagName(
221
- 'button'
222
- )[0]
223
- if (nextTabbedCard) {
224
- nextTabbedCard.focus()
225
- } else {
226
- let itemsOfLG = lG[0].getElementsByTagName('button')
227
- let lastItemOfLG = itemsOfLG[itemsOfLG.length - 1]
228
- let nextFocusElement = this.focusNextElement(false, lastItemOfLG)
229
- nextFocusElement.focus()
230
- }
197
+ ev.preventDefault()
198
+ let activeElem = ev.target
199
+ if (!this.tabList) {
200
+ this.tabList = this.getFocusElements()
201
+ } else {
202
+ let newList = this.getFocusElements().filter(
203
+ (item) => this.tabList.indexOf(item) == -1,
204
+ )
205
+ this.tabList.splice(this.tabList.indexOf(activeElem) + 1, 0, ...newList)
231
206
  }
232
- // if its the next card from the selected
207
+ let newTab = ev.shiftKey
208
+ ? this.tabList[this.tabList.indexOf(activeElem) - 1] ||
209
+ this.tabList[this.tabList.length - 1]
210
+ : this.tabList[this.tabList.indexOf(activeElem) + 1] || this.tabList[0]
211
+ newTab.focus()
233
212
  },
234
- focusNextElement(reverse, activeElem) {
235
- /*check if an element is defined or use activeElement*/
236
- activeElem =
237
- activeElem instanceof HTMLElement ? activeElem : document.activeElement
238
213
 
214
+ getFocusElements() {
239
215
  let queryString = [
240
216
  'a:not([disabled]):not([tabindex="-1"])',
241
217
  'button:not([disabled]):not([tabindex="-1"])',
242
218
  'input:not([disabled]):not([tabindex="-1"])',
243
219
  'select:not([disabled]):not([tabindex="-1"])',
244
- '[tabindex]:not([disabled]):not([tabindex="-1"])'
220
+ '[tabindex]:not([disabled]):not([tabindex="-1"])',
245
221
  /* add custom queries here */
246
222
  ].join(','),
247
223
  queryResult = Array.prototype.filter.call(
248
224
  document.querySelectorAll(queryString),
249
225
  (elem) => {
250
- /*check for visibility while always include the current activeElement*/
251
- return (
252
- elem.offsetWidth > 0 ||
253
- elem.offsetHeight > 0 ||
254
- elem === activeElem
255
- )
256
- }
226
+ return elem.offsetWidth > 0 || elem.offsetHeight > 0
227
+ },
257
228
  ),
258
229
  indexedList = queryResult
259
230
  .slice()
@@ -267,30 +238,24 @@ export default {
267
238
  ? a.tabIndex < b.tabIndex
268
239
  ? -1
269
240
  : b.tabIndex < a.tabIndex
270
- ? 1
271
- : 0
241
+ ? 1
242
+ : 0
272
243
  : a.tabIndex != 0
273
- ? -1
274
- : b.tabIndex != 0
275
- ? 1
276
- : 0
244
+ ? -1
245
+ : b.tabIndex != 0
246
+ ? 1
247
+ : 0
277
248
  }),
278
249
  focusable = [].concat(
279
250
  indexedList,
280
251
  queryResult.filter((elem) => {
281
252
  /* filter out all indexes above 0 */
282
253
  return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
283
- })
254
+ }),
284
255
  )
285
-
286
- /* if reverse is true return the previous focusable element
287
- if reverse is false return the next focusable element */
288
- return reverse
289
- ? focusable[focusable.indexOf(activeElem) - 1] ||
290
- focusable[focusable.length - 1]
291
- : focusable[focusable.indexOf(activeElem) + 1] || focusable[0]
292
- }
293
- }
256
+ return focusable
257
+ },
258
+ },
294
259
  }
295
260
  </script>
296
261
  <style lang="scss" scoped>
@@ -48,6 +48,7 @@ const mockData = [
48
48
  export default {
49
49
  title: 'Paragraphs/Tabs',
50
50
  component: Tabs,
51
+ tags: ['autodocs'],
51
52
  args: {
52
53
  items: mockData,
53
54
  rtl: false,