@leanix/components 0.4.2 → 0.4.4

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.
Files changed (27) hide show
  1. package/esm2020/lib/forms-ui/components/date-input/date-input.component.mjs +5 -4
  2. package/esm2020/lib/forms-ui/components/date-picker-ui/date-formatter.mjs +8 -0
  3. package/esm2020/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.mjs +310 -0
  4. package/esm2020/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.mjs +28 -0
  5. package/esm2020/lib/forms-ui/components/date-picker-ui/datepicker.component.mjs +205 -0
  6. package/esm2020/lib/forms-ui/components/date-picker-ui/datepicker.config.mjs +29 -0
  7. package/esm2020/lib/forms-ui/components/date-picker-ui/daypicker.component.mjs +305 -0
  8. package/esm2020/lib/forms-ui/components/date-picker-ui/isBs3.mjs +2 -0
  9. package/esm2020/lib/forms-ui/components/date-picker-ui/monthpicker.component.mjs +149 -0
  10. package/esm2020/lib/forms-ui/components/date-picker-ui/yearpicker.component.mjs +153 -0
  11. package/esm2020/lib/forms-ui/forms-ui.module.mjs +6 -6
  12. package/fesm2015/leanix-components.mjs +1151 -8
  13. package/fesm2015/leanix-components.mjs.map +1 -1
  14. package/fesm2020/leanix-components.mjs +1150 -8
  15. package/fesm2020/leanix-components.mjs.map +1 -1
  16. package/lib/forms-ui/components/date-picker-ui/date-formatter.d.ts +3 -0
  17. package/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.d.ts +78 -0
  18. package/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.d.ts +15 -0
  19. package/lib/forms-ui/components/date-picker-ui/datepicker.component.d.ts +81 -0
  20. package/lib/forms-ui/components/date-picker-ui/datepicker.config.d.ts +22 -0
  21. package/lib/forms-ui/components/date-picker-ui/daypicker.component.d.ts +17 -0
  22. package/lib/forms-ui/components/date-picker-ui/isBs3.d.ts +1 -0
  23. package/lib/forms-ui/components/date-picker-ui/monthpicker.component.d.ts +14 -0
  24. package/lib/forms-ui/components/date-picker-ui/yearpicker.component.d.ts +14 -0
  25. package/lib/forms-ui/forms-ui.module.d.ts +2 -2
  26. package/package.json +1 -1
  27. package/src/lib/forms-ui/components/date-picker-ui/README.md +8 -0
@@ -0,0 +1,205 @@
1
+ import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DatePickerInnerComponent } from './datepicker-inner.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./datepicker.config";
6
+ import * as i2 from "./datepicker-inner.component";
7
+ import * as i3 from "./daypicker.component";
8
+ import * as i4 from "./monthpicker.component";
9
+ import * as i5 from "./yearpicker.component";
10
+ export const DATEPICKER_CONTROL_VALUE_ACCESSOR = {
11
+ provide: NG_VALUE_ACCESSOR,
12
+ useExisting: forwardRef(() => DatePickerComponent),
13
+ multi: true
14
+ };
15
+ /* tslint:enable:component-selector-name component-selector-type */
16
+ export class DatePickerComponent {
17
+ constructor(config) {
18
+ /** sets datepicker mode, supports: `day`, `month`, `year` */
19
+ this.datepickerMode = 'day';
20
+ /** if false week numbers will be hidden */
21
+ this.showWeeks = true;
22
+ this.selectionDone = new EventEmitter(undefined);
23
+ /** callback to invoke when the activeDate is changed. */
24
+ this.activeDateChange = new EventEmitter(undefined);
25
+ /* tslint:disable-next-line: no-any*/
26
+ this.onChange = Function.prototype;
27
+ /* tslint:disable-next-line: no-any*/
28
+ this.onTouched = Function.prototype;
29
+ this._now = new Date();
30
+ this.config = config;
31
+ this.configureOptions();
32
+ }
33
+ /** currently active date */
34
+ get activeDate() {
35
+ return this._activeDate || this._now;
36
+ }
37
+ set activeDate(value) {
38
+ this._activeDate = value;
39
+ }
40
+ configureOptions() {
41
+ Object.assign(this, this.config);
42
+ }
43
+ onUpdate(event) {
44
+ this.activeDate = event;
45
+ this.onChange(event);
46
+ }
47
+ onSelectionDone(event) {
48
+ this.selectionDone.emit(event);
49
+ }
50
+ onActiveDateChange(event) {
51
+ this.activeDateChange.emit(event);
52
+ }
53
+ // todo: support null value
54
+ /* tslint:disable-next-line: no-any*/
55
+ writeValue(value) {
56
+ if (this._datePicker.compare(value, this._activeDate) === 0) {
57
+ return;
58
+ }
59
+ if (value && value instanceof Date) {
60
+ this.activeDate = value;
61
+ this._datePicker.select(value, false);
62
+ return;
63
+ }
64
+ this.activeDate = (value ? new Date(value) : void 0);
65
+ }
66
+ registerOnChange(fn) {
67
+ this.onChange = fn;
68
+ }
69
+ registerOnTouched(fn) {
70
+ this.onTouched = fn;
71
+ }
72
+ }
73
+ DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.DatepickerConfig }], target: i0.ɵɵFactoryTarget.Component });
74
+ DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: DatePickerComponent, selector: "datepicker", inputs: { datepickerMode: "datepickerMode", initDate: "initDate", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", monthColLimit: "monthColLimit", yearColLimit: "yearColLimit", customClass: "customClass", dateDisabled: "dateDisabled", dayDisabled: "dayDisabled", activeDate: "activeDate" }, outputs: { selectionDone: "selectionDone", activeDateChange: "activeDateChange" }, providers: [DATEPICKER_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_datePicker", first: true, predicate: DatePickerInnerComponent, descendants: true, static: true }], ngImport: i0, template: `
75
+ <datepicker-inner
76
+ [activeDate]="activeDate"
77
+ (update)="onUpdate($event)"
78
+ [locale]="config.locale"
79
+ [datepickerMode]="datepickerMode"
80
+ [initDate]="initDate"
81
+ [minDate]="minDate"
82
+ [maxDate]="maxDate"
83
+ [minMode]="minMode"
84
+ [maxMode]="maxMode"
85
+ [showWeeks]="showWeeks"
86
+ [formatDay]="formatDay"
87
+ [formatMonth]="formatMonth"
88
+ [formatYear]="formatYear"
89
+ [formatDayHeader]="formatDayHeader"
90
+ [formatDayTitle]="formatDayTitle"
91
+ [formatMonthTitle]="formatMonthTitle"
92
+ [startingDay]="startingDay"
93
+ [yearRange]="yearRange"
94
+ [customClass]="customClass"
95
+ [dateDisabled]="dateDisabled"
96
+ [dayDisabled]="dayDisabled"
97
+ [onlyCurrentMonth]="onlyCurrentMonth"
98
+ [shortcutPropagation]="shortcutPropagation"
99
+ [monthColLimit]="monthColLimit"
100
+ [yearColLimit]="yearColLimit"
101
+ (selectionDone)="onSelectionDone($event)"
102
+ (activeDateChange)="onActiveDateChange($event)"
103
+ >
104
+ <daypicker tabindex="0"></daypicker>
105
+ <monthpicker tabindex="0"></monthpicker>
106
+ <yearpicker tabindex="0"></yearpicker>
107
+ </datepicker-inner>
108
+ `, isInline: true, dependencies: [{ kind: "component", type: i2.DatePickerInnerComponent, selector: "datepicker-inner", inputs: ["locale", "datepickerMode", "startingDay", "yearRange", "minDate", "maxDate", "minMode", "maxMode", "showWeeks", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "onlyCurrentMonth", "shortcutPropagation", "customClass", "monthColLimit", "yearColLimit", "dateDisabled", "dayDisabled", "initDate", "activeDate"], outputs: ["selectionDone", "update", "activeDateChange"] }, { kind: "component", type: i3.DayPickerComponent, selector: "daypicker" }, { kind: "component", type: i4.MonthPickerComponent, selector: "monthpicker" }, { kind: "component", type: i5.YearPickerComponent, selector: "yearpicker" }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatePickerComponent, decorators: [{
110
+ type: Component,
111
+ args: [{
112
+ // eslint-disable-next-line @angular-eslint/component-selector
113
+ selector: 'datepicker',
114
+ template: `
115
+ <datepicker-inner
116
+ [activeDate]="activeDate"
117
+ (update)="onUpdate($event)"
118
+ [locale]="config.locale"
119
+ [datepickerMode]="datepickerMode"
120
+ [initDate]="initDate"
121
+ [minDate]="minDate"
122
+ [maxDate]="maxDate"
123
+ [minMode]="minMode"
124
+ [maxMode]="maxMode"
125
+ [showWeeks]="showWeeks"
126
+ [formatDay]="formatDay"
127
+ [formatMonth]="formatMonth"
128
+ [formatYear]="formatYear"
129
+ [formatDayHeader]="formatDayHeader"
130
+ [formatDayTitle]="formatDayTitle"
131
+ [formatMonthTitle]="formatMonthTitle"
132
+ [startingDay]="startingDay"
133
+ [yearRange]="yearRange"
134
+ [customClass]="customClass"
135
+ [dateDisabled]="dateDisabled"
136
+ [dayDisabled]="dayDisabled"
137
+ [onlyCurrentMonth]="onlyCurrentMonth"
138
+ [shortcutPropagation]="shortcutPropagation"
139
+ [monthColLimit]="monthColLimit"
140
+ [yearColLimit]="yearColLimit"
141
+ (selectionDone)="onSelectionDone($event)"
142
+ (activeDateChange)="onActiveDateChange($event)"
143
+ >
144
+ <daypicker tabindex="0"></daypicker>
145
+ <monthpicker tabindex="0"></monthpicker>
146
+ <yearpicker tabindex="0"></yearpicker>
147
+ </datepicker-inner>
148
+ `,
149
+ providers: [DATEPICKER_CONTROL_VALUE_ACCESSOR]
150
+ }]
151
+ }], ctorParameters: function () { return [{ type: i1.DatepickerConfig }]; }, propDecorators: { datepickerMode: [{
152
+ type: Input
153
+ }], initDate: [{
154
+ type: Input
155
+ }], minDate: [{
156
+ type: Input
157
+ }], maxDate: [{
158
+ type: Input
159
+ }], minMode: [{
160
+ type: Input
161
+ }], maxMode: [{
162
+ type: Input
163
+ }], showWeeks: [{
164
+ type: Input
165
+ }], formatDay: [{
166
+ type: Input
167
+ }], formatMonth: [{
168
+ type: Input
169
+ }], formatYear: [{
170
+ type: Input
171
+ }], formatDayHeader: [{
172
+ type: Input
173
+ }], formatDayTitle: [{
174
+ type: Input
175
+ }], formatMonthTitle: [{
176
+ type: Input
177
+ }], startingDay: [{
178
+ type: Input
179
+ }], yearRange: [{
180
+ type: Input
181
+ }], onlyCurrentMonth: [{
182
+ type: Input
183
+ }], shortcutPropagation: [{
184
+ type: Input
185
+ }], monthColLimit: [{
186
+ type: Input
187
+ }], yearColLimit: [{
188
+ type: Input
189
+ }], customClass: [{
190
+ type: Input
191
+ }], dateDisabled: [{
192
+ type: Input
193
+ }], dayDisabled: [{
194
+ type: Input
195
+ }], activeDate: [{
196
+ type: Input
197
+ }], selectionDone: [{
198
+ type: Output
199
+ }], activeDateChange: [{
200
+ type: Output
201
+ }], _datePicker: [{
202
+ type: ViewChild,
203
+ args: [DatePickerInnerComponent, { static: true }]
204
+ }] } });
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFZLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFHeEUsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQWE7SUFDekQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQTBDRixtRUFBbUU7QUFDbkUsTUFBTSxPQUFPLG1CQUFtQjtJQWdHOUIsWUFBWSxNQUF3QjtRQS9GcEMsNkRBQTZEO1FBQ3BELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBZ0JoQywyQ0FBMkM7UUFDbEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQTBEMUIsa0JBQWEsR0FBdUIsSUFBSSxZQUFZLENBQU8sU0FBUyxDQUFDLENBQUM7UUFFdEUseURBQXlEO1FBRXpELHFCQUFnQixHQUF1QixJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUt6RSxxQ0FBcUM7UUFDckMsYUFBUSxHQUFRLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDbkMscUNBQXFDO1FBQ3JDLGNBQVMsR0FBUSxRQUFRLENBQUMsU0FBUyxDQUFDO1FBSTFCLFNBQUksR0FBUyxJQUFJLElB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O3NCQURmLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBS0YsVUFBVTtzQkFEYixLQUFLO2dCQVVOLGFBQWE7c0JBRFosTUFBTTtnQkFLUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFJUCxXQUFXO3NCQURWLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPdXRwdXQsIFByb3ZpZGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVQaWNrZXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgREFURVBJQ0tFUl9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRhdGVwaWNrZXItaW5uZXJcbiAgICAgIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgKHVwZGF0ZSk9XCJvblVwZGF0ZSgkZXZlbnQpXCJcbiAgICAgIFtsb2NhbGVdPVwiY29uZmlnLmxvY2FsZVwiXG4gICAgICBbZGF0ZXBpY2tlck1vZGVdPVwiZGF0ZXBpY2tlck1vZGVcIlxuICAgICAgW2luaXREYXRlXT1cImluaXREYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbbWluTW9kZV09XCJtaW5Nb2RlXCJcbiAgICAgIFttYXhNb2RlXT1cIm1heE1vZGVcIlxuICAgICAgW3Nob3dXZWVrc109XCJzaG93V2Vla3NcIlxuICAgICAgW2Zvcm1hdERheV09XCJmb3JtYXREYXlcIlxuICAgICAgW2Zvcm1hdE1vbnRoXT1cImZvcm1hdE1vbnRoXCJcbiAgICAgIFtmb3JtYXRZZWFyXT1cImZvcm1hdFllYXJcIlxuICAgICAgW2Zvcm1hdERheUhlYWRlcl09XCJmb3JtYXREYXlIZWFkZXJcIlxuICAgICAgW2Zvcm1hdERheVRpdGxlXT1cImZvcm1hdERheVRpdGxlXCJcbiAgICAgIFtmb3JtYXRNb250aFRpdGxlXT1cImZvcm1hdE1vbnRoVGl0bGVcIlxuICAgICAgW3N0YXJ0aW5nRGF5XT1cInN0YXJ0aW5nRGF5XCJcbiAgICAgIFt5ZWFyUmFuZ2VdPVwieWVhclJhbmdlXCJcbiAgICAgIFtjdXN0b21DbGFzc109XCJjdXN0b21DbGFzc1wiXG4gICAgICBbZGF0ZURpc2FibGVkXT1cImRhdGVEaXNhYmxlZFwiXG4gICAgICBbZGF5RGlzYWJsZWRdPVwiZGF5RGlzYWJsZWRcIlxuICAgICAgW29ubHlDdXJyZW50TW9udGhdPVwib25seUN1cnJlbnRNb250aFwiXG4gICAgICBbc2hvcnRjdXRQcm9wYWdhdGlvbl09XCJzaG9ydGN1dFByb3BhZ2F0aW9uXCJcbiAgICAgIFttb250aENvbExpbWl0XT1cIm1vbnRoQ29sTGltaXRcIlxuICAgICAgW3llYXJDb2xMaW1pdF09XCJ5ZWFyQ29sTGltaXRcIlxuICAgICAgKHNlbGVjdGlvbkRvbmUpPVwib25TZWxlY3Rpb25Eb25lKCRldmVudClcIlxuICAgICAgKGFjdGl2ZURhdGVDaGFuZ2UpPVwib25BY3RpdmVEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkYXlwaWNrZXIgdGFiaW5kZXg9XCIwXCI+PC9kYXlwaWNrZXI+XG4gICAgICA8bW9udGhwaWNrZXIgdGFiaW5kZXg9XCIwXCI+PC9tb250aHBpY2tlcj5cbiAgICAgIDx5ZWFycGlja2VyIHRhYmluZGV4PVwiMFwiPjwveWVhcnBpY2tlcj5cbiAgICA8L2RhdGVwaWNrZXItaW5uZXI+XG4gIGAsXG4gIHByb3ZpZGVyczogW0RBVEVQSUNLRVJfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cbn0pXG4vKiB0c2xpbnQ6ZW5hYmxlOmNvbXBvbmVudC1zZWxlY3Rvci1uYW1lIGNvbXBvbmVudC1zZWxlY3Rvci10eXBlICovXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIHNldHMgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogYGRheWAsIGBtb250aGAsIGB5ZWFyYCAqL1xuICBASW5wdXQoKSBkYXRlcGlja2VyTW9kZSA9ICdkYXknO1xuICAvKiogZGVmYXVsdCBkYXRlIHRvIHNob3cgaWYgYG5nLW1vZGVsYCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkICovXG4gIEBJbnB1dCgpXG4gIGluaXREYXRlITogRGF0ZTtcbiAgLyoqICBvbGRlc3Qgc2VsZWN0YWJsZSBkYXRlICovXG4gIEBJbnB1dCgpXG4gIG1pbkRhdGUhOiBEYXRlO1xuICAvKiogbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZSAqL1xuICBASW5wdXQoKVxuICBtYXhEYXRlITogRGF0ZTtcbiAgLyoqIHNldCBsb3dlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBgZGF5YCwgYG1vbnRoYCwgYHllYXJgICovXG4gIEBJbnB1dCgpXG4gIG1pbk1vZGUhOiBzdHJpbmc7XG4gIC8qKiBzZXRzIHVwcGVyIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGBkYXlgLCBgbW9udGhgLCBgeWVhcmAgKi9cbiAgQElucHV0KClcbiAgbWF4TW9kZSE6IHN0cmluZztcbiAgLyoqIGlmIGZhbHNlIHdlZWsgbnVtYmVycyB3aWxsIGJlIGhpZGRlbiAqL1xuICBASW5wdXQoKSBzaG93V2Vla3MgPSB0cnVlO1xuICAvKiogZm9ybWF0IG9mIGRheSBpbiBtb250aCAqL1xuICBASW5wdXQoKVxuICBmb3JtYXREYXkhOiBzdHJpbmc7XG4gIC8qKiBmb3JtYXQgb2YgbW9udGggaW4geWVhciAqL1xuICBASW5wdXQoKVxuICBmb3JtYXRNb250aCE6IHN0cmluZztcbiAgLyoqIGZvcm1hdCBvZiB5ZWFyIGluIHllYXIgcmFuZ2UgKi9cbiAgQElucHV0KClcbiAgZm9ybWF0WWVhciE6IHN0cmluZztcbiAgLyoqIGZvcm1hdCBvZiBkYXkgaW4gd2VlayBoZWFkZXIgKi9cbiAgQElucHV0KClcbiAgZm9ybWF0RGF5SGVhZGVyITogc3RyaW5nO1xuICAvKiogZm9ybWF0IG9mIHRpdGxlIHdoZW4gc2VsZWN0aW5nIGRheSAqL1xuICBASW5wdXQoKVxuICBmb3JtYXREYXlUaXRsZSE6IHN0cmluZztcbiAgLyoqIGZvcm1hdCBvZiB0aXRsZSB3aGVuIHNlbGVjdGluZyBtb250aCAqL1xuICBASW5wdXQoKVxuICBmb3JtYXRNb250aFRpdGxlITogc3RyaW5nO1xuICAvKiogc3RhcnRpbmcgZGF5IG9mIHRoZSB3ZWVrIGZyb20gMC02ICgwPVN1bmRheSwgLi4uLCA2PVNhdHVyZGF5KSAqL1xuICBASW5wdXQoKVxuICBzdGFydGluZ0RheSE6IG51bWJlcjtcbiAgLyoqIG51bWJlciBvZiB5ZWFycyBkaXNwbGF5ZWQgaW4geWVhciBzZWxlY3Rpb24gKi9cbiAgQElucHV0KClcbiAgeWVhclJhbmdlITogbnVtYmVyO1xuICAvKiogaWYgdHJ1ZSBvbmx5IGRhdGVzIGZyb20gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGggd2lsbCBiZSBzaG93biAqL1xuICBASW5wdXQoKVxuICBvbmx5Q3VycmVudE1vbnRoITogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgc2hvcnRjdXRgcyBldmVudCBwcm9wYWdhdGlvbiB3aWxsIGJlIGRpc2FibGVkICovXG4gIEBJbnB1dCgpXG4gIHNob3J0Y3V0UHJvcGFnYXRpb24hOiBib29sZWFuO1xuICAvKiogbnVtYmVyIG9mIG1vbnRocyBkaXNwbGF5ZWQgaW4gYSBzaW5nbGUgcm93IG9mIG1vbnRoIHBpY2tlciAqL1xuICBASW5wdXQoKVxuICBtb250aENvbExpbWl0ITogbnVtYmVyO1xuICAvKiogbnVtYmVyIG9mIHllYXJzIGRpc3BsYXllZCBpbiBhIHNpbmdsZSByb3cgb2YgeWVhciBwaWNrZXIgKi9cbiAgQElucHV0KClcbiAgeWVhckNvbExpbWl0ITogbnVtYmVyO1xuICAvKiogYXJyYXkgb2YgY3VzdG9tIGNzcyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGFyZ2V0ZWQgZGF0ZXMgKi9cbiAgQElucHV0KClcbiAgY3VzdG9tQ2xhc3MhOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZzsgY2xheno6IHN0cmluZyB9W107XG4gIC8qKiBhcnJheSBvZiBkaXNhYmxlZCBkYXRlcyAqL1xuICBASW5wdXQoKVxuICBkYXRlRGlzYWJsZWQhOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZyB9W107XG4gIC8qKiBkaXNhYmxlZCBkYXlzIG9mIHRoZSB3ZWVrIGZyb20gMC02ICgwPVN1bmRheSwgLi4uLCA2PVNhdHVyZGF5KSAqL1xuICBASW5wdXQoKVxuICBkYXlEaXNhYmxlZCE6IG51bWJlcltdO1xuXG4gIC8qKiBjdXJyZW50bHkgYWN0aXZlIGRhdGUgKi9cbiAgQElucHV0KClcbiAgZ2V0IGFjdGl2ZURhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZURhdGUgfHwgdGhpcy5fbm93O1xuICB9XG5cbiAgc2V0IGFjdGl2ZURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgc2VsZWN0aW9uRG9uZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPih1bmRlZmluZWQpO1xuXG4gIC8qKiBjYWxsYmFjayB0byBpbnZva2Ugd2hlbiB0aGUgYWN0aXZlRGF0ZSBpcyBjaGFuZ2VkLiAqL1xuICBAT3V0cHV0KClcbiAgYWN0aXZlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPih1bmRlZmluZWQpO1xuXG4gIEBWaWV3Q2hpbGQoRGF0ZVBpY2tlcklubmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBfZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJJbm5lckNvbXBvbmVudDtcblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIG9uQ2hhbmdlOiBhbnkgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgb25Ub3VjaGVkOiBhbnkgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbiAgY29uZmlnOiBEYXRlcGlja2VyQ29uZmlnO1xuXG4gIHByb3RlY3RlZCBfbm93OiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHJvdGVjdGVkIF9hY3RpdmVEYXRlITogRGF0ZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IERhdGVwaWNrZXJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmNvbmZpZ3VyZU9wdGlvbnMoKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCB0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBvblVwZGF0ZShldmVudDogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IGV2ZW50O1xuICAgIHRoaXMub25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgb25TZWxlY3Rpb25Eb25lKGV2ZW50OiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25Eb25lLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25BY3RpdmVEYXRlQ2hhbmdlKGV2ZW50OiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG4gIC8vIHRvZG86IHN1cHBvcnQgbnVsbCB2YWx1ZVxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRlUGlja2VyLmNvbXBhcmUodmFsdWUsIHRoaXMuX2FjdGl2ZURhdGUpID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fZGF0ZVBpY2tlci5zZWxlY3QodmFsdWUsIGZhbHNlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlRGF0ZSA9ICh2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IHZvaWQgMCkhO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DatepickerConfig {
4
+ constructor() {
5
+ this.locale = 'en';
6
+ this.datepickerMode = 'day';
7
+ this.startingDay = 0;
8
+ this.yearRange = 20;
9
+ this.minMode = 'day';
10
+ this.maxMode = 'year';
11
+ this.showWeeks = true;
12
+ this.formatDay = 'DD';
13
+ this.formatMonth = 'MMMM';
14
+ this.formatYear = 'YYYY';
15
+ this.formatDayHeader = 'dd';
16
+ this.formatDayTitle = 'MMMM YYYY';
17
+ this.formatMonthTitle = 'YYYY';
18
+ this.onlyCurrentMonth = false;
19
+ this.monthColLimit = 3;
20
+ this.yearColLimit = 5;
21
+ this.shortcutPropagation = false;
22
+ }
23
+ }
24
+ DatepickerConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ DatepickerConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatepickerConfig });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatepickerConfig, decorators: [{
27
+ type: Injectable
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLE1BQU0sQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNwQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixtQkFBYyxHQUFHLFdBQVcsQ0FBQztRQUM3QixxQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztLQUM3Qjs7NkdBbEJZLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29uZmlnIHtcbiAgbG9jYWxlID0gJ2VuJztcbiAgZGF0ZXBpY2tlck1vZGUgPSAnZGF5JztcbiAgc3RhcnRpbmdEYXkgPSAwO1xuICB5ZWFyUmFuZ2UgPSAyMDtcbiAgbWluTW9kZSA9ICdkYXknO1xuICBtYXhNb2RlID0gJ3llYXInO1xuICBzaG93V2Vla3MgPSB0cnVlO1xuICBmb3JtYXREYXkgPSAnREQnO1xuICBmb3JtYXRNb250aCA9ICdNTU1NJztcbiAgZm9ybWF0WWVhciA9ICdZWVlZJztcbiAgZm9ybWF0RGF5SGVhZGVyID0gJ2RkJztcbiAgZm9ybWF0RGF5VGl0bGUgPSAnTU1NTSBZWVlZJztcbiAgZm9ybWF0TW9udGhUaXRsZSA9ICdZWVlZJztcbiAgb25seUN1cnJlbnRNb250aCA9IGZhbHNlO1xuICBtb250aENvbExpbWl0ID0gMztcbiAgeWVhckNvbExpbWl0ID0gNTtcbiAgc2hvcnRjdXRQcm9wYWdhdGlvbiA9IGZhbHNlO1xufVxuIl19
@@ -0,0 +1,305 @@
1
+ // @deprecated
2
+ // tslint:disable
3
+ import { Component } from '@angular/core';
4
+ import { isBs3 } from './isBs3';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./datepicker-inner.component";
7
+ import * as i2 from "@angular/common";
8
+ export class DayPickerComponent {
9
+ constructor(datePicker) {
10
+ this.labels = [];
11
+ this.rows = [];
12
+ this.weekNumbers = [];
13
+ this.datePicker = datePicker;
14
+ }
15
+ get isBs4() {
16
+ return !isBs3();
17
+ }
18
+ /*protected getDaysInMonth(year:number, month:number) {
19
+ return ((month === 1) && (year % 4 === 0) &&
20
+ ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];
21
+ }*/
22
+ ngOnInit() {
23
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
24
+ const self = this;
25
+ this.datePicker.stepDay = { months: 1 };
26
+ this.datePicker.setRefreshViewHandler(function () {
27
+ const year = this.activeDate.getFullYear();
28
+ const month = this.activeDate.getMonth();
29
+ const firstDayOfMonth = new Date(year, month, 1);
30
+ const difference = this.startingDay - firstDayOfMonth.getDay();
31
+ const numDisplayedFromPreviousMonth = difference > 0 ? 7 - difference : -difference;
32
+ const firstDate = new Date(firstDayOfMonth.getTime());
33
+ if (numDisplayedFromPreviousMonth > 0) {
34
+ firstDate.setDate(-numDisplayedFromPreviousMonth + 1);
35
+ }
36
+ // 42 is the number of days on a six-week calendar
37
+ const _days = self.getDates(firstDate, 42);
38
+ const days = [];
39
+ for (let i = 0; i < 42; i++) {
40
+ const _dateObject = this.createDateObject(_days[i], this.formatDay);
41
+ _dateObject.secondary = _days[i]?.getMonth() !== month;
42
+ _dateObject.uid = this.uniqueId + '-' + i;
43
+ days[i] = _dateObject;
44
+ }
45
+ self.labels = [];
46
+ for (let j = 0; j < 7; j++) {
47
+ self.labels[j] = {};
48
+ self.labels[j].abbr = this.dateFilter(days[j].date, this.formatDayHeader);
49
+ self.labels[j].full = this.dateFilter(days[j].date, 'EEEE');
50
+ }
51
+ self.title = this.dateFilter(this.activeDate, this.formatDayTitle);
52
+ self.rows = this.split(days, 7);
53
+ if (this.showWeeks) {
54
+ self.weekNumbers = [];
55
+ const thursdayIndex = (4 + 7 - this.startingDay) % 7;
56
+ const numWeeks = self.rows.length;
57
+ for (let curWeek = 0; curWeek < numWeeks; curWeek++) {
58
+ self.weekNumbers.push(self.getISO8601WeekNumber(self.rows[curWeek][thursdayIndex].date));
59
+ }
60
+ }
61
+ }, 'day');
62
+ this.datePicker.setCompareHandler(function (date1, date2) {
63
+ const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
64
+ const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
65
+ return d1.getTime() - d2.getTime();
66
+ }, 'day');
67
+ this.datePicker.refreshView();
68
+ }
69
+ getDates(startDate, n) {
70
+ const dates = new Array(n);
71
+ let current = new Date(startDate.getTime());
72
+ let i = 0;
73
+ let date;
74
+ while (i < n) {
75
+ date = new Date(current.getTime());
76
+ date = this.datePicker.fixTimeZone(date);
77
+ dates[i++] = date;
78
+ current = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
79
+ }
80
+ return dates;
81
+ }
82
+ getISO8601WeekNumber(date) {
83
+ const checkDate = new Date(date.getTime());
84
+ // Thursday
85
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
86
+ const time = checkDate.getTime();
87
+ // Compare with Jan 1
88
+ checkDate.setMonth(0);
89
+ checkDate.setDate(1);
90
+ return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;
91
+ }
92
+ }
93
+ DayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DayPickerComponent, deps: [{ token: i1.DatePickerInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
94
+ DayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: DayPickerComponent, selector: "daypicker", ngImport: i0, template: `
95
+ <table
96
+ *ngIf="datePicker.datepickerMode === 'day'"
97
+ role="grid"
98
+ [attr.aria-labelledby]="datePicker.uniqueId + '-title'"
99
+ aria-activedescendant="activeDateId"
100
+ >
101
+ <thead>
102
+ <tr>
103
+ <th>
104
+ <button
105
+ *ngIf="!isBs4"
106
+ type="button"
107
+ class="btn btn-default btn-secondary btn-sm pull-left float-left"
108
+ (click)="datePicker.move(-1)"
109
+ tabindex="-1"
110
+ >
111
+
112
+ </button>
113
+ <button
114
+ *ngIf="isBs4"
115
+ type="button"
116
+ class="btn btn-default btn-secondary btn-sm pull-left float-left"
117
+ (click)="datePicker.move(-1)"
118
+ tabindex="-1"
119
+ >
120
+ &lt;
121
+ </button>
122
+ </th>
123
+ <th [attr.colspan]="5 + (datePicker.showWeeks ? 1 : 0)">
124
+ <button
125
+ [id]="datePicker.uniqueId + '-title'"
126
+ type="button"
127
+ class="btn btn-default btn-secondary btn-sm"
128
+ (click)="datePicker.toggleMode(0)"
129
+ [disabled]="datePicker.datepickerMode === datePicker.maxMode"
130
+ [ngClass]="{ disabled: datePicker.datepickerMode === datePicker.maxMode }"
131
+ tabindex="-1"
132
+ style="width:100%;"
133
+ >
134
+ <strong>{{ title }}</strong>
135
+ </button>
136
+ </th>
137
+ <th>
138
+ <button
139
+ *ngIf="!isBs4"
140
+ type="button"
141
+ class="btn btn-default btn-secondary btn-sm pull-right float-right"
142
+ (click)="datePicker.move(1)"
143
+ tabindex="-1"
144
+ >
145
+
146
+ </button>
147
+ <button
148
+ *ngIf="isBs4"
149
+ type="button"
150
+ class="btn btn-default btn-secondary btn-sm pull-right float-right"
151
+ (click)="datePicker.move(1)"
152
+ tabindex="-1"
153
+ >
154
+ &gt;
155
+ </button>
156
+ </th>
157
+ </tr>
158
+ <tr>
159
+ <th *ngIf="datePicker.showWeeks"></th>
160
+ <th *ngFor="let labelz of labels" class="text-center">
161
+ <small aria-label="labelz.full"
162
+ ><b>{{ labelz.abbr }}</b></small
163
+ >
164
+ </th>
165
+ </tr>
166
+ </thead>
167
+ <tbody>
168
+ <ng-template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">
169
+ <tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)">
170
+ <td *ngIf="datePicker.showWeeks" class="h6" class="text-center">
171
+ <em>{{ weekNumbers[index] }}</em>
172
+ </td>
173
+ <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [id]="dtz.uid">
174
+ <button
175
+ type="button"
176
+ style="min-width:100%;"
177
+ class="btn btn-sm {{ dtz.customClass }}"
178
+ *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"
179
+ [ngClass]="{
180
+ 'btn-secondary': isBs4 && !dtz.selected && !datePicker.isActive(dtz),
181
+ 'btn-info': dtz.selected,
182
+ disabled: dtz.disabled,
183
+ active: !isBs4 && datePicker.isActive(dtz),
184
+ 'btn-default': !isBs4
185
+ }"
186
+ [disabled]="dtz.disabled"
187
+ (click)="datePicker.select(dtz.date)"
188
+ tabindex="-1"
189
+ >
190
+ <span [ngClass]="{ 'text-muted': dtz.secondary || dtz.current, 'text-info': !isBs4 && dtz.current }">{{ dtz.label }}</span>
191
+ </button>
192
+ </td>
193
+ </tr>
194
+ </ng-template>
195
+ </tbody>
196
+ </table>
197
+ `, isInline: true, styles: [":host .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}:host .btn-info .text-muted{color:#292b2c!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DayPickerComponent, decorators: [{
199
+ type: Component,
200
+ args: [{ selector: 'daypicker', template: `
201
+ <table
202
+ *ngIf="datePicker.datepickerMode === 'day'"
203
+ role="grid"
204
+ [attr.aria-labelledby]="datePicker.uniqueId + '-title'"
205
+ aria-activedescendant="activeDateId"
206
+ >
207
+ <thead>
208
+ <tr>
209
+ <th>
210
+ <button
211
+ *ngIf="!isBs4"
212
+ type="button"
213
+ class="btn btn-default btn-secondary btn-sm pull-left float-left"
214
+ (click)="datePicker.move(-1)"
215
+ tabindex="-1"
216
+ >
217
+
218
+ </button>
219
+ <button
220
+ *ngIf="isBs4"
221
+ type="button"
222
+ class="btn btn-default btn-secondary btn-sm pull-left float-left"
223
+ (click)="datePicker.move(-1)"
224
+ tabindex="-1"
225
+ >
226
+ &lt;
227
+ </button>
228
+ </th>
229
+ <th [attr.colspan]="5 + (datePicker.showWeeks ? 1 : 0)">
230
+ <button
231
+ [id]="datePicker.uniqueId + '-title'"
232
+ type="button"
233
+ class="btn btn-default btn-secondary btn-sm"
234
+ (click)="datePicker.toggleMode(0)"
235
+ [disabled]="datePicker.datepickerMode === datePicker.maxMode"
236
+ [ngClass]="{ disabled: datePicker.datepickerMode === datePicker.maxMode }"
237
+ tabindex="-1"
238
+ style="width:100%;"
239
+ >
240
+ <strong>{{ title }}</strong>
241
+ </button>
242
+ </th>
243
+ <th>
244
+ <button
245
+ *ngIf="!isBs4"
246
+ type="button"
247
+ class="btn btn-default btn-secondary btn-sm pull-right float-right"
248
+ (click)="datePicker.move(1)"
249
+ tabindex="-1"
250
+ >
251
+
252
+ </button>
253
+ <button
254
+ *ngIf="isBs4"
255
+ type="button"
256
+ class="btn btn-default btn-secondary btn-sm pull-right float-right"
257
+ (click)="datePicker.move(1)"
258
+ tabindex="-1"
259
+ >
260
+ &gt;
261
+ </button>
262
+ </th>
263
+ </tr>
264
+ <tr>
265
+ <th *ngIf="datePicker.showWeeks"></th>
266
+ <th *ngFor="let labelz of labels" class="text-center">
267
+ <small aria-label="labelz.full"
268
+ ><b>{{ labelz.abbr }}</b></small
269
+ >
270
+ </th>
271
+ </tr>
272
+ </thead>
273
+ <tbody>
274
+ <ng-template ngFor [ngForOf]="rows" let-rowz="$implicit" let-index="index">
275
+ <tr *ngIf="!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)">
276
+ <td *ngIf="datePicker.showWeeks" class="h6" class="text-center">
277
+ <em>{{ weekNumbers[index] }}</em>
278
+ </td>
279
+ <td *ngFor="let dtz of rowz" class="text-center" role="gridcell" [id]="dtz.uid">
280
+ <button
281
+ type="button"
282
+ style="min-width:100%;"
283
+ class="btn btn-sm {{ dtz.customClass }}"
284
+ *ngIf="!(datePicker.onlyCurrentMonth && dtz.secondary)"
285
+ [ngClass]="{
286
+ 'btn-secondary': isBs4 && !dtz.selected && !datePicker.isActive(dtz),
287
+ 'btn-info': dtz.selected,
288
+ disabled: dtz.disabled,
289
+ active: !isBs4 && datePicker.isActive(dtz),
290
+ 'btn-default': !isBs4
291
+ }"
292
+ [disabled]="dtz.disabled"
293
+ (click)="datePicker.select(dtz.date)"
294
+ tabindex="-1"
295
+ >
296
+ <span [ngClass]="{ 'text-muted': dtz.secondary || dtz.current, 'text-info': !isBs4 && dtz.current }">{{ dtz.label }}</span>
297
+ </button>
298
+ </td>
299
+ </tr>
300
+ </ng-template>
301
+ </tbody>
302
+ </table>
303
+ `, styles: [":host .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}:host .btn-info .text-muted{color:#292b2c!important}\n"] }]
304
+ }], ctorParameters: function () { return [{ type: i1.DatePickerInnerComponent }]; } });
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvZGF0ZS1waWNrZXItdWkvZGF5cGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQTBIaEMsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixZQUFZLFVBQW9DO1FBTmhELFdBQU0sR0FBVSxFQUFFLENBQUM7UUFFbkIsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUl6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O1FBR0k7SUFDSixRQUFRO1FBQ04sNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV4QyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sVUFB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Ly8gQGRlcHJlY2F0ZWRcbi8vIHRzbGludDpkaXNhYmxlXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0JzMyB9IGZyb20gJy4vaXNCczMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdkYXlwaWNrZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx0YWJsZVxuICAgICAgKm5nSWY9XCJkYXRlUGlja2VyLmRhdGVwaWNrZXJNb2RlID09PSAnZGF5J1wiXG4gICAgICByb2xlPVwiZ3JpZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZGF0ZVBpY2tlci51bmlxdWVJZCArICctdGl0bGUnXCJcbiAgICAgIGFyaWEtYWN0aXZlZGVzY2VuZGFudD1cImFjdGl2ZURhdGVJZFwiXG4gICAgPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc0JzNFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBwdWxsLWxlZnQgZmxvYXQtbGVmdFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRlUGlja2VyLm1vdmUoLTEpXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOKAuVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNCczRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNlY29uZGFyeSBidG4tc20gcHVsbC1sZWZ0IGZsb2F0LWxlZnRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5tb3ZlKC0xKVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAmbHQ7XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0aCBbYXR0ci5jb2xzcGFuXT1cIjUgKyAoZGF0ZVBpY2tlci5zaG93V2Vla3MgPyAxIDogMClcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW2lkXT1cImRhdGVQaWNrZXIudW5pcXVlSWQgKyAnLXRpdGxlJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc2Vjb25kYXJ5IGJ0bi1zbVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRlUGlja2VyLnRvZ2dsZU1vZGUoMClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZVBpY2tlci5kYXRlcGlja2VyTW9kZSA9PT0gZGF0ZVBpY2tlci5tYXhNb2RlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGF0ZVBpY2tlci5kYXRlcGlja2VyTW9kZSA9PT0gZGF0ZVBpY2tlci5tYXhNb2RlIH1cIlxuICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgdGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc0JzNFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBwdWxsLXJpZ2h0IGZsb2F0LXJpZ2h0XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIubW92ZSgxKVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICDigLpcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImlzQnM0XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zZWNvbmRhcnkgYnRuLXNtIHB1bGwtcmlnaHQgZmxvYXQtcmlnaHRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0ZVBpY2tlci5tb3ZlKDEpXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICZndDtcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggKm5nSWY9XCJkYXRlUGlja2VyLnNob3dXZWVrc1wiPjwvdGg+XG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBsYWJlbHogb2YgbGFiZWxzXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHNtYWxsIGFyaWEtbGFiZWw9XCJsYWJlbHouZnVsbFwiXG4gICAgICAgICAgICAgID48Yj57eyBsYWJlbHouYWJiciB9fTwvYj48L3NtYWxsXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJyb3dzXCIgbGV0LXJvd3o9XCIkaW1wbGljaXRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgICAgICAgIDx0ciAqbmdJZj1cIiEoZGF0ZVBpY2tlci5vbmx5Q3VycmVudE1vbnRoICYmIHJvd3pbMF0uc2Vjb25kYXJ5ICYmIHJvd3pbNl0uc2Vjb25kYXJ5KVwiPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiZGF0ZVBpY2tlci5zaG93V2Vla3NcIiBjbGFzcz1cImg2XCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZW0+e3sgd2Vla051bWJlcnNbaW5kZXhdIH19PC9lbT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGR0eiBvZiByb3d6XCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIHJvbGU9XCJncmlkY2VsbFwiIFtpZF09XCJkdHoudWlkXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDoxMDAlO1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIHt7IGR0ei5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKGRhdGVQaWNrZXIub25seUN1cnJlbnRNb250aCAmJiBkdHouc2Vjb25kYXJ5KVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ2J0bi1zZWNvbmRhcnknOiBpc0JzNCAmJiAhZHR6LnNlbGVjdGVkICYmICFkYXRlUGlja2VyLmlzQWN0aXZlKGR0eiksXG4gICAgICAgICAgICAgICAgICAnYnRuLWluZm8nOiBkdHouc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZHR6LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgYWN0aXZlOiAhaXNCczQgJiYgZGF0ZVBpY2tlci5pc0FjdGl2ZShkdHopLFxuICAgICAgICAgICAgICAgICAgJ2J0bi1kZWZhdWx0JzogIWlzQnM0XG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImR0ei5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIuc2VsZWN0KGR0ei5kYXRlKVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LW11dGVkJzogZHR6LnNlY29uZGFyeSB8fCBkdHouY3VycmVudCwgJ3RleHQtaW5mbyc6ICFpc0JzNCAmJiBkdHouY3VycmVudCB9XCI+e3sgZHR6LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3QgLmJ0bi1zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogIzI5MmIyYztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgICAgOmhvc3QgLmJ0bi1pbmZvIC50ZXh0LW11dGVkIHtcbiAgICAgICAgY29sb3I6ICMyOTJiMmMgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbGFiZWxzOiBhbnlbXSA9IFtdO1xuICB0aXRsZSE6IHN0cmluZztcbiAgcm93czogYW55W10gPSBbXTtcbiAgd2Vla051bWJlcnM6IG51bWJlcltdID0gW107XG4gIGRhdGVQaWNrZXI6IERhdGVQaWNrZXJJbm5lckNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihkYXRlUGlja2VyOiBEYXRlUGlja2VySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXIgPSBkYXRlUGlja2VyO1xuICB9XG5cbiAgZ2V0IGlzQnM0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNCczMoKTtcbiAgfVxuXG4gIC8qcHJvdGVjdGVkIGdldERheXNJbk1vbnRoKHllYXI6bnVtYmVyLCBtb250aDpudW1iZXIpIHtcbiAgIHJldHVybiAoKG1vbnRoID09PSAxKSAmJiAoeWVhciAlIDQgPT09IDApICYmXG4gICAoKHllYXIgJSAxMDAgIT09IDApIHx8ICh5ZWFyICUgNDAwID09PSAwKSkpID8gMjkgOiBEQVlTX0lOX01PTlRIW21vbnRoXTtcbiAgIH0qL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcblxuICAgIHRoaXMuZGF0ZVBpY2tlci5zdGVwRGF5ID0geyBtb250aHM6IDEgfTtcblxuICAgIHRoaXMuZGF0ZVBpY2tlci5zZXRSZWZyZXNoVmlld0hhbmRsZXIoZnVuY3Rpb24gKHRoaXM6IGFueSk6IHZvaWQge1xuICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgY29uc3QgbW9udGggPSB0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICAgIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcbiAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLnN0YXJ0aW5nRGF5IC0gZmlyc3REYXlPZk1vbnRoLmdldERheSgpO1xuICAgICAgY29uc3QgbnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggPSBkaWZmZXJlbmNlID4gMCA/IDcgLSBkaWZmZXJlbmNlIDogLWRpZmZlcmVuY2U7XG4gICAgICBjb25zdCBmaXJzdERhdGUgPSBuZXcgRGF0ZShmaXJzdERheU9mTW9udGguZ2V0VGltZSgpKTtcblxuICAgICAgaWYgKG51bURpc3BsYXllZEZyb21QcmV2aW91c01vbnRoID4gMCkge1xuICAgICAgICBmaXJzdERhdGUuc2V0RGF0ZSgtbnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggKyAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gNDIgaXMgdGhlIG51bWJlciBvZiBkYXlzIG9uIGEgc2l4LXdlZWsgY2FsZW5kYXJcbiAgICAgIGNvbnN0IF9kYXlzOiBEYXRlW10gPSBzZWxmLmdldERhdGVzKGZpcnN0RGF0ZSwgNDIpO1xuICAgICAgY29uc3QgZGF5czogYW55W10gPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDI7IGkrKykge1xuICAgICAgICBjb25zdCBfZGF0ZU9iamVjdCA9IHRoaXMuY3JlYXRlRGF0ZU9iamVjdChfZGF5c1tpXSwgdGhpcy5mb3JtYXREYXkpO1xuICAgICAgICBfZGF0ZU9iamVjdC5zZWNvbmRhcnkgPSBfZGF5c1tpXT8uZ2V0TW9udGgoKSAhPT0gbW9udGg7XG4gICAgICAgIF9kYXRlT2JqZWN0LnVpZCA9IHRoaXMudW5pcXVlSWQgKyAnLScgKyBpO1xuICAgICAgICBkYXlzW2ldID0gX2RhdGVPYmplY3Q7XG4gICAgICB9XG5cbiAgICAgIHNlbGYubGFiZWxzID0gW107XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDc7IGorKykge1xuICAgICAgICBzZWxmLmxhYmVsc1tqXSA9IHt9O1xuICAgICAgICBzZWxmLmxhYmVsc1tqXS5hYmJyID0gdGhpcy5kYXRlRmlsdGVyKGRheXNbal0uZGF0ZSwgdGhpcy5mb3JtYXREYXlIZWFkZXIpO1xuICAgICAgICBzZWxmLmxhYmVsc1tqXS5mdWxsID0gdGhpcy5kYXRlRmlsdGVyKGRheXNbal0uZGF0ZSwgJ0VFRUUnKTtcbiAgICAgIH1cblxuICAgICAgc2VsZi50aXRsZSA9IHRoaXMuZGF0ZUZpbHRlcih0aGlzLmFjdGl2ZURhdGUsIHRoaXMuZm9ybWF0RGF5VGl0bGUpO1xuICAgICAgc2VsZi5yb3dzID0gdGhpcy5zcGxpdChkYXlzLCA3KTtcblxuICAgICAgaWYgKHRoaXMuc2hvd1dlZWtzKSB7XG4gICAgICAgIHNlbGYud2Vla051bWJlcnMgPSBbXTtcbiAgICAgICAgY29uc3QgdGh1cnNkYXlJbmRleCA9ICg0ICsgNyAtIHRoaXMuc3RhcnRpbmdEYXkpICUgNztcbiAgICAgICAgY29uc3QgbnVtV2Vla3MgPSBzZWxmLnJvd3MubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBjdXJXZWVrID0gMDsgY3VyV2VlayA8IG51bVdlZWtzOyBjdXJXZWVrKyspIHtcbiAgICAgICAgICBzZWxmLndlZWtOdW1iZXJzLnB1c2goc2VsZi5nZXRJU084NjAxV2Vla051bWJlcihzZWxmLnJvd3NbY3VyV2Vla11bdGh1cnNkYXlJbmRleF0uZGF0ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlUGlja2VyLnNldENvbXBhcmVIYW5kbGVyKGZ1bmN0aW9uIChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgICAgY29uc3QgZDEgPSBuZXcgRGF0ZShkYXRlMS5nZXRGdWxsWWVhcigpLCBkYXRlMS5nZXRNb250aCgpLCBkYXRlMS5nZXREYXRlKCkpO1xuICAgICAgY29uc3QgZDIgPSBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xuICAgICAgcmV0dXJuIGQxLmdldFRpbWUoKSAtIGQyLmdldFRpbWUoKTtcbiAgICB9LCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVQaWNrZXIucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRlcyhzdGFydERhdGU6IERhdGUsIG46IG51bWJlcik6IERhdGVbXSB7XG4gICAgY29uc3QgZGF0ZXM6IERhdGVbXSA9IG5ldyBBcnJheShuKTtcbiAgICBsZXQgY3VycmVudCA9IG5ldyBEYXRlKHN0YXJ0RGF0ZS5nZXRUaW1lKCkpO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgZGF0ZTogRGF0ZTtcbiAgICB3aGlsZSAoaSA8IG4pIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShjdXJyZW50LmdldFRpbWUoKSk7XG4gICAgICBkYXRlID0gdGhpcy5kYXRlUGlja2VyLmZpeFRpbWVab25lKGRhdGUpO1xuICAgICAgZGF0ZXNbaSsrXSA9IGRhdGU7XG4gICAgICBjdXJyZW50ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJU084NjAxV2Vla051bWJlcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjaGVja0RhdGUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG4gICAgLy8gVGh1cnNkYXlcbiAgICBjaGVja0RhdGUuc2V0RGF0ZShjaGVja0RhdGUuZ2V0RGF0ZSgpICsgNCAtIChjaGVja0RhdGUuZ2V0RGF5KCkgfHwgNykpO1xuICAgIGNvbnN0IHRpbWUgPSBjaGVja0RhdGUuZ2V0VGltZSgpO1xuICAgIC8vIENvbXBhcmUgd2l0aCBKYW4gMVxuICAgIGNoZWNrRGF0ZS5zZXRNb250aCgwKTtcbiAgICBjaGVja0RhdGUuc2V0RGF0ZSgxKTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJvdW5kKCh0aW1lIC0gY2hlY2tEYXRlLmdldFRpbWUoKSkgLyA4NjQwMDAwMCkgLyA3KSArIDE7XG4gIH1cblxuICAvLyB0b2RvOiBrZXkgZXZlbnRzIGltcGxlbWVudGF0aW9uXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export const isBs3 = () => true;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNCczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2lzQnMzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaXNCczMgPSAoKSA9PiB0cnVlO1xuIl19