@iamproperty/components 7.1.0--beta7 → 7.2.1--beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/components/actionbar.component.css +1 -0
- package/assets/css/components/actionbar.component.css.map +1 -0
- package/assets/css/components/actionbar.global.css +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/address-lookup.css +1 -1
- package/assets/css/components/address-lookup.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/bento-grid.component.css +1 -0
- package/assets/css/components/bento-grid.component.css.map +1 -0
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/carousel.config.css +1 -1
- package/assets/css/components/carousel.config.css.map +1 -1
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/charts.css +1 -1
- package/assets/css/components/charts.css.map +1 -1
- package/assets/css/components/charts.module.css +1 -1
- package/assets/css/components/charts.module.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -0
- package/assets/css/components/doughnutchart.component.css.map +1 -0
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/inline-edit.preload.css +1 -1
- package/assets/css/components/inline-edit.preload.css.map +1 -1
- package/assets/css/components/marketing.css.map +1 -1
- package/assets/css/components/menu.component.css +1 -0
- package/assets/css/components/menu.component.css.map +1 -0
- package/assets/css/components/menu.css +1 -0
- package/assets/css/components/menu.css.map +1 -0
- package/assets/css/components/multi-step.component.css.map +1 -1
- package/assets/css/components/multiselect.preload.css +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -0
- package/assets/css/components/nav.component.css.map +1 -0
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.old.css +1 -1
- package/assets/css/components/nav.old.css.map +1 -1
- package/assets/css/components/nav.preload.css +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/property-searchbar.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/snapshot.css.map +1 -1
- package/assets/css/components/stepper.css.map +1 -1
- package/assets/css/components/table-basic.component.css +1 -0
- package/assets/css/components/table-basic.component.css.map +1 -0
- package/assets/css/components/table-basic.global.css +1 -0
- package/assets/css/components/table-basic.global.css.map +1 -0
- package/assets/css/components/table.component.css +1 -0
- package/assets/css/components/table.component.css.map +1 -0
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -0
- package/assets/css/components/tabs.component.css.map +1 -0
- package/assets/css/components/tabs.config.css +1 -0
- package/assets/css/components/tabs.config.css.map +1 -0
- package/assets/css/components/tabs.css +1 -1
- package/assets/css/components/tabs.css.map +1 -1
- package/assets/css/components/testimonial.css.map +1 -1
- package/assets/css/components/timeline.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/mobile-core.min.css +1 -0
- package/assets/css/mobile-core.min.css.map +1 -0
- package/assets/css/mobile.min.css +1 -0
- package/assets/css/mobile.min.css.map +1 -0
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/_global.js +0 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +86 -8
- package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.js +2 -3
- package/assets/js/components/barchart/barchart.component.min.js +8 -4
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
- package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
- package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
- package/assets/js/components/card/card.component.js +10 -13
- package/assets/js/components/card/card.component.min.js +7 -7
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +4 -5
- package/assets/js/components/carousel/carousel.component.min.js +4 -4
- package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
- package/assets/js/components/chart/chart.component.js +1 -5
- package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
- package/assets/js/components/fileupload/fileupload.component.js +2 -3
- package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
- package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
- package/assets/js/components/filter-card/filter-card.component.js +3 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
- package/assets/js/components/filterlist/filterlist.component.js +0 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
- package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
- package/assets/js/components/header/header.component.js +0 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js.map +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.js +7 -8
- package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/marketing/marketing.component.js +0 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
- package/assets/js/components/menu/menu.component.js +200 -0
- package/assets/js/components/menu/menu.component.min.js +77 -0
- package/assets/js/components/menu/menu.component.min.js.map +1 -0
- package/assets/js/components/multi-step/multi-step.component.js +10 -10
- package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
- package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
- package/assets/js/components/multiselect/multiselect.component.js +10 -10
- package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +7 -7
- package/assets/js/components/nav/nav.component.min.js +7 -7
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +3 -3
- package/assets/js/components/notification/notification.component.min.js +4 -4
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.js +14 -8
- package/assets/js/components/pagination/pagination.component.min.js +5 -5
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.js +6 -8
- package/assets/js/components/record-card/record-card.component.min.js +4 -4
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +9 -6
- package/assets/js/components/search/search.component.min.js +8 -5
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.js +8 -8
- package/assets/js/components/slider/slider.component.min.js +5 -5
- package/assets/js/components/slider/slider.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.js +36 -200
- package/assets/js/components/table/table.component.min.js +13 -23
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.js +46 -0
- package/assets/js/components/table-ajax/table-ajax.component.min.js +22 -0
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -0
- package/assets/js/components/table-basic/table-basic.component.js +46 -0
- package/assets/js/components/table-basic/table-basic.component.min.js +22 -0
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.js +77 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +22 -0
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -0
- package/assets/js/components/table-submit/table-submit.component.js +55 -0
- package/assets/js/components/table-submit/table-submit.component.min.js +22 -0
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -0
- package/assets/js/components/tabs/tabs.component.js +3 -2
- package/assets/js/components/tabs/tabs.component.min.js +6 -4
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.js +4 -3
- package/assets/js/components/video-card/video-card.component.min.js +3 -3
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/modules/applied-filters.js +8 -9
- package/assets/js/modules/carousel.js +9 -10
- package/assets/js/modules/chart.js +5 -3
- package/assets/js/modules/chart.module.js +108 -1
- package/assets/js/modules/dialogs.js +6 -7
- package/assets/js/modules/drawer.js +1 -2
- package/assets/js/modules/dynamicEvents.js +7 -8
- package/assets/js/modules/fileupload.js +7 -7
- package/assets/js/modules/filterlist.js +3 -4
- package/assets/js/modules/form.js +12 -13
- package/assets/js/modules/helpers.js +7 -5
- package/assets/js/modules/inputs.js +6 -9
- package/assets/js/modules/nav.js +3 -4
- package/assets/js/modules/notification.js +2 -3
- package/assets/js/modules/orderablelist.js +0 -1
- package/assets/js/modules/table.js +604 -317
- package/assets/js/modules/tabs.js +46 -19
- package/assets/js/scripts.bundle.js +3 -3
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/scripts.js +71 -6
- package/assets/js/tests/card.spec.js +14 -0
- package/assets/js/tests/carousel.spec.js +60 -0
- package/assets/js/tests/chart.spec.js +7 -5
- package/assets/js/tests/fileupload.spec.js +22 -0
- package/assets/js/tests/multistep.spec.js +68 -0
- package/assets/js/tests/table.spec.js +0 -31
- package/assets/sass/_bs_grid.scss +4 -1
- package/assets/sass/_components.scss +326 -100
- package/assets/sass/_corefiles.scss +42 -18
- package/assets/sass/_elements.scss +98 -18
- package/assets/sass/_example.scss +61 -0
- package/assets/sass/_func.scss +5 -13
- package/assets/sass/_functions/bs_utilities.scss +43 -39
- package/assets/sass/_functions/functions.scss +66 -52
- package/assets/sass/_functions/mixins.scss +84 -100
- package/assets/sass/_functions/utility-mixins.scss +56 -44
- package/assets/sass/_functions/variables.scss +90 -1659
- package/assets/sass/_functions/variables_old.scss +1701 -0
- package/assets/sass/_grid.scss +19 -5
- package/assets/sass/_tests/func.spec.scss +1 -37
- package/assets/sass/_tests/mixins.spec.scss +1 -77
- package/assets/sass/_tests/typography.spec.scss +1 -1
- package/assets/sass/_utilities.scss +15 -5
- package/assets/sass/_utility-mixins.scss +6 -1
- package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +83 -16
- package/assets/sass/components/actionbar.global.scss +12 -68
- package/assets/sass/components/address-lookup.scss +6 -0
- package/assets/sass/components/barchart.component.scss +7 -20
- package/assets/sass/components/bento-grid.component.scss +91 -0
- package/assets/sass/components/carousel.config.scss +64 -58
- package/assets/sass/components/charts.config.scss +73 -67
- package/assets/sass/components/charts.module.scss +128 -97
- package/assets/sass/components/charts.scss +43 -42
- package/assets/sass/components/collapsible-side.scss +29 -27
- package/assets/sass/components/doughnutchart.component.scss +205 -0
- package/assets/sass/components/fileupload.scss +4 -3
- package/assets/sass/components/header.scss +5 -5
- package/assets/sass/components/inline-edit.preload.scss +108 -102
- package/assets/sass/components/menu.component.scss +101 -0
- package/assets/sass/components/menu.scss +21 -0
- package/assets/sass/components/multi-step.component.scss +5 -3
- package/assets/sass/components/multiselect.preload.scss +36 -30
- package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
- package/assets/sass/components/nav.docs.scss +1 -1
- package/assets/sass/components/nav.global.scss +13 -11
- package/assets/sass/components/nav.old.scss +21 -24
- package/assets/sass/components/nav.preload.scss +40 -34
- package/assets/sass/components/notification.scss +9 -5
- package/assets/sass/components/pagination.scss +7 -0
- package/assets/sass/components/property-searchbar.scss +7 -7
- package/assets/sass/components/slider.scss +2 -0
- package/assets/sass/components/snapshot.scss +2 -2
- package/assets/sass/components/stepper.scss +7 -7
- package/assets/sass/components/{table.scss → table-basic.component.scss} +25 -68
- package/assets/sass/components/table-basic.global.scss +355 -0
- package/assets/sass/components/table.component.scss +40 -0
- package/assets/sass/components/table.global.scss +215 -418
- package/assets/sass/components/tabs.component.scss +5 -0
- package/assets/sass/components/tabs.config.scss +27 -0
- package/assets/sass/components/tabs.scss +40 -4
- package/assets/sass/components/testimonial.scss +7 -7
- package/assets/sass/components/timeline.scss +1 -1
- package/assets/sass/core.scss +13 -4
- package/assets/sass/elements/admin-panel.scss +199 -185
- package/assets/sass/elements/badge-tag.scss +87 -81
- package/assets/sass/elements/brand.scss +67 -61
- package/assets/sass/elements/buttons--action.scss +55 -0
- package/assets/sass/elements/buttons--compact.scss +135 -0
- package/assets/sass/elements/buttons--global.scss +323 -0
- package/assets/sass/elements/buttons--secondary.scss +24 -0
- package/assets/sass/elements/buttons--tertiary.scss +57 -0
- package/assets/sass/elements/buttons.scss +29 -503
- package/assets/sass/elements/container.scss +157 -151
- package/assets/sass/elements/details.scss +147 -138
- package/assets/sass/elements/dialog.scss +36 -30
- package/assets/sass/elements/forms.scss +1061 -1047
- package/assets/sass/elements/icons.scss +23 -17
- package/assets/sass/elements/links.scss +131 -116
- package/assets/sass/elements/lists.scss +270 -264
- package/assets/sass/elements/media.scss +19 -13
- package/assets/sass/elements/modal.scss +336 -330
- package/assets/sass/elements/popover.scss +163 -152
- package/assets/sass/elements/progress.scss +173 -162
- package/assets/sass/elements/table.element.scss +116 -108
- package/assets/sass/elements/tooltips.scss +87 -80
- package/assets/sass/elements/type.scss +172 -160
- package/assets/sass/email.scss +0 -1
- package/assets/sass/error.scss +15 -13
- package/assets/sass/foundations/reboot.scss +176 -170
- package/assets/sass/foundations/root.scss +136 -125
- package/assets/sass/helpers/max-height.scss +2 -2
- package/assets/sass/main.scss +14 -6
- package/assets/sass/mobile-core.scss +14 -0
- package/assets/sass/mobile.scss +16 -0
- package/assets/sass/templates/auth.scss +88 -83
- package/assets/sass/templates/form.scss +68 -59
- package/assets/ts/components/_global.ts +2 -3
- package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
- package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
- package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
- package/assets/ts/components/barchart/barchart.component.ts +3 -5
- package/assets/ts/components/bento-grid/README.md +31 -0
- package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
- package/assets/ts/components/card/card.component.ts +13 -16
- package/assets/ts/components/carousel/carousel.component.ts +5 -7
- package/assets/ts/components/chart/chart.component.ts +4 -9
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
- package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
- package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
- package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
- package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
- package/assets/ts/components/header/header.component.ts +1 -3
- package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
- package/assets/ts/components/marketing/marketing.component.ts +1 -3
- package/assets/ts/components/menu/menu.component.ts +222 -0
- package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
- package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
- package/assets/ts/components/nav/nav.component.ts +8 -9
- package/assets/ts/components/notification/notification.component.ts +3 -3
- package/assets/ts/components/pagination/pagination.component.ts +24 -12
- package/assets/ts/components/record-card/record-card.component.ts +9 -11
- package/assets/ts/components/search/search.component.ts +12 -9
- package/assets/ts/components/slider/slider.component.ts +9 -10
- package/assets/ts/components/table/table.component.ts +50 -247
- package/assets/ts/components/table-ajax/table-ajax.component.ts +64 -0
- package/assets/ts/components/table-basic/README.md +40 -0
- package/assets/ts/components/table-basic/table-basic.component.ts +56 -0
- package/assets/ts/components/table-no-submit/table-no-submit.component.ts +134 -0
- package/assets/ts/components/table-submit/table-submit.component.ts +64 -0
- package/assets/ts/components/tabs/tabs.component.ts +4 -3
- package/assets/ts/components/video-card/video-card.component.ts +13 -12
- package/assets/ts/modules/applied-filters.ts +10 -11
- package/assets/ts/modules/card.module.ts +1 -1
- package/assets/ts/modules/carousel.ts +13 -15
- package/assets/ts/modules/chart.module.ts +152 -19
- package/assets/ts/modules/chart.ts +26 -24
- package/assets/ts/modules/dialogs.ts +10 -13
- package/assets/ts/modules/drawer.ts +1 -2
- package/assets/ts/modules/dynamicEvents.ts +12 -14
- package/assets/ts/modules/fileupload.ts +10 -10
- package/assets/ts/modules/filterlist.ts +6 -7
- package/assets/ts/modules/form.ts +16 -17
- package/assets/ts/modules/helpers.ts +24 -21
- package/assets/ts/modules/inputs.ts +15 -18
- package/assets/ts/modules/nav.ts +4 -5
- package/assets/ts/modules/notification.ts +7 -8
- package/assets/ts/modules/orderablelist.ts +3 -4
- package/assets/ts/modules/pagination.ts +1 -1
- package/assets/ts/modules/table.ts +726 -356
- package/assets/ts/modules/tabs.ts +59 -20
- package/assets/ts/scripts.ts +72 -6
- package/assets/ts/tests/card.spec.ts +19 -0
- package/assets/ts/tests/carousel.spec.ts +66 -0
- package/assets/ts/tests/chart.spec.ts +9 -6
- package/assets/ts/tests/fileupload.spec.ts +30 -0
- package/assets/ts/tests/multistep.spec.ts +78 -0
- package/assets/ts/tests/table.spec.ts +0 -38
- package/dist/components.es.js +1260 -1063
- package/dist/components.umd.js +468 -198
- package/package.json +44 -49
- package/src/components/BentoGrid/BentoGrid.vue +20 -0
- package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
- package/src/components/FileUpload/FileUpload.vue +4 -1
- package/src/components/Menu/Menu.vue +22 -0
- package/src/components/Table/TableAjax.vue +34 -0
- package/src/components/Table/TableBasic.vue +34 -0
- package/src/components/Table/TableNoSubmit.vue +34 -0
- package/src/components/Table/TableSubmit.vue +34 -0
- package/src/components/Tabs/Tabs.vue +0 -4
- package/src/index.js +25 -19
- package/assets/css/components/actionbar.css +0 -1
- package/assets/css/components/actionbar.css.map +0 -1
- package/assets/css/components/nav.css +0 -1
- package/assets/css/components/nav.css.map +0 -1
- package/assets/css/components/table.css +0 -1
- package/assets/css/components/table.css.map +0 -1
- package/assets/js/components.bundle.js +0 -5
- package/assets/js/components.bundle.js.map +0 -1
- package/assets/js/components.js +0 -57
- package/assets/js/modules/file-upload.js +0 -32
- package/assets/ts/components.ts +0 -62
- package/assets/ts/modules/file-upload.ts +0 -52
- package/dist/style.css +0 -1
- package/src/components/Table/Table.spec.js +0 -47
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
import { getSwipeDirection } from './helpers';
|
|
3
2
|
|
|
4
|
-
export const createTabsLinks = function (tabsElement: Element) {
|
|
5
|
-
const details = tabsElement.querySelectorAll(':scope > details');
|
|
3
|
+
export const createTabsLinks = function (tabsElement: Element): void {
|
|
6
4
|
const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');
|
|
7
|
-
const summaries = tabsElement.querySelectorAll(':scope > details > summary');
|
|
8
5
|
let tabLinks = tabsElement.querySelector(':scope > .tabs__links');
|
|
6
|
+
let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');
|
|
9
7
|
|
|
10
8
|
if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))
|
|
11
9
|
tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');
|
|
@@ -21,10 +19,19 @@ export const createTabsLinks = function (tabsElement: Element) {
|
|
|
21
19
|
tabsElement.prepend(tabLinksWrapper);
|
|
22
20
|
}
|
|
23
21
|
|
|
22
|
+
if (!tabDropdown) {
|
|
23
|
+
tabDropdown = document.createElement('select');
|
|
24
|
+
|
|
25
|
+
tabDropdown.classList.add('tabs__dropdown');
|
|
26
|
+
|
|
27
|
+
tabsElement.prepend(tabDropdown);
|
|
28
|
+
}
|
|
29
|
+
|
|
24
30
|
// Create the tab buttons from the summary titles
|
|
25
31
|
let tabindex = 0;
|
|
26
|
-
detailsORLinks.forEach((element
|
|
32
|
+
detailsORLinks.forEach((element) => {
|
|
27
33
|
let button = document.createElement('button');
|
|
34
|
+
const dropdownOpt = document.createElement('option');
|
|
28
35
|
|
|
29
36
|
if (element.matches('details')) {
|
|
30
37
|
const summary = element.querySelector(':scope > summary');
|
|
@@ -41,6 +48,11 @@ export const createTabsLinks = function (tabsElement: Element) {
|
|
|
41
48
|
button.classList.add('link');
|
|
42
49
|
button.setAttribute('data-index', tabindex);
|
|
43
50
|
button.setAttribute('part', 'tab-link');
|
|
51
|
+
|
|
52
|
+
dropdownOpt.innerHTML = `${summary.innerText}`;
|
|
53
|
+
dropdownOpt.value = summary.innerText.replace(/\s+/g, '-').toLowerCase();
|
|
54
|
+
dropdownOpt.setAttribute('data-index', tabindex);
|
|
55
|
+
|
|
44
56
|
element.setAttribute('tabindex', '-1');
|
|
45
57
|
|
|
46
58
|
if (isDisabled) {
|
|
@@ -54,25 +66,28 @@ export const createTabsLinks = function (tabsElement: Element) {
|
|
|
54
66
|
|
|
55
67
|
button.classList.add('link');
|
|
56
68
|
tabLinks.appendChild(button);
|
|
69
|
+
|
|
70
|
+
tabDropdown.appendChild(dropdownOpt);
|
|
57
71
|
});
|
|
58
72
|
};
|
|
59
73
|
|
|
60
|
-
export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
74
|
+
export const setTabsEventHandlers = function (tabsElement: Element): void {
|
|
61
75
|
const details = tabsElement.querySelectorAll(':scope > details');
|
|
62
76
|
const summaries = tabsElement.querySelectorAll(':scope > details > summary');
|
|
63
77
|
let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');
|
|
64
78
|
let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');
|
|
79
|
+
const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');
|
|
65
80
|
|
|
66
81
|
let nextButton = tabsElement.querySelector(':scope .tabs__next');
|
|
67
82
|
|
|
68
|
-
|
|
83
|
+
let scrollTimeout;
|
|
69
84
|
window.isClicked = false;
|
|
70
85
|
window.isScrolling = false;
|
|
71
86
|
|
|
72
87
|
if (tabsElement.shadowRoot) {
|
|
73
88
|
buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
|
|
74
89
|
buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');
|
|
75
|
-
nextButton = tabsElement.shadowRoot.querySelector('
|
|
90
|
+
nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');
|
|
76
91
|
}
|
|
77
92
|
|
|
78
93
|
// Set the on click for the tab buttons, these will open the details box it matches too
|
|
@@ -95,11 +110,14 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
95
110
|
behavior: 'smooth',
|
|
96
111
|
});
|
|
97
112
|
|
|
98
|
-
|
|
99
|
-
|
|
113
|
+
//Handles showing correct content
|
|
114
|
+
toggleTab(details, button);
|
|
100
115
|
|
|
101
|
-
|
|
102
|
-
|
|
116
|
+
// Data layer Open Event
|
|
117
|
+
window.dataLayer = window.dataLayer || [];
|
|
118
|
+
window.dataLayer.push({
|
|
119
|
+
event: 'openTab',
|
|
120
|
+
tabTitle: button.textContent,
|
|
103
121
|
});
|
|
104
122
|
|
|
105
123
|
if (button.matches(':last-child')) {
|
|
@@ -107,17 +125,12 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
107
125
|
} else {
|
|
108
126
|
nextButton?.removeAttribute('disabled');
|
|
109
127
|
}
|
|
110
|
-
|
|
111
|
-
// Data layer Open Event
|
|
112
|
-
window.dataLayer = window.dataLayer || [];
|
|
113
|
-
window.dataLayer.push({
|
|
114
|
-
event: 'openTab',
|
|
115
|
-
tabTitle: button.textContent,
|
|
116
|
-
});
|
|
117
128
|
});
|
|
129
|
+
|
|
130
|
+
dropdownTabSelector(details, tabDropdown);
|
|
118
131
|
});
|
|
119
132
|
|
|
120
|
-
buttonWrapper.addEventListener('scrollend', (
|
|
133
|
+
buttonWrapper.addEventListener('scrollend', () => {
|
|
121
134
|
clearTimeout(scrollTimeout);
|
|
122
135
|
|
|
123
136
|
scrollTimeout = setTimeout(function () {
|
|
@@ -154,6 +167,7 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
154
167
|
|
|
155
168
|
const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
|
|
156
169
|
const nextTab = currentTab.nextSibling;
|
|
170
|
+
|
|
157
171
|
if (nextTab) nextTab.click();
|
|
158
172
|
});
|
|
159
173
|
|
|
@@ -195,6 +209,31 @@ export const setTabsEventHandlers = function (tabsElement: Element) {
|
|
|
195
209
|
}
|
|
196
210
|
};
|
|
197
211
|
|
|
212
|
+
export const toggleTab = function (details: Array, button: Element): boolean | void {
|
|
213
|
+
details.forEach((detail, detailsIndex) => {
|
|
214
|
+
const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;
|
|
215
|
+
|
|
216
|
+
if (detailsOpen) detail.setAttribute('open', detailsOpen);
|
|
217
|
+
else detail.removeAttribute('open');
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
export const dropdownTabSelector = function (details: Array, dropdown: Element): boolean | void {
|
|
222
|
+
dropdown.addEventListener('change', (e) => {
|
|
223
|
+
e.preventDefault();
|
|
224
|
+
const selected = dropdown.options[dropdown.selectedIndex];
|
|
225
|
+
|
|
226
|
+
toggleTab(details, selected);
|
|
227
|
+
|
|
228
|
+
// Data layer Open Event
|
|
229
|
+
window.dataLayer = window.dataLayer || [];
|
|
230
|
+
window.dataLayer.push({
|
|
231
|
+
event: 'openTab',
|
|
232
|
+
tabTitle: selected.innerText,
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
|
|
198
237
|
export const openFirstTab = function (tabsElement: Element): boolean | void {
|
|
199
238
|
if (!tabsElement.querySelector(':scope > details')) return false;
|
|
200
239
|
|
package/assets/ts/scripts.ts
CHANGED
|
@@ -1,10 +1,42 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
// Modules
|
|
3
|
-
import * as helpers from '
|
|
4
|
-
import extendDialogs from '
|
|
5
|
-
import createDataLayer from '
|
|
6
|
-
import extendInputs from '
|
|
7
|
-
import createDynamicEvents from '
|
|
2
|
+
import * as helpers from './modules/helpers';
|
|
3
|
+
import extendDialogs from './modules/dialogs';
|
|
4
|
+
import createDataLayer from './modules/data-layer';
|
|
5
|
+
import extendInputs from './modules/inputs';
|
|
6
|
+
import createDynamicEvents from './modules/dynamicEvents';
|
|
7
|
+
|
|
8
|
+
const components = [
|
|
9
|
+
'accordion',
|
|
10
|
+
'header',
|
|
11
|
+
'table',
|
|
12
|
+
'table-basic',
|
|
13
|
+
'table-no-submit',
|
|
14
|
+
'tabs',
|
|
15
|
+
'card',
|
|
16
|
+
'filter-card',
|
|
17
|
+
'video-card',
|
|
18
|
+
'record-card',
|
|
19
|
+
'filterlist',
|
|
20
|
+
'applied-filters',
|
|
21
|
+
'pagination',
|
|
22
|
+
'notification',
|
|
23
|
+
'actionbar',
|
|
24
|
+
'nav',
|
|
25
|
+
'collapsible-side',
|
|
26
|
+
'address-lookup',
|
|
27
|
+
'fileupload',
|
|
28
|
+
'search',
|
|
29
|
+
'inline-edit',
|
|
30
|
+
'multiselect',
|
|
31
|
+
'multi-step',
|
|
32
|
+
'menu',
|
|
33
|
+
'slider',
|
|
34
|
+
'carousel',
|
|
35
|
+
'marketing',
|
|
36
|
+
'barchart',
|
|
37
|
+
'doughnutchart',
|
|
38
|
+
'bento-grid',
|
|
39
|
+
];
|
|
8
40
|
|
|
9
41
|
// Attach classes to dom elements
|
|
10
42
|
document.addEventListener('DOMContentLoaded', function () {
|
|
@@ -17,4 +49,38 @@ document.addEventListener('DOMContentLoaded', function () {
|
|
|
17
49
|
|
|
18
50
|
extendDialogs(document.body);
|
|
19
51
|
extendInputs(document.body);
|
|
52
|
+
/*
|
|
53
|
+
const prefix = 'iam';
|
|
54
|
+
const options = {
|
|
55
|
+
rootMargin: '50px',
|
|
56
|
+
threshold: 0.1,
|
|
57
|
+
};
|
|
58
|
+
const componentExt = '.component.min.js';
|
|
59
|
+
|
|
60
|
+
// Load components - Each component will load once the first of its type has been loaded
|
|
61
|
+
components.forEach((component) => {
|
|
62
|
+
if (document.getElementsByTagName(`${prefix}-${component}`).length === 0) return;
|
|
63
|
+
|
|
64
|
+
const callback = (entries: any): void => {
|
|
65
|
+
entries.forEach((entry: any) => {
|
|
66
|
+
if (entry.intersectionRatio > 0) {
|
|
67
|
+
|
|
68
|
+
import(`../js/components/${component}/${component}${componentExt}`)
|
|
69
|
+
.then((module) => {
|
|
70
|
+
if (!window.customElements.get(`${prefix}-${component}`))
|
|
71
|
+
window.customElements.define(`${prefix}-${component}`, module.default);
|
|
72
|
+
})
|
|
73
|
+
.catch((err) => {
|
|
74
|
+
console.log(err.message);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
intObserver.unobserve(entry.target);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const intObserver = new IntersectionObserver(callback, options);
|
|
83
|
+
intObserver.observe(document.getElementsByTagName(`${prefix}-${component}`)[0]);
|
|
84
|
+
});
|
|
85
|
+
*/
|
|
20
86
|
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { getChartData } from '../modules/chart.module';
|
|
4
|
+
import puppeteer from 'puppeteer';
|
|
5
|
+
import 'expect-puppeteer';
|
|
6
|
+
|
|
7
|
+
import iamCard from '../components/card/card.component';
|
|
8
|
+
|
|
9
|
+
describe('The card component', () => {
|
|
10
|
+
if (!window.customElements.get(`iam-card`)) window.customElements.define(`iam-card`, iamCard);
|
|
11
|
+
|
|
12
|
+
document.body.innerHTML = `
|
|
13
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>`;
|
|
14
|
+
|
|
15
|
+
test('should have the class of card added to it', () => {
|
|
16
|
+
let component = document.querySelector('iam-card');
|
|
17
|
+
expect(component.classList).toContain('card');
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { getChartData } from '../modules/chart.module';
|
|
4
|
+
import puppeteer from 'puppeteer';
|
|
5
|
+
import 'expect-puppeteer';
|
|
6
|
+
|
|
7
|
+
import iamCarousel from '../components/carousel/carousel.component';
|
|
8
|
+
import iamCard from '../components/card/card.component';
|
|
9
|
+
|
|
10
|
+
import { getProgressMax } from '../modules/carousel';
|
|
11
|
+
|
|
12
|
+
describe('The carousel component', () => {
|
|
13
|
+
if (!window.customElements.get(`iam-carousel`)) window.customElements.define(`iam-carousel`, iamCarousel);
|
|
14
|
+
if (!window.customElements.get(`iam-card`)) window.customElements.define(`iam-card`, iamCard);
|
|
15
|
+
|
|
16
|
+
document.body.innerHTML = `
|
|
17
|
+
<iam-carousel>
|
|
18
|
+
<div>
|
|
19
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
20
|
+
</div>
|
|
21
|
+
<div>
|
|
22
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
23
|
+
</div>
|
|
24
|
+
<div>
|
|
25
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
26
|
+
</div>
|
|
27
|
+
<div>
|
|
28
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
29
|
+
</div>
|
|
30
|
+
<div>
|
|
31
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
32
|
+
</div>
|
|
33
|
+
<div>
|
|
34
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
35
|
+
</div>
|
|
36
|
+
<div>
|
|
37
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
38
|
+
</div>
|
|
39
|
+
<div>
|
|
40
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
41
|
+
</div>
|
|
42
|
+
<div>
|
|
43
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
44
|
+
</div>
|
|
45
|
+
<div>
|
|
46
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
47
|
+
</div>
|
|
48
|
+
<div>
|
|
49
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
50
|
+
</div>
|
|
51
|
+
<div>
|
|
52
|
+
<iam-card>Financial preparation <span>Here would be the top level description of the task</span></iam-card>
|
|
53
|
+
</div>
|
|
54
|
+
</iam-carousel>`;
|
|
55
|
+
|
|
56
|
+
test('should have a pip for each item', () => {
|
|
57
|
+
let component = document.querySelector('iam-carousel');
|
|
58
|
+
let value = component?.shadowRoot?.querySelectorAll('.carousel__controls button').length;
|
|
59
|
+
|
|
60
|
+
expect(value).toEqual(12);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('should set the max value of the range input to the number of items divided by the visible items', () => {
|
|
64
|
+
expect(getProgressMax(9, 3)).toEqual(7);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
@@ -35,18 +35,21 @@ describe('The bar chart component', () => {
|
|
|
35
35
|
</table>
|
|
36
36
|
</iam-barchart>`;
|
|
37
37
|
|
|
38
|
-
test('should
|
|
38
|
+
test('should sync HTML changes with the shadow dom', () => {
|
|
39
39
|
let component = document.querySelector('iam-barchart');
|
|
40
|
-
let
|
|
40
|
+
let domElement = component.querySelector('tr:first-child td:nth-child(2)');
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
let shadowElement = component.shadowRoot.querySelector('tr:first-child td:nth-child(2)');
|
|
43
|
+
let value = shadowElement?.innerHTML;
|
|
44
|
+
|
|
45
|
+
expect(value).toEqual('<span data-group="Item 1" part="popover">300</span>');
|
|
43
46
|
});
|
|
44
47
|
|
|
45
|
-
test('should
|
|
48
|
+
test('should create the min attribute as 0', () => {
|
|
46
49
|
let component = document.querySelector('iam-barchart');
|
|
47
|
-
let {
|
|
50
|
+
let { min } = getChartData(component);
|
|
48
51
|
|
|
49
|
-
expect(
|
|
52
|
+
expect(min).toEqual(0);
|
|
50
53
|
});
|
|
51
54
|
|
|
52
55
|
test('should equal the largest single value', () => {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { getChartData } from '../modules/chart.module';
|
|
4
|
+
import puppeteer from 'puppeteer';
|
|
5
|
+
import 'expect-puppeteer';
|
|
6
|
+
|
|
7
|
+
import iamFileupload from '../components/fileupload/fileupload.component';
|
|
8
|
+
|
|
9
|
+
describe('The Fileupload component', () => {
|
|
10
|
+
if (!window.customElements.get(`iam-fileupload`)) window.customElements.define(`iam-fileupload`, iamFileupload);
|
|
11
|
+
|
|
12
|
+
document.body.innerHTML = `
|
|
13
|
+
<iam-fileupload>
|
|
14
|
+
<input type="file" name="files[]" accept=".pdf, .csv, .jpg, .png" multiple="multiple" />
|
|
15
|
+
</iam-fileupload>`;
|
|
16
|
+
|
|
17
|
+
test('should have a title in its UI', () => {
|
|
18
|
+
let component = document.querySelector('iam-fileupload');
|
|
19
|
+
let title = component?.shadowRoot.querySelector('.file-upload__title');
|
|
20
|
+
|
|
21
|
+
expect(title?.innerHTML).toContain('Upload file');
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test('should have a button in its UI', () => {
|
|
25
|
+
let component = document.querySelector('iam-fileupload');
|
|
26
|
+
let button = component?.shadowRoot.querySelector('button');
|
|
27
|
+
|
|
28
|
+
expect(button?.innerHTML).toContain('Upload file');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { getChartData } from '../modules/chart.module';
|
|
4
|
+
import puppeteer from 'puppeteer';
|
|
5
|
+
import 'expect-puppeteer';
|
|
6
|
+
|
|
7
|
+
import iamMultiStep from '../components/multi-step/multi-step.component';
|
|
8
|
+
|
|
9
|
+
describe('The Multi-step component', () => {
|
|
10
|
+
if (!window.customElements.get(`iam-multi-step`)) window.customElements.define(`iam-multi-step`, iamMultiStep);
|
|
11
|
+
|
|
12
|
+
document.body.innerHTML = `
|
|
13
|
+
<iam-multi-step>
|
|
14
|
+
<form>
|
|
15
|
+
<span class="h3">Multi-step modal title</span>
|
|
16
|
+
|
|
17
|
+
<fieldset data-title="Personal details">
|
|
18
|
+
<div>
|
|
19
|
+
<label for="input1">Name 1</label>
|
|
20
|
+
<input type="text" id="input1" name="input1" placeholder="Optional placeholder text" required="" />
|
|
21
|
+
<span class="invalid-feedback">This field is required</span>
|
|
22
|
+
</div>
|
|
23
|
+
</fieldset>
|
|
24
|
+
<fieldset data-title="Property details">
|
|
25
|
+
<div>
|
|
26
|
+
<label for="input2">Name 2</label>
|
|
27
|
+
<input type="text" id="input2" name="input2" placeholder="Optional placeholder text" required="" />
|
|
28
|
+
<span class="invalid-feedback">This field is required</span>
|
|
29
|
+
</div>
|
|
30
|
+
</fieldset>
|
|
31
|
+
<fieldset data-title="Location">
|
|
32
|
+
<div>
|
|
33
|
+
<label for="input3">Name 3</label>
|
|
34
|
+
<input
|
|
35
|
+
type="text"
|
|
36
|
+
id="input3"
|
|
37
|
+
name="input3"
|
|
38
|
+
placeholder="Optional placeholder text"
|
|
39
|
+
required=""
|
|
40
|
+
class="is-invalid"
|
|
41
|
+
/>
|
|
42
|
+
<span class="invalid-feedback">This field is required</span>
|
|
43
|
+
</div>
|
|
44
|
+
</fieldset>
|
|
45
|
+
<fieldset data-title="Submit property">
|
|
46
|
+
<div>
|
|
47
|
+
<label for="input4">Name 4</label>
|
|
48
|
+
<input type="text" id="input4" name="input4" placeholder="Optional placeholder text" required="" />
|
|
49
|
+
<span class="invalid-feedback">This field is required</span>
|
|
50
|
+
</div>
|
|
51
|
+
</fieldset>
|
|
52
|
+
<button class="btn btn-primary colour-success" type="submit">Register</button>
|
|
53
|
+
</form>
|
|
54
|
+
|
|
55
|
+
</iam-multi-step>`;
|
|
56
|
+
|
|
57
|
+
test('should add the active class to the first fieldset element', () => {
|
|
58
|
+
let component = document.querySelector('iam-multi-step');
|
|
59
|
+
let fieldset = component.querySelector('fieldset');
|
|
60
|
+
|
|
61
|
+
expect(fieldset.classList).toContain('active');
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test('should have a next button added to each fieldset element', () => {
|
|
65
|
+
let component = document.querySelector('iam-multi-step');
|
|
66
|
+
let fieldset = component.querySelector('fieldset');
|
|
67
|
+
let button = fieldset.querySelector('.btn--wrapper button[data-next]');
|
|
68
|
+
|
|
69
|
+
expect(button?.innerHTML).toContain('Next');
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('should have a steps list created using the data-title attributes for content', () => {
|
|
73
|
+
let component = document.querySelector('iam-multi-step');
|
|
74
|
+
let button = component?.shadowRoot.querySelector('.steps button');
|
|
75
|
+
|
|
76
|
+
expect(button?.innerHTML).toContain('Personal details');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -66,30 +66,6 @@ describe('addDataAttributes', () => {
|
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
describe('createSearchDataList', () => {
|
|
70
|
-
const table = document.createElement('table');
|
|
71
|
-
table.innerHTML = basicTable;
|
|
72
|
-
const form = document.createElement('form');
|
|
73
|
-
form.innerHTML += `<div><input name="search" id="search" type="text" class="form-control" data-search="Heading 1"></div>`;
|
|
74
|
-
|
|
75
|
-
tableModule.addDataAttributes(table);
|
|
76
|
-
tableModule.createSearchDataList(table, form);
|
|
77
|
-
|
|
78
|
-
test('should create a datalist populated by the defined columns in the data-search ', () => {
|
|
79
|
-
expect(form.querySelectorAll('datalist').length).toEqual(1);
|
|
80
|
-
expect(form.querySelectorAll('datalist option').length).toEqual(2);
|
|
81
|
-
expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
|
|
82
|
-
expect(form.querySelector('datalist option:nth-child(2)').value).toEqual('Different Cell 1');
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
test('should set the autocomplete attribute to off', () => {
|
|
86
|
-
expect(form.querySelectorAll('datalist').length).toEqual(1);
|
|
87
|
-
expect(form.querySelectorAll('datalist option').length).toEqual(2);
|
|
88
|
-
expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
|
|
89
|
-
expect(form.querySelector('input').getAttribute('autocomplete')).toEqual('off');
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
69
|
describe('sortTable', () => {
|
|
94
70
|
const table = document.createElement('table');
|
|
95
71
|
table.innerHTML = basicTable;
|
|
@@ -107,20 +83,6 @@ describe('sortTable', () => {
|
|
|
107
83
|
});
|
|
108
84
|
});
|
|
109
85
|
|
|
110
|
-
describe('filterTable', () => {
|
|
111
|
-
const table = document.createElement('table');
|
|
112
|
-
table.innerHTML = basicTable;
|
|
113
|
-
const form = document.createElement('form');
|
|
114
|
-
form.innerHTML += `<div><input type="text" name="filter" id="filter" data-filter="Heading 2" value="High" /></div>`;
|
|
115
|
-
|
|
116
|
-
tableModule.addDataAttributes(table);
|
|
117
|
-
tableModule.filterTable(table, form, document.createElement('div'));
|
|
118
|
-
|
|
119
|
-
test('should filter the table to only show high values', () => {
|
|
120
|
-
expect(table.querySelectorAll('tbody tr.filtered--matched').length).toEqual(1);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
|
|
124
86
|
describe('formatCell', () => {
|
|
125
87
|
test('should format the text correctly', () => {
|
|
126
88
|
expect(tableModule.formatCell('date', '2023-05-15 12:10:45.000000')).toEqual('15 May 23');
|