@worksafevictoria/wcl7.5 1.1.0-beta.4 → 1.1.0-beta.40

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 (269) hide show
  1. package/.storybook/preview.js +5 -0
  2. package/README.md +4 -4
  3. package/ci/build/build_validation.yml +2 -2
  4. package/ci/release/beta.yml +4 -3
  5. package/ci/release/master.yml +4 -3
  6. package/jest.config.js +10 -8
  7. package/package.json +13 -10
  8. package/src/components/Common/CardGrid/cardgrid.stories.js +4 -57
  9. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +1 -1
  10. package/src/components/Common/CardGridItem/index.vue +9 -3
  11. package/src/components/Containers/HomepageHeader/index.vue +26 -12
  12. package/src/components/Global/AlertStrip/index.stories.js +1 -0
  13. package/src/components/Global/AppFooter/index.stories.js +1 -0
  14. package/src/components/Global/AppHeader/index.vue +52 -54
  15. package/src/components/Global/ContrastMode/index.stories.js +1 -0
  16. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +2 -1
  17. package/src/components/Global/GlobalNotice/index.stories.js +7 -1
  18. package/src/components/Global/HeroHeader/index.stories.js +3 -4
  19. package/src/components/Global/HeroHeader/index.vue +34 -34
  20. package/src/components/Global/ProgressBar/index.stories.js +6 -16
  21. package/src/components/Global/SocialShare/index.vue +2 -1
  22. package/src/components/Global/Strip/index.stories.js +1 -17
  23. package/src/components/Global/Strip/index.vue +8 -4
  24. package/src/components/Paragraphs/Accordion/index.stories.js +1 -0
  25. package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
  26. package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
  27. package/src/components/Paragraphs/BrowseContent/index.vue +45 -31
  28. package/src/components/Paragraphs/Calculator/Constants.js +2 -2
  29. package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
  30. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +3 -3
  31. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +3 -3
  32. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +2 -2
  33. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
  34. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
  35. package/src/components/Paragraphs/Directory/Records/index.vue +3 -3
  36. package/src/components/Paragraphs/Directory/index.vue +42 -31
  37. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +35 -39
  38. package/src/components/Paragraphs/ListGroup/list-group.stories.js +35 -31
  39. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +34 -30
  40. package/src/components/Paragraphs/MarketingBanner/index.stories.js +4 -18
  41. package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
  42. package/src/components/Paragraphs/RelatedInformation/index.stories.js +11 -21
  43. package/src/components/Paragraphs/RelatedInformation/index.vue +12 -6
  44. package/src/components/Paragraphs/RelatedInformation/styles.scss +1 -3
  45. package/src/components/Paragraphs/RichText/index.stories.js +2 -1
  46. package/src/components/Paragraphs/ScrollSpy/index.stories.js +20 -26
  47. package/src/components/Paragraphs/ScrollSpy/index.vue +8 -2
  48. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +1 -0
  49. package/src/components/Paragraphs/Statistics/index.stories.js +1 -0
  50. package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
  51. package/src/components/Paragraphs/TabbedCards/index.vue +29 -67
  52. package/src/components/Paragraphs/Tabs/index.stories.js +1 -0
  53. package/src/components/Paragraphs/TabulatedData/index.stories.js +1 -0
  54. package/src/components/Paragraphs/TabulatedData/index.vue +12 -7
  55. package/src/components/Paragraphs/TaskFinder/index.stories.js +9 -32
  56. package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
  57. package/src/components/Paragraphs/TaskFinder/pdf/index.vue +1 -1
  58. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
  59. package/src/components/Paragraphs/TextMedia/index.stories.js +13 -61
  60. package/src/components/Paragraphs/VideoGrid/index.stories.js +17 -32
  61. package/src/components/Paragraphs/VideoPlayer/index.stories.js +1 -13
  62. package/src/components/Paragraphs/Webform/index.stories.js +56 -32
  63. package/src/components/Paragraphs/Webform/index.vue +11 -8
  64. package/src/components/SubComponents/Breadcrumb/index.stories.js +3 -11
  65. package/src/components/SubComponents/CardGroup/index.stories.js +1 -30
  66. package/src/components/SubComponents/CtaButton/index.stories.js +1 -24
  67. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
  68. package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
  69. package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
  70. package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
  71. package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
  72. package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
  73. package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
  74. package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
  75. package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
  76. package/src/components/SubComponents/FormInstance/components/handler/index.vue +208 -0
  77. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +282 -0
  78. package/src/components/SubComponents/FormInstance/index.test.js +65 -0
  79. package/src/components/SubComponents/FormInstance/index.vue +55 -6
  80. package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
  81. package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
  82. package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
  83. package/src/components/SubComponents/FormInstance/models/overrides/address.js +132 -0
  84. package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
  85. package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
  86. package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
  87. package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
  88. package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
  89. package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
  90. package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
  91. package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
  92. package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
  93. package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
  94. package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
  95. package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
  96. package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
  97. package/src/components/SubComponents/FormInstance/models/overrides/file.js +56 -0
  98. package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
  99. package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
  100. package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
  101. package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
  102. package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
  103. package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
  104. package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
  105. package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
  106. package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
  107. package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
  108. package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
  109. package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
  110. package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
  111. package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
  112. package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
  113. package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
  114. package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
  115. package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
  116. package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
  117. package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
  118. package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
  119. package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
  120. package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
  121. package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
  122. package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
  123. package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
  124. package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
  125. package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
  126. package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
  127. package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
  128. package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
  129. package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
  130. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
  131. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +61 -0
  132. package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
  133. package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
  134. package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
  135. package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
  136. package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
  137. package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
  138. package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
  139. package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
  140. package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
  141. package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
  142. package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
  143. package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
  144. package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
  145. package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
  146. package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
  147. package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
  148. package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
  149. package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
  150. package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
  151. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
  152. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
  153. package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
  154. package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
  155. package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
  156. package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
  157. package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
  158. package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
  159. package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
  160. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
  161. package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
  162. package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
  163. package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
  164. package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
  165. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
  166. package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
  167. package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
  168. package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
  169. package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
  170. package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
  171. package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
  172. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
  173. package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
  174. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
  175. package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
  176. package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
  177. package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
  178. package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
  179. package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
  180. package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
  181. package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
  182. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
  183. package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
  184. package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
  185. package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
  186. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
  187. package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
  188. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
  189. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
  190. package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
  191. package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
  192. package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
  193. package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
  194. package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
  195. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
  196. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
  197. package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
  198. package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
  199. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
  200. package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
  201. package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
  202. package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
  203. package/src/components/SubComponents/FormInstance/style.scss +185 -0
  204. package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
  205. package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
  206. package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
  207. package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
  208. package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
  209. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
  210. package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
  211. package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
  212. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
  213. package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
  214. package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
  215. package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
  216. package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
  217. package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
  218. package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
  219. package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
  220. package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
  221. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
  222. package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
  223. package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
  224. package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
  225. package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
  226. package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
  227. package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
  228. package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
  229. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
  230. package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
  231. package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
  232. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
  233. package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
  234. package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
  235. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
  236. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
  237. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
  238. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
  239. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
  240. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
  241. package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
  242. package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
  243. package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
  244. package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
  245. package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
  246. package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
  247. package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
  248. package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
  249. package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
  250. package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
  251. package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
  252. package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
  253. package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
  254. package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
  255. package/src/components/SubComponents/FormInstance/tests/url.test.js +45 -0
  256. package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
  257. package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
  258. package/src/components/SubComponents/Icon/index.stories.js +1 -6
  259. package/src/components/SubComponents/MediaPlayer/index.stories.js +1 -6
  260. package/src/components/SubComponents/Pagination/index.stories.js +3 -8
  261. package/src/components/SubComponents/ResourceGroup/List/index.stories.js +3 -2
  262. package/src/components/SubComponents/ResourceGroup/index.vue +91 -69
  263. package/src/components/SubComponents/Search/index.vue +4 -4
  264. package/src/components/SubComponents/SingleImage/index.stories.js +2 -16
  265. package/src/components/SubComponents/VideoThumbnail/index.stories.js +1 -0
  266. package/src/components/SubComponents/VideoThumbnail/index.vue +4 -7
  267. package/src/mock/jest.fileMock.js +1 -0
  268. package/vite.config.js +3 -2
  269. package/src/components/SubComponents/FormInstance/index.stories.js +0 -8
@@ -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,12 @@
40
40
  :is-expandable="true"
41
41
  />
42
42
  </template>
43
- <template
44
- v-if="selectedRow === rIndex && selectedCard"
43
+ <template
45
44
  v-slot:cardGridFooter
46
45
  >
47
- <column class="listgroup-column">
46
+ <column v-if="selectedRow === rIndex && selectedCard" class="listgroup-column">
48
47
  <div ref="listgroup" class="tabbed-cards__listGroup">
49
- <component
50
- :is="ListGroupComponent"
48
+ <list-group
51
49
  :list="selectedCard.links"
52
50
  :title="selectedCard.linksTitle"
53
51
  :title-tag="selectedCard.linksTag"
@@ -69,10 +67,13 @@ import CardGrid from './../../Common/CardGrid/index.vue'
69
67
  import CardGridItem from './../../Common/CardGridItem/index.vue'
70
68
  import Column from './../../Containers/Column/index.vue'
71
69
  import Icon from './../../SubComponents/Icon/index.vue'
70
+ import ListGroup from './../../Paragraphs/ListGroup/index.vue'
71
+ import VueScrollTo from 'vue-scrollto'
72
+ import { nextTick } from 'vue'
72
73
 
73
74
  export default {
74
75
  name: 'TabbedCards',
75
- components: { CardGrid, CardGridItem, Icon, Column },
76
+ components: { CardGrid, CardGridItem, Icon, Column, ListGroup },
76
77
  props: {
77
78
  heading: {
78
79
  type: String,
@@ -100,7 +101,8 @@ export default {
100
101
  selectedCard: undefined,
101
102
  selectedRow: undefined,
102
103
  screenWidth: 0,
103
- loaded: false
104
+ loaded: false,
105
+ tabList: null
104
106
  }
105
107
  },
106
108
  computed: {
@@ -120,19 +122,15 @@ export default {
120
122
  } else {
121
123
  return 3
122
124
  }
123
- },
124
- ListGroupComponent() {
125
- //List group component import to fix storybook bug
126
- return () => import('./../ListGroup/index.vue')
127
125
  }
128
126
  },
129
127
  mounted() {
130
128
  window.addEventListener('resize', this.updateScreenWidth)
131
129
  this.screenWidth = document.documentElement.clientWidth
132
- this.$root.$on('last-focus-out', () => {
130
+ /* this.$root.$on('last-focus-out', () => {
133
131
  this.selectedCard = null
134
132
  this.selectedRow = null
135
- })
133
+ }) */
136
134
  this.loaded = true
137
135
  },
138
136
  beforeDestroy() {
@@ -151,7 +149,7 @@ export default {
151
149
  let end = start + this.cols
152
150
  return rows.slice(start, end)
153
151
  },
154
- setCurrentRow(rowIndex, card) {
152
+ async setCurrentRow(rowIndex, card) {
155
153
  const sameCardSelected =
156
154
  card.selectedCard === this.selectedCard || !card.selectedCard
157
155
  this.selectedCard = null
@@ -162,11 +160,12 @@ export default {
162
160
  cardGrid.clearCards()
163
161
  }
164
162
  })
163
+ await nextTick()
164
+ this.tabList = this.getFocusElements()
165
165
  setTimeout(() => {
166
166
  if (window && !sameCardSelected) {
167
167
  this.selectedCard = card.selectedCard
168
168
  this.selectedRow = rowIndex
169
- let VueScrollTo = require('vue-scrollto')
170
169
  let options = {
171
170
  container: 'body',
172
171
  easing: 'ease-in',
@@ -192,50 +191,21 @@ export default {
192
191
  return cols
193
192
  },
194
193
  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
- }
194
+ ev.preventDefault()
195
+ let activeElem = ev.target
196
+ if(!this.tabList){
197
+ this.tabList = this.getFocusElements()
198
+ } else {
199
+ let newList = this.getFocusElements().filter(item => this.tabList.indexOf(item) == -1)
200
+ this.tabList.splice(this.tabList.indexOf(activeElem) + 1,0,...newList)
231
201
  }
232
- // if its the next card from the selected
202
+ let newTab = ev.shiftKey ? this.tabList[this.tabList.indexOf(activeElem) - 1] ||
203
+ this.tabList[this.tabList.length - 1]
204
+ : this.tabList[this.tabList.indexOf(activeElem) + 1] || this.tabList[0]
205
+ newTab.focus()
233
206
  },
234
- focusNextElement(reverse, activeElem) {
235
- /*check if an element is defined or use activeElement*/
236
- activeElem =
237
- activeElem instanceof HTMLElement ? activeElem : document.activeElement
238
207
 
208
+ getFocusElements() {
239
209
  let queryString = [
240
210
  'a:not([disabled]):not([tabindex="-1"])',
241
211
  'button:not([disabled]):not([tabindex="-1"])',
@@ -247,11 +217,9 @@ export default {
247
217
  queryResult = Array.prototype.filter.call(
248
218
  document.querySelectorAll(queryString),
249
219
  (elem) => {
250
- /*check for visibility while always include the current activeElement*/
251
220
  return (
252
221
  elem.offsetWidth > 0 ||
253
- elem.offsetHeight > 0 ||
254
- elem === activeElem
222
+ elem.offsetHeight > 0
255
223
  )
256
224
  }
257
225
  ),
@@ -282,13 +250,7 @@ export default {
282
250
  return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
283
251
  })
284
252
  )
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]
253
+ return focusable
292
254
  }
293
255
  }
294
256
  }
@@ -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,6 +4,7 @@ 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,
@@ -12,8 +12,7 @@
12
12
  :class="`${rtl ? 'rtl' : ''} ${isFluid ? 'isScrolled' : ''}`"
13
13
  class="table border"
14
14
  :striped="true"
15
- v-model:sort-desc="sortDesc"
16
- v-model:sort-by="sortBy"
15
+ :sort-by="sortBy"
17
16
  :borderless="false"
18
17
  :responsive="!isFluid"
19
18
  :stacked="!isFluid ? 'sm' : false"
@@ -74,8 +73,8 @@ export default {
74
73
  },
75
74
  data() {
76
75
  return {
77
- sortBy: this.initialSortBy,
78
- sortDesc: false,
76
+ sortBy: [{key:this.initialSortBy, order:'asc'}],
77
+ //sortDesc: false,
79
78
  sortIconNeutral:
80
79
  "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e",
81
80
  sortIconDesc:
@@ -91,11 +90,13 @@ export default {
91
90
  },
92
91
  methods: {
93
92
  accessSort(fieldVar) {
94
- this.sortBy = fieldVar.key
93
+ //this.sortBy = fieldVar.key
95
94
  if (fieldVar.thAttr['aria-sort'] === 'none' || fieldVar.thAttr['aria-sort'] === 'descending' ) {
96
- this.sortDesc = false
95
+ this.sortBy = [{key:fieldVar.key, order:'asc'}]
96
+ //this.sortDesc = false
97
97
  } else {
98
- this.sortDesc = true
98
+ this.sortBy = [{key:fieldVar.key, order:'desc'}]
99
+ //this.sortDesc = true
99
100
  }
100
101
  }
101
102
  }
@@ -141,5 +142,9 @@ export default {
141
142
  vertical-align: middle;
142
143
  margin-left: 5px;
143
144
  }
145
+
146
+ .b-table-sortable-column svg {
147
+ display:none;
148
+ }
144
149
  }
145
150
  </style>
@@ -8,38 +8,15 @@ import {
8
8
  export default {
9
9
  title: 'Paragraphs/TaskFinder',
10
10
  component: TaskFinder,
11
- argTypes: {
12
- taskList: {
13
- control: 'object',
14
- defaultValue: taskFinderTempData
15
- },
16
- title: {
17
- control: 'text',
18
- defaultValue: taskFinderTempTitle
19
- },
20
- text: {
21
- control: 'text',
22
- defaultValue: taskFinderTempText
23
- },
24
- headingTag: {
25
- control: 'text',
26
- defaultValue: 'h2'
27
- },
28
- rtl: {
29
- control: 'boolean',
30
- defaultValue: false
31
- },
32
- workwell: {
33
- control: 'boolean',
34
- defaultValue: false
35
- }
11
+ tags: ['autodocs'],
12
+ args: {
13
+ taskList: taskFinderTempData,
14
+ title: taskFinderTempTitle,
15
+ text: taskFinderTempText,
16
+ headingTag: 'h2',
17
+ rtl: false,
18
+ workwell: false
36
19
  }
37
20
  }
38
21
 
39
- const DefaultContent = (args, { argTypes }) => ({
40
- components: { TaskFinder },
41
- props: Object.keys(argTypes),
42
- template: '<task-finder v-bind="$props" :storybook="true"/>'
43
- })
44
-
45
- export const Default = DefaultContent.bind({})
22
+ export const Default = {}
@@ -21,7 +21,7 @@
21
21
  :selected-task="selectedTask"
22
22
  :is-child="false"
23
23
  :is-mobile-or-tablet-view="isMobileOrTabletView"
24
- @selected="(task) => taskClick(task, true)"
24
+ @selection="(task) => taskClick(task, true)"
25
25
  >
26
26
  <task-finder-column
27
27
  v-if="isMobileOrTabletView && selectedTask"
@@ -31,7 +31,7 @@
31
31
  :selected-task="selectedTask"
32
32
  :is-mobile-or-tablet-view="isMobileOrTabletView"
33
33
  :is-child="true"
34
- @selected="(task) => taskClick(task, false)"
34
+ @selection="(task) => taskClick(task, false)"
35
35
  >
36
36
  </task-finder-column>
37
37
  </task-finder-column>
@@ -49,7 +49,7 @@
49
49
  :selected-task="selectedTask"
50
50
  :is-mobile-or-tablet-view="isMobileOrTabletView"
51
51
  :is-child="true"
52
- @selected="(task) => taskClick(task, false)"
52
+ @selection="(task) => taskClick(task, false)"
53
53
  >
54
54
  </task-finder-column>
55
55
  </column>
@@ -25,7 +25,7 @@
25
25
 
26
26
  <script>
27
27
  import { isAbsoluteUrl } from '../../../../../lib/utility'
28
- import Row from './../../../Containers/Container/index.vue'
28
+ import Row from './../../../Containers/Row/index.vue'
29
29
  import Container from './../../../Containers/Container/index.vue'
30
30
  import Column from './../../../Containers/Column/index.vue'
31
31
  import RichText from './../../../Paragraphs/RichText/index.vue'
@@ -16,7 +16,7 @@
16
16
  isChild ? 'task-finder-column__child' : 'task-finder-column__parent'
17
17
  "
18
18
  :style="cards.length > 6 ? false : 'overflow-y: auto'"
19
- @selected="(card) => $emit('selected', { card })"
19
+ @selected="(card) => $emit('selection', { card })"
20
20
  >
21
21
  <template v-slot:cardItem="{ card }">
22
22
  <card-grid-item
@@ -19,75 +19,27 @@ const MockVideo = {
19
19
  export default {
20
20
  title: 'Paragraphs/Text + Media',
21
21
  component: TextMedia,
22
- argTypes: {
23
- content: {
24
- control: 'text',
25
- defaultValue:
26
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>'
27
- },
28
- titleText: {
29
- control: 'text',
30
- defaultValue: 'A sample media item'
31
- },
32
- titleTag: {
33
- control: 'text',
34
- defaultValue: 'h3'
35
- },
36
- hasBgColor: {
37
- control: 'boolean',
38
- defaultValue: false
39
- },
40
- flip: {
41
- control: 'boolean',
42
- defaultValue: false
43
- },
44
- rtl: {
45
- control: 'boolean',
46
- defaultValue: false
47
- },
48
- workwell: {
49
- control: 'boolean',
50
- defaultValue: false
51
- },
52
- video: {
53
- control: 'object'
54
- },
55
- image: {
56
- control: 'object'
57
- },
58
- mediaType: {
59
- control: 'text'
60
- },
61
- storybook: {
62
- control: 'boolean',
63
- defaultValue: true
64
- },
65
- hideImageMob: {
66
- control: 'boolean',
67
- defaultValue: false
68
- }
22
+ tags: ['autodocs'],
23
+ args: {
24
+ content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>',
25
+ titleText: 'A sample media item',
26
+ titleTag: 'h3',
27
+ hasBgColor: false,
28
+ flip: false,
29
+ rtl: false,
30
+ workwell: false,
31
+ storybook: true,
32
+ hideImageMob: false
69
33
  }
70
34
  }
71
35
 
72
- const TextWithImageDefault = (args, { argTypes }) => ({
73
- components: { TextMedia },
74
- props: Object.keys(argTypes),
75
- template: `<text-media v-bind="$props" />`
76
- })
77
-
78
- export const TextWithImage = TextWithImageDefault.bind({})
36
+ export const TextWithImage = {}
79
37
  TextWithImage.args = {
80
38
  mediaType: 'image',
81
39
  image: MockImage
82
40
  }
83
41
 
84
- const TextWithVideoDefault = (args, { argTypes }) => ({
85
- components: { TextMedia },
86
- props: Object.keys(argTypes),
87
- template: `<text-media v-bind="$props" />`
88
- })
89
-
90
- export const TextWithVideo = TextWithVideoDefault.bind({})
42
+ export const TextWithVideo = {}
91
43
  TextWithVideo.args = {
92
44
  mediaType: 'video',
93
45
  video: MockVideo
@@ -106,46 +106,30 @@ const mockData = {
106
106
  export default {
107
107
  title: 'Paragraphs/VideoGrid',
108
108
  component: { VideoGrid, Container, Row, Column },
109
+ tags: ['autodocs'],
109
110
  argTypes: {
110
- gridTitle: {
111
- control: 'text',
112
- defaultValue: mockData.title
113
- },
114
111
  titleTag: {
115
112
  control: 'select',
116
- options: ['h2', 'h3'],
117
- defaultValue: 'h2'
118
- },
119
- gridDescription: {
120
- control: 'text',
121
- defaultValue: mockData.description
122
- },
123
- videoList: {
124
- control: 'object',
125
- defaultValue: mockData.videos
126
- },
127
- rtl: {
128
- control: 'boolean',
129
- defaultValue: mockData.rtl
130
- },
131
- threeColumns: {
132
- control: 'boolean',
133
- defaultValue: mockData.threeColumns
134
- },
135
- greyBackground: {
136
- control: 'boolean',
137
- defaultValue: mockData.greyBackground
138
- },
139
- cta: {
140
- control: 'object',
141
- defaultValue: mockData.cta
113
+ options: ['h2', 'h3']
142
114
  }
115
+ },
116
+ args: {
117
+ gridTitle: mockData.title,
118
+ titleTag: 'h2',
119
+ gridDescription: mockData.description,
120
+ videoList: mockData.videos,
121
+ rtl: mockData.rtl,
122
+ threeColumns: mockData.threeColumns,
123
+ greyBackground: mockData.greyBackground,
124
+ cta: mockData.cta
143
125
  }
144
126
  }
145
127
 
146
128
  const YoutubeContent = (args, { argTypes }) => ({
147
129
  components: { VideoGrid, Container, Row, Column },
148
- props: Object.keys(argTypes),
130
+ setup() {
131
+ return { args };
132
+ },
149
133
  data() {
150
134
  return {
151
135
  videos: mockData.videos
@@ -156,7 +140,7 @@ const YoutubeContent = (args, { argTypes }) => ({
156
140
  <row>
157
141
  <column>
158
142
  <video-grid
159
- v-bind="$props"
143
+ v-bind="args"
160
144
  />
161
145
  </column>
162
146
  </row>
@@ -165,3 +149,4 @@ const YoutubeContent = (args, { argTypes }) => ({
165
149
  })
166
150
 
167
151
  export const Youtube = YoutubeContent.bind({})
152
+
@@ -19,18 +19,12 @@ const mediaDesc = 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse
19
19
  export default {
20
20
  title: 'Paragraphs/VideoPlayer',
21
21
  component: { VideoMedia, Container, Row, Column },
22
+ tags: ['autodocs'],
22
23
  argTypes: {
23
24
  titleTag: {
24
25
  control: 'select',
25
26
  options: ['h2', 'h3']
26
27
  },
27
- mediaTitle: {
28
- control: 'text'
29
- },
30
- mediaDescription: {
31
- control: 'text'
32
-
33
- },
34
28
  videoId: {
35
29
  control: 'select',
36
30
  options: [mockData.videoId.YouTube, mockData.videoId.Vimeo]
@@ -38,12 +32,6 @@ export default {
38
32
  provider: {
39
33
  control: 'select',
40
34
  options: [mockData.provider.YouTube, mockData.provider.Vimeo],
41
- },
42
- transcriptTitle: {
43
- control: 'text'
44
- },
45
- transcript: {
46
- control: 'text'
47
35
  }
48
36
  }
49
37
  }
@@ -3,38 +3,28 @@ import WebformPara from './index.vue'
3
3
  export default {
4
4
  title: 'Paragraphs/Webform',
5
5
  component: WebformPara,
6
+ tags: ['autodocs'],
6
7
  argTypes: {
7
8
  preview: {
8
9
  control: 'boolean',
9
- defaultValue: true,
10
10
  table: {
11
11
  disable: true
12
12
  }
13
13
  },
14
- contentApiUrl: {
15
- control: 'text',
16
- defaultValue: process.env.CONTENT_API_URL
17
- },
18
14
  processID: {
19
15
  control: 'text',
20
- defaultValue: `proc-id-form-api
21
- .toLowerCase()
22
- .split(' ')
23
- .join('-')}`,
24
16
  table: {
25
17
  disable: true
26
18
  }
27
19
  },
28
20
  formid: {
29
21
  control: 'string',
30
- defaultValue: 'review_of_an_agent_decision',
31
22
  table: {
32
23
  disable: true
33
24
  }
34
25
  },
35
26
  type: {
36
27
  control: 'text',
37
- defaultValue: 'api',
38
28
  table: {
39
29
  disable: true
40
30
  }
@@ -44,27 +34,61 @@ export default {
44
34
  table: {
45
35
  disable: true
46
36
  }
37
+ },
38
+ changed: {
39
+ table: {
40
+ disable: true
41
+ }
42
+ },
43
+ submitted: {
44
+ table: {
45
+ disable: true
46
+ }
47
+ },
48
+ rendered: {
49
+ table: {
50
+ disable: true
51
+ }
52
+ },
53
+ nextPage: {
54
+ table: {
55
+ disable: true
56
+ }
57
+ },
58
+ prevPage: {
59
+ table: {
60
+ disable: true
61
+ }
47
62
  }
48
- }
63
+ },
64
+ args: {
65
+ preview: true,
66
+ type: 'api',
67
+ formid: 'review_of_an_agent_decision',
68
+ contentApiUrl: process.env.CONTENT_API_URL,
69
+ processID: `proc-id-form-api
70
+ .toLowerCase()
71
+ .split(' ')
72
+ .join('-')}`
73
+ },
49
74
  }
50
75
 
51
- const Template = (args, { argTypes }) => ({
52
- components: { WebformPara },
53
- props: Object.keys(argTypes),
54
- template: `
55
- <div>
56
- <h2>This is a web page with embedded webform</h2>
57
- <p> Below is an example webform</p>
58
- <br>
59
- <br>
60
- <div style="background-color: lightgrey">
61
- <webform-para v-bind="$props" />
62
- </div>
63
- </div>
64
- `
65
- })
66
- export const Default = Template.bind({})
67
- Default.args = {
68
- type: 'api',
69
- formid: 'review_of_an_agent_decision',
70
- }
76
+ const Template = (args) => ({
77
+ components: { WebformPara },
78
+ setup() {
79
+ return { args }
80
+ },
81
+ template: `
82
+ <div>
83
+ <h2>This is a web page with embedded webform</h2>
84
+ <p> Below is an example webform</p>
85
+ <br>
86
+ <br>
87
+ <div style="background-color: lightgrey">
88
+ <webform-para v-bind="args" />
89
+ </div>
90
+ </div>
91
+ `
92
+ })
93
+
94
+ export const Default = Template.bind({})