@iamproperty/components 7.7.1--beta14 → 7.7.1--beta16
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/README.md +25 -2
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/advanced-select.component.css +1 -0
- package/assets/css/components/advanced-select.component.css.map +1 -0
- package/assets/css/components/applied-filters.css +1 -1
- package/assets/css/components/applied-filters.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/bento-grid.global.css +1 -1
- package/assets/css/components/bento-grid.global.css.map +1 -1
- package/assets/css/components/button.component.css +1 -0
- package/assets/css/components/button.component.css.map +1 -0
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/calendar.config.css +1 -1
- package/assets/css/components/calendar.config.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/card.module.css +1 -1
- package/assets/css/components/card.module.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/carousel.config.css +1 -1
- package/assets/css/components/carousel.config.css.map +1 -1
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/config.component.css +1 -1
- package/assets/css/components/config.component.css.map +1 -1
- package/assets/css/components/content.component.css +1 -1
- package/assets/css/components/content.component.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/filter-card.component.css +1 -1
- package/assets/css/components/filter-card.component.css.map +1 -1
- package/assets/css/components/header.component.css +1 -1
- package/assets/css/components/header.component.css.map +1 -1
- package/assets/css/components/input.component.css +1 -1
- package/assets/css/components/input.component.css.map +1 -1
- package/assets/css/components/menu.component.css +1 -1
- package/assets/css/components/menu.component.css.map +1 -1
- package/assets/css/components/menu.global.css +1 -1
- package/assets/css/components/menu.global.css.map +1 -1
- package/assets/css/components/milestone.css +1 -1
- package/assets/css/components/milestone.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/nav.docs.css +1 -1
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/password.component.css +1 -1
- package/assets/css/components/password.component.css.map +1 -1
- package/assets/css/components/popover.component.css +1 -1
- package/assets/css/components/popover.component.css.map +1 -1
- package/assets/css/components/rank.component.css +1 -1
- package/assets/css/components/rank.component.css.map +1 -1
- package/assets/css/components/rankings.component.css +1 -1
- package/assets/css/components/rankings.component.css.map +1 -1
- package/assets/css/components/rankings.global.css +1 -1
- package/assets/css/components/rankings.global.css.map +1 -1
- package/assets/css/components/record-card.component.css +1 -1
- package/assets/css/components/record-card.component.css.map +1 -1
- package/assets/css/components/search.component.css +1 -0
- package/assets/css/components/search.component.css.map +1 -0
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.css.map +1 -1
- package/assets/css/components/std-nav-standalone.component.css +1 -0
- package/assets/css/components/std-nav-standalone.component.css.map +1 -0
- package/assets/css/components/table-basic.global.css +1 -1
- package/assets/css/components/table-basic.global.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tabs.config.css +1 -1
- package/assets/css/components/tabs.config.css.map +1 -1
- package/assets/css/components/tag.component.css +1 -1
- package/assets/css/components/tag.component.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/css/components/video.component.css +1 -1
- package/assets/css/components/video.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/elements/badge-tag.css +1 -1
- package/assets/css/elements/badge-tag.css.map +1 -1
- package/assets/css/elements/buttons--global.css +1 -1
- package/assets/css/elements/buttons--global.css.map +1 -1
- package/assets/css/elements/buttons--special.css +1 -1
- package/assets/css/elements/buttons--special.css.map +1 -1
- package/assets/css/elements/buttons.css +1 -1
- package/assets/css/elements/buttons.css.map +1 -1
- package/assets/css/elements/container.css +1 -1
- package/assets/css/elements/container.css.map +1 -1
- package/assets/css/elements/details.css +1 -1
- package/assets/css/elements/details.css.map +1 -1
- package/assets/css/elements/dialog.css +1 -1
- package/assets/css/elements/dialog.css.map +1 -1
- package/assets/css/elements/dropdown.css +1 -1
- package/assets/css/elements/dropdown.css.map +1 -1
- package/assets/css/elements/forms.css +1 -1
- package/assets/css/elements/forms.css.map +1 -1
- package/assets/css/elements/input.css +1 -1
- package/assets/css/elements/input.css.map +1 -1
- package/assets/css/elements/links--collapsible-side.css +1 -1
- package/assets/css/elements/links--collapsible-side.css.map +1 -1
- package/assets/css/elements/links--global.css +1 -1
- package/assets/css/elements/links--global.css.map +1 -1
- package/assets/css/elements/links.css +1 -1
- package/assets/css/elements/links.css.map +1 -1
- package/assets/css/elements/lists--tick-list.css +1 -1
- package/assets/css/elements/lists--tick-list.css.map +1 -1
- package/assets/css/elements/modal.css +1 -1
- package/assets/css/elements/modal.css.map +1 -1
- package/assets/css/elements/popover.css +1 -1
- package/assets/css/elements/popover.css.map +1 -1
- package/assets/css/elements/prefix.css +1 -1
- package/assets/css/elements/prefix.css.map +1 -1
- package/assets/css/elements/select.css +1 -0
- package/assets/css/elements/select.css.map +1 -0
- package/assets/css/elements/tooltips.css +1 -1
- package/assets/css/elements/tooltips.css.map +1 -1
- package/assets/css/elements/type.css +1 -1
- package/assets/css/elements/type.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +5 -3
- package/assets/js/components/actionbar/actionbar.component.min.js +10 -8
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +12 -6
- package/assets/js/components/address-lookup/address-lookup.component.min.js +9 -7
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.js +8 -17
- package/assets/js/components/advanced-select/advanced-select.component.min.js +7 -17
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +3 -3
- package/assets/js/components/barchart/barchart.component.min.js +5 -5
- package/assets/js/components/bento-grid/bento-grid.component.min.js +2 -2
- package/assets/js/components/button/button.component.js +49 -0
- package/assets/js/components/button/button.component.min.js +13 -0
- package/assets/js/components/button/button.component.min.js.map +1 -0
- package/assets/js/components/calendar/calendar.component.min.js +5 -5
- package/assets/js/components/card/card.component.min.js +21 -19
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +144 -52
- package/assets/js/components/carousel/carousel.component.min.js +15 -21
- package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +3 -3
- package/assets/js/components/config/config.component.min.js +8 -8
- package/assets/js/components/content/content.component.js +21 -5
- package/assets/js/components/content/content.component.min.js +5 -7
- package/assets/js/components/content/content.component.min.js.map +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +20 -18
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/form/form.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +2 -2
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/input/input.component.min.js +2 -2
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.js +1 -0
- package/assets/js/components/menu/menu.component.min.js +3 -3
- package/assets/js/components/menu/menu.component.min.js.map +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.min.js +4 -4
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +4 -3
- package/assets/js/components/nav/nav.component.min.js +6 -6
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js +4 -4
- package/assets/js/components/password/password.component.min.js +5 -5
- package/assets/js/components/popover/popover.component.min.js +4 -4
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +3 -3
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +18 -16
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +9 -13
- package/assets/js/components/search/search.component.min.js +9 -18
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.min.js +3 -3
- package/assets/js/components/split-button/split-button.component.js +1 -1
- package/assets/js/components/split-button/split-button.component.min.js +6 -6
- package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +11 -9
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/std-nav/std-nav.component.js +179 -0
- package/assets/js/components/std-nav/std-nav.component.min.js +66 -0
- package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -0
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +60 -0
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +20 -0
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +1 -0
- package/assets/js/components/table/table.component.min.js +6 -6
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +7 -7
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +2 -2
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +4 -4
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +6 -6
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +4 -4
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/tag/tag.component.min.js +3 -3
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js +5 -5
- package/assets/js/components/video-card/video-card.component.min.js +18 -16
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js +2 -2
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +30 -4
- package/assets/js/modules/card.module.js +16 -14
- package/assets/js/modules/carousel.js +11 -11
- package/assets/js/modules/nav.js +78 -0
- package/assets/js/modules/tabs.js +9 -1
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/_corefiles.scss +1 -0
- package/assets/sass/_utilities.scss +1 -0
- package/assets/sass/components/actionbar.component.scss +15 -1
- package/assets/sass/components/address-lookup.component.scss +134 -2
- package/assets/sass/components/advanced-select.component.scss +59 -0
- package/assets/sass/components/bento-grid.global.scss +2 -2
- package/assets/sass/components/button.component.scss +5 -0
- package/assets/sass/components/calendar.component.scss +1 -1
- package/assets/sass/components/calendar.config.scss +1 -1
- package/assets/sass/components/card.component.scss +2 -2
- package/assets/sass/components/card.module.scss +8 -3
- package/assets/sass/components/carousel.component.scss +522 -519
- package/assets/sass/components/carousel.config.scss +4 -44
- package/assets/sass/components/charts.config.scss +1 -1
- package/assets/sass/components/config.component.scss +1 -1
- package/assets/sass/components/filter-card.component.scss +5 -5
- package/assets/sass/components/header.component.scss +1 -1
- package/assets/sass/components/menu.component.scss +21 -16
- package/assets/sass/components/menu.global.scss +7 -11
- package/assets/sass/components/milestone.scss +2 -2
- package/assets/sass/components/modal.component.scss +1 -0
- package/assets/sass/components/multiselect.scss +8 -0
- package/assets/sass/components/nav.component.scss +21 -10
- package/assets/sass/components/nav.docs.scss +1 -2
- package/assets/sass/components/nav.global.scss +174 -45
- package/assets/sass/components/pagination.scss +2 -2
- package/assets/sass/components/popover.component.scss +37 -2
- package/assets/sass/components/search.component.scss +2 -0
- package/assets/sass/components/split-button.component.scss +3 -1
- package/assets/sass/components/std-nav-standalone.component.scss +228 -0
- package/assets/sass/components/table-basic.global.scss +3 -3
- package/assets/sass/components/table.global.scss +1 -1
- package/assets/sass/components/tabs.config.scss +2 -2
- package/assets/sass/components/video.component.scss +1 -1
- package/assets/sass/elements/badge-tag.css +6 -2
- package/assets/sass/elements/buttons--global.css +4 -4
- package/assets/sass/elements/buttons--special.css +2 -53
- package/assets/sass/elements/container.scss +1 -1
- package/assets/sass/elements/details.css +3 -3
- package/assets/sass/elements/dialog.scss +9 -5
- package/assets/sass/elements/dropdown.css +188 -44
- package/assets/sass/elements/forms.scss +36 -522
- package/assets/sass/elements/input.scss +0 -7
- package/assets/sass/elements/links--collapsible-side.scss +1 -1
- package/assets/sass/elements/links--global.scss +5 -1
- package/assets/sass/elements/lists--tick-list.scss +2 -2
- package/assets/sass/elements/modal.scss +1 -1
- package/assets/sass/elements/popover.scss +1 -1
- package/assets/sass/elements/prefix.scss +1 -1
- package/assets/sass/elements/select.scss +238 -0
- package/assets/sass/elements/tooltips.scss +1 -1
- package/assets/sass/elements/type.css +10 -0
- package/assets/sass/email.scss +1 -1
- package/assets/sass/error.scss +0 -1
- package/assets/sass/foundations/colours.scss +0 -1
- package/assets/sass/foundations/debug.scss +6 -0
- package/assets/sass/foundations/reboot.scss +81 -1
- package/assets/sass/foundations/root.scss +20 -2
- package/assets/sass/main.scss +0 -1
- package/assets/sass/{_grid.scss → utilities/grid.scss} +120 -80
- package/assets/ts/components/actionbar/actionbar.component.ts +5 -3
- package/assets/ts/components/address-lookup/address-lookup.component.ts +18 -6
- package/assets/ts/components/advanced-select/advanced-select.component.ts +12 -17
- package/assets/ts/components/button/button.component.ts +66 -0
- package/assets/ts/components/carousel/carousel.component.ts +189 -58
- package/assets/ts/components/content/content.component.ts +33 -5
- package/assets/ts/components/menu/menu.component.ts +4 -0
- package/assets/ts/components/nav/nav.component.ts +5 -7
- package/assets/ts/components/search/search.component.ts +14 -13
- package/assets/ts/components/split-button/split-button.component.ts +1 -1
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +0 -1
- package/assets/ts/components/std-nav/std-nav.component.ts +235 -0
- package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +76 -0
- package/assets/ts/modules/advanced-select.ts +47 -7
- package/assets/ts/modules/card.module.ts +16 -14
- package/assets/ts/modules/carousel.ts +11 -11
- package/assets/ts/modules/nav.ts +91 -0
- package/assets/ts/modules/tabs.ts +10 -1
- package/dist/components.es.js +27 -27
- package/dist/components.umd.js +343 -272
- package/package.json +11 -10
- package/src/components/Button/Button.vue +20 -0
- package/src/components/STDNav/STDNav.vue +22 -0
- package/src/components/STDNavStandalone/STDNavStandalone.vue +22 -0
- package/assets/bootstrap/LICENSE +0 -22
- package/assets/bootstrap/README.md +0 -247
- package/assets/bootstrap/js/index.esm.js +0 -19
- package/assets/bootstrap/js/index.umd.js +0 -34
- package/assets/bootstrap/js/src/alert.js +0 -87
- package/assets/bootstrap/js/src/base-component.js +0 -85
- package/assets/bootstrap/js/src/button.js +0 -72
- package/assets/bootstrap/js/src/carousel.js +0 -475
- package/assets/bootstrap/js/src/collapse.js +0 -302
- package/assets/bootstrap/js/src/dom/data.js +0 -55
- package/assets/bootstrap/js/src/dom/event-handler.js +0 -320
- package/assets/bootstrap/js/src/dom/manipulator.js +0 -71
- package/assets/bootstrap/js/src/dom/selector-engine.js +0 -83
- package/assets/bootstrap/js/src/dropdown.js +0 -445
- package/assets/bootstrap/js/src/modal.js +0 -373
- package/assets/bootstrap/js/src/offcanvas.js +0 -283
- package/assets/bootstrap/js/src/popover.js +0 -97
- package/assets/bootstrap/js/src/scrollspy.js +0 -290
- package/assets/bootstrap/js/src/tab.js +0 -307
- package/assets/bootstrap/js/src/toast.js +0 -220
- package/assets/bootstrap/js/src/tooltip.js +0 -651
- package/assets/bootstrap/js/src/util/backdrop.js +0 -149
- package/assets/bootstrap/js/src/util/component-functions.js +0 -34
- package/assets/bootstrap/js/src/util/config.js +0 -66
- package/assets/bootstrap/js/src/util/focustrap.js +0 -115
- package/assets/bootstrap/js/src/util/index.js +0 -336
- package/assets/bootstrap/js/src/util/sanitizer.js +0 -118
- package/assets/bootstrap/js/src/util/scrollbar.js +0 -114
- package/assets/bootstrap/js/src/util/swipe.js +0 -146
- package/assets/bootstrap/js/src/util/template-factory.js +0 -160
- package/assets/bootstrap/package.json +0 -180
- package/assets/bootstrap/scss/_accordion.scss +0 -146
- package/assets/bootstrap/scss/_alert.scss +0 -71
- package/assets/bootstrap/scss/_badge.scss +0 -38
- package/assets/bootstrap/scss/_breadcrumb.scss +0 -40
- package/assets/bootstrap/scss/_button-group.scss +0 -142
- package/assets/bootstrap/scss/_buttons.scss +0 -186
- package/assets/bootstrap/scss/_card.scss +0 -234
- package/assets/bootstrap/scss/_carousel.scss +0 -229
- package/assets/bootstrap/scss/_close.scss +0 -40
- package/assets/bootstrap/scss/_containers.scss +0 -41
- package/assets/bootstrap/scss/_dropdown.scss +0 -248
- package/assets/bootstrap/scss/_forms.scss +0 -9
- package/assets/bootstrap/scss/_functions.scss +0 -302
- package/assets/bootstrap/scss/_grid.scss +0 -33
- package/assets/bootstrap/scss/_helpers.scss +0 -10
- package/assets/bootstrap/scss/_images.scss +0 -42
- package/assets/bootstrap/scss/_list-group.scss +0 -191
- package/assets/bootstrap/scss/_maps.scss +0 -54
- package/assets/bootstrap/scss/_mixins.scss +0 -43
- package/assets/bootstrap/scss/_modal.scss +0 -237
- package/assets/bootstrap/scss/_nav.scss +0 -172
- package/assets/bootstrap/scss/_navbar.scss +0 -276
- package/assets/bootstrap/scss/_offcanvas.scss +0 -143
- package/assets/bootstrap/scss/_pagination.scss +0 -109
- package/assets/bootstrap/scss/_placeholders.scss +0 -51
- package/assets/bootstrap/scss/_popover.scss +0 -196
- package/assets/bootstrap/scss/_progress.scss +0 -59
- package/assets/bootstrap/scss/_reboot.scss +0 -610
- package/assets/bootstrap/scss/_root.scss +0 -73
- package/assets/bootstrap/scss/_spinners.scss +0 -85
- package/assets/bootstrap/scss/_tables.scss +0 -164
- package/assets/bootstrap/scss/_toasts.scss +0 -70
- package/assets/bootstrap/scss/_tooltip.scss +0 -120
- package/assets/bootstrap/scss/_transitions.scss +0 -27
- package/assets/bootstrap/scss/_type.scss +0 -106
- package/assets/bootstrap/scss/_utilities.scss +0 -647
- package/assets/bootstrap/scss/_variables-dark.scss +0 -87
- package/assets/bootstrap/scss/_variables.scss +0 -1633
- package/assets/bootstrap/scss/bootstrap-grid.scss +0 -64
- package/assets/bootstrap/scss/bootstrap-reboot.scss +0 -9
- package/assets/bootstrap/scss/bootstrap-utilities.scss +0 -15
- package/assets/bootstrap/scss/bootstrap.scss +0 -51
- package/assets/bootstrap/scss/forms/_floating-labels.scss +0 -74
- package/assets/bootstrap/scss/forms/_form-check.scss +0 -175
- package/assets/bootstrap/scss/forms/_form-control.scss +0 -194
- package/assets/bootstrap/scss/forms/_form-range.scss +0 -91
- package/assets/bootstrap/scss/forms/_form-select.scss +0 -71
- package/assets/bootstrap/scss/forms/_form-text.scss +0 -11
- package/assets/bootstrap/scss/forms/_input-group.scss +0 -129
- package/assets/bootstrap/scss/forms/_labels.scss +0 -36
- package/assets/bootstrap/scss/forms/_validation.scss +0 -12
- package/assets/bootstrap/scss/helpers/_clearfix.scss +0 -3
- package/assets/bootstrap/scss/helpers/_color-bg.scss +0 -10
- package/assets/bootstrap/scss/helpers/_colored-links.scss +0 -12
- package/assets/bootstrap/scss/helpers/_focus-ring.scss +0 -5
- package/assets/bootstrap/scss/helpers/_icon-link.scss +0 -25
- package/assets/bootstrap/scss/helpers/_position.scss +0 -36
- package/assets/bootstrap/scss/helpers/_ratio.scss +0 -26
- package/assets/bootstrap/scss/helpers/_stacks.scss +0 -15
- package/assets/bootstrap/scss/helpers/_stretched-link.scss +0 -15
- package/assets/bootstrap/scss/helpers/_text-truncation.scss +0 -7
- package/assets/bootstrap/scss/helpers/_visually-hidden.scss +0 -8
- package/assets/bootstrap/scss/helpers/_vr.scss +0 -8
- package/assets/bootstrap/scss/mixins/_alert.scss +0 -15
- package/assets/bootstrap/scss/mixins/_backdrop.scss +0 -14
- package/assets/bootstrap/scss/mixins/_banner.scss +0 -9
- package/assets/bootstrap/scss/mixins/_border-radius.scss +0 -78
- package/assets/bootstrap/scss/mixins/_box-shadow.scss +0 -18
- package/assets/bootstrap/scss/mixins/_breakpoints.scss +0 -127
- package/assets/bootstrap/scss/mixins/_buttons.scss +0 -70
- package/assets/bootstrap/scss/mixins/_caret.scss +0 -64
- package/assets/bootstrap/scss/mixins/_clearfix.scss +0 -9
- package/assets/bootstrap/scss/mixins/_color-mode.scss +0 -21
- package/assets/bootstrap/scss/mixins/_color-scheme.scss +0 -7
- package/assets/bootstrap/scss/mixins/_container.scss +0 -11
- package/assets/bootstrap/scss/mixins/_deprecate.scss +0 -10
- package/assets/bootstrap/scss/mixins/_forms.scss +0 -152
- package/assets/bootstrap/scss/mixins/_gradients.scss +0 -47
- package/assets/bootstrap/scss/mixins/_grid.scss +0 -151
- package/assets/bootstrap/scss/mixins/_image.scss +0 -16
- package/assets/bootstrap/scss/mixins/_list-group.scss +0 -24
- package/assets/bootstrap/scss/mixins/_lists.scss +0 -7
- package/assets/bootstrap/scss/mixins/_pagination.scss +0 -10
- package/assets/bootstrap/scss/mixins/_reset-text.scss +0 -17
- package/assets/bootstrap/scss/mixins/_resize.scss +0 -6
- package/assets/bootstrap/scss/mixins/_table-variants.scss +0 -24
- package/assets/bootstrap/scss/mixins/_text-truncate.scss +0 -8
- package/assets/bootstrap/scss/mixins/_transition.scss +0 -26
- package/assets/bootstrap/scss/mixins/_utilities.scss +0 -97
- package/assets/bootstrap/scss/mixins/_visually-hidden.scss +0 -29
- package/assets/bootstrap/scss/utilities/_api.scss +0 -47
- package/assets/bootstrap/scss/vendor/_rfs.scss +0 -354
- package/assets/favicons/README.md +0 -21
- package/assets/ts/README.md +0 -12
- package/assets/ts/components/actionbar/README.md +0 -56
- package/assets/ts/components/applied-filters/README.md +0 -20
- package/assets/ts/components/bento-grid/README.md +0 -31
- package/assets/ts/components/carousel/README.md +0 -38
- package/assets/ts/components/chart/README.md +0 -35
- package/assets/ts/components/collapsible-side/README.md +0 -38
- package/assets/ts/components/filterlist/README.md +0 -32
- package/assets/ts/components/header/README.md +0 -38
- package/assets/ts/components/inline-edit/README.md +0 -31
- package/assets/ts/components/multiselect/README.md +0 -35
- package/assets/ts/components/nav/README.md +0 -57
- package/assets/ts/components/notification/README.md +0 -47
- package/assets/ts/components/pagination/README.md +0 -37
- package/assets/ts/components/search/README.md +0 -35
- package/assets/ts/components/slider/README.md +0 -26
- package/assets/ts/components/table/README.md +0 -40
- package/assets/ts/components/table-basic/README.md +0 -40
- package/assets/ts/components/tabs/README.md +0 -34
- package/src/components/Accordion/README.md +0 -31
- package/src/components/Actionbar/README.md +0 -41
- package/src/components/AppliedFilters/README.md +0 -5
- package/src/components/Banner/README.md +0 -22
- package/src/components/Card/README.md +0 -24
- package/src/components/Carousel/README.md +0 -20
- package/src/components/Chart/README.md +0 -17
- package/src/components/CollapsibleSideMenu/README.md +0 -23
- package/src/components/FileUpload/README.md +0 -13
- package/src/components/Filterlist/README.md +0 -17
- package/src/components/Header/README.md +0 -27
- package/src/components/InlineEdit/README.md +0 -7
- package/src/components/Input/README.md +0 -17
- package/src/components/Marketing/README.md +0 -20
- package/src/components/Multiselect/README.md +0 -12
- package/src/components/Nav/README.md +0 -42
- package/src/components/Nav-old/README.md +0 -22
- package/src/components/NoteFeed/README.md +0 -16
- package/src/components/Notification/README.md +0 -32
- package/src/components/Pagination/README.md +0 -22
- package/src/components/PropertySearchbar/README.md +0 -25
- package/src/components/Search/README.md +0 -11
- package/src/components/Slider/README.md +0 -11
- package/src/components/Snapshot/README.md +0 -20
- package/src/components/SplitButton/README.md +0 -19
- package/src/components/Stepper/README.md +0 -32
- package/src/components/Table/README.md +0 -49
- package/src/components/Tabs/README.md +0 -29
- package/src/components/Testimonial/README.md +0 -25
- package/src/components/Timeline/README.md +0 -18
- package/src/foundations/Logo/README.md +0 -21
|
@@ -1,9 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { trackComponent, trackComponentRegistered } from '../_global';
|
|
1
|
+
import { trackComponentRegistered } from '../_global';
|
|
3
2
|
trackComponentRegistered('iam-carousel');
|
|
4
3
|
class iamCarousel extends HTMLElement {
|
|
5
4
|
constructor() {
|
|
6
5
|
super();
|
|
6
|
+
this.generateThumbnailList = (carouselComponent) => {
|
|
7
|
+
const thumbnailImages = [];
|
|
8
|
+
Array.from(carouselComponent.querySelectorAll(':scope > :is(div,iam-card)')).forEach((slide, index) => {
|
|
9
|
+
if (slide.hasAttribute('data-thumbnail')) {
|
|
10
|
+
thumbnailImages[index] = slide.getAttribute('data-thumbnail');
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
return thumbnailImages;
|
|
14
|
+
};
|
|
15
|
+
this.generatePipsHTML = (carouselComponent, thumbnailImages) => {
|
|
16
|
+
const itemCount = carouselComponent.querySelectorAll(':scope > :is(div,iam-card)').length;
|
|
17
|
+
let pips = '';
|
|
18
|
+
for (let i = 1; i <= itemCount; i++) {
|
|
19
|
+
let pipContent = null;
|
|
20
|
+
let pipClass = '';
|
|
21
|
+
if (thumbnailImages.length && thumbnailImages[i - 1]) {
|
|
22
|
+
pipClass = 'has-thumbnail';
|
|
23
|
+
pipContent = `<img src="${thumbnailImages[i - 1]}" alt="Slide ${i}" height="148"/>`;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
pipContent = `Slide ${i}`;
|
|
27
|
+
}
|
|
28
|
+
pips += `<button class="control-${i} ${pipClass}" data-slide="${i}" ${i == 1 ? 'aria-current' : ''}>${pipContent}</button>`;
|
|
29
|
+
}
|
|
30
|
+
return pips;
|
|
31
|
+
};
|
|
32
|
+
this.progressPercent = (value, total) => {
|
|
33
|
+
return ((value) / (total)) * 100 + '%';
|
|
34
|
+
};
|
|
7
35
|
this.attachShadow({ mode: 'open' });
|
|
8
36
|
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
9
37
|
? document.body.getAttribute('data-assets-location')
|
|
@@ -15,69 +43,133 @@ class iamCarousel extends HTMLElement {
|
|
|
15
43
|
${loadCSS}
|
|
16
44
|
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
17
45
|
</style>
|
|
18
|
-
<div class="carousel"
|
|
19
|
-
<div class="
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
46
|
+
<div class="carousel-wrapper">
|
|
47
|
+
<div class="carousel" part="carousel">
|
|
48
|
+
<slot></slot>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="carousel__controls"></div>
|
|
51
|
+
<div id="carousel__progress" class="carousel__progress">
|
|
52
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
25
53
|
</div>
|
|
26
|
-
<div
|
|
27
|
-
<
|
|
28
|
-
Prev
|
|
29
|
-
</button>
|
|
30
|
-
<button class="btn btn-secondary btn-compact fa-plus-large btn-next" data-go="2" part="next">Next</button>
|
|
54
|
+
<div id="carousel__progress-sm" class="carousel__progress">
|
|
55
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
31
56
|
</div>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<div class="carousel__progress" part="progress">
|
|
36
|
-
<input type="range" min="0" max="100" value="1" step="1" />
|
|
57
|
+
<div id="carousel__progress-md" class="carousel__progress">
|
|
58
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
37
59
|
</div>
|
|
38
60
|
</div>
|
|
39
61
|
`;
|
|
40
62
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
41
63
|
}
|
|
42
64
|
connectedCallback() {
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
65
|
+
var _a;
|
|
66
|
+
const carouselElement = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.carousel');
|
|
67
|
+
const carouselProgress = this.shadowRoot.querySelector('#carousel__progress [type="range"]');
|
|
68
|
+
const carouselProgressSM = this.shadowRoot.querySelector('#carousel__progress-sm [type="range"]');
|
|
69
|
+
const carouselProgressMD = this.shadowRoot.querySelector('#carousel__progress-md [type="range"]');
|
|
70
|
+
const itemCount = this.querySelectorAll(':scope > *').length;
|
|
71
|
+
const progressPercent = this.progressPercent;
|
|
72
|
+
let stepperInterval, stepperEvent = 'mouseup', stepperStart = 'mousedown';
|
|
73
|
+
if ('ontouchstart' in document.documentElement) {
|
|
74
|
+
stepperEvent = 'touchend';
|
|
75
|
+
stepperStart = 'touchstart';
|
|
52
76
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.innerHTML = this.innerHTML;
|
|
78
|
+
carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.setAttribute('data-smcols', this.getAttribute('data-smcols'));
|
|
79
|
+
carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.setAttribute('data-mdcols', this.getAttribute('data-mdcols'));
|
|
80
|
+
carouselProgress.setAttribute('max', itemCount);
|
|
81
|
+
carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
|
|
82
|
+
carouselProgress.addEventListener(stepperStart, () => {
|
|
83
|
+
clearInterval(stepperInterval);
|
|
84
|
+
stepperInterval = setInterval(function () {
|
|
85
|
+
carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
|
|
86
|
+
}, 10);
|
|
87
|
+
});
|
|
88
|
+
carouselProgress.addEventListener(stepperEvent, function () {
|
|
89
|
+
clearInterval(stepperInterval);
|
|
90
|
+
});
|
|
91
|
+
carouselProgress.addEventListener('change', () => {
|
|
92
|
+
clearInterval(stepperInterval);
|
|
93
|
+
carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
|
|
94
|
+
const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * (carouselProgress.value - 1));
|
|
95
|
+
carouselElement.scrollTo({
|
|
96
|
+
top: 0,
|
|
97
|
+
left: scrollTo,
|
|
98
|
+
behavior: 'smooth',
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
// SM Progress bar
|
|
102
|
+
const smStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;
|
|
103
|
+
const smItemCount = Math.floor(itemCount / smStep) * smStep;
|
|
104
|
+
carouselProgressSM.setAttribute('max', smItemCount);
|
|
105
|
+
carouselProgressSM.setAttribute('step', smStep);
|
|
106
|
+
carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
|
|
107
|
+
carouselProgressSM.addEventListener(stepperStart, () => {
|
|
108
|
+
clearInterval(stepperInterval);
|
|
109
|
+
stepperInterval = setInterval(function () {
|
|
110
|
+
carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
|
|
111
|
+
});
|
|
62
112
|
});
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
113
|
+
carouselProgressSM.addEventListener(stepperEvent, function () {
|
|
114
|
+
clearInterval(stepperInterval);
|
|
115
|
+
});
|
|
116
|
+
carouselProgressSM.addEventListener('change', () => {
|
|
117
|
+
clearInterval(stepperInterval);
|
|
118
|
+
carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
|
|
119
|
+
const scrollTo = Math.floor((carouselElement.scrollWidth / smItemCount) * carouselProgressSM.value);
|
|
120
|
+
console.log(carouselProgressSM.value);
|
|
121
|
+
carouselElement.scrollTo({
|
|
122
|
+
top: 0,
|
|
123
|
+
left: scrollTo,
|
|
124
|
+
behavior: 'smooth',
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
// MD Progress bar
|
|
128
|
+
const mdStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;
|
|
129
|
+
const mdItemCount = Math.floor(itemCount / mdStep) * mdStep;
|
|
130
|
+
carouselProgressMD.setAttribute('max', mdItemCount);
|
|
131
|
+
carouselProgressMD.setAttribute('step', mdStep);
|
|
132
|
+
carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
|
|
133
|
+
carouselProgressMD.addEventListener(stepperStart, () => {
|
|
134
|
+
clearInterval(stepperInterval);
|
|
135
|
+
stepperInterval = setInterval(function () {
|
|
136
|
+
carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
carouselProgressMD.addEventListener(stepperEvent, function () {
|
|
140
|
+
clearInterval(stepperInterval);
|
|
141
|
+
});
|
|
142
|
+
carouselProgressMD.addEventListener('change', () => {
|
|
143
|
+
clearInterval(stepperInterval);
|
|
144
|
+
carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
|
|
145
|
+
const scrollTo = Math.floor((carouselElement.scrollWidth / mdItemCount) * carouselProgressMD.value);
|
|
146
|
+
console.log(carouselProgressMD.value);
|
|
147
|
+
carouselElement.scrollTo({
|
|
148
|
+
top: 0,
|
|
149
|
+
left: scrollTo,
|
|
150
|
+
behavior: 'smooth',
|
|
68
151
|
});
|
|
69
152
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
153
|
+
// Thumbnails
|
|
154
|
+
const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
|
|
155
|
+
if (carouselElement.querySelector('[data-thumbnail]')) {
|
|
156
|
+
const thumbnailImages = this.generateThumbnailList(carouselElement);
|
|
157
|
+
carouselElement.classList.add('thumbnails');
|
|
158
|
+
carouselControls.innerHTML = this.generatePipsHTML(carouselElement, thumbnailImages);
|
|
159
|
+
}
|
|
160
|
+
carouselControls.addEventListener('click', (event) => {
|
|
161
|
+
var _a;
|
|
162
|
+
(_a = carouselControls === null || carouselControls === void 0 ? void 0 : carouselControls.querySelector('[aria-current]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('aria-current');
|
|
163
|
+
if (event.target.closest('button[data-slide]')) {
|
|
164
|
+
event.target.closest('button[data-slide]').setAttribute('aria-current', 'true');
|
|
165
|
+
const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * event.target.closest('button[data-slide]').getAttribute('data-slide'));
|
|
166
|
+
carouselElement.scrollTo({
|
|
167
|
+
top: 0,
|
|
168
|
+
left: scrollTo,
|
|
169
|
+
behavior: 'smooth',
|
|
170
|
+
});
|
|
171
|
+
}
|
|
74
172
|
});
|
|
75
|
-
trackComponent(carouselComponent, 'iam-carousel', [
|
|
76
|
-
'pip-clicked',
|
|
77
|
-
'next-clicked',
|
|
78
|
-
'prev-clicked',
|
|
79
|
-
'slider-changed',
|
|
80
|
-
]);
|
|
81
173
|
}
|
|
82
174
|
}
|
|
83
175
|
export default iamCarousel;
|
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta16
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
|
-
*/const
|
|
4
|
+
*/const k=v=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:v})};k("iam-carousel");class y extends HTMLElement{constructor(){super(),this.generateThumbnailList=e=>{const t=[];return Array.from(e.querySelectorAll(":scope > :is(div,iam-card)")).forEach((r,o)=>{r.hasAttribute("data-thumbnail")&&(t[o]=r.getAttribute("data-thumbnail"))}),t},this.generatePipsHTML=(e,t)=>{const r=e.querySelectorAll(":scope > :is(div,iam-card)").length;let o="";for(let a=1;a<=r;a++){let i=null,n="";t.length&&t[a-1]?(n="has-thumbnail",i=`<img src="${t[a-1]}" alt="Slide ${a}" height="148"/>`):i=`Slide ${a}`,o+=`<button class="control-${a} ${n}" data-slide="${a}" ${a==1?"aria-current":""}>${i}</button>`}return o},this.progressPercent=(e,t)=>e/t*100+"%",this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const l=document.createElement("template");l.innerHTML=`
|
|
5
5
|
<style>
|
|
6
|
-
@layer elements{button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit],[role=button]){-webkit-appearance:button;&:not(:disabled){cursor:pointer}}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap;&:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}&:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}&:not(:last-child){margin-right:var(--btn-margin)}}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem;&:before{content:"\uF00C";font-family:"Font Awesome 7 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn{&[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 7 Pro"}&[class*=fa-after]{padding-right:4rem}&[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}&:not(.btn-compact):before{margin-right:1rem}i[class*=fa-]{--fa-width: 1em;font-family:"Font Awesome 7 Pro";margin-right:1rem;line-height:1em;font-style:inherit;&:not(:first-child){margin-left:1rem;margin-right:0}}}.btn.btn--prompt{&:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active){&:after{margin-left:1.5rem;margin-right:-0.5rem}}.btn-filter{&:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 7 Pro"}}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary);&:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:transparent;border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative;&:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}&.text-decoration-none:after{width:0%}&[class*=fa-]{margin-left:0;margin-right:.5rem}&[class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}&:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active){&:after{width:60% !important}}&:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}&.icon-only{position:relative;text-indent:-300vw;overflow:hidden;min-width:1.75rem;&:before{position:absolute;left:0;top:0;min-width:1.75rem;text-align:center;text-indent:0;padding-inline:.25rem;line-height:1.85rem}}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2;&>.fa-chevron-down{display:none}&:not(:has(i)):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}&[aria-pressed]:after{transform:rotate(270deg)}}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content;select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important;option{font-size:1rem;text-align:left;color:var(--colour-primary);padding-inline:var(--menu-item-padding, 0.5rem);padding-block:var(--menu-item-padding, 0.5rem) !important;border-radius:.25rem !important;&:not(:last-child){margin:var(--menu-item-margin, 0 0 0.25rem 0) !important}&:hover{background:var(--colour-light) !important}&:after{content:attr(data-email)}}}select::picker-icon{display:none}select::picker(select){appearance:base-select;background:var(--menu-bg, canvas);margin-block:var(--menu-margin, 0.25rem);padding:var(--menu-padding, 0.5rem) !important;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0, 0, 0, 0.1);font-size:1rem}hr{height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}select option::checkmark{display:none}select selectedcontent span{display:none}&:after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em;select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}&:after{top:.2rem;right:.5rem}}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}*,*::before,*::after{box-sizing:border-box}:host{display:block;overflow:visible;container-type:inline-size}.carousel{margin-inline:calc(var(--carousel-spacing, 1.5rem)*-1);margin-bottom:2rem;display:block;overflow:visible}.carousel .carousel__wrapper{position:relative;overflow-x:clip}.carousel .carousel__inner{--gutter-x: 1rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory}.carousel .carousel__content{display:flex;flex-wrap:nowrap !important;margin-inline-end:0;padding-inline-start:var(--carousel-spacing, 1.5rem);padding-inline-end:var(--carousel-spacing, 1.5rem);margin-right:calc(-0.5*var(--gutter-x));margin-left:calc(-0.5*var(--gutter-x))}.carousel .col>*:last-child{margin-bottom:0;padding-bottom:0}::slotted(div){scroll-snap-align:start;scroll-margin-left:calc(var(--carousel-spacing, 1.5rem) - .5rem);flex-shrink:0;width:calc(100% + var(--last-item-extra, 0px));padding-right:.5rem;padding-left:.5rem;margin-top:var(--gutter-y)}::slotted(div:last-child){padding-inline-end:1.5rem;--last-item-extra: 1rem}@container (min-width: 36em){.carousel{margin-inline:calc(var(--carousel-spacing, 2.5rem)*-1)}.carousel .carousel__content{padding-inline-start:var(--carousel-spacing, 2.5rem);padding-inline-end:var(--carousel-spacing, 2.5rem)}:host([data-smcols]) ::slotted(div){scroll-snap-align:unset;flex:0 0 auto}:host([data-smcols="2"]) ::slotted(div){width:calc(50% + var(--last-item-extra, 0px))}:host([data-smcols="3"]) ::slotted(div){width:calc(33.3333333333% + var(--last-item-extra, 0px))}:host([data-smcols="4"]) ::slotted(div){width:calc(25% + var(--last-item-extra, 0px))}:host([data-smcols="2"]) ::slotted(div:nth-child(odd)),:host([data-smcols="3"]) ::slotted(div:nth-child(3n+1)),:host([data-smcols="4"]) ::slotted(div:nth-child(4n+1)){scroll-snap-align:start}::slotted(div){scroll-margin-left:calc(var(--carousel-spacing, 2.5rem) - .5rem)}::slotted(div:last-child){padding-inline-end:2.5rem;--last-item-extra: 2rem}}@container (min-width: 62em){.carousel{margin-inline:0;position:relative}.carousel__wrapper{overflow:hidden;margin-inline:-0.5rem}.carousel__content{padding-inline:0 !important;margin-inline:0 !important}::slotted(div){margin-left:0;scroll-margin-left:0}::slotted(div:last-child){padding-inline-end:.5rem;--last-item-extra: 0px}:host([data-mdcols]) ::slotted(div){scroll-snap-align:unset;flex:0 0 auto}:host([data-mdcols="2"]) ::slotted(div){width:calc(50% + var(--last-item-extra, 0px))}:host([data-mdcols="3"]) ::slotted(div){width:calc(33.3333333333% + var(--last-item-extra, 0px))}:host([data-mdcols="4"]) ::slotted(div){width:calc(25% + var(--last-item-extra, 0px))}:host([data-mdcols="5"]) ::slotted(div){width:calc(20% + var(--last-item-extra, 0px))}:host([data-mdcols="6"]) ::slotted(div){width:calc(16.6666666667% + var(--last-item-extra, 0px))}:host([data-mdcols="2"]) ::slotted(div:nth-child(odd)),:host([data-mdcols="3"]) ::slotted(div:nth-child(3n+1)),:host([data-mdcols="4"]) ::slotted(div:nth-child(4n+1)),:host([data-mdcols="5"]) ::slotted(div:nth-child(5n+1)),:host([data-mdcols="6"]) ::slotted(div:nth-child(6n+1)){scroll-snap-align:start}}.carousel__inner{scrollbar-width:none;-ms-overflow-style:none}.carousel__inner::-webkit-scrollbar{display:none}.carousel__btns{text-align:center;padding-bottom:.5rem}.btn-next,.btn-prev{margin:0 !important}.btn-next:after,.btn-prev:after{content:"";position:absolute;right:0;top:0;height:100%;width:100%;background:currentColor;mask-image:var(--icon-arrow);mask-size:50%;mask-repeat:no-repeat;mask-position:50% 60%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:55% 50%;transform:rotate(0deg)}.btn-prev:after{transform:rotate(180deg)}@container (min-width: 62em){.carousel__btns{padding-bottom:0}.btn-prev{position:absolute;top:50%;left:0;margin:-2rem 0 0 -3rem !important}.btn-next{position:absolute;top:50%;right:0;margin:-2rem -3rem 0 0 !important}}.carousel .carousel__controls{overflow:hidden;margin-inline:auto;margin-bottom:1rem;text-align:center;max-width:30rem}@container (min-width: 36em){.carousel .carousel__controls{width:100%}}.carousel .carousel__controls button{padding:0;margin:0 .2rem .2rem;border:none}.carousel .carousel__controls button{width:.5rem;height:.5rem;min-height:.5rem;border-radius:50%;text-indent:-50rem;overflow:hidden;background:#a5ecfd;margin-inline:.375rem;cursor:pointer;border:none}.carousel .carousel__controls button:hover{background-color:var(--colour-info)}.carousel .carousel__controls button:before{display:none}.carousel .carousel__controls button:first-child:last-child{display:none}.carousel__controls>button[aria-current]{--colour-active-thumbnail: var(--colour-info);border-color:var(--colour-active-thumbnail);background:var(--colour-info);width:1rem;height:1rem;min-height:1rem;margin-inline:.125rem}.carousel__controls>button[aria-current]:hover{background:var(--colour-info)}.carousel__progress{text-align:center;margin-bottom:1rem;display:none}input[type=range]{--track-size: 0.5rem;--track-colour: #a5ecfd;--thumb-colour: var(--colour-info);--thumb-size: 1rem;--thumb-size-outline: 0;width:90%;max-width:10.75rem;background:rgba(0,0,0,0);cursor:pointer;margin:0;height:1rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5625rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5625rem}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) calc(var(--percent, 0%)), var(--track-colour) calc(var(--percent, 0%)))}input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) calc(var(--percent, 0%)), var(--track-colour) calc(var(--percent, 0%)))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.25rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:active::-webkit-slider-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:focus::-moz-range-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}.carousel__btns:has(~.carousel__controls button:first-child:nth-child(1):last-child){display:none}.carousel__controls:has(button:nth-child(5)){display:none}.carousel__controls:has(button:nth-child(5))~.carousel__progress{display:block}@container (min-width: 36em){:host([data-smcols="2"]) .carousel__controls>button:not(:nth-child(odd)),:host([data-smcols="3"]) .carousel__controls>button:not(:nth-child(3n+1)),:host([data-smcols="4"]) .carousel__controls>button:not(:nth-child(4n+1)){display:none}:host([data-smcols="2"]) .carousel__controls:has(button:first-child:nth-last-child(2)),:host([data-smcols="3"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3))),:host([data-smcols="4"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4))),:host([data-smcols="2"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-smcols="3"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-smcols="3"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-smcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-smcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-smcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(4)){display:none}:host([data-smcols]) .carousel__controls{display:block}:host([data-smcols]) .carousel__controls~.carousel__progress{display:none}:host([data-smcols="2"]) .carousel__controls:has(button:nth-child(10)),:host([data-smcols="3"]) .carousel__controls:has(button:nth-child(15)),:host([data-smcols="4"]) .carousel__controls:has(button:nth-child(20)){display:none}:host([data-smcols="2"]) .carousel__controls:has(button:nth-child(10))~.carousel__progress,:host([data-smcols="3"]) .carousel__controls:has(button:nth-child(15))~.carousel__progress,:host([data-smcols="4"]) .carousel__controls:has(button:nth-child(20))~.carousel__progress{display:block}}@container (min-width: 62em){:host([data-mdcols]) .carousel__controls>button{display:inline-block !important}:host([data-mdcols]) .carousel__controls{display:block !important}:host([data-mdcols="2"]) .carousel__controls>button:not(:nth-child(odd)),:host([data-mdcols="3"]) .carousel__controls>button:not(:nth-child(3n+1)),:host([data-mdcols="4"]) .carousel__controls>button:not(:nth-child(4n+1)),:host([data-mdcols="5"]) .carousel__controls>button:not(:nth-child(5n+1)),:host([data-mdcols="6"]) .carousel__controls>button:not(:nth-child(6n+1)){display:none !important}:host([data-mdcols="2"]) .carousel__controls:has(button:first-child:nth-last-child(2)),:host([data-mdcols="3"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3))),:host([data-mdcols="4"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4))),:host([data-mdcols="5"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5))),:host([data-mdcols="6"]) .carousel__controls:has(:is(button:first-child:nth-last-child(2),button:first-child:nth-last-child(3),button:first-child:nth-last-child(4),button:first-child:nth-last-child(5),button:first-child:nth-last-child(6))),:host([data-mdcols="2"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-mdcols="3"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-mdcols="3"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-mdcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-mdcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-mdcols="4"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(4)) :host([data-mdcols="5"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-mdcols="5"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-mdcols="5"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(4)),:host([data-mdcols="5"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(5)),:host([data-mdcols="6"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(2)),:host([data-mdcols="6"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(3)),:host([data-mdcols="6"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(4)),:host([data-mdcols="6"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(5)),:host([data-mdcols="6"]) .carousel__btns:has(~.carousel__controls button:first-child:nth-last-child(6)){display:none !important}:host([data-mdcols]) .carousel__controls{display:block !important}:host([data-mdcols]) .carousel__controls~.carousel__progress{display:none !important}:host([data-mdcols="2"]) .carousel__controls:has(button:nth-child(10)),:host([data-mdcols="3"]) .carousel__controls:has(button:nth-child(15)),:host([data-mdcols="4"]) .carousel__controls:has(button:nth-child(20)),:host([data-mdcols="5"]) .carousel__controls:has(button:nth-child(25)),:host([data-mdcols="6"]) .carousel__controls:has(button:nth-child(30)){display:none !important}:host([data-mdcols="2"]) .carousel__controls:has(button:nth-child(10))~.carousel__progress,:host([data-mdcols="3"]) .carousel__controls:has(button:nth-child(15))~.carousel__progress,:host([data-mdcols="4"]) .carousel__controls:has(button:nth-child(20))~.carousel__progress,:host([data-mdcols="5"]) .carousel__controls:has(button:nth-child(25))~.carousel__progress,:host([data-mdcols="6"]) .carousel__controls:has(button:nth-child(30))~.carousel__progress{display:block !important}}:host(.hide-btns) .carousel__btns,:host(.hide-controls) .carousel__controls{display:none}:host(.thumbnails) .carousel__controls{display:flex !important;flex-wrap:wrap;max-width:100%;overflow:visible}:host(.thumbnails) .carousel__controls button{padding:0;margin:0 .2rem .4rem;width:6rem;height:auto;aspect-ratio:var(--carousel-image-aspect-ratio, 3/2);border-radius:0;position:relative;border-radius:.25rem}:host(.thumbnails) .carousel__controls button img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;margin:0}:host(.thumbnails) .carousel__controls button[aria-current]{outline:2px solid var(--colour-info)}:host(.thumbnails) .carousel .carousel__btns{padding-bottom:.5rem}:host(.thumbnails) .carousel .btn-next,:host(.thumbnails) .carousel .btn-prev{position:relative;margin:0 !important}:host(.thumbnails) .carousel .carousel__progress{display:none !important}::slotted(div.image__wrapper){width:100%;aspect-ratio:var(--carousel-image-aspect-ratio, 3/2);position:relative}/*# sourceMappingURL=assets/css/components/carousel.component.css.map */
|
|
6
|
+
@layer elements{button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit],[role=button]){-webkit-appearance:button;&:not(:disabled){cursor:pointer}}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap;&:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}&:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}&:not(:last-child){margin-right:var(--btn-margin)}}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem;&:before{content:"\uF00C";font-family:var(--fa-family-classic);margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn{&[class*=fa-]:before{content:var(--fa);font-family:var(--fa-family-classic)}&[class*=fa-after]{padding-right:4rem}&[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}&:not(.btn-compact):before{margin-right:1rem}i[class*=fa-]{--fa-width: 1em;font-family:var(--fa-family-classic);margin-right:1rem;line-height:1em;font-style:inherit;&:not(:first-child){margin-left:1rem;margin-right:0}}}.btn.btn--prompt{&:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active){&:after{margin-left:1.5rem;margin-right:-0.5rem}}.btn-filter{&:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:var(--fa-family-classic)}}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary);&:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:transparent;border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative;&:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}&.text-decoration-none:after{width:0%}&[class*=fa-]{margin-left:0;margin-right:.5rem}&[class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}&:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active){&:after{width:60% !important}}&:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}&.icon-only{position:relative;text-indent:-300vw;overflow:hidden;min-width:1.75rem;&:before{position:absolute;left:0;top:0;min-width:1.75rem;text-align:center;text-indent:0;padding-inline:.25rem;line-height:1.85rem}}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2;&>.fa-chevron-down{display:none}&:not(:has(i)):not(.no-icon):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}&[aria-pressed]:after{transform:rotate(270deg)}}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content;select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}&:after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em;select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}&:after{top:.2rem;right:.5rem}}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}*,*::before,*::after{box-sizing:border-box}@layer components{.carousel-wrapper{padding-inline:1.5rem;margin-inline:-1.5rem;overflow:hidden;container-type:inline-size;display:block;margin-bottom:var(--carousel-mb, 1.5rem)}.carousel{--button-height: 3rem;--marker-height: 1.25rem;--marker-mb: 1rem;padding-inline:.5rem;margin-inline:-0.5rem;padding-bottom:calc(1rem + var(--button-height) + var(--marker-height) + var(--marker-mb));scroll-padding:.5rem;display:grid;grid-auto-flow:column;gap:var(--gap);anchor-scope:all;anchor-name:--carousel;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-marker-group:before;scroll-behavior:smooth;grid-auto-flow:column;grid-auto-columns:calc(100%/var(--count, 1) - var(--gap)*(var(--count, 1) - 1)/var(--count, 1))}.carousel>*{container-type:scroll-state;grid-column:auto;min-height:100%;margin:0;scroll-snap-align:start}.carousel::scroll-button(*){cursor:pointer;position-anchor:--carousel;background:none;border:none;font-size:1rem !important;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--button-height);height:var(--button-height);align-content:center;line-height:1 !important;overflow:hidden;font-size:1rem;font-family:"Font Awesome 7 Pro" !important;display:none;position:absolute;position-area:block-end center;border-radius:50%;margin-top:calc((var(--button-height) + var(--marker-height) + var(--marker-mb))*-1)}.carousel::scroll-button(left){display:inline-block;content:"\\f053"/"Scroll left" !important;margin-left:calc(var(--button-height)*-1) !important}.carousel::scroll-button(right){display:inline-block;content:"\\f054"/"Scroll right" !important;margin-right:calc(var(--button-height)*-1) !important}.carousel::scroll-button(*):disabled{pointer-events:none}.carousel::scroll-button(*):is(:hover,:focus-visible){outline-offset:5px;background-color:var(--colour-light);border-color:var(--colour)}@container (min-width: 62em){.carousel-wrapper .carousel{--button-height: 0rem}.carousel-wrapper .carousel::scroll-button(*){--button-height: 3rem;margin-top:-1rem}.carousel-wrapper .carousel::scroll-button(left){position-area:center inline-start}.carousel-wrapper .carousel::scroll-button(right){position-area:center inline-end}}.carousel::scroll-marker-group{position:absolute;position-anchor:--carousel;container:marker-group/inline-size;display:grid;place-content:safe center;box-sizing:border-box;border-radius:var(--radius-round);scrollbar-width:none;scroll-behavior:smooth;inline-size:100%;max-inline-size:100cqi;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;grid-auto-columns:var(--marker-height);grid-auto-rows:var(--marker-height);overflow-x:auto;top:auto;bottom:anchor(bottom);grid-auto-flow:column;justify-items:center;align-items:center;padding-block:0;margin-bottom:var(--marker-mb)}.carousel>*::scroll-marker{content:"";scroll-snap-align:start;cursor:pointer;text-decoration:none;interactivity:auto;width:.5rem;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#a5ecfd;cursor:pointer;border:none}.carousel>*::scroll-marker:target-current{border-color:var(--colour-info);background:var(--colour-info);width:1rem;height:1rem;min-height:1rem;margin-inline:.125rem}.carousel-wrapper:has(.carousel>*:first-child:last-child){--hide-buttons: 1;--hide-markers: 1}@container (min-width: 36em){.carousel[data-smcols="2"]:not(:has(>*:nth-child(3))){--hide-buttons: 1;--hide-markers: 1;--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem}.carousel[data-smcols="3"]:not(:has(>*:nth-child(4))){--hide-buttons: 1;--hide-markers: 1;--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem}}@container (min-width: 62em){.carousel[data-mdcols="2"]:not(:has(>*:nth-child(3))){--hide-buttons: 1;--hide-markers: 1;--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem}.carousel[data-mdcols="3"]:not(:has(>*:nth-child(4))){--hide-buttons: 1;--hide-markers: 1;--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem}}@container (min-width: 36em){.carousel[data-smcols="2"]{--count: 2}.carousel[data-smcols="3"]{--count: 3}}@container (min-width: 64em){.carousel[data-mdcols="2"]{--count: 2}.carousel[data-mdcols="3"]{--count: 3}}@container style(--count){.carousel>*{scroll-snap-align:unset}.carousel>*::scroll-marker{display:none}}@container not scroll-state(snapped: x){.carousel>*{--opacity: 0}}@container style(--count: 2){.carousel>*:nth-child(2n-1){scroll-snap-align:start;scroll-snap-stop:always}.carousel>*:nth-child(2n-1)::scroll-marker{display:block}}@container style(--count: 3){.carousel>*:nth-child(3n-2){scroll-snap-align:start;scroll-snap-stop:always}.carousel>*:nth-child(3n-2)::scroll-marker{display:block}}@container style(--hide-buttons){.carousel-wrapper{--button-height: 0rem}.carousel-wrapper .carousel::scroll-button(*){display:none}}@container style(--hide-markers){.carousel-wrapper{--marker-height: 0rem;--marker-mb: 0rem}.carousel-wrapper .carousel::scroll-marker-group{display:none}}.admin-panel{--hide-buttons: 1}.admin-panel .carousel{--button-height: 0rem;--marker-mb: 0rem;margin-bottom:0}.carousel__progress{text-align:center;display:none}input[type=range]{--track-size: 0.5rem;--track-colour: #a5ecfd;--thumb-colour: var(--colour-info);--thumb-size: 1rem;--thumb-size-outline: 0;width:90%;max-width:10.75rem;background:rgba(0,0,0,0);cursor:pointer;margin:0;height:1rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5625rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5625rem}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) calc(var(--percent, 0%)), var(--track-colour) calc(var(--percent, 0%)))}input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--track-colour), var(--track-colour) var(--start-percent, 0%), var(--thumb-colour) var(--start-percent, 0%), var(--thumb-colour) calc(var(--percent, 0%)), var(--track-colour) calc(var(--percent, 0%)))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.25rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:active::-webkit-slider-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}input[type=range]:focus::-moz-range-thumb{outline:var(--thumb-size-outline) solid var(--thumb-colour)}@supports not selector(::scroll-marker-group){.carousel{--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem}#carousel__progress{display:block}@container (min-width: 36em){#carousel__progress{display:none}#carousel__progress-sm{display:block}}@container (min-width: 62em){#carousel__progress-sm{display:none}#carousel__progress-md{display:block}}}@supports selector(::scroll-marker-group){@container (max-width: 36em){.carousel:has(>*:nth-child(5)){--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem;--hide-buttons: 1;--hide-markers: 1}.carousel:has(>*:nth-child(5))+#carousel__progress{display:block}}@container (min-width: 36em){#carousel__progress{display:none}.carousel[data-smcols="2"]:has(>*:nth-child(10)){--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem;--hide-buttons: 1;--hide-markers: 1}.carousel[data-smcols="2"]:has(>*:nth-child(10))+#carousel__progress-sm{display:block}.carousel[data-smcols="3"]:has(>*:nth-child(15)){--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem;--hide-buttons: 1;--hide-markers: 1}.carousel[data-smcols="3"]:has(>*:nth-child(15))+#carousel__progress-sm{display:block}}@container (min-width: 62em){#carousel__progress-sm{display:none}.carousel[data-mdcols="2"]:has(>*:nth-child(10)){--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem;--hide-buttons: 1;--hide-markers: 1}.carousel[data-mdcols="2"]:has(>*:nth-child(10))+#carousel__progress-md{display:block}.carousel[data-mdcols="3"]:has(>*:nth-child(15)){--button-height: 0rem;--marker-height: 0rem;--marker-mb: 0rem;--hide-buttons: 1;--hide-markers: 1}.carousel[data-mdcols="3"]:has(>*:nth-child(15))+#carousel__progress-md{display:block}}}.carousel__controls{display:flex !important;flex-wrap:wrap;max-width:100%;overflow:visible}.carousel__controls button{padding:0;margin:0 .2rem .4rem;width:6rem;height:auto;aspect-ratio:var(--carousel-image-aspect-ratio, 3/2);border-radius:0;position:relative;border-radius:.25rem}.carousel__controls button img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;margin:0}.carousel__controls button[aria-current]{outline:2px solid var(--colour-info)}}/*# sourceMappingURL=assets/css/components/carousel.component.css.map */
|
|
7
7
|
|
|
8
8
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
9
9
|
</style>
|
|
10
|
-
<div class="carousel"
|
|
11
|
-
<div class="
|
|
12
|
-
<
|
|
13
|
-
<div class="carousel__content" part="content">
|
|
14
|
-
<slot></slot>
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
10
|
+
<div class="carousel-wrapper">
|
|
11
|
+
<div class="carousel" part="carousel">
|
|
12
|
+
<slot></slot>
|
|
17
13
|
</div>
|
|
18
|
-
<div class="
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
</button>
|
|
22
|
-
<button class="btn btn-secondary btn-compact fa-plus-large btn-next" data-go="2" part="next">Next</button>
|
|
14
|
+
<div class="carousel__controls"></div>
|
|
15
|
+
<div id="carousel__progress" class="carousel__progress">
|
|
16
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
23
17
|
</div>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<div
|
|
28
|
-
<input type="range" min="0" max="100" value="
|
|
18
|
+
<div id="carousel__progress-sm" class="carousel__progress">
|
|
19
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
20
|
+
</div>
|
|
21
|
+
<div id="carousel__progress-md" class="carousel__progress">
|
|
22
|
+
<input type="range" min="0" max="100" value="0" step="1" />
|
|
29
23
|
</div>
|
|
30
24
|
</div>
|
|
31
|
-
`,this.shadowRoot.appendChild(
|
|
25
|
+
`,this.shadowRoot.appendChild(l.content.cloneNode(!0))}connectedCallback(){var l;const e=(l=this.shadowRoot)===null||l===void 0?void 0:l.querySelector(".carousel"),t=this.shadowRoot.querySelector('#carousel__progress [type="range"]'),r=this.shadowRoot.querySelector('#carousel__progress-sm [type="range"]'),o=this.shadowRoot.querySelector('#carousel__progress-md [type="range"]'),a=this.querySelectorAll(":scope > *").length,i=this.progressPercent;let n,u="mouseup",h="mousedown";"ontouchstart"in document.documentElement&&(u="touchend",h="touchstart"),e==null||(e.innerHTML=this.innerHTML),e?.setAttribute("data-smcols",this.getAttribute("data-smcols")),e?.setAttribute("data-mdcols",this.getAttribute("data-mdcols")),t.setAttribute("max",a),t.style.setProperty("--percent",i(t.value,a)),t.addEventListener(h,()=>{clearInterval(n),n=setInterval(function(){t.style.setProperty("--percent",i(t.value,a))},10)}),t.addEventListener(u,function(){clearInterval(n)}),t.addEventListener("change",()=>{clearInterval(n),t.style.setProperty("--percent",i(t.value,a));const s=Math.floor(e.scrollWidth/a*(t.value-1));e.scrollTo({top:0,left:s,behavior:"smooth"})});const b=this.getAttribute("data-smcols")?this.getAttribute("data-smcols"):1,c=Math.floor(a/b)*b;r.setAttribute("max",c),r.setAttribute("step",b),r.style.setProperty("--percent",i(r.value,c)),r.addEventListener(h,()=>{clearInterval(n),n=setInterval(function(){r.style.setProperty("--percent",i(r.value,c))})}),r.addEventListener(u,function(){clearInterval(n)}),r.addEventListener("change",()=>{clearInterval(n),r.style.setProperty("--percent",i(r.value,c));const s=Math.floor(e.scrollWidth/c*r.value);console.log(r.value),e.scrollTo({top:0,left:s,behavior:"smooth"})});const p=this.getAttribute("data-smcols")?this.getAttribute("data-smcols"):1,m=Math.floor(a/p)*p;o.setAttribute("max",m),o.setAttribute("step",p),o.style.setProperty("--percent",i(o.value,m)),o.addEventListener(h,()=>{clearInterval(n),n=setInterval(function(){o.style.setProperty("--percent",i(o.value,m))})}),o.addEventListener(u,function(){clearInterval(n)}),o.addEventListener("change",()=>{clearInterval(n),o.style.setProperty("--percent",i(o.value,m));const s=Math.floor(e.scrollWidth/m*o.value);console.log(o.value),e.scrollTo({top:0,left:s,behavior:"smooth"})});const d=this.shadowRoot.querySelector(".carousel__controls");if(e.querySelector("[data-thumbnail]")){const s=this.generateThumbnailList(e);e.classList.add("thumbnails"),d.innerHTML=this.generatePipsHTML(e,s)}d.addEventListener("click",s=>{var g;if((g=d?.querySelector("[aria-current]"))===null||g===void 0||g.removeAttribute("aria-current"),s.target.closest("button[data-slide]")){s.target.closest("button[data-slide]").setAttribute("aria-current","true");const f=Math.floor(e.scrollWidth/a*s.target.closest("button[data-slide]").getAttribute("data-slide"));e.scrollTo({top:0,left:f,behavior:"smooth"})}})}}export{y as default};
|
|
32
26
|
//# sourceMappingURL=carousel.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.component.min.js","sources":["../../modules/carousel.js","../_global.js","carousel.component.js"],"sourcesContent":["export const generateThumbnailList = function (carouselComponent) {\n const thumbnailImages = [];\n Array.from(carouselComponent.querySelectorAll(':scope > div')).forEach((slide, index) => {\n if (slide.hasAttribute('data-thumbnail')) {\n thumbnailImages[index] = slide.getAttribute('data-thumbnail');\n }\n });\n return thumbnailImages;\n};\nexport const generatePipsHTML = function (carouselComponent, thumbnailImages) {\n const itemCount = carouselComponent.querySelectorAll(':scope > div').length;\n let pips = '';\n for (let i = 1; i <= itemCount; i++) {\n let pipContent = null;\n let pipClass = '';\n if (thumbnailImages.length && thumbnailImages[i - 1]) {\n pipClass = 'has-thumbnail';\n pipContent = `<img src=\"${thumbnailImages[i - 1]}\" alt=\"Slide ${i}\" height=\"148\"/>`;\n }\n else {\n pipContent = `Slide ${i}`;\n }\n pips += `<button class=\"control-${i} ${pipClass}\" data-slide=\"${i}\" ${i == 1 ? 'aria-current' : ''}>${pipContent}</button>`;\n }\n return pips;\n};\nexport const getProgressMax = function (itemCount, visibleItems) {\n if (visibleItems == 1) {\n return itemCount;\n }\n const max = Math.ceil(itemCount / visibleItems) * visibleItems - visibleItems;\n return max + 1;\n};\nconst getProgressPercent = function (value, max) {\n return ((value - 1) / (max - 1)) * 100;\n};\nexport const carousel = function (carouselComponent) {\n let scrollTimeout;\n const carouselElement = carouselComponent.shadowRoot.querySelector('.carousel');\n const carouselInner = carouselElement.querySelector('.carousel__inner');\n const carouselControls = carouselElement.querySelector('.carousel__controls');\n const carouselProgress = carouselElement.querySelector('.carousel__progress [type=\"range\"]');\n const itemCount = carouselComponent.querySelectorAll(':scope > div').length;\n let scrollArea = carouselInner.clientWidth;\n let itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n let visibleItems = Math.round(scrollArea / itemWidth);\n carouselProgress.setAttribute('min', 1);\n carouselProgress.setAttribute('step', visibleItems);\n let progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n carouselProgress.value = 1;\n let percent = getProgressPercent(1, progressMax);\n carouselProgress.style.setProperty('--percent', percent + '%');\n let stepperInterval, stepperEvent = 'mouseup', stepperStart = 'mousedown';\n if ('ontouchstart' in document.documentElement) {\n stepperEvent = 'touchend';\n stepperStart = 'touchstart';\n }\n // On scroll we need to make sure the buttons get corrected and the next testimonial is shown\n carouselInner.addEventListener('scroll', function () {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n const scrollArea = carouselInner.clientWidth;\n const scrollWidth = carouselInner.scrollWidth;\n const scrollLeft = carouselInner.scrollLeft;\n let targetSlide = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;\n const itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n const lastItemOffset = carouselComponent.querySelector(':scope > div:last-child').offsetLeft;\n //+60px here is to account for when the next offscreen slide is visible beneath the next arrow\n const lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= lastItemOffset + 60;\n const visibleItems = Math.round(scrollArea / itemWidth);\n //Check if theres room for more slides than we have\n const leftOverSpace = Math.ceil(itemCount / visibleItems) * visibleItems - itemCount;\n carouselProgress.setAttribute('step', visibleItems);\n if (leftOverSpace > 0 && lastItemInView) {\n targetSlide = Math.floor(itemCount / visibleItems) * visibleItems + 1;\n }\n Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button) => {\n button.removeAttribute('aria-current');\n });\n carouselElement.querySelector('.control-' + targetSlide).setAttribute('aria-current', true);\n // Disable the previous button\n if (targetSlide == 1)\n carouselElement.querySelector('.btn-prev').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-prev').removeAttribute('disabled');\n // Disable the next button if the last item is in view\n if (targetSlide > itemCount - visibleItems)\n carouselElement.querySelector('.btn-next').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-next').removeAttribute('disabled');\n carouselProgress.value = targetSlide;\n progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n percent = (targetSlide / progressMax) * 100;\n percent = getProgressPercent(targetSlide, progressMax);\n carouselProgress.style.setProperty('--percent', percent + '%');\n }, 100);\n }, false);\n // when the buttons are used we need to make sure the carousel scrolls to the correct place\n carouselControls.addEventListener('click', function (e) {\n for (let target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == 'function' && target.matches('button')) {\n e.preventDefault();\n Array.from(carouselControls.querySelectorAll('button')).forEach((button) => {\n button.removeAttribute('aria-current');\n });\n target.setAttribute('aria-current', true);\n const customEvent = new CustomEvent('pip-clicked', {\n detail: {\n slide: target.getAttribute('data-slide'),\n },\n });\n carouselComponent.dispatchEvent(customEvent);\n const el = carouselComponent.querySelector(`:scope > *:nth-child(${target.getAttribute('data-slide')})`);\n carouselInner.scroll({\n top: 0,\n left: el.offsetLeft - carouselInner.getBoundingClientRect().left,\n behavior: 'smooth',\n });\n break;\n }\n }\n }, false);\n carouselElement.addEventListener('click', function (e) {\n const scrollArea = carouselInner.clientWidth;\n //const scrollWidth = carouselInner.scrollWidth;\n const itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n const visibleItems = Math.round(scrollArea / itemWidth);\n const lastItemOffset = carouselComponent.querySelector(':scope > div:last-child').offsetLeft;\n const lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= lastItemOffset + 60;\n //Check if theres room for more slides than we have\n const leftOverSpace = Math.ceil(itemCount / visibleItems) * visibleItems - itemCount;\n /*\n When the last slide isn't filled with items, we only want to move back the number of items on the slide,\n rather than the total number of possible visible items\n */\n const spacesToMove = visibleItems - leftOverSpace;\n //Only want to change the amount of movement if the last item is visible\n const movement = lastItemInView && leftOverSpace > 0 ? spacesToMove * itemWidth : carouselInner.clientWidth;\n for (let target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == 'function' && target.matches('.btn-next, .btn-prev')) {\n const direction = target.matches('.btn-next') ? 'next' : 'prev';\n const customEvent = new CustomEvent(`${direction}-clicked`, {\n detail: {\n slide: target.getAttribute('data-go'),\n },\n });\n carouselComponent.dispatchEvent(customEvent);\n e.preventDefault();\n const scrollTo = target.classList.contains('btn-prev')\n ? carouselInner.scrollLeft - movement\n : carouselInner.scrollLeft + carouselInner.clientWidth;\n carouselInner.scroll({\n top: 0,\n left: scrollTo,\n behavior: 'smooth',\n });\n break;\n }\n }\n }, false);\n carouselProgress.addEventListener(stepperStart, function () {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n scrollArea = carouselInner.clientWidth;\n itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n visibleItems = Math.round(scrollArea / itemWidth);\n carouselProgress.setAttribute('step', visibleItems);\n progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n percent = getProgressPercent(carouselProgress.value, progressMax);\n carouselProgress.style.setProperty('--percent', percent + '%');\n }, 10);\n });\n carouselProgress.addEventListener(stepperEvent, function () {\n clearInterval(stepperInterval);\n });\n carouselProgress.addEventListener('change', function () {\n clearInterval(stepperInterval);\n const target = carouselComponent.querySelector(`:scope > *:nth-child(${carouselProgress.value})`);\n carouselInner.scroll({\n top: 0,\n left: target ? target.offsetLeft - carouselInner.getBoundingClientRect().left : 0,\n behavior: 'smooth',\n });\n //const direction = target.matches('.btn-next') ? 'next' : 'prev';\n const customEvent = new CustomEvent(`slider-changed`, {\n detail: {\n slide: carouselProgress.value,\n },\n });\n carouselComponent.dispatchEvent(customEvent);\n }, false);\n};\nexport const updateCarousel = function (carouselComponent) {\n const carouselElement = carouselComponent.shadowRoot.querySelector('.carousel');\n const carouselInner = carouselElement.querySelector('.carousel__inner');\n const carouselControls = carouselElement.querySelector('.carousel__controls');\n const carouselProgress = carouselElement.querySelector('.carousel__progress [type=\"range\"]');\n const itemCount = carouselComponent.querySelectorAll(':scope > div').length;\n let scrollArea = carouselInner.clientWidth;\n let itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n let visibleItems = Math.round(scrollArea / itemWidth);\n carouselProgress.setAttribute('min', 1);\n carouselProgress.setAttribute('step', visibleItems);\n let progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n carouselProgress.value = 1;\n let percent = getProgressPercent(1, progressMax);\n carouselProgress.style.setProperty('--percent', percent + '%');\n carouselControls.innerHTML = generatePipsHTML(carouselComponent, []);\n};\nexport default carousel;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { generateThumbnailList, generatePipsHTML, carousel, updateCarousel } from '../../modules/carousel';\nimport { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-carousel');\nclass iamCarousel extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/carousel.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = /* HTML */ `\n <style>\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"carousel\" part=\"carousel\">\n <div class=\"carousel__wrapper\">\n <div class=\"carousel__inner\">\n <div class=\"carousel__content\" part=\"content\">\n <slot></slot>\n </div>\n </div>\n </div>\n <div class=\"carousel__btns\" part=\"btns\">\n <button class=\"btn btn-secondary btn-compact fa-plus-large btn-prev\" data-go=\"0\" disabled part=\"prev\">\n Prev\n </button>\n <button class=\"btn btn-secondary btn-compact fa-plus-large btn-next\" data-go=\"2\" part=\"next\">Next</button>\n </div>\n\n <div class=\"carousel__controls\" part=\"controls\"></div>\n\n <div class=\"carousel__progress\" part=\"progress\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"1\" step=\"1\" />\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const carouselComponent = this;\n //const carouselElement = this.shadowRoot.querySelector('.carousel');\n //const row = this.shadowRoot.querySelector('.row');\n let thumbnailImages = [];\n const carouselControls = this.shadowRoot.querySelector('.carousel__controls');\n if (carouselComponent.querySelector('[data-thumbnail]')) {\n thumbnailImages = generateThumbnailList(carouselComponent);\n carouselComponent.classList.add('thumbnails');\n }\n // populate the pips\n carouselControls.innerHTML = generatePipsHTML(carouselComponent, thumbnailImages);\n Array.from(carouselComponent.querySelectorAll(':scope > div > img:first-child:last-child, :scope > div > picture:first-child:last-child img')).forEach((image) => {\n image.style.inset = '0 0.5rem 0 0.5rem';\n image.style.position = 'absolute';\n image.style.width = 'calc(100% - 1rem)';\n image.style.height = '100%';\n image.style['object-fit'] = 'cover';\n image.closest('div').classList.add('image__wrapper');\n });\n carousel(carouselComponent);\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n const targetElement = mutationRecord.target;\n updateCarousel(targetElement);\n });\n });\n observer.observe(carouselComponent, {\n attributes: false,\n childList: true,\n subtree: true,\n });\n trackComponent(carouselComponent, 'iam-carousel', [\n 'pip-clicked',\n 'next-clicked',\n 'prev-clicked',\n 'slider-changed',\n ]);\n }\n}\nexport default iamCarousel;\n"],"names":["generateThumbnailList","carouselComponent","thumbnailImages","slide","index","generatePipsHTML","itemCount","pips","i","pipContent","pipClass","getProgressMax","visibleItems","getProgressPercent","value","max","carousel","scrollTimeout","carouselElement","carouselInner","carouselControls","carouselProgress","scrollArea","itemWidth","progressMax","percent","stepperInterval","stepperEvent","stepperStart","scrollWidth","scrollLeft","targetSlide","lastItemOffset","lastItemInView","leftOverSpace","button","e","target","customEvent","el","spacesToMove","movement","direction","scrollTo","updateCarousel","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamCarousel","template","image","mutations","mutationRecord","targetElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"carousel.component.min.js","sources":["../_global.js","carousel.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-carousel');\nclass iamCarousel extends HTMLElement {\n constructor() {\n super();\n this.generateThumbnailList = (carouselComponent) => {\n const thumbnailImages = [];\n Array.from(carouselComponent.querySelectorAll(':scope > :is(div,iam-card)')).forEach((slide, index) => {\n if (slide.hasAttribute('data-thumbnail')) {\n thumbnailImages[index] = slide.getAttribute('data-thumbnail');\n }\n });\n return thumbnailImages;\n };\n this.generatePipsHTML = (carouselComponent, thumbnailImages) => {\n const itemCount = carouselComponent.querySelectorAll(':scope > :is(div,iam-card)').length;\n let pips = '';\n for (let i = 1; i <= itemCount; i++) {\n let pipContent = null;\n let pipClass = '';\n if (thumbnailImages.length && thumbnailImages[i - 1]) {\n pipClass = 'has-thumbnail';\n pipContent = `<img src=\"${thumbnailImages[i - 1]}\" alt=\"Slide ${i}\" height=\"148\"/>`;\n }\n else {\n pipContent = `Slide ${i}`;\n }\n pips += `<button class=\"control-${i} ${pipClass}\" data-slide=\"${i}\" ${i == 1 ? 'aria-current' : ''}>${pipContent}</button>`;\n }\n return pips;\n };\n this.progressPercent = (value, total) => {\n return ((value) / (total)) * 100 + '%';\n };\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/carousel.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = /* HTML */ `\n <style>\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"carousel-wrapper\">\n <div class=\"carousel\" part=\"carousel\">\n <slot></slot>\n </div>\n <div class=\"carousel__controls\"></div>\n <div id=\"carousel__progress\" class=\"carousel__progress\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"1\" />\n </div>\n <div id=\"carousel__progress-sm\" class=\"carousel__progress\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"1\" />\n </div>\n <div id=\"carousel__progress-md\" class=\"carousel__progress\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"1\" />\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a;\n const carouselElement = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.carousel');\n const carouselProgress = this.shadowRoot.querySelector('#carousel__progress [type=\"range\"]');\n const carouselProgressSM = this.shadowRoot.querySelector('#carousel__progress-sm [type=\"range\"]');\n const carouselProgressMD = this.shadowRoot.querySelector('#carousel__progress-md [type=\"range\"]');\n const itemCount = this.querySelectorAll(':scope > *').length;\n const progressPercent = this.progressPercent;\n let stepperInterval, stepperEvent = 'mouseup', stepperStart = 'mousedown';\n if ('ontouchstart' in document.documentElement) {\n stepperEvent = 'touchend';\n stepperStart = 'touchstart';\n }\n carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.innerHTML = this.innerHTML;\n carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.setAttribute('data-smcols', this.getAttribute('data-smcols'));\n carouselElement === null || carouselElement === void 0 ? void 0 : carouselElement.setAttribute('data-mdcols', this.getAttribute('data-mdcols'));\n carouselProgress.setAttribute('max', itemCount);\n carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));\n carouselProgress.addEventListener(stepperStart, () => {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));\n }, 10);\n });\n carouselProgress.addEventListener(stepperEvent, function () {\n clearInterval(stepperInterval);\n });\n carouselProgress.addEventListener('change', () => {\n clearInterval(stepperInterval);\n carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));\n const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * (carouselProgress.value - 1));\n carouselElement.scrollTo({\n top: 0,\n left: scrollTo,\n behavior: 'smooth',\n });\n });\n // SM Progress bar\n const smStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;\n const smItemCount = Math.floor(itemCount / smStep) * smStep;\n carouselProgressSM.setAttribute('max', smItemCount);\n carouselProgressSM.setAttribute('step', smStep);\n carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));\n carouselProgressSM.addEventListener(stepperStart, () => {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));\n });\n });\n carouselProgressSM.addEventListener(stepperEvent, function () {\n clearInterval(stepperInterval);\n });\n carouselProgressSM.addEventListener('change', () => {\n clearInterval(stepperInterval);\n carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));\n const scrollTo = Math.floor((carouselElement.scrollWidth / smItemCount) * carouselProgressSM.value);\n console.log(carouselProgressSM.value);\n carouselElement.scrollTo({\n top: 0,\n left: scrollTo,\n behavior: 'smooth',\n });\n });\n // MD Progress bar\n const mdStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;\n const mdItemCount = Math.floor(itemCount / mdStep) * mdStep;\n carouselProgressMD.setAttribute('max', mdItemCount);\n carouselProgressMD.setAttribute('step', mdStep);\n carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));\n carouselProgressMD.addEventListener(stepperStart, () => {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));\n });\n });\n carouselProgressMD.addEventListener(stepperEvent, function () {\n clearInterval(stepperInterval);\n });\n carouselProgressMD.addEventListener('change', () => {\n clearInterval(stepperInterval);\n carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));\n const scrollTo = Math.floor((carouselElement.scrollWidth / mdItemCount) * carouselProgressMD.value);\n console.log(carouselProgressMD.value);\n carouselElement.scrollTo({\n top: 0,\n left: scrollTo,\n behavior: 'smooth',\n });\n });\n // Thumbnails\n const carouselControls = this.shadowRoot.querySelector('.carousel__controls');\n if (carouselElement.querySelector('[data-thumbnail]')) {\n const thumbnailImages = this.generateThumbnailList(carouselElement);\n carouselElement.classList.add('thumbnails');\n carouselControls.innerHTML = this.generatePipsHTML(carouselElement, thumbnailImages);\n }\n carouselControls.addEventListener('click', (event) => {\n var _a;\n (_a = carouselControls === null || carouselControls === void 0 ? void 0 : carouselControls.querySelector('[aria-current]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('aria-current');\n if (event.target.closest('button[data-slide]')) {\n event.target.closest('button[data-slide]').setAttribute('aria-current', 'true');\n const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * event.target.closest('button[data-slide]').getAttribute('data-slide'));\n carouselElement.scrollTo({\n top: 0,\n left: scrollTo,\n behavior: 'smooth',\n });\n }\n });\n }\n}\nexport default iamCarousel;\n"],"names":["trackComponentRegistered","componentName","iamCarousel","carouselComponent","thumbnailImages","slide","index","itemCount","pips","i","pipContent","pipClass","value","total","template","_a","carouselElement","carouselProgress","carouselProgressSM","carouselProgressMD","progressPercent","stepperInterval","stepperEvent","stepperStart","scrollTo","smStep","smItemCount","mdStep","mdItemCount","carouselControls","event"],"mappings":"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"}
|