@iamproperty/components 7.1.0--beta7 → 7.2.1--beta1
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/assets/css/components/actionbar.component.css +1 -0
- package/assets/css/components/actionbar.component.css.map +1 -0
- package/assets/css/components/actionbar.global.css +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/address-lookup.css +1 -1
- package/assets/css/components/address-lookup.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/bento-grid.component.css +1 -0
- package/assets/css/components/bento-grid.component.css.map +1 -0
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/carousel.config.css +1 -1
- package/assets/css/components/carousel.config.css.map +1 -1
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/charts.css +1 -1
- package/assets/css/components/charts.css.map +1 -1
- package/assets/css/components/charts.module.css +1 -1
- package/assets/css/components/charts.module.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -0
- package/assets/css/components/doughnutchart.component.css.map +1 -0
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/inline-edit.preload.css +1 -1
- package/assets/css/components/inline-edit.preload.css.map +1 -1
- package/assets/css/components/marketing.css.map +1 -1
- package/assets/css/components/menu.component.css +1 -0
- package/assets/css/components/menu.component.css.map +1 -0
- package/assets/css/components/menu.css +1 -0
- package/assets/css/components/menu.css.map +1 -0
- package/assets/css/components/multi-step.component.css.map +1 -1
- package/assets/css/components/multiselect.preload.css +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -0
- package/assets/css/components/nav.component.css.map +1 -0
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.old.css +1 -1
- package/assets/css/components/nav.old.css.map +1 -1
- package/assets/css/components/nav.preload.css +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/property-searchbar.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/snapshot.css.map +1 -1
- package/assets/css/components/stepper.css.map +1 -1
- package/assets/css/components/table-basic.component.css +1 -0
- package/assets/css/components/table-basic.component.css.map +1 -0
- package/assets/css/components/table-basic.global.css +1 -0
- package/assets/css/components/table-basic.global.css.map +1 -0
- package/assets/css/components/table.component.css +1 -0
- package/assets/css/components/table.component.css.map +1 -0
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -0
- package/assets/css/components/tabs.component.css.map +1 -0
- package/assets/css/components/tabs.config.css +1 -0
- package/assets/css/components/tabs.config.css.map +1 -0
- package/assets/css/components/tabs.css +1 -1
- package/assets/css/components/tabs.css.map +1 -1
- package/assets/css/components/testimonial.css.map +1 -1
- package/assets/css/components/timeline.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/mobile-core.min.css +1 -0
- package/assets/css/mobile-core.min.css.map +1 -0
- package/assets/css/mobile.min.css +1 -0
- package/assets/css/mobile.min.css.map +1 -0
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/_global.js +0 -1
- 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 +86 -8
- package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.js +2 -3
- package/assets/js/components/barchart/barchart.component.min.js +8 -4
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
- package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
- package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
- package/assets/js/components/card/card.component.js +10 -13
- package/assets/js/components/card/card.component.min.js +7 -7
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +4 -5
- package/assets/js/components/carousel/carousel.component.min.js +4 -4
- package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
- package/assets/js/components/chart/chart.component.js +1 -5
- package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
- package/assets/js/components/fileupload/fileupload.component.js +2 -3
- package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
- package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
- package/assets/js/components/filter-card/filter-card.component.js +3 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
- package/assets/js/components/filterlist/filterlist.component.js +0 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
- package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
- package/assets/js/components/header/header.component.js +0 -1
- 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 +7 -8
- package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/marketing/marketing.component.js +0 -1
- 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 +200 -0
- package/assets/js/components/menu/menu.component.min.js +77 -0
- package/assets/js/components/menu/menu.component.min.js.map +1 -0
- package/assets/js/components/multi-step/multi-step.component.js +10 -10
- package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
- package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
- package/assets/js/components/multiselect/multiselect.component.js +10 -10
- package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +7 -7
- package/assets/js/components/nav/nav.component.min.js +7 -7
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +3 -3
- package/assets/js/components/notification/notification.component.min.js +4 -4
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.js +14 -8
- package/assets/js/components/pagination/pagination.component.min.js +5 -5
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.js +6 -8
- package/assets/js/components/record-card/record-card.component.min.js +4 -4
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +9 -6
- package/assets/js/components/search/search.component.min.js +8 -5
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.js +8 -8
- package/assets/js/components/slider/slider.component.min.js +5 -5
- package/assets/js/components/slider/slider.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.js +36 -200
- package/assets/js/components/table/table.component.min.js +13 -23
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.js +46 -0
- package/assets/js/components/table-ajax/table-ajax.component.min.js +22 -0
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -0
- package/assets/js/components/table-basic/table-basic.component.js +46 -0
- package/assets/js/components/table-basic/table-basic.component.min.js +22 -0
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.js +77 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +22 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -0
- package/assets/js/components/table-submit/table-submit.component.js +55 -0
- package/assets/js/components/table-submit/table-submit.component.min.js +22 -0
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -0
- package/assets/js/components/tabs/tabs.component.js +3 -2
- package/assets/js/components/tabs/tabs.component.min.js +6 -4
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.js +4 -3
- package/assets/js/components/video-card/video-card.component.min.js +3 -3
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/modules/applied-filters.js +8 -9
- package/assets/js/modules/carousel.js +9 -10
- package/assets/js/modules/chart.js +5 -3
- package/assets/js/modules/chart.module.js +108 -1
- package/assets/js/modules/dialogs.js +6 -7
- package/assets/js/modules/drawer.js +1 -2
- package/assets/js/modules/dynamicEvents.js +7 -8
- package/assets/js/modules/fileupload.js +7 -7
- package/assets/js/modules/filterlist.js +3 -4
- package/assets/js/modules/form.js +12 -13
- package/assets/js/modules/helpers.js +7 -5
- package/assets/js/modules/inputs.js +6 -9
- package/assets/js/modules/nav.js +3 -4
- package/assets/js/modules/notification.js +2 -3
- package/assets/js/modules/orderablelist.js +0 -1
- package/assets/js/modules/table.js +604 -317
- package/assets/js/modules/tabs.js +46 -19
- package/assets/js/scripts.bundle.js +3 -3
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/scripts.js +71 -6
- package/assets/js/tests/card.spec.js +14 -0
- package/assets/js/tests/carousel.spec.js +60 -0
- package/assets/js/tests/chart.spec.js +7 -5
- package/assets/js/tests/fileupload.spec.js +22 -0
- package/assets/js/tests/multistep.spec.js +68 -0
- package/assets/js/tests/table.spec.js +0 -31
- package/assets/sass/_bs_grid.scss +4 -1
- package/assets/sass/_components.scss +326 -100
- package/assets/sass/_corefiles.scss +42 -18
- package/assets/sass/_elements.scss +98 -18
- package/assets/sass/_example.scss +61 -0
- package/assets/sass/_func.scss +5 -13
- package/assets/sass/_functions/bs_utilities.scss +43 -39
- package/assets/sass/_functions/functions.scss +66 -52
- package/assets/sass/_functions/mixins.scss +84 -100
- package/assets/sass/_functions/utility-mixins.scss +56 -44
- package/assets/sass/_functions/variables.scss +90 -1659
- package/assets/sass/_functions/variables_old.scss +1701 -0
- package/assets/sass/_grid.scss +19 -5
- package/assets/sass/_tests/func.spec.scss +1 -37
- package/assets/sass/_tests/mixins.spec.scss +1 -77
- package/assets/sass/_tests/typography.spec.scss +1 -1
- package/assets/sass/_utilities.scss +15 -5
- package/assets/sass/_utility-mixins.scss +6 -1
- package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +83 -16
- package/assets/sass/components/actionbar.global.scss +12 -68
- package/assets/sass/components/address-lookup.scss +6 -0
- package/assets/sass/components/barchart.component.scss +7 -20
- package/assets/sass/components/bento-grid.component.scss +91 -0
- package/assets/sass/components/carousel.config.scss +64 -58
- package/assets/sass/components/charts.config.scss +73 -67
- package/assets/sass/components/charts.module.scss +128 -97
- package/assets/sass/components/charts.scss +43 -42
- package/assets/sass/components/collapsible-side.scss +29 -27
- package/assets/sass/components/doughnutchart.component.scss +205 -0
- package/assets/sass/components/fileupload.scss +4 -3
- package/assets/sass/components/header.scss +5 -5
- package/assets/sass/components/inline-edit.preload.scss +108 -102
- package/assets/sass/components/menu.component.scss +101 -0
- package/assets/sass/components/menu.scss +21 -0
- package/assets/sass/components/multi-step.component.scss +5 -3
- package/assets/sass/components/multiselect.preload.scss +36 -30
- package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
- package/assets/sass/components/nav.docs.scss +1 -1
- package/assets/sass/components/nav.global.scss +13 -11
- package/assets/sass/components/nav.old.scss +21 -24
- package/assets/sass/components/nav.preload.scss +40 -34
- package/assets/sass/components/notification.scss +9 -5
- package/assets/sass/components/pagination.scss +7 -0
- package/assets/sass/components/property-searchbar.scss +7 -7
- package/assets/sass/components/slider.scss +2 -0
- package/assets/sass/components/snapshot.scss +2 -2
- package/assets/sass/components/stepper.scss +7 -7
- package/assets/sass/components/{table.scss → table-basic.component.scss} +25 -68
- package/assets/sass/components/table-basic.global.scss +355 -0
- package/assets/sass/components/table.component.scss +40 -0
- package/assets/sass/components/table.global.scss +215 -418
- package/assets/sass/components/tabs.component.scss +5 -0
- package/assets/sass/components/tabs.config.scss +27 -0
- package/assets/sass/components/tabs.scss +40 -4
- package/assets/sass/components/testimonial.scss +7 -7
- package/assets/sass/components/timeline.scss +1 -1
- package/assets/sass/core.scss +13 -4
- package/assets/sass/elements/admin-panel.scss +199 -185
- package/assets/sass/elements/badge-tag.scss +87 -81
- package/assets/sass/elements/brand.scss +67 -61
- package/assets/sass/elements/buttons--action.scss +55 -0
- package/assets/sass/elements/buttons--compact.scss +135 -0
- package/assets/sass/elements/buttons--global.scss +323 -0
- package/assets/sass/elements/buttons--secondary.scss +24 -0
- package/assets/sass/elements/buttons--tertiary.scss +57 -0
- package/assets/sass/elements/buttons.scss +29 -503
- package/assets/sass/elements/container.scss +157 -151
- package/assets/sass/elements/details.scss +147 -138
- package/assets/sass/elements/dialog.scss +36 -30
- package/assets/sass/elements/forms.scss +1061 -1047
- package/assets/sass/elements/icons.scss +23 -17
- package/assets/sass/elements/links.scss +131 -116
- package/assets/sass/elements/lists.scss +270 -264
- package/assets/sass/elements/media.scss +19 -13
- package/assets/sass/elements/modal.scss +336 -330
- package/assets/sass/elements/popover.scss +163 -152
- package/assets/sass/elements/progress.scss +173 -162
- package/assets/sass/elements/table.element.scss +116 -108
- package/assets/sass/elements/tooltips.scss +87 -80
- package/assets/sass/elements/type.scss +172 -160
- package/assets/sass/email.scss +0 -1
- package/assets/sass/error.scss +15 -13
- package/assets/sass/foundations/reboot.scss +176 -170
- package/assets/sass/foundations/root.scss +136 -125
- package/assets/sass/helpers/max-height.scss +2 -2
- package/assets/sass/main.scss +14 -6
- package/assets/sass/mobile-core.scss +14 -0
- package/assets/sass/mobile.scss +16 -0
- package/assets/sass/templates/auth.scss +88 -83
- package/assets/sass/templates/form.scss +68 -59
- package/assets/ts/components/_global.ts +2 -3
- package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
- package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
- package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
- package/assets/ts/components/barchart/barchart.component.ts +3 -5
- package/assets/ts/components/bento-grid/README.md +31 -0
- package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
- package/assets/ts/components/card/card.component.ts +13 -16
- package/assets/ts/components/carousel/carousel.component.ts +5 -7
- package/assets/ts/components/chart/chart.component.ts +4 -9
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
- package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
- package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
- package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
- package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
- package/assets/ts/components/header/header.component.ts +1 -3
- package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
- package/assets/ts/components/marketing/marketing.component.ts +1 -3
- package/assets/ts/components/menu/menu.component.ts +222 -0
- package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
- package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
- package/assets/ts/components/nav/nav.component.ts +8 -9
- package/assets/ts/components/notification/notification.component.ts +3 -3
- package/assets/ts/components/pagination/pagination.component.ts +24 -12
- package/assets/ts/components/record-card/record-card.component.ts +9 -11
- package/assets/ts/components/search/search.component.ts +12 -9
- package/assets/ts/components/slider/slider.component.ts +9 -10
- package/assets/ts/components/table/table.component.ts +50 -247
- package/assets/ts/components/table-ajax/table-ajax.component.ts +64 -0
- package/assets/ts/components/table-basic/README.md +40 -0
- package/assets/ts/components/table-basic/table-basic.component.ts +56 -0
- package/assets/ts/components/table-no-submit/table-no-submit.component.ts +134 -0
- package/assets/ts/components/table-submit/table-submit.component.ts +64 -0
- package/assets/ts/components/tabs/tabs.component.ts +4 -3
- package/assets/ts/components/video-card/video-card.component.ts +13 -12
- package/assets/ts/modules/applied-filters.ts +10 -11
- package/assets/ts/modules/card.module.ts +1 -1
- package/assets/ts/modules/carousel.ts +13 -15
- package/assets/ts/modules/chart.module.ts +152 -19
- package/assets/ts/modules/chart.ts +26 -24
- package/assets/ts/modules/dialogs.ts +10 -13
- package/assets/ts/modules/drawer.ts +1 -2
- package/assets/ts/modules/dynamicEvents.ts +12 -14
- package/assets/ts/modules/fileupload.ts +10 -10
- package/assets/ts/modules/filterlist.ts +6 -7
- package/assets/ts/modules/form.ts +16 -17
- package/assets/ts/modules/helpers.ts +24 -21
- package/assets/ts/modules/inputs.ts +15 -18
- package/assets/ts/modules/nav.ts +4 -5
- package/assets/ts/modules/notification.ts +7 -8
- package/assets/ts/modules/orderablelist.ts +3 -4
- package/assets/ts/modules/pagination.ts +1 -1
- package/assets/ts/modules/table.ts +726 -356
- package/assets/ts/modules/tabs.ts +59 -20
- package/assets/ts/scripts.ts +72 -6
- package/assets/ts/tests/card.spec.ts +19 -0
- package/assets/ts/tests/carousel.spec.ts +66 -0
- package/assets/ts/tests/chart.spec.ts +9 -6
- package/assets/ts/tests/fileupload.spec.ts +30 -0
- package/assets/ts/tests/multistep.spec.ts +78 -0
- package/assets/ts/tests/table.spec.ts +0 -38
- package/dist/components.es.js +1260 -1063
- package/dist/components.umd.js +468 -198
- package/package.json +44 -49
- package/src/components/BentoGrid/BentoGrid.vue +20 -0
- package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
- package/src/components/FileUpload/FileUpload.vue +4 -1
- package/src/components/Menu/Menu.vue +22 -0
- package/src/components/Table/TableAjax.vue +34 -0
- package/src/components/Table/TableBasic.vue +34 -0
- package/src/components/Table/TableNoSubmit.vue +34 -0
- package/src/components/Table/TableSubmit.vue +34 -0
- package/src/components/Tabs/Tabs.vue +0 -4
- package/src/index.js +25 -19
- package/assets/css/components/actionbar.css +0 -1
- package/assets/css/components/actionbar.css.map +0 -1
- package/assets/css/components/nav.css +0 -1
- package/assets/css/components/nav.css.map +0 -1
- package/assets/css/components/table.css +0 -1
- package/assets/css/components/table.css.map +0 -1
- package/assets/js/components.bundle.js +0 -5
- package/assets/js/components.bundle.js.map +0 -1
- package/assets/js/components.js +0 -57
- package/assets/js/modules/file-upload.js +0 -32
- package/assets/ts/components.ts +0 -62
- package/assets/ts/modules/file-upload.ts +0 -52
- package/dist/style.css +0 -1
- package/src/components/Table/Table.spec.js +0 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","video-card.component.js"],"sourcesContent":["// @ts-nocheck\nexport const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\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};\n// @ts-nocheck\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n const loaded = yield this.loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.createYoutTubeVideo(embed);\n dialog.showModal();\n });\n dialog.addEventListener('close', (event) => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', (event) => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n loadYouTubeScripts() {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n }\n createYoutTubeVideo(target) {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n const link_id = target.getAttribute('id');\n const video_id = this.getAttribute('data-youtube');\n console.log(window.player);\n if (typeof window.player[link_id] != 'undefined' && typeof window.player[link_id].pauseVideo == 'function') {\n window.player[link_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[link_id] = new YT.Player(link_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(link_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamVideoCard","template","link_id","dialog","embed","customEvent","videoId","image","tag","firstScriptTag","target","video_id","onPlayerReady","onPlayerStateChange","done","attrName","oldVal","newVal","cardHeadImg"],"mappings":";;;IACO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,EACaC,EAAiB,CAACC,EAAWF,EAAeG,KAErD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,qBACP,QAASH,CACjB,CAAK,EACDG,EAAY,QAASC,GAAc,CAC/BF,EAAU,iBAAiBE,EAAW,SAAUC,EAAO,CACnD,MAAMC,EAAe,CACjB,MAAOF,EACP,QAASJ,EACT,OAAQK,EAAM,MAC9B,EACY,OAAO,KAAKA,EAAM,MAAM,EAAE,QAASE,GAAa,CAC5C,MAAMC,EAAcH,EAAM,OAAOE,CAAQ,EACzCD,EAAaC,CAAQ,EAAIC,CACzC,CAAa,EACD,OAAO,UAAU,KAAKF,CAAY,CAC9C,CAAS,CACT,CAAK,EACM,IC9BEG,EAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAeXC,EAAaC,GAAkB,CACxCA,EAAc,UAAU,IAAI,MAAM,EAClC,MAAMC,EAAWD,EAAc,WAAW,cAAc,aAAa,EAC/DE,EAAWF,EAAc,WAAW,cAAc,aAAa,EACjEA,EAAc,aAAa,YAAY,IACvCC,EAAS,WAAa,aAAaD,EAAc,aAAa,YAAY,4CAG1EA,EAAc,aAAa,YAAY,EACvCE,EAAS,mBAAmB,YAAa,4BAA4BF,EAAc,aAAa,YAAY,SAAS,EAEhHA,EAAc,cAAc,qBAAqB,GACtDE,EAAS,mBAAmB,YAAa,gEAAgE,EAExGF,EAAc,cAAc,iBAAiB,EAI9CA,EAAc,WAAW,cAAc,eAAe,EAAE,UAAU,OAAO,OAAO,EAHhFA,EAAc,WAAW,cAAc,eAAe,EAAE,UAAU,IAAI,OAAO,CAKrF,ECnCA,IAAIG,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMC,EAAO,CAAE,OAAOA,aAAiBH,EAAIG,EAAQ,IAAIH,EAAE,SAAUI,EAAS,CAAEA,EAAQD,CAAK,CAAE,CAAE,CAAG,CAC3G,OAAO,IAAKH,IAAMA,EAAI,UAAU,SAAUI,EAASC,EAAQ,CACvD,SAASC,EAAUH,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,KAAKE,CAAK,CAAC,CAAE,OAAUK,EAAP,CAAYH,EAAOG,CAAC,EAAK,CAC1F,SAASC,EAASN,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,MAASE,CAAK,CAAC,CAAI,OAAQK,EAAP,CAAYH,EAAOG,CAAC,EAAK,CAC7F,SAASD,EAAKG,EAAQ,CAAEA,EAAO,KAAON,EAAQM,EAAO,KAAK,EAAIR,EAAMQ,EAAO,KAAK,EAAE,KAAKJ,EAAWG,CAAQ,CAAG,CAC7GF,GAAMN,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAE,CAAA,GAAG,KAAI,CAAE,CAC5E,CAAK,CACL,EAIAjB,EAAyB,gBAAgB,EACzC,MAAM6B,UAAqB,WAAY,CACnC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,MAEvB,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAItEpB;AAAA;AAAA;AAAA;AAAA,MAKE,KAAK,WAAW,YAAYoB,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,OAAOf,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMH,EAAgB,KAChBC,EAAWD,EAAc,WAAW,cAAc,aAAa,EAE/DmB,EADa,OAAO,aAAa,GAAK,KAAK,MAAM,KAAK,SAAW,EAAE,CAAC,EAC7C,KAAK,IAAG,EACrC,IAAIC,EACAC,EACJtB,EAAUC,CAAa,EAEnBA,EAAc,cAAc,gBAAgB,GAC5CA,EAAc,aAAa,eAAgBA,EAAc,cAAc,gBAAgB,EAAE,aAAa,cAAc,CAAC,EACrHA,EAAc,cAAc,cAAc,GAC1CA,EAAc,aAAa,aAAcA,EAAc,cAAc,cAAc,EAAE,aAAa,YAAY,CAAC,GAE/GA,EAAc,aAAa,cAAc,GAAKA,EAAc,aAAa,YAAY,KACrFC,EAAS,aAAa,WAAY,GAAG,EAEhC,SAAS,eAAe,GAAGkB,UAAgB,GAC5C,SAAS,KAAK,mBAAmB,YAAa,eAAeA,oCAA0CA,oBAA0B,EAErIC,EAAS,SAAS,eAAe,GAAGD,UAAgB,EACpDE,EAAQ,SAAS,eAAeF,CAAO,GAGvCnB,EAAc,aAAa,cAAc,GAEpC,SAAS,KAAK,UAAU,SAAS,eAAe,IAClC,MAAM,KAAK,mBAAoB,GAElDC,EAAS,iBAAiB,QAAS,UAAY,CAC3C,MAAMqB,EAAc,IAAI,YAAY,aAAc,CAC9C,OAAQ,CAAE,aAAc,WAAY,GAAItB,EAAc,aAAa,cAAc,CAAG,CAC5G,CAAqB,EACDA,EAAc,cAAcsB,CAAW,EACvCtB,EAAc,oBAAoBqB,CAAK,EACvCD,EAAO,UAAS,CACpC,CAAiB,EACDA,EAAO,iBAAiB,QAAU1B,GAAU,CACpC,OAAO,OAAO2B,EAAM,aAAa,IAAI,CAAC,GACtC,OAAO,OAAO,OAAOA,EAAM,aAAa,IAAI,CAAC,EAAE,YAAc,YAC7D,OAAO,OAAOA,EAAM,aAAa,IAAI,CAAC,EAAE,aAE5C,MAAMC,EAAc,IAAI,YAAY,cAAe,CAC/C,OAAQ,CAAE,aAAc,WAAY,GAAItB,EAAc,aAAa,cAAc,CAAG,CAC5G,CAAqB,EACDA,EAAc,cAAcsB,CAAW,CAC3D,CAAiB,GAEItB,EAAc,aAAa,YAAY,IAE5CC,EAAS,iBAAiB,QAAS,UAAY,CAC3C,MAAMsB,EAAUvB,EAAc,aAAa,YAAY,EACjDsB,EAAc,IAAI,YAAY,aAAc,CAC9C,OAAQ,CAAE,aAAc,QAAS,GAAIC,CAAS,CACtE,CAAqB,EACDvB,EAAc,cAAcsB,CAAW,EAClCD,EAAM,cAAc,QAAQ,IAC7BA,EAAM,UAAY,+CAA+CE,iKACrEH,EAAO,UAAS,CACpC,CAAiB,EACDA,EAAO,iBAAiB,QAAU1B,GAAU,CACxC2B,EAAM,UAAY,GAClB,MAAMC,EAAc,IAAI,YAAY,cAAe,CAC/C,OAAQ,CAAE,aAAc,QAAS,GAAItB,EAAc,aAAa,YAAY,CAAG,CACvG,CAAqB,EACDA,EAAc,cAAcsB,CAAW,CAC3D,CAAiB,GAELhC,EAAeU,EAAe,iBAAkB,CAAC,aAAc,aAAa,CAAC,CACzF,CAAS,CACL,CACA,oBAAqB,CACjB,OAAO,IAAI,QAAQ,CAACU,EAASC,IAAW,CACpC,MAAMa,EAAQ,IAAI,MAClBA,EAAM,OAAS,UAAY,CAEvB,MAAMC,EAAM,SAAS,cAAc,QAAQ,EAC3CA,EAAI,IAAM,qCACV,MAAMC,EAAiB,SAAS,qBAAqB,QAAQ,EAAE,CAAC,EAChEA,EAAe,WAAW,aAAaD,EAAKC,CAAc,EAC1D,SAAS,KAAK,UAAU,IAAI,eAAe,EAC3ChB,EAAQ,EAAI,CAC5B,EACYc,EAAM,QAAU,UAAY,CACxBb,EAAO,EAAK,CAC5B,EACYa,EAAM,IAAM,iCACxB,CAAS,CACL,CACA,oBAAoBG,EAAQ,CACpB,OAAO,OAAO,OAAU,MACxB,OAAO,OAAS,IAEpB,MAAMR,EAAUQ,EAAO,aAAa,IAAI,EAClCC,EAAW,KAAK,aAAa,cAAc,EAEjD,GADA,QAAQ,IAAI,OAAO,MAAM,EACrB,OAAO,OAAO,OAAOT,CAAO,EAAK,KAAe,OAAO,OAAO,OAAOA,CAAO,EAAE,YAAc,WAC5F,cAAO,OAAOA,CAAO,EAAE,UAAS,EACzB,GAIX,OAAO,OAAOA,CAAO,EAAI,IAAI,GAAG,OAAOA,EAAS,CAC5C,OAAQ,OACR,MAAO,OACP,QAASS,EACT,WAAY,CACR,eAAgB,EAChB,YAAa,EACb,IAAK,EACL,SAAU,CACb,EACD,OAAQ,CACJ,QAASC,EACT,cAAeC,CAClB,CACb,CAAS,EAID,SAASD,EAAcnC,EAAO,CAE1BA,EAAM,OAAO,WACjB,CAGA,IAAIqC,EAAO,GACX,SAASD,EAAoBpC,EAAO,CAC5BA,EAAM,MAAQ,GAAG,YAAY,SAAW,CAACqC,IAC5B,SAAS,eAAeZ,CAAO,EACvC,UAAU,IAAI,cAAc,EACjCY,EAAO,GAEf,CACJ,CACA,WAAW,oBAAqB,CAC5B,MAAO,CAAC,YAAY,CACxB,CACA,yBAAyBC,EAAUC,EAAQC,EAAQ,CAC/C,OAAQF,EAAQ,CACZ,IAAK,aAAc,CACf,GAAIC,GAAUC,EAAQ,CAClB,MAAMC,EAAc,KAAK,WAAW,cAAc,iBAAiB,EAC/DA,GACAA,EAAY,aAAa,MAAOD,CAAM,EAE9C,KACJ,CACJ,CACJ,CACJ"}
|
|
1
|
+
{"version":3,"file":"video-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","video-card.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\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 { trackComponent, trackComponentRegistered } from '../_global.js';\nimport { cardHTML, setupCard } from '../../modules/card.module.js';\ntrackComponentRegistered('iam-video-card');\nclass iamVideoCard 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/video-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n <dialog>\n <div class=\"embed\"></div>\n </dialog>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));\n const link_id = randLetter + Date.now();\n let dialog;\n let embed;\n setupCard(cardComponent);\n // Check if youtube or vimeo video link is present\n if (cardComponent.querySelector('[data-youtube]'))\n cardComponent.setAttribute('data-youtube', cardComponent.querySelector('[data-youtube]').getAttribute('data-youtube'));\n if (cardComponent.querySelector('[data-vimeo]'))\n cardComponent.setAttribute('data-vimeo', cardComponent.querySelector('[data-vimeo]').getAttribute('data-vimeo'));\n // General dialog stuff\n if (cardComponent.hasAttribute('data-youtube') || cardComponent.hasAttribute('data-vimeo')) {\n cardHead.setAttribute('tabindex', '0');\n // Add dialog to page\n if (!document.getElementById(`${link_id}-dialog`)) {\n document.body.insertAdjacentHTML('beforeend', `<dialog id=\"${link_id}-dialog\"><div class=\"embed\" id=\"${link_id}\"></div></dialog>`);\n }\n dialog = document.getElementById(`${link_id}-dialog`);\n embed = document.getElementById(link_id);\n }\n // Youtube\n if (cardComponent.hasAttribute('data-youtube')) {\n // Load the scripts only once\n if (!document.body.classList.contains('youtubeLoaded')) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loaded = yield this.loadYouTubeScripts();\n }\n cardHead.addEventListener('click', function () {\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.createYoutTubeVideo(embed);\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n if (window.player[embed.getAttribute('id')] &&\n typeof window.player[embed.getAttribute('id')].pauseVideo == 'function') {\n window.player[embed.getAttribute('id')].pauseVideo();\n }\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'YoutTube', ID: cardComponent.getAttribute('data-youtube') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n else if (cardComponent.hasAttribute('data-vimeo')) {\n // Vimeo\n cardHead.addEventListener('click', function () {\n const videoId = cardComponent.getAttribute('data-vimeo');\n const customEvent = new CustomEvent('play-video', {\n detail: { 'Video Type': 'Vimeo', ID: videoId },\n });\n cardComponent.dispatchEvent(customEvent);\n if (!embed.querySelector('iframe'))\n embed.innerHTML = `<iframe src=\"https://player.vimeo.com/video/${videoId}?autoplay=1\" width=\"100%\" height=\"100%\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`;\n dialog.showModal();\n });\n dialog.addEventListener('close', () => {\n embed.innerHTML = ``; // Remove the video since we cant pause it\n const customEvent = new CustomEvent('close-video', {\n detail: { 'Video Type': 'Vimeo', ID: cardComponent.getAttribute('data-vimeo') },\n });\n cardComponent.dispatchEvent(customEvent);\n });\n }\n trackComponent(cardComponent, 'iam-video-card', ['play-video', 'close-video']);\n });\n }\n loadYouTubeScripts() {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = function () {\n // This code loads the IFrame Player API code asynchronously.\n const tag = document.createElement('script');\n tag.src = 'https://www.youtube.com/iframe_api';\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n document.body.classList.add('youtubeLoaded');\n resolve(true);\n };\n image.onerror = function () {\n reject(false);\n };\n image.src = 'https://youtube.com/favicon.ico';\n });\n }\n createYoutTubeVideo(target) {\n if (typeof window.player == 'undefined') {\n window.player = [];\n }\n const link_id = target.getAttribute('id');\n const video_id = this.getAttribute('data-youtube');\n console.log(window.player);\n if (typeof window.player[link_id] != 'undefined' && typeof window.player[link_id].pauseVideo == 'function') {\n window.player[link_id].playVideo();\n return false;\n }\n // This function creates an <iframe> (and YouTube player) after the API code downloads.\n //function onYouTubeIframeAPIReady() {\n window.player[link_id] = new YT.Player(link_id, {\n height: '100%',\n width: '100%',\n videoId: video_id,\n playerVars: {\n modestbranding: 1,\n playsinline: 1,\n rel: 0,\n showinfo: 0,\n },\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange,\n },\n });\n //}\n //onYouTubeIframeAPIReady();\n // The API will call this function when the video player is ready.\n function onPlayerReady(event) {\n // Play the video straight away\n event.target.playVideo();\n }\n // The API calls this function when the player's state changes.\n // The function indicates that when playing a video (state=1)\n let done = false;\n function onPlayerStateChange(event) {\n if (event.data == YT.PlayerState.PLAYING && !done) {\n const link = document.getElementById(link_id);\n link.classList.add('player-ready');\n done = true;\n }\n }\n }\n static get observedAttributes() {\n return ['data-image'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-image': {\n if (oldVal != newVal) {\n const cardHeadImg = this.shadowRoot.querySelector('.card__head img');\n if (cardHeadImg)\n cardHeadImg.setAttribute('src', newVal);\n }\n break;\n }\n }\n }\n}\nexport default iamVideoCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamVideoCard","template","link_id","dialog","embed","customEvent","videoId","image","tag","firstScriptTag","target","video_id","onPlayerReady","onPlayerStateChange","done","attrName","oldVal","newVal","cardHeadImg"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
function createAppliedFilters(container, filters) {
|
|
3
2
|
function addFilterButton(filters, input, notSet = true) {
|
|
4
3
|
let shouldRemoveFilter = false;
|
|
@@ -76,28 +75,28 @@ function createAppliedFilters(container, filters) {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
// check for inputs on load
|
|
79
|
-
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input
|
|
78
|
+
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input) => {
|
|
80
79
|
addFilterButton(filters, input, false);
|
|
81
80
|
});
|
|
82
81
|
const dialog = container.closest('dialog');
|
|
83
82
|
if (dialog) {
|
|
84
83
|
const observer = new MutationObserver(function (event) {
|
|
85
84
|
if (event[0].attributeName == 'open') {
|
|
86
|
-
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input
|
|
85
|
+
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input) => {
|
|
87
86
|
addFilterButton(filters, input, false);
|
|
88
87
|
});
|
|
89
88
|
}
|
|
90
89
|
});
|
|
91
90
|
observer.observe(dialog, { attributes: true });
|
|
92
91
|
}
|
|
93
|
-
container.addEventListener('tags-set', function (
|
|
92
|
+
container.addEventListener('tags-set', function () {
|
|
94
93
|
filters.innerHTML = '';
|
|
95
|
-
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input
|
|
94
|
+
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input) => {
|
|
96
95
|
addFilterButton(filters, input, false);
|
|
97
96
|
});
|
|
98
97
|
});
|
|
99
98
|
// check for change in displayed inputs
|
|
100
|
-
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input
|
|
99
|
+
Array.from(container.querySelectorAll('input[type="checkbox"]:checked, input:not([type="checkbox"]):not([type="radio"])')).forEach((input) => {
|
|
101
100
|
input.addEventListener('change', function (event) {
|
|
102
101
|
if (!container.hasAttribute('data-keep-same'))
|
|
103
102
|
addFilterButton(filters, input);
|
|
@@ -120,7 +119,7 @@ function createAppliedFilters(container, filters) {
|
|
|
120
119
|
const name = names[t];
|
|
121
120
|
let selector = `[name="${name}"]`;
|
|
122
121
|
if (name.match(/\[(.*)\]/)) {
|
|
123
|
-
const newName = name.replace(/\[(.*)\]/, `[]`);
|
|
122
|
+
//const newName = name.replace(/\[(.*)\]/, `[]`);
|
|
124
123
|
const value = name.replace(/.*\[(.*)\]/, `$1`);
|
|
125
124
|
selector = `[value="${value}"]`;
|
|
126
125
|
}
|
|
@@ -129,13 +128,13 @@ function createAppliedFilters(container, filters) {
|
|
|
129
128
|
const input = inputs[i];
|
|
130
129
|
if (input.getAttribute('type') != 'radio' && input.getAttribute('type') != 'checkbox') {
|
|
131
130
|
input.value = '';
|
|
132
|
-
|
|
131
|
+
const event = new Event('force');
|
|
133
132
|
if (!container.hasAttribute('data-nosubmit'))
|
|
134
133
|
input.closest('form').dispatchEvent(event);
|
|
135
134
|
}
|
|
136
135
|
else {
|
|
137
136
|
input.checked = false;
|
|
138
|
-
|
|
137
|
+
const event = new Event('force');
|
|
139
138
|
if (!container.hasAttribute('data-nosubmit'))
|
|
140
139
|
input.closest('form').dispatchEvent(event);
|
|
141
140
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
export const generateThumbnailList = function (carouselComponent) {
|
|
3
2
|
const thumbnailImages = [];
|
|
4
3
|
Array.from(carouselComponent.querySelectorAll(':scope > div')).forEach((slide, index) => {
|
|
@@ -25,7 +24,7 @@ export const generatePipsHTML = function (carouselComponent, thumbnailImages) {
|
|
|
25
24
|
}
|
|
26
25
|
return pips;
|
|
27
26
|
};
|
|
28
|
-
const getProgressMax = function (itemCount, visibleItems) {
|
|
27
|
+
export const getProgressMax = function (itemCount, visibleItems) {
|
|
29
28
|
if (visibleItems == 1) {
|
|
30
29
|
return itemCount;
|
|
31
30
|
}
|
|
@@ -58,7 +57,7 @@ export const carousel = function (carouselComponent) {
|
|
|
58
57
|
stepperStart = 'touchstart';
|
|
59
58
|
}
|
|
60
59
|
// On scroll we need to make sure the buttons get corrected and the next testimonial is shown
|
|
61
|
-
carouselInner.addEventListener('scroll', function (
|
|
60
|
+
carouselInner.addEventListener('scroll', function () {
|
|
62
61
|
clearTimeout(scrollTimeout);
|
|
63
62
|
scrollTimeout = setTimeout(function () {
|
|
64
63
|
const scrollArea = carouselInner.clientWidth;
|
|
@@ -76,7 +75,7 @@ export const carousel = function (carouselComponent) {
|
|
|
76
75
|
if (leftOverSpace > 0 && lastItemInView) {
|
|
77
76
|
targetSlide = Math.floor(itemCount / visibleItems) * visibleItems + 1;
|
|
78
77
|
}
|
|
79
|
-
Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button
|
|
78
|
+
Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button) => {
|
|
80
79
|
button.removeAttribute('aria-current');
|
|
81
80
|
});
|
|
82
81
|
carouselElement.querySelector('.control-' + targetSlide).setAttribute('aria-current', true);
|
|
@@ -103,7 +102,7 @@ export const carousel = function (carouselComponent) {
|
|
|
103
102
|
for (let target = e.target; target && target != this; target = target.parentNode) {
|
|
104
103
|
if (typeof target.matches == 'function' && target.matches('button')) {
|
|
105
104
|
e.preventDefault();
|
|
106
|
-
Array.from(carouselControls.querySelectorAll('button')).forEach((button
|
|
105
|
+
Array.from(carouselControls.querySelectorAll('button')).forEach((button) => {
|
|
107
106
|
button.removeAttribute('aria-current');
|
|
108
107
|
});
|
|
109
108
|
target.setAttribute('aria-current', true);
|
|
@@ -125,7 +124,7 @@ export const carousel = function (carouselComponent) {
|
|
|
125
124
|
}, false);
|
|
126
125
|
carouselElement.addEventListener('click', function (e) {
|
|
127
126
|
const scrollArea = carouselInner.clientWidth;
|
|
128
|
-
const scrollWidth = carouselInner.scrollWidth;
|
|
127
|
+
//const scrollWidth = carouselInner.scrollWidth;
|
|
129
128
|
const itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;
|
|
130
129
|
const visibleItems = Math.round(scrollArea / itemWidth);
|
|
131
130
|
const lastItemOffset = carouselComponent.querySelector(':scope > div:last-child').offsetLeft;
|
|
@@ -161,7 +160,7 @@ export const carousel = function (carouselComponent) {
|
|
|
161
160
|
}
|
|
162
161
|
}
|
|
163
162
|
}, false);
|
|
164
|
-
carouselProgress.addEventListener(stepperStart, function (
|
|
163
|
+
carouselProgress.addEventListener(stepperStart, function () {
|
|
165
164
|
clearInterval(stepperInterval);
|
|
166
165
|
stepperInterval = setInterval(function () {
|
|
167
166
|
scrollArea = carouselInner.clientWidth;
|
|
@@ -174,10 +173,10 @@ export const carousel = function (carouselComponent) {
|
|
|
174
173
|
carouselProgress.style.setProperty('--percent', percent + '%');
|
|
175
174
|
}, 10);
|
|
176
175
|
});
|
|
177
|
-
carouselProgress.addEventListener(stepperEvent, function (
|
|
176
|
+
carouselProgress.addEventListener(stepperEvent, function () {
|
|
178
177
|
clearInterval(stepperInterval);
|
|
179
178
|
});
|
|
180
|
-
carouselProgress.addEventListener('change', function (
|
|
179
|
+
carouselProgress.addEventListener('change', function () {
|
|
181
180
|
clearInterval(stepperInterval);
|
|
182
181
|
const target = carouselComponent.querySelector(`:scope > *:nth-child(${carouselProgress.value})`);
|
|
183
182
|
carouselInner.scroll({
|
|
@@ -185,7 +184,7 @@ export const carousel = function (carouselComponent) {
|
|
|
185
184
|
left: target ? target.offsetLeft - carouselInner.getBoundingClientRect().left : 0,
|
|
186
185
|
behavior: 'smooth',
|
|
187
186
|
});
|
|
188
|
-
const direction = target.matches('.btn-next') ? 'next' : 'prev';
|
|
187
|
+
//const direction = target.matches('.btn-next') ? 'next' : 'prev';
|
|
189
188
|
const customEvent = new CustomEvent(`slider-changed`, {
|
|
190
189
|
detail: {
|
|
191
190
|
slide: carouselProgress.value,
|
|
@@ -437,7 +437,8 @@ function createChartKeyItem(chartID, index, text, chartKey, chartOuter, previous
|
|
|
437
437
|
return previousInput;
|
|
438
438
|
}
|
|
439
439
|
export const createChartGuidelines = function (chartElement, chartOuter, chartGuidelines) {
|
|
440
|
-
|
|
440
|
+
const { increment, guidelines } = getChartData(chartElement, chartOuter);
|
|
441
|
+
let { min, max, yaxis } = getChartData(chartElement, chartOuter);
|
|
441
442
|
if (guidelines.length)
|
|
442
443
|
yaxis = guidelines;
|
|
443
444
|
const startDay = min;
|
|
@@ -460,7 +461,8 @@ export const createChartGuidelines = function (chartElement, chartOuter, chartGu
|
|
|
460
461
|
}
|
|
461
462
|
};
|
|
462
463
|
export const createChartYaxis = function (chartElement, chartOuter, chartYaxis) {
|
|
463
|
-
|
|
464
|
+
const { yaxis, increment } = getChartData(chartElement, chartOuter);
|
|
465
|
+
let { min, max } = getChartData(chartElement, chartOuter);
|
|
464
466
|
const startDay = min;
|
|
465
467
|
if (increment == 'days') {
|
|
466
468
|
max = numberOfDays(min, max);
|
|
@@ -682,7 +684,7 @@ function createKeyTotals(chartElement, chartOuter) {
|
|
|
682
684
|
const keyPercent = Math.round((keyTotal / chartTotal) * 100);
|
|
683
685
|
if (chartElement.hasAttribute('data-currency')) {
|
|
684
686
|
if (chartElement.getAttribute('data-currency') == 'GBP') {
|
|
685
|
-
// @ts-
|
|
687
|
+
// @ts-expect-error Not sure
|
|
686
688
|
keyTotal = new Intl.NumberFormat('en-GB', {
|
|
687
689
|
style: 'currency',
|
|
688
690
|
currency: 'GBP',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ucfirst, unsnake } from './helpers.js';
|
|
1
2
|
// #region Functions that setup and trigger other functions
|
|
2
3
|
export const addClasses = (chartElement, chartOuter) => {
|
|
3
4
|
// add colour classes
|
|
@@ -16,6 +17,10 @@ export const addClasses = (chartElement, chartOuter) => {
|
|
|
16
17
|
return true;
|
|
17
18
|
};
|
|
18
19
|
export const setupChart = (chartElement, chartOuter, tableElement) => {
|
|
20
|
+
if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
|
|
21
|
+
setupDoughnutChart(chartElement, chartOuter, tableElement);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
19
24
|
// #region Reset the chart
|
|
20
25
|
// empty divs to re-populate
|
|
21
26
|
const chartKey = chartOuter.querySelector('.chart__key');
|
|
@@ -39,6 +44,21 @@ export const setupChart = (chartElement, chartOuter, tableElement) => {
|
|
|
39
44
|
}
|
|
40
45
|
return true;
|
|
41
46
|
};
|
|
47
|
+
export const setupDoughnutChart = (chartElement, chartOuter, tableElement) => {
|
|
48
|
+
// #region Reset the chart
|
|
49
|
+
// empty divs to re-populate
|
|
50
|
+
const chartKey = chartOuter.querySelector('.chart__key');
|
|
51
|
+
chartKey.innerHTML = '';
|
|
52
|
+
// Remove old input fields
|
|
53
|
+
Array.from(chartOuter.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map((element) => {
|
|
54
|
+
element.remove();
|
|
55
|
+
});
|
|
56
|
+
// #endregion
|
|
57
|
+
setCellData(chartElement, tableElement);
|
|
58
|
+
createChartKey(chartOuter, tableElement, chartKey);
|
|
59
|
+
createdoughnuts(chartOuter);
|
|
60
|
+
return true;
|
|
61
|
+
};
|
|
42
62
|
// #endregion
|
|
43
63
|
// #region Event handlers and observers
|
|
44
64
|
export const setEventListener = function (chartElement, chartOuter) {
|
|
@@ -81,6 +101,9 @@ export const setEventListener = function (chartElement, chartOuter) {
|
|
|
81
101
|
});
|
|
82
102
|
shadowTable.innerHTML = table.innerHTML;
|
|
83
103
|
setCellData(chartElement, shadowTable);
|
|
104
|
+
if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
|
|
105
|
+
createdoughnuts(chartOuter);
|
|
106
|
+
}
|
|
84
107
|
});
|
|
85
108
|
};
|
|
86
109
|
export const setEventObservers = function (chartElement, chartOuter) {
|
|
@@ -116,6 +139,14 @@ export const setEventObservers = function (chartElement, chartOuter) {
|
|
|
116
139
|
observer2.observe(chartElement, { attributes: true });
|
|
117
140
|
return true;
|
|
118
141
|
};
|
|
142
|
+
function getCoordinatesForPercent(percent, doughnutCount) {
|
|
143
|
+
// This moves the start point to the top middle point like a clock
|
|
144
|
+
if (doughnutCount > 1)
|
|
145
|
+
percent = percent - 0.25;
|
|
146
|
+
const x = Math.cos(2 * Math.PI * percent);
|
|
147
|
+
const y = Math.sin(2 * Math.PI * percent);
|
|
148
|
+
return [x * 100, y * 100];
|
|
149
|
+
}
|
|
119
150
|
// #endregion
|
|
120
151
|
// #region GET functions
|
|
121
152
|
export const getChartData = function (chartElement) {
|
|
@@ -293,6 +324,7 @@ export const createChartKey = function (chartOuter, tableElement, chartKey) {
|
|
|
293
324
|
return true;
|
|
294
325
|
};
|
|
295
326
|
function createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {
|
|
327
|
+
var _a;
|
|
296
328
|
const input = document.createElement('input');
|
|
297
329
|
input.setAttribute('name', `${chartID}-dataset-${index}`);
|
|
298
330
|
input.setAttribute('id', `${chartID}-dataset-${index}`);
|
|
@@ -310,12 +342,15 @@ function createChartKeyItem(chartID, index, text, chartKey, chartOuter, previous
|
|
|
310
342
|
label.setAttribute('for', `${chartID}-dataset-${index}`);
|
|
311
343
|
label.setAttribute('data-label', `${text}`);
|
|
312
344
|
label.setAttribute('part', `key`);
|
|
345
|
+
const total = (_a = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)) === null || _a === void 0 ? void 0 : _a.getAttribute('data-numeric');
|
|
346
|
+
label.setAttribute('data-numeric', total);
|
|
313
347
|
label.innerHTML = `${text}`;
|
|
314
348
|
chartKey.append(label);
|
|
315
349
|
return previousInput;
|
|
316
350
|
}
|
|
317
351
|
export const createChartGuidelines = function (chartElement, chartGuidelines) {
|
|
318
|
-
|
|
352
|
+
const { min, max, yaxis } = getChartData(chartElement);
|
|
353
|
+
let { guidelines } = getChartData(chartElement);
|
|
319
354
|
if (!guidelines.length)
|
|
320
355
|
guidelines = yaxis;
|
|
321
356
|
chartGuidelines.innerHTML = '';
|
|
@@ -351,5 +386,77 @@ export const createTooltips = function (chartOuter) {
|
|
|
351
386
|
//title.removeAttribute('title'); // TODO add a supports query for anchor positioning
|
|
352
387
|
});
|
|
353
388
|
};
|
|
389
|
+
export const createdoughnuts = function (chartOuter) {
|
|
390
|
+
let returnString = '';
|
|
391
|
+
const chartInner = chartOuter.querySelector('.chart');
|
|
392
|
+
let doughnutWrapper = chartOuter.querySelector('.doughnuts');
|
|
393
|
+
if (!doughnutWrapper) {
|
|
394
|
+
doughnutWrapper = document.createElement('div');
|
|
395
|
+
doughnutWrapper.setAttribute('class', 'doughnuts');
|
|
396
|
+
chartInner.append(doughnutWrapper);
|
|
397
|
+
}
|
|
398
|
+
Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item, index) => {
|
|
399
|
+
let paths = '';
|
|
400
|
+
let tooltips = '';
|
|
401
|
+
let cumulativePercent = 0;
|
|
402
|
+
let total = 0;
|
|
403
|
+
const titleKey = item.querySelectorAll('td')[0];
|
|
404
|
+
const title = titleKey.innerHTML;
|
|
405
|
+
let doughnutCount = 0;
|
|
406
|
+
const rowTotal = item.getAttribute('data-numeric');
|
|
407
|
+
// Work out the total amount
|
|
408
|
+
Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {
|
|
409
|
+
const display = getComputedStyle(td).display;
|
|
410
|
+
if (subindex != 0 && display != 'none') {
|
|
411
|
+
let value = td.getAttribute('data-numeric');
|
|
412
|
+
value = value.replace('£', '');
|
|
413
|
+
value = value.replace('%', '');
|
|
414
|
+
value = value.replace(',', '');
|
|
415
|
+
value = Number.parseInt(value);
|
|
416
|
+
total += value;
|
|
417
|
+
doughnutCount++;
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
// Create the paths
|
|
421
|
+
Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {
|
|
422
|
+
var _a, _b;
|
|
423
|
+
const display = getComputedStyle(td).display;
|
|
424
|
+
if (subindex != 0 && doughnutCount == 1 && display != 'none') {
|
|
425
|
+
const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;
|
|
426
|
+
paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};"></path>`;
|
|
427
|
+
tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_a = td.querySelector('[part="popover"]')) === null || _a === void 0 ? void 0 : _a.innerHTML}</span>`;
|
|
428
|
+
}
|
|
429
|
+
else if (subindex != 0) {
|
|
430
|
+
let value = td.getAttribute('data-numeric');
|
|
431
|
+
const hide = display == 'none' ? 'display: none;' : '';
|
|
432
|
+
value = value.replace('£', '');
|
|
433
|
+
value = value.replace('%', '');
|
|
434
|
+
value = value.replace(',', '');
|
|
435
|
+
value = Number.parseInt(value);
|
|
436
|
+
const percent = value / total;
|
|
437
|
+
const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);
|
|
438
|
+
const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);
|
|
439
|
+
const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)
|
|
440
|
+
const pathData = [
|
|
441
|
+
`M 0 0`,
|
|
442
|
+
`L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move
|
|
443
|
+
`A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc
|
|
444
|
+
`L 0 0`, // Line
|
|
445
|
+
].join(' ');
|
|
446
|
+
paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};${hide}"></path>`;
|
|
447
|
+
tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_b = td.querySelector('[part="popover"]')) === null || _b === void 0 ? void 0 : _b.innerHTML}</span>`;
|
|
448
|
+
// each slice starts where the last slice ended, so keep a cumulative percent
|
|
449
|
+
if (display != 'none')
|
|
450
|
+
cumulativePercent += percent;
|
|
451
|
+
}
|
|
452
|
+
});
|
|
453
|
+
returnString += `<div class="doughnut">
|
|
454
|
+
<svg viewBox="-105 -105 210 210" preserveAspectRatio="none" style="--row-index: ${index + 1};">${paths}</svg>
|
|
455
|
+
<div class="doughnut__title" data-numeric="${rowTotal}"><span class="h5 mb-0">${title}</span></div>
|
|
456
|
+
<div class="tooltips">${tooltips}</div>
|
|
457
|
+
</div>`;
|
|
458
|
+
});
|
|
459
|
+
doughnutWrapper.innerHTML = returnString;
|
|
460
|
+
};
|
|
354
461
|
// #endregion
|
|
355
462
|
export default setupChart;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
const extendDialogs = (body) => {
|
|
3
|
-
Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog
|
|
2
|
+
Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog) => {
|
|
4
3
|
const parent = dialog.closest('.dialog__wrapper');
|
|
5
4
|
if (!parent) {
|
|
6
5
|
dialog.removeAttribute('open');
|
|
@@ -29,7 +28,7 @@ const extendDialogs = (body) => {
|
|
|
29
28
|
dialog.setAttribute('style', `max-width: ${firstWidth}px;`);
|
|
30
29
|
}
|
|
31
30
|
// When the modal is opened we want to make sure any duplicate checkboxes are matching the originals
|
|
32
|
-
Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element
|
|
31
|
+
Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element) => {
|
|
33
32
|
const id = element.getAttribute('data-duplicate');
|
|
34
33
|
const originalInput = document.getElementById(id);
|
|
35
34
|
if (element.checked != originalInput.checked) {
|
|
@@ -50,7 +49,7 @@ const extendDialogs = (body) => {
|
|
|
50
49
|
event.preventDefault();
|
|
51
50
|
dialog.close();
|
|
52
51
|
// Remove active class from exiting active buttons
|
|
53
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
52
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
54
53
|
btnElement.classList.remove('active');
|
|
55
54
|
});
|
|
56
55
|
const closeEvent = new CustomEvent('dialog-closed', {
|
|
@@ -69,7 +68,7 @@ const extendDialogs = (body) => {
|
|
|
69
68
|
if (event && event.target instanceof HTMLElement && event.target.closest('button[formmethod="dialog"]')) {
|
|
70
69
|
const dialog = event.target.closest('dialog[open]');
|
|
71
70
|
// Remove active class from exiting active buttons
|
|
72
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
71
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
73
72
|
btnElement.classList.remove('active');
|
|
74
73
|
});
|
|
75
74
|
window.dataLayer = window.dataLayer || [];
|
|
@@ -120,7 +119,7 @@ const extendDialogs = (body) => {
|
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
// Remove active class from exiting active buttons
|
|
123
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
122
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
124
123
|
btnElement.removeAttribute('aria-expanded');
|
|
125
124
|
});
|
|
126
125
|
if (popover.hasAttribute('open')) {
|
|
@@ -171,7 +170,7 @@ const extendDialogs = (body) => {
|
|
|
171
170
|
!event.target.closest('.dialog__wrapper > button')) {
|
|
172
171
|
if (document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]'))
|
|
173
172
|
document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]').close();
|
|
174
|
-
Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement
|
|
173
|
+
Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement) => {
|
|
175
174
|
btnElement.removeAttribute('aria-expanded');
|
|
176
175
|
});
|
|
177
176
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
// Create the event listeners
|
|
3
2
|
const createDynamicEvents = () => {
|
|
4
3
|
// Change event
|
|
@@ -26,7 +25,7 @@ const splitEvents = (element, events) => {
|
|
|
26
25
|
if (!events)
|
|
27
26
|
return false;
|
|
28
27
|
// Split out each event
|
|
29
|
-
Array.from(JSON.parse(events)).forEach((event
|
|
28
|
+
Array.from(JSON.parse(events)).forEach((event) => {
|
|
30
29
|
checkConditions(element, event);
|
|
31
30
|
});
|
|
32
31
|
};
|
|
@@ -62,7 +61,7 @@ const runEvent = (element, event, eventType) => {
|
|
|
62
61
|
if (document.querySelector(event['target'])) {
|
|
63
62
|
const hideElement = document.querySelector(event['target']);
|
|
64
63
|
hideElement.classList.add('js-hide');
|
|
65
|
-
Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input
|
|
64
|
+
Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input) => {
|
|
66
65
|
input.removeAttribute('required');
|
|
67
66
|
});
|
|
68
67
|
}
|
|
@@ -71,7 +70,7 @@ const runEvent = (element, event, eventType) => {
|
|
|
71
70
|
if (document.querySelector(event['target'])) {
|
|
72
71
|
const showElement = document.querySelector(event['target']);
|
|
73
72
|
showElement.classList.remove('js-hide');
|
|
74
|
-
Array.from(showElement.querySelectorAll('[data-required]')).forEach((input
|
|
73
|
+
Array.from(showElement.querySelectorAll('[data-required]')).forEach((input) => {
|
|
75
74
|
if (!input.closest('.js-hide'))
|
|
76
75
|
input.setAttribute('required', 'true');
|
|
77
76
|
});
|
|
@@ -85,7 +84,7 @@ const runEvent = (element, event, eventType) => {
|
|
|
85
84
|
document.querySelector(`${event['target']}`).dispatchEvent(theEvent);
|
|
86
85
|
break;
|
|
87
86
|
case 'setAttribute':
|
|
88
|
-
Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element
|
|
87
|
+
Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element) {
|
|
89
88
|
element.setAttribute(event['attribute'], event['value']);
|
|
90
89
|
});
|
|
91
90
|
break;
|
|
@@ -93,7 +92,7 @@ const runEvent = (element, event, eventType) => {
|
|
|
93
92
|
document.querySelector(`${event['target']}`).focus();
|
|
94
93
|
break;
|
|
95
94
|
case 'removeAttribute':
|
|
96
|
-
Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element
|
|
95
|
+
Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element) {
|
|
97
96
|
element.removeAttribute(event['attribute']);
|
|
98
97
|
});
|
|
99
98
|
break;
|
|
@@ -118,7 +117,7 @@ const populateForm = function (element, event) {
|
|
|
118
117
|
const form = document.querySelector(event['target']);
|
|
119
118
|
if (!values)
|
|
120
119
|
return false;
|
|
121
|
-
Object.keys(values).forEach((field
|
|
120
|
+
Object.keys(values).forEach((field) => {
|
|
122
121
|
if (document.getElementById(field) && document.getElementById(field).tagName == 'SPAN')
|
|
123
122
|
document.getElementById(field).innerHTML = values[field];
|
|
124
123
|
if (form.querySelector(`select[name="${field}"] [value="${values[field]}"]`)) {
|
|
@@ -127,7 +126,7 @@ const populateForm = function (element, event) {
|
|
|
127
126
|
form.querySelector(`select[name="${field}"]`).disabled = true;
|
|
128
127
|
}
|
|
129
128
|
else if (form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`)) {
|
|
130
|
-
Array.from(form.querySelectorAll(`input[name="${field}"][type="radio"]`)).forEach(function (input
|
|
129
|
+
Array.from(form.querySelectorAll(`input[name="${field}"][type="radio"]`)).forEach(function (input) {
|
|
131
130
|
input.disabled = true;
|
|
132
131
|
});
|
|
133
132
|
form.querySelector(`input[name="${field}"][type="radio"][value="${values[field]}"]`).checked = true;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
function fileupload(fileupload, wrapper) {
|
|
3
2
|
const filesWrapper = wrapper.querySelector('.files');
|
|
4
3
|
const dropArea = wrapper.querySelector('.drop-area');
|
|
@@ -20,7 +19,6 @@ function fileupload(fileupload, wrapper) {
|
|
|
20
19
|
};
|
|
21
20
|
wrapper.addEventListener('click', (event) => {
|
|
22
21
|
if (event && event.target instanceof HTMLElement && event.target.closest('.btn-primary')) {
|
|
23
|
-
const button = event.target.closest('.btn-primary');
|
|
24
22
|
// If the input allows multiples then use the buffer clone input
|
|
25
23
|
errorMsgExt.classList.remove('d-block');
|
|
26
24
|
errorMsgSize.classList.remove('d-block');
|
|
@@ -41,10 +39,12 @@ function fileupload(fileupload, wrapper) {
|
|
|
41
39
|
input.files = dt.files; // Assign the updates list
|
|
42
40
|
const changeEvent = new Event('change');
|
|
43
41
|
input.dispatchEvent(changeEvent);
|
|
42
|
+
const fileRemovedEvent = new CustomEvent('fileRemoved', { detail: { removedFile: button === null || button === void 0 ? void 0 : button.dataset.file } });
|
|
43
|
+
fileupload.dispatchEvent(fileRemovedEvent);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
// Buffer input change event
|
|
47
|
-
cloneInput.addEventListener('change', (
|
|
47
|
+
cloneInput.addEventListener('change', () => {
|
|
48
48
|
if (input.hasAttribute('multiple')) {
|
|
49
49
|
const filesArray = [...input.files, ...cloneInput.files];
|
|
50
50
|
const fileNames = [];
|
|
@@ -70,16 +70,16 @@ function fileupload(fileupload, wrapper) {
|
|
|
70
70
|
const changeEvent = new Event('change');
|
|
71
71
|
input.dispatchEvent(changeEvent);
|
|
72
72
|
});
|
|
73
|
-
cloneInput.addEventListener('dragenter', (
|
|
73
|
+
cloneInput.addEventListener('dragenter', () => {
|
|
74
74
|
cloneInput.classList.add('focus');
|
|
75
75
|
});
|
|
76
|
-
cloneInput.addEventListener('dragleave', (
|
|
76
|
+
cloneInput.addEventListener('dragleave', () => {
|
|
77
77
|
cloneInput.classList.remove('focus');
|
|
78
78
|
});
|
|
79
|
-
cloneInput.addEventListener('drop', (
|
|
79
|
+
cloneInput.addEventListener('drop', () => {
|
|
80
80
|
cloneInput.classList.remove('focus');
|
|
81
81
|
});
|
|
82
|
-
input.addEventListener('change', (
|
|
82
|
+
input.addEventListener('change', () => {
|
|
83
83
|
if (input.files.length == 1) {
|
|
84
84
|
const file = input.files[0];
|
|
85
85
|
const size = file.size / 1000;
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
function filterlist(list, input) {
|
|
3
2
|
addFilterlistEventListeners(list, input);
|
|
4
3
|
}
|
|
5
4
|
function addFilterlistEventListeners(list, input) {
|
|
6
5
|
let timer;
|
|
7
|
-
input.addEventListener('keyup', (
|
|
6
|
+
input.addEventListener('keyup', () => {
|
|
8
7
|
clearTimeout(timer);
|
|
9
8
|
timer = setTimeout(function () {
|
|
10
9
|
filterTheList(list, input.value);
|
|
11
10
|
}, 500);
|
|
12
11
|
});
|
|
13
|
-
input.addEventListener('change', (
|
|
12
|
+
input.addEventListener('change', () => {
|
|
14
13
|
clearTimeout(timer);
|
|
15
14
|
filterTheList(list, input.value);
|
|
16
15
|
});
|
|
17
16
|
}
|
|
18
17
|
export const filterTheList = function (list, searchTerm) {
|
|
19
|
-
Array.from(list.querySelectorAll(':scope > li')).forEach((item
|
|
18
|
+
Array.from(list.querySelectorAll(':scope > li')).forEach((item) => {
|
|
20
19
|
const content = item.textContent.toLowerCase();
|
|
21
20
|
item.classList.add('d-none');
|
|
22
21
|
if (content.includes(searchTerm.toLowerCase()))
|