@worksafevictoria/wcl7.5 1.0.0

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 (392) hide show
  1. package/.editorconfig +13 -0
  2. package/.env +4 -0
  3. package/.eslintrc.cjs +10 -0
  4. package/.eslintrc.js +25 -0
  5. package/.husky/commit-msg +4 -0
  6. package/.prettierrc +5 -0
  7. package/.prettierrc.json +8 -0
  8. package/.storybook/main.js +18 -0
  9. package/.storybook/preview.js +34 -0
  10. package/LICENSE +21 -0
  11. package/README.md +159 -0
  12. package/babel.config.js +8 -0
  13. package/bin/clean.sh +52 -0
  14. package/bin/deploy.sh +25 -0
  15. package/ci/build/Build_Validation.md +35 -0
  16. package/ci/build/build_validation.yml +47 -0
  17. package/ci/release/Release_Beta.md +39 -0
  18. package/ci/release/Release_Master.md +29 -0
  19. package/ci/release/beta.yml +69 -0
  20. package/ci/release/master.yml +39 -0
  21. package/commitlint.config.js +1 -0
  22. package/index.html +13 -0
  23. package/jest.config.js +21 -0
  24. package/lib/detect-browser.js +33 -0
  25. package/lib/utility.js +59 -0
  26. package/lib/utility.test.js +15 -0
  27. package/package.json +93 -0
  28. package/public/favicon.ico +0 -0
  29. package/src/assets/base.css +86 -0
  30. package/src/assets/fonts/VIC-Bold.eot +0 -0
  31. package/src/assets/fonts/VIC-Bold.ttf +0 -0
  32. package/src/assets/fonts/VIC-Bold.woff +0 -0
  33. package/src/assets/fonts/VIC-Bold.woff2 +0 -0
  34. package/src/assets/fonts/VIC-BoldItalic.eot +0 -0
  35. package/src/assets/fonts/VIC-BoldItalic.ttf +0 -0
  36. package/src/assets/fonts/VIC-BoldItalic.woff +0 -0
  37. package/src/assets/fonts/VIC-BoldItalic.woff2 +0 -0
  38. package/src/assets/fonts/VIC-ExtraLight.eot +0 -0
  39. package/src/assets/fonts/VIC-ExtraLight.ttf +0 -0
  40. package/src/assets/fonts/VIC-ExtraLight.woff +0 -0
  41. package/src/assets/fonts/VIC-ExtraLight.woff2 +0 -0
  42. package/src/assets/fonts/VIC-ExtraLightItalic.eot +0 -0
  43. package/src/assets/fonts/VIC-ExtraLightItalic.ttf +0 -0
  44. package/src/assets/fonts/VIC-ExtraLightItalic.woff +0 -0
  45. package/src/assets/fonts/VIC-ExtraLightItalic.woff2 +0 -0
  46. package/src/assets/fonts/VIC-Italic.eot +0 -0
  47. package/src/assets/fonts/VIC-Italic.ttf +0 -0
  48. package/src/assets/fonts/VIC-Italic.woff +0 -0
  49. package/src/assets/fonts/VIC-Italic.woff2 +0 -0
  50. package/src/assets/fonts/VIC-Light.eot +0 -0
  51. package/src/assets/fonts/VIC-Light.ttf +0 -0
  52. package/src/assets/fonts/VIC-Light.woff +0 -0
  53. package/src/assets/fonts/VIC-Light.woff2 +0 -0
  54. package/src/assets/fonts/VIC-LightItalic.eot +0 -0
  55. package/src/assets/fonts/VIC-LightItalic.ttf +0 -0
  56. package/src/assets/fonts/VIC-LightItalic.woff +0 -0
  57. package/src/assets/fonts/VIC-LightItalic.woff2 +0 -0
  58. package/src/assets/fonts/VIC-Medium.eot +0 -0
  59. package/src/assets/fonts/VIC-Medium.ttf +0 -0
  60. package/src/assets/fonts/VIC-Medium.woff +0 -0
  61. package/src/assets/fonts/VIC-Medium.woff2 +0 -0
  62. package/src/assets/fonts/VIC-MediumItalic.eot +0 -0
  63. package/src/assets/fonts/VIC-MediumItalic.ttf +0 -0
  64. package/src/assets/fonts/VIC-MediumItalic.woff +0 -0
  65. package/src/assets/fonts/VIC-MediumItalic.woff2 +0 -0
  66. package/src/assets/fonts/VIC-Regular.eot +0 -0
  67. package/src/assets/fonts/VIC-Regular.ttf +0 -0
  68. package/src/assets/fonts/VIC-Regular.woff +0 -0
  69. package/src/assets/fonts/VIC-Regular.woff2 +0 -0
  70. package/src/assets/fonts/VIC-SemiBold.eot +0 -0
  71. package/src/assets/fonts/VIC-SemiBold.ttf +0 -0
  72. package/src/assets/fonts/VIC-SemiBold.woff +0 -0
  73. package/src/assets/fonts/VIC-SemiBold.woff2 +0 -0
  74. package/src/assets/fonts/VIC-SemiBoldItalic.eot +0 -0
  75. package/src/assets/fonts/VIC-SemiBoldItalic.ttf +0 -0
  76. package/src/assets/fonts/VIC-SemiBoldItalic.woff +0 -0
  77. package/src/assets/fonts/VIC-SemiBoldItalic.woff2 +0 -0
  78. package/src/assets/icons/AppFooter/australian-aboriginal-flag.svg +7 -0
  79. package/src/assets/icons/AppFooter/facebook-ws-footer.svg +58 -0
  80. package/src/assets/icons/AppFooter/facebook-ww-footer.svg +59 -0
  81. package/src/assets/icons/AppFooter/instagram-ww-footer.svg +70 -0
  82. package/src/assets/icons/AppFooter/linkedin-ws-footer.svg +59 -0
  83. package/src/assets/icons/AppFooter/linkedin-ww-footer.svg +60 -0
  84. package/src/assets/icons/AppFooter/logo-workwell-reversed.svg +45 -0
  85. package/src/assets/icons/AppFooter/pride-flag.svg +12 -0
  86. package/src/assets/icons/AppFooter/torres-strait-islanders-flag.svg +9 -0
  87. package/src/assets/icons/AppFooter/twitter-ws-footer.svg +58 -0
  88. package/src/assets/icons/AppFooter/twitter-ww-footer.svg +59 -0
  89. package/src/assets/icons/AppFooter/worksafe-footer-logo.svg +9 -0
  90. package/src/assets/icons/AppFooter/youtube-ws-footer.svg +55 -0
  91. package/src/assets/icons/AppFooter/youtube-ww-footer.svg +56 -0
  92. package/src/assets/icons/AppHeader/chev-down-16.svg +17 -0
  93. package/src/assets/icons/AppHeader/chev-left-24px.svg +13 -0
  94. package/src/assets/icons/AppHeader/chev-right-16px.svg +25 -0
  95. package/src/assets/icons/AppHeader/chev-right-24px.svg +13 -0
  96. package/src/assets/icons/AppHeader/close-32px.svg +15 -0
  97. package/src/assets/icons/AppHeader/menu-32px.svg +20 -0
  98. package/src/assets/icons/AppHeader/search-32px.svg +19 -0
  99. package/src/assets/icons/Email-circle-black.svg +4 -0
  100. package/src/assets/icons/Info-circle-fill.svg +10 -0
  101. package/src/assets/icons/Phone-circle-black.svg +4 -0
  102. package/src/assets/icons/SocialShare/bookmark-white.svg +3 -0
  103. package/src/assets/icons/SocialShare/bookmark-ww-footer.svg +57 -0
  104. package/src/assets/icons/SocialShare/bookmark.svg +56 -0
  105. package/src/assets/icons/SocialShare/email-white.svg +3 -0
  106. package/src/assets/icons/SocialShare/facebook-white.svg +3 -0
  107. package/src/assets/icons/SocialShare/facebook-ws-footer.svg +58 -0
  108. package/src/assets/icons/SocialShare/facebook-ww-footer.svg +59 -0
  109. package/src/assets/icons/SocialShare/facebook.svg +1 -0
  110. package/src/assets/icons/SocialShare/office-file-pdf.svg +1 -0
  111. package/src/assets/icons/SocialShare/print.svg +3 -0
  112. package/src/assets/icons/SocialShare/twitter-white.svg +3 -0
  113. package/src/assets/icons/SocialShare/twitter-ws-footer.svg +58 -0
  114. package/src/assets/icons/SocialShare/twitter-ww-footer.svg +59 -0
  115. package/src/assets/icons/SocialShare/twitter.svg +1 -0
  116. package/src/assets/icons/Strip/AlertDismiss.svg +4 -0
  117. package/src/assets/icons/Strip/Arrow right.svg +4 -0
  118. package/src/assets/icons/Strip/Chevron right.svg +3 -0
  119. package/src/assets/icons/Strip/Dismiss.svg +4 -0
  120. package/src/assets/icons/Strip/Exclamation triangle fill.svg +8 -0
  121. package/src/assets/icons/Strip/Info circle fill.svg +15 -0
  122. package/src/assets/icons/Strip/Information.svg +15 -0
  123. package/src/assets/icons/Strip/Warning.svg +8 -0
  124. package/src/assets/icons/arrow-left.svg +9 -0
  125. package/src/assets/icons/arrow-right.svg +9 -0
  126. package/src/assets/icons/bookmark.svg +56 -0
  127. package/src/assets/icons/brand-VicStateGov-logo-reversed.svg +72 -0
  128. package/src/assets/icons/bullet-empty.svg +3 -0
  129. package/src/assets/icons/bullet.svg +3 -0
  130. package/src/assets/icons/caret-down.svg +1 -0
  131. package/src/assets/icons/caret-left.svg +9 -0
  132. package/src/assets/icons/caret-right.svg +9 -0
  133. package/src/assets/icons/caret-up.svg +1 -0
  134. package/src/assets/icons/chev-down-white.svg +3 -0
  135. package/src/assets/icons/chev-down.svg +3 -0
  136. package/src/assets/icons/chev-left.svg +3 -0
  137. package/src/assets/icons/chev-right.svg +3 -0
  138. package/src/assets/icons/chev-up.svg +3 -0
  139. package/src/assets/icons/clock.svg +3 -0
  140. package/src/assets/icons/close.svg +1 -0
  141. package/src/assets/icons/cross.svg +3 -0
  142. package/src/assets/icons/document.svg +1 -0
  143. package/src/assets/icons/earth.svg +1 -0
  144. package/src/assets/icons/email.svg +6 -0
  145. package/src/assets/icons/external-link-16px.svg +18 -0
  146. package/src/assets/icons/external-link.svg +4 -0
  147. package/src/assets/icons/icon-close.svg +15 -0
  148. package/src/assets/icons/instagram.svg +3 -0
  149. package/src/assets/icons/key.svg +3 -0
  150. package/src/assets/icons/location.svg +10 -0
  151. package/src/assets/icons/phone.svg +3 -0
  152. package/src/assets/icons/refresh.svg +3 -0
  153. package/src/assets/icons/right-arrow.svg +3 -0
  154. package/src/assets/icons/search.svg +5 -0
  155. package/src/assets/icons/tick.svg +3 -0
  156. package/src/assets/icons/video-play.svg +4 -0
  157. package/src/assets/images/hero-header-chevron.svg +9 -0
  158. package/src/assets/images/hero-header-mask.png +0 -0
  159. package/src/assets/images/hero-header-mask.svg +3 -0
  160. package/src/assets/logo.svg +1 -0
  161. package/src/assets/main.css +35 -0
  162. package/src/assets/styles/button.scss +206 -0
  163. package/src/assets/styles/focus.scss +4 -0
  164. package/src/assets/styles/generated-icons.scss +374 -0
  165. package/src/assets/styles/modal.scss +12 -0
  166. package/src/assets/styles/rtl.scss +8 -0
  167. package/src/assets/styles/storybook.scss +9 -0
  168. package/src/assets/styles/stylesheet.scss +7 -0
  169. package/src/assets/styles/webfonts.css +155 -0
  170. package/src/components/Common/CardGrid/cardgrid.stories.js +269 -0
  171. package/src/components/Common/CardGrid/index.vue +321 -0
  172. package/src/components/Common/CardGridItem/card-grid-item-caret.vue +164 -0
  173. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +163 -0
  174. package/src/components/Common/CardGridItem/index.vue +848 -0
  175. package/src/components/Common/FilterButton/index.vue +93 -0
  176. package/src/components/Containers/Column/index.stories.js +35 -0
  177. package/src/components/Containers/Column/index.vue +14 -0
  178. package/src/components/Containers/Container/index.stories.js +13 -0
  179. package/src/components/Containers/Container/index.vue +15 -0
  180. package/src/components/Containers/HomepageHeader/index.stories.js +78 -0
  181. package/src/components/Containers/HomepageHeader/index.vue +186 -0
  182. package/src/components/Containers/Row/index.stories.js +12 -0
  183. package/src/components/Containers/Row/index.vue +14 -0
  184. package/src/components/Containers/SectionGroup/index.stories.js +148 -0
  185. package/src/components/Containers/SectionGroup/index.vue +310 -0
  186. package/src/components/Containers/Subheader/index.stories.js +74 -0
  187. package/src/components/Containers/Subheader/index.vue +149 -0
  188. package/src/components/Global/AlertStrip/index.stories.js +13 -0
  189. package/src/components/Global/AlertStrip/index.vue +145 -0
  190. package/src/components/Global/AlertStrip/styles.scss +78 -0
  191. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +105 -0
  192. package/src/components/Global/AppFooter/FooterSocialShare/styles.scss +41 -0
  193. package/src/components/Global/AppFooter/index.stories.js +24 -0
  194. package/src/components/Global/AppFooter/index.vue +632 -0
  195. package/src/components/Global/AppFooter/storiesConst.js +110 -0
  196. package/src/components/Global/AppFooter/styles.scss +393 -0
  197. package/src/components/Global/AppHeader/ModalSearch/index.vue +66 -0
  198. package/src/components/Global/AppHeader/ModalSearch/styles.scss +43 -0
  199. package/src/components/Global/AppHeader/includes.scss +68 -0
  200. package/src/components/Global/AppHeader/index.stories.js +82 -0
  201. package/src/components/Global/AppHeader/index.vue +878 -0
  202. package/src/components/Global/AppHeader/mobile.scss +240 -0
  203. package/src/components/Global/AppHeader/styles.scss +371 -0
  204. package/src/components/Global/BackToTop/index.stories.js +18 -0
  205. package/src/components/Global/BackToTop/index.vue +67 -0
  206. package/src/components/Global/BackToTop/styles.scss +46 -0
  207. package/src/components/Global/ContrastMode/index.stories.js +39 -0
  208. package/src/components/Global/ContrastMode/index.vue +308 -0
  209. package/src/components/Global/Cookies/Constants.js +72 -0
  210. package/src/components/Global/Cookies/index.storieshide.js +45 -0
  211. package/src/components/Global/Cookies/index.vue +453 -0
  212. package/src/components/Global/Cookies/styles.scss +259 -0
  213. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +196 -0
  214. package/src/components/Global/DirectoryFilters/index.vue +176 -0
  215. package/src/components/Global/GlobalNotice/index.vue +266 -0
  216. package/src/components/Global/HeroHeader/index.stories.js +93 -0
  217. package/src/components/Global/HeroHeader/index.vue +343 -0
  218. package/src/components/Global/HeroHeader/styles.scss +480 -0
  219. package/src/components/Global/ProgressBar/index.stories.js +51 -0
  220. package/src/components/Global/ProgressBar/index.vue +58 -0
  221. package/src/components/Global/ProgressBar/styles.scss +116 -0
  222. package/src/components/Global/SocialShare/index.stories.js +18 -0
  223. package/src/components/Global/SocialShare/index.vue +318 -0
  224. package/src/components/Global/Strip/index.stories.js +70 -0
  225. package/src/components/Global/Strip/index.vue +357 -0
  226. package/src/components/HelloWorld.vue +44 -0
  227. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +232 -0
  228. package/src/components/Paragraphs/Accordion/StepperItem/index.vue +274 -0
  229. package/src/components/Paragraphs/Accordion/index.stories.js +84 -0
  230. package/src/components/Paragraphs/Accordion/index.vue +202 -0
  231. package/src/components/Paragraphs/Breakout/index.stories.js +39 -0
  232. package/src/components/Paragraphs/Breakout/index.vue +115 -0
  233. package/src/components/Paragraphs/BrowseContent/index.stories.js +220 -0
  234. package/src/components/Paragraphs/BrowseContent/index.vue +298 -0
  235. package/src/components/Paragraphs/BrowseContent/switcher.vue +63 -0
  236. package/src/components/Paragraphs/Calculator/CardContainer/index.vue +278 -0
  237. package/src/components/Paragraphs/Calculator/CardContainer/styles.scss +152 -0
  238. package/src/components/Paragraphs/Calculator/Constants.js +246 -0
  239. package/src/components/Paragraphs/Calculator/RiskLevel/index.vue +124 -0
  240. package/src/components/Paragraphs/Calculator/RiskLevel/styles.scss +73 -0
  241. package/src/components/Paragraphs/Calculator/index.stories.js +27 -0
  242. package/src/components/Paragraphs/Calculator/index.vue +284 -0
  243. package/src/components/Paragraphs/Calculator/styles.scss +49 -0
  244. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +59 -0
  245. package/src/components/Paragraphs/Directory/Records/ISP/distance.js +46 -0
  246. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +88 -0
  247. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +59 -0
  248. package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +91 -0
  249. package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +49 -0
  250. package/src/components/Paragraphs/Directory/Records/index.vue +203 -0
  251. package/src/components/Paragraphs/Directory/Records/styles.scss +129 -0
  252. package/src/components/Paragraphs/Directory/constants.js +79 -0
  253. package/src/components/Paragraphs/Directory/index.vue +334 -0
  254. package/src/components/Paragraphs/ListGroup/Constants.js +72 -0
  255. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +71 -0
  256. package/src/components/Paragraphs/ListGroup/index.vue +333 -0
  257. package/src/components/Paragraphs/ListGroup/list-group.stories.js +64 -0
  258. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +66 -0
  259. package/src/components/Paragraphs/MarketingBanner/index.stories.js +65 -0
  260. package/src/components/Paragraphs/MarketingBanner/index.vue +118 -0
  261. package/src/components/Paragraphs/MarketingBanner/styles.scss +87 -0
  262. package/src/components/Paragraphs/ProofPoints/index.stories.js +173 -0
  263. package/src/components/Paragraphs/ProofPoints/index.vue +64 -0
  264. package/src/components/Paragraphs/RelatedInformation/index.stories.js +32 -0
  265. package/src/components/Paragraphs/RelatedInformation/index.vue +62 -0
  266. package/src/components/Paragraphs/RelatedInformation/styles.scss +50 -0
  267. package/src/components/Paragraphs/RichText/index.stories.js +393 -0
  268. package/src/components/Paragraphs/RichText/index.vue +113 -0
  269. package/src/components/Paragraphs/RichText/scss/base.scss +355 -0
  270. package/src/components/Paragraphs/RichText/scss/definition-list.scss +35 -0
  271. package/src/components/Paragraphs/RichText/scss/styled-list.scss +152 -0
  272. package/src/components/Paragraphs/RichText/scss/table.scss +85 -0
  273. package/src/components/Paragraphs/ScrollSpy/index.stories.js +184 -0
  274. package/src/components/Paragraphs/ScrollSpy/index.vue +147 -0
  275. package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +29 -0
  276. package/src/components/Paragraphs/SelectableCards/cardbody.vue +25 -0
  277. package/src/components/Paragraphs/SelectableCards/cardtop.vue +113 -0
  278. package/src/components/Paragraphs/SelectableCards/index.stories.js +27 -0
  279. package/src/components/Paragraphs/SelectableCards/index.vue +116 -0
  280. package/src/components/Paragraphs/Statistics/index.stories.js +106 -0
  281. package/src/components/Paragraphs/Statistics/index.vue +95 -0
  282. package/src/components/Paragraphs/TabbedCards/TempIcons/cake-black-18dp.svg +1 -0
  283. package/src/components/Paragraphs/TabbedCards/TempIcons/commute-black-18dp.svg +1 -0
  284. package/src/components/Paragraphs/TabbedCards/TempIcons/fire_extinguisher-black-18dp.svg +1 -0
  285. package/src/components/Paragraphs/TabbedCards/TempIcons/free_breakfast-black-18dp.svg +1 -0
  286. package/src/components/Paragraphs/TabbedCards/TempIcons/portrait-black-18dp.svg +1 -0
  287. package/src/components/Paragraphs/TabbedCards/TempIcons/storefront-black-18dp.svg +1 -0
  288. package/src/components/Paragraphs/TabbedCards/TempIcons/tag_faces-black-18dp.svg +1 -0
  289. package/src/components/Paragraphs/TabbedCards/index.stories.js +36 -0
  290. package/src/components/Paragraphs/TabbedCards/index.vue +393 -0
  291. package/src/components/Paragraphs/Tabs/index.stories.js +60 -0
  292. package/src/components/Paragraphs/Tabs/index.vue +127 -0
  293. package/src/components/Paragraphs/Tabs/styles.scss +150 -0
  294. package/src/components/Paragraphs/TabulatedData/Constants.js +158 -0
  295. package/src/components/Paragraphs/TabulatedData/index.stories.js +39 -0
  296. package/src/components/Paragraphs/TabulatedData/index.vue +145 -0
  297. package/src/components/Paragraphs/TaskFinder/index.stories.js +45 -0
  298. package/src/components/Paragraphs/TaskFinder/index.vue +192 -0
  299. package/src/components/Paragraphs/TaskFinder/pdf/index.vue +109 -0
  300. package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +146 -0
  301. package/src/components/Paragraphs/TextMedia/MediaTypes/Image/index.vue +24 -0
  302. package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +29 -0
  303. package/src/components/Paragraphs/TextMedia/index.stories.js +94 -0
  304. package/src/components/Paragraphs/TextMedia/index.vue +150 -0
  305. package/src/components/Paragraphs/VideoGrid/index.stories.js +167 -0
  306. package/src/components/Paragraphs/VideoGrid/index.vue +124 -0
  307. package/src/components/Paragraphs/VideoPlayer/index.stories.js +95 -0
  308. package/src/components/Paragraphs/VideoPlayer/index.vue +110 -0
  309. package/src/components/Paragraphs/Webform/index.stories.js +70 -0
  310. package/src/components/Paragraphs/Webform/index.vue +103 -0
  311. package/src/components/SubComponents/Breadcrumb/constants.js +15 -0
  312. package/src/components/SubComponents/Breadcrumb/index.stories.js +22 -0
  313. package/src/components/SubComponents/Breadcrumb/index.vue +91 -0
  314. package/src/components/SubComponents/CardGroup/cardbody.vue +109 -0
  315. package/src/components/SubComponents/CardGroup/cardtop.vue +106 -0
  316. package/src/components/SubComponents/CardGroup/index.stories.js +145 -0
  317. package/src/components/SubComponents/CardGroup/index.vue +297 -0
  318. package/src/components/SubComponents/CtaButton/index.stories.js +357 -0
  319. package/src/components/SubComponents/CtaButton/index.vue +256 -0
  320. package/src/components/SubComponents/FormAddressPostcode/index.stories.js +43 -0
  321. package/src/components/SubComponents/FormAddressPostcode/index.vue +314 -0
  322. package/src/components/SubComponents/FormInstance/index.stories.js +8 -0
  323. package/src/components/SubComponents/FormInstance/index.vue +12 -0
  324. package/src/components/SubComponents/GoogleSearch/index.stories.js +8 -0
  325. package/src/components/SubComponents/GoogleSearch/index.vue +405 -0
  326. package/src/components/SubComponents/Icon/README.md +40 -0
  327. package/src/components/SubComponents/Icon/example.js +41 -0
  328. package/src/components/SubComponents/Icon/index.stories.js +84 -0
  329. package/src/components/SubComponents/Icon/index.vue +127 -0
  330. package/src/components/SubComponents/Icon/styles.scss +38 -0
  331. package/src/components/SubComponents/Loading/index.stories.js +9 -0
  332. package/src/components/SubComponents/Loading/index.vue +15 -0
  333. package/src/components/SubComponents/MediaPlayer/index.stories.js +58 -0
  334. package/src/components/SubComponents/MediaPlayer/index.vue +69 -0
  335. package/src/components/SubComponents/Pagination/index.stories.js +119 -0
  336. package/src/components/SubComponents/Pagination/index.vue +184 -0
  337. package/src/components/SubComponents/Pagination/pagination.js +58 -0
  338. package/src/components/SubComponents/ResourceGroup/List/index.stories.js +268 -0
  339. package/src/components/SubComponents/ResourceGroup/cardbody.vue +221 -0
  340. package/src/components/SubComponents/ResourceGroup/cardfooter.vue +61 -0
  341. package/src/components/SubComponents/ResourceGroup/cardtop.vue +94 -0
  342. package/src/components/SubComponents/ResourceGroup/index.stories.js +268 -0
  343. package/src/components/SubComponents/ResourceGroup/index.vue +575 -0
  344. package/src/components/SubComponents/ResourceGroup/styles.scss +317 -0
  345. package/src/components/SubComponents/ResourceGroup/switcher.vue +63 -0
  346. package/src/components/SubComponents/Search/SearchListing/index.vue +217 -0
  347. package/src/components/SubComponents/Search/index.stories.js +43 -0
  348. package/src/components/SubComponents/Search/index.vue +238 -0
  349. package/src/components/SubComponents/SingleImage/index.stories.js +60 -0
  350. package/src/components/SubComponents/SingleImage/index.vue +98 -0
  351. package/src/components/SubComponents/VideoThumbnail/index.stories.js +41 -0
  352. package/src/components/SubComponents/VideoThumbnail/index.vue +239 -0
  353. package/src/components/TheWelcome.vue +88 -0
  354. package/src/components/WelcomeItem.vue +87 -0
  355. package/src/components/icons/IconCommunity.vue +7 -0
  356. package/src/components/icons/IconDocumentation.vue +7 -0
  357. package/src/components/icons/IconEcosystem.vue +7 -0
  358. package/src/components/icons/IconSupport.vue +7 -0
  359. package/src/components/icons/IconTooling.vue +19 -0
  360. package/src/includes/scss/all.scss +2 -0
  361. package/src/includes/scss/mixins/all.scss +6 -0
  362. package/src/includes/scss/mixins/src/focus.scss +38 -0
  363. package/src/includes/scss/mixins/src/fp.scss +31 -0
  364. package/src/includes/scss/mixins/src/grid.scss +125 -0
  365. package/src/includes/scss/mixins/src/mq.scss +30 -0
  366. package/src/includes/scss/mixins/src/rtl.scss +8 -0
  367. package/src/includes/scss/mixins/src/units.scss +110 -0
  368. package/src/includes/scss/vars/all.scss +2 -0
  369. package/src/includes/scss/vars/src/breakpoints.scss +20 -0
  370. package/src/includes/scss/vars/src/colors.module.scss +53 -0
  371. package/src/includes/scss/vars/src/colors.scss +53 -0
  372. package/src/index.js +116 -0
  373. package/src/main.js +18 -0
  374. package/src/mock/accordion.js +104 -0
  375. package/src/mock/app-header.js +683 -0
  376. package/src/mock/control-selectable-cards.js +58 -0
  377. package/src/mock/jest.svgtransformer.js +7 -0
  378. package/src/mock/list-group.js +46 -0
  379. package/src/mock/proof-points.js +55 -0
  380. package/src/mock/related-info.js +44 -0
  381. package/src/mock/selectable-cards.js +48 -0
  382. package/src/mock/statistics.js +63 -0
  383. package/src/mock/styleMock.js +1 -0
  384. package/src/mock/tabbed-cards.js +197 -0
  385. package/src/mock/task-finder.js +68 -0
  386. package/src/mock/video-grid.js +409 -0
  387. package/src/mock/video-media.js +51 -0
  388. package/src/public/places/api/v1/geocode/json +69 -0
  389. package/src/public/places/api/v1/place/autocomplete/json +226 -0
  390. package/stylelint.config.js +63 -0
  391. package/vite.config.js +19 -0
  392. package/vitest.config.js +14 -0
@@ -0,0 +1,150 @@
1
+ <!-- eslint-disable vue/no-v-html -->
2
+ <template>
3
+ <section-group
4
+ class="wcl-media-text"
5
+ :rtl="rtl"
6
+ :background-variant="hasBgColor ? 'light' : 'none'"
7
+ :class="{ flip, hideImageMob }"
8
+ >
9
+ <template v-slot:content>
10
+ <row align-v="center">
11
+ <column sm="5" :order="flip ? 2 : 1">
12
+ <media-image
13
+ v-if="mediaType === 'image' && image"
14
+ :image-alt="image && image.alt ? image.alt : ''"
15
+ :image-url="image && image.url"
16
+ />
17
+ <media-video
18
+ v-if="mediaType === 'video'"
19
+ :video="video"
20
+ :storybook="storybook"
21
+ />
22
+ </column>
23
+ <column class="wcl-media-text__content" sm="7" :order="flip ? 1 : 2">
24
+ <rich-text
25
+ v-if="titleText"
26
+ class="wcl-media-text__title"
27
+ :tag="titleTag"
28
+ :content="titleText"
29
+ />
30
+ <div class="wcl-media-text__content-wrap">
31
+ <rich-text v-if="content" :content="content" />
32
+ </div>
33
+ </column>
34
+ </row>
35
+ </template>
36
+ </section-group>
37
+ </template>
38
+
39
+ <script>
40
+ import SectionGroup from './../../Containers/SectionGroup/index.vue'
41
+ import Row from './../../Containers/Row/index.vue'
42
+ import Column from './../../Containers/Column/index.vue'
43
+ import MediaImage from './MediaTypes/Image/index.vue'
44
+ import MediaVideo from './MediaTypes/Video/index.vue'
45
+ import RichText from './../RichText/index.vue'
46
+
47
+ export default {
48
+ name: 'TextMedia',
49
+ components: {
50
+ Row,
51
+ Column,
52
+ MediaImage,
53
+ MediaVideo,
54
+ RichText,
55
+ SectionGroup
56
+ },
57
+ props: {
58
+ mediaType: {
59
+ type: String,
60
+ required: true
61
+ },
62
+ content: {
63
+ type: String,
64
+ required: false,
65
+ default: ''
66
+ },
67
+ titleText: {
68
+ type: String,
69
+ required: false,
70
+ default: ''
71
+ },
72
+ titleTag: {
73
+ type: String,
74
+ required: false,
75
+ default: 'h3'
76
+ },
77
+ image: {
78
+ type: Object,
79
+ default: () => {}
80
+ },
81
+ video: {
82
+ type: Object,
83
+ default: () => {}
84
+ },
85
+ hasBgColor: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ flip: {
90
+ type: Boolean,
91
+ default: false
92
+ },
93
+ hideImageMob: {
94
+ type: Boolean,
95
+ default: false
96
+ },
97
+ rtl: {
98
+ type: Boolean,
99
+ default: false
100
+ },
101
+ workwell: {
102
+ type: Boolean,
103
+ default: false
104
+ },
105
+ storybook: {
106
+ type: Boolean,
107
+ default: false
108
+ }
109
+ }
110
+ }
111
+ </script>
112
+
113
+ <style lang="scss" scoped>
114
+ @import '../../../includes/scss/all';
115
+
116
+ .wcl-media-text {
117
+ .wysiwyg {
118
+ :deep(.cta-button:last-child) {
119
+ @media screen and (max-width: 540px) {
120
+ margin-top: 0;
121
+ margin-bottom: 0;
122
+ }
123
+ }
124
+
125
+ :deep(p) {
126
+ @media screen and (max-width: 540px) {
127
+ margin-bottom: 32px;
128
+ &:last-child {
129
+ margin-bottom: 24px;
130
+ }
131
+ &:empty {
132
+ display: none;
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ &.hideImageMob {
139
+ @include mq('xs') {
140
+ img {
141
+ display: none;
142
+ }
143
+ }
144
+ }
145
+
146
+ &__title {
147
+ margin-bottom: 24px;
148
+ }
149
+ }
150
+ </style>
@@ -0,0 +1,167 @@
1
+ import Container from '../../Containers/Container/index.vue'
2
+ import Row from '../../Containers/Row/index.vue'
3
+ import Column from '../../Containers/Column/index.vue'
4
+ import VideoGrid from './index.vue'
5
+
6
+ const mockData = {
7
+ title: 'Video Grid Title',
8
+ description:
9
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
10
+ rtl: false,
11
+ threeColumns: true,
12
+ greyBackground: true,
13
+ cta: {
14
+ text: 'Click here',
15
+ url: 'https://www.example.com',
16
+ workwell: false
17
+ },
18
+ videos: [
19
+ {
20
+ mediaTitle: 'Youtube Video',
21
+ mediaDescription:
22
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
23
+ id: '3FLapMJUmZQ',
24
+ provider: 'youtube',
25
+ transcriptTitle: 'Transcript',
26
+ transcript:
27
+ '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.',
28
+ rtl: false,
29
+ fixWidth: false
30
+ },
31
+ {
32
+ mediaTitle: 'Youtube Video',
33
+ mediaDescription:
34
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
35
+ id: 'UmgStjXqhz4',
36
+ provider: 'youtube',
37
+ transcriptTitle: 'Transcript',
38
+ transcript:
39
+ '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.',
40
+ rtl: false,
41
+ fixWidth: false
42
+ },
43
+ {
44
+ mediaTitle: 'Youtube Video',
45
+ mediaDescription:
46
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
47
+ id: 'DV6kvZAEeyA',
48
+ provider: 'youtube',
49
+ transcriptTitle: 'Transcript',
50
+ transcript:
51
+ '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.',
52
+ rtl: false,
53
+ fixWidth: false
54
+ },
55
+ {
56
+ mediaTitle: 'Youtube Video',
57
+ mediaDescription:
58
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
59
+ id: 'kZi6UZkyHGE',
60
+ provider: 'youtube',
61
+ transcriptTitle: 'Transcript',
62
+ transcript:
63
+ '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.',
64
+ rtl: false,
65
+ fixWidth: false
66
+ },
67
+ {
68
+ mediaTitle: 'Youtube Video',
69
+ mediaDescription:
70
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
71
+ id: 'EEeDFnoUxio',
72
+ provider: 'youtube',
73
+ transcriptTitle: 'Transcript',
74
+ transcript:
75
+ '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.',
76
+ rtl: false,
77
+ fixWidth: false
78
+ },
79
+ {
80
+ mediaTitle: 'Youtube Video',
81
+ mediaDescription:
82
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
83
+ id: 'I0pMOrx8HTY',
84
+ provider: 'youtube',
85
+ transcriptTitle: 'Transcript',
86
+ transcript:
87
+ '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.',
88
+ rtl: false,
89
+ fixWidth: false
90
+ },
91
+ {
92
+ mediaTitle: 'Youtube Video',
93
+ mediaDescription:
94
+ 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.',
95
+ id: 'NhpnDBV3QnI',
96
+ provider: 'youtube',
97
+ transcriptTitle: 'Transcript',
98
+ transcript:
99
+ '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.',
100
+ rtl: false,
101
+ fixWidth: false
102
+ }
103
+ ]
104
+ }
105
+
106
+ export default {
107
+ title: 'Paragraphs/VideoGrid',
108
+ component: { VideoGrid, Container, Row, Column },
109
+ argTypes: {
110
+ gridTitle: {
111
+ control: 'text',
112
+ defaultValue: mockData.title
113
+ },
114
+ titleTag: {
115
+ 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
142
+ }
143
+ }
144
+ }
145
+
146
+ const YoutubeContent = (args, { argTypes }) => ({
147
+ components: { VideoGrid, Container, Row, Column },
148
+ props: Object.keys(argTypes),
149
+ data() {
150
+ return {
151
+ videos: mockData.videos
152
+ }
153
+ },
154
+ template: `
155
+ <container>
156
+ <row>
157
+ <column>
158
+ <video-grid
159
+ v-bind="$props"
160
+ />
161
+ </column>
162
+ </row>
163
+ </container>
164
+ `
165
+ })
166
+
167
+ export const Youtube = YoutubeContent.bind({})
@@ -0,0 +1,124 @@
1
+ <template>
2
+ <card-grid
3
+ :title="gridTitle"
4
+ :title-tag="titleTag"
5
+ :rtl="rtl"
6
+ :sub-heading="gridDescription"
7
+ :cards="videoList"
8
+ :columns-per-row="threeColumns ? 3 : 2"
9
+ :is-selectable="false"
10
+ :class="`video-grid ${threeColumns ? 'items-3' : 'items-2'}`"
11
+ :background-variant="greyBackground ? 'light' : 'none'"
12
+ >
13
+ <template v-slot:cardItem="{ card }">
14
+ <card-grid-item :rtl="rtl" :background-variant="'transparent'">
15
+ <template v-slot:cardDescription>
16
+ <video-thumbnail :video="card" />
17
+ <p class="video-grid__cellTitle">{{ card.mediaTitle }}</p>
18
+ </template>
19
+ </card-grid-item>
20
+ </template>
21
+ <template v-if="cta" v-slot:cardGridFooter>
22
+ <column>
23
+ <cta-button
24
+ :url="cta.url"
25
+ :type="cta.type"
26
+ :alt="cta.alt"
27
+ :rtl="rtl"
28
+ :workwell="cta.workwell"
29
+ :class="`m-0 float-${!rtl ? 'right' : 'left'}`"
30
+ >{{ cta.text }}</cta-button
31
+ >
32
+ </column>
33
+ </template>
34
+ </card-grid>
35
+ </template>
36
+
37
+ <script>
38
+ import CardGrid from './../../Common/CardGrid/index.vue'
39
+ import CardGridItem from './../../Common/CardGridItem/index.vue'
40
+ import Column from './../../Containers/Column/index.vue'
41
+ import VideoThumbnail from './../../SubComponents/VideoThumbnail/index.vue'
42
+ import CtaButton from './../../SubComponents/CtaButton/index.vue'
43
+
44
+ export default {
45
+ name: 'VideoGrid',
46
+ components: {
47
+ CtaButton,
48
+ VideoThumbnail,
49
+ Column,
50
+ CardGrid,
51
+ CardGridItem
52
+ },
53
+ props: {
54
+ gridTitle: {
55
+ type: String,
56
+ default: null
57
+ },
58
+ titleTag: {
59
+ type: String,
60
+ default: 'h2'
61
+ },
62
+ gridDescription: {
63
+ type: String,
64
+ default: null
65
+ },
66
+ videoList: {
67
+ type: Array,
68
+ required: true
69
+ },
70
+ rtl: {
71
+ type: Boolean,
72
+ default: false
73
+ },
74
+ threeColumns: {
75
+ type: Boolean,
76
+ default: false
77
+ },
78
+ greyBackground: {
79
+ type: Boolean,
80
+ default: false
81
+ },
82
+ cta: {
83
+ type: Object,
84
+ default: null
85
+ }
86
+ }
87
+ }
88
+ </script>
89
+
90
+ <style lang="scss" scoped>
91
+ @import '../../../includes/scss/all';
92
+
93
+ .wcl-video-thumbnail-wrapper {
94
+ margin-bottom: 0px;
95
+ }
96
+
97
+ .video-grid {
98
+ &__cellTitle {
99
+ margin-top: 12px;
100
+ margin-bottom: 0px;
101
+ font-weight: 600;
102
+ }
103
+
104
+ &.items-2 {
105
+ :deep(.wcl-video-thumbnail-wrapper a .video-thumbnail__image) {
106
+ max-height: 304px;
107
+ @include mq('mm') {
108
+ max-height: auto;
109
+ }
110
+ }
111
+ }
112
+ &.items-3 {
113
+ :deep(.wcl-video-thumbnail-wrapper a .video-thumbnail__image) {
114
+ max-height: 200px;
115
+ @include mq('mm') {
116
+ max-height: auto;
117
+ }
118
+ }
119
+ :deep(.video-thumbnail) {
120
+ min-height: auto;
121
+ }
122
+ }
123
+ }
124
+ </style>
@@ -0,0 +1,95 @@
1
+ import Container from '../../Containers/Container/index.vue'
2
+ import Row from '../../Containers/Row/index.vue'
3
+ import Column from '../../Containers/Column/index.vue'
4
+ import VideoMedia from './index.vue'
5
+
6
+ const mockData = {
7
+ videoId: { YouTube: '3FLapMJUmZQ', Vimeo: '60139366' },
8
+ provider: { YouTube: 'youtube', Vimeo: 'vimeo' },
9
+ transcriptTitle: 'Transcript',
10
+ transcript:
11
+ '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.'
12
+ }
13
+
14
+ const youtubeTitle = 'YouTube title'
15
+ const vimeoTitle = 'Vimeo title'
16
+ const fixWidthTitle = 'FixWidth title'
17
+ const mediaDesc = 'Vestibulum rutrum quam vitae fringilla tincidunt. Suspendisse nec tortor urna. Ut laoreet sodales nisi, quis iaculis nulla iaculis vitae. Donec sagittis faucibus lacus eget blandit.'
18
+
19
+ export default {
20
+ title: 'Paragraphs/VideoPlayer',
21
+ component: { VideoMedia, Container, Row, Column },
22
+ argTypes: {
23
+ titleTag: {
24
+ control: 'select',
25
+ options: ['h2', 'h3']
26
+ },
27
+ mediaTitle: {
28
+ control: 'text'
29
+ },
30
+ mediaDescription: {
31
+ control: 'text'
32
+
33
+ },
34
+ videoId: {
35
+ control: 'select',
36
+ options: [mockData.videoId.YouTube, mockData.videoId.Vimeo]
37
+ },
38
+ provider: {
39
+ control: 'select',
40
+ options: [mockData.provider.YouTube, mockData.provider.Vimeo],
41
+ },
42
+ transcriptTitle: {
43
+ control: 'text'
44
+ },
45
+ transcript: {
46
+ control: 'text'
47
+ }
48
+ }
49
+ }
50
+
51
+ const Template = (args) => ({
52
+ components: {VideoMedia, Container, Row, Column},
53
+ setup () {
54
+ return { args }
55
+ },
56
+ template: '<video-media v-bind="args"/>'
57
+ })
58
+
59
+ export const Youtube = Template.bind({})
60
+
61
+ Youtube.args = {
62
+ titleTag: 'h2',
63
+ videoId: mockData.videoId.YouTube,
64
+ mediaTitle: youtubeTitle,
65
+ mediaDescription: mediaDesc,
66
+ provider: mockData.provider.YouTube,
67
+ transcriptTitle: mockData.transcriptTitle,
68
+ transcript: mockData.transcript
69
+ }
70
+
71
+
72
+ export const Vimeo = Template.bind({})
73
+
74
+ Vimeo.args = {
75
+ titleTag: 'h2',
76
+ videoId: mockData.videoId.Vimeo,
77
+ mediaTitle: vimeoTitle,
78
+ mediaDescription: mediaDesc,
79
+ provider: mockData.provider.Vimeo,
80
+ transcriptTitle: mockData.transcriptTitle,
81
+ transcript: mockData.transcript
82
+ }
83
+
84
+ export const FixWidth = Template.bind({})
85
+
86
+ FixWidth.args = {
87
+ titleTag: 'h2',
88
+ videoId: mockData.videoId.Vimeo,
89
+ mediaTitle: fixWidthTitle,
90
+ mediaDescription: mediaDesc,
91
+ provider: mockData.provider.Vimeo,
92
+ transcriptTitle: mockData.transcriptTitle,
93
+ transcript: mockData.transcript,
94
+ fixWidth: true
95
+ }
@@ -0,0 +1,110 @@
1
+ <template>
2
+ <div class="video-media">
3
+ <section-group
4
+ :rtl="rtl"
5
+ :title="mediaTitle"
6
+ :title-tag="titleTag"
7
+ :sub-heading="mediaDescription"
8
+ :no-padding-bottom="true"
9
+ :size="fixWidth ? 'content' : 'page'"
10
+ @isMobileOrTabletView="(e) => (isMobileOrTabletView = e)"
11
+ >
12
+ <div>
13
+ <video-player
14
+ :provider="provider"
15
+ :video-id="videoId"
16
+ class="video-media__video-player"
17
+ :rtl="rtl"
18
+ />
19
+ </div>
20
+ </section-group>
21
+ <accordion
22
+ :accordion-list="accordion"
23
+ :option="'close-all'"
24
+ class="video-media__transcript"
25
+ />
26
+ </div>
27
+ </template>
28
+
29
+ <script>
30
+ import SectionGroup from '../../Containers/SectionGroup/index.vue'
31
+ import VideoPlayer from '../../SubComponents/MediaPlayer/index.vue'
32
+ import Accordion from '../Accordion/index.vue'
33
+
34
+ export default {
35
+ name: 'VideoMedia',
36
+ components: {
37
+ VideoPlayer,
38
+ SectionGroup,
39
+ Accordion
40
+ },
41
+ props: {
42
+ mediaTitle: {
43
+ type: String,
44
+ default: null
45
+ },
46
+ mediaDescription: {
47
+ type: String,
48
+ default: null
49
+ },
50
+ provider: {
51
+ type: String,
52
+ required: true
53
+ },
54
+ videoId: {
55
+ type: String,
56
+ required: true
57
+ },
58
+ transcriptTitle: {
59
+ type: String,
60
+ default: null
61
+ },
62
+ transcript: {
63
+ type: String,
64
+ default: null
65
+ },
66
+ fixWidth: {
67
+ type: Boolean,
68
+ default: false
69
+ },
70
+ rtl: {
71
+ type: Boolean,
72
+ default: false
73
+ },
74
+ titleTag: {
75
+ type: String,
76
+ default: 'h2'
77
+ }
78
+ },
79
+ computed: {
80
+ accordion() {
81
+ return [
82
+ {
83
+ field_title: this.transcriptTitle,
84
+ field_rich_text: {
85
+ value: this.transcript
86
+ }
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ }
92
+ </script>
93
+
94
+ <style lang="scss" scoped>
95
+ @import '../../../includes/scss/all';
96
+ .video-media {
97
+ &__transcript {
98
+ padding: 0;
99
+ margin-top: 12px;
100
+ }
101
+
102
+ :deep(.section-group--size-content .video-player) {
103
+ @include fp(min-height, 250, 411);
104
+ }
105
+
106
+ :deep(.section-group--size-page .video-player) {
107
+ @include fp(min-height, 250, 625);
108
+ }
109
+ }
110
+ </style>