@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-no-submit.component.min.js","sources":["../../modules/helpers.js","../../modules/table.js","table-no-submit.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n document.addEventListener('submit', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.matches('form')) {\n const form = event.target;\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\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 { zeroPad, isNumeric, ucfirst, resolvePath, uniqueID } from './helpers.js';\n// #region Helpers\nexport const formatCell = (format, cellOutput) => {\n switch (format) {\n case 'datetime':\n return (new Date(cellOutput).toLocaleDateString('en-gb', {\n weekday: 'short',\n year: '2-digit',\n month: 'long',\n day: 'numeric',\n }) +\n ' ' +\n new Date(cellOutput).toLocaleTimeString('en-gb', { hour: '2-digit', minute: '2-digit' }));\n case 'date':\n return new Date(cellOutput).toLocaleDateString('en-gb', {\n day: 'numeric',\n month: 'long',\n year: '2-digit',\n });\n case 'capitalise':\n return (cellOutput = ucfirst(cellOutput));\n }\n};\nconst filterFilters = function (form) {\n const filters = new Object();\n // Filter\n const filterInputs = Array.from(form.querySelectorAll('[data-filter]'));\n filterInputs.forEach((filterInput) => {\n // Ignore uncked radio inputs\n if (filterInput.type == 'radio' && !filterInput.checked) {\n return;\n }\n if (filterInput.type == 'checkbox' && !filterInput.checked) {\n return;\n }\n if (filterInput && filterInput.value) {\n const dataFilter = filterInput.getAttribute('data-filter');\n let filterValue = filterInput.value;\n if (filterInput.hasAttribute('data-date-from'))\n filterValue += '-date-from';\n if (filterInput.hasAttribute('data-date-to'))\n filterValue += '-date-to';\n if (!filters[dataFilter])\n filters[dataFilter] = [];\n filters[dataFilter].push(filterValue);\n }\n });\n return filters;\n};\nexport const moveAttributesToComponents = (component) => {\n let form = document.createElement('form');\n if (component.hasAttribute('data-filterby')) {\n form = document.querySelector(`#${component.getAttribute('data-filterby')}`);\n }\n else if (component.closest('form')) {\n form = component.closest('form');\n }\n else {\n table.parentNode.insertBefore(form, table.nextSibling);\n }\n if (form.hasAttribute('data-ajax'))\n component.setAttribute('data-ajax', form.getAttribute('data-ajax'));\n if (form.hasAttribute('data-schema'))\n component.setAttribute('data-schema', form.getAttribute('data-schema'));\n};\nexport const paginateTable = (component, table, form, pagination, callback) => {\n if (!form.querySelector('[name=show]'))\n form.insertAdjacentHTML('beforeend', `<input name=\"show\" type=\"hidden\" value=\"${component.getAttribute('data-show')}\" />`);\n if (!form.querySelector('[name=page]'))\n form.insertAdjacentHTML('beforeend', `<input name=\"page\" type=\"hidden\" value=\"${component.getAttribute('data-page')}\" />`);\n pagination.addEventListener('update-show', (event) => {\n if (form.querySelector('[name=show]').value != event.detail.show) {\n form.querySelector('[name=show]').value = event.detail.show;\n const updateEvent = new CustomEvent('update-show', { detail: { show: event.detail.show } });\n component.dispatchEvent(updateEvent);\n updateAttributes(component, pagination);\n callback();\n }\n });\n pagination.addEventListener('update-page', (event) => {\n if (form.querySelector('[name=page]').value != event.detail.page) {\n form.querySelector('[name=page]').value = event.detail.page;\n const updateEvent = new CustomEvent('update-page', { detail: { page: event.detail.page } });\n component.dispatchEvent(updateEvent);\n updateAttributes(component, pagination);\n callback();\n // scroll back to the top of the table\n if (!component.hasAttribute('data-no-scroll')) {\n const yOffset = -250;\n const y = table.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n }\n });\n};\nexport const findForm = (component, table) => {\n let form = document.createElement('form');\n if (component.hasAttribute('data-filterby')) {\n form = document.querySelector(`#${component.getAttribute('data-filterby')}`);\n }\n else if (component.closest('form')) {\n form = component.closest('form');\n }\n else {\n table.parentNode.insertBefore(form, table.nextSibling);\n }\n return form;\n};\n// #endregion\nexport const setupBasicTable = (component, table, form, pagination) => {\n const tableWrapper = component.shadowRoot.querySelector('.table__wrapper');\n if (!component.hasAttribute('data-total'))\n component.setAttribute('data-total', component.querySelectorAll('tbody tr').length);\n if (!component.hasAttribute('data-page'))\n component.setAttribute('data-page', 1);\n if (!component.hasAttribute('data-show'))\n component.setAttribute('data-show', 5);\n if (!component.hasAttribute('data-increment'))\n component.setAttribute('data-increment', component.getAttribute('data-show'));\n transferAttributes(component, pagination);\n addDataAttributes(table);\n createMobileButton(component, table);\n // Max height\n if (component.classList.contains('mh-sm'))\n tableWrapper.classList.add('mh-sm');\n if (component.classList.contains('mh-md'))\n tableWrapper.classList.add('mh-md');\n if (component.classList.contains('mh-lg'))\n tableWrapper.classList.add('mh-lg');\n if (component.classList.contains('table--cta')) {\n getLargestLastColWidth(component, table);\n getRowHeight(component, table);\n }\n};\n// #region Basic table fnctions\nexport const transferAttributes = (component, pagination) => {\n if (component.hasAttribute('data-total'))\n pagination.setAttribute('data-total', component.getAttribute('data-total'));\n if (component.hasAttribute('data-page'))\n pagination.setAttribute('data-page', component.getAttribute('data-page'));\n if (component.hasAttribute('data-show'))\n pagination.setAttribute('data-show', component.getAttribute('data-show'));\n if (component.hasAttribute('data-increment'))\n pagination.setAttribute('data-increment', component.getAttribute('data-show'));\n if (component.hasAttribute('data-page-jump'))\n pagination.setAttribute('data-page-jump', 'true');\n if (component.hasAttribute('data-per-page'))\n pagination.setAttribute('data-per-page', 'true');\n if (component.hasAttribute('data-item-count'))\n pagination.setAttribute('data-item-count', 'true');\n if (component.hasAttribute('data-loading'))\n pagination.setAttribute('data-loading', 'true');\n if (component.classList.contains('table--fullwidth'))\n pagination.setAttribute('data-minimal', 'true');\n};\nexport const updateAttributes = (component, pagination) => {\n component.setAttribute('data-total', pagination.getAttribute('data-total'));\n component.setAttribute('data-page', pagination.getAttribute('data-page'));\n component.setAttribute('data-show', pagination.getAttribute('data-show'));\n component.setAttribute('data-increment', pagination.getAttribute('data-show'));\n};\nexport const paginateRows = (component) => {\n const total = component.getAttribute('data-total');\n const page = component.getAttribute('data-page');\n const show = component.getAttribute('data-show');\n const increment = component.getAttribute('data-increment');\n const table = component.querySelector('table');\n const end = page * show;\n const start = end - show;\n Array.from(table.querySelectorAll('tbody tr')).forEach((row, index) => {\n if (index >= start && index < end) {\n row.classList.add('show');\n }\n else {\n row.classList.remove('show');\n }\n });\n};\nexport const addDataAttributes = (table) => {\n const colHeadings = Array.from(table.querySelectorAll('thead th'));\n const colRows = Array.from(table.querySelectorAll('tbody tr'));\n colRows.forEach((row) => {\n const cells = Array.from(row.querySelectorAll('th, td'));\n const statuses = [\n '0',\n 'low',\n 'medium',\n 'high',\n 'unknown',\n 'n/a',\n 'pending',\n 'verified',\n 'due',\n 'overdue',\n 'incomplete',\n 'complete',\n 'completed',\n 'approval required',\n 'upcoming',\n 'requires approval',\n 'to do',\n 'on track',\n 'not started',\n 'warning',\n 'successful',\n 'failed',\n ];\n cells.forEach((cell, cellIndex) => {\n const heading = colHeadings[cellIndex];\n if (typeof heading != 'undefined') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = heading.innerHTML;\n const headingText = tempDiv.textContent || tempDiv.innerText || '';\n cell.setAttribute('data-label', headingText);\n if (heading.hasAttribute('data-td-class'))\n cell.setAttribute('class', heading.getAttribute('data-td-class'));\n if (heading.hasAttribute('data-format')) {\n cell.setAttribute('data-format', heading.getAttribute('data-format'));\n cell.innerHTML = formatCell(heading.getAttribute('data-format'), cell.textContent.trim()); //Make sure date format is consistent\n }\n if (statuses.includes(cell.textContent.trim().toLowerCase())) {\n cell.setAttribute('data-content', cell.textContent.trim().toLowerCase());\n }\n }\n });\n });\n};\nexport const createMobileButton = (component, table) => {\n if (component.classList.contains('table--fullwidth') && !component.hasAttribute('data-expandable'))\n return false;\n if (table.querySelectorAll('thead tr th').length < 4 && !component.hasAttribute('data-expandable'))\n return false;\n //If the expand column already exists we don't need to add a new one.\n Array.from(table.querySelectorAll('thead tr')).forEach((row) => {\n if (!table.querySelectorAll('thead tr th.expand-button-heading').length) {\n row.insertAdjacentHTML('afterbegin', `<th class=\"${component.hasAttribute('data-expandable') ? 'th--fixed ' : ''}expand-button-heading\"></th>`);\n }\n });\n Array.from(table.querySelectorAll('tbody tr')).forEach((row, index) => {\n const preExpanded = row.getAttribute('data-view') === 'full' ? 'aria-expanded' : '';\n row.insertAdjacentHTML('afterbegin', `<td class=\"${component.hasAttribute('data-expandable') ? 'td--fixed ' : ''}td--expand\"><button class=\"btn btn-compact btn-secondary btn-sm\" data-expand-button ${preExpanded} data-index=\"${index}\">Expand</button></td>`);\n });\n table.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-expand-button]')) {\n const button = event.target.closest('[data-expand-button]');\n const tableRow = button.closest('tr');\n button.toggleAttribute('aria-expanded');\n if (tableRow.getAttribute('data-view') == 'full')\n tableRow.setAttribute('data-view', 'default');\n else\n tableRow.setAttribute('data-view', 'full');\n button.blur();\n component.dispatchEvent(new CustomEvent('row-expanded', { detail: { row: button.getAttribute('data-index') } }));\n }\n });\n};\nexport const getLargestLastColWidth = (component, table) => {\n let largestWidth = 0;\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\n const htmlStyles = window.getComputedStyle(document.querySelector('html'));\n const lastColChild = row.querySelector(':scope > *:last-child > *:first-child');\n if (lastColChild) {\n lastColChild.classList.add('text-nowrap');\n let responsiveWidth = lastColChild.offsetWidth / parseFloat(htmlStyles.fontSize);\n responsiveWidth += 1.8;\n largestWidth = largestWidth > responsiveWidth ? largestWidth : responsiveWidth;\n }\n });\n component.style.setProperty('--cta-width', `${largestWidth}rem`);\n};\nexport const getRowHeight = (component, table) => {\n function outputsize() {\n Array.from(table.querySelectorAll('tr')).forEach((row) => {\n const rowHeight = row.offsetHeight;\n row.style.setProperty('--row-height', `${rowHeight}px`);\n });\n }\n new ResizeObserver(outputsize).observe(table);\n};\n// #endregion\nexport const setupAdvancedTable = (component, table) => {\n if (component.querySelector('iam-actionbar[data-selectall]') ||\n document.querySelector(`iam-actionbar[data-for='${component.getAttribute('id')}']`)) {\n const actionbar = component.querySelector('iam-actionbar[data-selectall]')\n ? component.querySelector('iam-actionbar[data-selectall]')\n : document.querySelector(`iam-actionbar[data-for='${component.getAttribute('id')}']`);\n addSelectboxes(component, table, actionbar);\n }\n component.querySelectorAll('.dialog__wrapper .btn-compact').forEach((btn) => {\n btn.classList.add('btn-sm');\n btn.classList.add('m-0');\n const tr = btn.closest('tr');\n const td = btn.closest('td');\n const trChildren = Array.prototype.slice.call(tr.children);\n const cellIndex = trChildren.indexOf(td);\n td.classList.add('td--fixed');\n table.querySelector(`thead tr th:nth-child(${cellIndex + 1})`).classList.add('th--fixed');\n });\n};\n// #region Advanced table functions\nexport const addSelectboxes = (component, table, actionbar) => {\n Array.from(table.querySelectorAll('thead tr')).forEach((row) => {\n if (row.querySelector('.expand-button-heading'))\n row.querySelector('.expand-button-heading').insertAdjacentHTML('afterend', `<th class=\"th--fixed\"></th>`);\n else\n row.insertAdjacentHTML('afterbegin', `<th class=\"th--fixed\"></th>`);\n });\n Array.from(table.querySelectorAll('tbody tr')).forEach((row, index) => {\n row.setAttribute('data-index', index + 1);\n if (!row.querySelector('.selectrow')) {\n const rowID = `row${uniqueID(index)}`;\n if (row.querySelector('.td--expand'))\n row\n .querySelector('.td--expand')\n .insertAdjacentHTML('afterend', `<td class=\"td--fixed selectrow selected\"><input type=\"checkbox\" name=\"row\" id=\"${rowID}\" ${row.hasAttribute('data-selected') ? `checked=\"true\"` : ''}/><label for=\"${rowID}\"><span class=\"visually-hidden\">Select row</span></label></td>`);\n else\n row.insertAdjacentHTML('afterbegin', `<td class=\"td--fixed selectrow selected\"><input type=\"checkbox\" name=\"row\" id=\"${rowID}\" ${row.hasAttribute('data-selected') ? `checked=\"true\"` : ''}/><label for=\"${rowID}\"><span class=\"visually-hidden\">Select row</span></label></td>`);\n }\n });\n table.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('.selectrow input')) {\n const input = event.target.closest('.selectrow input');\n const row = event.target.closest('tr');\n const count = table.querySelectorAll('.selectrow input[type=\"checkbox\"]').length;\n const countChecked = table.querySelectorAll('.selectrow input[type=\"checkbox\"]:checked').length;\n actionbar.setAttribute('data-selected', count == countChecked ? 'all' : countChecked);\n const dispatchedEvent = new CustomEvent('row-selected', {\n detail: {\n rowIndex: row.getAttribute('data-index'),\n checked: input.checked ? true : false,\n },\n });\n component.dispatchEvent(dispatchedEvent);\n }\n });\n actionbar.addEventListener('selected', (event) => {\n if (event.detail.selected == '0') {\n Array.from(table.querySelectorAll('.selectrow input[type=\"checkbox\"]')).forEach((input) => {\n input.checked = false;\n });\n const dispatchedEvent = new CustomEvent('all-rows-unselected');\n component.dispatchEvent(dispatchedEvent);\n }\n else if (event.detail.selected == 'all') {\n Array.from(table.querySelectorAll('.selectrow input[type=\"checkbox\"]')).forEach((input) => {\n input.checked = true;\n });\n const dispatchedEvent = new CustomEvent('all-rows-selected');\n component.dispatchEvent(dispatchedEvent);\n }\n });\n};\n// Export CSV Data\nexport const addExportEventListeners = (button, table) => {\n if (!button) {\n return false;\n }\n button.addEventListener('click', () => {\n exportAsCSV(table);\n });\n};\nexport const exportAsCSV = function (table) {\n let csvData = [];\n // Get each row data\n const rows = table.getElementsByTagName('tr');\n for (let i = 0; i < rows.length; i++) {\n // Get each column data\n const cols = rows[i].querySelectorAll('td,th');\n // Stores each csv row data\n const csvRow = [];\n for (let j = 0; j < cols.length; j++) {\n // Get the text data of each cell of a row and push it to csvrow\n csvRow.push(`\"${cols[j].textContent}\"`);\n }\n // Combine each column value with comma\n csvData.push(csvRow.join(','));\n }\n // Combine each row data with new line character\n csvData = csvData.join('\\n');\n // Create CSV file object and feed our csvData into it\n const CSVFile = new Blob([csvData], {\n type: 'text/csv',\n });\n // Create to temporary link to initiate download process\n const tempLink = document.createElement('a');\n tempLink.download = 'export.csv';\n const url = window.URL.createObjectURL(CSVFile);\n tempLink.href = url;\n // This link should not be displayed\n tempLink.style.display = 'none';\n document.body.appendChild(tempLink);\n // Automatically click the link to trigger download\n tempLink.click();\n document.body.removeChild(tempLink);\n};\n// #endregion\nexport const setupNoSubmitTable = (component, table, form, pagination, savedTableBody) => {\n sortViaHeaders(component, table);\n createSearchDataList(component, table);\n form.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-sort]')) {\n sortTable(table, form, savedTableBody);\n }\n });\n addFilterEventListeners(component, table, form, pagination, savedTableBody);\n};\n// #region No submit table functions\nexport const sortViaHeaders = (component, table) => {\n table.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-sort]')) {\n const heading = event.target.closest('[data-sort]');\n heading.setAttribute('data-sort', 'true');\n // Turn other headings off\n Array.from(table.querySelectorAll('th[data-sort]')).forEach((element) => {\n if (element != heading) {\n element.setAttribute('data-sort', '');\n element.removeAttribute('data-order-by');\n heading.setAttribute('title', 'Click to sort ascending');\n }\n });\n if (heading.hasAttribute('data-order-by') && heading.getAttribute('data-order-by') == 'asc') {\n heading.setAttribute('data-order-by', 'desc');\n heading.setAttribute('title', 'Click to sort ascending');\n }\n else {\n heading.setAttribute('data-order-by', 'asc');\n heading.setAttribute('title', 'Click to sort descending');\n }\n // dispath event\n const dispatchedEvent = new CustomEvent('sort-by-heading', {\n detail: {\n heading: heading.textContent,\n sortBy: heading.getAttribute('data-order-by'),\n ref: heading.getAttribute('data-ref'),\n },\n });\n component.dispatchEvent(dispatchedEvent);\n const sortBy = heading.textContent.trim();\n const order = heading.getAttribute('data-order-by');\n if (!component.hasAttribute('data-submit')) {\n // TODO\n sortTableByValues(table, sortBy, order);\n }\n }\n });\n};\nexport const createSearchDataList = (component, table) => {\n var _a;\n const actionbar = component.querySelector('iam-actionbar');\n if (!actionbar)\n return false;\n const searchInput = (_a = actionbar.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input#search');\n if (!searchInput)\n return false;\n const searchID = searchInput.getAttribute('id');\n const inputWrapper = searchInput.parentNode;\n const searchableTerms = {};\n table.querySelectorAll('tbody td:not(.td--fixed)').forEach((td) => {\n if (td.querySelector('.td__content'))\n searchableTerms[td.querySelector('.td__content').textContent] = td.querySelector('.td__content').textContent;\n else\n searchableTerms[td.textContent] = td.textContent;\n });\n searchInput.setAttribute('list', `${searchID}_list`);\n searchInput.setAttribute('autocomplete', 'off');\n if (!inputWrapper.querySelector('datalist'))\n inputWrapper.innerHTML += `<datalist id=\"${searchID}_list\"></datalist>`;\n inputWrapper.querySelector('datalist').innerHTML = `${Object.keys(searchableTerms)\n .map((term) => `<option value=\"${term}\"></option>`)\n .join('')}`;\n};\nexport const sortTable = (table, form, savedTableBody) => {\n if (form.getAttribute('data-ajax')) {\n return false;\n }\n const tbody = table.querySelector('tbody');\n let selectedOption = form.querySelector(`input[type=\"radio\"][data-sort]:checked`);\n if (form.querySelector('select[data-sort]')) {\n const select = form.querySelector('select[data-sort]');\n selectedOption = form.querySelector(`select[data-sort] option:nth-child(${select.selectedIndex + 1})`);\n }\n const sortBy = selectedOption.getAttribute('data-sort');\n const order = selectedOption.getAttribute('data-order');\n const format = selectedOption.getAttribute('data-format');\n if (!sortBy) {\n tbody.innerHTML = savedTableBody.innerHTML;\n addDataAttributes(table);\n return false;\n }\n sortTableByValues(table, sortBy, order, format);\n};\nexport const sortTableByValues = (table, sortBy, order, format = '') => {\n const tbody = table.querySelector('tbody');\n let orderArray = [];\n if (!['asc', 'desc', 'descending'].includes(order)) {\n orderArray = order.split(',');\n }\n // Create an array from the table rows, the index created is then used to sort the array\n let tableArr = [];\n Array.from(tbody.querySelectorAll('tr')).forEach((tableRow) => {\n let rowIndex = tableRow\n .querySelector('td[data-label=\"' + sortBy + '\"], th[data-label=\"' + sortBy + '\"]')\n .textContent.trim();\n if (tableRow.querySelector('[data-label=\"' + sortBy + '\"] .td__content')) {\n rowIndex = tableRow.querySelector('[data-label=\"' + sortBy + '\"] .td__content').textContent.trim();\n }\n // If a predefined order set replace the search term with an ordered numeric value so it can be sorted\n if (orderArray.length && orderArray.includes(rowIndex)) {\n rowIndex = orderArray.indexOf(rowIndex);\n }\n if (isNumeric(rowIndex)) {\n rowIndex = zeroPad(rowIndex, 10);\n }\n // If the sort format is date then lets transform the index to a sortable date (this is never displayed)\n if (format && format == 'date') {\n rowIndex = new Date(rowIndex);\n }\n const dataRow = {\n index: rowIndex,\n row: tableRow,\n };\n tableArr.push(dataRow);\n });\n // Sort array alphabetically\n tableArr.sort((a, b) => (a.index > b.index ? 1 : -1));\n // Reverse if descending\n if (order == 'descending' || order == 'desc') {\n tableArr = tableArr.reverse();\n }\n // Create a string to return and populate the tbody\n let strTbody = '';\n tableArr.forEach((tableRow) => {\n strTbody += tableRow.row.outerHTML;\n });\n tbody.innerHTML = strTbody;\n};\nexport const addFilterEventListeners = (component, table, form, pagination, savedTableBody) => {\n let timer;\n // Check what conditions are set on the table to see what the form actions are\n const formSubmit = function (event, paginate = false) {\n if (form.classList.contains('processing'))\n return false;\n Array.from(form.querySelectorAll('iam-applied-filters')).forEach((element) => {\n const event = new Event('tags-set');\n element.dispatchEvent(event);\n });\n // Before submitting check if any duplicate checkboxes within the filters dialog needs to upset the original input\n if (event.type == 'submit') {\n form.classList.add('processing');\n Array.from(form.querySelectorAll('[data-duplicate]')).forEach((element) => {\n const id = element.getAttribute('data-duplicate');\n const input = document.getElementById(id);\n const card = document.querySelector(`[for=\"${id}\"] iam-card`);\n if (input.checked != element.checked) {\n if (card) {\n const clickEvent = new Event('click');\n card.dispatchEvent(clickEvent);\n }\n else {\n input.checked = element.checked;\n }\n }\n });\n form.classList.remove('processing');\n }\n filterTable(component, table, form, pagination);\n populateDataQueries(component, table, form);\n /*\n // Pass post data back to the page\n if (form.hasAttribute('data-ajax-post')) {\n const formData = new FormData(form);\n const queryString = new URLSearchParams(formData).toString();\n const http = new XMLHttpRequest();\n http.open('GET', `${window.location.href}?ajax=true&${queryString}`);\n http.send();\n }\n */\n };\n if (component.querySelector('iam-actionbar[data-search]')) {\n component.querySelector('iam-actionbar[data-search]').addEventListener('search-submit', (event) => {\n if (form.querySelector('input[data-search]')) {\n form.querySelector('input[data-search]').value = event.detail.search;\n }\n else {\n form.insertAdjacentHTML('beforeend', `<input type=\"hidden\" name=\"search\" data-search=\"${component.querySelector('iam-actionbar[data-search]').getAttribute('data-search')}\" value=\"${event.detail.search}\"/>`);\n }\n const submitEvent = new CustomEvent('search-submit', {\n detail: event.details,\n });\n component.dispatchEvent(submitEvent);\n clearTimeout(timer);\n formSubmit(event);\n });\n }\n if (component.querySelector('iam-actionbar') && !component.querySelector('iam-actionbar').closest('form')) {\n component.querySelector('iam-actionbar').addEventListener('change', (event) => {\n if (!form.querySelector('.duplicate-actionbar')) {\n form.insertAdjacentHTML('beforeend', `<div class=\"duplicate-actionbar\" style=\"visibility: hidden; pointer-events: none; position: absolute;\"></div>`);\n }\n form.querySelector('.duplicate-actionbar').innerHTML = component.querySelector('iam-actionbar').innerHTML;\n filterTable(component, table, form, pagination);\n });\n }\n form.addEventListener('keyup', (event) => {\n clearTimeout(timer);\n if (event && event.target instanceof HTMLElement && event.target.closest('input[data-search]')) {\n timer = setTimeout(function () {\n formSubmit(event);\n }, 500);\n }\n });\n form.addEventListener('change', (event) => {\n clearTimeout(timer);\n if (event && event.target instanceof HTMLElement && event.target.closest('input[data-search]')) {\n formSubmit(event);\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-filter][data-no-ajax]')) {\n // Allow for input fields to filter the current results without a new ajax call\n filterTable(component, table, form, pagination);\n populateDataQueries(table, form);\n }\n else if (event &&\n event.target instanceof HTMLElement &&\n event.target.closest('[data-filter]') &&\n event.target.closest('form .dialog__wrapper > dialog')) {\n formSubmit(event);\n }\n else if (event &&\n event.target instanceof HTMLElement &&\n event.target.closest('[data-filter]') &&\n !event.target.closest('form dialog')) {\n formSubmit(event);\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-show]')) {\n formSubmit(event);\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-mimic]')) {\n formSubmit(event);\n }\n if (event && event.target instanceof HTMLElement && event.target.hasAttribute('id')) {\n const id = event.target.getAttribute('id');\n if (document.querySelector(`[data-duplicate=\"${id}\"]`)) {\n document.querySelector(`[data-duplicate=\"${id}\"]`).checked = event.target.checked;\n }\n }\n });\n form.addEventListener('click', (event) => {\n clearTimeout(timer);\n if (event && event.target instanceof HTMLElement && event.target.closest('dialog button:not([type=\"button\"])')) {\n const button = event.target.closest('dialog button:not([type=\"button\"])');\n const modal = button.closest('dialog');\n modal.close();\n }\n // Prevent the form from submitting\n if (event && event.target instanceof HTMLElement && event.target.closest('.dialog__close')) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (event && event.target instanceof HTMLElement && event.target.closest('[data-clear]')) {\n form.classList.add('processing');\n // Make sure any applied filters have been removed\n Array.from(form.querySelectorAll('.applied-filters')).forEach((filters) => {\n filters.innerHTML = '';\n });\n // Make sure cards are unlicked\n const frm_elements = form.elements;\n for (let i = 0; i < frm_elements.length; i++) {\n const field_type = frm_elements[i].type.toLowerCase() ? frm_elements[i].type.toLowerCase() : 'text';\n switch (field_type) {\n case 'text':\n case 'password':\n case 'textarea':\n frm_elements[i].value = '';\n break;\n case 'radio':\n case 'checkbox':\n if (frm_elements[i].checked) {\n const input = frm_elements[i];\n const id = input.getAttribute('id');\n const label = document.querySelector(`[for=\"${id}\"`);\n if (label.querySelector('iam-card')) {\n const card = label.querySelector('iam-card');\n const clickEvent = new Event('click');\n card.dispatchEvent(clickEvent);\n }\n input.checked = false;\n }\n break;\n case 'select-one':\n case 'select-multi':\n frm_elements[i].selectedIndex = -1;\n break;\n case 'hidden':\n default:\n break;\n }\n }\n form.classList.remove('processing');\n if (!form.hasAttribute('data-submit')) {\n sortTable(table, form, savedTableBody);\n }\n formSubmit(event);\n }\n });\n form.addEventListener('submit', (event) => {\n clearTimeout(timer);\n if (!form.hasAttribute('data-submit')) {\n event.preventDefault();\n }\n formSubmit(event);\n });\n form.addEventListener('force', (event) => {\n formSubmit(event);\n });\n form.addEventListener('paginate', (event) => {\n formSubmit(event, true);\n });\n // Mmimic fields\n const forms = [];\n const fields = [];\n // Collect the forms that we need to add an event listener for.\n Array.from(form.querySelectorAll('[data-mimic]')).forEach((input) => {\n const mimicField = input.getAttribute('data-mimic');\n Array.from(document.querySelectorAll(`[name=\"${mimicField}\"]`)).forEach((mimicInput) => {\n const parentForm = mimicInput.closest('form');\n if (!forms.includes(parentForm)) {\n forms.push(parentForm);\n }\n if (!fields.includes(mimicField)) {\n fields.push(mimicField);\n }\n });\n });\n // For each form add change listener\n forms.forEach((parentForm) => {\n const updateMimicInput = function () {\n const mimickedAlready = [];\n const formData = new FormData(parentForm);\n let i = 1;\n for (const [key, value] of formData) {\n if (document.querySelector(`[data-mimic=\"${key}\"]`) && !mimickedAlready.includes(key)) {\n mimickedAlready.push(key);\n document.querySelector(`[data-mimic=\"${key}\"]`).value = value;\n }\n else if (document.querySelector(`[data-mimic=\"${key}\"]`))\n document.querySelector(`[data-mimic=\"${key}\"]`).value += ',' + value;\n i++;\n }\n for (const value of mimickedAlready) {\n const event = new Event('force');\n form.dispatchEvent(event);\n }\n // Check for empties\n for (const field of fields) {\n if (!formData.has(field) && parentForm.querySelector(`[name=\"${field}\"]`)) {\n document.querySelector(`[data-mimic=\"${field}\"]`).value = '';\n const event = new Event('force');\n form.dispatchEvent(event);\n }\n }\n };\n parentForm.addEventListener('force', () => {\n updateMimicInput();\n });\n parentForm.addEventListener('change', () => {\n updateMimicInput();\n });\n });\n};\nexport const filterTable = (component, table, form, pagination) => {\n table.classList.remove('table--filtered');\n const filters = filterFilters(form);\n const searches = [];\n let matched = 0;\n const page = form.querySelector('[data-pagination]') ? parseInt(form.querySelector('[data-pagination]').value) : 1;\n const showRows = form.querySelector('[data-show]') ? parseInt(form.querySelector('[data-show]').value) : 15;\n // Reset\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\n row.classList.remove('filtered');\n row.classList.remove('filtered--matched');\n row.classList.remove('filtered--show');\n row.removeAttribute('data-filtered-by');\n });\n // Add search columns too\n if (form.querySelector('input[data-search]')) {\n const searchInput = form.querySelector('input[data-search]');\n //const searchColumns = form.querySelector('input[data-search],[part=\"search-input\"]').getAttribute('data-search').split(',');\n table.querySelectorAll('thead tr th').forEach((column) => {\n searches.push({ column: `${column.textContent.trim()}`, value: `${searchInput.value}` });\n });\n }\n //Display the filter count\n Array.from(form.querySelectorAll('[data-filter-count]')).forEach((element) => {\n element.innerHTML = '';\n element.parentNode.classList.remove('hover');\n });\n let filterCount = 0;\n Object.values(filters).forEach((filter) => {\n if (typeof filter == 'object' && Object.values(filter).length) {\n filterCount += Object.values(filter).length;\n }\n else {\n filterCount++;\n }\n });\n if (filterCount) {\n Array.from(form.querySelectorAll('[data-filter-count]')).forEach((element) => {\n element.innerHTML += `(${filterCount})`;\n element.parentNode.classList.add('hover');\n });\n }\n // Filter the table\n table.classList.add('table--filtered');\n for (const [key, filterValue] of Object.entries(filters)) {\n Array.from(table.querySelectorAll('tbody tr:not(.filtered)')).forEach((row) => {\n let isMatched = false;\n filterValue.forEach((filter) => {\n const filterTd = row.querySelector(`[data-label=\"${key}\"]`);\n if (filter.includes('-date-from')) {\n const fromDate = new Date(filter.replace('-date-from', ''));\n const checkDate = new Date(filterTd.textContent.toLowerCase());\n fromDate.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n if (checkDate < fromDate) {\n row.classList.add('less-than-from-date');\n isMatched = false;\n }\n else if (!row.classList.contains('less-than-from-date') &&\n !row.classList.contains('greater-than-to-date')) {\n isMatched = true;\n }\n }\n else if (filter.includes('-date-to')) {\n const toDate = new Date(filter.replace('-date-to', ''));\n const checkDate = new Date(filterTd.textContent.toLowerCase());\n toDate.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n if (checkDate > toDate) {\n row.classList.add('greater-than-to-date');\n isMatched = false;\n }\n else if (!row.classList.contains('less-than-from-date') &&\n !row.classList.contains('greater-than-to-date')) {\n isMatched = true;\n }\n }\n // Dynamic values\n if (filter && filter == '$today') {\n filter = formatCell('date', new Date());\n }\n else if (filter && filter == '$yesterday') {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n filter = formatCell('date', yesterday);\n }\n else if (filter && (filter == '$thisWeek' || filter == '$lastWeek')) {\n const today = new Date();\n const mondayThisWeek = new Date(today.setDate(today.getDate() - (today.getDay() - 1)));\n const sundayThisWeek = new Date(today.setDate(today.getDate() - today.getDay() + 7));\n const checkDate = new Date(filterTd.textContent.toLowerCase());\n today.setHours(0, 0, 0, 0);\n mondayThisWeek.setHours(0, 0, 0, 0);\n sundayThisWeek.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n if (filter == '$thisWeek') {\n isMatched = checkDate >= mondayThisWeek && checkDate <= sundayThisWeek;\n }\n else {\n const mondayLastWeek = new Date(mondayThisWeek.setDate(mondayThisWeek.getDate() - 7));\n const sundayLastWeek = new Date(sundayThisWeek.setDate(sundayThisWeek.getDate() - 7));\n mondayLastWeek.setHours(0, 0, 0, 0);\n sundayLastWeek.setHours(0, 0, 0, 0);\n isMatched = checkDate >= mondayLastWeek && checkDate <= sundayLastWeek;\n }\n }\n else if (filter && filter == '$thisMonth') {\n const today = new Date(), year = today.getFullYear(), month = today.getMonth();\n const firstDayMonth = new Date(year, month, 1);\n const lastDayMonth = new Date(year, month + 1, 0);\n const checkDate = new Date(filterTd.textContent.toLowerCase());\n firstDayMonth.setHours(0, 0, 0, 0);\n lastDayMonth.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n isMatched = checkDate >= firstDayMonth && checkDate <= lastDayMonth;\n }\n else if (filter && filter == '$lastMonth') {\n const today = new Date(), year = today.getFullYear(), month = today.getMonth();\n const firstDayLastMonth = new Date(year, month - 1, 1);\n const lastDayLastMonth = new Date(year, month, 0);\n const checkDate = new Date(filterTd.textContent.toLowerCase());\n firstDayLastMonth.setHours(0, 0, 0, 0);\n lastDayLastMonth.setHours(0, 0, 0, 0);\n checkDate.setHours(0, 0, 0, 0);\n isMatched = checkDate >= firstDayLastMonth && checkDate <= lastDayLastMonth;\n }\n if (filterTd && filterTd.textContent.toLowerCase().includes(filter.replace('-', ' ').toLowerCase())) {\n isMatched = true;\n }\n });\n if (!isMatched) {\n row.classList.add('filtered');\n row.setAttribute('data-filtered-by', key);\n }\n });\n }\n // Search whats left of the table after filtering\n Array.from(table.querySelectorAll('tbody tr:not(.filtered)')).forEach((row) => {\n let isSearched = searches.length > 0 && searches[0].value.length >= 3 ? false : true;\n searches.forEach((search) => {\n const searchTd = row.querySelector(`[data-label=\"${search.column}\"]`);\n if (searchTd &&\n search.value.length >= 3 &&\n searchTd.textContent.toLowerCase().includes(search.value.toLowerCase())) {\n isSearched = true;\n }\n });\n if (!isSearched) {\n row.classList.add('filtered');\n }\n });\n // Work out what to display after pagination\n Array.from(table.querySelectorAll('tbody tr:not(.filtered)')).forEach((row) => {\n matched++;\n row.classList.add('filtered--matched');\n // pagination bit\n const matchesPage = Math.ceil(matched / showRows);\n if (matchesPage == parseInt(page)) {\n row.classList.add('filtered--show');\n }\n });\n if (pagination) {\n pagination.setAttribute('data-total', matched);\n pagination.setAttribute('data-show', showRows);\n pagination.setAttribute('data-page', page);\n }\n};\nexport const populateDataQueries = (component, table, form) => {\n const dataQueries = Array.from(form.querySelectorAll('[data-query]'));\n dataQueries.forEach((queryElement) => {\n const query = queryElement.getAttribute('data-query');\n let numberOfMatchedRows = 0;\n if (query == 'total') {\n if (component.hasAttribute('data-total'))\n numberOfMatchedRows = component.getAttribute('data-total');\n else\n numberOfMatchedRows = table.classList.contains('table--filtered')\n ? table.querySelectorAll('tbody tr').length\n : table.querySelectorAll('tbody tr').length;\n }\n else if (!query.includes(' == ') && query.includes(' & ')) {\n const queries = query.split(' & ');\n let selector = '';\n queries.forEach((element) => {\n selector += `:not([data-filtered-by=\"${element}\"])`;\n });\n numberOfMatchedRows = Array.from(table.querySelectorAll(`tbody tr${selector}`)).length;\n }\n else if (!query.includes(' == ')) {\n numberOfMatchedRows = Array.from(table.querySelectorAll(`tbody tr:not([data-filtered-by=\"${query}\"])`)).length;\n }\n else if (query.includes(' && ')) {\n const queries = query.split(' && ');\n numberOfMatchedRows = Array.from(table.querySelectorAll(`tbody tr:not(.filtered)`)).filter(function (row) {\n let matched = true;\n for (const value of Object.entries(queries)) {\n const queryParts = value.split(' == ');\n if (!row.querySelector(`td[data-label=\"${queryParts[0]}\"]`) ||\n row.querySelector(`td[data-label=\"${queryParts[0]}\"]`).textContent != `${queryParts[1]}`)\n matched = false;\n }\n return matched;\n }).length;\n }\n else {\n const queryParts = query.split(' == ');\n numberOfMatchedRows = Array.from(table.querySelectorAll(`tbody tr.filtered--matched td[data-label=\"${queryParts[0]}\"], tbody tr[data-filtered-by=\"${queryParts[0]}\"] td[data-label=\"${queryParts[0]}\"]`)).filter(function (element) {\n return element.textContent === queryParts[1];\n }).length;\n }\n if (queryElement.hasAttribute('data-total')) {\n queryElement.setAttribute('data-total', numberOfMatchedRows);\n }\n else {\n queryElement.innerHTML = numberOfMatchedRows;\n }\n });\n};\n// #endregion\nexport const setupSubmitTable = (component, table, form, pagination) => {\n form.setAttribute('method', 'get');\n const actionbar = component.querySelector('iam-actionbar');\n if (actionbar) {\n actionbar.addEventListener('change', (event) => {\n form.submit();\n });\n }\n};\n// #region submit tables functions\n// #endregion\nexport const setupAjaxTable = (component, table, form, pagination) => {\n loadAjaxTable(component, table, form, pagination);\n const actionbar = component.querySelector('iam-actionbar');\n form.addEventListener('submit', (event) => {\n loadAjaxTable(component, table, form, pagination);\n event.preventDefault();\n });\n if (actionbar) {\n actionbar.addEventListener('change', (event) => {\n loadAjaxTable(component, table, form, pagination);\n });\n }\n};\n// #region ajax tables functions\nexport const loadAjaxTable = function (component, table, form, pagination) {\n return __awaiter(this, void 0, void 0, function* () {\n // Add actionbar inputs into form\n if (component.querySelector('iam-actionbar') && !component.querySelector('iam-actionbar').closest('form')) {\n if (!form.querySelector('.duplicate-actionbar'))\n form.insertAdjacentHTML('beforeend', `<div class=\"duplicate-actionbar\" style=\"visibility: hidden; pointer-events: none; position: absolute;\"></div>`);\n form.querySelector('.duplicate-actionbar').innerHTML = component.querySelector('iam-actionbar').innerHTML;\n }\n // Add pagination inputs into form\n if (!form.querySelector('input[name=show]'))\n form.insertAdjacentHTML('beforeend', `<input name=\"show\" type=\"hidden\" value=\"${component.getAttribute('data-show')}\" />`);\n if (!form.querySelector('input[name=page]'))\n form.insertAdjacentHTML('beforeend', `<input name=\"page\" type=\"hidden\" value=\"${component.getAttribute('data-page')}\" />`);\n form.querySelector('input[name=page]').value = component.getAttribute('data-page');\n form.querySelector('input[name=show]').value = component.getAttribute('data-show');\n // Construct form data to send to api\n const formData = new FormData(form);\n const queryString = new URLSearchParams(formData).toString();\n const columns = table.querySelectorAll('thead tr th:not(.expand-button-heading)');\n const tbody = table.querySelector('tbody');\n const ajaxURL = form.getAttribute('data-ajax');\n component.classList.add('table--loading');\n // Display the filter count\n const filters = filterFilters(form);\n Array.from(form.querySelectorAll('[data-filter-count]')).forEach((element) => {\n element.innerHTML = '';\n element.parentNode.classList.remove('hover');\n });\n let filterCount = 0;\n Object.values(filters).forEach((filter) => {\n if (typeof filter == 'object' && Object.values(filter).length)\n filterCount += Object.values(filter).length;\n else\n filterCount++;\n });\n if (filterCount) {\n Array.from(form.querySelectorAll('[data-filter-count]')).forEach((element) => {\n element.innerHTML += `(${filterCount})`;\n element.parentNode.classList.add('hover');\n });\n }\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[ajaxURL])\n window.controller[ajaxURL].abort();\n // Create a new controller so it can be aborted if new fetch made\n window.controller[ajaxURL] = new AbortController();\n const { signal } = controller[ajaxURL];\n // Set loading on the pagination\n pagination.setAttribute('data-loading', 'true');\n form.classList.add('processing');\n try {\n yield fetch(ajaxURL + '?' + queryString, {\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 }),\n })\n .then((response) => response.json())\n .then((response) => {\n const schema = form.hasAttribute('data-schema') ? form.getAttribute('data-schema') : 'data';\n const totalNumberSchema = form.hasAttribute('data-schema-total')\n ? form.getAttribute('data-schema-total')\n : 'meta.total';\n const currentPageSchema = form.hasAttribute('data-schema-page')\n ? form.getAttribute('data-schema-page')\n : 'meta.current_page';\n const totalNumber = resolvePath(response, totalNumberSchema, 15);\n const currentPage = resolvePath(response, currentPageSchema, 1);\n const data = resolvePath(response, schema);\n const emptyMsg = component.hasAttribute('data-empty-msg')\n ? component.getAttribute('data-empty-msg')\n : 'No results found';\n if (data) {\n tbody.innerHTML = '';\n data.forEach((row) => {\n const table_row = document.createElement('tr');\n columns.forEach((col) => {\n let cellOutput = '';\n const table_cell = document.createElement('td');\n // Add some data to help with the mobile layout design\n table_cell.setAttribute('data-label', col.innerText);\n if (col.getAttribute('data-output')) {\n const cellTemplate = col.getAttribute('data-output');\n // Use a regex to replace {var} with actual values from the json data\n cellOutput = cellTemplate.replace(new RegExp(/{(.*?)}/, 'gm'), function (matched) {\n return resolvePath(row, matched.replace('{', '').replace('}', ''));\n });\n }\n // If an output array is defined then the content is going to made of of multiple values from an array\n if (col.hasAttribute('data-output-array')) {\n const cellTemplate = col.getAttribute('data-output');\n const arrValue = resolvePath(row, cellTemplate.replace('{', '').replace('}', ''));\n cellOutput = '';\n arrValue.forEach((rowValue) => {\n const cellTemplateValue = col.getAttribute('data-output-array');\n let cellOutputValue = '';\n // If we need to transform some of the data\n if (col.hasAttribute('data-output-array-property') &&\n col.hasAttribute('data-output-array-transform')) {\n const propertyValue = resolvePath(rowValue, col.getAttribute('data-output-array-property'));\n const transforms = JSON.parse(col.getAttribute('data-output-array-transform'));\n const transformValue = transforms[propertyValue];\n cellOutputValue = cellTemplateValue.replace(`{${col.getAttribute('data-output-array-property')}}`, transformValue);\n }\n cellOutputValue = cellOutputValue.replace(new RegExp(/{(.*?)}/, 'gm'), function (matched) {\n return resolvePath(rowValue, matched.replace('{', '').replace('}', ''));\n });\n cellOutput += cellOutputValue;\n });\n }\n if (col.hasAttribute('data-transform')) {\n const transforms = JSON.parse(col.getAttribute('data-transform'));\n cellOutput = transforms[cellOutput];\n if (!cellOutput && col.hasAttribute('data-default'))\n cellOutput = col.getAttribute('data-default');\n }\n table_cell.innerHTML = cellOutput;\n table_row.appendChild(table_cell);\n });\n tbody.appendChild(table_row);\n });\n component.setAttribute('data-total', parseInt(totalNumber));\n component.setAttribute('data-page', parseInt(currentPage));\n pagination.setAttribute('data-total', totalNumber);\n pagination.setAttribute('data-page', currentPage);\n Array.from(form.querySelectorAll('[data-ajax-query]')).forEach((queryElement) => {\n const totalNumber = resolvePath(response, queryElement.getAttribute('data-ajax-query'), '');\n if (queryElement.hasAttribute('data-total'))\n queryElement.setAttribute('data-total', totalNumber);\n else\n queryElement.innerHTML = totalNumber;\n });\n if (parseInt(totalNumber) == 0) {\n tbody.innerHTML = `<tr><td colspan=\"100%\"><span>${emptyMsg}</span></td></tr>`;\n }\n component.classList.remove('table--loading');\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'Ajax table loaded',\n url: ajaxURL,\n formData: queryString,\n });\n setupBasicTable(component, table, form, pagination);\n setupAdvancedTable(component, table, form, pagination);\n }\n else {\n tbody.innerHTML = '<tr><td colspan=\"100%\"><span>Error loading table</span></td></tr>';\n }\n // Remove loading on the pagination\n pagination.removeAttribute('data-loading');\n form.classList.remove('processing');\n });\n }\n catch (error) {\n console.log(error);\n }\n });\n};\n// #endregion\n/*\n// Pagination - still needed?\nexport const addPaginationEventListeners = function (component, table, form, pagination): void | boolean {\n\n \n pagination.addEventListener('update-page', (event) => {\n const paginationInput = form.querySelector('[data-pagination]');\n const newPage = event.detail.page;\n\n // Set the filter value\n paginationInput.value = newPage;\n form.dispatchEvent(new Event('paginate'));\n\n // Reset the data attribute\n component.setAttribute('data-page', newPage);\n\n if (table.hasAttribute('data-show-history')) {\n const url = new URL(location);\n url.searchParams.set('page', newPage);\n history.pushState({ type: 'pagination', form: form.getAttribute('id'), page: newPage }, '', url);\n }\n\n // scroll back to the top of the table\n if (!component.hasAttribute('data-no-scroll')) {\n const yOffset = -250;\n const y = table.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n });\n\n pagination.addEventListener('update-show', (event) => {\n const showInput = form.querySelector('[data-show]');\n const showRows = event.detail.show;\n showInput.value = showRows;\n component.setAttribute('data-show', showRows);\n form.dispatchEvent(new Event('submit'));\n });\n};\n*/\n","import { setupBasicTable, findForm, setupAdvancedTable, setupNoSubmitTable, paginateRows, paginateTable, } from '../../modules/table.js';\nclass iamTableNoSubmit 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/table.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/table.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"table__container\">\n <slot name=\"before\"></slot>\n <div class=\"table--cta\">\n <div class=\"table__wrapper\">\n <slot></slot>\n </div>\n </div>\n <iam-pagination part=\"pagination\" class=\"pagination--table\" ${this.hasAttribute('data-page') ? `data-page=\"${this.getAttribute('data-page')}\"` : ''} ></iam-pagination>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('tableSingleExtras') && !document.getElementById('tableExtras')) {\n document.head.insertAdjacentHTML('beforeend', `<style id=\"tableSingleExtras\">${loadExtraCSS}</style>`);\n }\n }\n connectedCallback() {\n const pagination = this.shadowRoot.querySelector('iam-pagination');\n const table = this.querySelector('table');\n const savedTableBody = table.querySelector('tbody').cloneNode(true);\n const form = findForm(this, table);\n setupBasicTable(this, table, form, pagination);\n setupAdvancedTable(this, table);\n setupNoSubmitTable(this, table, form, pagination, savedTableBody);\n paginateRows(this);\n if (pagination) {\n paginateTable(this, table, form, pagination, () => {\n paginateRows(this);\n });\n }\n // #region shared advanced functions\n //endregion\n // select all\n // search\n // filter\n // sort\n /*\n // Push up the pagination events\n pagination.addEventListener('update-show', (event) => {\n const show = event.detail.show;\n \n const updateEvent = new CustomEvent('update-show', { detail: { show: show } });\n this.dispatchEvent(updateEvent);\n \n updateAttributes(this, pagination);\n });\n \n pagination.addEventListener('update-page', (event) => {\n const page = event.detail.page;\n \n const updateEvent = new CustomEvent('update-page', { detail: { page: page } });\n this.dispatchEvent(updateEvent);\n \n updateAttributes(this, pagination);\n });\n \n */\n }\n}\nexport default iamTableNoSubmit;\n"],"names":["isNumeric","str","zeroPad","num","places","ucfirst","uniqueID","index","formatCell","format","cellOutput","filterFilters","form","filters","filterInput","dataFilter","filterValue","paginateTable","component","table","pagination","callback","event","updateEvent","updateAttributes","y","findForm","setupBasicTable","tableWrapper","transferAttributes","addDataAttributes","createMobileButton","getLargestLastColWidth","getRowHeight","paginateRows","page","show","end","start","row","colHeadings","cells","statuses","cell","cellIndex","heading","tempDiv","headingText","preExpanded","button","tableRow","largestWidth","htmlStyles","lastColChild","responsiveWidth","outputsize","rowHeight","setupAdvancedTable","actionbar","addSelectboxes","btn","tr","td","rowID","input","count","countChecked","dispatchedEvent","setupNoSubmitTable","savedTableBody","sortViaHeaders","createSearchDataList","sortTable","addFilterEventListeners","element","sortBy","order","sortTableByValues","_a","searchInput","searchID","inputWrapper","searchableTerms","term","tbody","selectedOption","select","orderArray","tableArr","rowIndex","dataRow","a","b","strTbody","timer","formSubmit","paginate","id","card","clickEvent","filterTable","populateDataQueries","submitEvent","frm_elements","i","label","forms","fields","mimicField","mimicInput","parentForm","updateMimicInput","mimickedAlready","formData","key","value","field","searches","matched","showRows","column","filterCount","filter","isMatched","filterTd","fromDate","checkDate","toDate","yesterday","today","mondayThisWeek","sundayThisWeek","mondayLastWeek","sundayLastWeek","year","month","firstDayMonth","lastDayMonth","firstDayLastMonth","lastDayLastMonth","isSearched","search","searchTd","queryElement","query","numberOfMatchedRows","queries","selector","queryParts","iamTableNoSubmit","template"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { setupBasicTable, findForm, setupAdvancedTable, setupSubmitTable, paginateTable } from '../../modules/table.js';
|
|
2
|
+
class iamTableSubmit extends HTMLElement {
|
|
3
|
+
constructor() {
|
|
4
|
+
super();
|
|
5
|
+
this.attachShadow({ mode: 'open' });
|
|
6
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
7
|
+
? document.body.getAttribute('data-assets-location')
|
|
8
|
+
: '/assets';
|
|
9
|
+
const loadCSS = `@import "${assetLocation}/css/components/table.component.css";`;
|
|
10
|
+
const loadExtraCSS = `@import "${assetLocation}/css/components/table.global.css";`;
|
|
11
|
+
const template = document.createElement('template');
|
|
12
|
+
template.innerHTML = `
|
|
13
|
+
<style>
|
|
14
|
+
${loadCSS}
|
|
15
|
+
|
|
16
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
17
|
+
</style>
|
|
18
|
+
<div class="table__container">
|
|
19
|
+
<slot name="before"></slot>
|
|
20
|
+
<div class="table--cta">
|
|
21
|
+
<div class="table__wrapper">
|
|
22
|
+
<slot></slot>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<iam-pagination part="pagination" class="pagination--table" ></iam-pagination>
|
|
26
|
+
</div>
|
|
27
|
+
`;
|
|
28
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
29
|
+
// insert extra CSS
|
|
30
|
+
if (!document.getElementById('tableSingleExtras') && !document.getElementById('tableExtras')) {
|
|
31
|
+
document.head.insertAdjacentHTML('beforeend', `<style id="tableSingleExtras">${loadExtraCSS}</style>`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
connectedCallback() {
|
|
35
|
+
const params = new URLSearchParams(window.location.search);
|
|
36
|
+
const pagination = this.shadowRoot.querySelector('iam-pagination');
|
|
37
|
+
const table = this.querySelector('table');
|
|
38
|
+
const form = findForm(this, table);
|
|
39
|
+
if (params.has('page'))
|
|
40
|
+
this.setAttribute('data-page', params.get('page'));
|
|
41
|
+
if (params.has('show'))
|
|
42
|
+
this.setAttribute('data-show', params.get('show'));
|
|
43
|
+
if (params.has('page'))
|
|
44
|
+
pagination.setAttribute('data-page', params.get('page'));
|
|
45
|
+
if (params.has('show'))
|
|
46
|
+
pagination.setAttribute('data-show', params.get('show'));
|
|
47
|
+
setupBasicTable(this, table, form, pagination);
|
|
48
|
+
setupAdvancedTable(this, table, form, pagination);
|
|
49
|
+
setupSubmitTable(this, table, form, pagination);
|
|
50
|
+
paginateTable(this, table, form, pagination, () => {
|
|
51
|
+
form.submit();
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export default iamTableSubmit;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* iamKey v7.2.1--beta1
|
|
3
|
+
* Copyright 2022-2025 iamproperty
|
|
4
|
+
*/const h=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1)),p=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=h(a)}},g=(t,a,e,i,l)=>{e.querySelector("[name=show]")||e.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),e.querySelector("[name=page]")||e.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),i.addEventListener("update-show",b=>{if(e.querySelector("[name=show]").value!=b.detail.show){e.querySelector("[name=show]").value=b.detail.show;const o=new CustomEvent("update-show",{detail:{show:b.detail.show}});t.dispatchEvent(o),c(t,i),l()}}),i.addEventListener("update-page",b=>{if(e.querySelector("[name=page]").value!=b.detail.page){e.querySelector("[name=page]").value=b.detail.page;const o=new CustomEvent("update-page",{detail:{page:b.detail.page}});if(t.dispatchEvent(o),c(t,i),l(),!t.hasAttribute("data-no-scroll")){const s=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:s,behavior:"smooth"})}}})},f=(t,a)=>{let e=document.createElement("form");return t.hasAttribute("data-filterby")?e=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?e=t.closest("form"):a.parentNode.insertBefore(e,a.nextSibling),e},w=(t,a,e,i)=>{const l=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",5),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),y(t,i),x(a),v(t,a),t.classList.contains("mh-sm")&&l.classList.add("mh-sm"),t.classList.contains("mh-md")&&l.classList.add("mh-md"),t.classList.contains("mh-lg")&&l.classList.add("mh-lg"),t.classList.contains("table--cta")&&(k(t,a),A(t,a))},y=(t,a)=>{t.hasAttribute("data-total")&&a.setAttribute("data-total",t.getAttribute("data-total")),t.hasAttribute("data-page")&&a.setAttribute("data-page",t.getAttribute("data-page")),t.hasAttribute("data-show")&&a.setAttribute("data-show",t.getAttribute("data-show")),t.hasAttribute("data-increment")&&a.setAttribute("data-increment",t.getAttribute("data-show")),t.hasAttribute("data-page-jump")&&a.setAttribute("data-page-jump","true"),t.hasAttribute("data-per-page")&&a.setAttribute("data-per-page","true"),t.hasAttribute("data-item-count")&&a.setAttribute("data-item-count","true"),t.hasAttribute("data-loading")&&a.setAttribute("data-loading","true"),t.classList.contains("table--fullwidth")&&a.setAttribute("data-minimal","true")},c=(t,a)=>{t.setAttribute("data-total",a.getAttribute("data-total")),t.setAttribute("data-page",a.getAttribute("data-page")),t.setAttribute("data-show",a.getAttribute("data-show")),t.setAttribute("data-increment",a.getAttribute("data-show"))},x=t=>{const a=Array.from(t.querySelectorAll("thead th"));Array.from(t.querySelectorAll("tbody tr")).forEach(i=>{const l=Array.from(i.querySelectorAll("th, td")),b=["0","low","medium","high","unknown","n/a","pending","verified","due","overdue","incomplete","complete","completed","approval required","upcoming","requires approval","to do","on track","not started","warning","successful","failed"];l.forEach((o,n)=>{const s=a[n];if(typeof s<"u"){const d=document.createElement("div");d.innerHTML=s.innerHTML;const m=d.textContent||d.innerText||"";o.setAttribute("data-label",m),s.hasAttribute("data-td-class")&&o.setAttribute("class",s.getAttribute("data-td-class")),s.hasAttribute("data-format")&&(o.setAttribute("data-format",s.getAttribute("data-format")),o.innerHTML=p(s.getAttribute("data-format"),o.textContent.trim())),b.includes(o.textContent.trim().toLowerCase())&&o.setAttribute("data-content",o.textContent.trim().toLowerCase())}})})},v=(t,a)=>{if(t.classList.contains("table--fullwidth")&&!t.hasAttribute("data-expandable")||a.querySelectorAll("thead tr th").length<4&&!t.hasAttribute("data-expandable"))return!1;Array.from(a.querySelectorAll("thead tr")).forEach(e=>{a.querySelectorAll("thead tr th.expand-button-heading").length||e.insertAdjacentHTML("afterbegin",`<th class="${t.hasAttribute("data-expandable")?"th--fixed ":""}expand-button-heading"></th>`)}),Array.from(a.querySelectorAll("tbody tr")).forEach((e,i)=>{const l=e.getAttribute("data-view")==="full"?"aria-expanded":"";e.insertAdjacentHTML("afterbegin",`<td class="${t.hasAttribute("data-expandable")?"td--fixed ":""}td--expand"><button class="btn btn-compact btn-secondary btn-sm" data-expand-button ${l} data-index="${i}">Expand</button></td>`)}),a.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-expand-button]")){const i=e.target.closest("[data-expand-button]"),l=i.closest("tr");i.toggleAttribute("aria-expanded"),l.getAttribute("data-view")=="full"?l.setAttribute("data-view","default"):l.setAttribute("data-view","full"),i.blur(),t.dispatchEvent(new CustomEvent("row-expanded",{detail:{row:i.getAttribute("data-index")}}))}})},k=(t,a)=>{let e=0;Array.from(a.querySelectorAll("tbody tr")).forEach(i=>{const l=window.getComputedStyle(document.querySelector("html")),b=i.querySelector(":scope > *:last-child > *:first-child");if(b){b.classList.add("text-nowrap");let o=b.offsetWidth/parseFloat(l.fontSize);o+=1.8,e=e>o?e:o}}),t.style.setProperty("--cta-width",`${e}rem`)},A=(t,a)=>{function e(){Array.from(a.querySelectorAll("tr")).forEach(i=>{const l=i.offsetHeight;i.style.setProperty("--row-height",`${l}px`)})}new ResizeObserver(e).observe(a)},L=(t,a)=>{if(t.querySelector("iam-actionbar[data-selectall]")||document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`)){const e=t.querySelector("iam-actionbar[data-selectall]")?t.querySelector("iam-actionbar[data-selectall]"):document.querySelector(`iam-actionbar[data-for='${t.getAttribute("id")}']`);_(t,a,e)}t.querySelectorAll(".dialog__wrapper .btn-compact").forEach(e=>{e.classList.add("btn-sm"),e.classList.add("m-0");const i=e.closest("tr"),l=e.closest("td"),o=Array.prototype.slice.call(i.children).indexOf(l);l.classList.add("td--fixed"),a.querySelector(`thead tr th:nth-child(${o+1})`).classList.add("th--fixed")})},_=(t,a,e)=>{Array.from(a.querySelectorAll("thead tr")).forEach(i=>{i.querySelector(".expand-button-heading")?i.querySelector(".expand-button-heading").insertAdjacentHTML("afterend",'<th class="th--fixed"></th>'):i.insertAdjacentHTML("afterbegin",'<th class="th--fixed"></th>')}),Array.from(a.querySelectorAll("tbody tr")).forEach((i,l)=>{if(i.setAttribute("data-index",l+1),!i.querySelector(".selectrow")){const b=`row${u(l)}`;i.querySelector(".td--expand")?i.querySelector(".td--expand").insertAdjacentHTML("afterend",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${b}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${b}"><span class="visually-hidden">Select row</span></label></td>`):i.insertAdjacentHTML("afterbegin",`<td class="td--fixed selectrow selected"><input type="checkbox" name="row" id="${b}" ${i.hasAttribute("data-selected")?'checked="true"':""}/><label for="${b}"><span class="visually-hidden">Select row</span></label></td>`)}}),a.addEventListener("change",i=>{if(i&&i.target instanceof HTMLElement&&i.target.closest(".selectrow input")){const l=i.target.closest(".selectrow input"),b=i.target.closest("tr"),o=a.querySelectorAll('.selectrow input[type="checkbox"]').length,n=a.querySelectorAll('.selectrow input[type="checkbox"]:checked').length;e.setAttribute("data-selected",o==n?"all":n);const s=new CustomEvent("row-selected",{detail:{rowIndex:b.getAttribute("data-index"),checked:!!l.checked}});t.dispatchEvent(s)}}),e.addEventListener("selected",i=>{if(i.detail.selected=="0"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(b=>{b.checked=!1});const l=new CustomEvent("all-rows-unselected");t.dispatchEvent(l)}else if(i.detail.selected=="all"){Array.from(a.querySelectorAll('.selectrow input[type="checkbox"]')).forEach(b=>{b.checked=!0});const l=new CustomEvent("all-rows-selected");t.dispatchEvent(l)}})},S=(t,a,e,i)=>{e.setAttribute("method","get");const l=t.querySelector("iam-actionbar");l&&l.addEventListener("change",b=>{e.submit()})};class q extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
5
|
+
<style>
|
|
6
|
+
:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid):not(iam-table):not(.table__wrapper){padding-inline:var(--mh-padding-inline, 0);margin-inline:calc(var(--mh-padding-inline, 0)*-1)}:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid)::before{top:calc(100% - 1.5rem);bottom:0;left:0;right:0;height:1.5rem;position:sticky;display:block;background:linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);z-index:2;margin-bottom:-1.5rem}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid){overflow:auto;overscroll-behavior:contain}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid)::before{content:""}.mh-sm{max-height:calc(12.5rem - var(--mh-modifier, 0rem))}.mh-md{max-height:calc(25rem - var(--mh-modifier, 0rem))}.mh-lg{max-height:calc(37.5rem - var(--mh-modifier, 0rem))}.mh-fluid{max-height:100%}@media screen and (min-width: 36em){:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg)::before{content:""}.mh-sm-sm{max-height:calc(12.5rem - var(--mh-modifier, 0rem))}.mh-sm-md{max-height:calc(25rem - var(--mh-modifier, 0rem))}.mh-sm-lg{max-height:calc(37.5rem - var(--mh-modifier, 0rem))}}@media screen and (min-width: 62em){:is(.mh-md-sm,.mh-md-md,.mh-md-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-md-sm,.mh-md-md,.mh-md-lg)::before{content:""}.mh-md-sm{max-height:calc(12.5rem - var(--mh-modifier, 0rem))}.mh-md-md{max-height:calc(25rem - var(--mh-modifier, 0rem))}.mh-md-lg{max-height:calc(37.5rem - var(--mh-modifier, 0rem))}}:host{container-type:inline-size;display:block}.table__container{--wrapper-padding: 2rem;--bg-colour: #ffffff;display:block;background:#fff;padding:var(--wrapper-padding);box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:0.625rem;margin-bottom:2rem;overflow:hidden}.table__container:before{display:none !important}@media screen and (prefers-color-scheme: dark){.table__container{background:var(--colour-canvas-2)}}@media(forced-colors: active){.table__container{--wrapper-padding: 0;background:var(--colour-canvas-2)}}:host(.mh-sm){max-height:none !important}:host(.mh-md){max-height:none !important}:host(.mh-lg){max-height:none !important}.table__wrapper{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}@container (width < 23.4375em){:host(:not(.table--fullwidth)) .table__container{margin-left:-1.5rem;margin-right:-1.5rem;margin-bottom:0;background:var(--colour-canvas-2);border-radius:0;background:none;padding:0;box-shadow:none;overflow:visible}:host(:not(.table--fullwidth)) .table__container .table__wrapper{overflow:hidden;max-height:none !important}:host(:not(.table--fullwidth)) .table__container ::slotted(table){overflow:visible !important;margin-inline:1.5rem;margin-bottom:1.5rem !important;width:calc(100% - 3rem) !important;display:block}:host(:not(.table--fullwidth)) .table__container .table--cta{border-bottom:0}:host(:not(.table--fullwidth)) .table__container .table--cta:after{content:none;display:none !important}}@container (width > 23.4375em){:host{--cta-width: 8rem}:host(.table--loading){--cta-width: 1.5rem !important}.table--cta{position:relative}.table--cta .table__wrapper{overflow-y:hidden;margin-bottom:0}}.table__wrapper:is(.mh-sm,.mh-md,.mh-lg){position:relative;overflow:auto}.table__wrapper:is(.mh-sm,.mh-md,.mh-lg)::before{top:calc(100% - 1.2rem);bottom:2px;height:1.2rem;border-bottom:2px solid var(--colour-border);margin-bottom:-1.2rem}@container (width < 23.4375em){.table__wrapper.has-actionbar{margin-top:calc(-100vh + 6.75rem) !important}}:host(.table--loading){pointer-events:none;position:relative}:host(.table--loading) ::slotted(table){min-height:20rem;opacity:.5}:host(.table--loading)::after{content:"Loading...";position:absolute;top:6.25rem;left:50%;transform:translate(-50%, 0);font-weight:bold;color:var(--colour-heading);font-size:1.5rem;text-shadow:0px 0px 10px var(--colour-canvas-2);padding-inline:2rem;text-shadow:0px 0px 10px var(--colour-canvas-2);background:radial-gradient(var(--colour-canvas-2), transparent)}/*# sourceMappingURL=assets/css/components/table.component.css.map */
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
10
|
+
</style>
|
|
11
|
+
<div class="table__container">
|
|
12
|
+
<slot name="before"></slot>
|
|
13
|
+
<div class="table--cta">
|
|
14
|
+
<div class="table__wrapper">
|
|
15
|
+
<slot></slot>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
<iam-pagination part="pagination" class="pagination--table" ></iam-pagination>
|
|
19
|
+
</div>
|
|
20
|
+
`,this.shadowRoot.appendChild(a.content.cloneNode(!0)),!document.getElementById("tableSingleExtras")&&!document.getElementById("tableExtras")&&document.head.insertAdjacentHTML("beforeend",`<style id="tableSingleExtras">:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit){--hover-background: var(--colour-light);--row-bg: var(--colour-canvas-2)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) table{margin-bottom:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) td{background-color:var(--row-bg)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tr td p{min-width:10rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tbody tr{background:var(--row-bg)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tbody tr:is(:hover,:focus-within,.hover){--bg-colour-rgb: 238, 238, 238;--row-bg: var(--hover-background);background:var(--row-bg)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) table:has(tr.show) tbody tr:not(.show){display:none !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) td:has([data-expand-button]),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) .expand-button-heading{display:none}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) td:has([data-expand-button]){height:0;padding:0;position:relative;display:block !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) td:has([data-expand-button])+td{border-top:none !important;padding-top:0 !important;padding-right:3rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) td:has([data-expand-button])+.td--fixed+td{border-top:none !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) [data-expand-button]{top:0;right:0;background:rgba(0,0,0,0) !important;border:none;position:absolute;overflow:hidden;--compact-size: 2rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF055";font-weight:300 !important;font-size:1.75rem;line-height:var(--compact-size) !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth):not(.table--fullwidth) [data-expand-button][aria-expanded]:before{content:"\uF056";font-weight:900 !important}}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) thead{display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tbody{--status-pt: 2.5rem;display:block;overflow:visible}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tbody tr td:first-child{padding-top:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tr{display:block;position:relative;border:none;background:var(--row-bg);padding:var(--wrapper-padding);box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:0.5rem;height:auto}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tr+tr{margin-top:2rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tr:is(:hover,:focus,.hover){--row-bg: var(--colour-canvas-2)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) td:has([data-expand-button]){display:block}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) :is(td,th){display:block;border-color:var(--colour-border);padding-right:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) :is(td,th):nth-child(1){border-top:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) :is(td,th)[data-label]:not([data-label=""]):before{content:attr(data-label);color:var(--colour-heading);padding:0 0 0.375rem 0;margin-bottom:0;display:block;font-weight:bold}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) td:first-child::after{top:1.75rem !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) td::after{top:2.5rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) .td--fixed{padding-right:50%}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tbody tr td:not(:first-child){border-top:var(--border-width) solid currentColor;border-color:var(--colour-border) !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tbody tr:not([data-view=full]) td:not(.td--fixed)+td:not(.td--fixed)+td+td{display:none}}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth).table--cta tbody tr td:last-child{display:block !important}}@container (width > 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta{padding-right:calc(var(--wrapper-padding) + 1.5rem)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta tr>th:nth-last-child(2),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta tr>td:nth-last-child(2){padding-right:var(--cta-width)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta tr>*:not(:first-child):last-child{position:absolute;left:calc(100% - var(--cta-width));top:auto;background:rgba(0,0,0,0);width:var(--cta-width);min-height:calc(var(--row-height) - 2px);text-align:right;background:linear-gradient(90deg, transparent 0%, var(--row-bg, var(--colour-canvs-2)) 1.25rem);cursor:default;padding-bottom:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta tr>*:not(:first-child):last-child a{white-space:nowrap;padding-right:.2rem;padding-bottom:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--cta tbody tr:hover>*:not(:first-child):last-child{background:linear-gradient(90deg, transparent 0%, var(--row-bg, var(--colour-canvs-2)) 1.25rem)}}table .hide-status:after{display:none}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],[data-content=successful],[data-content=failed],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)){position:relative;padding-left:1.5rem}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],[data-content=successful],[data-content=failed],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty))::before{margin-left:-1.5rem !important}table :not(.hide-status):is([data-content=low],[data-content=medium],[data-content=high],[data-content=unknown],[data-content=due],[data-content=overdue],[data-content=incomplete],[data-content="requires approval"],[data-content=upcoming],[data-content="approval required"],[data-content=warning],[data-content=verified],[data-content="not started"],[data-content="to do"],[data-content="on track"],[data-content=completed],[data-content=complete],[data-content=successful],[data-content=failed],.alert-status:not([data-content="0"]):not([data-content=""]):not(:empty)):after{font-family:"Font Awesome 6 Pro";position:absolute;top:var(--status-pt, 1rem);left:0;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block}table [data-content=high]:after{content:"\uF325";font-weight:normal;color:var(--colour-danger)}table [data-content=medium]:after{content:"\uF7A4";font-weight:normal;color:var(--colour-warning)}table [data-content=low]:after{content:"\uE404";font-weight:normal;color:var(--colour-complete)}table [data-content=unknown]:after{content:"\uE404";font-weight:normal;color:var(--colour-muted)}table :is([data-content=overdue],[data-content=due],[data-content=incomplete]):after{content:"\uF024";color:var(--colour-danger)}table :is([data-content="not started"],[data-content="to do"],[data-content="on track"]):after{content:"\uF024";color:var(--colour-muted)}table :is([data-content="requires approval"],[data-content="approval required"],[data-content="action required"],[data-content=upcoming]):after{content:"\uF024";color:var(--colour-warning)}table :is([data-content=warning]):after{content:"\uF071";color:var(--colour-warning)}table :is([data-content="manually verified"],[data-content=verified],[data-content=completed],[data-content=complete],[data-content=successful]):after{content:"\uF00C";font-weight:normal;color:var(--colour-complete)}table :is([data-content=failed]):after{content:"\uF00D";font-weight:normal;color:var(--colour-danger)}table .alert-status:not([data-content="0"]):not([data-content=""]):not(:empty):after{content:"\uF0F3";color:var(--colour-primary)}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth).table--cta tbody tr td:last-child{display:block !important}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) iam-actionbar{margin:0 1.5rem 1rem 1.5rem}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) iam-actionbar{box-shadow:0px 6px 12px rgba(0,0,0,.11);border-radius:.5rem}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth:has(iam-actionbar){padding-top:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth iam-actionbar{margin:-2rem -2rem 2rem -2rem;box-shadow:none;border-radius:0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth iam-actionbar:has(+table input:checked){margin:-2rem -2rem 2rem -2rem;box-shadow:none;border-radius:0}@media screen and (prefers-color-scheme: light){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth iam-actionbar:has(+table input:checked){background-color:#e6eaec}}.actionbar__sticky-wrapper{container-type:inline-size}@media screen and (min-width: 36em){.actionbar__sticky-wrapper{padding:0 !important}}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):is(.actionbar__sticky-wrapper)>.actionbar__sticky{display:block;position:sticky;left:0;top:calc(var(--sticky-padding) + 1rem);z-index:var(--index-menu);pointer-events:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):is(.actionbar__sticky-wrapper)>.actionbar__sticky:after{content:"";display:block;width:100%;height:calc(100vh - 6.75rem);pointer-events:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):is(.actionbar__sticky-wrapper)>.actionbar__sticky+*{margin-top:calc(-100vh + 6.75rem)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):is(.actionbar__sticky)>iam-actionbar{pointer-events:all !important;display:block;border:none;background:var(--colour-canvas-2);border-radius:.5rem;margin-bottom:1.5rem}}@container (width > 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth iam-actionbar,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) iam-actionbar{margin-left:-2rem;margin-right:-2rem;margin-top:-2rem;margin-bottom:2rem}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.75rem !important;left:.25rem !important;--border-radius: 0.25rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100vw;height:100%;max-height:var(--row-height);max-width:100vw;cursor:pointer;pointer-events:all;top:auto;margin:0;margin-top:0rem}@container (width > 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tr:has([type=checkbox]:checked){height:calc(4.625rem - 2px)}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tr:has([type=checkbox]:hover,[type=checkbox]:focus){--row-bg: #eeeeee}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) tr:has([type=checkbox]:hover:checked,[type=checkbox]:focus:checked,[type=checkbox]:checked){--row-bg: #e0e0e0}@container (width < 23.4375em){@media screen and (prefers-color-scheme: light){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) iam-actionbar{background-color:#e6eaec}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .actionbar__sticky+*{margin-top:0 !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick){padding-left:0 !important;margin:0 !important;min-height:2rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick):before,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) input:is([type=radio],[type=checkbox])+label:not(.radio--tick):after{top:.25rem !important;left:0 !important}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):has([type=checkbox]:checked) tr:has([type=checkbox]) [type=checkbox]{width:100%;height:100%;max-height:100%;max-width:100%;margin-top:-2rem}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] td:has([data-expand-button]),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] .expand-button-heading{display:table-cell}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth [data-expand-button]{margin:.25rem 0 0 0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth [data-expand-button]:not(:hover,:focus){background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF078";font-weight:500}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth [data-expand-button][aria-expanded]:before{content:"\uF077"}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth tr:not(:has(p)) [data-expand-button]{display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable].table--fullwidth tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:10rem}@container (width > 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] [data-expand-button]{margin:.25rem 0 0 0}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] [data-expand-button]:not(:hover,:focus){background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] [data-expand-button]:before{font-family:"Font Awesome 6 Pro";content:"\uF078";font-weight:500}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] [data-expand-button][aria-expanded]:before{content:"\uF077"}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] tr:not(:has(p)) [data-expand-button]{display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit)[data-expandable] tr:not([data-view=full]) td p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:10rem}}@container (width < 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) tr{position:relative}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):not(.table--fullwidth) .td--fixed+.td--fixed{border:none}}@container (width > 23.4375em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed{position:absolute;left:auto;top:auto;z-index:3;padding:0 0 0 0;min-width:3.375rem;height:calc(var(--row-height) - 2px);text-align:left;background:var(--row-bg)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed:has([open]),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed:has([open]){z-index:4}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed:has(+th:not(.th--fixed)),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed:has(+td:not(.td--fixed)){background:linear-gradient(90deg, var(--row-bg) calc(100% - 1rem), transparent 100%)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed+th:not(.th--fixed),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed+td:not(.td--fixed){padding-left:calc(3.375rem)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed+.th--fixed,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed+.td--fixed{left:3rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed+.th--fixed+th:not(.th--fixed),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed+.td--fixed+td:not(.td--fixed){padding-left:calc(6.375rem)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed+.th--fixed+.th--fixed,:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed+.td--fixed+.td--fixed{left:6rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .th--fixed+.th--fixed+.th--fixed+th:not(.th--fixed),:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .td--fixed+.td--fixed+.td--fixed+td:not(.td--fixed){padding-left:calc(9.375rem)}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .dialog__wrapper{z-index:10}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .dialog__wrapper:has([open]){z-index:20}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) td:has(.dialog__wrapper){padding-top:.25rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth th[data-sort]{background-repeat:no-repeat;background-size:1rem 1rem;background-position:calc(100% - .5rem) 50%;padding-top:.75rem;cursor:pointer}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth th[data-sort]:hover{background-color:var(--colour-light);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3e%3c!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L128 370.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96zm352-333.3c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L448 141.3 448 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-306.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96z'/%3e%3c/svg%3e")}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth:has(th[data-sort]) :is(th,td){padding-left:.25rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth th[data-sort][data-order-by=asc]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3e%3c!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M209.4 39.4C204.8 34.7 198.6 32 192 32s-12.8 2.7-17.4 7.4l-168 176c-9.2 9.6-8.8 24.8 .8 33.9s24.8 8.8 33.9-.8L168 115.9 168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-340.1L342.6 248.6c9.2 9.6 24.3 9.9 33.9 .8s9.9-24.3 .8-33.9l-168-176z'/%3e%3c/svg%3e")}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit).table--fullwidth th[data-sort][data-order-by=desc]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3e%3c!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M174.6 472.6c4.5 4.7 10.8 7.4 17.4 7.4s12.8-2.7 17.4-7.4l168-176c9.2-9.6 8.8-24.8-.8-33.9s-24.8-8.8-33.9 .8L216 396.1 216 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 340.1L41.4 263.4c-9.2-9.6-24.3-9.9-33.9-.8s-9.9 24.3-.8 33.9l168 176z'/%3e%3c/svg%3e")}@container (width >= 32em){:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) th[data-sort]{background-repeat:no-repeat;background-size:1rem 1rem;background-position:calc(100% - .5rem) 50%;padding-top:.75rem;cursor:pointer}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) th[data-sort]:hover{background-color:var(--colour-light);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3e%3c!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L128 370.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96zm352-333.3c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L448 141.3 448 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-306.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96z'/%3e%3c/svg%3e")}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit):has(th[data-sort]) :is(th,td){padding-left:.25rem}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) th[data-sort][data-order-by=asc]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3e%3c!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M209.4 39.4C204.8 34.7 198.6 32 192 32s-12.8 2.7-17.4 7.4l-168 176c-9.2 9.6-8.8 24.8 .8 33.9s24.8 8.8 33.9-.8L168 115.9 168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-340.1L342.6 248.6c9.2 9.6 24.3 9.9 33.9 .8s9.9-24.3 .8-33.9l-168-176z'/%3e%3c/svg%3e")}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) th[data-sort][data-order-by=desc]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3e%3c!--!Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2025 Fonticons, Inc.--%3e%3cpath d='M174.6 472.6c4.5 4.7 10.8 7.4 17.4 7.4s12.8-2.7 17.4-7.4l168-176c9.2-9.6 8.8-24.8-.8-33.9s-24.8-8.8-33.9 .8L216 396.1 216 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 340.1L41.4 263.4c-9.2-9.6-24.3-9.9-33.9-.8s-9.9 24.3-.8 33.9l168 176z'/%3e%3c/svg%3e")}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col1]+table :is(thead,tbody) :is(th,td):nth-child(1){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col2]+table :is(thead,tbody) :is(th,td):nth-child(2){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col3]+table :is(thead,tbody) :is(th,td):nth-child(3){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col4]+table :is(thead,tbody) :is(th,td):nth-child(4){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col5]+table :is(thead,tbody) :is(th,td):nth-child(5){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col6]+table :is(thead,tbody) :is(th,td):nth-child(6){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col7]+table :is(thead,tbody) :is(th,td):nth-child(7){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col8]+table :is(thead,tbody) :is(th,td):nth-child(8){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col9]+table :is(thead,tbody) :is(th,td):nth-child(9){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col10]+table :is(thead,tbody) :is(th,td):nth-child(10){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col11]+table :is(thead,tbody) :is(th,td):nth-child(11){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col12]+table :is(thead,tbody) :is(th,td):nth-child(12){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col13]+table :is(thead,tbody) :is(th,td):nth-child(13){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col14]+table :is(thead,tbody) :is(th,td):nth-child(14){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col15]+table :is(thead,tbody) :is(th,td):nth-child(15){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col16]+table :is(thead,tbody) :is(th,td):nth-child(16){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col17]+table :is(thead,tbody) :is(th,td):nth-child(17){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col18]+table :is(thead,tbody) :is(th,td):nth-child(18){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col19]+table :is(thead,tbody) :is(th,td):nth-child(19){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col20]+table :is(thead,tbody) :is(th,td):nth-child(20){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col21]+table :is(thead,tbody) :is(th,td):nth-child(21){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col22]+table :is(thead,tbody) :is(th,td):nth-child(22){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col23]+table :is(thead,tbody) :is(th,td):nth-child(23){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col24]+table :is(thead,tbody) :is(th,td):nth-child(24){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col25]+table :is(thead,tbody) :is(th,td):nth-child(25){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col26]+table :is(thead,tbody) :is(th,td):nth-child(26){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col27]+table :is(thead,tbody) :is(th,td):nth-child(27){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col28]+table :is(thead,tbody) :is(th,td):nth-child(28){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col29]+table :is(thead,tbody) :is(th,td):nth-child(29){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) [data-hide-col30]+table :is(thead,tbody) :is(th,td):nth-child(30){display:none}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit) .table--filtered tbody tr:not(.filtered--show){display:none !important}iam-table-basic:is(.mh-lg,.mh-md,.mh-sm) thead{position:sticky;top:0;z-index:9999}iam-table-basic:is(.mh-lg,.mh-md,.mh-sm) thead tr{background:var(--row-bg);background:linear-gradient(0deg, var(--colour-primary) 2px, var(--row-bg) 2px);border:none}/*# sourceMappingURL=assets/css/components/table.global.css.map */
|
|
21
|
+
</style>`)}connectedCallback(){const a=new URLSearchParams(window.location.search),e=this.shadowRoot.querySelector("iam-pagination"),i=this.querySelector("table"),l=f(this,i);a.has("page")&&this.setAttribute("data-page",a.get("page")),a.has("show")&&this.setAttribute("data-show",a.get("show")),a.has("page")&&e.setAttribute("data-page",a.get("page")),a.has("show")&&e.setAttribute("data-show",a.get("show")),w(this,i,l,e),L(this,i),S(this,i,l),g(this,i,l,e,()=>{l.submit()})}}export{q as default};
|
|
22
|
+
//# sourceMappingURL=table-submit.component.min.js.map
|