@worksafevictoria/wcl7.5 1.1.0-beta.7 → 1.1.0-beta.71

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 (315) hide show
  1. package/.env +1 -3
  2. package/.storybook/preview.js +2 -2
  3. package/README.md +4 -4
  4. package/ci/build/build_validation.yml +2 -2
  5. package/ci/release/beta.yml +4 -3
  6. package/ci/release/master.yml +4 -3
  7. package/jest.config.js +10 -8
  8. package/lib/utility.js +1 -1
  9. package/package.json +13 -12
  10. package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
  11. package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
  12. package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
  13. package/src/assets/icons/WSV-reversed.svg +20 -0
  14. package/src/assets/icons/contrast.svg +4 -0
  15. package/src/assets/icons/lang.svg +13 -0
  16. package/src/assets/icons/login.svg +4 -0
  17. package/src/components/Common/CardGrid/cardgrid.stories.js +4 -57
  18. package/src/components/Common/CardGrid/index.vue +23 -3
  19. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +1 -1
  20. package/src/components/Common/CardGridItem/index.vue +21 -5
  21. package/src/components/Containers/Carousel/index.stories.js +30 -0
  22. package/src/components/Containers/Carousel/index.vue +165 -0
  23. package/src/components/Containers/HomepageHeader/index.vue +26 -12
  24. package/src/components/Containers/HomepageHeaderNew/index.stories.js +75 -0
  25. package/src/components/Containers/HomepageHeaderNew/index.vue +198 -0
  26. package/src/components/Containers/SectionGroup/index.vue +4 -4
  27. package/src/components/Containers/Subheader/index.vue +25 -19
  28. package/src/components/Global/AlertStrip/index.stories.js +1 -0
  29. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
  30. package/src/components/Global/AppFooter/index.stories.js +1 -0
  31. package/src/components/Global/AppFooter/index.vue +30 -28
  32. package/src/components/Global/AppHeader/index.vue +49 -52
  33. package/src/components/Global/AppHeaderNew/ModalSearch/index.vue +71 -0
  34. package/src/components/Global/AppHeaderNew/ModalSearch/styles.scss +43 -0
  35. package/src/components/Global/AppHeaderNew/includes.scss +71 -0
  36. package/src/components/Global/AppHeaderNew/index.stories.js +74 -0
  37. package/src/components/Global/AppHeaderNew/index.vue +1176 -0
  38. package/src/components/Global/AppHeaderNew/mobile.scss +269 -0
  39. package/src/components/Global/AppHeaderNew/styles.scss +647 -0
  40. package/src/components/Global/ContrastMode/index.stories.js +1 -0
  41. package/src/components/Global/ContrastMode/index.vue +1 -1
  42. package/src/components/Global/Cookies/index.vue +141 -141
  43. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +2 -1
  44. package/src/components/Global/GlobalNotice/index.stories.js +7 -1
  45. package/src/components/Global/GlobalNotice/index.vue +23 -2
  46. package/src/components/Global/HeroHeader/index.stories.js +3 -4
  47. package/src/components/Global/HeroHeader/index.vue +28 -29
  48. package/src/components/Global/ProgressBar/index.stories.js +6 -16
  49. package/src/components/Global/SocialShare/index.vue +3 -2
  50. package/src/components/Global/Strip/index.stories.js +1 -17
  51. package/src/components/Global/Strip/index.vue +8 -4
  52. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +21 -17
  53. package/src/components/Paragraphs/Accordion/index.stories.js +1 -0
  54. package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
  55. package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
  56. package/src/components/Paragraphs/BrowseContent/index.vue +42 -31
  57. package/src/components/Paragraphs/Calculator/Constants.js +2 -2
  58. package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
  59. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +3 -3
  60. package/src/components/Paragraphs/Directory/Records/HSCP/index.stories.js +32 -0
  61. package/src/components/Paragraphs/Directory/Records/HSCP/index.vue +213 -0
  62. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +5 -5
  63. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +2 -2
  64. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
  65. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
  66. package/src/components/Paragraphs/Directory/Records/index.vue +31 -10
  67. package/src/components/Paragraphs/Directory/Records/styles.scss +1 -0
  68. package/src/components/Paragraphs/Directory/constants.js +23 -5
  69. package/src/components/Paragraphs/Directory/index.vue +45 -34
  70. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +35 -39
  71. package/src/components/Paragraphs/ListGroup/index.vue +55 -46
  72. package/src/components/Paragraphs/ListGroup/list-group.stories.js +35 -31
  73. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +34 -30
  74. package/src/components/Paragraphs/MarketingBanner/index.stories.js +4 -18
  75. package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
  76. package/src/components/Paragraphs/RelatedInformation/index.stories.js +11 -21
  77. package/src/components/Paragraphs/RelatedInformation/index.vue +12 -6
  78. package/src/components/Paragraphs/RelatedInformation/styles.scss +1 -3
  79. package/src/components/Paragraphs/RichText/index.stories.js +2 -1
  80. package/src/components/Paragraphs/ScrollSpy/index.stories.js +20 -26
  81. package/src/components/Paragraphs/ScrollSpy/index.vue +27 -12
  82. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +1 -0
  83. package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
  84. package/src/components/Paragraphs/Statistics/index.stories.js +1 -0
  85. package/src/components/Paragraphs/Statistics/index.vue +1 -0
  86. package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
  87. package/src/components/Paragraphs/TabbedCards/index.vue +58 -92
  88. package/src/components/Paragraphs/Tabs/index.stories.js +1 -0
  89. package/src/components/Paragraphs/TabulatedData/index.stories.js +6 -5
  90. package/src/components/Paragraphs/TabulatedData/index.vue +63 -35
  91. package/src/components/Paragraphs/TaskFinder/index.stories.js +9 -32
  92. package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
  93. package/src/components/Paragraphs/TaskFinder/pdf/index.vue +1 -1
  94. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
  95. package/src/components/Paragraphs/TextMedia/index.stories.js +1 -0
  96. package/src/components/Paragraphs/TextMedia/index.vue +5 -1
  97. package/src/components/Paragraphs/VideoGrid/index.stories.js +1 -0
  98. package/src/components/Paragraphs/VideoPlayer/index.stories.js +1 -13
  99. package/src/components/Paragraphs/Webform/index.stories.js +94 -57
  100. package/src/components/Paragraphs/Webform/index.vue +11 -8
  101. package/src/components/SubComponents/Breadcrumb/index.stories.js +3 -11
  102. package/src/components/SubComponents/CardGroup/index.stories.js +1 -30
  103. package/src/components/SubComponents/CardGroup/index.vue +33 -27
  104. package/src/components/SubComponents/CtaButton/index.stories.js +1 -24
  105. package/src/components/SubComponents/CtaButton/index.vue +27 -25
  106. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
  107. package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
  108. package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
  109. package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
  110. package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
  111. package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
  112. package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
  113. package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
  114. package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
  115. package/src/components/SubComponents/FormInstance/components/handler/index.vue +208 -0
  116. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +282 -0
  117. package/src/components/SubComponents/FormInstance/index.test.js +65 -0
  118. package/src/components/SubComponents/FormInstance/index.vue +55 -6
  119. package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
  120. package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
  121. package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
  122. package/src/components/SubComponents/FormInstance/models/overrides/address.js +141 -0
  123. package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
  124. package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
  125. package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
  126. package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
  127. package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
  128. package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
  129. package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
  130. package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
  131. package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
  132. package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
  133. package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
  134. package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
  135. package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
  136. package/src/components/SubComponents/FormInstance/models/overrides/file.js +56 -0
  137. package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
  138. package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
  139. package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
  140. package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
  141. package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
  142. package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
  143. package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
  144. package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
  145. package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
  146. package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
  147. package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
  148. package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
  149. package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
  150. package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
  151. package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
  152. package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
  153. package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
  154. package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
  155. package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
  156. package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
  157. package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
  158. package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
  159. package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
  160. package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
  161. package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
  162. package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
  163. package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
  164. package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
  165. package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
  166. package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
  167. package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
  168. package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
  169. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
  170. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +61 -0
  171. package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
  172. package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
  173. package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
  174. package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
  175. package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
  176. package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
  177. package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
  178. package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
  179. package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
  180. package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
  181. package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
  182. package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
  183. package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
  184. package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
  185. package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
  186. package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
  187. package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
  188. package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
  189. package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
  190. package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
  191. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
  192. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
  193. package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
  194. package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
  195. package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
  196. package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
  197. package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
  198. package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
  199. package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
  200. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
  201. package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
  202. package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
  203. package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
  204. package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
  205. package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
  206. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
  207. package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
  208. package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
  209. package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
  210. package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
  211. package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
  212. package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
  213. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
  214. package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
  215. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
  216. package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
  217. package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
  218. package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
  219. package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
  220. package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
  221. package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
  222. package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
  223. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
  224. package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
  225. package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
  226. package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
  227. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
  228. package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
  229. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
  230. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
  231. package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
  232. package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
  233. package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
  234. package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
  235. package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
  236. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
  237. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
  238. package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
  239. package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
  240. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
  241. package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
  242. package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
  243. package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
  244. package/src/components/SubComponents/FormInstance/style.scss +185 -0
  245. package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
  246. package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
  247. package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
  248. package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
  249. package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
  250. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
  251. package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
  252. package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
  253. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
  254. package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
  255. package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
  256. package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
  257. package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
  258. package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
  259. package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
  260. package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
  261. package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
  262. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
  263. package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
  264. package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
  265. package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
  266. package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
  267. package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
  268. package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
  269. package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
  270. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
  271. package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
  272. package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
  273. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
  274. package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
  275. package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
  276. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
  277. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
  278. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
  279. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
  280. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
  281. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
  282. package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
  283. package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
  284. package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
  285. package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
  286. package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
  287. package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
  288. package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
  289. package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
  290. package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
  291. package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
  292. package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
  293. package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
  294. package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
  295. package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
  296. package/src/components/SubComponents/FormInstance/tests/url.test.js +45 -0
  297. package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
  298. package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
  299. package/src/components/SubComponents/Icon/index.stories.js +1 -6
  300. package/src/components/SubComponents/MediaPlayer/index.stories.js +1 -6
  301. package/src/components/SubComponents/Pagination/index.stories.js +3 -8
  302. package/src/components/SubComponents/ResourceGroup/List/index.stories.js +3 -2
  303. package/src/components/SubComponents/ResourceGroup/index.vue +206 -173
  304. package/src/components/SubComponents/Search/index.vue +4 -4
  305. package/src/components/SubComponents/SingleImage/index.stories.js +2 -16
  306. package/src/components/SubComponents/VideoThumbnail/index.stories.js +1 -0
  307. package/src/components/SubComponents/VideoThumbnail/index.vue +4 -7
  308. package/src/includes/scss/mixins/src/grid.scss +4 -2
  309. package/src/includes/scss/mixins/src/units.scss +25 -4
  310. package/src/main.js +2 -10
  311. package/src/mock/app-header-new.js +715 -0
  312. package/src/mock/carousel-items.js +57 -0
  313. package/src/mock/jest.fileMock.js +1 -0
  314. package/vite.config.js +28 -15
  315. package/src/components/SubComponents/FormInstance/index.stories.js +0 -8
@@ -1,6 +1,7 @@
1
1
  import ScrollSpy from './index.vue'
2
+ import { BCol, BRow, BContainer } from 'bootstrap-vue-next'
2
3
 
3
- const itemList = [
4
+ const englishItemList = [
4
5
  {
5
6
  text: 'Section one heading',
6
7
  id: 'item-1'
@@ -41,31 +42,25 @@ const arabicItemList = [
41
42
  export default {
42
43
  title: 'Paragraphs/ScrollSpy',
43
44
  component: ScrollSpy,
45
+ tags: ['autodocs'],
44
46
  argTypes: {
45
- title: {
46
- control: 'text',
47
- defaultValue: 'On this page'
48
- },
49
47
  itemList: {
50
- control: 'array'
51
- },
52
- itemListEnglish: {
53
- control: 'array',
54
- defaultValue: itemList
55
- },
56
- itemListArabic: {
57
- control: 'array',
58
- defaultValue: arabicItemList
59
- },
60
- rtl: {
61
- control: 'boolean',
62
- defaultValue: false
48
+ table: {disable: true}
49
+ }
50
+ },
51
+ args: {
52
+ title: 'On this page',
53
+ itemListEnglish: englishItemList,
54
+ itemListArabic: arabicItemList,
55
+ rtl: false,
56
+ scrollSpy: { element: 'scrollspy-nested', offset: 100, method: 'auto' }
63
57
  }
64
- }
65
58
  }
66
- const DefaultContent = (args, { argTypes }) => ({
67
- components: { ScrollSpy },
68
- props: Object.keys(argTypes),
59
+ const DefaultContent = (args) => ({
60
+ components: { ScrollSpy, BCol, BRow, BContainer },
61
+ setup() {
62
+ return { args }
63
+ },
69
64
  data() {
70
65
  return {
71
66
  text: `
@@ -79,7 +74,7 @@ const DefaultContent = (args, { argTypes }) => ({
79
74
  ipsum commodo tempor sunt in proident.
80
75
  `,
81
76
  arabicText: `هنالك العديد من الأنواع المتوفرة لنصوص لوريم إيبسوم، ولكن الغالبية تم تعديلها بشكل ما عبر إدخال بعض النوادر أو الكلمات العشوائية إلى النص. إن كنت تريد أن تستخدم نص لوريم إيبسوم ما، عليك أن تتحقق أولاً أن ليس هناك أي كلمات أو عبارات محرجة أو غير لائقة مخبأة في هذا النص. بينما تعمل جميع مولّدات نصوص لوريم إيبسوم على الإنترنت على إعادة تكرار مقاطع من نص لوريم إيبسوم نفسه عدة مرات بما تتطلبه الحاجة، يقوم مولّدنا هذا باستخدام كلمات من قاموس يحوي على أكثر من 200 كلمة لا تينية، مضاف إليها مجموعة من الجمل النموذجية، لتكوين نص لوريم إيبسوم ذو شكل منطقي قريب إلى النص الحقيقي. وبالتالي يكون النص الناتح خالي من التكرار، أو أي كلمات أو عبارات غير لائقة أو ما شابه. وهذا ما يجعله أول مولّد نص لوريم إيبسوم حقيقي على الإنترنت.`,
82
- itemList,
77
+ englishItemList,
83
78
  arabicItemList
84
79
  }
85
80
  },
@@ -126,7 +121,7 @@ const DefaultContent = (args, { argTypes }) => ({
126
121
  </div>
127
122
  </b-col>
128
123
  <b-col cols="4">
129
- <scroll-spy v-bind="$props" :item-list="itemListEnglish" />
124
+ <scroll-spy v-bind="args" :item-list="args.itemListEnglish" />
130
125
  </b-col>
131
126
  </b-row>
132
127
 
@@ -174,11 +169,10 @@ const DefaultContent = (args, { argTypes }) => ({
174
169
  </div>
175
170
  </b-col>
176
171
  <b-col cols="4">
177
- <scroll-spy v-bind="$props" :item-list="arabicItemList" />
172
+ <scroll-spy v-bind="args" :item-list="args.arabicItemList" />
178
173
  </b-col>
179
174
  </b-row>
180
175
  </b-container>`
181
176
  })
182
177
 
183
178
  export const Default = DefaultContent.bind({})
184
- Default.parameters = { controls: { exclude: ['itemList'] } }
@@ -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,23 +19,41 @@
22
19
 
23
20
  <script>
24
21
  import SectionGroup from '../../Containers/SectionGroup/index.vue'
22
+ import {
23
+ BNavbar,
24
+ BListGroup,
25
+ BListGroupItem,
26
+ vBScrollspy,
27
+ } from 'bootstrap-vue-next'
25
28
 
26
29
  export default {
27
30
  name: 'ScrollSpy',
28
- components: { SectionGroup },
31
+ components: { SectionGroup, BNavbar, BListGroup, BListGroupItem },
32
+ directives: { 'b-scrollspy': vBScrollspy },
29
33
  props: {
30
34
  title: {
31
35
  type: String,
32
- default: 'On this page'
36
+ default: 'On this page',
33
37
  },
34
38
  itemList: {
35
39
  type: Array,
36
- required: true
40
+ required: true,
37
41
  },
38
42
  rtl: {
39
43
  type: Boolean,
40
- default: false
41
- }
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
+ },
42
57
  },
43
58
  methods: {
44
59
  scrollToAnchor(anchor) {
@@ -46,11 +61,11 @@ export default {
46
61
  if (anchorElement) {
47
62
  anchorElement.focus()
48
63
  anchorElement.scrollIntoView({
49
- behavior: 'smooth'
64
+ behavior: 'smooth',
50
65
  })
51
66
  }
52
- }
53
- }
67
+ },
68
+ },
54
69
  }
55
70
  </script>
56
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 = {}
@@ -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
@@ -40,14 +40,13 @@
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,38 +68,42 @@ 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: {
@@ -121,18 +124,17 @@ export default {
121
124
  return 3
122
125
  }
123
126
  },
124
- ListGroupComponent() {
125
- //List group component import to fix storybook bug
126
- return () => import('./../ListGroup/index.vue')
127
- }
128
127
  },
129
128
  mounted() {
130
129
  window.addEventListener('resize', this.updateScreenWidth)
131
130
  this.screenWidth = document.documentElement.clientWidth
132
- this.$root.$on('last-focus-out', () => {
133
- this.selectedCard = null
134
- this.selectedRow = null
135
- })
131
+ if (this.$bus) {
132
+ this.$bus.$on('last-focus-out', () => {
133
+ this.selectedCard = null
134
+ this.selectedRow = null
135
+ })
136
+ }
137
+
136
138
  this.loaded = true
137
139
  },
138
140
  beforeDestroy() {
@@ -151,7 +153,7 @@ export default {
151
153
  let end = start + this.cols
152
154
  return rows.slice(start, end)
153
155
  },
154
- setCurrentRow(rowIndex, card) {
156
+ async setCurrentRow(rowIndex, card) {
155
157
  const sameCardSelected =
156
158
  card.selectedCard === this.selectedCard || !card.selectedCard
157
159
  this.selectedCard = null
@@ -162,17 +164,18 @@ export default {
162
164
  cardGrid.clearCards()
163
165
  }
164
166
  })
167
+ await nextTick()
168
+ this.tabList = this.getFocusElements()
165
169
  setTimeout(() => {
166
170
  if (window && !sameCardSelected) {
167
171
  this.selectedCard = card.selectedCard
168
172
  this.selectedRow = rowIndex
169
- let VueScrollTo = require('vue-scrollto')
170
173
  let options = {
171
174
  container: 'body',
172
175
  easing: 'ease-in',
173
176
  offset: -100,
174
177
  force: true,
175
- cancelable: true
178
+ cancelable: true,
176
179
  }
177
180
  setTimeout(() => {
178
181
  const listGroup = this.$refs.listgroup[0]
@@ -192,68 +195,37 @@ export default {
192
195
  return cols
193
196
  },
194
197
  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
- }
198
+ ev.preventDefault()
199
+ let activeElem = ev.target
200
+ if (!this.tabList) {
201
+ this.tabList = this.getFocusElements()
202
+ } else {
203
+ let newList = this.getFocusElements().filter(
204
+ (item) => this.tabList.indexOf(item) == -1,
205
+ )
206
+ this.tabList.splice(this.tabList.indexOf(activeElem) + 1, 0, ...newList)
231
207
  }
232
- // if its the next card from the selected
208
+ let newTab = ev.shiftKey
209
+ ? this.tabList[this.tabList.indexOf(activeElem) - 1] ||
210
+ this.tabList[this.tabList.length - 1]
211
+ : this.tabList[this.tabList.indexOf(activeElem) + 1] || this.tabList[0]
212
+ newTab.focus()
233
213
  },
234
- focusNextElement(reverse, activeElem) {
235
- /*check if an element is defined or use activeElement*/
236
- activeElem =
237
- activeElem instanceof HTMLElement ? activeElem : document.activeElement
238
214
 
215
+ getFocusElements() {
239
216
  let queryString = [
240
217
  'a:not([disabled]):not([tabindex="-1"])',
241
218
  'button:not([disabled]):not([tabindex="-1"])',
242
219
  'input:not([disabled]):not([tabindex="-1"])',
243
220
  'select:not([disabled]):not([tabindex="-1"])',
244
- '[tabindex]:not([disabled]):not([tabindex="-1"])'
221
+ '[tabindex]:not([disabled]):not([tabindex="-1"])',
245
222
  /* add custom queries here */
246
223
  ].join(','),
247
224
  queryResult = Array.prototype.filter.call(
248
225
  document.querySelectorAll(queryString),
249
226
  (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
- }
227
+ return elem.offsetWidth > 0 || elem.offsetHeight > 0
228
+ },
257
229
  ),
258
230
  indexedList = queryResult
259
231
  .slice()
@@ -267,30 +239,24 @@ export default {
267
239
  ? a.tabIndex < b.tabIndex
268
240
  ? -1
269
241
  : b.tabIndex < a.tabIndex
270
- ? 1
271
- : 0
242
+ ? 1
243
+ : 0
272
244
  : a.tabIndex != 0
273
- ? -1
274
- : b.tabIndex != 0
275
- ? 1
276
- : 0
245
+ ? -1
246
+ : b.tabIndex != 0
247
+ ? 1
248
+ : 0
277
249
  }),
278
250
  focusable = [].concat(
279
251
  indexedList,
280
252
  queryResult.filter((elem) => {
281
253
  /* filter out all indexes above 0 */
282
254
  return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
283
- })
255
+ }),
284
256
  )
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
- }
257
+ return focusable
258
+ },
259
+ },
294
260
  }
295
261
  </script>
296
262
  <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,
@@ -4,20 +4,21 @@ import { fields, fieldsAr, items, itemsAr } from './Constants'
4
4
  export default {
5
5
  title: 'Paragraphs/TabulatedData',
6
6
  component: TabulatedData,
7
+ tags: ['autodocs'],
7
8
  data() {
8
9
  return {
9
10
  TabulatedData,
10
11
  fields,
11
12
  fieldsAr,
12
13
  items,
13
- itemsAr
14
+ itemsAr,
14
15
  }
15
16
  },
16
17
  argTypes: {
17
18
  isFixedWidth: {
18
19
  control: 'boolean',
19
- table: { disable: true }
20
- }
20
+ table: { disable: true },
21
+ },
21
22
  },
22
23
  args: {
23
24
  rtl: false,
@@ -27,13 +28,13 @@ export default {
27
28
  fields: fields.links,
28
29
  rtlFields: fieldsAr.links,
29
30
  caption: 'The table caption',
30
- initialSortBy: 'rank'
31
+ sortBy: 'rank',
31
32
  },
32
33
  template: `<tabulated-data
33
34
  v-bind="args"
34
35
  :items="rtl ? args.rtlItems : args.items"
35
36
  :fields="rtl ? args.rtlFields : args.fields"
36
- /> `
37
+ /> `,
37
38
  }
38
39
 
39
40
  export const Default = {}