@iamproperty/components 7.1.0--beta7 → 7.2.0
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.css → table.component.css} +1 -1
- 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.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 +3 -4
- package/assets/js/components/pagination/pagination.component.min.js +4 -4
- 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 +8 -9
- 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 +1 -2
- 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 +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 +3 -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 +80 -42
- package/assets/js/modules/tabs.js +3 -6
- 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 +64 -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/sass/_bs_grid.scss +4 -1
- package/assets/sass/_components.scss +323 -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} +82 -16
- package/assets/sass/components/actionbar.global.scss +28 -14
- 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 +6 -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.global.scss +57 -1
- package/assets/sass/components/tabs.component.scss +5 -0
- package/assets/sass/components/tabs.scss +7 -3
- 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 +322 -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 +115 -109
- 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 +7 -8
- 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 +14 -16
- package/assets/ts/components/tabs/tabs.component.ts +2 -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 +18 -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 +103 -60
- package/assets/ts/modules/tabs.ts +5 -8
- package/assets/ts/scripts.ts +70 -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/dist/components.es.js +1258 -1063
- package/dist/components.umd.js +473 -195
- 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/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.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/assets/sass/components/{table.scss → table.component.scss} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { ucfirst, unsnake } from './helpers';
|
|
2
|
+
|
|
1
3
|
// #region Functions that setup and trigger other functions
|
|
2
4
|
|
|
3
|
-
export const addClasses = (chartElement: any, chartOuter: any) => {
|
|
5
|
+
export const addClasses = (chartElement: any, chartOuter: any): boolean => {
|
|
4
6
|
// add colour classes
|
|
5
7
|
for (let i = 1; i <= 10; i++) {
|
|
6
8
|
if (chartElement.hasAttribute(`data-colour-${i}`)) {
|
|
@@ -19,7 +21,12 @@ export const addClasses = (chartElement: any, chartOuter: any) => {
|
|
|
19
21
|
return true;
|
|
20
22
|
};
|
|
21
23
|
|
|
22
|
-
export const setupChart = (chartElement: any, chartOuter: any, tableElement: any) => {
|
|
24
|
+
export const setupChart = (chartElement: any, chartOuter: any, tableElement: any): boolean => {
|
|
25
|
+
if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
|
|
26
|
+
setupDoughnutChart(chartElement, chartOuter, tableElement);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
// #region Reset the chart
|
|
24
31
|
// empty divs to re-populate
|
|
25
32
|
const chartKey = chartOuter.querySelector('.chart__key');
|
|
@@ -51,10 +58,32 @@ export const setupChart = (chartElement: any, chartOuter: any, tableElement: any
|
|
|
51
58
|
|
|
52
59
|
return true;
|
|
53
60
|
};
|
|
61
|
+
|
|
62
|
+
export const setupDoughnutChart = (chartElement: any, chartOuter: any, tableElement: any): boolean => {
|
|
63
|
+
// #region Reset the chart
|
|
64
|
+
// empty divs to re-populate
|
|
65
|
+
const chartKey = chartOuter.querySelector('.chart__key');
|
|
66
|
+
chartKey.innerHTML = '';
|
|
67
|
+
|
|
68
|
+
// Remove old input fields
|
|
69
|
+
Array.from(chartOuter.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map(
|
|
70
|
+
(element: any) => {
|
|
71
|
+
element.remove();
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
// #endregion
|
|
75
|
+
|
|
76
|
+
setCellData(chartElement, tableElement);
|
|
77
|
+
|
|
78
|
+
createChartKey(chartOuter, tableElement, chartKey);
|
|
79
|
+
createdoughnuts(chartOuter);
|
|
80
|
+
|
|
81
|
+
return true;
|
|
82
|
+
};
|
|
54
83
|
// #endregion
|
|
55
84
|
|
|
56
85
|
// #region Event handlers and observers
|
|
57
|
-
export const setEventListener = function (chartElement: any, chartOuter: any) {
|
|
86
|
+
export const setEventListener = function (chartElement: any, chartOuter: any): void {
|
|
58
87
|
const chart = chartOuter.querySelector('.chart');
|
|
59
88
|
chart.addEventListener('mousemove', (event: any) => {
|
|
60
89
|
if (event && event.target instanceof HTMLElement && event.target.closest('td:not(:first-child')) {
|
|
@@ -101,14 +130,18 @@ export const setEventListener = function (chartElement: any, chartOuter: any) {
|
|
|
101
130
|
|
|
102
131
|
shadowTable.innerHTML = table.innerHTML;
|
|
103
132
|
setCellData(chartElement, shadowTable);
|
|
133
|
+
|
|
134
|
+
if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {
|
|
135
|
+
createdoughnuts(chartOuter);
|
|
136
|
+
}
|
|
104
137
|
});
|
|
105
138
|
};
|
|
106
139
|
|
|
107
|
-
export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
140
|
+
export const setEventObservers = function (chartElement: any, chartOuter: any): boolean {
|
|
108
141
|
const table = chartElement.querySelector('table');
|
|
109
142
|
const shadowTable = chartOuter.querySelector('table');
|
|
110
143
|
|
|
111
|
-
const attributesUpdated = (mutationList: any, observer: any) => {
|
|
144
|
+
const attributesUpdated = (mutationList: any, observer: any): void => {
|
|
112
145
|
observer.disconnect();
|
|
113
146
|
observer2.disconnect();
|
|
114
147
|
|
|
@@ -123,7 +156,7 @@ export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
|
123
156
|
observer2.observe(chartElement, { attributes: true });
|
|
124
157
|
};
|
|
125
158
|
|
|
126
|
-
const tableUpdated = (mutationList: any, observer: any) => {
|
|
159
|
+
const tableUpdated = (mutationList: any, observer: any): void => {
|
|
127
160
|
observer.disconnect();
|
|
128
161
|
observer2.disconnect();
|
|
129
162
|
|
|
@@ -146,10 +179,19 @@ export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
|
146
179
|
|
|
147
180
|
return true;
|
|
148
181
|
};
|
|
182
|
+
|
|
183
|
+
function getCoordinatesForPercent(percent: number, doughnutCount: number): any {
|
|
184
|
+
// This moves the start point to the top middle point like a clock
|
|
185
|
+
if (doughnutCount > 1) percent = percent - 0.25;
|
|
186
|
+
|
|
187
|
+
const x = Math.cos(2 * Math.PI * percent);
|
|
188
|
+
const y = Math.sin(2 * Math.PI * percent);
|
|
189
|
+
return [x * 100, y * 100];
|
|
190
|
+
}
|
|
149
191
|
// #endregion
|
|
150
192
|
|
|
151
193
|
// #region GET functions
|
|
152
|
-
export const getChartData = function (chartElement: any) {
|
|
194
|
+
export const getChartData = function (chartElement: any): any {
|
|
153
195
|
const table = chartElement.shadowRoot.querySelector('.chart__wrapper table');
|
|
154
196
|
|
|
155
197
|
const min: any = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;
|
|
@@ -177,7 +219,7 @@ export const getChartData = function (chartElement: any) {
|
|
|
177
219
|
return { min, max, yaxis, xaxis, guidelines };
|
|
178
220
|
};
|
|
179
221
|
|
|
180
|
-
function getLargestValue(chartElement: any, table: any) {
|
|
222
|
+
function getLargestValue(chartElement: any, table: any): number {
|
|
181
223
|
const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';
|
|
182
224
|
|
|
183
225
|
const values = Array.from(table.querySelectorAll(selector)).map((element: any) => {
|
|
@@ -192,7 +234,7 @@ function getLargestValue(chartElement: any, table: any) {
|
|
|
192
234
|
return Math.ceil(largestValue);
|
|
193
235
|
}
|
|
194
236
|
|
|
195
|
-
const getValues = function (value: number, min: any, max: any, start?: number) {
|
|
237
|
+
const getValues = function (value: number, min: any, max: any, start?: number): any {
|
|
196
238
|
let cleanValue: string | number = String(value);
|
|
197
239
|
cleanValue = cleanValue.replace('£', '');
|
|
198
240
|
cleanValue = cleanValue.replace('%', '');
|
|
@@ -227,7 +269,7 @@ const getValues = function (value: number, min: any, max: any, start?: number) {
|
|
|
227
269
|
// #endregion
|
|
228
270
|
|
|
229
271
|
// #region SET functions - set data attributes and classes
|
|
230
|
-
export const setCellData = function (chartElement: any, table: any) {
|
|
272
|
+
export const setCellData = function (chartElement: any, table: any): void {
|
|
231
273
|
Array.from(table.querySelectorAll('tbody tr')).forEach((tr: any) => {
|
|
232
274
|
let rowValue = 0;
|
|
233
275
|
// Set the data numeric value if not set
|
|
@@ -318,7 +360,7 @@ export const setCellData = function (chartElement: any, table: any) {
|
|
|
318
360
|
});
|
|
319
361
|
};
|
|
320
362
|
|
|
321
|
-
export const setLongestLabel = function (chartOuter: any) {
|
|
363
|
+
export const setLongestLabel = function (chartOuter: any): void {
|
|
322
364
|
const chartWrapper = chartOuter.querySelector('.chart__wrapper');
|
|
323
365
|
const chartSpacer = chartOuter.querySelector('.chart__spacer span');
|
|
324
366
|
const table = chartOuter.querySelector('.chart table');
|
|
@@ -333,7 +375,7 @@ export const setLongestLabel = function (chartOuter: any) {
|
|
|
333
375
|
chartSpacer.innerHTML = longestLabel;
|
|
334
376
|
};
|
|
335
377
|
|
|
336
|
-
export const setLongestValue = function (chartOuter: any) {
|
|
378
|
+
export const setLongestValue = function (chartOuter: any): void {
|
|
337
379
|
const chartWrapper = chartOuter.querySelector('.chart__wrapper');
|
|
338
380
|
const table = chartOuter.querySelector('.chart table');
|
|
339
381
|
|
|
@@ -352,7 +394,7 @@ export const setLongestValue = function (chartOuter: any) {
|
|
|
352
394
|
|
|
353
395
|
// #region CREATE function
|
|
354
396
|
|
|
355
|
-
export const createChartKey = function (chartOuter: any, tableElement: any, chartKey: any) {
|
|
397
|
+
export const createChartKey = function (chartOuter: any, tableElement: any, chartKey: any): boolean {
|
|
356
398
|
const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;
|
|
357
399
|
//const chartOuter = chartElement.querySelector('.chart__outer');
|
|
358
400
|
|
|
@@ -380,7 +422,7 @@ function createChartKeyItem(
|
|
|
380
422
|
chartKey: any,
|
|
381
423
|
chartOuter: any,
|
|
382
424
|
previousInput: any
|
|
383
|
-
) {
|
|
425
|
+
): any {
|
|
384
426
|
const input = document.createElement('input');
|
|
385
427
|
input.setAttribute('name', `${chartID}-dataset-${index}`);
|
|
386
428
|
input.setAttribute('id', `${chartID}-dataset-${index}`);
|
|
@@ -399,14 +441,19 @@ function createChartKeyItem(
|
|
|
399
441
|
label.setAttribute('for', `${chartID}-dataset-${index}`);
|
|
400
442
|
label.setAttribute('data-label', `${text}`);
|
|
401
443
|
label.setAttribute('part', `key`);
|
|
444
|
+
|
|
445
|
+
const total = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)?.getAttribute('data-numeric');
|
|
446
|
+
|
|
447
|
+
label.setAttribute('data-numeric', total);
|
|
402
448
|
label.innerHTML = `${text}`;
|
|
403
449
|
chartKey.append(label);
|
|
404
450
|
|
|
405
451
|
return previousInput;
|
|
406
452
|
}
|
|
407
453
|
|
|
408
|
-
export const createChartGuidelines = function (chartElement: any, chartGuidelines: any) {
|
|
409
|
-
|
|
454
|
+
export const createChartGuidelines = function (chartElement: any, chartGuidelines: any): any {
|
|
455
|
+
const { min, max, yaxis } = getChartData(chartElement);
|
|
456
|
+
let { guidelines } = getChartData(chartElement);
|
|
410
457
|
|
|
411
458
|
if (!guidelines.length) guidelines = yaxis;
|
|
412
459
|
|
|
@@ -419,7 +466,7 @@ export const createChartGuidelines = function (chartElement: any, chartGuideline
|
|
|
419
466
|
}
|
|
420
467
|
};
|
|
421
468
|
|
|
422
|
-
export const createChartYaxis = function (chartElement: any, chartYaxis: any) {
|
|
469
|
+
export const createChartYaxis = function (chartElement: any, chartYaxis: any): void {
|
|
423
470
|
const { min, max, yaxis } = getChartData(chartElement);
|
|
424
471
|
|
|
425
472
|
chartYaxis.innerHTML = '';
|
|
@@ -431,7 +478,7 @@ export const createChartYaxis = function (chartElement: any, chartYaxis: any) {
|
|
|
431
478
|
}
|
|
432
479
|
};
|
|
433
480
|
|
|
434
|
-
export const createXaxis = function (chartOuter: any) {
|
|
481
|
+
export const createXaxis = function (chartOuter: any): void {
|
|
435
482
|
const chart = chartOuter.querySelector('.chart');
|
|
436
483
|
let chartXaxis = chartOuter.querySelector('.chart__xaxis');
|
|
437
484
|
|
|
@@ -443,7 +490,7 @@ export const createXaxis = function (chartOuter: any) {
|
|
|
443
490
|
chart.prepend(chartXaxis);
|
|
444
491
|
};
|
|
445
492
|
|
|
446
|
-
export const createTooltips = function (chartOuter: any) {
|
|
493
|
+
export const createTooltips = function (chartOuter: any): void {
|
|
447
494
|
const titles = chartOuter.querySelectorAll(
|
|
448
495
|
'thead th[title], tbody th[title]:first-child, tbody td[title]:first-child'
|
|
449
496
|
);
|
|
@@ -456,6 +503,92 @@ export const createTooltips = function (chartOuter: any) {
|
|
|
456
503
|
//title.removeAttribute('title'); // TODO add a supports query for anchor positioning
|
|
457
504
|
});
|
|
458
505
|
};
|
|
506
|
+
|
|
507
|
+
export const createdoughnuts = function (chartOuter: any): void {
|
|
508
|
+
let returnString = '';
|
|
509
|
+
const chartInner = chartOuter.querySelector('.chart');
|
|
510
|
+
let doughnutWrapper = chartOuter.querySelector('.doughnuts');
|
|
511
|
+
|
|
512
|
+
if (!doughnutWrapper) {
|
|
513
|
+
doughnutWrapper = document.createElement('div');
|
|
514
|
+
doughnutWrapper.setAttribute('class', 'doughnuts');
|
|
515
|
+
chartInner.append(doughnutWrapper);
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item: any, index) => {
|
|
519
|
+
let paths = '';
|
|
520
|
+
let tooltips = '';
|
|
521
|
+
let cumulativePercent = 0;
|
|
522
|
+
let total = 0;
|
|
523
|
+
const titleKey = item.querySelectorAll('td')[0];
|
|
524
|
+
const title = titleKey.innerHTML;
|
|
525
|
+
let doughnutCount = 0;
|
|
526
|
+
const rowTotal = item.getAttribute('data-numeric');
|
|
527
|
+
|
|
528
|
+
// Work out the total amount
|
|
529
|
+
Array.from(item.querySelectorAll('td')).forEach((td: any, subindex) => {
|
|
530
|
+
const display = getComputedStyle(td).display;
|
|
531
|
+
|
|
532
|
+
if (subindex != 0 && display != 'none') {
|
|
533
|
+
let value = td.getAttribute('data-numeric');
|
|
534
|
+
|
|
535
|
+
value = value.replace('£', '');
|
|
536
|
+
value = value.replace('%', '');
|
|
537
|
+
value = value.replace(',', '');
|
|
538
|
+
value = Number.parseInt(value);
|
|
539
|
+
|
|
540
|
+
total += value;
|
|
541
|
+
doughnutCount++;
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
|
|
545
|
+
// Create the paths
|
|
546
|
+
Array.from(item.querySelectorAll('td')).forEach((td: any, subindex) => {
|
|
547
|
+
const display = getComputedStyle(td).display;
|
|
548
|
+
|
|
549
|
+
if (subindex != 0 && doughnutCount == 1 && display != 'none') {
|
|
550
|
+
const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;
|
|
551
|
+
|
|
552
|
+
paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};"></path>`;
|
|
553
|
+
tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${td.querySelector('[part="popover"]')?.innerHTML}</span>`;
|
|
554
|
+
} else if (subindex != 0) {
|
|
555
|
+
let value = td.getAttribute('data-numeric');
|
|
556
|
+
const hide = display == 'none' ? 'display: none;' : '';
|
|
557
|
+
|
|
558
|
+
value = value.replace('£', '');
|
|
559
|
+
value = value.replace('%', '');
|
|
560
|
+
value = value.replace(',', '');
|
|
561
|
+
value = Number.parseInt(value);
|
|
562
|
+
|
|
563
|
+
const percent = value / total;
|
|
564
|
+
const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);
|
|
565
|
+
const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);
|
|
566
|
+
const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)
|
|
567
|
+
const pathData = [
|
|
568
|
+
`M 0 0`,
|
|
569
|
+
`L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move
|
|
570
|
+
`A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc
|
|
571
|
+
`L 0 0`, // Line
|
|
572
|
+
].join(' ');
|
|
573
|
+
|
|
574
|
+
paths += `<path d="${pathData}" style="${td.getAttribute('style')} --path-index: ${subindex};${hide}"></path>`;
|
|
575
|
+
tooltips += `<span class="h5 mb-0" part="popover">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${td.querySelector('[part="popover"]')?.innerHTML}</span>`;
|
|
576
|
+
|
|
577
|
+
// each slice starts where the last slice ended, so keep a cumulative percent
|
|
578
|
+
if (display != 'none') cumulativePercent += percent;
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
|
|
582
|
+
returnString += `<div class="doughnut">
|
|
583
|
+
<svg viewBox="-105 -105 210 210" preserveAspectRatio="none" style="--row-index: ${index + 1};">${paths}</svg>
|
|
584
|
+
<div class="doughnut__title" data-numeric="${rowTotal}"><span class="h5 mb-0">${title}</span></div>
|
|
585
|
+
<div class="tooltips">${tooltips}</div>
|
|
586
|
+
</div>`;
|
|
587
|
+
});
|
|
588
|
+
|
|
589
|
+
doughnutWrapper.innerHTML = returnString;
|
|
590
|
+
};
|
|
591
|
+
|
|
459
592
|
// #endregion
|
|
460
593
|
|
|
461
594
|
export default setupChart;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ucfirst, unsnake, numberOfDays } from './helpers';
|
|
2
2
|
|
|
3
3
|
// #region Functions that setup and trigger other functions
|
|
4
|
-
export const setupChart = (chartElement: any, chartOuter: any, tableElement: any) => {
|
|
4
|
+
export const setupChart = (chartElement: any, chartOuter: any, tableElement: any): boolean => {
|
|
5
5
|
// #region Reset the chart
|
|
6
6
|
// empty divs to re-populate
|
|
7
7
|
const chartOptions = chartOuter.querySelector('.chart__options');
|
|
@@ -62,7 +62,7 @@ export const setupChart = (chartElement: any, chartOuter: any, tableElement: any
|
|
|
62
62
|
// #endregion
|
|
63
63
|
|
|
64
64
|
// #region Event handlers and observers
|
|
65
|
-
export const setEventHandlers = function (chartElement: any, chartOuter: any) {
|
|
65
|
+
export const setEventHandlers = function (chartElement: any, chartOuter: any): void {
|
|
66
66
|
const showData = chartOuter.querySelectorAll(':scope > input[type="checkbox"]');
|
|
67
67
|
|
|
68
68
|
const { type } = getChartData(chartElement, chartOuter);
|
|
@@ -89,13 +89,13 @@ export const setEventHandlers = function (chartElement: any, chartOuter: any) {
|
|
|
89
89
|
*/
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
-
export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
92
|
+
export const setEventObservers = function (chartElement: any, chartOuter: any): boolean {
|
|
93
93
|
if (chartElement.hasAttribute('data-series')) return false;
|
|
94
94
|
|
|
95
95
|
const table = chartElement.querySelector('table');
|
|
96
96
|
const newTable = chartOuter.querySelector('table');
|
|
97
97
|
|
|
98
|
-
const attributesUpdated = (mutationList: any, observer: any) => {
|
|
98
|
+
const attributesUpdated = (mutationList: any, observer: any): void => {
|
|
99
99
|
observer.disconnect();
|
|
100
100
|
observer2.disconnect();
|
|
101
101
|
|
|
@@ -114,7 +114,7 @@ export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
|
114
114
|
observer2.observe(chartElement, { attributes: true });
|
|
115
115
|
};
|
|
116
116
|
|
|
117
|
-
const tableUpdated = (mutationList: any, observer: any) => {
|
|
117
|
+
const tableUpdated = (mutationList: any, observer: any): boolean => {
|
|
118
118
|
observer.disconnect();
|
|
119
119
|
observer2.disconnect();
|
|
120
120
|
|
|
@@ -140,7 +140,7 @@ export const setEventObservers = function (chartElement: any, chartOuter: any) {
|
|
|
140
140
|
// #endregion
|
|
141
141
|
|
|
142
142
|
// #region GET functions
|
|
143
|
-
export const getChartData = function (chartElement: any, chartOuter: any) {
|
|
143
|
+
export const getChartData = function (chartElement: any, chartOuter: any): any {
|
|
144
144
|
const table = chartOuter.querySelector('.chart__wrapper table');
|
|
145
145
|
|
|
146
146
|
const min: any = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;
|
|
@@ -188,7 +188,7 @@ export const getChartData = function (chartElement: any, chartOuter: any) {
|
|
|
188
188
|
};
|
|
189
189
|
};
|
|
190
190
|
|
|
191
|
-
function getLargestValue(table: any) {
|
|
191
|
+
function getLargestValue(table: any): number {
|
|
192
192
|
const values = Array.from(table.querySelectorAll('tbody td:not(:first-child)')).map((element: any) => {
|
|
193
193
|
let currentValue: string | number = String(element.textContent);
|
|
194
194
|
currentValue = currentValue.replace('£', '');
|
|
@@ -205,7 +205,7 @@ function getLargestValue(table: any) {
|
|
|
205
205
|
return Math.ceil(largetValue);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
const getValues = function (value: number, min: any, max: any, start?: number) {
|
|
208
|
+
const getValues = function (value: number, min: any, max: any, start?: number): any {
|
|
209
209
|
let cleanValue: string | number = String(value);
|
|
210
210
|
cleanValue = cleanValue.replace('£', '');
|
|
211
211
|
cleanValue = cleanValue.replace('%', '');
|
|
@@ -237,7 +237,7 @@ const getValues = function (value: number, min: any, max: any, start?: number) {
|
|
|
237
237
|
return { percent, axis, bottom };
|
|
238
238
|
};
|
|
239
239
|
|
|
240
|
-
function getCoordinatesForPercent(percent: number, pieCount: number) {
|
|
240
|
+
function getCoordinatesForPercent(percent: number, pieCount: number): any {
|
|
241
241
|
// This moves the start point to the top middle point like a clock
|
|
242
242
|
if (pieCount > 1) percent = percent - 0.25;
|
|
243
243
|
|
|
@@ -249,7 +249,7 @@ function getCoordinatesForPercent(percent: number, pieCount: number) {
|
|
|
249
249
|
// #endregion
|
|
250
250
|
|
|
251
251
|
// #region SET functions - set data attributes and classes
|
|
252
|
-
export const setCellData = function (chartElement: any, chartOuter: any, table: any) {
|
|
252
|
+
export const setCellData = function (chartElement: any, chartOuter: any, table: any): void {
|
|
253
253
|
let { min, max } = getChartData(chartElement, chartOuter);
|
|
254
254
|
|
|
255
255
|
const chartType = chartElement.getAttribute('data-type');
|
|
@@ -457,7 +457,7 @@ export const setCellData = function (chartElement: any, chartOuter: any, table:
|
|
|
457
457
|
});
|
|
458
458
|
};
|
|
459
459
|
|
|
460
|
-
export const setLongestLabel = function (chartOuter: any) {
|
|
460
|
+
export const setLongestLabel = function (chartOuter: any): void {
|
|
461
461
|
const chartWrapper = chartOuter.querySelector('.chart__wrapper');
|
|
462
462
|
const table = chartOuter.querySelector('.chart table');
|
|
463
463
|
// set the longest label attr so that the bar chart knows what margin to set on the left
|
|
@@ -478,7 +478,7 @@ export const setLongestLabel = function (chartOuter: any) {
|
|
|
478
478
|
// #endregion
|
|
479
479
|
|
|
480
480
|
// #region CREATE function
|
|
481
|
-
export const createTypeSwitcher = function (chartElement: any, chartKey: any, chartOptions: any) {
|
|
481
|
+
export const createTypeSwitcher = function (chartElement: any, chartKey: any, chartOptions: any): void {
|
|
482
482
|
const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;
|
|
483
483
|
const availableTypes = chartElement.hasAttribute('data-types')
|
|
484
484
|
? chartElement.getAttribute('data-types').split(',')
|
|
@@ -507,7 +507,7 @@ export const createTypeSwitcher = function (chartElement: any, chartKey: any, ch
|
|
|
507
507
|
}
|
|
508
508
|
};
|
|
509
509
|
|
|
510
|
-
export const createChartKey = function (chartOuter: any, tableElement: any, chartKey: any) {
|
|
510
|
+
export const createChartKey = function (chartOuter: any, tableElement: any, chartKey: any): void | boolean {
|
|
511
511
|
const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;
|
|
512
512
|
//const chartOuter = chartElement.querySelector('.chart__outer');
|
|
513
513
|
|
|
@@ -535,7 +535,7 @@ function createChartKeyItem(
|
|
|
535
535
|
chartKey: any,
|
|
536
536
|
chartOuter: any,
|
|
537
537
|
previousInput: any
|
|
538
|
-
) {
|
|
538
|
+
): any {
|
|
539
539
|
const input = document.createElement('input');
|
|
540
540
|
input.setAttribute('name', `${chartID}-dataset-${index}`);
|
|
541
541
|
input.setAttribute('id', `${chartID}-dataset-${index}`);
|
|
@@ -557,8 +557,9 @@ function createChartKeyItem(
|
|
|
557
557
|
return previousInput;
|
|
558
558
|
}
|
|
559
559
|
|
|
560
|
-
export const createChartGuidelines = function (chartElement: any, chartOuter: any, chartGuidelines: any) {
|
|
561
|
-
|
|
560
|
+
export const createChartGuidelines = function (chartElement: any, chartOuter: any, chartGuidelines: any): void {
|
|
561
|
+
const { increment, guidelines } = getChartData(chartElement, chartOuter);
|
|
562
|
+
let { min, max, yaxis } = getChartData(chartElement, chartOuter);
|
|
562
563
|
|
|
563
564
|
if (guidelines.length) yaxis = guidelines;
|
|
564
565
|
|
|
@@ -586,8 +587,9 @@ export const createChartGuidelines = function (chartElement: any, chartOuter: an
|
|
|
586
587
|
}
|
|
587
588
|
};
|
|
588
589
|
|
|
589
|
-
export const createChartYaxis = function (chartElement: any, chartOuter: any, chartYaxis: any) {
|
|
590
|
-
|
|
590
|
+
export const createChartYaxis = function (chartElement: any, chartOuter: any, chartYaxis: any): void {
|
|
591
|
+
const { yaxis, increment } = getChartData(chartElement, chartOuter);
|
|
592
|
+
let { min, max } = getChartData(chartElement, chartOuter);
|
|
591
593
|
|
|
592
594
|
const startDay = min;
|
|
593
595
|
|
|
@@ -614,7 +616,7 @@ export const createChartYaxis = function (chartElement: any, chartOuter: any, ch
|
|
|
614
616
|
}
|
|
615
617
|
};
|
|
616
618
|
|
|
617
|
-
export const createXaxis = function (chartElement: any, chartOuter: any, xaxis: any) {
|
|
619
|
+
export const createXaxis = function (chartElement: any, chartOuter: any, xaxis: any): void {
|
|
618
620
|
const chart = chartOuter.querySelector('.chart');
|
|
619
621
|
let chartXaxis = chartOuter.querySelector('.chart__xaxis');
|
|
620
622
|
|
|
@@ -636,7 +638,7 @@ export const createXaxis = function (chartElement: any, chartOuter: any, xaxis:
|
|
|
636
638
|
chart.prepend(chartXaxis);
|
|
637
639
|
};
|
|
638
640
|
|
|
639
|
-
export const createLines = function (chartElement: any, chartOuter: any) {
|
|
641
|
+
export const createLines = function (chartElement: any, chartOuter: any): void {
|
|
640
642
|
const { min, max } = getChartData(chartElement, chartOuter);
|
|
641
643
|
|
|
642
644
|
const chartType = chartElement.getAttribute('data-type');
|
|
@@ -702,7 +704,7 @@ export const createLines = function (chartElement: any, chartOuter: any) {
|
|
|
702
704
|
linesWrapper.innerHTML = returnString;
|
|
703
705
|
};
|
|
704
706
|
|
|
705
|
-
export const createPies = function (chartOuter: any) {
|
|
707
|
+
export const createPies = function (chartOuter: any): void {
|
|
706
708
|
let returnString = '';
|
|
707
709
|
const chartInner = chartOuter.querySelector('.chart');
|
|
708
710
|
let pieWrapper = chartOuter.querySelector('.pies');
|
|
@@ -782,7 +784,7 @@ export const createPies = function (chartOuter: any) {
|
|
|
782
784
|
pieWrapper.innerHTML = returnString;
|
|
783
785
|
};
|
|
784
786
|
|
|
785
|
-
export const createSlope = function (chartElement: any, chartOuter: any) {
|
|
787
|
+
export const createSlope = function (chartElement: any, chartOuter: any): void {
|
|
786
788
|
let n: number = 0;
|
|
787
789
|
let totalX: number = 0;
|
|
788
790
|
let totalY: number = 0;
|
|
@@ -835,7 +837,7 @@ export const createSlope = function (chartElement: any, chartOuter: any) {
|
|
|
835
837
|
slopeWrapper.innerHTML = `<svg viewBox="0 0 200 100" class="line" preserveAspectRatio="none"><path fill="none" d="M 0 ${100 - firstYPercent} L 200 ${100 - lastYPercent}" style="--path: path('M 0 100 L 200 100');"></path></svg>`;
|
|
836
838
|
};
|
|
837
839
|
|
|
838
|
-
function createKeyTotals(chartElement: any, chartOuter: any) {
|
|
840
|
+
function createKeyTotals(chartElement: any, chartOuter: any): void {
|
|
839
841
|
let chartTotal = 0;
|
|
840
842
|
|
|
841
843
|
Array.from(
|
|
@@ -869,7 +871,7 @@ function createKeyTotals(chartElement: any, chartOuter: any) {
|
|
|
869
871
|
|
|
870
872
|
if (chartElement.hasAttribute('data-currency')) {
|
|
871
873
|
if (chartElement.getAttribute('data-currency') == 'GBP') {
|
|
872
|
-
// @ts-
|
|
874
|
+
// @ts-expect-error Not sure
|
|
873
875
|
keyTotal = new Intl.NumberFormat('en-GB', {
|
|
874
876
|
style: 'currency',
|
|
875
877
|
currency: 'GBP',
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog, index) => {
|
|
1
|
+
const extendDialogs = (body): void => {
|
|
2
|
+
Array.from(body.querySelectorAll('dialog[open]')).forEach((dialog) => {
|
|
4
3
|
const parent = dialog.closest('.dialog__wrapper');
|
|
5
4
|
|
|
6
5
|
if (!parent) {
|
|
@@ -36,7 +35,7 @@ const extendDialogs = (body) => {
|
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
// When the modal is opened we want to make sure any duplicate checkboxes are matching the originals
|
|
39
|
-
Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element
|
|
38
|
+
Array.from(dialog.querySelectorAll('[data-duplicate]')).forEach((element) => {
|
|
40
39
|
const id = element.getAttribute('data-duplicate');
|
|
41
40
|
const originalInput = document.getElementById(id);
|
|
42
41
|
|
|
@@ -62,7 +61,7 @@ const extendDialogs = (body) => {
|
|
|
62
61
|
dialog.close();
|
|
63
62
|
|
|
64
63
|
// Remove active class from exiting active buttons
|
|
65
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
64
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
66
65
|
btnElement.classList.remove('active');
|
|
67
66
|
});
|
|
68
67
|
|
|
@@ -86,7 +85,7 @@ const extendDialogs = (body) => {
|
|
|
86
85
|
const dialog = event.target.closest('dialog[open]');
|
|
87
86
|
|
|
88
87
|
// Remove active class from exiting active buttons
|
|
89
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
88
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
90
89
|
btnElement.classList.remove('active');
|
|
91
90
|
});
|
|
92
91
|
|
|
@@ -152,7 +151,7 @@ const extendDialogs = (body) => {
|
|
|
152
151
|
}
|
|
153
152
|
|
|
154
153
|
// Remove active class from exiting active buttons
|
|
155
|
-
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement
|
|
154
|
+
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement) => {
|
|
156
155
|
btnElement.removeAttribute('aria-expanded');
|
|
157
156
|
});
|
|
158
157
|
|
|
@@ -219,18 +218,16 @@ const extendDialogs = (body) => {
|
|
|
219
218
|
if (document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]'))
|
|
220
219
|
document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]').close();
|
|
221
220
|
|
|
222
|
-
Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach(
|
|
223
|
-
(
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
);
|
|
221
|
+
Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement) => {
|
|
222
|
+
btnElement.removeAttribute('aria-expanded');
|
|
223
|
+
});
|
|
227
224
|
}
|
|
228
225
|
});
|
|
229
226
|
|
|
230
227
|
return null;
|
|
231
228
|
};
|
|
232
229
|
|
|
233
|
-
export const createDialog = (dialog) => {
|
|
230
|
+
export const createDialog = (dialog): void => {
|
|
234
231
|
// If you are using Vue eevents and bindings its recommended to add in the .mh-lg div manually to the dialog
|
|
235
232
|
if (!dialog.querySelector(':scope .mh-lg') && !dialog.querySelector('iam-multi-step')) {
|
|
236
233
|
dialog.innerHTML = `<div class="mh-lg">${dialog.innerHTML}</div>`;
|