@globalpayments/vega 2.35.0 → 2.36.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-fb3693cc.js → app-globals-13d4a0be.js} +3 -4
- package/dist/cjs/{list-block-91116257.js → content-state-2336e368.js} +130 -4
- package/dist/cjs/{element-appender-slimmer-700b7004.js → element-appender-slimmer-77f9c4a0.js} +11 -3
- package/dist/cjs/{form-field-controller-slimmer-dbb321ad.js → form-field-controller-slimmer-8d4d2723.js} +11 -3
- package/dist/cjs/{image-annotation-action-d3e1699c.js → image-annotation-action-4135ca69.js} +12 -12
- package/dist/cjs/index.cjs.js +5 -6
- package/dist/cjs/loader.cjs.js +5 -6
- package/dist/cjs/{node-annotation.abstract-e5d3a859.js → node-annotation.abstract-c3c07af5.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-c2e08e06.js → sub-state-notify-slimmer-994eb848.js} +1 -1
- package/dist/cjs/{sub-state-observer-slimmer-b97e46b5.js → sub-state-observer-slimmer-080a4bea.js} +1 -1
- package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-calendar_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +2 -2
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +497 -116
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +68 -19
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-file-uploader.cjs.entry.js +120 -40
- package/dist/cjs/vega-font.cjs.entry.js +8 -1
- package/dist/cjs/vega-form.cjs.entry.js +2 -2
- package/dist/cjs/vega-image-uploader.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-range.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-select.cjs.entry.js +2 -2
- package/dist/cjs/vega-input.cjs.entry.js +3 -3
- package/dist/cjs/{vega-internal-event-id-85b68849.js → vega-internal-event-id-b12071ea.js} +2 -0
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination.cjs.entry.js +3 -3
- package/dist/cjs/vega-popover_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +35 -13
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +135 -119
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +2 -2
- package/dist/cjs/vega-stepper.cjs.entry.js +2 -2
- package/dist/cjs/vega-table_8.cjs.entry.js +3 -3
- package/dist/cjs/vega-textarea.cjs.entry.js +2 -2
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +1 -1
- package/dist/cjs/vega.cjs.js +5 -6
- package/dist/collection/components/vega-date-picker/assets/icons.js +3 -0
- package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +23 -1
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +316 -0
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +23 -2
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +16 -4
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +24 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker.js +39 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +56 -14
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +37 -0
- package/dist/collection/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.js +35 -0
- package/dist/collection/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.js +36 -7
- package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +41 -0
- package/dist/collection/components/vega-font/slimmers/renderers/vega-font-renderer.js +8 -1
- package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
- package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +2 -2
- package/dist/collection/components/vega-pagination/vega-pagination.js +24 -1
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +19 -1
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +11 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +15 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +4 -2
- package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
- package/dist/collection/helpers/slimmers/field-error-controller-silmmer.js +8 -2
- package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +1 -1
- package/dist/collection/helpers/ui/element-appender.js +10 -2
- package/dist/collection/helpers/validator/form-field-controller.js +2 -0
- package/dist/collection/helpers/validator/rules/rich-text-editor-required-rule.js +4 -3
- package/dist/collection/helpers/validator/test/rules/rich-text-editor-required-rule.test.js +43 -0
- package/dist/esm/{app-globals-5b154b6d.js → app-globals-9ded4406.js} +2 -3
- package/dist/esm/{list-block-ba82c846.js → content-state-42a06d75.js} +130 -3
- package/dist/esm/{element-appender-slimmer-d71e3109.js → element-appender-slimmer-f3eceb79.js} +11 -3
- package/dist/esm/{form-field-controller-slimmer-add614f1.js → form-field-controller-slimmer-6ef5641b.js} +11 -3
- package/dist/esm/{image-annotation-action-a8e00f28.js → image-annotation-action-8a12e0bd.js} +2 -2
- package/dist/esm/index.js +3 -4
- package/dist/esm/loader.js +5 -6
- package/dist/esm/{node-annotation.abstract-d7d52bce.js → node-annotation.abstract-af11b11b.js} +1 -1
- package/dist/esm/{sub-state-notify-slimmer-48bad548.js → sub-state-notify-slimmer-7d5a295a.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-403cc4e7.js → sub-state-observer-slimmer-901c7953.js} +1 -1
- package/dist/esm/vega-button-group_2.entry.js +3 -3
- package/dist/esm/vega-calendar_3.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +2 -2
- package/dist/esm/vega-color-picker.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +2 -2
- package/dist/esm/vega-date-picker_2.entry.js +498 -117
- package/dist/esm/vega-dropdown_5.entry.js +68 -19
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-file-uploader.entry.js +120 -40
- package/dist/esm/vega-font.entry.js +8 -1
- package/dist/esm/vega-form.entry.js +2 -2
- package/dist/esm/vega-image-uploader.entry.js +2 -2
- package/dist/esm/vega-input-credit-card.entry.js +2 -2
- package/dist/esm/vega-input-numeric.entry.js +3 -3
- package/dist/esm/vega-input-phone-number.entry.js +2 -2
- package/dist/esm/vega-input-range.entry.js +2 -2
- package/dist/esm/vega-input-select.entry.js +2 -2
- package/dist/esm/vega-input.entry.js +3 -3
- package/dist/esm/{vega-internal-event-id-4af5c6e9.js → vega-internal-event-id-458939b6.js} +2 -1
- package/dist/esm/vega-left-nav_5.entry.js +3 -3
- package/dist/esm/vega-pagination.entry.js +3 -3
- package/dist/esm/vega-popover_2.entry.js +2 -2
- package/dist/esm/vega-radio_2.entry.js +2 -2
- package/dist/esm/vega-rich-text-content.entry.js +28 -6
- package/dist/esm/vega-rich-text-editor_4.entry.js +28 -12
- package/dist/esm/vega-selection-chip_2.entry.js +4 -4
- package/dist/esm/vega-selection-tile_2.entry.js +4 -4
- package/dist/esm/vega-sidenav_3.entry.js +3 -3
- package/dist/esm/vega-signature-capture.entry.js +2 -2
- package/dist/esm/vega-stepper.entry.js +2 -2
- package/dist/esm/vega-table_8.entry.js +3 -3
- package/dist/esm/vega-textarea.entry.js +2 -2
- package/dist/esm/vega-time-picker_2.entry.js +3 -3
- package/dist/esm/vega-toggle-switch.entry.js +2 -2
- package/dist/esm/vega-tooltip_2.entry.js +1 -1
- package/dist/esm/vega.js +5 -6
- package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
- package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +4 -18
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +85 -0
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +6 -0
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -0
- package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +12 -2
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +20 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +10 -0
- package/dist/types/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.d.ts +18 -0
- package/dist/types/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.d.ts +15 -0
- package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +12 -0
- package/dist/types/components/vega-input-select/types.d.ts +1 -0
- package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +2 -0
- package/dist/types/components/vega-pagination/types.d.ts +6 -0
- package/dist/types/components/vega-pagination/vega-pagination.d.ts +9 -1
- package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +3 -0
- package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +4 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +3 -1
- package/dist/types/components.d.ts +49 -5
- package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
- package/dist/types/helpers/slimmers/field-error-controller-silmmer.d.ts +7 -2
- package/dist/types/helpers/ui/element-appender.d.ts +4 -0
- package/dist/types/helpers/validator/rules/rich-text-editor-required-rule.d.ts +1 -1
- package/dist/types/types/components.type.d.ts +1 -1
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-032ed643.entry.js +13 -0
- package/dist/vega/{p-f48711fa.entry.js → p-13ce8d87.entry.js} +1 -1
- package/dist/vega/{p-f84fd31c.js → p-26af2a8b.js} +1 -1
- package/dist/vega/{p-dcdac4d0.entry.js → p-2ff936da.entry.js} +1 -1
- package/dist/vega/{p-8fc170d9.entry.js → p-317c72e4.entry.js} +1 -1
- package/dist/vega/{p-4f0b56fc.js → p-349dd552.js} +1 -1
- package/dist/vega/p-36ad5ee1.entry.js +1 -0
- package/dist/vega/p-42465abc.entry.js +1 -0
- package/dist/vega/{p-7ecbf764.entry.js → p-43b6aced.entry.js} +1 -1
- package/dist/vega/{p-c6f544fe.entry.js → p-441c9c90.entry.js} +1 -1
- package/dist/vega/{p-926596cc.js → p-446c691b.js} +1 -1
- package/dist/vega/{p-1a64716b.entry.js → p-4d307520.entry.js} +1 -1
- package/dist/vega/p-524ff1a3.entry.js +1 -0
- package/dist/vega/p-558450ba.entry.js +1 -0
- package/dist/vega/{p-c02f650e.entry.js → p-589530e4.entry.js} +1 -1
- package/dist/vega/{p-71eeb279.entry.js → p-5ae1a322.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-fc6ea557.entry.js → p-61cffe6a.entry.js} +1 -1
- package/dist/vega/{p-5760619c.entry.js → p-6bf28253.entry.js} +1 -1
- package/dist/vega/{p-b6f09c98.entry.js → p-6df81ec2.entry.js} +1 -1
- package/dist/vega/p-75bca1c6.js +1 -0
- package/dist/vega/{p-4873be94.entry.js → p-7b72dc7a.entry.js} +1 -1
- package/dist/vega/{p-b9a09a76.js → p-83d87df5.js} +1 -1
- package/dist/vega/{p-c56965fc.entry.js → p-8a77ff64.entry.js} +1 -1
- package/dist/vega/{p-e480babd.entry.js → p-906991ec.entry.js} +1 -1
- package/dist/vega/{p-f6b89936.entry.js → p-96389073.entry.js} +1 -1
- package/dist/vega/{p-f31bb1fd.js → p-983c7d9b.js} +1 -1
- package/dist/vega/{p-91aa058f.entry.js → p-9ec7d6c4.entry.js} +1 -1
- package/dist/vega/{p-f2cc36ae.entry.js → p-a213b305.entry.js} +1 -1
- package/dist/vega/{p-e093b2c5.entry.js → p-a956561e.entry.js} +1 -1
- package/dist/vega/{p-625771d7.entry.js → p-b0c6cc78.entry.js} +1 -1
- package/dist/vega/{p-b57792b7.js → p-b1524c6c.js} +1 -1
- package/dist/vega/{p-2bbcb1ca.entry.js → p-bd2cdf10.entry.js} +1 -1
- package/dist/vega/p-c06e55d6.js +1 -0
- package/dist/vega/{p-eaf6c3d8.entry.js → p-cea7506a.entry.js} +1 -1
- package/dist/vega/p-cff45d92.entry.js +1 -0
- package/dist/vega/p-d3d4bf51.entry.js +1 -0
- package/dist/vega/{p-0be711b6.entry.js → p-df4142dd.entry.js} +1 -1
- package/dist/vega/p-df9dbe2d.entry.js +1 -0
- package/dist/vega/p-ebb30774.entry.js +1 -0
- package/dist/vega/{p-e04d4ba3.entry.js → p-eed64b78.entry.js} +1 -1
- package/dist/vega/{p-193d2c51.entry.js → p-f7fdf737.entry.js} +1 -1
- package/dist/vega/p-fe9644a0.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/content-state-3e4467a3.js +0 -134
- package/dist/esm/content-state-f39c4bbf.js +0 -132
- package/dist/vega/p-0634f06b.entry.js +0 -1
- package/dist/vega/p-0ee10fd7.js +0 -1
- package/dist/vega/p-21d59593.entry.js +0 -1
- package/dist/vega/p-42df8a42.js +0 -1
- package/dist/vega/p-5dd923e0.entry.js +0 -1
- package/dist/vega/p-6d23c08b.entry.js +0 -1
- package/dist/vega/p-7258cb9c.entry.js +0 -1
- package/dist/vega/p-85365f8b.js +0 -1
- package/dist/vega/p-b0e824df.entry.js +0 -13
- package/dist/vega/p-c016c3b2.entry.js +0 -1
- package/dist/vega/p-c88acd87.entry.js +0 -1
- package/dist/vega/p-f357cf46.js +0 -1
- package/dist/vega/p-ff50c204.entry.js +0 -1
|
@@ -0,0 +1,316 @@
|
|
|
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 { h } from '@stencil/core';
|
|
8
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
10
|
+
import { VegaDropdownClick } from '../../../../helpers/event-manager/event-id/vega-event-id';
|
|
11
|
+
import remoteInvocationRegistry from '../../../../helpers/remote-invocation/remote-invocation-registry';
|
|
12
|
+
import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
13
|
+
import { VegaInternalDropdownUpdateTarget } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
|
|
14
|
+
import { VegaInternalIconManager } from '../../../../helpers/icon/internal-icon-manager';
|
|
15
|
+
import { Icons } from '../../assets/icons';
|
|
16
|
+
export class VegaDatePickerMonthYearDropdownRenderer extends VegaSlimmer {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.startDropdownRef = {
|
|
20
|
+
month: null,
|
|
21
|
+
year: null,
|
|
22
|
+
};
|
|
23
|
+
this.endDropdownRef = {
|
|
24
|
+
month: null,
|
|
25
|
+
year: null,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* When interacting with open vega-dropdown, prevent it from collapsing since is treated as outside element by litepicker
|
|
29
|
+
*
|
|
30
|
+
* @param {MouseEvent} event - Click event
|
|
31
|
+
*/
|
|
32
|
+
this.onVegaDropdownContentBoxClick = (event) => {
|
|
33
|
+
const elementOnClick = event.target;
|
|
34
|
+
if (elementOnClick.tagName === 'VEGA-DROPDOWN-CONTENT-BOX') {
|
|
35
|
+
this.datePickerCalendar.classList.remove('vega-force-hidden');
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
37
|
+
this.datePickerCalendar.shadowRoot.querySelector('.litepicker').style.display =
|
|
38
|
+
'block';
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Prevent collapsing of dropdown when selecting option. VD-5544
|
|
43
|
+
*
|
|
44
|
+
* @param {Event} event - Focus event
|
|
45
|
+
*/
|
|
46
|
+
this.onVegaDropdownContentBoxActivate = (event) => {
|
|
47
|
+
const element = event.target;
|
|
48
|
+
if (element.tagName === 'VEGA-DROPDOWN-CONTENT-BOX') {
|
|
49
|
+
this.isMonthsOrYearsDropdownContentBoxOnFocus = true;
|
|
50
|
+
element.classList.remove('vega-force-hidden');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.isMonthsOrYearsDropdownContentBoxOnFocus = false;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* This method creates months and years dropdowns and replaces the current default select elements of litepicker
|
|
59
|
+
*
|
|
60
|
+
* @param {Litepicker} datePicker - Litepicker instance
|
|
61
|
+
*/
|
|
62
|
+
renderMonthYearDropdowns(datePicker) {
|
|
63
|
+
this.datePicker = datePicker;
|
|
64
|
+
this.datePickerCalendar = this.vegaDatePickerCalendarRenderer.getCalendarContainerRef();
|
|
65
|
+
this.renderMonthButton(this.datePicker.ui);
|
|
66
|
+
this.renderYearButton(this.datePicker.ui);
|
|
67
|
+
this.initSetup();
|
|
68
|
+
}
|
|
69
|
+
render() {
|
|
70
|
+
return (h("div", { class: "month-year-dropdown-container", style: { display: 'none' } },
|
|
71
|
+
h("div", { class: "start-date-month-year" },
|
|
72
|
+
this.renderDropdown('month', 'start'),
|
|
73
|
+
this.renderDropdown('year', 'start')),
|
|
74
|
+
h("div", { class: "end-date-month-year" },
|
|
75
|
+
this.renderDropdown('month', 'end'),
|
|
76
|
+
this.renderDropdown('year', 'end'))));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* From default months select dropdowns, get passed options and create vega-dropdown component with months as options
|
|
80
|
+
*
|
|
81
|
+
* @param {HTMLElement} ui - Litepicker ui
|
|
82
|
+
*/
|
|
83
|
+
renderMonthButton(ui) {
|
|
84
|
+
ui.querySelectorAll('select.month-item-name').forEach((item, index) => {
|
|
85
|
+
this.syncDropdownOptions('month', item, index);
|
|
86
|
+
const selectedOptionValue = this.getSelectedOptionFromSelect(item);
|
|
87
|
+
const value = VegaDatePickerMonthYearDropdownRenderer.monthName[parseInt(selectedOptionValue)];
|
|
88
|
+
const monthButton = document.createElement('span');
|
|
89
|
+
monthButton.classList.add('dropdown-current-value');
|
|
90
|
+
monthButton.innerText = `${this.translationSlimmer.t(value)}`;
|
|
91
|
+
this.appendDropdownIconToButton(monthButton);
|
|
92
|
+
if (item.parentNode) {
|
|
93
|
+
item.parentNode.replaceChild(monthButton, item);
|
|
94
|
+
}
|
|
95
|
+
const dropdown = index === 0 ? this.startDropdownRef.month : this.endDropdownRef.month;
|
|
96
|
+
if (dropdown) {
|
|
97
|
+
this.updateDropdownValueAndTarget(monthButton, dropdown, item.value);
|
|
98
|
+
}
|
|
99
|
+
monthButton.addEventListener('click', () => {
|
|
100
|
+
this.setDropdownAsActive(monthButton);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* From default years select dropdowns, get passed options and create vega-dropdown component with years as options
|
|
106
|
+
*
|
|
107
|
+
* @param {HTMLElement} ui - Litepicker ui
|
|
108
|
+
*/
|
|
109
|
+
renderYearButton(ui) {
|
|
110
|
+
ui.querySelectorAll('select.month-item-year').forEach((item, index) => {
|
|
111
|
+
this.syncDropdownOptions('year', item, index);
|
|
112
|
+
const value = this.getSelectedOptionFromSelect(item);
|
|
113
|
+
const yearButton = document.createElement('span');
|
|
114
|
+
yearButton.classList.add('dropdown-current-value');
|
|
115
|
+
yearButton.innerText = `${this.translationSlimmer.t(value)}`;
|
|
116
|
+
this.appendDropdownIconToButton(yearButton);
|
|
117
|
+
if (item.parentNode) {
|
|
118
|
+
item.parentNode.replaceChild(yearButton, item);
|
|
119
|
+
}
|
|
120
|
+
const dropdown = index === 0 ? this.startDropdownRef.year : this.endDropdownRef.year;
|
|
121
|
+
if (dropdown) {
|
|
122
|
+
this.updateDropdownValueAndTarget(yearButton, dropdown, item.value);
|
|
123
|
+
}
|
|
124
|
+
yearButton.addEventListener('click', () => {
|
|
125
|
+
this.setDropdownAsActive(yearButton);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
getSelectedOptionFromSelect(select) {
|
|
130
|
+
const options = Array.from(select.querySelectorAll('option'));
|
|
131
|
+
const selectedOption = options.find((option) => option.selected);
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
133
|
+
return selectedOption.value;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Render vega-dropdown component
|
|
137
|
+
*
|
|
138
|
+
* @param {MonthOrYearType} type - Month or year dropdown
|
|
139
|
+
* @param {DateIndexType} dateIndex - start date index for both single or range and end date index for range date picker mode
|
|
140
|
+
*/
|
|
141
|
+
renderDropdown(type, dateIndex) {
|
|
142
|
+
return (h("vega-dropdown", { trigger: "click", selectType: "single", class: "vega-force-hidden", "match-target-width": "false", "max-height": "300", ref: (node) => {
|
|
143
|
+
this.onDropdownShowOrHide(node);
|
|
144
|
+
if (dateIndex === 'start') {
|
|
145
|
+
this.startDropdownRef[type] = node;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.endDropdownRef[type] = node;
|
|
149
|
+
}
|
|
150
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaDropdownClick, (input) => {
|
|
151
|
+
this.setDefaultViewValues(type, node);
|
|
152
|
+
this.monthYearDropdownClick(type, dateIndex, input.detail);
|
|
153
|
+
});
|
|
154
|
+
} },
|
|
155
|
+
h("span", null, type)));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* When calendar opens, update sources for the vega-dropdown components for both months and years dropdown
|
|
159
|
+
*
|
|
160
|
+
* @param {MonthOrYearType} type - Month or year dropdown
|
|
161
|
+
* @param {HTMLSelectElement} select - Native select from litepicker ui
|
|
162
|
+
* @param {number} index - dropdown count
|
|
163
|
+
*/
|
|
164
|
+
syncDropdownOptions(type, select, index) {
|
|
165
|
+
const options = select.querySelectorAll('option');
|
|
166
|
+
const dropdownOptions = Array.from(options).map((option) => ({
|
|
167
|
+
key: option.value,
|
|
168
|
+
label: this.translationSlimmer.t(option.text),
|
|
169
|
+
disabled: option.disabled ? true : false,
|
|
170
|
+
}));
|
|
171
|
+
if (type === 'month') {
|
|
172
|
+
const dropdown = index === 0 ? this.startDropdownRef.month : this.endDropdownRef.month;
|
|
173
|
+
if (dropdown) {
|
|
174
|
+
dropdown.source = dropdownOptions;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (type === 'year') {
|
|
178
|
+
dropdownOptions.sort((a, b) => Number(a.key) - Number(b.key));
|
|
179
|
+
const dropdown = index === 0 ? this.startDropdownRef.year : this.endDropdownRef.year;
|
|
180
|
+
if (dropdown) {
|
|
181
|
+
dropdown.source = dropdownOptions;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Litepicker treats vega-dropdown-content-box as an external element that when dropdowns open and you click, it closes automaticall. This method is to initialize event listeners the moment months or years dropdown is opened to prevent litepicker from collpasing
|
|
187
|
+
*
|
|
188
|
+
* @param {HTMLVegaDropdownElement} dropdown - Month or year dropdown
|
|
189
|
+
*/
|
|
190
|
+
onDropdownShowOrHide(dropdown) {
|
|
191
|
+
dropdown === null || dropdown === void 0 ? void 0 : dropdown.addEventListener('vegaShow', () => {
|
|
192
|
+
this.onDropdownShow();
|
|
193
|
+
});
|
|
194
|
+
dropdown === null || dropdown === void 0 ? void 0 : dropdown.addEventListener('vegaHide', () => {
|
|
195
|
+
this.onDropdownHide();
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
setDefaultViewValues(type, node) {
|
|
199
|
+
if (type === 'month') {
|
|
200
|
+
const yearDropdown = node.nextElementSibling;
|
|
201
|
+
this.currentStartYearInView = parseInt(yearDropdown.selectedSourceKey);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
const monthDropdown = node.previousElementSibling;
|
|
205
|
+
this.currentStartMonthInView = parseInt(monthDropdown.selectedSourceKey);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
appendDropdownIconToButton(parentElement) {
|
|
209
|
+
parentElement.innerHTML += `<vega-icon icon='${VegaInternalIconManager.getIconKey('caret-down')}'></vega-icon>`;
|
|
210
|
+
parentElement.tabIndex = 0;
|
|
211
|
+
}
|
|
212
|
+
monthYearDropdownClick(type, dateIndex, detail) {
|
|
213
|
+
const value = parseInt(detail);
|
|
214
|
+
this.updateDatePickerOnSelect(type, dateIndex, value);
|
|
215
|
+
}
|
|
216
|
+
updateDropdownValueAndTarget(target, dropdownRef, dropdownSelectedKey) {
|
|
217
|
+
const parentDiv = target.closest('div');
|
|
218
|
+
if (parentDiv) {
|
|
219
|
+
parentDiv.classList.add('dropdown-section');
|
|
220
|
+
}
|
|
221
|
+
dropdownRef.selectedSourceKey = dropdownSelectedKey;
|
|
222
|
+
remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(dropdownRef, VegaInternalDropdownUpdateTarget), target);
|
|
223
|
+
}
|
|
224
|
+
updateDatePickerOnSelect(type, dateIndex, value) {
|
|
225
|
+
if (type === 'month') {
|
|
226
|
+
if (this.currentStartYearInView !== null) {
|
|
227
|
+
if (dateIndex === 'start') {
|
|
228
|
+
this.datePicker.gotoDate(new Date(this.currentStartYearInView, value, 1));
|
|
229
|
+
}
|
|
230
|
+
if (dateIndex === 'end') {
|
|
231
|
+
this.datePicker.gotoDate(new Date(this.currentStartYearInView, value - 1, 1));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
if (this.currentStartMonthInView !== null) {
|
|
237
|
+
if (dateIndex === 'start') {
|
|
238
|
+
this.datePicker.gotoDate(new Date(value, this.currentStartMonthInView, 1));
|
|
239
|
+
}
|
|
240
|
+
if (dateIndex === 'end') {
|
|
241
|
+
this.datePicker.gotoDate(new Date(value, this.currentStartMonthInView - 1, 1));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
setDropdownAsActive(element) {
|
|
247
|
+
Array.from(this.datePicker.ui.querySelectorAll('.dropdown-current-value.active')).forEach((item) => item.classList.remove('active'));
|
|
248
|
+
element.classList.add('active');
|
|
249
|
+
}
|
|
250
|
+
removeActiveDropdownClass() {
|
|
251
|
+
Array.from(this.datePicker.ui.querySelectorAll('.dropdown-current-value.active')).forEach((item) => item.classList.remove('active'));
|
|
252
|
+
}
|
|
253
|
+
onDropdownShow() {
|
|
254
|
+
document.addEventListener('mouseenter', this.onVegaDropdownContentBoxActivate, true);
|
|
255
|
+
document.addEventListener('click', this.onVegaDropdownContentBoxClick);
|
|
256
|
+
}
|
|
257
|
+
onDropdownHide() {
|
|
258
|
+
this.isMonthsOrYearsDropdownContentBoxOnFocus = false;
|
|
259
|
+
this.removeActiveDropdownClass();
|
|
260
|
+
document.removeEventListener('mouseenter', this.onVegaDropdownContentBoxActivate, true);
|
|
261
|
+
document.removeEventListener('click', this.onVegaDropdownContentBoxClick);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* When you collapse date picker while vega-dropdown is still open, close vega-dropdown too
|
|
265
|
+
*/
|
|
266
|
+
initSetup() {
|
|
267
|
+
const hideLitepicker = this.datePicker.hide.bind(this.datePicker);
|
|
268
|
+
this.datePicker.hide = async () => {
|
|
269
|
+
const activeElement = document.activeElement;
|
|
270
|
+
if (!this.isMonthsOrYearsDropdownContentBoxOnFocus &&
|
|
271
|
+
(activeElement === null || activeElement === void 0 ? void 0 : activeElement.tagName) !== 'VEGA-DROPDOWN-CONTENT-BOX') {
|
|
272
|
+
await this.closeOpenDropdowns();
|
|
273
|
+
hideLitepicker();
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Close any open vega-dropdown when litepicker is collapse
|
|
279
|
+
*/
|
|
280
|
+
async closeOpenDropdowns() {
|
|
281
|
+
const dropdowns = [this.startDropdownRef, this.endDropdownRef];
|
|
282
|
+
await Promise.all(dropdowns
|
|
283
|
+
.flatMap((ref) => [ref.month, ref.year])
|
|
284
|
+
.filter(Boolean)
|
|
285
|
+
.map((dropdown) => {
|
|
286
|
+
if (dropdown) {
|
|
287
|
+
void dropdown.hide();
|
|
288
|
+
}
|
|
289
|
+
}));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
(() => {
|
|
293
|
+
VegaInternalIconManager.register({
|
|
294
|
+
'caret-down': Icons['caret-down'],
|
|
295
|
+
});
|
|
296
|
+
})();
|
|
297
|
+
VegaDatePickerMonthYearDropdownRenderer.monthName = [
|
|
298
|
+
'January',
|
|
299
|
+
'February',
|
|
300
|
+
'March',
|
|
301
|
+
'April',
|
|
302
|
+
'May',
|
|
303
|
+
'June',
|
|
304
|
+
'July',
|
|
305
|
+
'August',
|
|
306
|
+
'September',
|
|
307
|
+
'October',
|
|
308
|
+
'November',
|
|
309
|
+
'December',
|
|
310
|
+
];
|
|
311
|
+
__decorate([
|
|
312
|
+
MapToComponentField()
|
|
313
|
+
], VegaDatePickerMonthYearDropdownRenderer.prototype, "translationSlimmer", void 0);
|
|
314
|
+
__decorate([
|
|
315
|
+
MapToComponentField()
|
|
316
|
+
], VegaDatePickerMonthYearDropdownRenderer.prototype, "vegaDatePickerCalendarRenderer", void 0);
|
|
@@ -12,7 +12,12 @@ export class VegaDatePickerCalendarRenderer extends VegaSlimmer {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
14
|
this.alterLitePickerHeader = (ui) => {
|
|
15
|
-
this.
|
|
15
|
+
if (this.showYearMonthDropdowns) {
|
|
16
|
+
this.monthYearDropdownRenderer.renderMonthYearDropdowns(this.datePicker);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.renderMonthName(ui);
|
|
20
|
+
}
|
|
16
21
|
this.renderWeekdays(ui);
|
|
17
22
|
this.renderPrevAndNextMonthButtons(ui);
|
|
18
23
|
};
|
|
@@ -195,6 +200,12 @@ export class VegaDatePickerCalendarRenderer extends VegaSlimmer {
|
|
|
195
200
|
watchMode() {
|
|
196
201
|
this.requireRefreshLitePicker = true;
|
|
197
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Update datePicker settings property if showYearMonthDropdowns is changed
|
|
205
|
+
*/
|
|
206
|
+
watchShowYearMonthDropdowns() {
|
|
207
|
+
this.requireRefreshLitePicker = true;
|
|
208
|
+
}
|
|
198
209
|
/**
|
|
199
210
|
* get the reference of datePicker
|
|
200
211
|
*
|
|
@@ -229,7 +240,8 @@ export class VegaDatePickerCalendarRenderer extends VegaSlimmer {
|
|
|
229
240
|
*/
|
|
230
241
|
renderMonthName(ui) {
|
|
231
242
|
ui.querySelectorAll('.month-item-name').forEach((item) => {
|
|
232
|
-
|
|
243
|
+
const currentMonthName = item.innerText;
|
|
244
|
+
item.innerText = this.translationSlimmer.t(currentMonthName);
|
|
233
245
|
});
|
|
234
246
|
}
|
|
235
247
|
resetTodayByTimezone() {
|
|
@@ -326,6 +338,9 @@ __decorate([
|
|
|
326
338
|
__decorate([
|
|
327
339
|
MapToComponentField()
|
|
328
340
|
], VegaDatePickerCalendarRenderer.prototype, "format", void 0);
|
|
341
|
+
__decorate([
|
|
342
|
+
MapToComponentField()
|
|
343
|
+
], VegaDatePickerCalendarRenderer.prototype, "showYearMonthDropdowns", void 0);
|
|
329
344
|
__decorate([
|
|
330
345
|
MapToComponentField()
|
|
331
346
|
], VegaDatePickerCalendarRenderer.prototype, "vegaDatePickerCalendarController", void 0);
|
|
@@ -347,6 +362,9 @@ __decorate([
|
|
|
347
362
|
__decorate([
|
|
348
363
|
MapToComponentField()
|
|
349
364
|
], VegaDatePickerCalendarRenderer.prototype, "vegaDatePickerRangeInputRenderer", void 0);
|
|
365
|
+
__decorate([
|
|
366
|
+
MapToComponentField()
|
|
367
|
+
], VegaDatePickerCalendarRenderer.prototype, "monthYearDropdownRenderer", void 0);
|
|
350
368
|
__decorate([
|
|
351
369
|
MapToComponentField()
|
|
352
370
|
], VegaDatePickerCalendarRenderer.prototype, "translationSlimmer", void 0);
|
|
@@ -386,3 +404,6 @@ __decorate([
|
|
|
386
404
|
__decorate([
|
|
387
405
|
MapToComponentMethod('watchMode')
|
|
388
406
|
], VegaDatePickerCalendarRenderer.prototype, "watchMode", null);
|
|
407
|
+
__decorate([
|
|
408
|
+
MapToComponentMethod('watchShowYearMonthDropdowns')
|
|
409
|
+
], VegaDatePickerCalendarRenderer.prototype, "watchShowYearMonthDropdowns", null);
|
package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js
CHANGED
|
@@ -18,7 +18,11 @@ export class VegaDatePickerRenderer extends VegaSlimmer {
|
|
|
18
18
|
return (h("div", { class: "vega-input-prefix" },
|
|
19
19
|
h("vega-icon", { icon: VegaInternalIconManager.getIconKey('calendar'), color: "text-secondary",
|
|
20
20
|
// eslint-disable-next-line react/jsx-no-bind
|
|
21
|
-
onClick: () =>
|
|
21
|
+
onClick: () => {
|
|
22
|
+
if (!this.disabled) {
|
|
23
|
+
this.focusInput();
|
|
24
|
+
}
|
|
25
|
+
} })));
|
|
22
26
|
};
|
|
23
27
|
/**
|
|
24
28
|
* return true if input is enabled, otherwise false
|
|
@@ -63,9 +67,11 @@ export class VegaDatePickerRenderer extends VegaSlimmer {
|
|
|
63
67
|
disabled: this.disabled,
|
|
64
68
|
} },
|
|
65
69
|
this.renderLabel(),
|
|
66
|
-
h("div", { class: arrayToClassString(classNames), ref: (ref) => (this.datePickerContainer = ref) },
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
h("div", { class: arrayToClassString(classNames), ref: (ref) => (this.datePickerContainer = ref) },
|
|
71
|
+
this.mode === 'range'
|
|
72
|
+
? this.vegaDatePickerRangeInputRenderer.render()
|
|
73
|
+
: this.vegaDatePickerSingleInputRenderer.render(),
|
|
74
|
+
this.showYearMonthDropdowns && this.monthYearDropdownRenderer.render())));
|
|
69
75
|
}
|
|
70
76
|
}
|
|
71
77
|
(() => {
|
|
@@ -95,6 +101,9 @@ __decorate([
|
|
|
95
101
|
__decorate([
|
|
96
102
|
MapToComponentField()
|
|
97
103
|
], VegaDatePickerRenderer.prototype, "host", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
MapToComponentField()
|
|
106
|
+
], VegaDatePickerRenderer.prototype, "showYearMonthDropdowns", void 0);
|
|
98
107
|
__decorate([
|
|
99
108
|
MapToComponentField()
|
|
100
109
|
], VegaDatePickerRenderer.prototype, "vegaDatePickerMobileController", void 0);
|
|
@@ -107,3 +116,6 @@ __decorate([
|
|
|
107
116
|
__decorate([
|
|
108
117
|
MapToComponentField()
|
|
109
118
|
], VegaDatePickerRenderer.prototype, "vegaDatePickerCalendarRenderer", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
MapToComponentField()
|
|
121
|
+
], VegaDatePickerRenderer.prototype, "monthYearDropdownRenderer", void 0);
|
|
@@ -637,4 +637,28 @@ html.dark .litepicker .container__days .day-item.is-start-date.is-end-date:after
|
|
|
637
637
|
.button-previous-month svg {
|
|
638
638
|
width: 12px;
|
|
639
639
|
height: 16px;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
.litepicker .month-item-header > div.dropdown-section {
|
|
643
|
+
display: flex;
|
|
644
|
+
gap: 12px;
|
|
645
|
+
}
|
|
646
|
+
.litepicker .month-item-header > div.dropdown-section .dropdown-current-value {
|
|
647
|
+
position: relative;
|
|
648
|
+
display: flex;
|
|
649
|
+
gap: 4px;
|
|
650
|
+
align-items: center;
|
|
651
|
+
cursor: pointer;
|
|
652
|
+
}
|
|
653
|
+
.litepicker .month-item-header > div.dropdown-section .dropdown-current-value.active {
|
|
654
|
+
color: rgba(var(--v-text-link-active, 29, 65, 195, 1));
|
|
655
|
+
}
|
|
656
|
+
.litepicker .month-item-header > div.dropdown-section .dropdown-current-value.active:active {
|
|
657
|
+
color: rgba(var(--v-text-link-active, 29, 65, 195, 1));
|
|
658
|
+
}
|
|
659
|
+
.litepicker .month-item-header > div.dropdown-section .dropdown-current-value.active:hover {
|
|
660
|
+
color: rgba(var(--v-text-link-hover, 4, 112, 236, 1));
|
|
661
|
+
}
|
|
662
|
+
.litepicker .month-item-header > div.dropdown-section .dropdown-current-value.active:focus-visible {
|
|
663
|
+
color: rgba(var(--v-text-link-focus, 4, 112, 236, 1));
|
|
640
664
|
}
|
|
@@ -29,6 +29,7 @@ import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimm
|
|
|
29
29
|
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
|
|
30
30
|
import { VegaDatePickerRuntimeMetricsPayloadDefinition } from '../../constants/runtime-metrics-payload-definition/vega-date-picker/runtime-metrics-payload-definition';
|
|
31
31
|
import { TranslationSlimmer } from '../../helpers/slimmers/translation';
|
|
32
|
+
import { VegaDatePickerMonthYearDropdownRenderer } from './slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer';
|
|
32
33
|
/**
|
|
33
34
|
* @vegaVersion 1.3.0
|
|
34
35
|
*/
|
|
@@ -86,6 +87,7 @@ export class VegaDatePicker {
|
|
|
86
87
|
this.changeEventEmitter = createEventEmitSlimmer(VegaDatePicker, VegaChange);
|
|
87
88
|
this.inputEventPrevent = new ChildNodesEventPreventSlimmer([VegaChange], () => this.vegaDatePickerRenderer.getDatePickerContainer());
|
|
88
89
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer(VegaDatePickerRuntimeMetricsPayloadDefinition);
|
|
90
|
+
this.monthYearDropdownRenderer = new VegaDatePickerMonthYearDropdownRenderer();
|
|
89
91
|
/**
|
|
90
92
|
* Specifies the selection mode of the date picker.
|
|
91
93
|
*
|
|
@@ -179,6 +181,13 @@ export class VegaDatePicker {
|
|
|
179
181
|
* @vegaVersion 2.33.0
|
|
180
182
|
*/
|
|
181
183
|
this.showClearIcon = true;
|
|
184
|
+
/**
|
|
185
|
+
* Determines whether to show months and years dropdown in date picker
|
|
186
|
+
* If set to true, date picker calendar will have months and years dropdown
|
|
187
|
+
*
|
|
188
|
+
* @vegaVersion 2.36.0
|
|
189
|
+
*/
|
|
190
|
+
this.showYearMonthDropdowns = false;
|
|
182
191
|
/**
|
|
183
192
|
* Specifies whether the date picker field is disabled.
|
|
184
193
|
*
|
|
@@ -231,6 +240,9 @@ export class VegaDatePicker {
|
|
|
231
240
|
watchAllowRepick() {
|
|
232
241
|
methodPlaceholder();
|
|
233
242
|
}
|
|
243
|
+
watchShowYearMonthDropdowns() {
|
|
244
|
+
methodPlaceholder();
|
|
245
|
+
}
|
|
234
246
|
watchDisabled() {
|
|
235
247
|
methodPlaceholder();
|
|
236
248
|
}
|
|
@@ -641,6 +653,27 @@ export class VegaDatePicker {
|
|
|
641
653
|
"reflect": false,
|
|
642
654
|
"defaultValue": "true"
|
|
643
655
|
},
|
|
656
|
+
"showYearMonthDropdowns": {
|
|
657
|
+
"type": "boolean",
|
|
658
|
+
"mutable": false,
|
|
659
|
+
"complexType": {
|
|
660
|
+
"original": "boolean",
|
|
661
|
+
"resolved": "boolean",
|
|
662
|
+
"references": {}
|
|
663
|
+
},
|
|
664
|
+
"required": false,
|
|
665
|
+
"optional": false,
|
|
666
|
+
"docs": {
|
|
667
|
+
"tags": [{
|
|
668
|
+
"name": "vegaVersion",
|
|
669
|
+
"text": "2.36.0"
|
|
670
|
+
}],
|
|
671
|
+
"text": "Determines whether to show months and years dropdown in date picker\nIf set to true, date picker calendar will have months and years dropdown"
|
|
672
|
+
},
|
|
673
|
+
"attribute": "show-year-month-dropdowns",
|
|
674
|
+
"reflect": false,
|
|
675
|
+
"defaultValue": "false"
|
|
676
|
+
},
|
|
644
677
|
"disabled": {
|
|
645
678
|
"type": "boolean",
|
|
646
679
|
"mutable": false,
|
|
@@ -791,6 +824,9 @@ export class VegaDatePicker {
|
|
|
791
824
|
}, {
|
|
792
825
|
"propName": "allowRepick",
|
|
793
826
|
"methodName": "watchAllowRepick"
|
|
827
|
+
}, {
|
|
828
|
+
"propName": "showYearMonthDropdowns",
|
|
829
|
+
"methodName": "watchShowYearMonthDropdowns"
|
|
794
830
|
}, {
|
|
795
831
|
"propName": "disabled",
|
|
796
832
|
"methodName": "watchDisabled"
|
|
@@ -853,6 +889,9 @@ __decorate([
|
|
|
853
889
|
__decorate([
|
|
854
890
|
InjectVegaSlimmer()
|
|
855
891
|
], VegaDatePicker.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
|
|
892
|
+
__decorate([
|
|
893
|
+
InjectVegaSlimmer()
|
|
894
|
+
], VegaDatePicker.prototype, "monthYearDropdownRenderer", void 0);
|
|
856
895
|
__decorate([
|
|
857
896
|
ComponentLoadRequired()
|
|
858
897
|
], VegaDatePicker.prototype, "watchValue", null);
|
|
@@ -6,6 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, MapToComponentMethod } from 'vega-slimmer/core';
|
|
8
8
|
import { ElementAppenderSlimmer } from '../../../../helpers/slimmers/element-appender-slimmer';
|
|
9
|
+
import remoteInvocationRegistry from '../../../../helpers/remote-invocation/remote-invocation-registry';
|
|
10
|
+
import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
11
|
+
import { VegaInternalDropdownUpdateTarget } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
|
|
9
12
|
/**
|
|
10
13
|
* The `VegaDropdownAppenderController` class is responsible for managing the visibility and
|
|
11
14
|
* behavior of a dropdown component.
|
|
@@ -16,20 +19,19 @@ export class VegaDropdownAppenderController extends ElementAppenderSlimmer {
|
|
|
16
19
|
* This constructor initializes a dropdown component with various configuration options.
|
|
17
20
|
*/
|
|
18
21
|
constructor() {
|
|
19
|
-
super(() => (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}), () => this.trigger);
|
|
22
|
+
super(() => this.generateShowConfigFactory(), () => this.trigger);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Component lifecycle - [componentDidLoad]{@link VegaPopover.connectedCallback}
|
|
26
|
+
*/
|
|
27
|
+
connectedCallback() {
|
|
28
|
+
this.registerRemoteMethod();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Component lifecycle - [componentDidLoad]{@link VegaPopover.disconnectedCallback}
|
|
32
|
+
*/
|
|
33
|
+
disconnectedCallback() {
|
|
34
|
+
remoteInvocationRegistry.unRegister(domNodeSubjectFactory.getSubject(this.host, VegaInternalDropdownUpdateTarget));
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* The function `watchIsDropdownShow` checks if the dropdown is shown and performs certain actions
|
|
@@ -61,6 +63,37 @@ export class VegaDropdownAppenderController extends ElementAppenderSlimmer {
|
|
|
61
63
|
this.hide();
|
|
62
64
|
}
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Generate the show configuration for the dropdown.
|
|
68
|
+
*
|
|
69
|
+
* @returns {ElementAppenderShowConfig} The show configuration for the dropdown.
|
|
70
|
+
*/
|
|
71
|
+
generateShowConfigFactory() {
|
|
72
|
+
return {
|
|
73
|
+
target: this.target || this.host,
|
|
74
|
+
appendableElement: this.renderer.getDropdownContentBoxRef(),
|
|
75
|
+
positionRelativeTo: this.positionRelativeTo,
|
|
76
|
+
matchTargetWidth: this.matchTargetWidth,
|
|
77
|
+
matchContainerHeight: this.matchContainerHeight,
|
|
78
|
+
size: this.size,
|
|
79
|
+
minWidth: this.minWidth,
|
|
80
|
+
maxWidth: this.maxWidth,
|
|
81
|
+
translocation: this.translocation,
|
|
82
|
+
maxHeight: this.maxHeight,
|
|
83
|
+
placement: this.placement,
|
|
84
|
+
alignment: this.alignment,
|
|
85
|
+
isScreenPosition: this.isScreenPosition,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Register a remote method to update the target element of the dropdown.
|
|
90
|
+
*/
|
|
91
|
+
registerRemoteMethod() {
|
|
92
|
+
remoteInvocationRegistry.register(domNodeSubjectFactory.getSubject(this.host, VegaInternalDropdownUpdateTarget), (target) => {
|
|
93
|
+
this.target = target;
|
|
94
|
+
super.updateShowConfigFactory(this.generateShowConfigFactory.bind(this));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
64
97
|
}
|
|
65
98
|
__decorate([
|
|
66
99
|
MapToComponentField()
|
|
@@ -113,6 +146,15 @@ __decorate([
|
|
|
113
146
|
__decorate([
|
|
114
147
|
MapToComponentField()
|
|
115
148
|
], VegaDropdownAppenderController.prototype, "hideEventEmitter", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
MapToComponentField()
|
|
151
|
+
], VegaDropdownAppenderController.prototype, "isScreenPosition", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
MapToComponentMethod('connectedCallback')
|
|
154
|
+
], VegaDropdownAppenderController.prototype, "connectedCallback", null);
|
|
155
|
+
__decorate([
|
|
156
|
+
MapToComponentMethod('disconnectedCallback')
|
|
157
|
+
], VegaDropdownAppenderController.prototype, "disconnectedCallback", null);
|
|
116
158
|
__decorate([
|
|
117
159
|
MapToComponentMethod('watchIsDropdownShow')
|
|
118
160
|
], VegaDropdownAppenderController.prototype, "watchIsDropdownShow", null);
|