@globalpayments/vega 2.20.0 → 2.21.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/dist/cjs/{app-globals-c199ea5e.js → app-globals-f7f3c776.js} +2 -2
- package/dist/cjs/{child-nodes-event-prevent-slimmer-1a9ac556.js → child-nodes-event-prevent-slimmer-18814356.js} +1 -1
- package/dist/cjs/{event-emit-slimmer-69a0ae5b.js → event-emit-slimmer-95dfc7c2.js} +1 -1
- package/dist/cjs/{form-field-controller-slimmer-8e71addd.js → form-field-controller-slimmer-db68a8da.js} +10 -4
- package/dist/cjs/index-1299d729.js +4 -0
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/{internal-vega-event-manager-908ef630.js → internal-vega-event-manager-6ba0e3ab.js} +1 -1
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/static-remote-invocation-call-registry-d231186a.js +64 -0
- package/dist/cjs/{static-subject-title-35e2a92c.js → static-subject-title-41c88385.js} +4 -0
- package/dist/cjs/vega-accordion.cjs.entry.js +5 -5
- package/dist/cjs/vega-app-header-button.cjs.entry.js +4 -4
- package/dist/cjs/vega-banner.cjs.entry.js +3 -3
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +6 -8
- package/dist/cjs/vega-button-circle.cjs.entry.js +5 -5
- package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
- package/dist/cjs/vega-button.cjs.entry.js +5 -5
- package/dist/cjs/vega-calendar_3.cjs.entry.js +52 -16
- package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-chip.cjs.entry.js +4 -4
- package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
- package/dist/cjs/vega-combo-box.cjs.entry.js +6 -6
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-dialog_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +23 -5
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/{vega-event-id-a05199e1.js → vega-event-id-99d9343f.js} +1 -1
- package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
- package/dist/cjs/vega-field-label.cjs.entry.js +4 -4
- package/dist/cjs/vega-form.cjs.entry.js +6 -6
- package/dist/cjs/vega-hint.cjs.entry.js +38 -0
- package/dist/cjs/vega-image-uploader.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +46 -50
- package/dist/cjs/vega-input-range.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-select.cjs.entry.js +6 -6
- package/dist/cjs/vega-input.cjs.entry.js +22 -11
- package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +4 -4
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination.cjs.entry.js +10 -6
- package/dist/cjs/vega-popover_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +3 -3
- package/dist/cjs/vega-radio_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-signature-capture.cjs.entry.js +5 -5
- package/dist/cjs/{vega-skeleton-loader-controller-38ab6039.js → vega-skeleton-loader-controller-aa3e09d6.js} +1 -1
- package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +5 -5
- package/dist/cjs/vega-table_8.cjs.entry.js +69 -37
- package/dist/cjs/vega-textarea.cjs.entry.js +6 -6
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
- package/dist/cjs/vega.cjs.js +5 -5
- package/dist/collection/collection-manifest.json +6 -0
- package/dist/collection/components/vega-accordion/vega-accordion.js +1 -1
- package/dist/collection/components/vega-breadcrumb/slimmers/controllers/vega-breadcrumb-click-controller.js +2 -4
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.js +15 -1
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +15 -10
- package/dist/collection/components/vega-calendar/vega-calendar-event/vega-calendar-event.js +3 -1
- package/dist/collection/components/vega-calendar/vega-calendar.js +37 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-search-controller.js +6 -0
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-item-level-renderer.js +15 -0
- package/dist/collection/components/vega-hint/vega-hint.js +38 -0
- package/dist/collection/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.js +1 -1
- package/dist/collection/components/vega-input/vega-input.js +1 -1
- package/dist/collection/components/vega-input-phone-number/slimmers/controllers/country-select-controller.js +18 -8
- package/dist/collection/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.js +26 -36
- package/dist/collection/components/vega-input-phone-number/slimmers/renderers/phone-number-input-renderer.js +1 -0
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +0 -2
- package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
- package/dist/collection/components/vega-pagination/vega-pagination.js +6 -2
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-data-source-controller.js +1 -3
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js +30 -29
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sorter.js +33 -0
- package/dist/collection/components/vega-table/test/vega-table-sorter.test.js +508 -0
- package/dist/collection/constants/ui.js +1 -0
- package/dist/collection/helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry.js +3 -3
- package/dist/collection/helpers/change-manager/subject/static-subject/static-subject-title.js +1 -0
- package/dist/collection/helpers/change-manager/test/static-remote-invocation-subject.test.js +3 -3
- package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -1
- package/dist/collection/helpers/formatter/string-formatter/custom-formatter-strategy.js +16 -4
- package/dist/collection/helpers/formatter/test/string-formatter/custom-formatter-strategy.test.js +7 -2
- package/dist/collection/helpers/slimmers/form-field-controller-slimmer.js +9 -3
- package/dist/collection/helpers/slimmers/test/form-field-controller-slimmer.test.js +17 -0
- package/dist/collection/helpers/vega-telemetry-helper/test/vega-env-manager.test.js +1 -1
- package/dist/collection/helpers/vega-telemetry-helper/vega-env-manager.js +2 -2
- package/dist/collection/utils/e2e-utils.js +6 -2
- package/dist/esm/{app-globals-f06cad68.js → app-globals-565328e2.js} +2 -2
- package/dist/esm/{array-8c82516c.js → array-506b88b9.js} +1 -1
- package/dist/esm/{child-nodes-event-prevent-slimmer-64aa84be.js → child-nodes-event-prevent-slimmer-75851864.js} +1 -1
- package/dist/esm/{event-emit-slimmer-61856017.js → event-emit-slimmer-929b3e70.js} +1 -1
- package/dist/esm/{form-field-controller-slimmer-f8f42321.js → form-field-controller-slimmer-b237bb58.js} +11 -5
- package/dist/esm/index-c3505689.js +4 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/{internal-vega-event-manager-16ece1ab.js → internal-vega-event-manager-b0d04798.js} +1 -1
- package/dist/esm/{legend-input-processor-ea4840cb.js → legend-input-processor-abb0b4f4.js} +1 -1
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{mutation-observer-filters-8e5cb1e0.js → mutation-observer-filters-a484f098.js} +1 -1
- package/dist/esm/static-remote-invocation-call-registry-56d7e6b2.js +62 -0
- package/dist/esm/{static-subject-title-2a4d6602.js → static-subject-title-2e153754.js} +3 -1
- package/dist/esm/vega-accordion.entry.js +5 -5
- package/dist/esm/vega-app-header-button.entry.js +4 -4
- package/dist/esm/vega-banner.entry.js +3 -3
- package/dist/esm/vega-bar-chart.entry.js +3 -3
- package/dist/esm/vega-breadcrumb.entry.js +6 -8
- package/dist/esm/vega-button-circle.entry.js +5 -5
- package/dist/esm/vega-button-group_2.entry.js +4 -4
- package/dist/esm/vega-button-link.entry.js +4 -4
- package/dist/esm/vega-button.entry.js +5 -5
- package/dist/esm/vega-calendar_3.entry.js +53 -17
- package/dist/esm/vega-carousel.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +8 -8
- package/dist/esm/vega-chip.entry.js +4 -4
- package/dist/esm/vega-color-picker.entry.js +7 -7
- package/dist/esm/vega-combo-box.entry.js +8 -8
- package/dist/esm/vega-date-picker_2.entry.js +8 -8
- package/dist/esm/vega-dialog_2.entry.js +4 -4
- package/dist/esm/vega-dropdown_5.entry.js +24 -6
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/{vega-event-id-e2ea4301.js → vega-event-id-13e22d1e.js} +1 -1
- package/dist/esm/vega-field-error.entry.js +1 -1
- package/dist/esm/vega-field-label.entry.js +4 -4
- package/dist/esm/vega-form.entry.js +8 -8
- package/dist/esm/vega-hint.entry.js +34 -0
- package/dist/esm/vega-image-uploader.entry.js +8 -8
- package/dist/esm/vega-input-credit-card.entry.js +8 -8
- package/dist/esm/vega-input-phone-number.entry.js +48 -52
- package/dist/esm/vega-input-range.entry.js +8 -8
- package/dist/esm/vega-input-select.entry.js +8 -8
- package/dist/esm/vega-input.entry.js +24 -13
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +4 -4
- package/dist/esm/vega-line-chart.entry.js +3 -3
- package/dist/esm/vega-page-notification_2.entry.js +1 -1
- package/dist/esm/vega-pagination.entry.js +10 -6
- package/dist/esm/vega-pie-chart.entry.js +2 -2
- package/dist/esm/vega-popover_2.entry.js +3 -3
- package/dist/esm/vega-progress-tracker.entry.js +3 -3
- package/dist/esm/vega-radio_2.entry.js +9 -9
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-tile_2.entry.js +8 -8
- package/dist/esm/vega-signature-capture.entry.js +7 -7
- package/dist/esm/{vega-skeleton-loader-controller-5ac7211f.js → vega-skeleton-loader-controller-7378a2e4.js} +1 -1
- package/dist/esm/vega-stepper.entry.js +8 -8
- package/dist/esm/vega-tab-group_2.entry.js +5 -5
- package/dist/esm/vega-table_8.entry.js +71 -39
- package/dist/esm/vega-textarea.entry.js +8 -8
- package/dist/esm/vega-time-picker_2.entry.js +8 -8
- package/dist/esm/vega-toggle-switch.entry.js +3 -3
- package/dist/esm/vega.js +5 -5
- package/dist/esm/{y-axis-input-processor-1d9192ae.js → y-axis-input-processor-08c89594.js} +2 -2
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/controllers/vega-calendar-sub-state-controller.d.ts +1 -0
- package/dist/types/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.d.ts +2 -1
- package/dist/types/components/vega-calendar/vega-calendar-event/vega-calendar-event.d.ts +1 -0
- package/dist/types/components/vega-calendar/vega-calendar.d.ts +11 -0
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-item-level-renderer.d.ts +3 -0
- package/dist/types/components/vega-hint/vega-hint.d.ts +11 -0
- package/dist/types/components/vega-input/types.d.ts +1 -0
- package/dist/types/components/vega-input-phone-number/slimmers/controllers/country-select-controller.d.ts +9 -5
- package/dist/types/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.d.ts +3 -13
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +0 -1
- package/dist/types/components/vega-input-select/types.d.ts +1 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-sort-controller.d.ts +3 -3
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-sorter.d.ts +27 -0
- package/dist/types/components/vega-table/test/vega-table-sorter.test.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table.d.ts +3 -2
- package/dist/types/components.d.ts +21 -0
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry.d.ts +3 -3
- package/dist/types/helpers/change-manager/subject/static-subject/static-subject-title.d.ts +2 -1
- package/dist/types/helpers/formatter/string-formatter/custom-formatter-strategy.d.ts +6 -3
- package/dist/types/helpers/slimmers/form-field-controller-slimmer.d.ts +4 -1
- package/dist/types/utils/e2e-utils.d.ts +2 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-b0cbbf88.entry.js → p-0629c827.entry.js} +1 -1
- package/dist/vega/{p-2a08269c.entry.js → p-0a157187.entry.js} +1 -1
- package/dist/vega/{p-9eef4b8c.entry.js → p-0fdbffc4.entry.js} +1 -1
- package/dist/vega/{p-ce48be2b.entry.js → p-10456650.entry.js} +1 -1
- package/dist/vega/{p-4b1ed9e1.entry.js → p-1496ae4a.entry.js} +1 -1
- package/dist/vega/{p-72f38014.entry.js → p-15604d96.entry.js} +1 -1
- package/dist/vega/{p-0776022d.entry.js → p-1e7118b1.entry.js} +1 -1
- package/dist/vega/p-1f52fbdc.entry.js +1 -0
- package/dist/vega/{p-a2c10ac6.entry.js → p-2113e8a0.entry.js} +1 -1
- package/dist/vega/{p-52171abe.entry.js → p-21688c09.entry.js} +1 -1
- package/dist/vega/p-22cffbcc.entry.js +1 -0
- package/dist/vega/{p-f8975f50.js → p-33596687.js} +1 -1
- package/dist/vega/{p-96fda429.entry.js → p-394a4289.entry.js} +1 -1
- package/dist/vega/{p-27327fc6.js → p-3f20d9f0.js} +1 -1
- package/dist/vega/{p-91077f54.entry.js → p-4c919221.entry.js} +1 -1
- package/dist/vega/{p-75a78fcb.entry.js → p-4cf6fea1.entry.js} +1 -1
- package/dist/vega/p-4d4648f8.js +1 -0
- package/dist/vega/{p-88b42b8e.js → p-4dc711c1.js} +1 -1
- package/dist/vega/p-507d3a25.js +1 -0
- package/dist/vega/p-5f136969.entry.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-dcf93050.entry.js → p-68ead15a.entry.js} +1 -1
- package/dist/vega/{p-f155aba3.entry.js → p-6aab349d.entry.js} +1 -1
- package/dist/vega/{p-59373fa3.entry.js → p-6d7fa33c.entry.js} +1 -1
- package/dist/vega/p-7b2315b5.entry.js +1 -0
- package/dist/vega/{p-f7236eef.entry.js → p-8f13530c.entry.js} +1 -1
- package/dist/vega/{p-9e0314dd.entry.js → p-9c3ed69a.entry.js} +1 -1
- package/dist/vega/{p-1951d74f.entry.js → p-9d58efb1.entry.js} +1 -1
- package/dist/vega/{p-fbc0f4fd.js → p-9fc2882a.js} +1 -1
- package/dist/vega/{p-0477bb3e.entry.js → p-a1557df0.entry.js} +1 -1
- package/dist/vega/{p-beaeeaaf.entry.js → p-a8b216c0.entry.js} +1 -1
- package/dist/vega/{p-122dd21c.entry.js → p-a8f406e3.entry.js} +1 -1
- package/dist/vega/p-ae403881.entry.js +1 -0
- package/dist/vega/p-af4e1120.entry.js +1 -0
- package/dist/vega/{p-9ddfbe02.entry.js → p-b211ca98.entry.js} +1 -1
- package/dist/vega/{p-8250b935.js → p-b32611f0.js} +1 -1
- package/dist/vega/p-b8a63b73.js +1 -0
- package/dist/vega/{p-37e34b11.entry.js → p-b8e45e21.entry.js} +1 -1
- package/dist/vega/p-bb63021c.entry.js +1 -0
- package/dist/vega/{p-d77148c0.entry.js → p-bc37ab37.entry.js} +1 -1
- package/dist/vega/{p-d87980fe.js → p-c216dfc3.js} +1 -1
- package/dist/vega/{p-5ebb355b.js → p-c4542d96.js} +1 -1
- package/dist/vega/{p-6f62b38f.entry.js → p-ca905ecc.entry.js} +1 -1
- package/dist/vega/{p-11e7deae.entry.js → p-cbb1c0a7.entry.js} +1 -1
- package/dist/vega/{p-516b24fc.entry.js → p-cee7b0e6.entry.js} +1 -1
- package/dist/vega/{p-9d75e265.entry.js → p-cf0c2937.entry.js} +1 -1
- package/dist/vega/{p-bd19100b.entry.js → p-d5e0c79c.entry.js} +1 -1
- package/dist/vega/{p-1c1ebbbf.entry.js → p-d7b21179.entry.js} +1 -1
- package/dist/vega/{p-0d7d26a1.entry.js → p-db129cbf.entry.js} +1 -1
- package/dist/vega/{p-7d2ef81d.js → p-ddc70a7b.js} +1 -1
- package/dist/vega/{p-8b4e8250.entry.js → p-e48c71be.entry.js} +1 -1
- package/dist/vega/p-e66d54c5.entry.js +1 -0
- package/dist/vega/{p-f9dc62a3.entry.js → p-e9851b18.entry.js} +1 -1
- package/dist/vega/{p-f3f22a96.entry.js → p-ed0d4be8.entry.js} +1 -1
- package/dist/vega/{p-69b28805.js → p-ee68920f.js} +1 -1
- package/dist/vega/{p-be57a828.entry.js → p-f58e4e4a.entry.js} +1 -1
- package/dist/vega/p-f5ebc64a.js +1 -0
- package/dist/vega/{p-4aa84e12.entry.js → p-faf4cfd8.entry.js} +1 -1
- package/dist/vega/{p-2295b3e5.entry.js → p-fb7ca3e4.entry.js} +1 -1
- package/dist/vega/{p-dcde7c0f.entry.js → p-fbd75ce7.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/vega/p-08c6ec82.entry.js +0 -1
- package/dist/vega/p-277e29a4.entry.js +0 -1
- package/dist/vega/p-53f24899.entry.js +0 -1
- package/dist/vega/p-6ddc92df.entry.js +0 -1
- package/dist/vega/p-b07f0e8c.entry.js +0 -1
- package/dist/vega/p-bb491bed.js +0 -1
- package/dist/vega/p-cbeb3e3c.entry.js +0 -1
- package/dist/vega/p-d165d4b7.js +0 -1
- package/dist/vega/p-dd9e0b55.entry.js +0 -1
- package/dist/vega/p-ec045268.js +0 -1
|
@@ -57,6 +57,7 @@ export class VegaCalendar {
|
|
|
57
57
|
this.moreActionClickEmitter = createEventEmitSlimmer(VegaCalendar, VegaMoreActionClick);
|
|
58
58
|
this.changeEventPrevent = new ChildNodesEventPreventSlimmer([VegaChange], () => this.switchPanelRenderer.getSwitchPanelRef());
|
|
59
59
|
this.timeFormatNotifySlimmer = createSubStateNotifySlimmer(VegaCalendar, 'timeFormat', 'watchTimeFormat');
|
|
60
|
+
this.showEventColorBarNotifySlimmer = createSubStateNotifySlimmer(VegaCalendar, 'showEventColorBar', 'watchShowEventColorBar');
|
|
60
61
|
this.showAllEventsInDayOrWeekView = false;
|
|
61
62
|
this.calendarEvents = [];
|
|
62
63
|
/**
|
|
@@ -68,6 +69,10 @@ export class VegaCalendar {
|
|
|
68
69
|
* Specifies the time format of the calendar.
|
|
69
70
|
*/
|
|
70
71
|
this.timeFormat = '24-hour';
|
|
72
|
+
/**
|
|
73
|
+
* Controls the visibility of the calendar's event color bar.
|
|
74
|
+
*/
|
|
75
|
+
this.showEventColorBar = true;
|
|
71
76
|
}
|
|
72
77
|
/**
|
|
73
78
|
* Tracks changes to the current period state.
|
|
@@ -102,6 +107,14 @@ export class VegaCalendar {
|
|
|
102
107
|
watchTimeFormat(newValue) {
|
|
103
108
|
methodPlaceholder(newValue);
|
|
104
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Monitors changes in the visibility of the calendar's event color bar.
|
|
112
|
+
*
|
|
113
|
+
* @param {boolean} newValue
|
|
114
|
+
*/
|
|
115
|
+
watchShowEventColorBar(newValue) {
|
|
116
|
+
methodPlaceholder(newValue);
|
|
117
|
+
}
|
|
105
118
|
render() {
|
|
106
119
|
return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
|
|
107
120
|
}
|
|
@@ -199,6 +212,24 @@ export class VegaCalendar {
|
|
|
199
212
|
"tags": [],
|
|
200
213
|
"text": "Defines the configuration options for the more action button's dropdown menu."
|
|
201
214
|
}
|
|
215
|
+
},
|
|
216
|
+
"showEventColorBar": {
|
|
217
|
+
"type": "boolean",
|
|
218
|
+
"mutable": false,
|
|
219
|
+
"complexType": {
|
|
220
|
+
"original": "boolean",
|
|
221
|
+
"resolved": "boolean",
|
|
222
|
+
"references": {}
|
|
223
|
+
},
|
|
224
|
+
"required": false,
|
|
225
|
+
"optional": false,
|
|
226
|
+
"docs": {
|
|
227
|
+
"tags": [],
|
|
228
|
+
"text": "Controls the visibility of the calendar's event color bar."
|
|
229
|
+
},
|
|
230
|
+
"attribute": "show-event-color-bar",
|
|
231
|
+
"reflect": false,
|
|
232
|
+
"defaultValue": "true"
|
|
202
233
|
}
|
|
203
234
|
}; }
|
|
204
235
|
static get states() { return {
|
|
@@ -383,6 +414,9 @@ export class VegaCalendar {
|
|
|
383
414
|
}, {
|
|
384
415
|
"propName": "timeFormat",
|
|
385
416
|
"methodName": "watchTimeFormat"
|
|
417
|
+
}, {
|
|
418
|
+
"propName": "showEventColorBar",
|
|
419
|
+
"methodName": "watchShowEventColorBar"
|
|
386
420
|
}]; }
|
|
387
421
|
}
|
|
388
422
|
__decorate([
|
|
@@ -460,3 +494,6 @@ __decorate([
|
|
|
460
494
|
__decorate([
|
|
461
495
|
InjectVegaSlimmer()
|
|
462
496
|
], VegaCalendar.prototype, "timeFormatNotifySlimmer", void 0);
|
|
497
|
+
__decorate([
|
|
498
|
+
InjectVegaSlimmer()
|
|
499
|
+
], VegaCalendar.prototype, "showEventColorBarNotifySlimmer", void 0);
|
|
@@ -5,6 +5,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
|
+
import staticRemoteInvocationCallRegistry from '../../../../helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry';
|
|
9
|
+
import { DROPDOWN_SEARCH_INTERNAL_OVERRIDEN } from '../../../../helpers/change-manager/subject/static-subject/static-subject-title';
|
|
8
10
|
/**
|
|
9
11
|
* The `VegaDropdownSearchController` class is a TypeScript class that provides methods for searching
|
|
10
12
|
* and filtering dropdown items based on a search string.
|
|
@@ -46,6 +48,10 @@ export class VegaDropdownSearchController extends VegaSlimmer {
|
|
|
46
48
|
* @returns {VegaDropdownSourceItem[]} an array of VegaDropdownSourceItem objects.
|
|
47
49
|
*/
|
|
48
50
|
searchSource(source, result) {
|
|
51
|
+
const searchResult = staticRemoteInvocationCallRegistry.call(DROPDOWN_SEARCH_INTERNAL_OVERRIDEN, source, this.searchString, this.caseSensitive);
|
|
52
|
+
if (searchResult) {
|
|
53
|
+
return searchResult;
|
|
54
|
+
}
|
|
49
55
|
source.forEach((item) => {
|
|
50
56
|
if (item['children']) {
|
|
51
57
|
const filtered = this.searchSource(item['children'], []);
|
|
@@ -6,14 +6,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { h } from '@stencil/core';
|
|
8
8
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import staticRemoteInvocationCallRegistry from '../../../../helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry';
|
|
10
|
+
import { DROPDOWN_RENDER_ITEM_INTERNAL_OVERRIDEN } from '../../../../helpers/change-manager/subject/static-subject/static-subject-title';
|
|
9
11
|
export class VegaDropdownItemLevelRenderer extends VegaSlimmer {
|
|
10
12
|
render(item, fixHeight) {
|
|
13
|
+
const renderResult = staticRemoteInvocationCallRegistry.call(DROPDOWN_RENDER_ITEM_INTERNAL_OVERRIDEN, item, fixHeight);
|
|
14
|
+
if (renderResult) {
|
|
15
|
+
return renderResult;
|
|
16
|
+
}
|
|
11
17
|
return (h("vega-dropdown-item", Object.assign({}, item, { itemKey: item.key, height: fixHeight, prefixIcon: item.prefixIcon })));
|
|
12
18
|
}
|
|
13
19
|
}
|
|
20
|
+
__decorate([
|
|
21
|
+
MapToComponentField()
|
|
22
|
+
], VegaDropdownItemLevelRenderer.prototype, "host", void 0);
|
|
14
23
|
__decorate([
|
|
15
24
|
MapToComponentField()
|
|
16
25
|
], VegaDropdownItemLevelRenderer.prototype, "selectType", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
MapToComponentField()
|
|
28
|
+
], VegaDropdownItemLevelRenderer.prototype, "caseSensitive", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
MapToComponentField()
|
|
31
|
+
], VegaDropdownItemLevelRenderer.prototype, "searchString", void 0);
|
|
17
32
|
__decorate([
|
|
18
33
|
MapToComponentField()
|
|
19
34
|
], VegaDropdownItemLevelRenderer.prototype, "selectedController", void 0);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Component, Host, h, Element } from '@stencil/core';
|
|
8
|
+
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
|
|
10
|
+
import { sanitizeVegaComponent } from '../../utils/component';
|
|
11
|
+
/**
|
|
12
|
+
* @VegaInternalComponent
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* This is an internal used component and shouldn't be used by client,
|
|
16
|
+
* it doesn't show up in storybook either.
|
|
17
|
+
*/
|
|
18
|
+
export class VegaHint {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.globalSlimmers = {};
|
|
21
|
+
this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
return sanitizeVegaComponent(h(Host, null,
|
|
25
|
+
h("vega-box", { padding: { x: 'size-8', top: 'size-4' } },
|
|
26
|
+
h("vega-font", { variant: "font-footnote1-short", color: "text-secondary" },
|
|
27
|
+
h("slot", null)))), this.host);
|
|
28
|
+
}
|
|
29
|
+
static get is() { return "vega-hint"; }
|
|
30
|
+
static get encapsulation() { return "shadow"; }
|
|
31
|
+
static get elementRef() { return "host"; }
|
|
32
|
+
}
|
|
33
|
+
__decorate([
|
|
34
|
+
InjectVegaGlobalSlimmer()
|
|
35
|
+
], VegaHint.prototype, "globalSlimmers", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
InjectVegaSlimmer()
|
|
38
|
+
], VegaHint.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
|
|
@@ -98,7 +98,7 @@ export class VegaInputMaskConfigController extends StringInputFormatterSlimmer {
|
|
|
98
98
|
stringFormatStrategy = new StringMaskStrategy(maskConfig.options);
|
|
99
99
|
break;
|
|
100
100
|
case 'custom-formatter':
|
|
101
|
-
stringFormatStrategy = new CustomFormatterStrategy(maskConfig.formatter);
|
|
101
|
+
stringFormatStrategy = new CustomFormatterStrategy(maskConfig.formatter, maskConfig.resetCaretPosition);
|
|
102
102
|
break;
|
|
103
103
|
}
|
|
104
104
|
if (this.type === 'number' && maskTrigger === 'input' && !maskConfig) {
|
|
@@ -670,7 +670,7 @@ export class VegaInput {
|
|
|
670
670
|
"mutable": false,
|
|
671
671
|
"complexType": {
|
|
672
672
|
"original": "MaskConfigType | MaskConfigType[]",
|
|
673
|
-
"resolved": "MaskConfigType[] | ({ type: \"number\" | \"phone\" | \"zipcode\" | \"taxId\" | \"custom\" | \"thousand-comma\" | \"custom-formatter\"; options?: MaskConfig | NumberMaskConfig; trigger?: \"blur\" | \"input\"; formatter?: (value: string) => string; })",
|
|
673
|
+
"resolved": "MaskConfigType[] | ({ type: \"number\" | \"phone\" | \"zipcode\" | \"taxId\" | \"custom\" | \"thousand-comma\" | \"custom-formatter\"; options?: MaskConfig | NumberMaskConfig; trigger?: \"blur\" | \"input\"; formatter?: (value: string) => string; resetCaretPosition?: boolean; })",
|
|
674
674
|
"references": {
|
|
675
675
|
"MaskConfigType": {
|
|
676
676
|
"location": "import",
|
|
@@ -6,19 +6,31 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { getCountries } from 'libphonenumber-js';
|
|
9
|
+
import staticRemoteInvocationCallRegistry from '../../../../helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry';
|
|
10
|
+
import { DROPDOWN_SEARCH_INTERNAL_OVERRIDEN } from '../../../../helpers/change-manager/subject/static-subject/static-subject-title';
|
|
11
|
+
import { COUNTRIES } from '../../assets/countries';
|
|
9
12
|
/**
|
|
10
13
|
* The `CountrySelectController` class in TypeScript includes methods to set the search string and
|
|
11
14
|
* countryCode properties.
|
|
12
15
|
*/
|
|
13
16
|
export class CountrySelectController extends VegaSlimmer {
|
|
14
17
|
/**
|
|
15
|
-
*
|
|
18
|
+
* Registers a remote invocation call for a dropdown search.
|
|
19
|
+
*/
|
|
20
|
+
static registerRemoteDropdownSearch() {
|
|
21
|
+
staticRemoteInvocationCallRegistry.register(DROPDOWN_SEARCH_INTERNAL_OVERRIDEN, this.filterDropdownSourcesBySearchString.bind(this));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Remote invocation call for a dropdown search.
|
|
16
25
|
*
|
|
17
|
-
* @param {
|
|
18
|
-
*
|
|
26
|
+
* @param {DropdownSourceItem[]} source - Source of dropdown.
|
|
27
|
+
* @param {string} searchString - Searching string of dropdown.
|
|
28
|
+
* @returns {DropdownSourceItem[]} The searched source.
|
|
19
29
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
static filterDropdownSourcesBySearchString(source, searchString) {
|
|
31
|
+
return source.filter((item) => `${COUNTRIES[item.key].toLowerCase()} +${item.label}`
|
|
32
|
+
.toLowerCase()
|
|
33
|
+
.includes(searchString.toLowerCase()));
|
|
22
34
|
}
|
|
23
35
|
/**
|
|
24
36
|
* The function `setCountryCode` sets the countryCode property of an object to the specified VegaCountryCode value.
|
|
@@ -32,9 +44,7 @@ export class CountrySelectController extends VegaSlimmer {
|
|
|
32
44
|
}
|
|
33
45
|
CountrySelectController.defaultCountryCode = 'US';
|
|
34
46
|
CountrySelectController.defaultAllowedCountryCodes = getCountries();
|
|
35
|
-
__decorate([
|
|
36
|
-
MapToComponentField({ writable: true })
|
|
37
|
-
], CountrySelectController.prototype, "countryCodeSearchString", void 0);
|
|
38
47
|
__decorate([
|
|
39
48
|
MapToComponentField({ writable: true })
|
|
40
49
|
], CountrySelectController.prototype, "countryCode", void 0);
|
|
50
|
+
CountrySelectController.registerRemoteDropdownSearch();
|
|
@@ -7,11 +7,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { h } from '@stencil/core';
|
|
8
8
|
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
9
|
import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
10
|
-
import { VegaChange
|
|
10
|
+
import { VegaChange } from '../../../../helpers/event-manager/event-id/vega-event-id';
|
|
11
11
|
import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
|
|
12
12
|
import { CountryFlags } from '../../assets/country-flags';
|
|
13
13
|
import { getCountryCallingCode } from 'libphonenumber-js';
|
|
14
14
|
import { COUNTRIES } from '../../assets/countries';
|
|
15
|
+
import staticRemoteInvocationCallRegistry from '../../../../helpers/change-manager/subject/static-remote-invocation-subject/static-remote-invocation-call-registry';
|
|
16
|
+
import { DROPDOWN_RENDER_ITEM_INTERNAL_OVERRIDEN } from '../../../../helpers/change-manager/subject/static-subject/static-subject-title';
|
|
15
17
|
export class CountrySelectRenderer extends VegaSlimmer {
|
|
16
18
|
constructor() {
|
|
17
19
|
super(...arguments);
|
|
@@ -24,31 +26,15 @@ export class CountrySelectRenderer extends VegaSlimmer {
|
|
|
24
26
|
void this.inputSelectRef.doOpen();
|
|
25
27
|
};
|
|
26
28
|
/**
|
|
27
|
-
* This `
|
|
29
|
+
* This `renderDropdownItem` function is responsible for rendering a dropdown item for a specific country in
|
|
28
30
|
* the `VegaInputPhoneNumberCountryCodeRenderer` component.
|
|
29
31
|
*/
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
const callingCodeWithPrefix = `+${callingCode}`;
|
|
33
|
-
return (h("vega-dropdown-item", { label: callingCodeWithPrefix, itemKey: countryCode, key: countryCode },
|
|
32
|
+
this.renderDropdownItem = (item, fixHeight) => {
|
|
33
|
+
return (h("vega-dropdown-item", { height: fixHeight, label: item.label, itemKey: item.key, key: item.key },
|
|
34
34
|
h("vega-flex", { alignItems: "center", gap: "size-12" },
|
|
35
|
-
h("vega-icon", { icon: VegaInternalIconManager.getIconKey(
|
|
36
|
-
h("vega-font", { variant: "font-field-value", color: "text-primary" },
|
|
37
|
-
h("vega-font", { variant: "font-field-value", color: "text-primary" }, `(${
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* The `private countrySearchFilter` function is a filter function defined within the
|
|
41
|
-
* `CountrySelectController` class. It takes a `VegaCountryType` object as input and returns a boolean
|
|
42
|
-
* value based on whether the country matches the search criteria specified by the `countryCodeSearchString`
|
|
43
|
-
* property of the class.
|
|
44
|
-
*
|
|
45
|
-
* @param {VegaCountryType} country - the country to be searched
|
|
46
|
-
* @returns {boolean} the boolean return value
|
|
47
|
-
*/
|
|
48
|
-
this.countrySearchFilter = (country) => {
|
|
49
|
-
return this.countryCodeSearchString
|
|
50
|
-
? `${country.name.toLowerCase()} +${country.callingCode}`.includes(this.countryCodeSearchString.toLowerCase())
|
|
51
|
-
: true;
|
|
35
|
+
h("vega-icon", { icon: VegaInternalIconManager.getIconKey(item.key), size: "size-16" }),
|
|
36
|
+
h("vega-font", { variant: "font-field-value", color: "text-primary" }, COUNTRIES[item.key]),
|
|
37
|
+
h("vega-font", { variant: "font-field-value", color: "text-primary" }, `(${item.label})`))));
|
|
52
38
|
};
|
|
53
39
|
/**
|
|
54
40
|
* The `private customCountriesFilter` function is a custom filter function used to filter out
|
|
@@ -82,8 +68,15 @@ export class CountrySelectRenderer extends VegaSlimmer {
|
|
|
82
68
|
* rendering the JSX structure of the component. Here's a breakdown of what it is doing:
|
|
83
69
|
*/
|
|
84
70
|
render() {
|
|
71
|
+
const countries = this.getCountrySelectOptions();
|
|
85
72
|
return (h("vega-box", null,
|
|
86
|
-
h("vega-input-select", {
|
|
73
|
+
h("vega-input-select", { source: countries.map((country) => ({
|
|
74
|
+
id: country.countryCode,
|
|
75
|
+
displayName: `+${country.callingCode}`,
|
|
76
|
+
})), vegaDropdownProps: {
|
|
77
|
+
matchTargetWidth: false,
|
|
78
|
+
size: this.estimateMaxWidthOfCountries(countries),
|
|
79
|
+
}, size: this.size, prefixIcon: VegaInternalIconManager.getIconKey(this.countryCode), disabled: this.disabled, placeholder: "", ref: (inputSelect) => {
|
|
87
80
|
this.inputSelectRef = inputSelect;
|
|
88
81
|
DomNodeSubjectObserverFactory.addUniqueObserverToNode(inputSelect, VegaChange,
|
|
89
82
|
/*
|
|
@@ -94,12 +87,8 @@ export class CountrySelectRenderer extends VegaSlimmer {
|
|
|
94
87
|
(e) => {
|
|
95
88
|
this.handleCountrySelectChange(e.detail);
|
|
96
89
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
100
|
-
}, value: this.countryCode },
|
|
101
|
-
h("div", { slot: "items" },
|
|
102
|
-
h("div", null, this.getCountrySelectOptions().map((country) => this.renderOption(country)))))));
|
|
90
|
+
staticRemoteInvocationCallRegistry.register(DROPDOWN_RENDER_ITEM_INTERNAL_OVERRIDEN, this.renderDropdownItem.bind(this));
|
|
91
|
+
}, value: this.countryCode })));
|
|
103
92
|
}
|
|
104
93
|
/*
|
|
105
94
|
* The below method is e2e-test covered in
|
|
@@ -123,9 +112,7 @@ export class CountrySelectRenderer extends VegaSlimmer {
|
|
|
123
112
|
* `countrySearchFilter` filters.
|
|
124
113
|
*/
|
|
125
114
|
getCountrySelectOptions() {
|
|
126
|
-
return this.constructCountryArray(CountrySelectRenderer.allCountries)
|
|
127
|
-
.filter(this.customCountriesFilter)
|
|
128
|
-
.filter(this.countrySearchFilter);
|
|
115
|
+
return this.constructCountryArray(CountrySelectRenderer.allCountries).filter(this.customCountriesFilter);
|
|
129
116
|
}
|
|
130
117
|
/**
|
|
131
118
|
* The function constructCountryArray takes a list of country names and returns an array of country
|
|
@@ -146,6 +133,12 @@ export class CountrySelectRenderer extends VegaSlimmer {
|
|
|
146
133
|
name: countries[country],
|
|
147
134
|
}));
|
|
148
135
|
}
|
|
136
|
+
estimateMaxWidthOfCountries(countries) {
|
|
137
|
+
const maxLength = Math.max(...countries.map((country) => country.name.length));
|
|
138
|
+
// 162 is extra element width in dropdown-item, includes checked icon, country icon, country calling code,
|
|
139
|
+
// and gap of item, padding of item.
|
|
140
|
+
return maxLength * 8.5 + 162;
|
|
141
|
+
}
|
|
149
142
|
}
|
|
150
143
|
(() => {
|
|
151
144
|
VegaInternalIconManager.register(CountryFlags);
|
|
@@ -163,9 +156,6 @@ __decorate([
|
|
|
163
156
|
__decorate([
|
|
164
157
|
MapToComponentField()
|
|
165
158
|
], CountrySelectRenderer.prototype, "allowedCountryCodes", void 0);
|
|
166
|
-
__decorate([
|
|
167
|
-
MapToComponentField()
|
|
168
|
-
], CountrySelectRenderer.prototype, "countryCodeSearchString", void 0);
|
|
169
159
|
__decorate([
|
|
170
160
|
MapToComponentField()
|
|
171
161
|
], CountrySelectRenderer.prototype, "countrySelectController", void 0);
|
|
@@ -55,7 +55,6 @@ export class VegaInputPhoneNumber {
|
|
|
55
55
|
inputContainerGetter: () => this.inputPhoneNumberRenderer.getInputPhoneNumberContainerRef(),
|
|
56
56
|
touchableAreaGetter: () => [this.phoneNumberInputRenderer.getInputRef()],
|
|
57
57
|
});
|
|
58
|
-
this.countryCodeSearchString = '';
|
|
59
58
|
this.phoneNumberInputValue = '';
|
|
60
59
|
/**
|
|
61
60
|
* Specifies the label or title for the phone number input field.
|
|
@@ -363,7 +362,6 @@ export class VegaInputPhoneNumber {
|
|
|
363
362
|
}
|
|
364
363
|
}; }
|
|
365
364
|
static get states() { return {
|
|
366
|
-
"countryCodeSearchString": {},
|
|
367
365
|
"phoneNumberInputValue": {}
|
|
368
366
|
}; }
|
|
369
367
|
static get events() { return [{
|
|
@@ -437,7 +437,7 @@ export class VegaInputSelect {
|
|
|
437
437
|
"mutable": false,
|
|
438
438
|
"complexType": {
|
|
439
439
|
"original": "VegaDropdownPropsForSelect",
|
|
440
|
-
"resolved": "{ caseSensitive?: boolean; matchContainerHeight?: boolean; matchTargetWidth?: boolean; maxHeight?: number; positionRelativeTo?: string; searchable?: boolean; useDefaultFilter?: boolean; }",
|
|
440
|
+
"resolved": "{ caseSensitive?: boolean; matchContainerHeight?: boolean; matchTargetWidth?: boolean; maxHeight?: number; positionRelativeTo?: string; searchable?: boolean; size?: ResponsiveType<SizeType>; useDefaultFilter?: boolean; }",
|
|
441
441
|
"references": {
|
|
442
442
|
"VegaDropdownPropsForSelect": {
|
|
443
443
|
"location": "import",
|
|
@@ -69,8 +69,12 @@ export class VegaPagination {
|
|
|
69
69
|
switch (item) {
|
|
70
70
|
case 'currentPageLabel':
|
|
71
71
|
return (h(VegaPaginationCurrentPageLabel, { total: this.total, current: this.current, pageSize: this.pageSize }));
|
|
72
|
-
case 'pageSizeSelector':
|
|
73
|
-
|
|
72
|
+
case 'pageSizeSelector': {
|
|
73
|
+
const pageSizeSelectorOptions = this.pageSizeSelectorOptions.includes(this.pageSize)
|
|
74
|
+
? this.pageSizeSelectorOptions
|
|
75
|
+
: [...this.pageSizeSelectorOptions, this.pageSize];
|
|
76
|
+
return (h(VegaPaginationPageSizeSelector, { pageSize: this.pageSize, pageSizeSelectorOptions: pageSizeSelectorOptions, onChange: this.onPageSizeSelectorChange }));
|
|
77
|
+
}
|
|
74
78
|
case 'pageSelector':
|
|
75
79
|
return (h(VegaPaginationPageSelector, { current: this.current, total: this.total, onChange: this.onPageSelectorChange, pageCount: this.pageCount }));
|
|
76
80
|
case 'goTo':
|
|
@@ -133,9 +133,7 @@ export class VegaTableDataSourceController extends VegaSlimmer {
|
|
|
133
133
|
? this.columns.filter((column) => column.sorter && column.sorter !== 'event' && this.sortersMap.has(column.prop))
|
|
134
134
|
: [];
|
|
135
135
|
if (sortedColumns.length > 0) {
|
|
136
|
-
|
|
137
|
-
const sortedOrder = this.sortersMap.get(sortProp).order;
|
|
138
|
-
this.setCurrentData(this.vegaTableSortController.sortData(this.dataSource, sortProp, sortedOrder));
|
|
136
|
+
this.setCurrentData(this.vegaTableSortController.sortData(this.dataSource, Array.from(this.sortersMap.values())));
|
|
139
137
|
}
|
|
140
138
|
else {
|
|
141
139
|
this.setCurrentData(this.dataSource);
|
package/dist/collection/components/vega-table/slimmers/controllers/vega-table-sort-controller.js
CHANGED
|
@@ -6,32 +6,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { isNonNullable } from '../../../../types/type-guard';
|
|
9
|
+
import { VegaTableSorter } from './vega-table-sorter';
|
|
9
10
|
/**
|
|
10
11
|
* The sort controller for the vega-table
|
|
11
12
|
*/
|
|
12
13
|
export class VegaTableSortController extends VegaSlimmer {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
/**
|
|
16
|
-
* The method to sort the data by sorter which include prop name and order
|
|
17
|
-
*
|
|
18
|
-
* @param {VegaTableDataSourceItem[]} data - The source that will be sorted
|
|
19
|
-
* @param {string} sortProp - The prop name of which prop you want to sort by
|
|
20
|
-
* @param {VegaTableSortOrderType} sortOrder - The order of the sorter
|
|
21
|
-
* @returns {VegaTableDataSourceItem[]} The sorted data source
|
|
22
|
-
*/
|
|
23
|
-
this.sortData = (data, sortProp, sortOrder) => {
|
|
24
|
-
const sorter = this.columns.find((column) => typeof column.sorter === 'function' && column.prop === sortProp).sorter;
|
|
25
|
-
const cloneData = data.slice();
|
|
26
|
-
if (!sortOrder) {
|
|
27
|
-
return cloneData;
|
|
28
|
-
}
|
|
29
|
-
return cloneData.sort((a, b) => {
|
|
30
|
-
const compareResult = sorter(a, b);
|
|
31
|
-
return sortOrder === 'asc' ? compareResult : -compareResult;
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
14
|
/**
|
|
36
15
|
* The callback of [watchColumns]{@link VegaTable.watchColumns}
|
|
37
16
|
*/
|
|
@@ -45,16 +24,20 @@ export class VegaTableSortController extends VegaSlimmer {
|
|
|
45
24
|
* @param {VegaTableSortOrderType} nextSortOrder - The next sorter order
|
|
46
25
|
*/
|
|
47
26
|
handleHeadSortClick(column, nextSortOrder) {
|
|
48
|
-
if (
|
|
49
|
-
this.sortersMap.
|
|
27
|
+
if (!nextSortOrder) {
|
|
28
|
+
if (this.sortersMap.has(column.prop)) {
|
|
29
|
+
this.sortersMap.delete(column.prop);
|
|
30
|
+
}
|
|
50
31
|
}
|
|
51
|
-
|
|
52
|
-
this.sortersMap.set(column.prop,
|
|
32
|
+
else {
|
|
33
|
+
this.sortersMap.set(column.prop, new VegaTableSorter(column.prop, nextSortOrder, column.sorter));
|
|
53
34
|
}
|
|
54
35
|
if (column.sorter !== 'event') {
|
|
55
|
-
this.vegaTableDataSourceController.setCurrentData(this.sortData(this.vegaTableDataSourceController.getDataSource(),
|
|
36
|
+
this.vegaTableDataSourceController.setCurrentData(this.sortData(this.vegaTableDataSourceController.getDataSource(), Array.from(this.sortersMap.values())));
|
|
56
37
|
}
|
|
57
|
-
this.changeEventEmitter.emit({
|
|
38
|
+
this.changeEventEmitter.emit({
|
|
39
|
+
sorters: Array.from(this.sortersMap.values()).map((s) => s.toExternalFormat()),
|
|
40
|
+
});
|
|
58
41
|
}
|
|
59
42
|
/**
|
|
60
43
|
* Sync the default sort order from the columns
|
|
@@ -63,7 +46,25 @@ export class VegaTableSortController extends VegaSlimmer {
|
|
|
63
46
|
this.columns
|
|
64
47
|
.filter((column) => isNonNullable(column.sorter) && isNonNullable(column.sortOrder))
|
|
65
48
|
.forEach((item) => {
|
|
66
|
-
this.sortersMap.set(item.prop,
|
|
49
|
+
this.sortersMap.set(item.prop, new VegaTableSorter(item.prop, item.sortOrder, item.sorter));
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The method to sort the data by sorter which include prop name and order
|
|
54
|
+
*
|
|
55
|
+
* @param {VegaTableDataSourceItem[]} data - The source that will be sorted
|
|
56
|
+
* @param {VegaTableSorter[]} sorters - array of sorters ordered by sequence of columns to be sorted
|
|
57
|
+
* @returns {VegaTableDataSourceItem[]} The sorted data source
|
|
58
|
+
*/
|
|
59
|
+
sortData(data, sorters) {
|
|
60
|
+
return [...data].sort((a, b) => {
|
|
61
|
+
for (const sorter of sorters) {
|
|
62
|
+
const result = sorter.sort(a, b);
|
|
63
|
+
if (isNonNullable(result)) {
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return 0;
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vega Table Sorter
|
|
3
|
+
* This is a helper class for sorting table data based on defined columns to be sorted
|
|
4
|
+
* Supports multi-column sorting
|
|
5
|
+
*/
|
|
6
|
+
export class VegaTableSorter {
|
|
7
|
+
constructor(prop, order, sorter) {
|
|
8
|
+
this.prop = prop;
|
|
9
|
+
this.order = order;
|
|
10
|
+
this.sorter = sorter;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Sort utility
|
|
14
|
+
*
|
|
15
|
+
* @param {VegaTableDataSourceItem} a column value
|
|
16
|
+
* @param {VegaTableDataSourceItem} b column value
|
|
17
|
+
* @returns {Nullable<number>} compare result
|
|
18
|
+
*/
|
|
19
|
+
sort(a, b) {
|
|
20
|
+
const compareResult = this.sorter(a, b);
|
|
21
|
+
if (compareResult !== 0) {
|
|
22
|
+
return this.order === 'asc' ? compareResult : -compareResult;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get params from sorter object for external use
|
|
27
|
+
*
|
|
28
|
+
* @returns {{VegaTableSorterType}} sorter prop and order
|
|
29
|
+
*/
|
|
30
|
+
toExternalFormat() {
|
|
31
|
+
return { prop: this.prop, order: this.order };
|
|
32
|
+
}
|
|
33
|
+
}
|