@iamproperty/components 7.7.1--beta6 → 7.7.1--beta7
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 +4 -4
- package/assets/bootstrap/README.md +247 -247
- package/assets/bootstrap/js/index.esm.js +19 -19
- package/assets/bootstrap/js/index.umd.js +34 -34
- package/assets/bootstrap/js/src/alert.js +87 -87
- package/assets/bootstrap/js/src/base-component.js +85 -85
- package/assets/bootstrap/js/src/button.js +72 -72
- package/assets/bootstrap/js/src/carousel.js +475 -475
- package/assets/bootstrap/js/src/collapse.js +302 -302
- package/assets/bootstrap/js/src/dom/data.js +55 -55
- package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
- package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
- package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
- package/assets/bootstrap/js/src/dropdown.js +445 -445
- package/assets/bootstrap/js/src/modal.js +373 -373
- package/assets/bootstrap/js/src/offcanvas.js +283 -283
- package/assets/bootstrap/js/src/popover.js +97 -97
- package/assets/bootstrap/js/src/scrollspy.js +290 -290
- package/assets/bootstrap/js/src/tab.js +307 -307
- package/assets/bootstrap/js/src/toast.js +220 -220
- package/assets/bootstrap/js/src/tooltip.js +651 -651
- package/assets/bootstrap/js/src/util/backdrop.js +149 -149
- package/assets/bootstrap/js/src/util/component-functions.js +34 -34
- package/assets/bootstrap/js/src/util/config.js +66 -66
- package/assets/bootstrap/js/src/util/focustrap.js +115 -115
- package/assets/bootstrap/js/src/util/index.js +336 -336
- package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
- package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
- package/assets/bootstrap/js/src/util/swipe.js +146 -146
- package/assets/bootstrap/js/src/util/template-factory.js +160 -160
- package/assets/bootstrap/package.json +180 -180
- package/assets/bootstrap/scss/_accordion.scss +146 -146
- package/assets/bootstrap/scss/_button-group.scss +142 -142
- package/assets/bootstrap/scss/_buttons.scss +186 -186
- package/assets/bootstrap/scss/_carousel.scss +229 -229
- package/assets/bootstrap/scss/_dropdown.scss +248 -248
- package/assets/bootstrap/scss/_functions.scss +302 -302
- package/assets/bootstrap/scss/_list-group.scss +191 -191
- package/assets/bootstrap/scss/_modal.scss +237 -237
- package/assets/bootstrap/scss/_nav.scss +172 -172
- package/assets/bootstrap/scss/_navbar.scss +276 -276
- package/assets/bootstrap/scss/_offcanvas.scss +143 -143
- package/assets/bootstrap/scss/_pagination.scss +109 -109
- package/assets/bootstrap/scss/_popover.scss +196 -196
- package/assets/bootstrap/scss/_toasts.scss +70 -70
- package/assets/bootstrap/scss/_variables-dark.scss +87 -87
- package/assets/bootstrap/scss/_variables.scss +1633 -1633
- package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
- package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
- package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
- package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
- package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
- package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
- package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
- package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
- package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
- package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/favicons/README.md +20 -20
- package/assets/favicons/browserconfig.xml +9 -9
- package/assets/favicons/manifest.json +31 -31
- package/assets/favicons/safari-pinned-tab.svg +35 -35
- package/assets/favicons/site.webmanifest +20 -20
- package/assets/js/components/accordion/accordion.component.js +14 -14
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +66 -66
- package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +58 -58
- package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.js +18 -18
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.js +6 -6
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +1 -1
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js +1 -1
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/config/config.component.js +53 -53
- package/assets/js/components/config/config.component.min.js +1 -1
- package/assets/js/components/config/config.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.js +9 -9
- package/assets/js/components/content/content.component.min.js +1 -1
- package/assets/js/components/content/content.component.min.js.map +1 -1
- package/assets/js/components/darkmode/darkmode.component.js +4 -4
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.js +16 -16
- package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
- package/assets/js/components/filter-card/filter-card.component.js +7 -7
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- 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.js +4 -4
- package/assets/js/components/form/form.component.min.js +1 -1
- package/assets/js/components/form/form.component.min.js.map +1 -1
- package/assets/js/components/header/header.component.js +53 -53
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js.map +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/input/input.component.js +10 -10
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input/input.component.min.js.map +1 -1
- package/assets/js/components/input-range/input-range.component.js +8 -8
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
- package/assets/js/components/marketing/marketing.component.js +10 -10
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
- package/assets/js/components/menu/menu.component.js +6 -6
- package/assets/js/components/menu/menu.component.min.js +1 -1
- 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.js +21 -21
- package/assets/js/components/modal/modal.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.js +11 -11
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
- package/assets/js/components/multiselect/multiselect.component.js +20 -20
- package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +45 -45
- package/assets/js/components/nav/nav.component.min.js +1 -1
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +14 -13
- package/assets/js/components/notification/notification.component.min.js +5 -4
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.js +39 -39
- package/assets/js/components/pagination/pagination.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
- package/assets/js/components/password/password.component.js +10 -10
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/password/password.component.min.js.map +1 -1
- package/assets/js/components/popover/popover.component.js +7 -7
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js.map +1 -1
- package/assets/js/components/rank/rank.component.js +359 -359
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js.map +1 -1
- package/assets/js/components/rankings/rankings.component.js +16 -16
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
- package/assets/js/components/rating/rating.component.js +9 -9
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +17 -17
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.js +12 -12
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js.map +1 -1
- package/assets/js/components/split-button/split-button.component.js +18 -18
- package/assets/js/components/split-button/split-button.component.min.js +1 -1
- 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.js +113 -113
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.js +15 -15
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.js +15 -15
- package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
- package/assets/js/components/table-basic/table-basic.component.js +15 -15
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -15
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
- 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.js +15 -15
- package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.js +17 -17
- package/assets/js/components/tabs/tabs.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/tag/tag.component.js +12 -12
- package/assets/js/components/tag/tag.component.min.js +1 -1
- package/assets/js/components/tag/tag.component.min.js.map +1 -1
- package/assets/js/components/tooltip/tooltip.component.js +8 -8
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
- package/assets/js/components/video/video.component.js +9 -9
- package/assets/js/components/video/video.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.js +12 -12
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components/video-modal/video-modal.component.js +13 -13
- package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
- package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/card.module.js +14 -14
- package/assets/js/modules/chart.module.js +4 -4
- package/assets/js/modules/integration-tests.js +3 -3
- package/assets/js/modules/table.js +2 -2
- package/assets/js/modules/videos.js +6 -6
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/sass/_bs_grid.scss +41 -41
- package/assets/sass/_bs_utilities.scss +51 -51
- package/assets/sass/_components.scss +162 -162
- package/assets/sass/_corefiles.scss +31 -31
- package/assets/sass/_elements.scss +30 -30
- package/assets/sass/_fonts.scss +28 -28
- package/assets/sass/_func.scss +2 -2
- package/assets/sass/_functions/bs_functions.scss +487 -487
- package/assets/sass/_functions/bs_mixins.scss +2103 -2103
- package/assets/sass/_functions/bs_utilities.scss +922 -922
- package/assets/sass/_functions/bs_variables.scss +1701 -1701
- package/assets/sass/_functions/functions.scss +48 -48
- package/assets/sass/_functions/mixins.scss +1 -1
- package/assets/sass/_grid.scss +320 -320
- package/assets/sass/_print.scss +64 -64
- package/assets/sass/_utilities.scss +35 -35
- package/assets/sass/components/actionbar.component.scss +421 -421
- package/assets/sass/components/actionbar.global.scss +115 -115
- package/assets/sass/components/address-lookup.component.scss +160 -160
- package/assets/sass/components/address-lookup.preload.scss +90 -90
- package/assets/sass/components/applied-filters.scss +19 -19
- package/assets/sass/components/barchart.component.scss +347 -347
- package/assets/sass/components/bento-grid.component.scss +109 -109
- package/assets/sass/components/bento-grid.global.scss +248 -248
- package/assets/sass/components/calendar.component.scss +1272 -1272
- package/assets/sass/components/calendar.config.scss +423 -423
- package/assets/sass/components/card.component.scss +187 -187
- package/assets/sass/components/card.module.scss +154 -154
- package/assets/sass/components/carousel.component.scss +631 -631
- package/assets/sass/components/carousel.config.scss +84 -84
- package/assets/sass/components/charts.config.scss +86 -86
- package/assets/sass/components/charts.module.scss +588 -588
- package/assets/sass/components/charts.scss +1298 -1298
- package/assets/sass/components/collapsible-side.scss +307 -307
- package/assets/sass/components/config.component.scss +235 -235
- package/assets/sass/components/content.component.scss +18 -18
- package/assets/sass/components/darkmode.component.scss +20 -20
- package/assets/sass/components/doughnutchart.component.scss +206 -206
- package/assets/sass/components/fileupload.scss +162 -162
- package/assets/sass/components/filter-card.component.scss +99 -99
- package/assets/sass/components/header.scss +251 -251
- package/assets/sass/components/inline-edit.preload.scss +203 -203
- package/assets/sass/components/inline-edit.scss +40 -40
- package/assets/sass/components/input-range.component.scss +46 -46
- package/assets/sass/components/input.component.scss +101 -101
- package/assets/sass/components/marketing.component.scss +65 -65
- package/assets/sass/components/menu.component.scss +161 -161
- package/assets/sass/components/menu.global.scss +82 -82
- package/assets/sass/components/milestone.scss +216 -216
- package/assets/sass/components/modal.component.scss +252 -252
- package/assets/sass/components/multi-step-modal.component.scss +255 -255
- package/assets/sass/components/multi-step-modal.global.scss +91 -91
- package/assets/sass/components/multi-step.component.scss +144 -144
- package/assets/sass/components/multiselect.preload.scss +8 -8
- package/assets/sass/components/multiselect.scss +238 -238
- package/assets/sass/components/nav.component.scss +718 -718
- package/assets/sass/components/nav.docs.scss +55 -55
- package/assets/sass/components/nav.global.scss +870 -870
- package/assets/sass/components/nav.preload.scss +54 -54
- package/assets/sass/components/notification.scss +204 -217
- package/assets/sass/components/pagination.scss +237 -237
- package/assets/sass/components/password.component.scss +55 -55
- package/assets/sass/components/popover.component.scss +28 -28
- package/assets/sass/components/property-searchbar.scss +139 -139
- package/assets/sass/components/rank.component.scss +275 -275
- package/assets/sass/components/rankings.component.scss +70 -70
- package/assets/sass/components/rankings.global.scss +140 -140
- package/assets/sass/components/rating.component.css +211 -211
- package/assets/sass/components/record-card.component.scss +191 -191
- package/assets/sass/components/slider.scss +127 -127
- package/assets/sass/components/snapshot.scss +65 -65
- package/assets/sass/components/split-button.component.scss +83 -83
- package/assets/sass/components/stepper.scss +157 -157
- package/assets/sass/components/table-basic.component.scss +136 -136
- package/assets/sass/components/table-basic.global.scss +676 -676
- package/assets/sass/components/table.component.scss +51 -51
- package/assets/sass/components/table.global.scss +398 -398
- package/assets/sass/components/tabs.component.scss +34 -34
- package/assets/sass/components/tabs.config.scss +258 -258
- package/assets/sass/components/tag.component.scss +59 -59
- package/assets/sass/components/tag.preload.scss +20 -20
- package/assets/sass/components/testimonial.scss +125 -125
- package/assets/sass/components/timeline.scss +92 -92
- package/assets/sass/components/tooltip.component.scss +148 -148
- package/assets/sass/components/video-card.component.scss +48 -48
- package/assets/sass/components/video-modal.component.scss +26 -26
- package/assets/sass/components/video.component.scss +74 -74
- package/assets/sass/components/word-count.component.scss +26 -26
- package/assets/sass/core.scss +4 -4
- package/assets/sass/elements/admin-panel.css +310 -310
- package/assets/sass/elements/badge-tag.css +101 -101
- package/assets/sass/elements/brand.css +80 -80
- package/assets/sass/elements/button__group.css +135 -135
- package/assets/sass/elements/buttons--action.css +71 -71
- package/assets/sass/elements/buttons--compact.css +168 -168
- package/assets/sass/elements/buttons--global.css +239 -239
- package/assets/sass/elements/buttons--secondary.css +18 -18
- package/assets/sass/elements/buttons--special.css +164 -164
- package/assets/sass/elements/buttons--tertiary.css +51 -51
- package/assets/sass/elements/buttons.scss +9 -9
- package/assets/sass/elements/code.css +45 -45
- package/assets/sass/elements/container.scss +118 -118
- package/assets/sass/elements/details.css +224 -224
- package/assets/sass/elements/dialog.scss +75 -75
- package/assets/sass/elements/dropdown.css +85 -85
- package/assets/sass/elements/feature.css +174 -174
- package/assets/sass/elements/forms.scss +1337 -1337
- package/assets/sass/elements/highlight.css +76 -76
- package/assets/sass/elements/hr.css +41 -41
- package/assets/sass/elements/icons.css +48 -48
- package/assets/sass/elements/input.scss +212 -212
- package/assets/sass/elements/label.css +20 -20
- package/assets/sass/elements/links--collapsible-side.scss +129 -129
- package/assets/sass/elements/links--global.scss +155 -155
- package/assets/sass/elements/links--video.scss +73 -73
- package/assets/sass/elements/links.scss +4 -4
- package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
- package/assets/sass/elements/lists--steps.css +171 -171
- package/assets/sass/elements/lists--tick-list.scss +112 -112
- package/assets/sass/elements/lists.scss +99 -99
- package/assets/sass/elements/media.css +20 -20
- package/assets/sass/elements/modal.scss +411 -411
- package/assets/sass/elements/popover.scss +259 -259
- package/assets/sass/elements/prefix.scss +139 -139
- package/assets/sass/elements/progress.scss +208 -208
- package/assets/sass/elements/table.element.scss +144 -144
- package/assets/sass/elements/textarea.css +84 -84
- package/assets/sass/elements/toggle-button.css +49 -49
- package/assets/sass/elements/tooltips.scss +152 -152
- package/assets/sass/elements/type.css +166 -166
- package/assets/sass/email.scss +68 -68
- package/assets/sass/error.scss +31 -31
- package/assets/sass/foundations/animations.scss +2 -2
- package/assets/sass/foundations/colours.scss +104 -104
- package/assets/sass/foundations/reboot.scss +166 -166
- package/assets/sass/foundations/root.scss +269 -269
- package/assets/sass/main.scss +7 -7
- package/assets/sass/templates/auth.scss +106 -106
- package/assets/sass/templates/form.scss +95 -95
- package/assets/sass/utilities/align.css +24 -24
- package/assets/sass/utilities/border.css +65 -65
- package/assets/sass/utilities/clearfix.css +8 -8
- package/assets/sass/utilities/colours.scss +43 -43
- package/assets/sass/utilities/columns.css +61 -61
- package/assets/sass/utilities/display.scss +89 -89
- package/assets/sass/utilities/fixed.css +16 -16
- package/assets/sass/utilities/flex.scss +291 -291
- package/assets/sass/utilities/font-awesome-iso-fallbacks.css +43 -43
- package/assets/sass/utilities/gap.css +25 -25
- package/assets/sass/utilities/gradients.css +39 -39
- package/assets/sass/utilities/js-display.css +12 -12
- package/assets/sass/utilities/line-clamp.css +24 -24
- package/assets/sass/utilities/margins.scss +74 -74
- package/assets/sass/utilities/max-height.scss +93 -93
- package/assets/sass/utilities/opacity.css +20 -20
- package/assets/sass/utilities/order.css +104 -104
- package/assets/sass/utilities/overflow.css +16 -16
- package/assets/sass/utilities/paddings.scss +33 -33
- package/assets/sass/utilities/pointer-events.css +8 -8
- package/assets/sass/utilities/position.css +67 -67
- package/assets/sass/utilities/ratio.css +33 -33
- package/assets/sass/utilities/rounded.css +56 -56
- package/assets/sass/utilities/shadow.css +6 -6
- package/assets/sass/utilities/sizes.css +92 -92
- package/assets/sass/utilities/sticky.css +38 -38
- package/assets/sass/utilities/text-truncate.css +6 -6
- package/assets/sass/utilities/text.css +190 -190
- package/assets/sass/utilities/visible.css +8 -8
- package/assets/sass/utilities/visually-hidden.css +13 -13
- package/assets/sass/utilities/wider-colours.scss +8 -8
- package/assets/svg/illustrations/table.svg +165 -165
- package/assets/svg/logo.svg +56 -56
- package/assets/ts/components/accordion/accordion.component.ts +77 -77
- package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
- package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
- package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
- package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
- package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
- package/assets/ts/components/config/config.component.ts +699 -699
- package/assets/ts/components/content/content.component.ts +78 -78
- package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
- package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
- package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
- package/assets/ts/components/form/form.component.ts +102 -102
- package/assets/ts/components/header/header.component.ts +97 -97
- package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
- package/assets/ts/components/input/input.component.ts +278 -278
- package/assets/ts/components/input-range/input-range.component.ts +78 -78
- package/assets/ts/components/marketing/marketing.component.ts +44 -44
- package/assets/ts/components/menu/menu.component.ts +212 -212
- package/assets/ts/components/modal/modal.component.ts +184 -184
- package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
- package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
- package/assets/ts/components/nav/nav.component.ts +369 -369
- package/assets/ts/components/notification/notification.component.ts +173 -172
- package/assets/ts/components/pagination/pagination.component.ts +213 -213
- package/assets/ts/components/password/password.component.ts +118 -118
- package/assets/ts/components/popover/popover.component.ts +50 -50
- package/assets/ts/components/rank/rank.component.ts +394 -394
- package/assets/ts/components/rankings/rankings.component.ts +79 -79
- package/assets/ts/components/rating/rating.component.ts +86 -86
- package/assets/ts/components/search/search.component.ts +244 -244
- package/assets/ts/components/slider/slider.component.ts +170 -170
- package/assets/ts/components/split-button/split-button.component.ts +63 -63
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
- package/assets/ts/components/table/table.component.ts +94 -94
- package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
- package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
- package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
- package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
- package/assets/ts/components/tabs/tabs.component.ts +70 -70
- package/assets/ts/components/tag/tag.component.ts +104 -104
- package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
- package/assets/ts/components/video/video.component.ts +74 -74
- package/assets/ts/components/video-card/video-card.component.ts +129 -129
- package/assets/ts/components/video-modal/video-modal.component.ts +88 -88
- package/assets/ts/modules/advanced-select.ts +186 -186
- package/assets/ts/modules/applied-filters.ts +238 -238
- package/assets/ts/modules/card.module.ts +46 -46
- package/assets/ts/modules/chart.module.ts +594 -594
- package/assets/ts/modules/data-layer.md +71 -71
- package/assets/ts/modules/dialogs.ts +259 -259
- package/assets/ts/modules/dropdown.ts +216 -216
- package/assets/ts/modules/helper.test.ts +143 -143
- package/assets/ts/modules/helpers.ts +212 -212
- package/assets/ts/modules/integration-tests.ts +525 -525
- package/assets/ts/modules/modal.ts +45 -45
- package/assets/ts/modules/password.ts +82 -82
- package/assets/ts/modules/table.ts +1500 -1500
- package/assets/ts/modules/test.ts +22 -22
- package/assets/ts/modules/videos.ts +233 -233
- package/assets/ts/scripts.ts +111 -111
- package/dist/components.es.js +24 -24
- package/dist/components.umd.js +3 -2
- package/package.json +115 -115
- package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
- package/src/components/Config/Config.vue +23 -23
- package/src/components/DarkMode/DarkMode.vue +19 -19
- package/src/components/Filterlist/Filterlist.vue +23 -23
- package/src/components/Form/Form.vue +22 -22
- package/src/components/Header/Header.vue +36 -36
- package/src/components/Input/Input.vue +22 -22
- package/src/components/InputRange/InputRange.vue +22 -22
- package/src/components/Modal/Modal.vue +22 -22
- package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
- package/src/components/NoteFeed/NoteFeed.vue +82 -82
- package/src/components/Password/Password.vue +23 -23
- package/src/components/Popover/Popover.vue +22 -22
- package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
- package/src/components/PropertySearchbar/README.md +25 -25
- package/src/components/Rating/Rating.vue +22 -22
- package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
- package/src/components/Snapshot/Snapshot.vue +30 -30
- package/src/components/Tag/Tag.vue +22 -22
- package/src/components/Tooltip/Tooltip.vue +22 -22
- package/src/components/Video/Video.vue +22 -22
- package/src/components/VideoModal/VideoModal.vue +22 -22
- package/assets/bootstrap/dist/css/bootstrap-grid.css +0 -4124
- package/assets/bootstrap/dist/css/bootstrap-grid.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-grid.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +0 -4123
- package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-reboot.css +0 -488
- package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +0 -485
- package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-utilities.css +0 -4197
- package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +0 -4188
- package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap.css +0 -10907
- package/assets/bootstrap/dist/css/bootstrap.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap.min.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap.rtl.css +0 -10867
- package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +0 -1
- package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +0 -7
- package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.bundle.js +0 -7066
- package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +0 -7
- package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.esm.js +0 -5204
- package/assets/bootstrap/dist/js/bootstrap.esm.js.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.esm.min.js +0 -7
- package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.js +0 -5251
- package/assets/bootstrap/dist/js/bootstrap.js.map +0 -1
- package/assets/bootstrap/dist/js/bootstrap.min.js +0 -7
- package/assets/bootstrap/dist/js/bootstrap.min.js.map +0 -1
- package/assets/bootstrap/js/dist/alert.js +0 -100
- package/assets/bootstrap/js/dist/alert.js.map +0 -1
- package/assets/bootstrap/js/dist/base-component.js +0 -100
- package/assets/bootstrap/js/dist/base-component.js.map +0 -1
- package/assets/bootstrap/js/dist/button.js +0 -82
- package/assets/bootstrap/js/dist/button.js.map +0 -1
- package/assets/bootstrap/js/dist/carousel.js +0 -471
- package/assets/bootstrap/js/dist/carousel.js.map +0 -1
- package/assets/bootstrap/js/dist/collapse.js +0 -311
- package/assets/bootstrap/js/dist/collapse.js.map +0 -1
- package/assets/bootstrap/js/dist/dom/data.js +0 -67
- package/assets/bootstrap/js/dist/dom/data.js.map +0 -1
- package/assets/bootstrap/js/dist/dom/event-handler.js +0 -284
- package/assets/bootstrap/js/dist/dom/event-handler.js.map +0 -1
- package/assets/bootstrap/js/dist/dom/manipulator.js +0 -85
- package/assets/bootstrap/js/dist/dom/manipulator.js.map +0 -1
- package/assets/bootstrap/js/dist/dom/selector-engine.js +0 -86
- package/assets/bootstrap/js/dist/dom/selector-engine.js.map +0 -1
- package/assets/bootstrap/js/dist/dropdown.js +0 -471
- package/assets/bootstrap/js/dist/dropdown.js.map +0 -1
- package/assets/bootstrap/js/dist/modal.js +0 -397
- package/assets/bootstrap/js/dist/modal.js.map +0 -1
- package/assets/bootstrap/js/dist/offcanvas.js +0 -298
- package/assets/bootstrap/js/dist/offcanvas.js.map +0 -1
- package/assets/bootstrap/js/dist/popover.js +0 -102
- package/assets/bootstrap/js/dist/popover.js.map +0 -1
- package/assets/bootstrap/js/dist/scrollspy.js +0 -308
- package/assets/bootstrap/js/dist/scrollspy.js.map +0 -1
- package/assets/bootstrap/js/dist/tab.js +0 -334
- package/assets/bootstrap/js/dist/tab.js.map +0 -1
- package/assets/bootstrap/js/dist/toast.js +0 -237
- package/assets/bootstrap/js/dist/toast.js.map +0 -1
- package/assets/bootstrap/js/dist/tooltip.js +0 -663
- package/assets/bootstrap/js/dist/tooltip.js.map +0 -1
- package/assets/bootstrap/js/dist/util/backdrop.js +0 -166
- package/assets/bootstrap/js/dist/util/backdrop.js.map +0 -1
- package/assets/bootstrap/js/dist/util/component-functions.js +0 -47
- package/assets/bootstrap/js/dist/util/component-functions.js.map +0 -1
- package/assets/bootstrap/js/dist/util/config.js +0 -80
- package/assets/bootstrap/js/dist/util/config.js.map +0 -1
- package/assets/bootstrap/js/dist/util/focustrap.js +0 -130
- package/assets/bootstrap/js/dist/util/focustrap.js.map +0 -1
- package/assets/bootstrap/js/dist/util/index.js +0 -351
- package/assets/bootstrap/js/dist/util/index.js.map +0 -1
- package/assets/bootstrap/js/dist/util/sanitizer.js +0 -123
- package/assets/bootstrap/js/dist/util/sanitizer.js.map +0 -1
- package/assets/bootstrap/js/dist/util/scrollbar.js +0 -139
- package/assets/bootstrap/js/dist/util/scrollbar.js.map +0 -1
- package/assets/bootstrap/js/dist/util/swipe.js +0 -156
- package/assets/bootstrap/js/dist/util/swipe.js.map +0 -1
- package/assets/bootstrap/js/dist/util/template-factory.js +0 -178
- package/assets/bootstrap/js/dist/util/template-factory.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiselect.component.min.js","sources":["../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../modules/dropdown.js","multiselect.component.js"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from '../../../node_modules/js-cookie/dist/js.cookie.mjs';\nexport const filterList = (component, search) => {\n Array.from(component.querySelectorAll(`label:not([slot=\"checked\"])`)).forEach((label) => {\n const checkbox = label.querySelector('input');\n const searchValue = checkbox.value;\n const labelText = label.textContent;\n if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||\n labelText.toLowerCase().includes(search.value.toLowerCase())) {\n label.removeAttribute('slot');\n }\n else {\n label.setAttribute('slot', 'notmatched');\n }\n });\n};\nexport const searchAjax = (component, search, callback) => __awaiter(void 0, void 0, void 0, function* () {\n const searchterm = search.value;\n const ajaxURL = component.getAttribute('data-url');\n const firstInput = component.querySelector('input');\n console.log(firstInput);\n const inputType = firstInput && firstInput.hasAttribute('type') ? firstInput.getAttribute('type') : 'checkbox';\n let inputName = firstInput && firstInput.hasAttribute('name') ? firstInput.getAttribute('name') : 'tags';\n if (component.hasAttribute('data-name'))\n inputName = component.hasAttribute('data-name');\n const searchAjaxURL = `${ajaxURL}?search_query=${encodeURI(searchterm)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n if (!component.querySelector(`[value=\"${response['data'][i].value}\"]`))\n items += `<label class=\"tag dropdown__option\"><input type=\"${inputType}\" name=\"${component.hasAttribute('data-name') ? component.getAttribute('data-name') : inputName}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n component.insertAdjacentHTML('beforeend', `${items}`);\n callback(component, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const setTag = (tag) => {\n const input = tag.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n tag.setAttribute('slot', 'checked');\n tag.setAttribute('data-content', tag.textContent);\n let tags = [];\n if (localStorage.getItem('tags-' + inputName) != null)\n tags = JSON.parse(localStorage.getItem('tags-' + inputName));\n if (!tags.includes(tag.textContent)) {\n tags.push(tag.textContent);\n localStorage.setItem('tags-' + inputName, JSON.stringify(tags));\n }\n let tagIndex = tags.indexOf(tag.textContent) + 1;\n if (tagIndex > 23)\n tagIndex = 1;\n tag === null || tag === void 0 ? void 0 : tag.classList.add(`wider-colour-${tagIndex + 1}`);\n};\nexport const addKeyboardEvents = (dropdown, search) => {\n search.addEventListener('keydown', (e) => {\n var _a;\n switch (e.keyCode) {\n case 40: // down\n e.stopPropagation();\n e.preventDefault();\n (_a = dropdown.querySelector('label:not([slot=\"checked\"]) input')) === null || _a === void 0 ? void 0 : _a.focus();\n break;\n }\n });\n dropdown.addEventListener('keydown', (event) => {\n var _a, _b, _c;\n const topLevelmenuItems = dropdown.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot=\"checked\"]) > input');\n const menuItems = dropdown.querySelectorAll('a, button, input, label:not([slot=\"checked\"]) > input');\n const activeElement = document.activeElement;\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary, label:not([slot=\"checked\"]) > input')) {\n const activeItem = document.activeElement;\n const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;\n const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;\n switch (event.keyCode // change to event.key to key to use the above variable\n ) {\n case 27: // Esc\n if (activeItem.closest('details')) {\n event.stopPropagation();\n event.preventDefault();\n activeItem.closest('details').removeAttribute('open');\n activeItem.closest('details').querySelector(':scope summary').focus();\n }\n else {\n event.stopPropagation();\n //menuButton.focus();\n }\n break;\n case 32: // Space\n case 13: // Enter\n break;\n case 35: // end\n event.stopPropagation();\n event.preventDefault();\n (_a = dropdown.querySelector('details[open]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n (_b = dropdown.querySelector('details[open]')) === null || _b === void 0 ? void 0 : _b.removeAttribute('open');\n Array.from(menuItems)[0].focus();\n break;\n case 38: // up\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[prevIndex] != undefined)\n Array.from(topLevelmenuItems)[prevIndex].focus();\n else\n Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;\n if (Array.from(subMenuItems)[subPrevIndex] != undefined)\n Array.from(subMenuItems)[subPrevIndex].focus();\n else\n Array.from(subMenuItems)[subMenuItems.length - 1].focus();\n }\n break;\n case 40: // down\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[nextIndex] != undefined)\n Array.from(topLevelmenuItems)[nextIndex].focus();\n else\n Array.from(topLevelmenuItems)[0].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = (_c = activeItem.closest('details')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('a, button, :scope details > summary');\n subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;\n if (Array.from(subMenuItems)[subNextIndex] != undefined)\n Array.from(subMenuItems)[subNextIndex].focus();\n else\n Array.from(subMenuItems)[0].focus();\n }\n break;\n }\n }\n });\n};\n","import { searchAjax, filterList, addKeyboardEvents } from '../../modules/dropdown';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'mutliselect',\n});\nclass iamMultiselect 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/multiselect.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style>\r\n \r\n ${loadCSS}\r\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\r\n </style>\r\n <label for=\"search\" class=\"mb-0\"><span class=\"inner-label label\"></span> <slot name=\"feedback\"></slot>\r\n <div class=\"outer\">\r\n <div class=\"wrapper\">\r\n \r\n <slot name=\"checked\"></slot>\r\n <input name=\"search\" id=\"search\" autocomplete=\"off\" required part=\"search-input\"/>\r\n <span class=\"admin-panel feedback\">This field is required</span>\r\n <div class=\"admin-panel dropdown\" part=\"dropdown\">\r\n <slot></slot>\r\n </div>\r\n <button id=\"clear\" class=\"btn btn-action \"><span class=\"visually-hidden\">Clear</span></button>\r\n </div>\r\n </div>\r\n </label>\r\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const multiselect = this;\n const form = this.closest('form');\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const search = multiselect.shadowRoot.querySelector('#search');\n const button = multiselect.shadowRoot.querySelector('#clear');\n let order = 0;\n const innerLabel = multiselect.shadowRoot.querySelector('label .inner-label');\n const ajaxURL = this.getAttribute('data-url');\n innerLabel.innerHTML = multiselect.getAttribute('data-label');\n // Make sure the dropdown options are set\n Array.from(this.querySelectorAll(':scope > label')).forEach((label) => {\n var _a;\n label.classList.add('dropdown__option');\n (_a = label === null || label === void 0 ? void 0 : label.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n });\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n multiselect.setAttribute('data-error', 'true');\n // If in form and is required lets watch for the form being submitted\n if (form && multiselect.hasAttribute('data-is-required')) {\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n const targetElement = mutationRecord.target;\n if (targetElement.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n });\n });\n if (form.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n observer.observe(form, {\n attributes: true,\n attributeFilter: ['style', 'class'],\n });\n }\n // Set the correct attributes\n function setItem(inputToSet) {\n if (inputToSet.checked == false) {\n inputToSet.closest('label').removeAttribute('slot');\n inputToSet.closest('label').removeAttribute('style');\n inputToSet.closest('label').removeAttribute('data-order');\n }\n else {\n order++;\n inputToSet.closest('label').setAttribute('slot', 'checked');\n inputToSet.closest('label').setAttribute('style', `--order:${order};`);\n inputToSet.closest('label').setAttribute('data-order', order);\n if (inputToSet.closest('[data-value]')) {\n inputToSet.closest('[data-value]').setAttribute('data-value', inputToSet.closest('label').textContent);\n }\n }\n // check for errors\n if (multiselect.querySelector('label[slot=\"checked\"]')) {\n wrapper.classList.add('filled');\n multiselect.removeAttribute('data-error');\n search.removeAttribute('placeholder');\n }\n else {\n wrapper.classList.remove('filled');\n multiselect.setAttribute('data-error', 'true');\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n }\n }\n // Set on load\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n search.addEventListener('input', () => {\n if (multiselect.hasAttribute('data-url')) {\n if (search.value.length == 3) {\n searchAjax(multiselect, search, filterList);\n }\n }\n else {\n filterList(multiselect, search);\n }\n });\n // Add a delayed hover effect for non hover devices\n let hoverTimeout;\n multiselect.addEventListener('focus', () => {\n multiselect.classList.add('hover');\n clearTimeout(hoverTimeout);\n });\n search.addEventListener('blur', (event) => {\n setTimeout(function () {\n const activeElement = document.activeElement;\n if (activeElement.getAttribute('type') != 'checkbox') {\n if (multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`)) {\n multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`).checked = true;\n setItem(multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`));\n }\n search.value = '';\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n }\n if (multiselect.hasAttribute('data-url')) {\n Array.from(multiselect.querySelectorAll(`label:has(input[type=\"checkbox\"]:not(:checked))`)).forEach((checkbox) => {\n checkbox.remove();\n });\n }\n }, 200);\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 500);\n });\n // Set items\n multiselect.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n const checkbox = event.target.closest('input[type=\"checkbox\"]');\n if (multiselect.hasAttribute('data-single')) {\n Array.from(multiselect.querySelectorAll(`label[slot=\"checked\"] input`)).forEach((inputToCancel) => {\n inputToCancel.checked = false;\n inputToCancel.closest('label').removeAttribute('slot');\n inputToCancel.closest('label').removeAttribute('style');\n inputToCancel.closest('label').removeAttribute('data-order');\n });\n }\n setItem(checkbox);\n search.value = '';\n if (!multiselect.hasAttribute('data-single')) {\n search.focus();\n clearTimeout(hoverTimeout);\n multiselect.classList.add('hover');\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 5000);\n }\n else {\n multiselect.classList.remove('hover');\n }\n }\n });\n // Clear all\n button.addEventListener('click', function () {\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n checkbox.checked = false;\n setItem(checkbox);\n });\n search.focus();\n });\n // Add some keyboard features to keep it accessible\n addKeyboardEvents(this, search);\n multiselect.addEventListener('keydown', function (event) {\n const activeElement = document.activeElement;\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'ArrowLeft':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];\n if (prevCheckbox)\n prevCheckbox.focus();\n else\n search.focus();\n }\n else if (activeElement == multiselect) {\n const options = Array.from(multiselect.querySelectorAll('label[slot=\"checked\"]')).sort(function (a, b) {\n return +a.dataset.order - +b.dataset.order;\n });\n options.pop().focus();\n }\n break;\n case 'ArrowRight':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const nextCheckbox = Array.from(arrCheckboxes)[activeIndex + 1];\n if (nextCheckbox)\n nextCheckbox.focus();\n else\n search.focus();\n }\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n if (activeElement.checked == false)\n activeElement.checked = true;\n else\n activeElement.checked = false;\n }\n setItem(activeElement);\n search.focus();\n break;\n case 'Backspace':\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n activeElement.checked = false;\n setItem(activeElement);\n search.focus();\n }\n break;\n }\n });\n function checkLastTag() {\n if (order == 0)\n return false;\n let lastTag = multiselect.querySelector(`label[data-order=\"${order}\"]`);\n if (!lastTag) {\n lastTag = checkLastTag(order--);\n }\n return lastTag;\n }\n search.addEventListener('keydown', function (event) {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n const match = multiselect.querySelector(`input[value=\"${search.value}\"]:not(:checked)`);\n if (!match)\n search.value = '';\n search.focus();\n break;\n case 'Backspace':\n if (!search.value) {\n const lastTag = checkLastTag(order);\n if (lastTag) {\n const lastTagInput = lastTag.querySelector('input');\n lastTagInput.checked = false;\n setItem(lastTagInput);\n }\n search.focus();\n }\n break;\n }\n });\n // Fix for the inline edit multiselect\n multiselect.addEventListener('mousedown', () => {\n wrapper.setAttribute('data-mousedown', 'true');\n });\n multiselect.addEventListener('mouseup', () => {\n wrapper.removeAttribute('data-mousedown');\n });\n }\n}\nexport default iamMultiselect;\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","e","rejected","result","filterList","component","search","label","searchValue","labelText","searchAjax","callback","searchterm","ajaxURL","firstInput","inputType","inputName","searchAjaxURL","signal","Cookies","response","items","error","addKeyboardEvents","dropdown","_a","event","_b","_c","topLevelmenuItems","menuItems","activeItem","prevIndex","nextIndex","subMenuItems","iamMultiselect","template","multiselect","form","wrapper","button","order","innerLabel","observer","mutations","mutationRecord","setItem","inputToSet","checkbox","hoverTimeout","inputToCancel","activeElement","arrCheckboxes","activeIndex","prevCheckbox","a","nextCheckbox","checkLastTag","lastTag","lastTagInput"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"multiselect.component.min.js","sources":["../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../modules/dropdown.js","multiselect.component.js"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport Cookies from '../../../node_modules/js-cookie/dist/js.cookie.mjs';\nexport const filterList = (component, search) => {\n Array.from(component.querySelectorAll(`label:not([slot=\"checked\"])`)).forEach((label) => {\n const checkbox = label.querySelector('input');\n const searchValue = checkbox.value;\n const labelText = label.textContent;\n if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||\n labelText.toLowerCase().includes(search.value.toLowerCase())) {\n label.removeAttribute('slot');\n }\n else {\n label.setAttribute('slot', 'notmatched');\n }\n });\n};\nexport const searchAjax = (component, search, callback) => __awaiter(void 0, void 0, void 0, function* () {\n const searchterm = search.value;\n const ajaxURL = component.getAttribute('data-url');\n const firstInput = component.querySelector('input');\n console.log(firstInput);\n const inputType = firstInput && firstInput.hasAttribute('type') ? firstInput.getAttribute('type') : 'checkbox';\n let inputName = firstInput && firstInput.hasAttribute('name') ? firstInput.getAttribute('name') : 'tags';\n if (component.hasAttribute('data-name'))\n inputName = component.hasAttribute('data-name');\n const searchAjaxURL = `${ajaxURL}?search_query=${encodeURI(searchterm)}`;\n // Setup controller vars if not already set\n if (!window.controller)\n window.controller = [];\n // Abort if controller already present for this url\n if (window.controller[searchAjaxURL])\n window.controller[searchAjaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[searchAjaxURL] = new AbortController();\n const { signal } = controller[searchAjaxURL];\n try {\n yield fetch(searchAjaxURL, {\n signal: signal,\n method: 'get',\n credentials: 'same-origin',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n let items = '';\n for (let i = 0; i < response['data'].length; i++) {\n if (!component.querySelector(`[value=\"${response['data'][i].value}\"]`))\n items += `<label class=\"tag dropdown__option\"><input type=\"${inputType}\" name=\"${component.hasAttribute('data-name') ? component.getAttribute('data-name') : inputName}\" value=\"${response['data'][i].value}\"/>${response['data'][i].title}</label>`;\n }\n component.insertAdjacentHTML('beforeend', `${items}`);\n callback(component, search);\n return response;\n });\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const setTag = (tag) => {\n const input = tag.querySelector(':checked');\n const inputName = input === null || input === void 0 ? void 0 : input.getAttribute('name');\n tag.setAttribute('slot', 'checked');\n tag.setAttribute('data-content', tag.textContent);\n let tags = [];\n if (localStorage.getItem('tags-' + inputName) != null)\n tags = JSON.parse(localStorage.getItem('tags-' + inputName));\n if (!tags.includes(tag.textContent)) {\n tags.push(tag.textContent);\n localStorage.setItem('tags-' + inputName, JSON.stringify(tags));\n }\n let tagIndex = tags.indexOf(tag.textContent) + 1;\n if (tagIndex > 23)\n tagIndex = 1;\n tag === null || tag === void 0 ? void 0 : tag.classList.add(`wider-colour-${tagIndex + 1}`);\n};\nexport const addKeyboardEvents = (dropdown, search) => {\n search.addEventListener('keydown', (e) => {\n var _a;\n switch (e.keyCode) {\n case 40: // down\n e.stopPropagation();\n e.preventDefault();\n (_a = dropdown.querySelector('label:not([slot=\"checked\"]) input')) === null || _a === void 0 ? void 0 : _a.focus();\n break;\n }\n });\n dropdown.addEventListener('keydown', (event) => {\n var _a, _b, _c;\n const topLevelmenuItems = dropdown.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot=\"checked\"]) > input');\n const menuItems = dropdown.querySelectorAll('a, button, input, label:not([slot=\"checked\"]) > input');\n const activeElement = document.activeElement;\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary, label:not([slot=\"checked\"]) > input')) {\n const activeItem = document.activeElement;\n const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;\n const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;\n switch (event.keyCode // change to event.key to key to use the above variable\n ) {\n case 27: // Esc\n if (activeItem.closest('details')) {\n event.stopPropagation();\n event.preventDefault();\n activeItem.closest('details').removeAttribute('open');\n activeItem.closest('details').querySelector(':scope summary').focus();\n }\n else {\n event.stopPropagation();\n //menuButton.focus();\n }\n break;\n case 32: // Space\n case 13: // Enter\n break;\n case 35: // end\n event.stopPropagation();\n event.preventDefault();\n (_a = dropdown.querySelector('details[open]')) === null || _a === void 0 ? void 0 : _a.removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n (_b = dropdown.querySelector('details[open]')) === null || _b === void 0 ? void 0 : _b.removeAttribute('open');\n Array.from(menuItems)[0].focus();\n break;\n case 38: // up\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[prevIndex] != undefined)\n Array.from(topLevelmenuItems)[prevIndex].focus();\n else\n Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;\n if (Array.from(subMenuItems)[subPrevIndex] != undefined)\n Array.from(subMenuItems)[subPrevIndex].focus();\n else\n Array.from(subMenuItems)[subMenuItems.length - 1].focus();\n }\n break;\n case 40: // down\n event.stopPropagation();\n event.preventDefault();\n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[nextIndex] != undefined)\n Array.from(topLevelmenuItems)[nextIndex].focus();\n else\n Array.from(topLevelmenuItems)[0].focus();\n }\n else if (activeItem.closest('details')) {\n const subMenuItems = (_c = activeItem.closest('details')) === null || _c === void 0 ? void 0 : _c.querySelectorAll('a, button, :scope details > summary');\n subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;\n if (Array.from(subMenuItems)[subNextIndex] != undefined)\n Array.from(subMenuItems)[subNextIndex].focus();\n else\n Array.from(subMenuItems)[0].focus();\n }\n break;\n }\n }\n });\n};\n","import { searchAjax, filterList, addKeyboardEvents } from '../../modules/dropdown';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'mutliselect',\n});\nclass iamMultiselect 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/multiselect.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <label for=\"search\" class=\"mb-0\"><span class=\"inner-label label\"></span> <slot name=\"feedback\"></slot>\n <div class=\"outer\">\n <div class=\"wrapper\">\n \n <slot name=\"checked\"></slot>\n <input name=\"search\" id=\"search\" autocomplete=\"off\" required part=\"search-input\"/>\n <span class=\"admin-panel feedback\">This field is required</span>\n <div class=\"admin-panel dropdown\" part=\"dropdown\">\n <slot></slot>\n </div>\n <button id=\"clear\" class=\"btn btn-action \"><span class=\"visually-hidden\">Clear</span></button>\n </div>\n </div>\n </label>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const multiselect = this;\n const form = this.closest('form');\n const wrapper = this.shadowRoot.querySelector('.wrapper');\n const search = multiselect.shadowRoot.querySelector('#search');\n const button = multiselect.shadowRoot.querySelector('#clear');\n let order = 0;\n const innerLabel = multiselect.shadowRoot.querySelector('label .inner-label');\n const ajaxURL = this.getAttribute('data-url');\n innerLabel.innerHTML = multiselect.getAttribute('data-label');\n // Make sure the dropdown options are set\n Array.from(this.querySelectorAll(':scope > label')).forEach((label) => {\n var _a;\n label.classList.add('dropdown__option');\n (_a = label === null || label === void 0 ? void 0 : label.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n });\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n multiselect.setAttribute('data-error', 'true');\n // If in form and is required lets watch for the form being submitted\n if (form && multiselect.hasAttribute('data-is-required')) {\n const observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n const targetElement = mutationRecord.target;\n if (targetElement.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n });\n });\n if (form.classList.contains('was-validated')) {\n wrapper.classList.add('was-validated');\n }\n else {\n wrapper.classList.remove('was-validated');\n }\n observer.observe(form, {\n attributes: true,\n attributeFilter: ['style', 'class'],\n });\n }\n // Set the correct attributes\n function setItem(inputToSet) {\n if (inputToSet.checked == false) {\n inputToSet.closest('label').removeAttribute('slot');\n inputToSet.closest('label').removeAttribute('style');\n inputToSet.closest('label').removeAttribute('data-order');\n }\n else {\n order++;\n inputToSet.closest('label').setAttribute('slot', 'checked');\n inputToSet.closest('label').setAttribute('style', `--order:${order};`);\n inputToSet.closest('label').setAttribute('data-order', order);\n if (inputToSet.closest('[data-value]')) {\n inputToSet.closest('[data-value]').setAttribute('data-value', inputToSet.closest('label').textContent);\n }\n }\n // check for errors\n if (multiselect.querySelector('label[slot=\"checked\"]')) {\n wrapper.classList.add('filled');\n multiselect.removeAttribute('data-error');\n search.removeAttribute('placeholder');\n }\n else {\n wrapper.classList.remove('filled');\n multiselect.setAttribute('data-error', 'true');\n if (multiselect.hasAttribute('placeholder')) {\n search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));\n }\n }\n }\n // Set on load\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n search.addEventListener('input', () => {\n if (multiselect.hasAttribute('data-url')) {\n if (search.value.length == 3) {\n searchAjax(multiselect, search, filterList);\n }\n }\n else {\n filterList(multiselect, search);\n }\n });\n // Add a delayed hover effect for non hover devices\n let hoverTimeout;\n multiselect.addEventListener('focus', () => {\n multiselect.classList.add('hover');\n clearTimeout(hoverTimeout);\n });\n search.addEventListener('blur', (event) => {\n setTimeout(function () {\n const activeElement = document.activeElement;\n if (activeElement.getAttribute('type') != 'checkbox') {\n if (multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`)) {\n multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`).checked = true;\n setItem(multiselect.querySelector(`input[type=\"checkbox\"][value=\"${search.value}\" i]`));\n }\n search.value = '';\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n setItem(checkbox);\n });\n }\n if (multiselect.hasAttribute('data-url')) {\n Array.from(multiselect.querySelectorAll(`label:has(input[type=\"checkbox\"]:not(:checked))`)).forEach((checkbox) => {\n checkbox.remove();\n });\n }\n }, 200);\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 500);\n });\n // Set items\n multiselect.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n const checkbox = event.target.closest('input[type=\"checkbox\"]');\n if (multiselect.hasAttribute('data-single')) {\n Array.from(multiselect.querySelectorAll(`label[slot=\"checked\"] input`)).forEach((inputToCancel) => {\n inputToCancel.checked = false;\n inputToCancel.closest('label').removeAttribute('slot');\n inputToCancel.closest('label').removeAttribute('style');\n inputToCancel.closest('label').removeAttribute('data-order');\n });\n }\n setItem(checkbox);\n search.value = '';\n if (!multiselect.hasAttribute('data-single')) {\n search.focus();\n clearTimeout(hoverTimeout);\n multiselect.classList.add('hover');\n hoverTimeout = setTimeout(function () {\n multiselect.classList.remove('hover');\n }, 5000);\n }\n else {\n multiselect.classList.remove('hover');\n }\n }\n });\n // Clear all\n button.addEventListener('click', function () {\n Array.from(multiselect.querySelectorAll(`label input[type=\"checkbox\"]`)).forEach((checkbox) => {\n checkbox.checked = false;\n setItem(checkbox);\n });\n search.focus();\n });\n // Add some keyboard features to keep it accessible\n addKeyboardEvents(this, search);\n multiselect.addEventListener('keydown', function (event) {\n const activeElement = document.activeElement;\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'ArrowLeft':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];\n if (prevCheckbox)\n prevCheckbox.focus();\n else\n search.focus();\n }\n else if (activeElement == multiselect) {\n const options = Array.from(multiselect.querySelectorAll('label[slot=\"checked\"]')).sort(function (a, b) {\n return +a.dataset.order - +b.dataset.order;\n });\n options.pop().focus();\n }\n break;\n case 'ArrowRight':\n // Up pressed\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n const arrCheckboxes = multiselect.querySelectorAll(`label[slot=\"checked\"][slot=\"checked\"]`);\n const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));\n const nextCheckbox = Array.from(arrCheckboxes)[activeIndex + 1];\n if (nextCheckbox)\n nextCheckbox.focus();\n else\n search.focus();\n }\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n if (activeElement.checked == false)\n activeElement.checked = true;\n else\n activeElement.checked = false;\n }\n setItem(activeElement);\n search.focus();\n break;\n case 'Backspace':\n if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {\n activeElement.checked = false;\n setItem(activeElement);\n search.focus();\n }\n break;\n }\n });\n function checkLastTag() {\n if (order == 0)\n return false;\n let lastTag = multiselect.querySelector(`label[data-order=\"${order}\"]`);\n if (!lastTag) {\n lastTag = checkLastTag(order--);\n }\n return lastTag;\n }\n search.addEventListener('keydown', function (event) {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n const match = multiselect.querySelector(`input[value=\"${search.value}\"]:not(:checked)`);\n if (!match)\n search.value = '';\n search.focus();\n break;\n case 'Backspace':\n if (!search.value) {\n const lastTag = checkLastTag(order);\n if (lastTag) {\n const lastTagInput = lastTag.querySelector('input');\n lastTagInput.checked = false;\n setItem(lastTagInput);\n }\n search.focus();\n }\n break;\n }\n });\n // Fix for the inline edit multiselect\n multiselect.addEventListener('mousedown', () => {\n wrapper.setAttribute('data-mousedown', 'true');\n });\n multiselect.addEventListener('mouseup', () => {\n wrapper.removeAttribute('data-mousedown');\n });\n }\n}\nexport default iamMultiselect;\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","e","rejected","result","filterList","component","search","label","searchValue","labelText","searchAjax","callback","searchterm","ajaxURL","firstInput","inputType","inputName","searchAjaxURL","signal","Cookies","response","items","error","addKeyboardEvents","dropdown","_a","event","_b","_c","topLevelmenuItems","menuItems","activeItem","prevIndex","nextIndex","subMenuItems","iamMultiselect","template","multiselect","form","wrapper","button","order","innerLabel","observer","mutations","mutationRecord","setItem","inputToSet","checkbox","hoverTimeout","inputToCancel","activeElement","arrCheckboxes","activeIndex","prevCheckbox","a","nextCheckbox","checkLastTag","lastTag","lastTagInput"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -14,39 +14,39 @@ class iamNav extends HTMLElement {
|
|
|
14
14
|
const loadCSS = `@import "${assetLocation}/css/components/nav.component.css";`;
|
|
15
15
|
const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
|
|
16
16
|
const template = document.createElement('template');
|
|
17
|
-
template.innerHTML = `
|
|
18
|
-
<style class="styles">
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
${loadCSS}
|
|
22
|
-
</style>
|
|
23
|
-
<style class="doc-styles">
|
|
24
|
-
</style>
|
|
25
|
-
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
|
|
26
|
-
<div class="container">
|
|
27
|
-
<slot name="logo"></slot>
|
|
28
|
-
<div class="buttons-holder"></div>
|
|
29
|
-
<button class="btn-menu" part="btn-menu">Menu<i class="fa-regular fa-bars"></i><i class="fa-regular fa-xmark-large"></i></button>
|
|
30
|
-
|
|
31
|
-
<div class="menu__outer">
|
|
32
|
-
<div class="menu closed">
|
|
33
|
-
|
|
34
|
-
<div class="menu__primary">
|
|
35
|
-
<slot></slot>
|
|
36
|
-
<slot name="dual"></slot>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="dialog__wrapper d-none" id="search-wrapper"></div>
|
|
39
|
-
<slot name="actions"></slot>
|
|
40
|
-
<div class="menu__secondary bg-light">
|
|
41
|
-
<div class="container">
|
|
42
|
-
<slot name="secondary"></slot>
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
<slot name="menus"></slot>
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
<div class="backdrop" part="backdrop"></div>
|
|
17
|
+
template.innerHTML = `
|
|
18
|
+
<style class="styles">
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
${loadCSS}
|
|
22
|
+
</style>
|
|
23
|
+
<style class="doc-styles">
|
|
24
|
+
</style>
|
|
25
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
|
|
26
|
+
<div class="container">
|
|
27
|
+
<slot name="logo"></slot>
|
|
28
|
+
<div class="buttons-holder"></div>
|
|
29
|
+
<button class="btn-menu" part="btn-menu">Menu<i class="fa-regular fa-bars"></i><i class="fa-regular fa-xmark-large"></i></button>
|
|
30
|
+
|
|
31
|
+
<div class="menu__outer">
|
|
32
|
+
<div class="menu closed">
|
|
33
|
+
|
|
34
|
+
<div class="menu__primary">
|
|
35
|
+
<slot></slot>
|
|
36
|
+
<slot name="dual"></slot>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="dialog__wrapper d-none" id="search-wrapper"></div>
|
|
39
|
+
<slot name="actions"></slot>
|
|
40
|
+
<div class="menu__secondary bg-light">
|
|
41
|
+
<div class="container">
|
|
42
|
+
<slot name="secondary"></slot>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<slot name="menus"></slot>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="backdrop" part="backdrop"></div>
|
|
50
50
|
`;
|
|
51
51
|
shadowRoot.appendChild(template.content.cloneNode(true));
|
|
52
52
|
// insert extra CSS
|
|
@@ -258,18 +258,18 @@ class iamNav extends HTMLElement {
|
|
|
258
258
|
menu.classList.add('has-search');
|
|
259
259
|
const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');
|
|
260
260
|
searchWrapper.classList.remove('d-none');
|
|
261
|
-
searchWrapper.insertAdjacentHTML('afterbegin', `<button class="btn btn-secondary btn-compact fa-search me-0 mb-0" id="search-button" aria-controls="search-dialog">Open Search field</button>
|
|
262
|
-
<dialog id="search-dialog">
|
|
263
|
-
<div class="container">
|
|
264
|
-
<div class="row">
|
|
265
|
-
<div class="col mb-0 ms-auto col-md-7">
|
|
266
|
-
<slot name="search"></slot>
|
|
267
|
-
</div>
|
|
268
|
-
<div class="col d-none d-md-block mw-fit-content ms-3">
|
|
269
|
-
<button class="btn btn-compact btn-secondary fa-xmark-large m-0 mb-0" type="button" id="search-close">Close search field</button>
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
</div>
|
|
261
|
+
searchWrapper.insertAdjacentHTML('afterbegin', `<button class="btn btn-secondary btn-compact fa-search me-0 mb-0" id="search-button" aria-controls="search-dialog">Open Search field</button>
|
|
262
|
+
<dialog id="search-dialog">
|
|
263
|
+
<div class="container">
|
|
264
|
+
<div class="row">
|
|
265
|
+
<div class="col mb-0 ms-auto col-md-7">
|
|
266
|
+
<slot name="search"></slot>
|
|
267
|
+
</div>
|
|
268
|
+
<div class="col d-none d-md-block mw-fit-content ms-3">
|
|
269
|
+
<button class="btn btn-compact btn-secondary fa-xmark-large m-0 mb-0" type="button" id="search-close">Close search field</button>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
273
|
</dialog>`);
|
|
274
274
|
const searchButton = this.shadowRoot.querySelector('#search-button');
|
|
275
275
|
const searchClose = this.shadowRoot.querySelector('#search-close');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"nav"});class g extends HTMLElement{constructor(){super();const d=this.attachShadow({mode:"open"});document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
|
|
5
5
|
<style class="styles">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style class=\"styles\">\r\n\r\n \r\n ${loadCSS}\r\n </style>\r\n <style class=\"doc-styles\">\r\n </style>\r\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\r\n <div class=\"container\">\r\n <slot name=\"logo\"></slot>\r\n <div class=\"buttons-holder\"></div>\r\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\r\n\r\n <div class=\"menu__outer\">\r\n <div class=\"menu closed\">\r\n \r\n <div class=\"menu__primary\">\r\n <slot></slot>\r\n <slot name=\"dual\"></slot>\r\n </div>\r\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\r\n <slot name=\"actions\"></slot>\r\n <div class=\"menu__secondary bg-light\">\r\n <div class=\"container\">\r\n <slot name=\"secondary\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n <slot name=\"menus\"></slot>\r\n </div> \r\n </div>\r\n <div class=\"backdrop\" part=\"backdrop\"></div>\r\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('a[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Create a scroll width variable to help with the sizing of the menu with in the CSS\n document.documentElement.style.setProperty('--scrollbar-width', window.innerWidth - document.documentElement.offsetWidth + 'px');\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\r\n <dialog id=\"search-dialog\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col mb-0 ms-auto col-md-7\">\r\n <slot name=\"search\"></slot>\r\n </div>\r\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\r\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\r\n </div>\r\n </div>\r\n </div>\r\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n \n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n \n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div> \n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('a[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Create a scroll width variable to help with the sizing of the menu with in the CSS\n document.documentElement.style.setProperty('--scrollbar-width', window.innerWidth - document.documentElement.offsetWidth + 'px');\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ class iamNotification extends HTMLElement {
|
|
|
27
27
|
};
|
|
28
28
|
this.addDismissBtn = (component) => {
|
|
29
29
|
var _a;
|
|
30
|
-
(_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part="dismiss-btn">Dismiss</button>`;
|
|
30
|
+
(_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part="dismiss-btn" class="btn btn-secondary btn-compact fa-xmark">Dismiss</button>`;
|
|
31
31
|
component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {
|
|
32
32
|
closeNotification(component);
|
|
33
33
|
const customEvent = new CustomEvent('dismiss', {
|
|
@@ -45,18 +45,19 @@ class iamNotification extends HTMLElement {
|
|
|
45
45
|
const loadCSS = `@import "${assetLocation}/css/components/notification.css";`;
|
|
46
46
|
const loadExtraCSS = `@import "${assetLocation}/css/components/notification.global.css";`;
|
|
47
47
|
const template = document.createElement('template');
|
|
48
|
-
template.innerHTML = `
|
|
49
|
-
<style>
|
|
50
|
-
${loadCSS}
|
|
51
|
-
${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}
|
|
52
|
-
</style>
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
<div class="
|
|
57
|
-
<div class="
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
template.innerHTML = `
|
|
49
|
+
<style>
|
|
50
|
+
${loadCSS}
|
|
51
|
+
${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}
|
|
52
|
+
</style>
|
|
53
|
+
|
|
54
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
|
|
55
|
+
<div class="notification">
|
|
56
|
+
<div class="notification__icon"><slot name="icon"></slot></div>
|
|
57
|
+
<div class="notification__inner"><div class="notification__text"><slot></slot></div><div class="notification__btns"><slot name="btns"></slot></div></div>
|
|
58
|
+
<div class="notification__dismiss"></div>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
60
61
|
`;
|
|
61
62
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
62
63
|
// insert extra CSS
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
|
-
*/function l(e){if(e.hasAttribute("data-type")&&e.getAttribute("data-type")=="toast"){let i=document.querySelector(".notification__holder");i||(i=document.createElement("div"),i.classList.add("notification__holder"),i.classList.add("container"),document.querySelector("body").appendChild(i)),e.closest(".notification__holder")||i.appendChild(e)}if(e.setAttribute("role","alert"),e.addEventListener("click",function(i){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(i.preventDefault(),
|
|
4
|
+
*/function l(e){if(e.hasAttribute("data-type")&&e.getAttribute("data-type")=="toast"){let i=document.querySelector(".notification__holder");i||(i=document.createElement("div"),i.classList.add("notification__holder"),i.classList.add("container"),document.querySelector("body").appendChild(i)),e.closest(".notification__holder")||i.appendChild(e)}if(e.setAttribute("role","alert"),e.addEventListener("click",function(i){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(i.preventDefault(),c(e))},!1),e.hasAttribute("data-timeout")){const i=e.getAttribute("data-timeout"),t=new m(function(){c(e)},i);e.addEventListener("mouseenter",()=>{t.pause()}),e.addEventListener("mouseleave",()=>{t.resume()})}}function m(e,i){let t,o,n=i;this.pause=function(){window.clearTimeout(t),n-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(e,n)},this.resume()}const c=function(e){e.classList.add("d-none")},f=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})},b=(e,i,t)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),t.forEach(o=>{e.addEventListener(o,function(n){const a={event:o,element:i,target:n.target};Object.keys(n.detail).forEach(r=>{const s=n.detail[r];a[r]=s}),window.dataLayer.push(a)})}),!0);f("iam-notification");class h extends HTMLElement{constructor(){super(),this.addColour=(t,o)=>{t.hasAttribute("data-type")?t.classList.add(`bg-${o}`):t.classList.add(`colour-${o}`)},this.addIcon=(t,o)=>{switch(o){case"danger":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}},this.addDismissBtn=t=>{var o;(o=t.shadowRoot.querySelector(".notification__dismiss"))===null||o===void 0||(o.innerHTML='<button data-dismiss-button part="dismiss-btn" class="btn btn-secondary btn-compact fa-xmark">Dismiss</button>'),t.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){c(t);const n=new CustomEvent("dismiss",{detail:{class:t.classList}});t.dispatchEvent(n)},!1)},this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
|
|
5
5
|
<style>
|
|
6
|
-
:host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:.9375rem;border:2px solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:2px solid rgba(0,0,0,0)}:host([class*=colour-]){--bg-colour: color-mix(in oklab, var(--colour), #ffffff 80%) !important;background:var(--bg-colour);--colour-heading: var(--colour-primary-theme);--colour-body: var(--colour-primary-theme)}:host([class*=colour-])>*{color-scheme:light}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{
|
|
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-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}}}}:host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:.9375rem;border:2px solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:2px solid rgba(0,0,0,0)}:host([class*=colour-]){--bg-colour: color-mix(in oklab, var(--colour), #ffffff 80%) !important;background:var(--bg-colour);--colour-heading: var(--colour-primary-theme);--colour-body: var(--colour-primary-theme)}:host([class*=colour-])>*{color-scheme:light}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{display:inline-block;position:relative;margin:0;color:currentColor}.notification .notification__dismiss button:hover{color:var(--colour-primary-theme)}.notification .notification__dismiss button:before{font-weight:lighter;font-size:1.5rem}@container (width > 23.4375em){.notification .notification__dismiss{padding-left:2rem;display:flex;align-items:center}}:host(.notification--no-icon) .notification__icon{display:none}:host(.notification--no-bg){box-shadow:none;background:none !important;padding:0;border:0 !important}/*# sourceMappingURL=assets/css/components/notification.css.map */
|
|
7
7
|
|
|
8
8
|
${this.hasAttribute("data-css")?`${this.getAttribute("data-css")}`:""}
|
|
9
9
|
</style>
|
|
10
10
|
|
|
11
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
|
|
11
12
|
<div class="notification">
|
|
12
13
|
<div class="notification__icon"><slot name="icon"></slot></div>
|
|
13
14
|
<div class="notification__inner"><div class="notification__text"><slot></slot></div><div class="notification__btns"><slot name="btns"></slot></div></div>
|
|
@@ -15,5 +16,5 @@
|
|
|
15
16
|
</div>
|
|
16
17
|
|
|
17
18
|
`,this.shadowRoot.appendChild(i.content.cloneNode(!0)),document.getElementById("notificationHolder")||document.head.insertAdjacentHTML("beforeend",`<style id="notificationHolder">.container.notification__holder{position:fixed;top:var(--nav-height);left:50%;transform:translate(-50%, 0);bottom:0;z-index:999999;pointer-events:none;padding-top:1rem;padding-bottom:1rem;display:flex;margin:0;width:100%;flex-wrap:wrap;align-content:flex-start;flex-direction:column;align-content:flex-end;align-items:flex-end}.container.notification__holder :is(.iam-notification,iam-notification){pointer-events:all;margin:.5rem 0 .5rem 0}.container.notification__holder.bottom{flex-direction:column-reverse}.container.notification__holder.left{align-content:flex-start;align-items:flex-start}.container.notification__holder.middle{align-content:space-around;align-items:center}/*# sourceMappingURL=assets/css/components/notification.global.css.map */
|
|
18
|
-
</style>`)}connectedCallback(){var i,t,o,
|
|
19
|
+
</style>`)}connectedCallback(){var i,t,o,n;const a=this.hasAttribute("data-type")?"white":"info",r=this.hasAttribute("data-status")?this.getAttribute("data-status"):a;this.addColour(this,r),this.querySelector("i")||this.addIcon(this,r);const s=this.querySelectorAll("a,button");Array.from(s).forEach(d=>{d.setAttribute("slot","btns"),d.classList.add("link")}),(s.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable"),s.length?(n=(o=this.shadowRoot)===null||o===void 0?void 0:o.querySelector(".notification__btns"))===null||n===void 0||n.classList.remove("empty"):(t=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".notification__btns"))===null||t===void 0||t.classList.add("empty"),this.hasAttribute("data-dismiss")&&this.addDismissBtn(this),l(this),b(this,"iam-notification",["dismiss"])}static get observedAttributes(){return["data-status","data-dismiss"]}attributeChangedCallback(i,t,o){var n,a;switch(i){case"data-status":{t!=o&&(this.classList.remove("bg-danger"),this.classList.remove("bg-warning"),this.classList.remove("bg-success"),this.classList.remove("bg-white"),(n=this.querySelector("i"))===null||n===void 0||n.remove(),this.addColour(this,o),this.addIcon(this,o));break}case"data-dismiss":{t!=o&&(this.hasAttribute("data-dismiss")?this.addDismissBtn(this):(a=this.shadowRoot.querySelector(".notification__dismiss"))===null||a===void 0||(a.innerHTML=""));break}}}}export{h as default};
|
|
19
20
|
//# sourceMappingURL=notification.component.min.js.map
|