xv-webcomponents 1.24.6 → 1.24.8-staging.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.
Files changed (57) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/{xv-accordion-v2_49.cjs.entry.js → xv-accordion-v2_50.cjs.entry.js} +704 -45
  3. package/dist/cjs/xv-header-next.cjs.entry.js +1 -1
  4. package/dist/cjs/xv-mega-menu-next.cjs.entry.js +2 -2
  5. package/dist/cjs/xv-webcomponents.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +1 -0
  7. package/dist/collection/components/xv-date-picker/xv-date-picker.css +386 -0
  8. package/dist/collection/components/xv-date-picker/xv-date-picker.js +1210 -0
  9. package/dist/collection/components/xv-date-picker/xv-date-picker.model.js +1 -0
  10. package/dist/collection/components/xv-date-picker/xv-date-picker.utils.js +120 -0
  11. package/dist/collection/components/xv-datepicker/xv-datepicker.js +2 -2
  12. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  13. package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
  14. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +2 -2
  15. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  16. package/dist/collection/components/xv-header/xv-header.js +1 -1
  17. package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
  18. package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
  19. package/dist/collection/components/xv-link/xv-link.js +1 -1
  20. package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
  21. package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
  22. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  23. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  24. package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
  25. package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
  26. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  27. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  28. package/dist/collection/components/xv-radio/xv-radio.js +2 -2
  29. package/dist/collection/components/xv-slider/xv-slider.js +1 -1
  30. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  31. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  32. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  33. package/dist/collection/components/xv-table/xv-table.js +1 -1
  34. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  35. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  36. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
  37. package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
  38. package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
  39. package/dist/collection/components/xv-tile/xv-tile.js +2 -2
  40. package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
  41. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
  42. package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
  43. package/dist/esm/loader.js +1 -1
  44. package/dist/esm/{xv-accordion-v2_49.entry.js → xv-accordion-v2_50.entry.js} +704 -46
  45. package/dist/esm/xv-header-next.entry.js +1 -1
  46. package/dist/esm/xv-mega-menu-next.entry.js +2 -2
  47. package/dist/esm/xv-webcomponents.js +1 -1
  48. package/dist/types/components/xv-date-picker/xv-date-picker.d.ts +101 -0
  49. package/dist/types/components/xv-date-picker/xv-date-picker.model.d.ts +45 -0
  50. package/dist/types/components/xv-date-picker/xv-date-picker.utils.d.ts +16 -0
  51. package/dist/types/components.d.ts +187 -0
  52. package/dist/xv-webcomponents/{p-9bd6edd0.entry.js → p-51664dbf.entry.js} +1 -1
  53. package/dist/xv-webcomponents/p-b6eb6373.entry.js +8 -0
  54. package/dist/xv-webcomponents/{p-71205fad.entry.js → p-fe9b38f8.entry.js} +1 -1
  55. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  56. package/package.json +1 -1
  57. package/dist/xv-webcomponents/p-01c5eb8d.entry.js +0 -8
@@ -0,0 +1,1210 @@
1
+ import { Fragment, Host, h, } from "@stencil/core";
2
+ import { addDays, addMonths, addYears, endOfMonth, endOfWeek, endOfYear, format, startOfWeek, } from "date-fns";
3
+ import { de, enUS } from "date-fns/locale";
4
+ import { createPopper } from "@popperjs/core";
5
+ import { SIZE_VAR } from "../../types/enum";
6
+ import { resolveFieldMessage } from "../../utils/utils";
7
+ import { DAY_COLS, YEAR_PAGE, buildDayRows, buildMonthCells, buildYearCells, isUnitDisabled, selectUnit, toBounds, toKey, toValue, yearPageStart, } from "./xv-date-picker.utils";
8
+ const LOCALES = { de, en: enUS };
9
+ const DRILL_DOWN = { year: 'month', month: 'day', day: 'day' };
10
+ const DRILL_UP = { day: 'month', month: 'year', year: 'year' };
11
+ const UNIT_COLS = 3;
12
+ export class XvDatePicker {
13
+ constructor() {
14
+ this.value = [undefined, undefined];
15
+ this.selection = 'single';
16
+ this.precision = 'day';
17
+ this.withTime = false;
18
+ this.minuteStep = 5;
19
+ this.weekStartsOn = 1;
20
+ this.showWeekNumbers = true;
21
+ this.required = false;
22
+ this.readonly = false;
23
+ this.disabled = false;
24
+ this.loading = false;
25
+ this.clearable = false;
26
+ this.size = SIZE_VAR.MD;
27
+ this.block = false;
28
+ this.placement = 'bottom-start';
29
+ this.offset = 8;
30
+ this.dates = [undefined, undefined];
31
+ this.open = false;
32
+ this.view = 'day';
33
+ this.anchor = new Date();
34
+ this.active = 'start';
35
+ this.dayRows = [];
36
+ this.unitCells = [];
37
+ this.weekdays = [];
38
+ this.focusedDate = new Date();
39
+ this.bounds = {};
40
+ this.inputs = {};
41
+ this.pendingCellFocus = false;
42
+ this.handleFieldClick = (event) => {
43
+ if (!this.isInteractive)
44
+ return;
45
+ const endpoint = this.endpointOf(event.target);
46
+ this.active = endpoint !== null && endpoint !== void 0 ? endpoint : (this.dates[0] && this.selection === 'range' ? 'end' : 'start');
47
+ if (!this.open)
48
+ this.open = true;
49
+ if (!endpoint)
50
+ this.focusEndpoint(this.active);
51
+ };
52
+ this.handleFieldKeydown = (event) => {
53
+ if (!this.isInteractive)
54
+ return;
55
+ if (event.key === 'Enter' || event.key === ' ' || event.key === 'ArrowDown') {
56
+ event.preventDefault();
57
+ const endpoint = this.endpointOf(event.target);
58
+ if (endpoint)
59
+ this.active = endpoint;
60
+ this.open = true;
61
+ // ArrowDown is the keyboard way into the grid
62
+ if (event.key === 'ArrowDown')
63
+ this.pendingCellFocus = true;
64
+ return;
65
+ }
66
+ if (event.key === 'Escape' && this.open)
67
+ this.open = false;
68
+ };
69
+ this.handlePanelKeydown = (event) => {
70
+ if (event.key !== 'Escape')
71
+ return;
72
+ event.stopPropagation();
73
+ this.open = false;
74
+ this.focusEndpoint(this.active);
75
+ };
76
+ this.handleGridKeydown = (event) => {
77
+ const columns = this.view === 'day' ? DAY_COLS : UNIT_COLS;
78
+ switch (event.key) {
79
+ case 'ArrowLeft':
80
+ this.moveFocus(-1);
81
+ break;
82
+ case 'ArrowRight':
83
+ this.moveFocus(1);
84
+ break;
85
+ case 'ArrowUp':
86
+ this.moveFocus(-columns);
87
+ break;
88
+ case 'ArrowDown':
89
+ this.moveFocus(columns);
90
+ break;
91
+ case 'Home':
92
+ this.setFocusedDate(this.edgeOfRow('start'), 1);
93
+ break;
94
+ case 'End':
95
+ this.setFocusedDate(this.edgeOfRow('end'), -1);
96
+ break;
97
+ case 'PageUp':
98
+ this.stepFocus(-1);
99
+ break;
100
+ case 'PageDown':
101
+ this.stepFocus(1);
102
+ break;
103
+ default: return;
104
+ }
105
+ event.preventDefault();
106
+ };
107
+ this.handleTimeChange = (event, endpoint) => {
108
+ const [hours, minutes] = event.target.value.split(':').map(Number);
109
+ if (!Number.isFinite(hours) || !Number.isFinite(minutes))
110
+ return;
111
+ const index = endpoint === 'end' ? 1 : 0;
112
+ const current = this.dates[index];
113
+ if (!current)
114
+ return;
115
+ const updated = new Date(current);
116
+ updated.setHours(hours, minutes, 0, 0);
117
+ const next = [this.dates[0], this.dates[1]];
118
+ next[index] = updated;
119
+ // a time edit must not invert the range — pull the other endpoint along
120
+ if (next[0] && next[1] && next[0].getTime() > next[1].getTime()) {
121
+ next[index === 0 ? 1 : 0] = new Date(updated);
122
+ }
123
+ this.commit(next);
124
+ };
125
+ this.handleClear = (event) => {
126
+ event.stopPropagation();
127
+ this.commit([undefined, undefined]);
128
+ this.active = 'start';
129
+ };
130
+ }
131
+ get dateLocale() {
132
+ var _a;
133
+ const tag = this.locale || ((_a = this.el.closest('[lang]')) === null || _a === void 0 ? void 0 : _a.getAttribute('lang')) || 'de';
134
+ return LOCALES[tag] || LOCALES[tag.split('-')[0]] || de;
135
+ }
136
+ get isInteractive() {
137
+ return !this.disabled && !this.readonly && !this.loading;
138
+ }
139
+ componentWillLoad() {
140
+ this.syncValue();
141
+ this.view = this.precision;
142
+ this.anchor = this.dates[0] || new Date();
143
+ this.rebuildWeekdays();
144
+ this.rebuild();
145
+ }
146
+ componentDidRender() {
147
+ if (!this.pendingCellFocus)
148
+ return;
149
+ this.pendingCellFocus = false;
150
+ this.focusCell();
151
+ }
152
+ disconnectedCallback() {
153
+ this.destroyPopper();
154
+ this.unbindDismiss();
155
+ }
156
+ syncValue() {
157
+ const next = toValue(this.value);
158
+ const [start, end] = next;
159
+ const [prevStart, prevEnd] = this.dates;
160
+ if ((start === null || start === void 0 ? void 0 : start.getTime()) === (prevStart === null || prevStart === void 0 ? void 0 : prevStart.getTime()) && (end === null || end === void 0 ? void 0 : end.getTime()) === (prevEnd === null || prevEnd === void 0 ? void 0 : prevEnd.getTime()))
161
+ return;
162
+ this.dates = next;
163
+ this.syncFormValue();
164
+ // the tuple keeps its slots — consumers read detail[0] / detail[1] positionally
165
+ this.valueChange.emit(next);
166
+ }
167
+ rebuildWeekdays() {
168
+ const first = startOfWeek(new Date(), { weekStartsOn: this.weekStartsOn });
169
+ this.weekdays = Array.from({ length: 7 }, (_, index) => format(addDays(first, index), 'EEEEEE', { locale: this.dateLocale }));
170
+ }
171
+ resetView() {
172
+ this.view = this.precision;
173
+ }
174
+ rebuild() {
175
+ this.bounds = toBounds({
176
+ precision: this.view,
177
+ min: this.min,
178
+ max: this.max,
179
+ disabledDates: this.disabledDates,
180
+ disabledWeekdays: this.disabledWeekdays,
181
+ });
182
+ if (this.view === 'day') {
183
+ this.dayRows = buildDayRows(this.anchor, this.weekStartsOn, this.bounds);
184
+ this.unitCells = [];
185
+ return;
186
+ }
187
+ this.dayRows = [];
188
+ this.unitCells = this.view === 'month'
189
+ ? buildMonthCells(this.anchor, this.bounds)
190
+ : buildYearCells(this.anchor, this.bounds);
191
+ }
192
+ openWatcher() {
193
+ this.openChange.emit(this.open);
194
+ if (this.open) {
195
+ this.view = this.precision;
196
+ this.anchor = this.dates[this.active === 'end' ? 1 : 0] || this.dates[0] || new Date();
197
+ this.focusedDate = this.anchor;
198
+ requestAnimationFrame(() => this.createPopper());
199
+ this.bindDismiss();
200
+ return;
201
+ }
202
+ this.destroyPopper();
203
+ this.unbindDismiss();
204
+ this.xvBlur.emit(this.dates);
205
+ }
206
+ syncFormValue() {
207
+ var _a;
208
+ // form association is optional — the element also works outside a form
209
+ if (typeof ((_a = this.internals) === null || _a === void 0 ? void 0 : _a.setFormValue) !== 'function')
210
+ return;
211
+ const [start, end] = this.dates;
212
+ if (!start && !end) {
213
+ this.internals.setFormValue(null);
214
+ return;
215
+ }
216
+ if (this.selection === 'single') {
217
+ this.internals.setFormValue((start !== null && start !== void 0 ? start : end).toISOString());
218
+ return;
219
+ }
220
+ const data = new FormData();
221
+ start && data.append('start', start.toISOString());
222
+ end && data.append('end', end.toISOString());
223
+ this.internals.setFormValue(data);
224
+ }
225
+ commit(next) {
226
+ this.value = next;
227
+ }
228
+ handleCellClick(cell) {
229
+ if (cell.disabled)
230
+ return;
231
+ if (this.view !== this.precision) {
232
+ this.anchor = cell.date;
233
+ this.view = DRILL_DOWN[this.view];
234
+ return;
235
+ }
236
+ const result = selectUnit({
237
+ value: this.dates,
238
+ picked: cell.date,
239
+ active: this.active,
240
+ selection: this.selection,
241
+ precision: this.precision,
242
+ withTime: this.withTime,
243
+ });
244
+ if (cell.outside)
245
+ this.anchor = cell.date;
246
+ this.commit(result.value);
247
+ this.active = result.active;
248
+ // with a time section the panel stays open so the time can still be set
249
+ if (result.complete && !(this.withTime && this.precision === 'day')) {
250
+ this.open = false;
251
+ // the picked cell is gone with the panel — never leave focus on the body
252
+ this.focusEndpoint(this.active);
253
+ return;
254
+ }
255
+ if (!result.complete)
256
+ this.focusEndpoint(result.active);
257
+ }
258
+ addUnits(date, amount) {
259
+ if (this.view === 'day')
260
+ return addDays(date, amount);
261
+ if (this.view === 'month')
262
+ return addMonths(date, amount);
263
+ return addYears(date, amount);
264
+ }
265
+ moveFocus(amount) {
266
+ this.setFocusedDate(this.addUnits(this.focusedDate, amount), amount > 0 ? 1 : -1);
267
+ }
268
+ stepFocus(direction) {
269
+ if (direction < 0 ? !this.canStepBack : !this.canStepForward)
270
+ return;
271
+ const next = this.view === 'day'
272
+ ? addMonths(this.focusedDate, direction)
273
+ : this.view === 'month'
274
+ ? addYears(this.focusedDate, direction)
275
+ : addYears(this.focusedDate, direction * YEAR_PAGE);
276
+ this.step(direction);
277
+ this.focusedDate = next;
278
+ this.pendingCellFocus = true;
279
+ }
280
+ edgeOfRow(edge) {
281
+ if (this.view === 'day') {
282
+ return edge === 'start'
283
+ ? startOfWeek(this.focusedDate, { weekStartsOn: this.weekStartsOn })
284
+ : endOfWeek(this.focusedDate, { weekStartsOn: this.weekStartsOn });
285
+ }
286
+ const cells = this.unitCells;
287
+ const cell = edge === 'start' ? cells[0] : cells[cells.length - 1];
288
+ return cell ? cell.date : this.focusedDate;
289
+ }
290
+ // skipDirection steps over unavailable units so a move never lands on something unselectable
291
+ setFocusedDate(date, skipDirection) {
292
+ let next = date;
293
+ if (skipDirection) {
294
+ for (let guard = 0; guard < 60 && isUnitDisabled(next, this.view, this.bounds); guard++) {
295
+ next = this.addUnits(next, skipDirection);
296
+ }
297
+ if (isUnitDisabled(next, this.view, this.bounds))
298
+ return;
299
+ }
300
+ this.focusedDate = next;
301
+ this.pendingCellFocus = true;
302
+ if (!this.hasCell(next))
303
+ this.anchor = next;
304
+ }
305
+ hasCell(date) {
306
+ const key = toKey(date, this.view);
307
+ return this.view === 'day'
308
+ ? this.dayRows.some(row => row.cells.some(cell => cell.key === key))
309
+ : this.unitCells.some(cell => cell.key === key);
310
+ }
311
+ focusCell() {
312
+ var _a;
313
+ const key = toKey(this.focusedDate, this.view);
314
+ const cell = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-key="${key}"]`);
315
+ if (typeof (cell === null || cell === void 0 ? void 0 : cell.focus) === 'function')
316
+ cell.focus();
317
+ }
318
+ endpointOf(target) {
319
+ if (this.inputs.start && target === this.inputs.start)
320
+ return 'start';
321
+ if (this.inputs.end && target === this.inputs.end)
322
+ return 'end';
323
+ return undefined;
324
+ }
325
+ focusEndpoint(endpoint) {
326
+ this.active = this.selection === 'range' ? endpoint : 'start';
327
+ const input = this.inputs[this.active];
328
+ if (typeof (input === null || input === void 0 ? void 0 : input.focus) === 'function')
329
+ input.focus();
330
+ }
331
+ step(direction) {
332
+ if (this.view === 'day')
333
+ this.anchor = addMonths(this.anchor, direction);
334
+ else if (this.view === 'month')
335
+ this.anchor = addYears(this.anchor, direction);
336
+ else
337
+ this.anchor = addYears(this.anchor, direction * YEAR_PAGE);
338
+ }
339
+ get canStepBack() {
340
+ if (this.bounds.minKey === undefined)
341
+ return true;
342
+ if (this.view === 'day')
343
+ return toKey(endOfMonth(addMonths(this.anchor, -1)), 'day') >= this.bounds.minKey;
344
+ if (this.view === 'month')
345
+ return toKey(endOfYear(addYears(this.anchor, -1)), 'month') >= this.bounds.minKey;
346
+ return yearPageStart(this.anchor) - 1 >= this.bounds.minKey;
347
+ }
348
+ get canStepForward() {
349
+ if (this.bounds.maxKey === undefined)
350
+ return true;
351
+ if (this.view === 'day')
352
+ return toKey(addMonths(this.anchor, 1), 'day') <= this.bounds.maxKey;
353
+ if (this.view === 'month')
354
+ return toKey(addYears(this.anchor, 1), 'month') <= this.bounds.maxKey;
355
+ return yearPageStart(this.anchor) + YEAR_PAGE <= this.bounds.maxKey;
356
+ }
357
+ bindDismiss() {
358
+ if (this.dismiss)
359
+ return;
360
+ this.dismiss = (event) => {
361
+ // composedPath is the only check that survives shadow-DOM retargeting
362
+ if (!this.containsTarget(event))
363
+ this.open = false;
364
+ };
365
+ document.addEventListener('click', this.dismiss, true);
366
+ }
367
+ containsTarget(event) {
368
+ var _a;
369
+ if (typeof event.composedPath === 'function' && event.composedPath().includes(this.el))
370
+ return true;
371
+ const target = event.target;
372
+ return !!target && (this.el.contains(target) || !!((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(target)));
373
+ }
374
+ unbindDismiss() {
375
+ if (!this.dismiss)
376
+ return;
377
+ document.removeEventListener('click', this.dismiss, true);
378
+ this.dismiss = undefined;
379
+ }
380
+ createPopper() {
381
+ if (!this.fieldEl || !this.panelEl)
382
+ return;
383
+ this.popper = createPopper(this.fieldEl, this.panelEl, {
384
+ strategy: 'fixed',
385
+ placement: this.placement,
386
+ modifiers: [{ name: 'offset', options: { offset: [0, this.offset] } }],
387
+ });
388
+ }
389
+ destroyPopper() {
390
+ var _a;
391
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.destroy();
392
+ this.popper = undefined;
393
+ }
394
+ formatValue(date) {
395
+ if (!date)
396
+ return '';
397
+ const locale = this.dateLocale;
398
+ if (this.precision === 'year')
399
+ return format(date, 'yyyy', { locale });
400
+ if (this.precision === 'month')
401
+ return format(date, 'LLLL yyyy', { locale });
402
+ return this.withTime ? format(date, 'P p', { locale }) : format(date, 'P', { locale });
403
+ }
404
+ headerLabel() {
405
+ const locale = this.dateLocale;
406
+ if (this.view === 'day')
407
+ return format(this.anchor, 'LLLL yyyy', { locale });
408
+ if (this.view === 'month')
409
+ return format(this.anchor, 'yyyy', { locale });
410
+ const first = yearPageStart(this.anchor);
411
+ return `${first} – ${first + YEAR_PAGE - 1}`;
412
+ }
413
+ cellLabel(cell) {
414
+ if (this.view === 'day')
415
+ return `${cell.date.getDate()}`;
416
+ if (this.view === 'month')
417
+ return format(cell.date, 'LLL', { locale: this.dateLocale });
418
+ return `${cell.date.getFullYear()}`;
419
+ }
420
+ cellState(cell) {
421
+ const [start, end] = this.dates;
422
+ const startKey = start && toKey(start, this.view);
423
+ const endKey = end && toKey(end, this.view);
424
+ const selected = cell.key === startKey || cell.key === endKey;
425
+ return {
426
+ selected,
427
+ inRange: !selected &&
428
+ this.selection === 'range' &&
429
+ startKey !== undefined &&
430
+ endKey !== undefined &&
431
+ cell.key > startKey &&
432
+ cell.key < endKey,
433
+ };
434
+ }
435
+ renderField(endpoint) {
436
+ const isEnd = endpoint === 'end';
437
+ const label = isEnd ? this.labelEnd : this.labelStart || this.label;
438
+ const date = this.dates[isEnd ? 1 : 0];
439
+ const isLast = isEnd || this.selection === 'single';
440
+ const showClear = this.clearable && isLast && !!(this.dates[0] || this.dates[1]);
441
+ return (h("label", { class: "field_item", part: "field-item" }, label && (h("span", { class: "field_label", part: "label" }, label, this.required && ' *')), h("span", { class: {
442
+ field_control: true,
443
+ active: this.open && this.selection === 'range' && this.active === endpoint,
444
+ }, part: "input-wrapper" }, h("input", { type: "text", readonly: true, part: "input", class: "field_input", role: "combobox", "aria-expanded": `${this.open}`, "aria-haspopup": "dialog", disabled: this.disabled || this.loading, placeholder: this.placeholder, value: this.formatValue(date), ref: el => (this.inputs[endpoint] = el) }), showClear ? (h("button", { type: "button", class: "field_clear", part: "clear", tabindex: "-1", onClick: this.handleClear }, "\u00D7")) : (h("span", { class: "field_icon", part: "icon", "aria-hidden": "true" })))));
445
+ }
446
+ renderHeader() {
447
+ return (h("div", { class: "panel_header", part: "header" }, h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.SM, disabled: !this.canStepBack, onClick: () => this.step(-1) }, h("span", { slot: "icon-left", class: "panel_chevron prev" })), h("button", { type: "button", class: "panel_title", part: "header-title", disabled: this.view === 'year', onClick: () => (this.view = DRILL_UP[this.view]) }, this.headerLabel()), h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.SM, disabled: !this.canStepForward, onClick: () => this.step(1) }, h("span", { slot: "icon-left", class: "panel_chevron next" }))));
448
+ }
449
+ renderCell(cell, focusedKey) {
450
+ const state = this.cellState(cell);
451
+ return (h("button", { type: "button", part: "cell", role: "gridcell", "data-key": cell.key, "aria-selected": `${state.selected}`, "aria-label": this.cellAriaLabel(cell), tabindex: this.open && cell.key === focusedKey ? '0' : '-1', disabled: cell.disabled, class: {
452
+ panel_cell: true,
453
+ selected: state.selected,
454
+ inRange: state.inRange,
455
+ today: cell.today,
456
+ outside: cell.outside,
457
+ }, onClick: () => this.handleCellClick(cell) }, this.cellLabel(cell)));
458
+ }
459
+ cellAriaLabel(cell) {
460
+ const locale = this.dateLocale;
461
+ if (this.view === 'year')
462
+ return format(cell.date, 'yyyy', { locale });
463
+ if (this.view === 'month')
464
+ return format(cell.date, 'LLLL yyyy', { locale });
465
+ return format(cell.date, 'PPPP', { locale });
466
+ }
467
+ renderDayGrid(focusedKey) {
468
+ return (h(Fragment, null, h("div", { class: { panel_row: true, weekdays: true, numbered: this.showWeekNumbers }, part: "weekdays", role: "row" }, this.showWeekNumbers && h("span", { class: "panel_week", role: "columnheader" }), this.weekdays.map(day => (h("span", { class: "panel_weekday", role: "columnheader" }, day)))), this.dayRows.map(row => (h("div", { class: { panel_row: true, numbered: this.showWeekNumbers }, role: "row" }, this.showWeekNumbers && (h("span", { class: "panel_week", role: "rowheader" }, row.number)), row.cells.map(cell => this.renderCell(cell, focusedKey)))))));
469
+ }
470
+ renderTime() {
471
+ const endpoints = this.selection === 'range' ? ['start', 'end'] : ['start'];
472
+ return (h("div", { class: "panel_time", part: "time" }, endpoints.map(endpoint => {
473
+ const label = endpoint === 'end' ? this.labelEnd : this.labelStart || this.label;
474
+ const date = this.dates[endpoint === 'end' ? 1 : 0];
475
+ return (h("label", { class: "panel_time-item" }, label && h("span", { class: "panel_time-label" }, label), h("input", { type: "time", part: "time-input", step: this.minuteStep * 60, disabled: !date, value: date ? format(date, 'HH:mm') : '', onChange: event => this.handleTimeChange(event, endpoint) })));
476
+ })));
477
+ }
478
+ render() {
479
+ const message = resolveFieldMessage({ error: this.error, warning: this.warning, helper: this.helper });
480
+ const showTime = this.withTime && this.precision === 'day';
481
+ const focusedKey = toKey(this.focusedDate, this.view);
482
+ return (h(Host, { key: '37bccd82d64c236ee180bffe73fafc243dd8aad8', class: { disabled: this.disabled, loading: this.loading, readonly: this.readonly } }, h("div", { key: 'a9b1ab7fa33a81bcbf691e8ee1f835b23c930f2a', class: "control", part: "control" }, h("div", { key: '41a0e21d63569785e1c482619d1ed6d63118a2d5', class: {
483
+ field: true,
484
+ range: this.selection === 'range',
485
+ error: !!this.error,
486
+ warning: !!this.warning,
487
+ }, part: "field", ref: el => (this.fieldEl = el), onClick: this.handleFieldClick, onKeyDown: this.handleFieldKeydown }, this.renderField('start'), this.selection === 'range' && this.renderField('end')), message && (h("p", { key: '2c85920edc6707b2fba8be39b89f6ed0191de481', class: { control_message: true, [message.level]: true }, part: "message" }, message.text))), h("div", { key: 'e7e807b22608683cc48c97c493000bc1fcf65559', class: { panel: true, open: this.open }, part: "panel", role: "dialog", ref: el => (this.panelEl = el), onKeyDown: this.handlePanelKeydown }, this.renderHeader(), h("div", { key: '6d467a8b1ec52981b71e69942f1d6a6b4928c930', class: { panel_grid: true, [this.view]: true }, part: "grid", role: "grid", onKeyDown: this.handleGridKeydown }, this.view === 'day'
488
+ ? this.renderDayGrid(focusedKey)
489
+ : this.unitCells.map(cell => this.renderCell(cell, focusedKey))), showTime && this.renderTime(), h("slot", { key: '83818b65fff9f51ef3dd559c3d7b97e7511ecc03', name: "footer" }))));
490
+ }
491
+ static get is() { return "xv-date-picker"; }
492
+ static get encapsulation() { return "shadow"; }
493
+ static get formAssociated() { return true; }
494
+ static get originalStyleUrls() {
495
+ return {
496
+ "$": ["xv-date-picker.scss"]
497
+ };
498
+ }
499
+ static get styleUrls() {
500
+ return {
501
+ "$": ["xv-date-picker.css"]
502
+ };
503
+ }
504
+ static get properties() {
505
+ return {
506
+ "value": {
507
+ "type": "unknown",
508
+ "mutable": true,
509
+ "complexType": {
510
+ "original": "[XvDateInput?, XvDateInput?] | null",
511
+ "resolved": "[XvDateInput?, XvDateInput?]",
512
+ "references": {
513
+ "XvDateInput": {
514
+ "location": "import",
515
+ "path": "./xv-date-picker.model",
516
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDateInput"
517
+ }
518
+ }
519
+ },
520
+ "required": false,
521
+ "optional": false,
522
+ "docs": {
523
+ "tags": [],
524
+ "text": ""
525
+ },
526
+ "getter": false,
527
+ "setter": false,
528
+ "defaultValue": "[undefined, undefined]"
529
+ },
530
+ "selection": {
531
+ "type": "string",
532
+ "mutable": false,
533
+ "complexType": {
534
+ "original": "XvDateSelection",
535
+ "resolved": "\"range\" | \"single\"",
536
+ "references": {
537
+ "XvDateSelection": {
538
+ "location": "import",
539
+ "path": "./xv-date-picker.model",
540
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDateSelection"
541
+ }
542
+ }
543
+ },
544
+ "required": false,
545
+ "optional": false,
546
+ "docs": {
547
+ "tags": [],
548
+ "text": ""
549
+ },
550
+ "getter": false,
551
+ "setter": false,
552
+ "reflect": false,
553
+ "attribute": "selection",
554
+ "defaultValue": "'single'"
555
+ },
556
+ "precision": {
557
+ "type": "string",
558
+ "mutable": false,
559
+ "complexType": {
560
+ "original": "XvDatePrecision",
561
+ "resolved": "\"day\" | \"month\" | \"year\"",
562
+ "references": {
563
+ "XvDatePrecision": {
564
+ "location": "import",
565
+ "path": "./xv-date-picker.model",
566
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDatePrecision"
567
+ }
568
+ }
569
+ },
570
+ "required": false,
571
+ "optional": false,
572
+ "docs": {
573
+ "tags": [],
574
+ "text": ""
575
+ },
576
+ "getter": false,
577
+ "setter": false,
578
+ "reflect": false,
579
+ "attribute": "precision",
580
+ "defaultValue": "'day'"
581
+ },
582
+ "withTime": {
583
+ "type": "boolean",
584
+ "mutable": false,
585
+ "complexType": {
586
+ "original": "boolean",
587
+ "resolved": "boolean",
588
+ "references": {}
589
+ },
590
+ "required": false,
591
+ "optional": false,
592
+ "docs": {
593
+ "tags": [],
594
+ "text": ""
595
+ },
596
+ "getter": false,
597
+ "setter": false,
598
+ "reflect": false,
599
+ "attribute": "with-time",
600
+ "defaultValue": "false"
601
+ },
602
+ "minuteStep": {
603
+ "type": "number",
604
+ "mutable": false,
605
+ "complexType": {
606
+ "original": "number",
607
+ "resolved": "number",
608
+ "references": {}
609
+ },
610
+ "required": false,
611
+ "optional": false,
612
+ "docs": {
613
+ "tags": [],
614
+ "text": ""
615
+ },
616
+ "getter": false,
617
+ "setter": false,
618
+ "reflect": false,
619
+ "attribute": "minute-step",
620
+ "defaultValue": "5"
621
+ },
622
+ "min": {
623
+ "type": "string",
624
+ "mutable": false,
625
+ "complexType": {
626
+ "original": "XvDateInput | null",
627
+ "resolved": "Date | string",
628
+ "references": {
629
+ "XvDateInput": {
630
+ "location": "import",
631
+ "path": "./xv-date-picker.model",
632
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDateInput"
633
+ }
634
+ }
635
+ },
636
+ "required": false,
637
+ "optional": true,
638
+ "docs": {
639
+ "tags": [],
640
+ "text": ""
641
+ },
642
+ "getter": false,
643
+ "setter": false,
644
+ "reflect": false,
645
+ "attribute": "min"
646
+ },
647
+ "max": {
648
+ "type": "string",
649
+ "mutable": false,
650
+ "complexType": {
651
+ "original": "XvDateInput | null",
652
+ "resolved": "Date | string",
653
+ "references": {
654
+ "XvDateInput": {
655
+ "location": "import",
656
+ "path": "./xv-date-picker.model",
657
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDateInput"
658
+ }
659
+ }
660
+ },
661
+ "required": false,
662
+ "optional": true,
663
+ "docs": {
664
+ "tags": [],
665
+ "text": ""
666
+ },
667
+ "getter": false,
668
+ "setter": false,
669
+ "reflect": false,
670
+ "attribute": "max"
671
+ },
672
+ "disabledDates": {
673
+ "type": "unknown",
674
+ "mutable": false,
675
+ "complexType": {
676
+ "original": "(XvDateInput | null)[] | null",
677
+ "resolved": "XvDateInput[]",
678
+ "references": {
679
+ "XvDateInput": {
680
+ "location": "import",
681
+ "path": "./xv-date-picker.model",
682
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvDateInput"
683
+ }
684
+ }
685
+ },
686
+ "required": false,
687
+ "optional": true,
688
+ "docs": {
689
+ "tags": [],
690
+ "text": ""
691
+ },
692
+ "getter": false,
693
+ "setter": false
694
+ },
695
+ "disabledWeekdays": {
696
+ "type": "unknown",
697
+ "mutable": false,
698
+ "complexType": {
699
+ "original": "number[] | null",
700
+ "resolved": "number[]",
701
+ "references": {}
702
+ },
703
+ "required": false,
704
+ "optional": true,
705
+ "docs": {
706
+ "tags": [],
707
+ "text": ""
708
+ },
709
+ "getter": false,
710
+ "setter": false
711
+ },
712
+ "weekStartsOn": {
713
+ "type": "number",
714
+ "mutable": false,
715
+ "complexType": {
716
+ "original": "XvWeekStart",
717
+ "resolved": "0 | 1 | 2 | 3 | 4 | 5 | 6",
718
+ "references": {
719
+ "XvWeekStart": {
720
+ "location": "import",
721
+ "path": "./xv-date-picker.model",
722
+ "id": "src/components/xv-date-picker/xv-date-picker.model.ts::XvWeekStart"
723
+ }
724
+ }
725
+ },
726
+ "required": false,
727
+ "optional": false,
728
+ "docs": {
729
+ "tags": [],
730
+ "text": ""
731
+ },
732
+ "getter": false,
733
+ "setter": false,
734
+ "reflect": false,
735
+ "attribute": "week-starts-on",
736
+ "defaultValue": "1"
737
+ },
738
+ "showWeekNumbers": {
739
+ "type": "boolean",
740
+ "mutable": false,
741
+ "complexType": {
742
+ "original": "boolean",
743
+ "resolved": "boolean",
744
+ "references": {}
745
+ },
746
+ "required": false,
747
+ "optional": false,
748
+ "docs": {
749
+ "tags": [],
750
+ "text": ""
751
+ },
752
+ "getter": false,
753
+ "setter": false,
754
+ "reflect": false,
755
+ "attribute": "show-week-numbers",
756
+ "defaultValue": "true"
757
+ },
758
+ "locale": {
759
+ "type": "string",
760
+ "mutable": false,
761
+ "complexType": {
762
+ "original": "string",
763
+ "resolved": "string",
764
+ "references": {}
765
+ },
766
+ "required": false,
767
+ "optional": true,
768
+ "docs": {
769
+ "tags": [],
770
+ "text": ""
771
+ },
772
+ "getter": false,
773
+ "setter": false,
774
+ "reflect": false,
775
+ "attribute": "locale"
776
+ },
777
+ "label": {
778
+ "type": "string",
779
+ "mutable": false,
780
+ "complexType": {
781
+ "original": "string",
782
+ "resolved": "string",
783
+ "references": {}
784
+ },
785
+ "required": false,
786
+ "optional": true,
787
+ "docs": {
788
+ "tags": [],
789
+ "text": ""
790
+ },
791
+ "getter": false,
792
+ "setter": false,
793
+ "reflect": false,
794
+ "attribute": "label"
795
+ },
796
+ "labelStart": {
797
+ "type": "string",
798
+ "mutable": false,
799
+ "complexType": {
800
+ "original": "string",
801
+ "resolved": "string",
802
+ "references": {}
803
+ },
804
+ "required": false,
805
+ "optional": true,
806
+ "docs": {
807
+ "tags": [],
808
+ "text": ""
809
+ },
810
+ "getter": false,
811
+ "setter": false,
812
+ "reflect": false,
813
+ "attribute": "label-start"
814
+ },
815
+ "labelEnd": {
816
+ "type": "string",
817
+ "mutable": false,
818
+ "complexType": {
819
+ "original": "string",
820
+ "resolved": "string",
821
+ "references": {}
822
+ },
823
+ "required": false,
824
+ "optional": true,
825
+ "docs": {
826
+ "tags": [],
827
+ "text": ""
828
+ },
829
+ "getter": false,
830
+ "setter": false,
831
+ "reflect": false,
832
+ "attribute": "label-end"
833
+ },
834
+ "placeholder": {
835
+ "type": "string",
836
+ "mutable": false,
837
+ "complexType": {
838
+ "original": "string",
839
+ "resolved": "string",
840
+ "references": {}
841
+ },
842
+ "required": false,
843
+ "optional": true,
844
+ "docs": {
845
+ "tags": [],
846
+ "text": ""
847
+ },
848
+ "getter": false,
849
+ "setter": false,
850
+ "reflect": false,
851
+ "attribute": "placeholder"
852
+ },
853
+ "helper": {
854
+ "type": "string",
855
+ "mutable": false,
856
+ "complexType": {
857
+ "original": "string",
858
+ "resolved": "string",
859
+ "references": {}
860
+ },
861
+ "required": false,
862
+ "optional": true,
863
+ "docs": {
864
+ "tags": [],
865
+ "text": ""
866
+ },
867
+ "getter": false,
868
+ "setter": false,
869
+ "reflect": false,
870
+ "attribute": "helper"
871
+ },
872
+ "error": {
873
+ "type": "any",
874
+ "mutable": false,
875
+ "complexType": {
876
+ "original": "string | boolean",
877
+ "resolved": "boolean | string",
878
+ "references": {}
879
+ },
880
+ "required": false,
881
+ "optional": true,
882
+ "docs": {
883
+ "tags": [],
884
+ "text": ""
885
+ },
886
+ "getter": false,
887
+ "setter": false,
888
+ "reflect": false,
889
+ "attribute": "error"
890
+ },
891
+ "warning": {
892
+ "type": "any",
893
+ "mutable": false,
894
+ "complexType": {
895
+ "original": "string | boolean",
896
+ "resolved": "boolean | string",
897
+ "references": {}
898
+ },
899
+ "required": false,
900
+ "optional": true,
901
+ "docs": {
902
+ "tags": [],
903
+ "text": ""
904
+ },
905
+ "getter": false,
906
+ "setter": false,
907
+ "reflect": false,
908
+ "attribute": "warning"
909
+ },
910
+ "required": {
911
+ "type": "boolean",
912
+ "mutable": false,
913
+ "complexType": {
914
+ "original": "boolean",
915
+ "resolved": "boolean",
916
+ "references": {}
917
+ },
918
+ "required": false,
919
+ "optional": false,
920
+ "docs": {
921
+ "tags": [],
922
+ "text": ""
923
+ },
924
+ "getter": false,
925
+ "setter": false,
926
+ "reflect": false,
927
+ "attribute": "required",
928
+ "defaultValue": "false"
929
+ },
930
+ "readonly": {
931
+ "type": "boolean",
932
+ "mutable": false,
933
+ "complexType": {
934
+ "original": "boolean",
935
+ "resolved": "boolean",
936
+ "references": {}
937
+ },
938
+ "required": false,
939
+ "optional": false,
940
+ "docs": {
941
+ "tags": [],
942
+ "text": ""
943
+ },
944
+ "getter": false,
945
+ "setter": false,
946
+ "reflect": false,
947
+ "attribute": "readonly",
948
+ "defaultValue": "false"
949
+ },
950
+ "disabled": {
951
+ "type": "boolean",
952
+ "mutable": false,
953
+ "complexType": {
954
+ "original": "boolean",
955
+ "resolved": "boolean",
956
+ "references": {}
957
+ },
958
+ "required": false,
959
+ "optional": false,
960
+ "docs": {
961
+ "tags": [],
962
+ "text": ""
963
+ },
964
+ "getter": false,
965
+ "setter": false,
966
+ "reflect": false,
967
+ "attribute": "disabled",
968
+ "defaultValue": "false"
969
+ },
970
+ "loading": {
971
+ "type": "boolean",
972
+ "mutable": false,
973
+ "complexType": {
974
+ "original": "boolean",
975
+ "resolved": "boolean",
976
+ "references": {}
977
+ },
978
+ "required": false,
979
+ "optional": false,
980
+ "docs": {
981
+ "tags": [],
982
+ "text": ""
983
+ },
984
+ "getter": false,
985
+ "setter": false,
986
+ "reflect": false,
987
+ "attribute": "loading",
988
+ "defaultValue": "false"
989
+ },
990
+ "clearable": {
991
+ "type": "boolean",
992
+ "mutable": false,
993
+ "complexType": {
994
+ "original": "boolean",
995
+ "resolved": "boolean",
996
+ "references": {}
997
+ },
998
+ "required": false,
999
+ "optional": false,
1000
+ "docs": {
1001
+ "tags": [],
1002
+ "text": ""
1003
+ },
1004
+ "getter": false,
1005
+ "setter": false,
1006
+ "reflect": false,
1007
+ "attribute": "clearable",
1008
+ "defaultValue": "false"
1009
+ },
1010
+ "size": {
1011
+ "type": "string",
1012
+ "mutable": false,
1013
+ "complexType": {
1014
+ "original": "SIZE_VAR_STR",
1015
+ "resolved": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\"",
1016
+ "references": {
1017
+ "SIZE_VAR_STR": {
1018
+ "location": "import",
1019
+ "path": "../../types/enum",
1020
+ "id": "src/types/enum.ts::SIZE_VAR_STR"
1021
+ }
1022
+ }
1023
+ },
1024
+ "required": false,
1025
+ "optional": false,
1026
+ "docs": {
1027
+ "tags": [],
1028
+ "text": ""
1029
+ },
1030
+ "getter": false,
1031
+ "setter": false,
1032
+ "reflect": true,
1033
+ "attribute": "size",
1034
+ "defaultValue": "SIZE_VAR.MD"
1035
+ },
1036
+ "block": {
1037
+ "type": "boolean",
1038
+ "mutable": false,
1039
+ "complexType": {
1040
+ "original": "boolean",
1041
+ "resolved": "boolean",
1042
+ "references": {}
1043
+ },
1044
+ "required": false,
1045
+ "optional": false,
1046
+ "docs": {
1047
+ "tags": [],
1048
+ "text": ""
1049
+ },
1050
+ "getter": false,
1051
+ "setter": false,
1052
+ "reflect": true,
1053
+ "attribute": "block",
1054
+ "defaultValue": "false"
1055
+ },
1056
+ "placement": {
1057
+ "type": "string",
1058
+ "mutable": false,
1059
+ "complexType": {
1060
+ "original": "'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'",
1061
+ "resolved": "\"bottom-end\" | \"bottom-start\" | \"top-end\" | \"top-start\"",
1062
+ "references": {}
1063
+ },
1064
+ "required": false,
1065
+ "optional": false,
1066
+ "docs": {
1067
+ "tags": [],
1068
+ "text": ""
1069
+ },
1070
+ "getter": false,
1071
+ "setter": false,
1072
+ "reflect": false,
1073
+ "attribute": "placement",
1074
+ "defaultValue": "'bottom-start'"
1075
+ },
1076
+ "offset": {
1077
+ "type": "number",
1078
+ "mutable": false,
1079
+ "complexType": {
1080
+ "original": "number",
1081
+ "resolved": "number",
1082
+ "references": {}
1083
+ },
1084
+ "required": false,
1085
+ "optional": false,
1086
+ "docs": {
1087
+ "tags": [],
1088
+ "text": ""
1089
+ },
1090
+ "getter": false,
1091
+ "setter": false,
1092
+ "reflect": false,
1093
+ "attribute": "offset",
1094
+ "defaultValue": "8"
1095
+ }
1096
+ };
1097
+ }
1098
+ static get states() {
1099
+ return {
1100
+ "dates": {},
1101
+ "open": {},
1102
+ "view": {},
1103
+ "anchor": {},
1104
+ "active": {},
1105
+ "dayRows": {},
1106
+ "unitCells": {},
1107
+ "weekdays": {},
1108
+ "focusedDate": {}
1109
+ };
1110
+ }
1111
+ static get events() {
1112
+ return [{
1113
+ "method": "valueChange",
1114
+ "name": "valueChange",
1115
+ "bubbles": true,
1116
+ "cancelable": true,
1117
+ "composed": true,
1118
+ "docs": {
1119
+ "tags": [],
1120
+ "text": ""
1121
+ },
1122
+ "complexType": {
1123
+ "original": "Date[]",
1124
+ "resolved": "Date[]",
1125
+ "references": {
1126
+ "Date": {
1127
+ "location": "global",
1128
+ "id": "global::Date"
1129
+ }
1130
+ }
1131
+ }
1132
+ }, {
1133
+ "method": "xvBlur",
1134
+ "name": "xvBlur",
1135
+ "bubbles": true,
1136
+ "cancelable": true,
1137
+ "composed": true,
1138
+ "docs": {
1139
+ "tags": [],
1140
+ "text": ""
1141
+ },
1142
+ "complexType": {
1143
+ "original": "Date[]",
1144
+ "resolved": "Date[]",
1145
+ "references": {
1146
+ "Date": {
1147
+ "location": "global",
1148
+ "id": "global::Date"
1149
+ }
1150
+ }
1151
+ }
1152
+ }, {
1153
+ "method": "openChange",
1154
+ "name": "openChange",
1155
+ "bubbles": true,
1156
+ "cancelable": true,
1157
+ "composed": true,
1158
+ "docs": {
1159
+ "tags": [],
1160
+ "text": ""
1161
+ },
1162
+ "complexType": {
1163
+ "original": "boolean",
1164
+ "resolved": "boolean",
1165
+ "references": {}
1166
+ }
1167
+ }];
1168
+ }
1169
+ static get elementRef() { return "el"; }
1170
+ static get watchers() {
1171
+ return [{
1172
+ "propName": "value",
1173
+ "methodName": "syncValue"
1174
+ }, {
1175
+ "propName": "locale",
1176
+ "methodName": "rebuildWeekdays"
1177
+ }, {
1178
+ "propName": "weekStartsOn",
1179
+ "methodName": "rebuildWeekdays"
1180
+ }, {
1181
+ "propName": "precision",
1182
+ "methodName": "resetView"
1183
+ }, {
1184
+ "propName": "anchor",
1185
+ "methodName": "rebuild"
1186
+ }, {
1187
+ "propName": "view",
1188
+ "methodName": "rebuild"
1189
+ }, {
1190
+ "propName": "min",
1191
+ "methodName": "rebuild"
1192
+ }, {
1193
+ "propName": "max",
1194
+ "methodName": "rebuild"
1195
+ }, {
1196
+ "propName": "disabledDates",
1197
+ "methodName": "rebuild"
1198
+ }, {
1199
+ "propName": "disabledWeekdays",
1200
+ "methodName": "rebuild"
1201
+ }, {
1202
+ "propName": "weekStartsOn",
1203
+ "methodName": "rebuild"
1204
+ }, {
1205
+ "propName": "open",
1206
+ "methodName": "openWatcher"
1207
+ }];
1208
+ }
1209
+ static get attachInternalsMemberName() { return "internals"; }
1210
+ }