@worksafevictoria/wcl7.5 1.1.0-beta.2 → 1.1.0-beta.21

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 (246) hide show
  1. package/.storybook/main.js +2 -1
  2. package/.storybook/preview.js +5 -0
  3. package/jest.config.js +9 -7
  4. package/package.json +11 -8
  5. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +1 -1
  6. package/src/components/Common/CardGridItem/index.vue +9 -3
  7. package/src/components/Global/AppHeader/ModalSearch/index.vue +6 -1
  8. package/src/components/Global/AppHeader/index.stories.js +16 -24
  9. package/src/components/Global/AppHeader/index.vue +9 -8
  10. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +2 -1
  11. package/src/components/Global/GlobalNotice/index.stories.js +7 -1
  12. package/src/components/Global/HeroHeader/index.vue +2 -4
  13. package/src/components/Paragraphs/Accordion/index.stories.js +1 -0
  14. package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
  15. package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
  16. package/src/components/Paragraphs/Calculator/Constants.js +2 -2
  17. package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
  18. package/src/components/Paragraphs/Chart/Constants.js +4790 -0
  19. package/src/components/Paragraphs/Chart/index.mdx +61 -0
  20. package/src/components/Paragraphs/Chart/index.stories.js +31 -0
  21. package/src/components/Paragraphs/Chart/index.vue +331 -0
  22. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +3 -3
  23. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +3 -3
  24. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +2 -2
  25. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
  26. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
  27. package/src/components/Paragraphs/Directory/Records/index.vue +3 -3
  28. package/src/components/Paragraphs/Directory/index.vue +4 -4
  29. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +35 -39
  30. package/src/components/Paragraphs/ListGroup/list-group.stories.js +35 -31
  31. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +34 -30
  32. package/src/components/Paragraphs/MarketingBanner/index.stories.js +1 -0
  33. package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
  34. package/src/components/Paragraphs/RelatedInformation/index.stories.js +10 -21
  35. package/src/components/Paragraphs/RelatedInformation/index.vue +12 -6
  36. package/src/components/Paragraphs/RelatedInformation/styles.scss +1 -3
  37. package/src/components/Paragraphs/ScrollSpy/index.stories.js +19 -26
  38. package/src/components/Paragraphs/ScrollSpy/index.vue +8 -2
  39. package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
  40. package/src/components/Paragraphs/TabbedCards/index.vue +29 -67
  41. package/src/components/Paragraphs/TabulatedData/index.vue +12 -7
  42. package/src/components/Paragraphs/TaskFinder/index.stories.js +8 -32
  43. package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
  44. package/src/components/Paragraphs/TaskFinder/pdf/index.vue +1 -1
  45. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
  46. package/src/components/Paragraphs/TextMedia/index.stories.js +12 -61
  47. package/src/components/Paragraphs/VideoGrid/index.stories.js +16 -32
  48. package/src/components/Paragraphs/Webform/index.stories.js +55 -29
  49. package/src/components/Paragraphs/Webform/index.vue +11 -8
  50. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
  51. package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
  52. package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
  53. package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
  54. package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
  55. package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
  56. package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
  57. package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
  58. package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
  59. package/src/components/SubComponents/FormInstance/components/handler/index.vue +208 -0
  60. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +282 -0
  61. package/src/components/SubComponents/FormInstance/index.test.js +65 -0
  62. package/src/components/SubComponents/FormInstance/index.vue +55 -6
  63. package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
  64. package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
  65. package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
  66. package/src/components/SubComponents/FormInstance/models/overrides/address.js +132 -0
  67. package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
  68. package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
  69. package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
  70. package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
  71. package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
  72. package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
  73. package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
  74. package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
  75. package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
  76. package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
  77. package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
  78. package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
  79. package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
  80. package/src/components/SubComponents/FormInstance/models/overrides/file.js +56 -0
  81. package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
  82. package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
  83. package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
  84. package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
  85. package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
  86. package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
  87. package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
  88. package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
  89. package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
  90. package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
  91. package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
  92. package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
  93. package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
  94. package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
  95. package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
  96. package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
  97. package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
  98. package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
  99. package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
  100. package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
  101. package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
  102. package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
  103. package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
  104. package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
  105. package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
  106. package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
  107. package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
  108. package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
  109. package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
  110. package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
  111. package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
  112. package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
  113. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
  114. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +61 -0
  115. package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
  116. package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
  117. package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
  118. package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
  119. package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
  120. package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
  121. package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
  122. package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
  123. package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
  124. package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
  125. package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
  126. package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
  127. package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
  128. package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
  129. package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
  130. package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
  131. package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
  132. package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
  133. package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
  134. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
  135. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
  136. package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
  137. package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
  138. package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
  139. package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
  140. package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
  141. package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
  142. package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
  143. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
  144. package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
  145. package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
  146. package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
  147. package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
  148. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
  149. package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
  150. package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
  151. package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
  152. package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
  153. package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
  154. package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
  155. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
  156. package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
  157. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
  158. package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
  159. package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
  160. package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
  161. package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
  162. package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
  163. package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
  164. package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
  165. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
  166. package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
  167. package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
  168. package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
  169. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
  170. package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
  171. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
  172. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
  173. package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
  174. package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
  175. package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
  176. package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
  177. package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
  178. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
  179. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
  180. package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
  181. package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
  182. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
  183. package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
  184. package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
  185. package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
  186. package/src/components/SubComponents/FormInstance/style.scss +173 -0
  187. package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
  188. package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
  189. package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
  190. package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
  191. package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
  192. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
  193. package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
  194. package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
  195. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
  196. package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
  197. package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
  198. package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
  199. package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
  200. package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
  201. package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
  202. package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
  203. package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
  204. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
  205. package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
  206. package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
  207. package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
  208. package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
  209. package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
  210. package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
  211. package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
  212. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
  213. package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
  214. package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
  215. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
  216. package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
  217. package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
  218. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
  219. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
  220. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
  221. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
  222. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
  223. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
  224. package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
  225. package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
  226. package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
  227. package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
  228. package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
  229. package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
  230. package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
  231. package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
  232. package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
  233. package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
  234. package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
  235. package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
  236. package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
  237. package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
  238. package/src/components/SubComponents/FormInstance/tests/url.test.js +45 -0
  239. package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
  240. package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
  241. package/src/components/SubComponents/Search/index.vue +4 -4
  242. package/src/components/SubComponents/VideoThumbnail/index.vue +4 -7
  243. package/src/includes/scss/vars/src/colors.scss +29 -1
  244. package/src/index.js +42 -40
  245. package/src/mock/jest.fileMock.js +1 -0
  246. 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
  }
@@ -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,14 @@ 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
+ args: {
12
+ taskList: taskFinderTempData,
13
+ title: taskFinderTempTitle,
14
+ text: taskFinderTempText,
15
+ headingTag: 'h2',
16
+ rtl: false,
17
+ workwell: false
36
18
  }
37
19
  }
38
20
 
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({})
21
+ 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,26 @@ 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
+ args: {
23
+ 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>',
24
+ titleText: 'A sample media item',
25
+ titleTag: 'h3',
26
+ hasBgColor: false,
27
+ flip: false,
28
+ rtl: false,
29
+ workwell: false,
30
+ storybook: true,
31
+ hideImageMob: false
69
32
  }
70
33
  }
71
34
 
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({})
35
+ export const TextWithImage = {}
79
36
  TextWithImage.args = {
80
37
  mediaType: 'image',
81
38
  image: MockImage
82
39
  }
83
40
 
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({})
41
+ export const TextWithVideo = {}
91
42
  TextWithVideo.args = {
92
43
  mediaType: 'video',
93
44
  video: MockVideo
@@ -107,45 +107,28 @@ export default {
107
107
  title: 'Paragraphs/VideoGrid',
108
108
  component: { VideoGrid, Container, Row, Column },
109
109
  argTypes: {
110
- gridTitle: {
111
- control: 'text',
112
- defaultValue: mockData.title
113
- },
114
110
  titleTag: {
115
111
  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
112
+ options: ['h2', 'h3']
142
113
  }
114
+ },
115
+ args: {
116
+ gridTitle: mockData.title,
117
+ titleTag: 'h2',
118
+ gridDescription: mockData.description,
119
+ videoList: mockData.videos,
120
+ rtl: mockData.rtl,
121
+ threeColumns: mockData.threeColumns,
122
+ greyBackground: mockData.greyBackground,
123
+ cta: mockData.cta
143
124
  }
144
125
  }
145
126
 
146
127
  const YoutubeContent = (args, { argTypes }) => ({
147
128
  components: { VideoGrid, Container, Row, Column },
148
- props: Object.keys(argTypes),
129
+ setup() {
130
+ return { args };
131
+ },
149
132
  data() {
150
133
  return {
151
134
  videos: mockData.videos
@@ -156,7 +139,7 @@ const YoutubeContent = (args, { argTypes }) => ({
156
139
  <row>
157
140
  <column>
158
141
  <video-grid
159
- v-bind="$props"
142
+ v-bind="args"
160
143
  />
161
144
  </column>
162
145
  </row>
@@ -165,3 +148,4 @@ const YoutubeContent = (args, { argTypes }) => ({
165
148
  })
166
149
 
167
150
  export const Youtube = YoutubeContent.bind({})
151
+
@@ -6,35 +6,27 @@ export default {
6
6
  argTypes: {
7
7
  preview: {
8
8
  control: 'boolean',
9
- defaultValue: true,
10
9
  table: {
11
10
  disable: true
12
11
  }
13
12
  },
14
13
  contentApiUrl: {
15
14
  control: 'text',
16
- defaultValue: process.env.CONTENT_API_URL
17
15
  },
18
16
  processID: {
19
17
  control: 'text',
20
- defaultValue: `proc-id-form-api
21
- .toLowerCase()
22
- .split(' ')
23
- .join('-')}`,
24
18
  table: {
25
19
  disable: true
26
20
  }
27
21
  },
28
22
  formid: {
29
23
  control: 'string',
30
- defaultValue: 'review_of_an_agent_decision',
31
24
  table: {
32
25
  disable: true
33
26
  }
34
27
  },
35
28
  type: {
36
29
  control: 'text',
37
- defaultValue: 'api',
38
30
  table: {
39
31
  disable: true
40
32
  }
@@ -44,27 +36,61 @@ export default {
44
36
  table: {
45
37
  disable: true
46
38
  }
39
+ },
40
+ changed: {
41
+ table: {
42
+ disable: true
43
+ }
44
+ },
45
+ submitted: {
46
+ table: {
47
+ disable: true
48
+ }
49
+ },
50
+ rendered: {
51
+ table: {
52
+ disable: true
53
+ }
54
+ },
55
+ nextPage: {
56
+ table: {
57
+ disable: true
58
+ }
59
+ },
60
+ prevPage: {
61
+ table: {
62
+ disable: true
63
+ }
47
64
  }
48
- }
65
+ },
66
+ args: {
67
+ preview: true,
68
+ type: 'api',
69
+ formid: 'review_of_an_agent_decision',
70
+ contentApiUrl: process.env.CONTENT_API_URL,
71
+ processID: `proc-id-form-api
72
+ .toLowerCase()
73
+ .split(' ')
74
+ .join('-')}`
75
+ },
49
76
  }
50
77
 
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
- }
78
+ const Template = (args) => ({
79
+ components: { WebformPara },
80
+ setup() {
81
+ return { args }
82
+ },
83
+ template: `
84
+ <div>
85
+ <h2>This is a web page with embedded webform</h2>
86
+ <p> Below is an example webform</p>
87
+ <br>
88
+ <br>
89
+ <div style="background-color: lightgrey">
90
+ <webform-para v-bind="args" />
91
+ </div>
92
+ </div>
93
+ `
94
+ })
95
+
96
+ export const Default = Template.bind({})
@@ -2,7 +2,7 @@
2
2
  <div class="webform_para container-sm container-md container-lg container-xl">
3
3
  <div class="row">
4
4
  <div class="col-12 col-md-9">
5
- <!-- <form-handler
5
+ <form-handler
6
6
  :formid="formid"
7
7
  :web-form-json="webFormJson"
8
8
  :content-api-url="contentApiUrl"
@@ -15,16 +15,19 @@
15
15
  @prevPage="() => $emit('prevPage')"
16
16
  />
17
17
  <i v-if="preview" class="fa fa-info-circle text-muted">
18
- preview mode. submission logged to console
19
- </i> -->
18
+ <span> preview mode. submission logged to console</span>
19
+ </i>
20
20
  </div>
21
21
  </div>
22
22
  </div>
23
23
  </template>
24
24
 
25
25
  <script>
26
+ import FormHandler from '../../SubComponents/FormInstance/components/handler/index.vue'
27
+ import colors from '../../../includes/scss/vars/src/colors.scss?inline'
28
+
26
29
  export default {
27
- name: 'WebformPara'/* ,
30
+ name: 'WebformPara',
28
31
  components: { FormHandler },
29
32
  props: {
30
33
  formid: {
@@ -87,7 +90,7 @@ export default {
87
90
  }
88
91
  return styles
89
92
  }
90
- } */
93
+ }
91
94
  }
92
95
  </script>
93
96
 
@@ -96,8 +99,8 @@ export default {
96
99
  width: 100%;
97
100
  padding-top: 32px;
98
101
  padding-bottom: 64px;
99
- // :deep() {
100
- // @import './../../SubComponents/FormInstance/style.scss';
101
- // }
102
+ :deep() {
103
+ @import './../../SubComponents/FormInstance/style.scss';
104
+ }
102
105
  }
103
106
  </style>