@worksafevictoria/wcl7.5 1.1.0-beta.10 → 1.1.0-beta.101

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 (338) hide show
  1. package/.env +1 -3
  2. package/.storybook/preview.js +20 -13
  3. package/README.md +4 -4
  4. package/bin/deploy.sh +1 -1
  5. package/ci/build/build_validation.yml +2 -2
  6. package/ci/release/beta.yml +4 -3
  7. package/ci/release/master.yml +4 -3
  8. package/jest.config.js +10 -8
  9. package/lib/utility.js +10 -8
  10. package/package.json +15 -13
  11. package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
  12. package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
  13. package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
  14. package/src/assets/icons/WSV-reversed.svg +20 -0
  15. package/src/assets/icons/contrast.svg +4 -0
  16. package/src/assets/icons/lang.svg +13 -0
  17. package/src/assets/icons/login.svg +4 -0
  18. package/src/assets/styles/modal.scss +51 -0
  19. package/src/components/Common/CardGrid/cardgrid.stories.js +4 -57
  20. package/src/components/Common/CardGrid/index.vue +69 -49
  21. package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
  22. package/src/components/Common/CardGridItem/index.vue +95 -71
  23. package/src/components/Containers/Carousel/index.stories.js +30 -0
  24. package/src/components/Containers/Carousel/index.vue +172 -0
  25. package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
  26. package/src/components/Containers/HomepageHeader/index.vue +16 -26
  27. package/src/components/Containers/HomepageHeaderNew/index.stories.js +75 -0
  28. package/src/components/Containers/HomepageHeaderNew/index.vue +227 -0
  29. package/src/components/Containers/SectionGroup/index.vue +1 -1
  30. package/src/components/Containers/Subheader/index.vue +30 -20
  31. package/src/components/Global/AlertStrip/index.stories.js +1 -0
  32. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
  33. package/src/components/Global/AppFooter/index.stories.js +1 -0
  34. package/src/components/Global/AppFooter/index.vue +42 -33
  35. package/src/components/Global/AppHeader/index.vue +49 -52
  36. package/src/components/Global/AppHeaderNew/ModalSearch/index.vue +71 -0
  37. package/src/components/Global/AppHeaderNew/ModalSearch/styles.scss +43 -0
  38. package/src/components/Global/AppHeaderNew/includes.scss +71 -0
  39. package/src/components/Global/AppHeaderNew/index.stories.js +74 -0
  40. package/src/components/Global/AppHeaderNew/index.vue +1176 -0
  41. package/src/components/Global/AppHeaderNew/mobile.scss +269 -0
  42. package/src/components/Global/AppHeaderNew/styles.scss +642 -0
  43. package/src/components/Global/BackToTop/index.vue +8 -8
  44. package/src/components/Global/ContrastMode/index.stories.js +1 -0
  45. package/src/components/Global/ContrastMode/index.vue +1 -1
  46. package/src/components/Global/Cookies/index.stories.js +16 -10
  47. package/src/components/Global/Cookies/index.vue +209 -172
  48. package/src/components/Global/Cookies/styles.scss +54 -54
  49. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -132
  50. package/src/components/Global/GlobalNotice/index.stories.js +7 -1
  51. package/src/components/Global/GlobalNotice/index.vue +84 -84
  52. package/src/components/Global/HeroHeader/index.stories.js +3 -4
  53. package/src/components/Global/HeroHeader/index.vue +28 -29
  54. package/src/components/Global/ProgressBar/index.stories.js +6 -16
  55. package/src/components/Global/SocialShare/index.vue +3 -2
  56. package/src/components/Global/Strip/index.stories.js +1 -17
  57. package/src/components/Global/Strip/index.vue +9 -5
  58. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +29 -21
  59. package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
  60. package/src/components/Paragraphs/Accordion/index.stories.js +22 -18
  61. package/src/components/Paragraphs/Accordion/index.vue +52 -48
  62. package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
  63. package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
  64. package/src/components/Paragraphs/BrowseContent/index.vue +42 -32
  65. package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
  66. package/src/components/Paragraphs/Calculator/Constants.js +2 -2
  67. package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
  68. package/src/components/Paragraphs/Chart/Constants.js +485 -485
  69. package/src/components/Paragraphs/Chart/index.vue +232 -241
  70. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.stories.js +34 -0
  71. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.vue +321 -0
  72. package/src/components/Paragraphs/Directory/HSCP/Records/index.stories.js +19 -0
  73. package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +348 -0
  74. package/src/components/Paragraphs/Directory/HSCP/Records/pagination.vue +179 -0
  75. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +4 -4
  76. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +6 -6
  77. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +3 -3
  78. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
  79. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
  80. package/src/components/Paragraphs/Directory/Records/index.storieshide.js +47 -0
  81. package/src/components/Paragraphs/Directory/Records/index.vue +55 -36
  82. package/src/components/Paragraphs/Directory/constants.js +23 -5
  83. package/src/components/Paragraphs/Directory/index.vue +56 -45
  84. package/src/components/Paragraphs/Directory/{Records/styles.scss → styles.scss} +5 -3
  85. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +1 -0
  86. package/src/components/Paragraphs/ListGroup/index.vue +60 -47
  87. package/src/components/Paragraphs/ListGroup/list-group.stories.js +1 -0
  88. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +1 -0
  89. package/src/components/Paragraphs/MarketingBanner/index.stories.js +4 -18
  90. package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
  91. package/src/components/Paragraphs/RelatedInformation/index.stories.js +11 -21
  92. package/src/components/Paragraphs/RelatedInformation/index.vue +12 -6
  93. package/src/components/Paragraphs/RelatedInformation/styles.scss +1 -3
  94. package/src/components/Paragraphs/RichText/index.stories.js +2 -1
  95. package/src/components/Paragraphs/ScrollSpy/index.stories.js +3 -1
  96. package/src/components/Paragraphs/ScrollSpy/index.vue +26 -12
  97. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +1 -0
  98. package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
  99. package/src/components/Paragraphs/Statistics/index.stories.js +1 -0
  100. package/src/components/Paragraphs/Statistics/index.vue +1 -0
  101. package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
  102. package/src/components/Paragraphs/TabbedCards/index.vue +68 -103
  103. package/src/components/Paragraphs/Tabs/index.stories.js +1 -0
  104. package/src/components/Paragraphs/Tabs/index.vue +19 -17
  105. package/src/components/Paragraphs/TabulatedData/index.stories.js +6 -5
  106. package/src/components/Paragraphs/TabulatedData/index.vue +63 -35
  107. package/src/components/Paragraphs/TaskFinder/index.stories.js +2 -2
  108. package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
  109. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
  110. package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
  111. package/src/components/Paragraphs/TextMedia/index.stories.js +1 -0
  112. package/src/components/Paragraphs/TextMedia/index.vue +20 -16
  113. package/src/components/Paragraphs/VideoGrid/index.stories.js +44 -19
  114. package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
  115. package/src/components/Paragraphs/VideoPlayer/index.stories.js +1 -13
  116. package/src/components/Paragraphs/Webform/index.stories.js +94 -57
  117. package/src/components/Paragraphs/Webform/index.vue +11 -8
  118. package/src/components/SubComponents/Breadcrumb/index.stories.js +3 -11
  119. package/src/components/SubComponents/CardGroup/index.stories.js +1 -30
  120. package/src/components/SubComponents/CardGroup/index.vue +38 -28
  121. package/src/components/SubComponents/CtaButton/index.stories.js +1 -24
  122. package/src/components/SubComponents/CtaButton/index.vue +27 -25
  123. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
  124. package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
  125. package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
  126. package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
  127. package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
  128. package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
  129. package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
  130. package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
  131. package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
  132. package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
  133. package/src/components/SubComponents/FormInstance/components/handler/index.vue +204 -0
  134. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +317 -0
  135. package/src/components/SubComponents/FormInstance/index.test.js +65 -0
  136. package/src/components/SubComponents/FormInstance/index.vue +55 -6
  137. package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
  138. package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
  139. package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
  140. package/src/components/SubComponents/FormInstance/models/overrides/address.js +141 -0
  141. package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
  142. package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
  143. package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
  144. package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
  145. package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
  146. package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
  147. package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
  148. package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
  149. package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
  150. package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
  151. package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
  152. package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
  153. package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
  154. package/src/components/SubComponents/FormInstance/models/overrides/file.js +49 -0
  155. package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
  156. package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
  157. package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
  158. package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
  159. package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
  160. package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
  161. package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
  162. package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
  163. package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
  164. package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
  165. package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
  166. package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
  167. package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
  168. package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
  169. package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
  170. package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
  171. package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
  172. package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
  173. package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
  174. package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
  175. package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
  176. package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
  177. package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
  178. package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
  179. package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
  180. package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
  181. package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
  182. package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
  183. package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
  184. package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
  185. package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
  186. package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
  187. package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
  188. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +68 -0
  189. package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
  190. package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
  191. package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
  192. package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
  193. package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
  194. package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
  195. package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
  196. package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
  197. package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
  198. package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
  199. package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
  200. package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
  201. package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
  202. package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
  203. package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
  204. package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
  205. package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
  206. package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
  207. package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
  208. package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
  209. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
  210. package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
  211. package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
  212. package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
  213. package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
  214. package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
  215. package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
  216. package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
  217. package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
  218. package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
  219. package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
  220. package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
  221. package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
  222. package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
  223. package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
  224. package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
  225. package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
  226. package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
  227. package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
  228. package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
  229. package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
  230. package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
  231. package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
  232. package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
  233. package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
  234. package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
  235. package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
  236. package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
  237. package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
  238. package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
  239. package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
  240. package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
  241. package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
  242. package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
  243. package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
  244. package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
  245. package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
  246. package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
  247. package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
  248. package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
  249. package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
  250. package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
  251. package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
  252. package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
  253. package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
  254. package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
  255. package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
  256. package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
  257. package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
  258. package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
  259. package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
  260. package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
  261. package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
  262. package/src/components/SubComponents/FormInstance/style.scss +185 -0
  263. package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
  264. package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
  265. package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
  266. package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
  267. package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
  268. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
  269. package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
  270. package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
  271. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
  272. package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
  273. package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
  274. package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
  275. package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
  276. package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
  277. package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
  278. package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
  279. package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
  280. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
  281. package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
  282. package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
  283. package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
  284. package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
  285. package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
  286. package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
  287. package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
  288. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
  289. package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
  290. package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
  291. package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
  292. package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
  293. package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
  294. package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
  295. package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
  296. package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
  297. package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
  298. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
  299. package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
  300. package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
  301. package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
  302. package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
  303. package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
  304. package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
  305. package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
  306. package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
  307. package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
  308. package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
  309. package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
  310. package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
  311. package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
  312. package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
  313. package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
  314. package/src/components/SubComponents/FormInstance/tests/url.test.js +48 -0
  315. package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
  316. package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
  317. package/src/components/SubComponents/Icon/index.stories.js +1 -6
  318. package/src/components/SubComponents/MediaPlayer/index.stories.js +1 -6
  319. package/src/components/SubComponents/Pagination/index.stories.js +3 -8
  320. package/src/components/SubComponents/Pagination/index.vue +19 -18
  321. package/src/components/SubComponents/ResourceGroup/List/index.stories.js +3 -2
  322. package/src/components/SubComponents/ResourceGroup/index.vue +211 -174
  323. package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
  324. package/src/components/SubComponents/Search/index.vue +39 -37
  325. package/src/components/SubComponents/SingleImage/index.stories.js +2 -16
  326. package/src/components/SubComponents/VideoThumbnail/index.stories.js +1 -0
  327. package/src/components/SubComponents/VideoThumbnail/index.vue +48 -136
  328. package/src/includes/scss/mixins/src/grid.scss +4 -2
  329. package/src/includes/scss/mixins/src/units.scss +25 -4
  330. package/src/includes/scss/vars/src/colors.module.scss +28 -1
  331. package/src/index.js +23 -3
  332. package/src/main.js +2 -10
  333. package/src/mock/app-header-new.js +715 -0
  334. package/src/mock/carousel-items.js +82 -0
  335. package/src/mock/course-provider.js +273 -0
  336. package/src/mock/jest.fileMock.js +1 -0
  337. package/vite.config.js +28 -15
  338. package/src/components/SubComponents/FormInstance/index.stories.js +0 -8
@@ -45,7 +45,7 @@
45
45
  :taxonomies="{
46
46
  industry: card.industry,
47
47
  topic: card.topic,
48
- language: card.language
48
+ language: card.language,
49
49
  }"
50
50
  :is-card-title-selectable="isCardTitleSelectable"
51
51
  />
@@ -94,44 +94,44 @@ export default {
94
94
  props: {
95
95
  isTypeahead: {
96
96
  type: Boolean,
97
- required: false
97
+ required: false,
98
98
  },
99
99
  pageLimit: {
100
100
  type: Number,
101
101
  required: false,
102
- default: 20
102
+ default: 20,
103
103
  },
104
104
  numFound: {
105
105
  type: Number,
106
106
  required: false,
107
- default: 0
107
+ default: 0,
108
108
  },
109
109
  query: {
110
110
  type: String,
111
111
  required: false,
112
- default: ''
112
+ default: '',
113
113
  },
114
114
  results: {
115
115
  type: Array,
116
- default: () => []
116
+ default: () => [],
117
117
  },
118
118
  offset: {
119
119
  type: Number,
120
120
  required: false,
121
- default: 0
121
+ default: 0,
122
122
  },
123
123
  isLoading: {
124
124
  type: Boolean,
125
- required: false
125
+ required: false,
126
126
  },
127
127
  suggestion: {
128
128
  type: String,
129
- default: null
129
+ default: null,
130
130
  },
131
131
  isCardTitleSelectable: {
132
132
  type: Boolean,
133
- default: false
134
- }
133
+ default: false,
134
+ },
135
135
  },
136
136
  methods: {
137
137
  onClickItem(event, item, index) {
@@ -146,8 +146,8 @@ export default {
146
146
  onSelectCardTitle(card) {
147
147
  navigateToPath.call(
148
148
  this,
149
- card?.selectedCard?.link,
150
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
149
+ card?.selectedCard?.link.match(/https?:\/\/[^\/]+(\/[^?#]*)/)[1], // open link in current environment
150
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
151
151
  )
152
152
  this.$nextTick(() => this.$emit('selected-title'))
153
153
 
@@ -158,8 +158,8 @@ export default {
158
158
  onSelectResult(card) {
159
159
  navigateToPath.call(
160
160
  this,
161
- card?.selectedCard?.link,
162
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
161
+ card?.selectedCard?.link.match(/https?:\/\/[^\/]+(\/[^?#]*)/)[1], // title click is used for search result, but change also included here
162
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
163
163
  )
164
164
  this.$nextTick(() => this.$emit('selected'))
165
165
 
@@ -173,8 +173,8 @@ export default {
173
173
  this.$route?.path === '/'
174
174
  ? 'Homepage'
175
175
  : this.$route?.path === '/search'
176
- ? 'Search Page'
177
- : this.$route?.path,
176
+ ? 'Search Page'
177
+ : this.$route?.path,
178
178
  label: this.query,
179
179
  results: this.results.length,
180
180
  clickText: card.selectedCard.title,
@@ -183,7 +183,7 @@ export default {
183
183
  targetElement: card.ev.target,
184
184
  industry: card?.selectedCard?.industry,
185
185
  topic: card?.selectedCard?.topic,
186
- language: card?.selectedCard?.language
186
+ language: card?.selectedCard?.language,
187
187
  }
188
188
  this.$gtm.push({ event: 'custom.search.site.result', ...attrs })
189
189
  },
@@ -191,8 +191,8 @@ export default {
191
191
  if (this.$nuxt) {
192
192
  this.$router.push('/search?q=' + this.query)
193
193
  }
194
- }
195
- }
194
+ },
195
+ },
196
196
  }
197
197
  </script>
198
198
 
@@ -22,18 +22,18 @@
22
22
  @update="searchType !== 'googlerest' ? onChange : () => {}"
23
23
  @keyup.enter="onChange"
24
24
  ></b-form-input>
25
- <b-input-group-append>
25
+ <template #append>
26
26
  <b-button size="sm" class="search-button" @click="onSearch"
27
27
  ><span class="not-extra-small-screen">Search</span>
28
28
  <img alt="search icon" :src="searchIcon"
29
29
  /></b-button>
30
- </b-input-group-append>
30
+ </template>
31
31
  </b-input-group>
32
32
  <search-listing
33
33
  v-if="loadSearchList && (searchResults || isLoading)"
34
34
  :class="{
35
35
  [`wcl-search__typeahead`]: isTypeahead,
36
- [`wcl-search__modal`]: isTypeahead
36
+ [`wcl-search__modal`]: isTypeahead,
37
37
  }"
38
38
  :is-loading="isLoading"
39
39
  :is-typeahead="isTypeahead"
@@ -56,35 +56,35 @@
56
56
  import axios from 'axios'
57
57
  import searchIcon from '../../../assets/icons/search.svg?url'
58
58
  import SearchListing from './SearchListing/index.vue'
59
- import { BButton, BInputGroup, BFormInput, BInputGroupAppend } from 'bootstrap-vue-next'
59
+ import { BButton, BInputGroup, BFormInput } from 'bootstrap-vue-next'
60
60
 
61
61
  export default {
62
- components: { SearchListing, BButton, BInputGroup, BFormInput, BInputGroupAppend },
62
+ components: { SearchListing, BButton, BInputGroup, BFormInput },
63
63
  props: {
64
64
  pageLimit: {
65
65
  type: Number,
66
- required: true
66
+ required: true,
67
67
  },
68
68
  contentParser: {
69
69
  type: Function,
70
- required: true
70
+ required: true,
71
71
  },
72
72
  isTypeahead: {
73
73
  type: Boolean,
74
- required: true
74
+ required: true,
75
75
  },
76
76
  initialSearchQuery: {
77
77
  type: String,
78
- default: ''
78
+ default: '',
79
79
  },
80
80
  googleSearchFlag: {
81
81
  type: String,
82
- default: 'solar'
82
+ default: 'solar',
83
83
  },
84
84
  visibleSearchList: {
85
85
  type: Boolean,
86
- default: true
87
- }
86
+ default: true,
87
+ },
88
88
  },
89
89
  data() {
90
90
  return {
@@ -95,16 +95,16 @@ export default {
95
95
  field_language: '8671',
96
96
  searchType: this.googleSearchFlag,
97
97
  googleSearchScript: false,
98
- loadSearchList: this.visibleSearchList
98
+ loadSearchList: this.visibleSearchList,
99
99
  }
100
100
  },
101
101
  computed: {
102
102
  searchClass() {
103
103
  return {
104
104
  'wcl-search': true,
105
- 'wcl-search__google': this.searchType !== 'solar'
105
+ 'wcl-search__google': this.searchType !== 'solar',
106
106
  }
107
- }
107
+ },
108
108
  },
109
109
  mounted() {
110
110
  if (this.searchType === 'google') {
@@ -134,9 +134,9 @@ export default {
134
134
  key: apiKey,
135
135
  cx: searchEngineId,
136
136
  q: query,
137
- start: start
138
- }
139
- }
137
+ start: start,
138
+ },
139
+ },
140
140
  )
141
141
  return response
142
142
  } catch (error) {
@@ -156,7 +156,7 @@ export default {
156
156
  apiKey,
157
157
  searchEngineId,
158
158
  searchQuery,
159
- start
159
+ start,
160
160
  )
161
161
  let items = []
162
162
  let suggest = response?.data?.spelling?.correctedQuery || ''
@@ -165,7 +165,7 @@ export default {
165
165
  apiKey,
166
166
  searchEngineId,
167
167
  response?.data?.spelling?.correctedQuery,
168
- start
168
+ start,
169
169
  )
170
170
  items = response?.data?.items
171
171
  } else if (response?.data?.items) {
@@ -181,7 +181,7 @@ export default {
181
181
  // Return the modified item with the updated title
182
182
  return {
183
183
  ...item,
184
- title: modifiedTitle
184
+ title: modifiedTitle,
185
185
  }
186
186
  })
187
187
 
@@ -190,7 +190,7 @@ export default {
190
190
  numFound: Number(totalResults),
191
191
  query: this.searchQuery,
192
192
  results: modifiedResults,
193
- suggestion: suggest
193
+ suggestion: suggest,
194
194
  }
195
195
  } else {
196
196
  this.searchResults = {
@@ -198,7 +198,7 @@ export default {
198
198
  numFound: 0,
199
199
  query: this.searchQuery ?? '',
200
200
  results: [],
201
- suggestion: suggest
201
+ suggestion: suggest,
202
202
  }
203
203
  }
204
204
  this.$emit('loading', false)
@@ -214,10 +214,10 @@ export default {
214
214
  this.$route?.path === '/'
215
215
  ? 'Homepage'
216
216
  : this.$route?.path === '/search'
217
- ? 'Search Page'
218
- : this.$route?.path,
217
+ ? 'Search Page'
218
+ : this.$route?.path,
219
219
  label: this.searchQuery,
220
- results: this.searchResults.numFound
220
+ results: this.searchResults.numFound,
221
221
  }
222
222
  if (this.$gtm) {
223
223
  this.$gtm.push({ event: 'custom.search.site.submit', ...attrs })
@@ -291,7 +291,7 @@ export default {
291
291
  query: searchQuery,
292
292
  start: pageNr > 1 ? (pageNr - 1) * pageLimit : 0,
293
293
  rows: pageLimit,
294
- field_language: this.field_language
294
+ field_language: this.field_language,
295
295
  }).then((res) => {
296
296
  if (res.numFound) {
297
297
  this.searchResults = {
@@ -299,7 +299,7 @@ export default {
299
299
  numFound: Number(res.numFound),
300
300
  query: searchQuery,
301
301
  results: res.results,
302
- suggestion: null
302
+ suggestion: null,
303
303
  }
304
304
  } else {
305
305
  this.searchResults = {
@@ -307,7 +307,7 @@ export default {
307
307
  numFound: 0,
308
308
  query: this.searchQuery ?? '',
309
309
  results: [],
310
- suggestion: null
310
+ suggestion: null,
311
311
  }
312
312
  }
313
313
  this.$emit('loading', false)
@@ -322,10 +322,10 @@ export default {
322
322
  this.$route?.path === '/'
323
323
  ? 'Homepage'
324
324
  : this.$route?.path === '/search'
325
- ? 'Search Page'
326
- : this.$route?.path,
325
+ ? 'Search Page'
326
+ : this.$route?.path,
327
327
  label: this.searchQuery,
328
- results: this.searchResults.numFound
328
+ results: this.searchResults.numFound,
329
329
  }
330
330
  if (this.$gtm) {
331
331
  this.$gtm.push({ event: 'custom.search.site.submit', ...attrs })
@@ -340,7 +340,9 @@ export default {
340
340
  if (this.googleSearchScript === false) {
341
341
  const script = document.createElement('script')
342
342
  script.async = true
343
- script.src = process.env.GOOGLE__URL
343
+ script.src = this.$config
344
+ ? this.$config.public.googleSearch
345
+ : process.env.GOOGLE__URL
344
346
  document.head.appendChild(script)
345
347
  this.googleSearchScript = true
346
348
 
@@ -386,8 +388,8 @@ export default {
386
388
 
387
389
  this.setupPaginationEvent()
388
390
  }
389
- }
390
- }
391
+ },
392
+ },
391
393
  }
392
394
  </script>
393
395
  <style lang="scss" scoped>
@@ -454,8 +456,8 @@ export default {
454
456
  display: none;
455
457
  }
456
458
  }
457
- // Google Search styling
458
- &.wcl-search__google {
459
+ // Google Search styling
460
+ &.wcl-search__google {
459
461
  :deep(form.gsc-search-box) {
460
462
  position: relative;
461
463
  display: -ms-flexbox;
@@ -3,26 +3,12 @@ import SingleImage from './index.vue'
3
3
  export default {
4
4
  title: 'SubComponents/SingleImage',
5
5
  component: SingleImage,
6
+ tags: ['autodocs'],
6
7
  argTypes: {
7
8
  size: {
8
9
  control: 'select',
9
10
  options: ['page', 'content', 'half-content']
10
- },
11
- caption: {
12
- control: 'text'
13
- },
14
- url: {
15
- control: 'text',
16
- },
17
- rtl: {
18
- control: 'boolean'
19
- },
20
- presentation: {
21
- control: 'boolean'
22
- },
23
- alt: {
24
- control: 'text',
25
- }
11
+ }
26
12
  }
27
13
  }
28
14
 
@@ -17,6 +17,7 @@ const mockData = {
17
17
  export default {
18
18
  title: 'SubComponents/VideoThumbnail',
19
19
  component: { VideoThumbnail },
20
+ tags: ['autodocs'],
20
21
  argTypes: {
21
22
  video: {
22
23
  control: 'object',
@@ -16,29 +16,28 @@
16
16
  </div>
17
17
  </a>
18
18
  <!-- Modal -->
19
- <div v-if="showModal" :id="wcl-video-modal" class="modal" tabindex="-1" aria-modal="true" role="dialog" style="display: block;">
20
- <div class="modal-dialog modal-dialog-scrollable">
21
- <div class="modal-content">
22
- <div class="modal-header">
23
- <button type="button" class="btn-close" @click="showModal = !showModal" aria-label="close"></button>
24
- </div>
25
- <div class="modal-body">
26
- <div class="wcl-video-modal__video">
27
- <video-media
28
- :media-title="video.mediaTitle"
29
- :media-description="video.mediaDescription"
30
- :video-id="video.id"
31
- :provider="video.provider"
32
- :transcript="video.transcript"
33
- :transcript-title="video.transcriptTitle"
34
- :fix-width="video.fixWidth"
35
- :rtl="video.rtl"
36
- />
37
- </div>
38
- </div>
39
- </div>
19
+ <b-modal
20
+ :id="`wcl-video-modal`"
21
+ v-model="showModal"
22
+ scrollable
23
+ class="wcl-video-modal__modal"
24
+ no-footer
25
+ size="xl"
26
+ >
27
+ <div class="wcl-video-modal__video" v-if="showModal">
28
+ <video-media
29
+ :media-title="video.mediaTitle"
30
+ :media-description="video.mediaDescription"
31
+ :video-id="video.id"
32
+ :provider="video.provider"
33
+ :transcript="video.transcript"
34
+ :transcript-title="video.transcriptTitle"
35
+ :fix-width="video.fixWidth"
36
+ :rtl="video.rtl"
37
+ />
40
38
  </div>
41
- </div>
39
+ <template #footer><div></div></template>
40
+ </b-modal>
42
41
  </div>
43
42
  </template>
44
43
 
@@ -46,148 +45,61 @@
46
45
  import VideoMedia from './../../Paragraphs/VideoPlayer/index.vue'
47
46
  import VideoPlay from './../../../assets/icons/video-play.svg?url'
48
47
  import IconClose from './../../../assets/icons/icon-close.svg?url'
48
+ import { BModal } from 'bootstrap-vue-next'
49
+ import axios from 'axios'
49
50
 
50
51
  export default {
51
52
  name: 'VideoThumbnail',
52
53
  components: {
53
54
  VideoMedia,
54
- IconClose
55
+ IconClose,
56
+ 'b-modal': BModal,
55
57
  },
56
58
  props: {
57
59
  video: {
58
60
  type: Object,
59
- required: true
60
- }
61
+ required: true,
62
+ },
61
63
  },
62
64
  data() {
63
65
  return {
64
66
  VideoPlay,
65
67
  IconClose,
66
68
  showModal: false,
67
- videoThumbnail: ''
69
+ videoThumbnail: '',
68
70
  }
69
71
  },
70
72
  mounted() {
71
73
  this.getVideoThumbnail()
72
74
  },
73
75
  methods: {
74
- async getVideoThumbnail() {
75
- if (this.video.provider === 'youtube') {
76
- this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/maxresdefault.jpg`
77
- if (process.env.IS_STORYBOOK !== 'TRUE') {
78
- let thumbnailAvailable = await this.$axios?.get(
79
- `${window.location.origin}/api/v2/urlExists?url=${this.videoThumbnail}`
80
- )
81
- if (
82
- thumbnailAvailable &&
83
- thumbnailAvailable.data &&
84
- thumbnailAvailable.data.valid === false
85
- ) {
76
+ async getVideoThumbnail(url) {
77
+ try {
78
+ if (this.video.provider === 'youtube') {
79
+ this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/maxresdefault.jpg`
80
+ const response = await axios.head(this.videoThumbnail)
81
+ if (response.status === 200) {
82
+ } else {
86
83
  this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/hqdefault.jpg`
87
84
  }
85
+ } else if (this.video.provider === 'vimeo') {
86
+ let thumbnail = await axios.get(
87
+ `https://vimeo.com/api/v2/video/${this.video.id}.json`,
88
+ )
89
+ if (thumbnail.data) {
90
+ this.videoThumbnail = thumbnail.data[0].thumbnail_large
91
+ }
92
+ }
93
+ } catch (error) {
94
+ if (error.response && error.response.status === 404) {
95
+ this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/hqdefault.jpg`
96
+ } else {
88
97
  }
89
- } else if (this.video.provider === 'vimeo') {
90
- this.getVimeoThumbnail()
91
98
  }
92
99
  },
93
- async getVimeoThumbnail() {
94
- let thumbnail = await this.$axios.get(
95
- `https://vimeo.com/api/v2/video/${this.video.id}.json`
96
- )
97
- if (thumbnail.data) {
98
- this.videoThumbnail = thumbnail.data[0].thumbnail_large
99
- }
100
- }
101
- }
100
+ },
102
101
  }
103
102
  </script>
104
- <style lang="scss">
105
- @import '../../../includes/scss/all';
106
- // The modal styling
107
- .modal {
108
- background: rgba(0,0,0,0.5)
109
- }
110
-
111
- .modal-backdrop {
112
- display: none;
113
- }
114
- .modal-dialog {
115
- max-width: 1110px;
116
- @media only screen and (max-width: 1150px) {
117
- margin: {
118
- left: 15px;
119
- right: 15px;
120
- top: 15px;
121
- }
122
- }
123
-
124
- .modal-content {
125
- position: relative;
126
- border-radius: 8px;
127
- }
128
-
129
- .modal-header {
130
- position: absolute;
131
- top: 0;
132
- height: 45px;
133
- background: $white;
134
- z-index: 1;
135
- width: 100%;
136
-
137
- &__wrap {
138
- position: relative;
139
- width: 100%;
140
- a {
141
- position: absolute;
142
- right: 0;
143
- z-index: 1;
144
- &.rtl {
145
- right: auto;
146
- left: 0;
147
- }
148
- svg {
149
- fill: $black;
150
- }
151
- }
152
- }
153
- }
154
- .modal-body {
155
- padding: 32px;
156
- margin-top: 16px;
157
- .video-player {
158
- @include fp(min-height, 250, 588);
159
- }
160
-
161
- .paragraph--video-media {
162
- margin: 0;
163
- .container {
164
- padding: 0;
165
- width: 100%;
166
- }
167
- h3 {
168
- margin: 0;
169
- font-style: normal;
170
- font-weight: bold;
171
- font-size: 28px;
172
- line-height: 32px;
173
- margin-bottom: 16px;
174
- display: inline-block;
175
- width: 98%;
176
- }
177
- }
178
- .section-group__block {
179
- max-width: 100%;
180
- }
181
- }
182
- .modal-header,
183
- .modal-footer {
184
- border: none;
185
- }
186
- .modal-footer {
187
- display: none;
188
- }
189
- }
190
- </style>
191
103
  <style lang="scss" scoped>
192
104
  @import '../../../includes/scss/all';
193
105
  // Outside wrapper style
@@ -7,14 +7,16 @@ $grid-breakpoints: (
7
7
  sm: 576px,
8
8
  md: 768px,
9
9
  lg: 992px,
10
- xl: 1200px
10
+ xl: 1200px,
11
+ xxl: 1400px
11
12
  );
12
13
 
13
14
  $container-max-widths: (
14
15
  sm: 540px,
15
16
  md: 720px,
16
17
  lg: 960px,
17
- xl: 1140px
18
+ xl: 1140px,
19
+ xxl: 1320px
18
20
  );
19
21
 
20
22
  // Minimum breakpoint width. Null for the smallest (first) breakpoint.
@@ -1,3 +1,4 @@
1
+ @use "sass:math";
1
2
  $current-rootsize: 16px;
2
3
 
3
4
  // Returns a unitless number
@@ -53,10 +54,11 @@ $current-rootsize: 16px;
53
54
 
54
55
 
55
56
  // Converts a px value to rems. Should only work in absolute em document context (root level), unless $context is specified
56
- @function px-to-rem($value, $context: $current-rootsize) {
57
- @if unit($context) == "rem" {
58
- $context: rem-to-px($context);
59
- }
57
+ /**/
58
+ /* @function px-to-rem($value, $context: $current-rootsize) {
59
+ //@if unit($context) == "rem" {
60
+ // $context: rem-to-px($context);
61
+ //}
60
62
  $result: ();
61
63
 
62
64
  @each $val in $value {
@@ -67,6 +69,25 @@ $current-rootsize: 16px;
67
69
  }
68
70
  }
69
71
  @return $result;
72
+ } */
73
+
74
+ @function px-to-rem($px, $context: $current-rootsize) {
75
+ @if unit($context) == "rem" {
76
+ $context: rem-to-px($context);
77
+ }
78
+ $result: ();
79
+
80
+ // Iterate over each value in the $px list
81
+ @each $val in $px {
82
+ @if unit($val) == "px" {
83
+ // Convert px to rem
84
+ $val: #{math.div($val, $context)}rem;
85
+ }
86
+ // Append converted value to the result list
87
+ $result: append($result, $val);
88
+ }
89
+
90
+ @return $result;
70
91
  }
71
92
 
72
93
  // Converts a em value to rems. Should only work in absolute em document context (root level), unless $context is specified