@worksafevictoria/wcl7.5 1.1.0-beta.11 → 1.1.0-beta.111
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.
- package/.env +1 -3
- package/.storybook/preview.js +20 -13
- package/README.md +4 -4
- package/bin/deploy.sh +1 -1
- package/ci/build/build_validation.yml +2 -2
- package/ci/release/beta.yml +4 -3
- package/ci/release/master.yml +4 -3
- package/jest.config.js +10 -8
- package/lib/utility.js +10 -8
- package/package.json +17 -14
- package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
- package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
- package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
- package/src/assets/icons/WSV-reversed.svg +20 -0
- package/src/assets/icons/contrast.svg +4 -0
- package/src/assets/icons/lang.svg +13 -0
- package/src/assets/icons/login.svg +4 -0
- package/src/assets/styles/modal.scss +51 -0
- package/src/components/Common/CardGrid/cardgrid.stories.js +4 -57
- package/src/components/Common/CardGrid/index.vue +69 -49
- package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
- package/src/components/Common/CardGridItem/card-grid-item-icon.vue +15 -19
- package/src/components/Common/CardGridItem/index.vue +171 -178
- package/src/components/Containers/Carousel/index.stories.js +30 -0
- package/src/components/Containers/Carousel/index.vue +172 -0
- package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
- package/src/components/Containers/HomepageHeader/index.vue +16 -26
- package/src/components/Containers/HomepageHeaderNew/index.stories.js +75 -0
- package/src/components/Containers/HomepageHeaderNew/index.vue +227 -0
- package/src/components/Containers/SectionGroup/index.vue +1 -1
- package/src/components/Containers/Subheader/index.vue +30 -20
- package/src/components/Global/AlertStrip/index.stories.js +1 -0
- package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
- package/src/components/Global/AppFooter/index.stories.js +1 -0
- package/src/components/Global/AppFooter/index.vue +42 -33
- package/src/components/Global/AppFooter/styles.scss +3 -0
- package/src/components/Global/AppHeader/index.vue +49 -52
- package/src/components/Global/AppHeaderNew/ModalSearch/index.vue +71 -0
- package/src/components/Global/AppHeaderNew/ModalSearch/styles.scss +43 -0
- package/src/components/Global/AppHeaderNew/includes.scss +71 -0
- package/src/components/Global/AppHeaderNew/index.stories.js +74 -0
- package/src/components/Global/AppHeaderNew/index.vue +1176 -0
- package/src/components/Global/AppHeaderNew/mobile.scss +269 -0
- package/src/components/Global/AppHeaderNew/styles.scss +642 -0
- package/src/components/Global/BackToTop/index.vue +8 -8
- package/src/components/Global/ContrastMode/index.stories.js +1 -0
- package/src/components/Global/ContrastMode/index.vue +1 -1
- package/src/components/Global/Cookies/index.stories.js +16 -10
- package/src/components/Global/Cookies/index.vue +209 -172
- package/src/components/Global/Cookies/styles.scss +54 -54
- package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -132
- package/src/components/Global/DirectoryFilters/index.vue +3 -0
- package/src/components/Global/GlobalNotice/index.stories.js +7 -1
- package/src/components/Global/GlobalNotice/index.vue +84 -84
- package/src/components/Global/HeroHeader/index.stories.js +3 -4
- package/src/components/Global/HeroHeader/index.vue +28 -29
- package/src/components/Global/ProgressBar/index.stories.js +6 -16
- package/src/components/Global/SocialShare/index.vue +3 -2
- package/src/components/Global/Strip/index.stories.js +1 -17
- package/src/components/Global/Strip/index.vue +9 -5
- package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +29 -21
- package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
- package/src/components/Paragraphs/Accordion/index.stories.js +22 -18
- package/src/components/Paragraphs/Accordion/index.vue +52 -48
- package/src/components/Paragraphs/Breakout/index.stories.js +1 -0
- package/src/components/Paragraphs/BrowseContent/index.stories.js +1 -0
- package/src/components/Paragraphs/BrowseContent/index.vue +42 -32
- package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
- package/src/components/Paragraphs/Calculator/Constants.js +2 -2
- package/src/components/Paragraphs/Calculator/index.stories.js +1 -0
- package/src/components/Paragraphs/Chart/Constants.js +952 -952
- package/src/components/Paragraphs/Chart/index.vue +232 -241
- package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.stories.js +34 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.vue +321 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/index.stories.js +19 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +345 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/pagination.vue +179 -0
- package/src/components/Paragraphs/Directory/Records/CJ/index.vue +4 -4
- package/src/components/Paragraphs/Directory/Records/ISP/index.vue +6 -6
- package/src/components/Paragraphs/Directory/Records/PRS/index.stories.js +34 -0
- package/src/components/Paragraphs/Directory/Records/PRS/index.vue +7 -3
- package/src/components/Paragraphs/Directory/Records/PRS/recordContent.vue +3 -3
- package/src/components/Paragraphs/Directory/Records/PRS/recordDetails.vue +3 -3
- package/src/components/Paragraphs/Directory/Records/index.storieshide.js +47 -0
- package/src/components/Paragraphs/Directory/Records/index.vue +55 -36
- package/src/components/Paragraphs/Directory/constants.js +23 -5
- package/src/components/Paragraphs/Directory/index.vue +56 -45
- package/src/components/Paragraphs/Directory/{Records/styles.scss → styles.scss} +5 -3
- package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +1 -0
- package/src/components/Paragraphs/ListGroup/index.vue +60 -47
- package/src/components/Paragraphs/ListGroup/list-group.stories.js +1 -0
- package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +1 -0
- package/src/components/Paragraphs/Map/Constants.js +4790 -0
- package/src/components/Paragraphs/Map/index.mdx +29 -0
- package/src/components/Paragraphs/Map/index.stories.js +15 -0
- package/src/components/Paragraphs/Map/index.vue +313 -0
- package/src/components/Paragraphs/Map/lga-map.json +33462 -0
- package/src/components/Paragraphs/Map/postcode_location.json +3543 -0
- package/src/components/Paragraphs/MarketingBanner/index.stories.js +4 -18
- package/src/components/Paragraphs/ProofPoints/index.stories.js +19 -20
- package/src/components/Paragraphs/RelatedInformation/index.stories.js +8 -0
- package/src/components/Paragraphs/RichText/index.stories.js +2 -1
- package/src/components/Paragraphs/ScrollSpy/index.stories.js +3 -1
- package/src/components/Paragraphs/ScrollSpy/index.vue +26 -12
- package/src/components/Paragraphs/SelectableCards/Control/index.stories.js +1 -0
- package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
- package/src/components/Paragraphs/Statistics/index.stories.js +1 -0
- package/src/components/Paragraphs/Statistics/index.vue +1 -0
- package/src/components/Paragraphs/TabbedCards/index.stories.js +8 -27
- package/src/components/Paragraphs/TabbedCards/index.vue +68 -103
- package/src/components/Paragraphs/Tabs/index.stories.js +1 -0
- package/src/components/Paragraphs/Tabs/index.vue +19 -17
- package/src/components/Paragraphs/TabulatedData/index.stories.js +6 -5
- package/src/components/Paragraphs/TabulatedData/index.vue +63 -35
- package/src/components/Paragraphs/TaskFinder/index.stories.js +2 -2
- package/src/components/Paragraphs/TaskFinder/index.vue +3 -3
- package/src/components/Paragraphs/TaskFinder/task-finder-column.vue +1 -1
- package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
- package/src/components/Paragraphs/TextMedia/index.stories.js +1 -0
- package/src/components/Paragraphs/TextMedia/index.vue +20 -16
- package/src/components/Paragraphs/VideoGrid/index.stories.js +44 -19
- package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
- package/src/components/Paragraphs/VideoPlayer/index.stories.js +1 -13
- package/src/components/Paragraphs/Webform/index.stories.js +94 -57
- package/src/components/Paragraphs/Webform/index.vue +11 -8
- package/src/components/SubComponents/Breadcrumb/index.stories.js +3 -11
- package/src/components/SubComponents/Breadcrumb/index.vue +4 -0
- package/src/components/SubComponents/CardGroup/index.stories.js +1 -30
- package/src/components/SubComponents/CardGroup/index.vue +38 -28
- package/src/components/SubComponents/CtaButton/index.stories.js +1 -24
- package/src/components/SubComponents/CtaButton/index.vue +27 -25
- package/src/components/SubComponents/FormAddressPostcode/index.stories.js +3 -28
- package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
- package/src/components/SubComponents/FormInstance/components/alert/index.vue +129 -0
- package/src/components/SubComponents/FormInstance/components/custom/base-formio.js +77 -0
- package/src/components/SubComponents/FormInstance/components/custom/code-formio.js +35 -0
- package/src/components/SubComponents/FormInstance/components/custom/custom-formio-registry.js +30 -0
- package/src/components/SubComponents/FormInstance/components/custom/range-formio.js +121 -0
- package/src/components/SubComponents/FormInstance/components/custom/rating-formio.js +121 -0
- package/src/components/SubComponents/FormInstance/components/custom/scale-formio.js +99 -0
- package/src/components/SubComponents/FormInstance/components/custom/tableselect-formio.js +200 -0
- package/src/components/SubComponents/FormInstance/components/handler/index.vue +204 -0
- package/src/components/SubComponents/FormInstance/components/renderer/index.vue +333 -0
- package/src/components/SubComponents/FormInstance/index.test.js +65 -0
- package/src/components/SubComponents/FormInstance/index.vue +55 -6
- package/src/components/SubComponents/FormInstance/models/base-form-element.js +338 -0
- package/src/components/SubComponents/FormInstance/models/form-callback-queue.js +45 -0
- package/src/components/SubComponents/FormInstance/models/form-utils.js +50 -0
- package/src/components/SubComponents/FormInstance/models/overrides/address.js +141 -0
- package/src/components/SubComponents/FormInstance/models/overrides/autocomplete.js +41 -0
- package/src/components/SubComponents/FormInstance/models/overrides/checkbox.js +14 -0
- package/src/components/SubComponents/FormInstance/models/overrides/checkboxes.js +49 -0
- package/src/components/SubComponents/FormInstance/models/overrides/code.js +27 -0
- package/src/components/SubComponents/FormInstance/models/overrides/composite.js +57 -0
- package/src/components/SubComponents/FormInstance/models/overrides/container.js +65 -0
- package/src/components/SubComponents/FormInstance/models/overrides/currency.js +17 -0
- package/src/components/SubComponents/FormInstance/models/overrides/customcomposite.js +41 -0
- package/src/components/SubComponents/FormInstance/models/overrides/date.js +126 -0
- package/src/components/SubComponents/FormInstance/models/overrides/datelist.js +73 -0
- package/src/components/SubComponents/FormInstance/models/overrides/detail.js +38 -0
- package/src/components/SubComponents/FormInstance/models/overrides/email-confirm.js +12 -0
- package/src/components/SubComponents/FormInstance/models/overrides/email.js +7 -0
- package/src/components/SubComponents/FormInstance/models/overrides/file.js +54 -0
- package/src/components/SubComponents/FormInstance/models/overrides/flexbox.js +33 -0
- package/src/components/SubComponents/FormInstance/models/overrides/hidden.js +24 -0
- package/src/components/SubComponents/FormInstance/models/overrides/likert.js +40 -0
- package/src/components/SubComponents/FormInstance/models/overrides/markup.js +47 -0
- package/src/components/SubComponents/FormInstance/models/overrides/message.js +53 -0
- package/src/components/SubComponents/FormInstance/models/overrides/moretext.js +64 -0
- package/src/components/SubComponents/FormInstance/models/overrides/multiple.js +51 -0
- package/src/components/SubComponents/FormInstance/models/overrides/number.js +22 -0
- package/src/components/SubComponents/FormInstance/models/overrides/options-other.js +34 -0
- package/src/components/SubComponents/FormInstance/models/overrides/page.js +7 -0
- package/src/components/SubComponents/FormInstance/models/overrides/phonenumber.js +13 -0
- package/src/components/SubComponents/FormInstance/models/overrides/radio.js +31 -0
- package/src/components/SubComponents/FormInstance/models/overrides/range.js +19 -0
- package/src/components/SubComponents/FormInstance/models/overrides/rating.js +47 -0
- package/src/components/SubComponents/FormInstance/models/overrides/scale.js +33 -0
- package/src/components/SubComponents/FormInstance/models/overrides/section.js +39 -0
- package/src/components/SubComponents/FormInstance/models/overrides/select.js +28 -0
- package/src/components/SubComponents/FormInstance/models/overrides/signature.js +7 -0
- package/src/components/SubComponents/FormInstance/models/overrides/submit.js +23 -0
- package/src/components/SubComponents/FormInstance/models/overrides/table.js +48 -0
- package/src/components/SubComponents/FormInstance/models/overrides/tablerow.js +20 -0
- package/src/components/SubComponents/FormInstance/models/overrides/tableselect.js +66 -0
- package/src/components/SubComponents/FormInstance/models/overrides/testing.js +47 -0
- package/src/components/SubComponents/FormInstance/models/overrides/text.js +7 -0
- package/src/components/SubComponents/FormInstance/models/overrides/textarea.js +26 -0
- package/src/components/SubComponents/FormInstance/models/overrides/textformat.js +13 -0
- package/src/components/SubComponents/FormInstance/models/overrides/time.js +13 -0
- package/src/components/SubComponents/FormInstance/models/overrides/twig.js +118 -0
- package/src/components/SubComponents/FormInstance/models/overrides/unknown.js +24 -0
- package/src/components/SubComponents/FormInstance/models/overrides/url.js +13 -0
- package/src/components/SubComponents/FormInstance/services/convert-form-element.js +49 -0
- package/src/components/SubComponents/FormInstance/services/form-api.js +47 -0
- package/src/components/SubComponents/FormInstance/services/form-render-parser.js +156 -0
- package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +68 -0
- package/src/components/SubComponents/FormInstance/services/logic-linker.js +73 -0
- package/src/components/SubComponents/FormInstance/services/logic-parser.js +173 -0
- package/src/components/SubComponents/FormInstance/services/registry-factory.js +284 -0
- package/src/components/SubComponents/FormInstance/stories/Documentation.mdx +234 -0
- package/src/components/SubComponents/FormInstance/stories/advanced.stories.js +109 -0
- package/src/components/SubComponents/FormInstance/stories/basic.stories.js +73 -0
- package/src/components/SubComponents/FormInstance/stories/build.stories.js +27 -0
- package/src/components/SubComponents/FormInstance/stories/composite.stories.js +90 -0
- package/src/components/SubComponents/FormInstance/stories/condition.stories.js +83 -0
- package/src/components/SubComponents/FormInstance/stories/custom.stories.js +69 -0
- package/src/components/SubComponents/FormInstance/stories/date.stories.js +76 -0
- package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
- package/src/components/SubComponents/FormInstance/stories/form-alert.stories.js +93 -0
- package/src/components/SubComponents/FormInstance/stories/index.stories.js +63 -0
- package/src/components/SubComponents/FormInstance/stories/layout.stories.js +85 -0
- package/src/components/SubComponents/FormInstance/stories/markup.stories.js +91 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/address.json +298 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/advancedhtml.json +23 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/autocomplete.json +34 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/basichtml.json +15 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/checkboxes.json +102 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/checkboxesother.json +197 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/container.json +134 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/customcomposite.json +469 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/date.json +19 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/datelist.json +752 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/datetime.json +89 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/details.json +63 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/email.json +18 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/emailconfirm.json +110 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/fieldset.json +62 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/flexbox.json +58 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/hidden.json +35 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/horizontalrule.json +14 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/jahd.json +1359 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/label.json +14 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/likert.json +375 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/message.json +86 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/more.json +19 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/multiple.json +142 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/number.json +35 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/quad.json +249 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/radios.json +70 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/radiosother.json +176 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/range.json +58 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rating.json +42 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rule-disabled-value.json +66 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rule-enabled-value.json +43 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rule-hidden-value.json +68 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rule-required-value.json +69 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/rule-visible-value.json +157 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/sameas.json +66 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/scale.json +200 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/section.json +63 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/select.json +41 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/selectother.json +115 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/signature.json +25 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/styles.json +81 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/table-select.json +472 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/table.json +154 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/telephone.json +18 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/textarea.json +22 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/textfield.json +66 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/time.json +20 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/token.json +260 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/twig.json +154 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/url.json +18 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/value.json +17 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/wizard.json +353 -0
- package/src/components/SubComponents/FormInstance/stories/options.stories.js +98 -0
- package/src/components/SubComponents/FormInstance/stories/style.stories.js +55 -0
- package/src/components/SubComponents/FormInstance/stories/wizard.stories.js +55 -0
- package/src/components/SubComponents/FormInstance/style.scss +185 -0
- package/src/components/SubComponents/FormInstance/tests/address.test.js +255 -0
- package/src/components/SubComponents/FormInstance/tests/advancedhtml.test.js +31 -0
- package/src/components/SubComponents/FormInstance/tests/autocomplete.test.js +38 -0
- package/src/components/SubComponents/FormInstance/tests/basichtml.test.js +31 -0
- package/src/components/SubComponents/FormInstance/tests/checkbox.test.js +29 -0
- package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +44 -0
- package/src/components/SubComponents/FormInstance/tests/checkboxesother.test.js +91 -0
- package/src/components/SubComponents/FormInstance/tests/container.test.js +66 -0
- package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +86 -0
- package/src/components/SubComponents/FormInstance/tests/date.test.js +63 -0
- package/src/components/SubComponents/FormInstance/tests/datelist.test.js +136 -0
- package/src/components/SubComponents/FormInstance/tests/datetime.test.js +54 -0
- package/src/components/SubComponents/FormInstance/tests/details.test.js +58 -0
- package/src/components/SubComponents/FormInstance/tests/email.test.js +28 -0
- package/src/components/SubComponents/FormInstance/tests/emailconfirm.test.js +79 -0
- package/src/components/SubComponents/FormInstance/tests/fieldset.test.js +63 -0
- package/src/components/SubComponents/FormInstance/tests/flexbox.test.js +71 -0
- package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +120 -0
- package/src/components/SubComponents/FormInstance/tests/form.test.js +26 -0
- package/src/components/SubComponents/FormInstance/tests/hidden.test.js +52 -0
- package/src/components/SubComponents/FormInstance/tests/horizontalrule.test.js +31 -0
- package/src/components/SubComponents/FormInstance/tests/label.test.js +31 -0
- package/src/components/SubComponents/FormInstance/tests/likert.test.js +38 -0
- package/src/components/SubComponents/FormInstance/tests/message.test.js +89 -0
- package/src/components/SubComponents/FormInstance/tests/more.test.js +32 -0
- package/src/components/SubComponents/FormInstance/tests/multiple.test.js +71 -0
- package/src/components/SubComponents/FormInstance/tests/number.test.js +51 -0
- package/src/components/SubComponents/FormInstance/tests/radios.test.js +34 -0
- package/src/components/SubComponents/FormInstance/tests/radiosother.test.js +79 -0
- package/src/components/SubComponents/FormInstance/tests/range.test.js +32 -0
- package/src/components/SubComponents/FormInstance/tests/rating.test.js +38 -0
- package/src/components/SubComponents/FormInstance/tests/rule-disabled.test.js +128 -0
- package/src/components/SubComponents/FormInstance/tests/rule-enabled-value.test.js +78 -0
- package/src/components/SubComponents/FormInstance/tests/rule-hidden.test.js +131 -0
- package/src/components/SubComponents/FormInstance/tests/rule-required-value.test.js +144 -0
- package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +619 -0
- package/src/components/SubComponents/FormInstance/tests/sameas.test.js +94 -0
- package/src/components/SubComponents/FormInstance/tests/scale.test.js +43 -0
- package/src/components/SubComponents/FormInstance/tests/section.test.js +63 -0
- package/src/components/SubComponents/FormInstance/tests/select.test.js +45 -0
- package/src/components/SubComponents/FormInstance/tests/selectother.test.js +82 -0
- package/src/components/SubComponents/FormInstance/tests/signature.test.js +32 -0
- package/src/components/SubComponents/FormInstance/tests/styles.test.js +73 -0
- package/src/components/SubComponents/FormInstance/tests/table-select.test.js +93 -0
- package/src/components/SubComponents/FormInstance/tests/table.test.js +97 -0
- package/src/components/SubComponents/FormInstance/tests/telephone.test.js +29 -0
- package/src/components/SubComponents/FormInstance/tests/textarea.test.js +29 -0
- package/src/components/SubComponents/FormInstance/tests/textfield.test.js +48 -0
- package/src/components/SubComponents/FormInstance/tests/time.test.js +29 -0
- package/src/components/SubComponents/FormInstance/tests/token.test.js +33 -0
- package/src/components/SubComponents/FormInstance/tests/twig.test.js +74 -0
- package/src/components/SubComponents/FormInstance/tests/url.test.js +48 -0
- package/src/components/SubComponents/FormInstance/tests/value.test.js +31 -0
- package/src/components/SubComponents/FormInstance/tests/wizard.test.js +145 -0
- package/src/components/SubComponents/Icon/index.stories.js +1 -6
- package/src/components/SubComponents/MediaPlayer/index.stories.js +1 -6
- package/src/components/SubComponents/Pagination/index.stories.js +3 -8
- package/src/components/SubComponents/Pagination/index.vue +19 -18
- package/src/components/SubComponents/ResourceGroup/List/index.stories.js +3 -2
- package/src/components/SubComponents/ResourceGroup/index.vue +292 -281
- package/src/components/SubComponents/ResourceGroup/styles.scss +2 -0
- package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
- package/src/components/SubComponents/Search/index.vue +47 -40
- package/src/components/SubComponents/SingleImage/index.stories.js +2 -16
- package/src/components/SubComponents/VideoThumbnail/index.stories.js +1 -0
- package/src/components/SubComponents/VideoThumbnail/index.vue +48 -136
- package/src/includes/scss/mixins/src/grid.scss +4 -2
- package/src/includes/scss/mixins/src/units.scss +25 -4
- package/src/includes/scss/vars/src/colors.module.scss +28 -1
- package/src/index.js +25 -3
- package/src/main.js +2 -10
- package/src/mock/app-header-new.js +715 -0
- package/src/mock/carousel-items.js +82 -0
- package/src/mock/course-provider.js +273 -0
- package/src/mock/jest.fileMock.js +1 -0
- package/vite.config.js +28 -15
- package/src/components/SubComponents/FormInstance/index.stories.js +0 -8
|
@@ -185,6 +185,7 @@ $white: #ffffff !default;
|
|
|
185
185
|
&--resource-list {
|
|
186
186
|
flex: 0 0 100%;
|
|
187
187
|
max-width: 100%;
|
|
188
|
+
padding: 0;
|
|
188
189
|
@media screen and (min-width: 768px) {
|
|
189
190
|
flex: 0 0 29%;
|
|
190
191
|
max-width: 29%;
|
|
@@ -209,6 +210,7 @@ $white: #ffffff !default;
|
|
|
209
210
|
background-color: $lightgray;
|
|
210
211
|
border-radius: 0 0px 5px 5px;
|
|
211
212
|
margin-left: -16px;
|
|
213
|
+
margin-right: -16px;
|
|
212
214
|
justify-content: space-between;
|
|
213
215
|
}
|
|
214
216
|
|
|
@@ -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
|
-
|
|
177
|
-
|
|
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
|
|
|
@@ -16,24 +16,23 @@
|
|
|
16
16
|
v-model="searchQuery"
|
|
17
17
|
name="search"
|
|
18
18
|
aria-label="searchbar"
|
|
19
|
-
debounce="600"
|
|
20
19
|
autocomplete="off"
|
|
21
20
|
trim
|
|
22
21
|
@update="searchType !== 'googlerest' ? onChange : () => {}"
|
|
23
22
|
@keyup.enter="onChange"
|
|
24
23
|
></b-form-input>
|
|
25
|
-
<
|
|
24
|
+
<template #append>
|
|
26
25
|
<b-button size="sm" class="search-button" @click="onSearch"
|
|
27
26
|
><span class="not-extra-small-screen">Search</span>
|
|
28
27
|
<img alt="search icon" :src="searchIcon"
|
|
29
28
|
/></b-button>
|
|
30
|
-
</
|
|
29
|
+
</template>
|
|
31
30
|
</b-input-group>
|
|
32
31
|
<search-listing
|
|
33
32
|
v-if="loadSearchList && (searchResults || isLoading)"
|
|
34
33
|
:class="{
|
|
35
34
|
[`wcl-search__typeahead`]: isTypeahead,
|
|
36
|
-
[`wcl-search__modal`]: isTypeahead
|
|
35
|
+
[`wcl-search__modal`]: isTypeahead,
|
|
37
36
|
}"
|
|
38
37
|
:is-loading="isLoading"
|
|
39
38
|
:is-typeahead="isTypeahead"
|
|
@@ -56,35 +55,36 @@
|
|
|
56
55
|
import axios from 'axios'
|
|
57
56
|
import searchIcon from '../../../assets/icons/search.svg?url'
|
|
58
57
|
import SearchListing from './SearchListing/index.vue'
|
|
59
|
-
import { BButton, BInputGroup, BFormInput
|
|
58
|
+
import { BButton, BInputGroup, BFormInput } from 'bootstrap-vue-next'
|
|
59
|
+
|
|
60
60
|
|
|
61
61
|
export default {
|
|
62
|
-
components: { SearchListing, BButton, BInputGroup, BFormInput
|
|
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
|
-
|
|
218
|
-
|
|
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 })
|
|
@@ -235,11 +235,14 @@ export default {
|
|
|
235
235
|
}
|
|
236
236
|
},
|
|
237
237
|
onSearch(e) {
|
|
238
|
+
// debugger
|
|
238
239
|
const { path } = this.$route || {}
|
|
239
240
|
|
|
241
|
+
|
|
242
|
+
|
|
240
243
|
// Home page
|
|
241
244
|
if (
|
|
242
|
-
(e?.type === 'click' || e?.key
|
|
245
|
+
(e?.type === 'click' || e?.key == 'Enter') &&
|
|
243
246
|
this.searchQuery &&
|
|
244
247
|
this.searchQuery.length > 2 &&
|
|
245
248
|
path === '/'
|
|
@@ -279,6 +282,8 @@ export default {
|
|
|
279
282
|
}
|
|
280
283
|
},
|
|
281
284
|
onChange(e) {
|
|
285
|
+
//debugger
|
|
286
|
+
|
|
282
287
|
if (this.searchQuery && this.searchQuery.length > 2) {
|
|
283
288
|
this.onSearch(e)
|
|
284
289
|
}
|
|
@@ -291,7 +296,7 @@ export default {
|
|
|
291
296
|
query: searchQuery,
|
|
292
297
|
start: pageNr > 1 ? (pageNr - 1) * pageLimit : 0,
|
|
293
298
|
rows: pageLimit,
|
|
294
|
-
field_language: this.field_language
|
|
299
|
+
field_language: this.field_language,
|
|
295
300
|
}).then((res) => {
|
|
296
301
|
if (res.numFound) {
|
|
297
302
|
this.searchResults = {
|
|
@@ -299,7 +304,7 @@ export default {
|
|
|
299
304
|
numFound: Number(res.numFound),
|
|
300
305
|
query: searchQuery,
|
|
301
306
|
results: res.results,
|
|
302
|
-
suggestion: null
|
|
307
|
+
suggestion: null,
|
|
303
308
|
}
|
|
304
309
|
} else {
|
|
305
310
|
this.searchResults = {
|
|
@@ -307,7 +312,7 @@ export default {
|
|
|
307
312
|
numFound: 0,
|
|
308
313
|
query: this.searchQuery ?? '',
|
|
309
314
|
results: [],
|
|
310
|
-
suggestion: null
|
|
315
|
+
suggestion: null,
|
|
311
316
|
}
|
|
312
317
|
}
|
|
313
318
|
this.$emit('loading', false)
|
|
@@ -322,10 +327,10 @@ export default {
|
|
|
322
327
|
this.$route?.path === '/'
|
|
323
328
|
? 'Homepage'
|
|
324
329
|
: this.$route?.path === '/search'
|
|
325
|
-
|
|
326
|
-
|
|
330
|
+
? 'Search Page'
|
|
331
|
+
: this.$route?.path,
|
|
327
332
|
label: this.searchQuery,
|
|
328
|
-
results: this.searchResults.numFound
|
|
333
|
+
results: this.searchResults.numFound,
|
|
329
334
|
}
|
|
330
335
|
if (this.$gtm) {
|
|
331
336
|
this.$gtm.push({ event: 'custom.search.site.submit', ...attrs })
|
|
@@ -340,7 +345,9 @@ export default {
|
|
|
340
345
|
if (this.googleSearchScript === false) {
|
|
341
346
|
const script = document.createElement('script')
|
|
342
347
|
script.async = true
|
|
343
|
-
script.src =
|
|
348
|
+
script.src = this.$config
|
|
349
|
+
? this.$config.public.googleSearch
|
|
350
|
+
: process.env.GOOGLE__URL
|
|
344
351
|
document.head.appendChild(script)
|
|
345
352
|
this.googleSearchScript = true
|
|
346
353
|
|
|
@@ -386,8 +393,8 @@ export default {
|
|
|
386
393
|
|
|
387
394
|
this.setupPaginationEvent()
|
|
388
395
|
}
|
|
389
|
-
}
|
|
390
|
-
}
|
|
396
|
+
},
|
|
397
|
+
},
|
|
391
398
|
}
|
|
392
399
|
</script>
|
|
393
400
|
<style lang="scss" scoped>
|
|
@@ -454,8 +461,8 @@ export default {
|
|
|
454
461
|
display: none;
|
|
455
462
|
}
|
|
456
463
|
}
|
|
457
|
-
|
|
458
|
-
|
|
464
|
+
// Google Search styling
|
|
465
|
+
&.wcl-search__google {
|
|
459
466
|
:deep(form.gsc-search-box) {
|
|
460
467
|
position: relative;
|
|
461
468
|
display: -ms-flexbox;
|
|
@@ -739,4 +746,4 @@ export default {
|
|
|
739
746
|
width: 85% !important;
|
|
740
747
|
}
|
|
741
748
|
}
|
|
742
|
-
</style>
|
|
749
|
+
</style>
|
|
@@ -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
|
|
|
@@ -16,29 +16,28 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
</a>
|
|
18
18
|
<!-- Modal -->
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
this.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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.
|