@iamproperty/components 7.0.0 → 7.1.0--beta2
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.css.map +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/address-lookup.css.map +1 -1
- package/assets/css/components/applied-filters.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/card.module.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/carousel.config.css.map +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.map +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/filter-card.component.css.map +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/inline-edit.css.map +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/multi-step.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.css +1 -1
- package/assets/css/components/nav.css.map +1 -1
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.old.css +1 -1
- package/assets/css/components/nav.old.css.map +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/notification.global.css.map +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/property-searchbar.css +1 -1
- package/assets/css/components/property-searchbar.css.map +1 -1
- package/assets/css/components/record-card.component.css.map +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.css +1 -1
- package/assets/css/components/table.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.css.map +1 -1
- package/assets/css/components/testimonial.css.map +1 -1
- package/assets/css/components/timeline.css +1 -1
- package/assets/css/components/timeline.css.map +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/_global.js +8 -8
- package/assets/js/components/accordion/accordion.component.js +13 -10
- package/assets/js/components/accordion/accordion.component.min.js +4 -4
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +97 -83
- package/assets/js/components/actionbar/actionbar.component.min.js +5 -5
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +30 -26
- package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.js +10 -6
- package/assets/js/components/applied-filters/applied-filters.component.min.js +3 -3
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.js +8 -7
- package/assets/js/components/barchart/barchart.component.min.js +4 -4
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/card/card.component.js +27 -12
- package/assets/js/components/card/card.component.min.js +3 -3
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.js +18 -12
- 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 +9 -8
- package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -8
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.js +11 -7
- package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
- package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
- package/assets/js/components/filter-card/filter-card.component.js +19 -9
- package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
- package/assets/js/components/filterlist/filterlist.component.js +10 -6
- 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 +8 -4
- 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 +43 -23
- 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 +11 -5
- 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/multi-step/multi-step.component.js +22 -19
- package/assets/js/components/multiselect/multiselect.component.js +62 -45
- package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +57 -38
- package/assets/js/components/nav/nav.component.min.js +5 -5
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/notification/notification.component.js +9 -5
- package/assets/js/components/notification/notification.component.min.js +5 -5
- package/assets/js/components/notification/notification.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.js +18 -14
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
- package/assets/js/components/record-card/record-card.component.js +10 -8
- package/assets/js/components/record-card/record-card.component.min.js +2 -2
- package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
- package/assets/js/components/search/search.component.js +22 -17
- package/assets/js/components/search/search.component.min.js +4 -4
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/slider/slider.component.js +25 -21
- package/assets/js/components/slider/slider.component.min.js +3 -3
- package/assets/js/components/slider/slider.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.js +30 -24
- package/assets/js/components/table/table.component.min.js +7 -7
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.js +10 -6
- package/assets/js/components/tabs/tabs.component.min.js +3 -3
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/video-card/video-card.component.js +45 -33
- 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/components.bundle.js +1 -1
- package/assets/js/components.bundle.js.map +1 -1
- package/assets/js/components.js +35 -8
- package/assets/js/modules/applied-filters.js +20 -20
- package/assets/js/modules/carousel.js +65 -60
- package/assets/js/modules/chart.js +184 -134
- package/assets/js/modules/chart.module.js +74 -63
- package/assets/js/modules/data-layer.js +17 -17
- package/assets/js/modules/dialogs.js +47 -38
- package/assets/js/modules/drawer.js +1 -1
- package/assets/js/modules/dynamicEvents.js +24 -24
- package/assets/js/modules/file-upload.js +8 -9
- package/assets/js/modules/fileupload.js +5 -5
- package/assets/js/modules/filterlist.js +4 -4
- package/assets/js/modules/form.js +22 -18
- package/assets/js/modules/helpers.js +54 -44
- package/assets/js/modules/inputs.js +25 -21
- package/assets/js/modules/nav.js +3 -1
- package/assets/js/modules/notification.js +6 -6
- package/assets/js/modules/orderablelist.js +12 -12
- package/assets/js/modules/pagination.js +5 -5
- package/assets/js/modules/table.js +242 -181
- package/assets/js/modules/tabs.js +71 -60
- package/assets/js/modules/testimonial.js +11 -12
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/js/scripts.js +1 -1
- package/assets/js/tests/chart.spec.js +5 -5
- package/assets/js/tests/filterlist.spec.js +2 -2
- package/assets/js/tests/slider.spec.js +2 -2
- package/assets/js/tests/table.spec.js +2 -2
- package/assets/js/vendor/hibp.js +4 -4
- package/assets/sass/_components.scss +28 -40
- package/assets/sass/_corefiles.scss +22 -29
- package/assets/sass/_elements.scss +19 -19
- package/assets/sass/_fonts.scss +10 -7
- package/assets/sass/_func.scss +14 -14
- package/assets/sass/_functions/functions.scss +115 -90
- package/assets/sass/_functions/mixins.scss +72 -112
- package/assets/sass/_functions/utilities.scss +447 -393
- package/assets/sass/_functions/variables.scss +1357 -1371
- package/assets/sass/_print.scss +18 -16
- package/assets/sass/_tests/colours.spec.scss +15 -14
- package/assets/sass/_tests/func.spec.scss +1 -2
- package/assets/sass/_tests/mixins.spec.scss +9 -14
- package/assets/sass/_tests/typography.spec.scss +1 -2
- package/assets/sass/_utilities.scss +8 -12
- package/assets/sass/components/actionbar.global.scss +45 -64
- package/assets/sass/components/actionbar.scss +58 -84
- package/assets/sass/components/address-lookup.scss +9 -11
- package/assets/sass/components/applied-filters.scss +3 -7
- package/assets/sass/components/barchart.component.scss +68 -99
- package/assets/sass/components/card.component.scss +35 -50
- package/assets/sass/components/card.module.scss +34 -37
- package/assets/sass/components/carousel.component.scss +198 -177
- package/assets/sass/components/carousel.config.scss +13 -19
- package/assets/sass/components/charts.config.scss +16 -23
- package/assets/sass/components/charts.module.scss +139 -178
- package/assets/sass/components/charts.scss +173 -232
- package/assets/sass/components/collapsible-side.scss +65 -98
- package/assets/sass/components/fileupload.scss +17 -23
- package/assets/sass/components/filter-card.component.scss +21 -28
- package/assets/sass/components/header.scss +24 -37
- package/assets/sass/components/inline-edit.preload.scss +24 -45
- package/assets/sass/components/inline-edit.scss +4 -5
- package/assets/sass/components/marketing.scss +19 -14
- package/assets/sass/components/multi-step.component.scss +36 -42
- package/assets/sass/components/multiselect.preload.scss +9 -12
- package/assets/sass/components/multiselect.scss +20 -24
- package/assets/sass/components/nav.docs.scss +7 -15
- package/assets/sass/components/nav.global.scss +123 -177
- package/assets/sass/components/nav.old.scss +64 -135
- package/assets/sass/components/nav.preload.scss +11 -12
- package/assets/sass/components/nav.scss +126 -173
- package/assets/sass/components/notification.global.scss +2 -3
- package/assets/sass/components/notification.scss +17 -32
- package/assets/sass/components/pagination.scss +32 -44
- package/assets/sass/components/property-searchbar.scss +2 -6
- package/assets/sass/components/record-card.component.scss +42 -55
- package/assets/sass/components/slider.scss +38 -35
- package/assets/sass/components/snapshot.scss +4 -10
- package/assets/sass/components/stepper.scss +14 -22
- package/assets/sass/components/table.global.scss +130 -171
- package/assets/sass/components/table.scss +17 -27
- package/assets/sass/components/tabs.scss +23 -32
- package/assets/sass/components/testimonial.scss +6 -14
- package/assets/sass/components/timeline.scss +8 -12
- package/assets/sass/components/video-card.component.scss +9 -14
- package/assets/sass/components.reset.scss +5 -5
- package/assets/sass/core.scss +3 -3
- package/assets/sass/elements/admin-panel.scss +41 -45
- package/assets/sass/elements/badge-tag.scss +16 -26
- package/assets/sass/elements/brand.scss +13 -16
- package/assets/sass/elements/buttons.scss +80 -106
- package/assets/sass/elements/container.scss +24 -133
- package/assets/sass/elements/details.scss +30 -50
- package/assets/sass/elements/dialog.scss +4 -6
- package/assets/sass/elements/forms.scss +421 -437
- package/assets/sass/elements/icons.scss +3 -4
- package/assets/sass/elements/links.scss +17 -25
- package/assets/sass/elements/lists.scss +30 -47
- package/assets/sass/elements/media.scss +1 -4
- package/assets/sass/elements/modal.scss +54 -80
- package/assets/sass/elements/popover.scss +28 -45
- package/assets/sass/elements/progress.scss +30 -40
- package/assets/sass/elements/table.element.scss +10 -15
- package/assets/sass/elements/tooltips.scss +27 -49
- package/assets/sass/elements/type.scss +47 -53
- package/assets/sass/email.scss +7 -9
- package/assets/sass/error.scss +23 -20
- package/assets/sass/foundations/bs_grid.scss +0 -1
- package/assets/sass/foundations/grid.scss +120 -122
- package/assets/sass/foundations/reboot.scss +27 -35
- package/assets/sass/foundations/root.scss +21 -31
- package/assets/sass/helpers/dynamic.scss +5 -5
- package/assets/sass/helpers/line-clamp.scss +1 -2
- package/assets/sass/helpers/max-height.scss +28 -36
- package/assets/sass/helpers/wider-colours.scss +2 -5
- package/assets/sass/main.scss +4 -4
- package/assets/sass/templates/auth.scss +11 -18
- package/assets/sass/templates/form.scss +16 -29
- package/assets/ts/components/_global.ts +14 -17
- package/assets/ts/components/accordion/accordion.component.ts +23 -19
- package/assets/ts/components/actionbar/README.md +8 -7
- package/assets/ts/components/actionbar/actionbar.component.ts +170 -220
- package/assets/ts/components/address-lookup/address-lookup.component.ts +94 -130
- package/assets/ts/components/applied-filters/README.md +1 -1
- package/assets/ts/components/applied-filters/applied-filters.component.ts +16 -15
- package/assets/ts/components/barchart/barchart.component.ts +29 -26
- package/assets/ts/components/card/card.component.ts +56 -57
- package/assets/ts/components/carousel/README.md +8 -9
- package/assets/ts/components/carousel/carousel.component.ts +30 -33
- package/assets/ts/components/chart/README.md +1 -3
- package/assets/ts/components/chart/chart.component.ts +24 -36
- package/assets/ts/components/collapsible-side/README.md +1 -1
- package/assets/ts/components/collapsible-side/collapsible-side.component.ts +44 -57
- package/assets/ts/components/fileupload/README.md +3 -3
- package/assets/ts/components/fileupload/fileupload.component.ts +23 -28
- package/assets/ts/components/filter-card/filter-card.component.ts +32 -33
- package/assets/ts/components/filterlist/README.md +3 -3
- package/assets/ts/components/filterlist/filterlist.component.ts +18 -16
- package/assets/ts/components/header/README.md +8 -9
- package/assets/ts/components/header/header.component.ts +15 -16
- package/assets/ts/components/inline-edit/README.md +1 -0
- package/assets/ts/components/inline-edit/inline-edit.component.ts +71 -71
- package/assets/ts/components/marketing/marketing.component.ts +17 -16
- package/assets/ts/components/multi-step/multi-step.component.ts +114 -156
- package/assets/ts/components/multiselect/README.md +5 -5
- package/assets/ts/components/multiselect/multiselect.component.ts +116 -133
- package/assets/ts/components/nav/README.md +13 -13
- package/assets/ts/components/nav/nav.component.ts +171 -167
- package/assets/ts/components/notification/README.md +9 -9
- package/assets/ts/components/notification/notification.component.ts +33 -32
- package/assets/ts/components/pagination/README.md +12 -12
- package/assets/ts/components/pagination/pagination.component.ts +51 -69
- package/assets/ts/components/record-card/record-card.component.ts +24 -34
- package/assets/ts/components/search/README.md +6 -7
- package/assets/ts/components/search/search.component.ts +75 -91
- package/assets/ts/components/slider/slider.component.ts +62 -77
- package/assets/ts/components/table/README.md +8 -8
- package/assets/ts/components/table/table.component.ts +97 -134
- package/assets/ts/components/tabs/README.md +4 -4
- package/assets/ts/components/tabs/tabs.component.ts +16 -14
- package/assets/ts/components/video-card/video-card.component.ts +89 -93
- package/assets/ts/components.ts +44 -20
- package/assets/ts/html.d.ts +1 -7
- package/assets/ts/modules/applied-filters.ts +104 -135
- package/assets/ts/modules/card.module.ts +13 -18
- package/assets/ts/modules/carousel.ts +194 -195
- package/assets/ts/modules/chart.module.ts +201 -246
- package/assets/ts/modules/chart.ts +454 -472
- package/assets/ts/modules/data-layer.md +35 -31
- package/assets/ts/modules/data-layer.ts +18 -18
- package/assets/ts/modules/dialogs.ts +113 -117
- package/assets/ts/modules/drawer.ts +7 -9
- package/assets/ts/modules/dynamicEvents.ts +67 -100
- package/assets/ts/modules/file-upload.ts +43 -40
- package/assets/ts/modules/fileupload.ts +38 -60
- package/assets/ts/modules/filterlist.ts +14 -20
- package/assets/ts/modules/form.ts +126 -128
- package/assets/ts/modules/helpers.ts +114 -120
- package/assets/ts/modules/inputs.ts +88 -120
- package/assets/ts/modules/nav.ts +19 -18
- package/assets/ts/modules/notification.ts +28 -32
- package/assets/ts/modules/orderablelist.ts +90 -82
- package/assets/ts/modules/pagination.ts +14 -19
- package/assets/ts/modules/table.ts +516 -599
- package/assets/ts/modules/tabs.ts +120 -145
- package/assets/ts/modules/testimonial.ts +59 -64
- package/assets/ts/scripts.ts +7 -9
- package/assets/ts/tests/chart.spec.ts +11 -20
- package/assets/ts/tests/data-layer.spec.js +3 -4
- package/assets/ts/tests/filterlist.spec.ts +3 -6
- package/assets/ts/tests/slider.spec.ts +9 -15
- package/assets/ts/tests/table.spec.ts +7 -24
- package/assets/ts/vendor/hibp.ts +43 -43
- package/dist/components.es.js +280 -270
- package/dist/components.umd.js +67 -67
- package/dist/style.css +1 -1
- package/package.json +14 -4
- package/src/components/Accordion/Accordion.spec.js +25 -31
- package/src/components/Accordion/Accordion.vue +16 -19
- package/src/components/Accordion/AccordionItem.vue +39 -37
- package/src/components/Accordion/README.md +10 -12
- package/src/components/Actionbar/Actionbar.vue +15 -18
- package/src/components/Actionbar/README.md +8 -7
- package/src/components/AddressLookup/AddressLookup.vue +14 -16
- package/src/components/AppliedFilters/AppliedFilters.vue +14 -16
- package/src/components/Banner/Banner.spec.js +13 -15
- package/src/components/Banner/Banner.vue +19 -19
- package/src/components/Banner/README.md +8 -10
- package/src/components/BarChart/BarChart.vue +14 -16
- package/src/components/Card/Card.vue +13 -16
- package/src/components/Card/README.md +8 -8
- package/src/components/Carousel/Carousel.vue +15 -18
- package/src/components/Carousel/README.md +7 -7
- package/src/components/Chart/Chart.spec.js +64 -87
- package/src/components/Chart/Chart.vue +41 -40
- package/src/components/Chart/README.md +8 -9
- package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +8 -10
- package/src/components/CollapsibleSideMenu/README.md +1 -1
- package/src/components/FileUpload/FileUpload.vue +35 -40
- package/src/components/FileUpload/README.md +3 -3
- package/src/components/FilterCard/FilterCard.vue +14 -16
- package/src/components/Filterlist/Filterlist.vue +7 -9
- package/src/components/Filterlist/README.md +3 -3
- package/src/components/Header/Header.vue +23 -26
- package/src/components/Header/README.md +8 -9
- package/src/components/InlineEdit/InlineEdit.vue +26 -32
- package/src/components/Input/Input.vue +323 -233
- package/src/components/Input/README.md +11 -11
- package/src/components/Marketing/Marketing.vue +24 -27
- package/src/components/Marketing/README.md +7 -7
- package/src/components/MultiStep/MultiStep.vue +13 -15
- package/src/components/Multiselect/Multiselect.vue +14 -17
- package/src/components/Nav/Nav.vue +15 -29
- package/src/components/Nav/README.md +12 -12
- package/src/components/Nav-old/Nav.vue +88 -93
- package/src/components/Nav-old/README.md +11 -12
- package/src/components/NoteFeed/NoteFeed.vue +59 -56
- package/src/components/NoteFeed/README.md +6 -6
- package/src/components/Notification/Notification.vue +11 -15
- package/src/components/Notification/README.md +9 -9
- package/src/components/Pagination/Pagination.vue +14 -24
- package/src/components/Pagination/README.md +12 -12
- package/src/components/PropertySearchbar/PropertySearchbar.vue +191 -160
- package/src/components/PropertySearchbar/README.md +14 -15
- package/src/components/RecordCard/RecordCard.vue +14 -16
- package/src/components/Search/README.md +1 -1
- package/src/components/Search/Search.vue +13 -16
- package/src/components/Slider/Slider.vue +13 -16
- package/src/components/Snapshot/README.md +9 -10
- package/src/components/Snapshot/Snapshot.vue +15 -17
- package/src/components/Stepper/README.md +12 -13
- package/src/components/Stepper/Step.vue +22 -18
- package/src/components/Stepper/Stepper.spec.js +41 -46
- package/src/components/Stepper/Stepper.vue +17 -18
- package/src/components/Table/README.md +12 -11
- package/src/components/Table/Table.spec.js +17 -28
- package/src/components/Table/Table.vue +49 -48
- package/src/components/Tabs/README.md +8 -8
- package/src/components/Tabs/Tab.vue +21 -21
- package/src/components/Tabs/Tabs.vue +14 -17
- package/src/components/Testimonial/README.md +11 -12
- package/src/components/Testimonial/Testimonial.spec.js +22 -26
- package/src/components/Testimonial/Testimonial.vue +31 -25
- package/src/components/Timeline/README.md +3 -3
- package/src/components/Timeline/Timeline.spec.js +9 -11
- package/src/components/Timeline/Timeline.vue +10 -10
- package/src/components/VideoCard/VideoCard.vue +14 -16
- package/src/foundations/Logo/Logo.spec.js +30 -30
- package/src/foundations/Logo/Logo.vue +28 -28
- package/src/foundations/Logo/README.md +5 -4
- package/src/helpers/strings.js +11 -8
- package/src/index.js +27 -28
- package/src/vue-shim.d.ts +4 -4
|
@@ -19,19 +19,19 @@ import('../node_modules/@iamproperty/components/assets/js/components/pagination/
|
|
|
19
19
|
|
|
20
20
|
**Properties**
|
|
21
21
|
|
|
22
|
-
| Option
|
|
23
|
-
|
|
|
24
|
-
| data-total
|
|
25
|
-
| data-page
|
|
26
|
-
| data-show
|
|
27
|
-
| data-page-minimal | flag | -
|
|
28
|
-
| data-page-jump
|
|
29
|
-
| data-per-page
|
|
30
|
-
| data-item-count
|
|
22
|
+
| Option | Type | Default Value | Description |
|
|
23
|
+
| ----------------- | ---- | ------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
24
|
+
| data-total | int | 0 | The total amount is needed to work out how many pagination buttons are needed |
|
|
25
|
+
| data-page | int | 1 | Override the current page value |
|
|
26
|
+
| data-show | int | 15 | Update how many items can be shown per page |
|
|
27
|
+
| data-page-minimal | flag | - | Will display the minimal variant even on mobile |
|
|
28
|
+
| data-page-jump | flag | - | Adds the page jump dropdown on all viewports |
|
|
29
|
+
| data-per-page | flag | - | Adds the per page dropdown on tablet and desktop viewports (is hidden on tablet if not enough room availble) |
|
|
30
|
+
| data-item-count | flag | - | Will add the total count on tablet and desktop viewports |
|
|
31
31
|
|
|
32
32
|
**Dispatched events**
|
|
33
33
|
|
|
34
|
-
| Event
|
|
35
|
-
|
|
|
36
|
-
| update-show | When a user clicks mobile 'Load more' button
|
|
34
|
+
| Event | Dispatched when | Details passed |
|
|
35
|
+
| ----------- | ----------------------------------------------------------------------------------- | --------------------- |
|
|
36
|
+
| update-show | When a user clicks mobile 'Load more' button | { show: $showAmont } |
|
|
37
37
|
| update-page | When a user changes the page jump select or clicks on the 'Prev' and 'Next' buttons | { page: $pageNumber } |
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
class iamPagination extends HTMLElement {
|
|
3
|
-
|
|
4
|
-
constructor(){
|
|
3
|
+
constructor() {
|
|
5
4
|
super();
|
|
6
|
-
this.attachShadow({ mode: 'open'});
|
|
7
|
-
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
8
|
-
|
|
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 coreCSS = document.body.hasAttribute('data-core-css')
|
|
10
|
+
? document.body.getAttribute('data-core-css')
|
|
11
|
+
: `${assetLocation}/css/core.min.css`;
|
|
9
12
|
const loadCSS = `@import "${assetLocation}/css/components/pagination.css";`;
|
|
10
13
|
|
|
11
14
|
const template = document.createElement('template');
|
|
@@ -50,22 +53,17 @@ class iamPagination extends HTMLElement {
|
|
|
50
53
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
connectedCallback() {
|
|
55
57
|
// Set default attributes
|
|
56
58
|
const params = new URLSearchParams(window.location.search);
|
|
57
59
|
|
|
58
|
-
if(!this.hasAttribute('data-total'))
|
|
59
|
-
this.setAttribute('data-total', 15);
|
|
60
|
+
if (!this.hasAttribute('data-total')) this.setAttribute('data-total', 15);
|
|
60
61
|
|
|
61
|
-
if(!this.hasAttribute('data-page'))
|
|
62
|
-
this.setAttribute('data-page', (params.has('page') ? params.get('page') : 1));
|
|
62
|
+
if (!this.hasAttribute('data-page')) this.setAttribute('data-page', params.has('page') ? params.get('page') : 1);
|
|
63
63
|
|
|
64
|
-
if(!this.hasAttribute('data-show'))
|
|
65
|
-
this.setAttribute('data-show', (params.has('show') ? params.get('show') : 15));
|
|
64
|
+
if (!this.hasAttribute('data-show')) this.setAttribute('data-show', params.has('show') ? params.get('show') : 15);
|
|
66
65
|
|
|
67
|
-
if(!this.hasAttribute('data-increment'))
|
|
68
|
-
this.setAttribute('data-increment', this.getAttribute('data-show'));
|
|
66
|
+
if (!this.hasAttribute('data-increment')) this.setAttribute('data-increment', this.getAttribute('data-show'));
|
|
69
67
|
|
|
70
68
|
// Elements
|
|
71
69
|
const select = this.shadowRoot.querySelector('.page-jump select');
|
|
@@ -78,38 +76,32 @@ class iamPagination extends HTMLElement {
|
|
|
78
76
|
this.setup();
|
|
79
77
|
|
|
80
78
|
// Select on change will update the data-page attr which will dispatch an event
|
|
81
|
-
select.addEventListener('change',(event) => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
this.setAttribute('data-show',this.getAttribute('data-increment'))
|
|
85
|
-
this.setAttribute('data-page',event.target.value);
|
|
79
|
+
select.addEventListener('change', (event) => {
|
|
80
|
+
this.setAttribute('data-show', this.getAttribute('data-increment'));
|
|
81
|
+
this.setAttribute('data-page', event.target.value);
|
|
86
82
|
});
|
|
87
83
|
|
|
88
84
|
// Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event
|
|
89
|
-
next.addEventListener('click',(event) => {
|
|
90
|
-
|
|
85
|
+
next.addEventListener('click', (event) => {
|
|
91
86
|
select.value = parseInt(select.value) + 1;
|
|
92
87
|
select.dispatchEvent(new Event('change'));
|
|
93
88
|
});
|
|
94
89
|
|
|
95
|
-
prev.addEventListener('click',(event) => {
|
|
96
|
-
|
|
90
|
+
prev.addEventListener('click', (event) => {
|
|
97
91
|
select.value = parseInt(select.value) - 1;
|
|
98
92
|
select.dispatchEvent(new Event('change'));
|
|
99
93
|
});
|
|
100
94
|
|
|
101
|
-
// Update how many is shown
|
|
102
|
-
perPage.addEventListener('change',(event) => {
|
|
103
|
-
|
|
104
|
-
this.setAttribute('data-increment',event.target.value);
|
|
95
|
+
// Update how many is shown
|
|
96
|
+
perPage.addEventListener('change', (event) => {
|
|
97
|
+
this.setAttribute('data-increment', event.target.value);
|
|
105
98
|
});
|
|
106
99
|
|
|
107
|
-
loadMore.addEventListener('click',(event) => {
|
|
100
|
+
loadMore.addEventListener('click', (event) => {
|
|
101
|
+
const newValue = parseInt(this.getAttribute('data-show')) + parseInt(this.getAttribute('data-increment'));
|
|
102
|
+
this.setAttribute('data-show', newValue);
|
|
108
103
|
|
|
109
|
-
|
|
110
|
-
this.setAttribute('data-show',newValue);
|
|
111
|
-
|
|
112
|
-
if(newValue > parseInt(this.getAttribute('data-total'))){
|
|
104
|
+
if (newValue > parseInt(this.getAttribute('data-total'))) {
|
|
113
105
|
loadMore.remove();
|
|
114
106
|
}
|
|
115
107
|
});
|
|
@@ -132,9 +124,8 @@ class iamPagination extends HTMLElement {
|
|
|
132
124
|
const increment = parseInt(this.getAttribute('data-increment'));
|
|
133
125
|
const numberPages = Math.ceil(total / increment);
|
|
134
126
|
|
|
135
|
-
if(total > show)
|
|
136
|
-
|
|
137
|
-
|
|
127
|
+
if (total > show) wrapper.classList.remove('d-none');
|
|
128
|
+
|
|
138
129
|
// Populate the select input with the number of pages
|
|
139
130
|
let strOptions = '';
|
|
140
131
|
for (let i = 1; i <= numberPages; i++) {
|
|
@@ -145,60 +136,53 @@ class iamPagination extends HTMLElement {
|
|
|
145
136
|
totalPages.innerHTML = `of ${numberPages}`;
|
|
146
137
|
|
|
147
138
|
// Next button
|
|
148
|
-
if(currentPage == numberPages)
|
|
149
|
-
|
|
150
|
-
else
|
|
151
|
-
next.removeAttribute('disabled');
|
|
139
|
+
if (currentPage == numberPages) next.setAttribute('disabled', 'disabled');
|
|
140
|
+
else next.removeAttribute('disabled');
|
|
152
141
|
|
|
153
|
-
if(currentPage == 1)
|
|
154
|
-
|
|
155
|
-
else
|
|
156
|
-
prev.removeAttribute('disabled');
|
|
142
|
+
if (currentPage == 1) prev.setAttribute('disabled', 'disabled');
|
|
143
|
+
else prev.removeAttribute('disabled');
|
|
157
144
|
|
|
158
|
-
|
|
159
145
|
// Update the item count text
|
|
160
|
-
|
|
161
|
-
|
|
146
|
+
const startPoint = currentPage == 1 ? 1 : (currentPage - 1) * show + 1;
|
|
147
|
+
const endPoint = currentPage == 1 ? show : currentPage * show;
|
|
162
148
|
itemCount.innerHTML = `${startPoint} - ${endPoint > total ? total : endPoint} of ${total} items`;
|
|
163
|
-
|
|
164
|
-
const defaultValues = [15,25,40,50];
|
|
149
|
+
|
|
150
|
+
const defaultValues = [15, 25, 40, 50];
|
|
165
151
|
|
|
166
152
|
// Update the per page options if needed
|
|
167
|
-
if(increment && perPage.value != increment && !defaultValues.includes(increment)){
|
|
153
|
+
if (increment && perPage.value != increment && !defaultValues.includes(increment)) {
|
|
168
154
|
perPage.innerHTML = `<option value="${increment}">${increment}</option>
|
|
169
|
-
<option value="${increment*2}">${increment*2}</option>
|
|
170
|
-
<option value="${increment*3}">${increment*3}</option>
|
|
171
|
-
<option value="${increment*4}">${increment*4}</option>`;
|
|
155
|
+
<option value="${increment * 2}">${increment * 2}</option>
|
|
156
|
+
<option value="${increment * 3}">${increment * 3}</option>
|
|
157
|
+
<option value="${increment * 4}">${increment * 4}</option>`;
|
|
172
158
|
}
|
|
173
|
-
|
|
159
|
+
|
|
174
160
|
perPage.value = increment;
|
|
175
161
|
}
|
|
176
162
|
|
|
177
163
|
static get observedAttributes() {
|
|
178
|
-
return [
|
|
164
|
+
return ['data-total', 'data-increment', 'data-page', 'data-show'];
|
|
179
165
|
}
|
|
180
166
|
|
|
181
167
|
attributeChangedCallback(attrName, oldVal, newVal) {
|
|
182
|
-
|
|
183
168
|
switch (attrName) {
|
|
184
|
-
case
|
|
185
|
-
if(oldVal != newVal){
|
|
169
|
+
case 'data-total': {
|
|
170
|
+
if (oldVal != newVal) {
|
|
186
171
|
this.setAttribute('data-page', 1);
|
|
187
172
|
this.setup();
|
|
188
173
|
}
|
|
189
174
|
break;
|
|
190
175
|
}
|
|
191
|
-
case
|
|
192
|
-
if(oldVal != newVal){
|
|
193
|
-
|
|
176
|
+
case 'data-show': {
|
|
177
|
+
if (oldVal != newVal) {
|
|
194
178
|
this.setAttribute('data-page', 1);
|
|
195
179
|
this.setup();
|
|
196
180
|
this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));
|
|
197
181
|
}
|
|
198
182
|
break;
|
|
199
183
|
}
|
|
200
|
-
case
|
|
201
|
-
if(oldVal != newVal){
|
|
184
|
+
case 'data-increment': {
|
|
185
|
+
if (oldVal != newVal) {
|
|
202
186
|
this.setAttribute('data-show', newVal);
|
|
203
187
|
this.setAttribute('data-page', 1);
|
|
204
188
|
this.setup();
|
|
@@ -206,12 +190,10 @@ class iamPagination extends HTMLElement {
|
|
|
206
190
|
}
|
|
207
191
|
break;
|
|
208
192
|
}
|
|
209
|
-
case
|
|
210
|
-
|
|
211
|
-
if(oldVal && oldVal != newVal) {
|
|
212
|
-
|
|
193
|
+
case 'data-page': {
|
|
194
|
+
if (oldVal && oldVal != newVal) {
|
|
213
195
|
this.setup();
|
|
214
|
-
// Dispact the event for other components to use as triggers
|
|
196
|
+
// Dispact the event for other components to use as triggers
|
|
215
197
|
this.dispatchEvent(new CustomEvent('update-page', { detail: { page: newVal } }));
|
|
216
198
|
}
|
|
217
199
|
break;
|
|
@@ -220,4 +202,4 @@ class iamPagination extends HTMLElement {
|
|
|
220
202
|
}
|
|
221
203
|
}
|
|
222
204
|
|
|
223
|
-
export default iamPagination;
|
|
205
|
+
export default iamPagination;
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import {trackComponent, trackComponentRegistered} from
|
|
3
|
-
import {cardHTML,setupCard} from
|
|
2
|
+
import { trackComponent, trackComponentRegistered } from '../_global';
|
|
3
|
+
import { cardHTML, setupCard } from '../../modules/card.module';
|
|
4
4
|
|
|
5
|
-
trackComponentRegistered(
|
|
5
|
+
trackComponentRegistered('iam-record-card');
|
|
6
6
|
|
|
7
7
|
class iamRecordCard extends HTMLElement {
|
|
8
|
-
|
|
9
|
-
constructor(){
|
|
8
|
+
constructor() {
|
|
10
9
|
super();
|
|
11
|
-
this.attachShadow({ mode: 'open'});
|
|
10
|
+
this.attachShadow({ mode: 'open' });
|
|
12
11
|
|
|
13
|
-
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
12
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
13
|
+
? document.body.getAttribute('data-assets-location')
|
|
14
|
+
: '/assets';
|
|
14
15
|
const loadCSS = `@import "${assetLocation}/css/components/record-card.component.css";`;
|
|
15
|
-
|
|
16
|
+
|
|
16
17
|
const template = document.createElement('template');
|
|
17
18
|
template.innerHTML = `
|
|
18
19
|
<style>
|
|
@@ -26,57 +27,46 @@ class iamRecordCard extends HTMLElement {
|
|
|
26
27
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
async connectedCallback() {
|
|
31
31
|
const cardComponent = this;
|
|
32
|
-
const cardHead =
|
|
32
|
+
const cardHead = cardComponent.shadowRoot.querySelector('.card__head');
|
|
33
33
|
setupCard(cardComponent);
|
|
34
34
|
|
|
35
|
-
Array.from(cardComponent.querySelectorAll(':scope > *:not([slot])')).forEach((element,index)=>{
|
|
36
|
-
|
|
37
|
-
element.setAttribute('slot','details');
|
|
35
|
+
Array.from(cardComponent.querySelectorAll(':scope > *:not([slot])')).forEach((element, index) => {
|
|
36
|
+
element.setAttribute('slot', 'details');
|
|
38
37
|
});
|
|
39
38
|
|
|
40
|
-
if(cardComponent.hasAttribute('data-avatar')){
|
|
41
|
-
|
|
39
|
+
if (cardComponent.hasAttribute('data-avatar')) {
|
|
42
40
|
cardHead.innerHTML += `<img src="${cardComponent.getAttribute('data-avatar')}" alt="" loading="lazy" class="card__avatar" part="avatar" />`;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
42
|
|
|
46
|
-
trackComponent(cardComponent,
|
|
43
|
+
trackComponent(cardComponent, 'iam-record-card', []);
|
|
47
44
|
}
|
|
48
45
|
|
|
49
46
|
static get observedAttributes() {
|
|
50
|
-
return [
|
|
47
|
+
return ['data-image'];
|
|
51
48
|
}
|
|
52
|
-
|
|
49
|
+
|
|
53
50
|
attributeChangedCallback(attrName, oldVal, newVal) {
|
|
54
51
|
switch (attrName) {
|
|
55
|
-
case
|
|
56
|
-
|
|
57
|
-
if(oldVal != newVal){
|
|
58
|
-
|
|
52
|
+
case 'data-image': {
|
|
53
|
+
if (oldVal != newVal) {
|
|
59
54
|
const cardHeadImg = this.shadowRoot.querySelector('.card__head img');
|
|
60
55
|
|
|
61
|
-
if(cardHeadImg)
|
|
62
|
-
cardHeadImg.setAttribute('src',newVal);
|
|
56
|
+
if (cardHeadImg) cardHeadImg.setAttribute('src', newVal);
|
|
63
57
|
}
|
|
64
58
|
break;
|
|
65
59
|
}
|
|
66
|
-
case
|
|
67
|
-
|
|
68
|
-
if(oldVal != newVal){
|
|
69
|
-
|
|
60
|
+
case 'data-avatar': {
|
|
61
|
+
if (oldVal != newVal) {
|
|
70
62
|
const cardHeadImg = this.shadowRoot.querySelector('.card__avatar');
|
|
71
63
|
|
|
72
|
-
if(cardHeadImg)
|
|
73
|
-
cardHeadImg.setAttribute('src',newVal);
|
|
64
|
+
if (cardHeadImg) cardHeadImg.setAttribute('src', newVal);
|
|
74
65
|
}
|
|
75
66
|
break;
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
|
-
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
71
|
|
|
82
|
-
export default iamRecordCard;
|
|
72
|
+
export default iamRecordCard;
|
|
@@ -27,10 +27,9 @@ import('../node_modules/@iamproperty/components/assets/js/components/fileupload/
|
|
|
27
27
|
|
|
28
28
|
**Properties**
|
|
29
29
|
|
|
30
|
-
| Option
|
|
31
|
-
|
|
|
32
|
-
| data-url
|
|
33
|
-
| data-schema
|
|
34
|
-
| data-value-schema
|
|
35
|
-
| data-display-schema | String | -
|
|
36
|
-
|
|
30
|
+
| Option | Type | Default Value | Description |
|
|
31
|
+
| ------------------- | ------ | ------------- | -------------------------------------------------------------------------- |
|
|
32
|
+
| data-url | String | - | Optional value that populates the datalist with extra results from an API |
|
|
33
|
+
| data-schema | String | - | Tells the JavaScript where to look for the array of values in the API JSON |
|
|
34
|
+
| data-value-schema | String | - | Tells the JavaScript where to look for the value within the API JSON |
|
|
35
|
+
| data-display-schema | String | - | Tells the JavaScript where to look for the title within the API JSON |
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import Cookies from 'js-cookie';
|
|
3
|
-
import { safeID, resolvePath, isTraversable } from '../../modules/helpers'
|
|
3
|
+
import { safeID, resolvePath, isTraversable } from '../../modules/helpers';
|
|
4
4
|
|
|
5
5
|
// Data layer Web component created
|
|
6
6
|
window.dataLayer = window.dataLayer || [];
|
|
7
7
|
window.dataLayer.push({
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
event: 'customElementRegistered',
|
|
9
|
+
element: 'Search',
|
|
10
10
|
});
|
|
11
11
|
|
|
12
12
|
class iamSearch extends HTMLElement {
|
|
13
|
-
|
|
14
|
-
constructor(){
|
|
13
|
+
constructor() {
|
|
15
14
|
super();
|
|
16
|
-
this.attachShadow({ mode: 'open'});
|
|
17
|
-
|
|
18
|
-
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
19
|
-
|
|
15
|
+
this.attachShadow({ mode: 'open' });
|
|
16
|
+
|
|
17
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
18
|
+
? document.body.getAttribute('data-assets-location')
|
|
19
|
+
: '/assets';
|
|
20
|
+
const coreCSS = document.body.hasAttribute('data-core-css')
|
|
21
|
+
? document.body.getAttribute('data-core-css')
|
|
22
|
+
: `${assetLocation}/css/core.min.css`;
|
|
20
23
|
|
|
21
24
|
const template = document.createElement('template');
|
|
22
25
|
template.innerHTML = `
|
|
@@ -38,63 +41,56 @@ class iamSearch extends HTMLElement {
|
|
|
38
41
|
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
async connectedCallback() {
|
|
43
45
|
const searchWrapper = this;
|
|
44
46
|
const inputField = this.querySelector('input');
|
|
45
47
|
const valueSchema = this.hasAttribute('data-value-schema') ? this.getAttribute('data-value-schema') : 'value';
|
|
46
48
|
const displaySchema = this.hasAttribute('data-display-schema') ? this.getAttribute('data-display-schema') : 'label';
|
|
47
49
|
const loopSchema = this.hasAttribute('data-schema') ? this.getAttribute('data-schema') : '';
|
|
48
50
|
let datalist = this.querySelector('datalist');
|
|
49
|
-
|
|
51
|
+
const searched = [];
|
|
50
52
|
|
|
51
53
|
// Clone original input field, re-name and use for display purposes
|
|
52
54
|
const displayInputField = inputField.cloneNode();
|
|
53
|
-
displayInputField.setAttribute('name'
|
|
55
|
+
displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);
|
|
54
56
|
inputField.removeAttribute('data-change-events');
|
|
55
57
|
displayInputField.removeAttribute('id');
|
|
56
|
-
|
|
58
|
+
|
|
57
59
|
inputField.after(displayInputField);
|
|
58
60
|
|
|
59
61
|
// Hide original input field
|
|
60
|
-
inputField.setAttribute('type','hidden');
|
|
62
|
+
inputField.setAttribute('type', 'hidden');
|
|
61
63
|
|
|
62
64
|
// if data list does not exist then create one and append
|
|
63
|
-
if(!datalist){
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
datalist.setAttribute('id',listID);
|
|
65
|
+
if (!datalist) {
|
|
66
|
+
datalist = document.createElement('datalist');
|
|
67
|
+
const listID = safeID('list');
|
|
68
|
+
datalist.setAttribute('id', listID);
|
|
68
69
|
searchWrapper.appendChild(datalist);
|
|
69
70
|
|
|
70
|
-
displayInputField.setAttribute('list',listID);
|
|
71
|
+
displayInputField.setAttribute('list', listID);
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
// Search the endpoint when 3 characters has been added
|
|
74
|
-
if(searchWrapper.hasAttribute('data-url')){
|
|
75
|
-
|
|
75
|
+
if (searchWrapper.hasAttribute('data-url')) {
|
|
76
76
|
displayInputField.addEventListener('input', (event) => {
|
|
77
|
-
|
|
78
|
-
if(displayInputField.value.length == 3 && !searched.includes(displayInputField.value)){
|
|
77
|
+
if (displayInputField.value.length == 3 && !searched.includes(displayInputField.value)) {
|
|
79
78
|
search(displayInputField.value);
|
|
80
79
|
searched.push(displayInputField.value);
|
|
81
80
|
}
|
|
82
81
|
});
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
function checkMatch(){
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
let subMatch = datalist.querySelector(`option[value*="${displayInputField.value}" i]`);
|
|
84
|
+
function checkMatch() {
|
|
85
|
+
const match = datalist.querySelector(`option[value="${displayInputField.value}"]`);
|
|
86
|
+
const subMatch = datalist.querySelector(`option[value*="${displayInputField.value}" i]`);
|
|
89
87
|
|
|
90
|
-
if(match){
|
|
88
|
+
if (match) {
|
|
91
89
|
inputField.value = match.getAttribute('data-value');
|
|
92
|
-
}
|
|
93
|
-
else if (displayInputField.value.length > 0 && !subMatch){
|
|
90
|
+
} else if (displayInputField.value.length > 0 && !subMatch) {
|
|
94
91
|
displayInputField.classList.add('is-invalid');
|
|
95
|
-
displayInputField.closest('label').setAttribute('data-error','No results returned');
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
92
|
+
displayInputField.closest('label').setAttribute('data-error', 'No results returned');
|
|
93
|
+
} else {
|
|
98
94
|
displayInputField.classList.remove('is-invalid');
|
|
99
95
|
displayInputField.closest('label').removeAttribute('data-error');
|
|
100
96
|
}
|
|
@@ -102,28 +98,23 @@ class iamSearch extends HTMLElement {
|
|
|
102
98
|
|
|
103
99
|
// on change update oringinal field with the actual value and use displayed input for the nice display text
|
|
104
100
|
displayInputField.addEventListener('input', (event) => {
|
|
105
|
-
|
|
106
101
|
checkMatch();
|
|
107
102
|
});
|
|
108
103
|
|
|
109
|
-
|
|
110
104
|
const search = async (searchterm) => {
|
|
111
|
-
|
|
112
105
|
let ajaxURL = searchWrapper.getAttribute('data-url');
|
|
113
106
|
ajaxURL += `${encodeURI(searchterm)}`;
|
|
114
|
-
|
|
107
|
+
|
|
115
108
|
// Setup controller vars if not already set
|
|
116
|
-
if(!window.controller)
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
if (!window.controller) window.controller = [];
|
|
110
|
+
|
|
119
111
|
// Abort if controller already present for this url
|
|
120
|
-
if(window.controller[ajaxURL])
|
|
121
|
-
|
|
122
|
-
|
|
112
|
+
if (window.controller[ajaxURL]) window.controller[ajaxURL].abort();
|
|
113
|
+
|
|
123
114
|
// Create a new controller so it can be aborted if new fetch made
|
|
124
115
|
window.controller[ajaxURL] = new AbortController();
|
|
125
116
|
const { signal } = controller[ajaxURL];
|
|
126
|
-
|
|
117
|
+
|
|
127
118
|
try {
|
|
128
119
|
await fetch(ajaxURL, {
|
|
129
120
|
signal: signal,
|
|
@@ -133,66 +124,59 @@ class iamSearch extends HTMLElement {
|
|
|
133
124
|
'Content-Type': 'application/json',
|
|
134
125
|
Accept: 'application/json',
|
|
135
126
|
'X-Requested-With': 'XMLHttpRequest',
|
|
136
|
-
'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN')
|
|
137
|
-
})
|
|
127
|
+
'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),
|
|
128
|
+
}),
|
|
138
129
|
})
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if(!datalist.querySelector(`option[data-value="${actualValue}"]`))
|
|
167
|
-
listString += `<option value="${key}: ${displayValue}" data-value='${actualValue}'></option>`;
|
|
168
|
-
});
|
|
130
|
+
.then((response) => response.json())
|
|
131
|
+
.then((response) => {
|
|
132
|
+
// populate datalist
|
|
133
|
+
let listString = '';
|
|
134
|
+
const loopValues = resolvePath(response, loopSchema, '');
|
|
135
|
+
|
|
136
|
+
if (isTraversable(loopValues) && typeof loopValues.forEach == 'function') {
|
|
137
|
+
loopValues.forEach((item, index) => {
|
|
138
|
+
const actualValue = resolvePath(item, valueSchema, '');
|
|
139
|
+
const displayValue = resolvePath(item, displaySchema, '').replace('\n', ', ');
|
|
140
|
+
|
|
141
|
+
console.log(displayValue);
|
|
142
|
+
|
|
143
|
+
if (!datalist.querySelector(`option[data-value="${actualValue}"]`))
|
|
144
|
+
listString += `<option value="${displayValue}" data-value="${actualValue}"></option>`;
|
|
145
|
+
});
|
|
146
|
+
} else if (typeof loopValues == 'object') {
|
|
147
|
+
for (const [key, value] of Object.entries(loopValues)) {
|
|
148
|
+
if (isTraversable(value) && typeof value.forEach == 'function') {
|
|
149
|
+
value.forEach((item, index) => {
|
|
150
|
+
const actualValue = resolvePath(item, valueSchema, '');
|
|
151
|
+
const displayValue = resolvePath(item, displaySchema, '').replace('\n', ', ');
|
|
152
|
+
|
|
153
|
+
if (!datalist.querySelector(`option[data-value="${actualValue}"]`))
|
|
154
|
+
listString += `<option value="${key}: ${displayValue}" data-value='${actualValue}'></option>`;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
169
157
|
}
|
|
170
158
|
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
datalist.innerHTML += listString;
|
|
174
|
-
|
|
175
|
-
displayInputField.closest('form').classList.add('was-validated');
|
|
176
|
-
checkMatch();
|
|
177
159
|
|
|
178
|
-
|
|
179
|
-
});
|
|
160
|
+
datalist.innerHTML += listString;
|
|
180
161
|
|
|
162
|
+
displayInputField.closest('form').classList.add('was-validated');
|
|
163
|
+
checkMatch();
|
|
164
|
+
|
|
165
|
+
return response;
|
|
166
|
+
});
|
|
181
167
|
} catch (error) {
|
|
182
168
|
console.log(error);
|
|
183
169
|
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if(searchWrapper.hasAttribute('data-prevent-submit')){
|
|
170
|
+
};
|
|
187
171
|
|
|
172
|
+
if (searchWrapper.hasAttribute('data-prevent-submit')) {
|
|
188
173
|
const form = searchWrapper.closest('form');
|
|
189
174
|
|
|
190
175
|
form.addEventListener('submit', (e) => {
|
|
191
|
-
|
|
192
176
|
e.preventDefault();
|
|
193
177
|
});
|
|
194
178
|
}
|
|
195
179
|
}
|
|
196
180
|
}
|
|
197
181
|
|
|
198
|
-
export default iamSearch;
|
|
182
|
+
export default iamSearch;
|