@sme.up/ketchup 4.2.0-SNAPSHOT → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/cjs/{cell-utils-1d44a3f0.js → cell-utils-dc0884a3.js} +2 -2
  2. package/dist/cjs/{f-button-a5788453.js → f-button-2ba74fb5.js} +1 -1
  3. package/dist/cjs/{f-cell-eba6f39e.js → f-cell-fe60a08d.js} +31 -27
  4. package/dist/cjs/{f-chip-ce69b7d2.js → f-chip-90d95d22.js} +2 -2
  5. package/dist/cjs/{f-image-e03842eb.js → f-image-d3bd4e08.js} +1 -1
  6. package/dist/cjs/ketchup.cjs.js +1 -1
  7. package/dist/cjs/kup-accordion.cjs.entry.js +3 -3
  8. package/dist/cjs/kup-autocomplete_28.cjs.entry.js +1050 -650
  9. package/dist/cjs/kup-calendar.cjs.entry.js +6 -6
  10. package/dist/cjs/kup-cell.cjs.entry.js +6 -6
  11. package/dist/cjs/kup-dash-list.cjs.entry.js +3 -3
  12. package/dist/cjs/kup-dash_2.cjs.entry.js +2 -2
  13. package/dist/cjs/kup-drawer.cjs.entry.js +2 -2
  14. package/dist/cjs/kup-field.cjs.entry.js +1 -1
  15. package/dist/cjs/kup-iframe.cjs.entry.js +2 -2
  16. package/dist/cjs/kup-lazy.cjs.entry.js +2 -2
  17. package/dist/cjs/kup-magic-box.cjs.entry.js +3 -3
  18. package/dist/cjs/{kup-manager-75f1a2cd.js → kup-manager-1a2688ca.js} +20 -1
  19. package/dist/cjs/kup-nav-bar.cjs.entry.js +2 -2
  20. package/dist/cjs/kup-probe.cjs.entry.js +1 -1
  21. package/dist/cjs/kup-qlik.cjs.entry.js +1 -1
  22. package/dist/cjs/kup-snackbar.cjs.entry.js +4 -4
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/{utils-b3ec89fe.js → utils-0cc466b9.js} +1 -59
  25. package/dist/collection/assets/data-table.js +44 -0
  26. package/dist/collection/components/kup-card/builtin/kup-card-builtin.js +20 -0
  27. package/dist/collection/components/kup-card/builtin/kup-card-calendar.js +458 -0
  28. package/dist/collection/components/kup-card/builtin/kup-card-clock.js +321 -0
  29. package/dist/collection/components/kup-card/free/kup-card-free.js +13 -0
  30. package/dist/collection/components/kup-card/kup-card-declarations.js +19 -0
  31. package/dist/collection/components/kup-card/kup-card.css +502 -3
  32. package/dist/collection/components/kup-card/kup-card.js +18 -9
  33. package/dist/collection/components/kup-data-table/kup-data-table-declarations.js +1 -1
  34. package/dist/collection/components/kup-data-table/kup-data-table-state.js +1 -1
  35. package/dist/collection/components/kup-data-table/kup-data-table.css +0 -38
  36. package/dist/collection/components/kup-data-table/kup-data-table.js +27 -10
  37. package/dist/collection/components/kup-date-picker/kup-date-picker.css +0 -82
  38. package/dist/collection/components/kup-date-picker/kup-date-picker.js +35 -309
  39. package/dist/collection/components/kup-text-field/kup-text-field.css +1 -0
  40. package/dist/collection/components/kup-time-picker/kup-time-picker.css +1 -0
  41. package/dist/collection/components/kup-time-picker/kup-time-picker.js +51 -241
  42. package/dist/collection/components/kup-tree/kup-tree.js +20 -15
  43. package/dist/collection/f-components/f-cell/f-cell.js +26 -22
  44. package/dist/collection/utils/kup-search/kup-search.js +0 -1
  45. package/dist/esm/{cell-utils-9a2914fc.js → cell-utils-8f512ea9.js} +2 -2
  46. package/dist/esm/{f-button-55a9ed88.js → f-button-30dbcaa9.js} +1 -1
  47. package/dist/esm/{f-cell-ac520cb2.js → f-cell-95c186c6.js} +31 -27
  48. package/dist/esm/{f-chip-babf1740.js → f-chip-c0e9c0ff.js} +2 -2
  49. package/dist/esm/{f-image-70ca9dfe.js → f-image-3bc8b24f.js} +1 -1
  50. package/dist/esm/ketchup.js +1 -1
  51. package/dist/esm/kup-accordion.entry.js +3 -3
  52. package/dist/esm/kup-autocomplete_28.entry.js +1079 -679
  53. package/dist/esm/kup-calendar.entry.js +6 -6
  54. package/dist/esm/kup-cell.entry.js +6 -6
  55. package/dist/esm/kup-dash-list.entry.js +3 -3
  56. package/dist/esm/kup-dash_2.entry.js +2 -2
  57. package/dist/esm/kup-drawer.entry.js +2 -2
  58. package/dist/esm/kup-field.entry.js +1 -1
  59. package/dist/esm/kup-iframe.entry.js +2 -2
  60. package/dist/esm/kup-lazy.entry.js +2 -2
  61. package/dist/esm/kup-magic-box.entry.js +3 -3
  62. package/dist/esm/{kup-manager-bba32828.js → kup-manager-7fc234da.js} +21 -2
  63. package/dist/esm/kup-nav-bar.entry.js +2 -2
  64. package/dist/esm/kup-probe.entry.js +1 -1
  65. package/dist/esm/kup-qlik.entry.js +1 -1
  66. package/dist/esm/kup-snackbar.entry.js +4 -4
  67. package/dist/esm/loader.js +1 -1
  68. package/dist/esm/{utils-cfcbe33f.js → utils-6c73709d.js} +2 -58
  69. package/dist/ketchup/ketchup.esm.js +1 -1
  70. package/dist/ketchup/{p-1ce9a037.js → p-15321eae.js} +1 -1
  71. package/dist/ketchup/{p-daf03877.entry.js → p-1baf1205.entry.js} +1 -1
  72. package/dist/ketchup/p-1c6178e4.entry.js +1 -0
  73. package/dist/ketchup/{p-52038ccb.js → p-44375e49.js} +1 -1
  74. package/dist/ketchup/p-4dcdbd31.entry.js +45 -0
  75. package/dist/ketchup/{p-d58dbf0e.js → p-5a5f2a53.js} +1 -1
  76. package/dist/ketchup/{p-4748be4b.js → p-61faaa38.js} +2 -2
  77. package/dist/ketchup/{p-69a705ae.entry.js → p-62816d0b.entry.js} +1 -1
  78. package/dist/ketchup/{p-ff7d590e.entry.js → p-65adc15b.entry.js} +1 -1
  79. package/dist/ketchup/p-7e23ea7c.entry.js +1 -0
  80. package/dist/ketchup/{p-5faf7715.entry.js → p-a378ba56.entry.js} +1 -1
  81. package/dist/ketchup/{p-74259992.entry.js → p-a878016f.entry.js} +1 -1
  82. package/dist/ketchup/{p-d6ce1ac6.entry.js → p-a96e6e32.entry.js} +1 -1
  83. package/dist/ketchup/{p-6cc8264d.entry.js → p-ad32821e.entry.js} +1 -1
  84. package/dist/ketchup/{p-03ae1be9.entry.js → p-af4a6191.entry.js} +1 -1
  85. package/dist/ketchup/{p-a7687c0e.entry.js → p-c18c7bb0.entry.js} +5 -5
  86. package/dist/ketchup/{p-62208488.entry.js → p-ca0ca27f.entry.js} +1 -1
  87. package/dist/ketchup/{p-e90934b5.entry.js → p-ccda584a.entry.js} +1 -1
  88. package/dist/ketchup/p-d4aa4922.js +1 -0
  89. package/dist/ketchup/{p-40df35de.entry.js → p-dbb6998b.entry.js} +1 -1
  90. package/dist/ketchup/{p-06c209a5.js → p-de83f2f6.js} +1 -1
  91. package/dist/ketchup/p-ec3a3db9.js +1 -0
  92. package/dist/types/components/kup-card/builtin/kup-card-builtin.d.ts +14 -0
  93. package/dist/types/components/kup-card/builtin/kup-card-calendar.d.ts +2 -0
  94. package/dist/types/components/kup-card/builtin/kup-card-clock.d.ts +2 -0
  95. package/dist/types/components/kup-card/free/kup-card-free.d.ts +8 -0
  96. package/dist/types/components/kup-card/kup-card-declarations.d.ts +74 -0
  97. package/dist/types/components/kup-card/kup-card.d.ts +3 -3
  98. package/dist/types/components/kup-data-table/kup-data-table-declarations.d.ts +1 -6
  99. package/dist/types/components/kup-data-table/kup-data-table-state.d.ts +1 -1
  100. package/dist/types/components/kup-data-table/kup-data-table.d.ts +1 -2
  101. package/dist/types/components/kup-date-picker/kup-date-picker.d.ts +0 -10
  102. package/dist/types/components/kup-time-picker/kup-time-picker.d.ts +2 -9
  103. package/dist/types/components.d.ts +2 -2
  104. package/package.json +1 -1
  105. package/dist/ketchup/p-1e2c3497.js +0 -1
  106. package/dist/ketchup/p-5db41fae.entry.js +0 -45
  107. package/dist/ketchup/p-756aa8b1.entry.js +0 -1
  108. package/dist/ketchup/p-ea387b49.entry.js +0 -1
  109. package/dist/ketchup/p-f6bff949.js +0 -1
@@ -0,0 +1,458 @@
1
+ import { h } from '@stencil/core';
2
+ import { FButton } from '../../../f-components/f-button/f-button';
3
+ import { FButtonStyling, } from '../../../f-components/f-button/f-button-declarations';
4
+ import { KupDatesFormats } from '../../../utils/kup-dates/kup-dates-declarations';
5
+ import { DateTimeFormatOptionsMonth, getMonthsAsStringByLocale, } from '../../../utils/utils';
6
+ import { SourceEvent } from '../../kup-date-picker/kup-date-picker-declarations';
7
+ const dom = document.documentElement;
8
+ export function prepareCalendar(component) {
9
+ const el = component.rootElement;
10
+ if (!el.kupData)
11
+ el.kupData = {};
12
+ if (component.data && component.data.options) {
13
+ const opts = component.data.options;
14
+ if (opts.resetStatus) {
15
+ el.kupData = {};
16
+ const obj = opts.initialValue;
17
+ if (opts.initialValue) {
18
+ if (obj && obj.k)
19
+ setValue(component, new Date(obj.k));
20
+ else
21
+ setValue(component, new Date(opts.initialValue));
22
+ }
23
+ if (opts.firstDayIndex)
24
+ el.kupData.firstDayIndex = opts.firstDayIndex;
25
+ opts.resetStatus = false;
26
+ }
27
+ }
28
+ if (!el.kupData.value)
29
+ setValue(component, new Date());
30
+ const months = getMonthsAsStringByLocale();
31
+ const curYear = getYear(component);
32
+ const curMonth = getMonth(component);
33
+ const yearRange = getInitEndYear(curYear);
34
+ const initYear = yearRange.initYear;
35
+ const endYear = yearRange.endYear;
36
+ let changeViewButtonLabel = 'not-set';
37
+ switch (getView(component)) {
38
+ case SourceEvent.DATE: {
39
+ changeViewButtonLabel =
40
+ months[curMonth] + ', ' + curYear.toString();
41
+ break;
42
+ }
43
+ case SourceEvent.MONTH: {
44
+ changeViewButtonLabel = curYear.toString();
45
+ break;
46
+ }
47
+ case SourceEvent.YEAR: {
48
+ changeViewButtonLabel =
49
+ initYear.toString() + ' - ' + endYear.toString();
50
+ break;
51
+ }
52
+ }
53
+ const prevButtonProp = {
54
+ icon: 'chevron_left',
55
+ wrapperClass: 'prev-page',
56
+ onClick: () => prevPage(component),
57
+ };
58
+ const prevButtonComp = h(FButton, Object.assign({}, prevButtonProp));
59
+ const nextButtonProp = {
60
+ icon: 'chevron_right',
61
+ wrapperClass: 'next-page',
62
+ onClick: () => nextPage(component),
63
+ };
64
+ const nextButtonComp = h(FButton, Object.assign({}, nextButtonProp));
65
+ const changeViewButtonProp = {
66
+ wrapperClass: 'change-view-button',
67
+ styling: FButtonStyling.FLAT,
68
+ label: changeViewButtonLabel,
69
+ onClick: () => changeView(component),
70
+ id: 'change-view-button',
71
+ };
72
+ //text-transform:capitalize
73
+ return (h("div", { id: component.rootElement.id + '_calendar' },
74
+ h("div", { class: "section-1" },
75
+ h("div", { class: "sub-1 nav" },
76
+ prevButtonComp,
77
+ h(FButton, Object.assign({}, changeViewButtonProp)),
78
+ nextButtonComp)),
79
+ h("div", { class: "section-2" }, createCalendar(component))));
80
+ }
81
+ function setValue(component, value) {
82
+ const el = component.rootElement;
83
+ el.kupData.value = value;
84
+ el.kupData.day = el.kupData.value.getDate();
85
+ el.kupData.month = el.kupData.value.getMonth();
86
+ el.kupData.year = el.kupData.value.getFullYear();
87
+ }
88
+ function getValue(component) {
89
+ const el = component.rootElement;
90
+ if (el.kupData.value == null)
91
+ setValue(component, new Date());
92
+ return el.kupData.value;
93
+ }
94
+ function getDay(component) {
95
+ const el = component.rootElement;
96
+ if (el.kupData.day != null)
97
+ return el.kupData.day;
98
+ return null;
99
+ }
100
+ function getMonth(component) {
101
+ const el = component.rootElement;
102
+ if (el.kupData.month != null)
103
+ return el.kupData.month;
104
+ return null;
105
+ }
106
+ function getYear(component) {
107
+ const el = component.rootElement;
108
+ if (el.kupData.year != null)
109
+ return el.kupData.year;
110
+ return null;
111
+ }
112
+ function setDay(component, value) {
113
+ const el = component.rootElement;
114
+ el.kupData.day = value;
115
+ }
116
+ function setMonth(component, value) {
117
+ const el = component.rootElement;
118
+ el.kupData.month = value;
119
+ }
120
+ function setYear(component, value) {
121
+ const el = component.rootElement;
122
+ el.kupData.year = value;
123
+ }
124
+ function getFirstDayIndex(component) {
125
+ const el = component.rootElement;
126
+ if (el.kupData.firstDayIndex)
127
+ return el.kupData.firstDayIndex;
128
+ return 1;
129
+ }
130
+ function getView(component) {
131
+ const el = component.rootElement;
132
+ if (el.kupData.calendarView)
133
+ return el.kupData.calendarView;
134
+ return SourceEvent.DATE;
135
+ }
136
+ function setView(component, value) {
137
+ const el = component.rootElement;
138
+ el.kupData.calendarView = value;
139
+ }
140
+ function createCalendar(component) {
141
+ switch (getView(component)) {
142
+ case SourceEvent.DATE: {
143
+ return createDaysCalendar(component);
144
+ }
145
+ case SourceEvent.MONTH: {
146
+ return createMonthsCalendar(component);
147
+ }
148
+ case SourceEvent.YEAR: {
149
+ return createYearsCalendar(component);
150
+ }
151
+ }
152
+ }
153
+ function createDaysCalendar(component) {
154
+ const days = getDaysOfWeekAsStringByLocale(getFirstDayIndex(component));
155
+ const selectedDate = getValue(component);
156
+ const selectedDay = getDay(component);
157
+ const selectedMonth = getMonth(component);
158
+ const selectedYear = getYear(component);
159
+ const thead = [];
160
+ const tbody = [];
161
+ for (let index = 0; index < days.length; index++) {
162
+ thead.push(h("th", null,
163
+ h("span", { class: "item-text" }, days[index])));
164
+ }
165
+ const firstMonthDay = new Date(selectedYear, selectedMonth, 1);
166
+ const lastMonthDay = new Date(selectedYear, selectedMonth + 1, 0);
167
+ const finish = false;
168
+ let currentDayIndex = getFirstDayIndex(component);
169
+ const firstMonthDayIndex = firstMonthDay.getDay();
170
+ let row = [];
171
+ let daysForRowAdded = 0;
172
+ while (!finish) {
173
+ if (currentDayIndex == firstMonthDayIndex) {
174
+ break;
175
+ }
176
+ row.push(h("td", { class: "item empty" }));
177
+ currentDayIndex++;
178
+ daysForRowAdded++;
179
+ if (currentDayIndex > 6) {
180
+ currentDayIndex = 0;
181
+ }
182
+ }
183
+ let dayCount = 1;
184
+ while (dayCount <= lastMonthDay.getDate()) {
185
+ for (let i = daysForRowAdded; i < 7; i++) {
186
+ let dayClass = 'item';
187
+ let dataIndex = {
188
+ 'data-index': selectedYear.toString() +
189
+ '-' +
190
+ fillString((selectedMonth + 1).toString(), '0', 2, true) +
191
+ '-' +
192
+ fillString(dayCount.toString(), '0', 2, true),
193
+ };
194
+ if ((selectedDay != null && dayCount === selectedDay) ||
195
+ (dayCount === selectedDate.getDate() &&
196
+ selectedMonth === selectedDate.getMonth() &&
197
+ selectedYear === selectedDate.getFullYear())) {
198
+ dayClass += ' selected';
199
+ }
200
+ row.push(h("td", { class: dayClass },
201
+ h("span", Object.assign({}, dataIndex, { class: "item-number", onClick: () => {
202
+ onCalendarItemClick(component, dataIndex['data-index']);
203
+ } }), dayCount)));
204
+ dayCount++;
205
+ if (dayCount > lastMonthDay.getDate()) {
206
+ break;
207
+ }
208
+ }
209
+ if (row.length > 0) {
210
+ tbody.push(h("tr", null, row));
211
+ row = [];
212
+ }
213
+ daysForRowAdded = 0;
214
+ }
215
+ return (h("table", { class: "calendar" },
216
+ h("thead", null, thead),
217
+ h("tbody", null, tbody)));
218
+ }
219
+ function createMonthsCalendar(component) {
220
+ const months = getMonthsAsStringByLocale(DateTimeFormatOptionsMonth.SHORT);
221
+ let selectedDay = getDay(component);
222
+ const selectedMonth = getMonth(component);
223
+ const selectedYear = getYear(component);
224
+ if (selectedDay == null)
225
+ selectedDay = 1;
226
+ const tbody = [];
227
+ let row = [];
228
+ let monthCount = 0;
229
+ while (monthCount < 12) {
230
+ for (let i = 0; i < 4; i++) {
231
+ let monthClass = 'item';
232
+ const dataIndex = {
233
+ 'data-index': selectedYear.toString() +
234
+ '-' +
235
+ fillString((monthCount + 1).toString(), '0', 2, true) +
236
+ '-' +
237
+ fillString(selectedDay.toString(), '0', 2, true),
238
+ };
239
+ if (monthCount === selectedMonth) {
240
+ monthClass += ' selected';
241
+ }
242
+ row.push(h("td", { class: monthClass },
243
+ h("span", Object.assign({}, dataIndex, { class: "item-number", onClick: () => {
244
+ onCalendarMonthYearItemClick(component, dataIndex['data-index']);
245
+ } }), months[monthCount])));
246
+ monthCount++;
247
+ }
248
+ if (row.length > 0) {
249
+ tbody.push(h("tr", null, row));
250
+ row = [];
251
+ }
252
+ }
253
+ return (h("table", { class: "calendar" },
254
+ h("tbody", null, tbody)));
255
+ }
256
+ function createYearsCalendar(component) {
257
+ let selectedDay = getDay(component);
258
+ const selectedMonth = getMonth(component);
259
+ const selectedYear = getYear(component);
260
+ if (selectedDay == null)
261
+ selectedDay = 1;
262
+ const yearRange = getInitEndYear(selectedYear);
263
+ const initYear = yearRange.initYear;
264
+ const endYear = yearRange.endYear;
265
+ const tbody = [];
266
+ let row = [];
267
+ let yearCount = initYear;
268
+ while (yearCount <= endYear) {
269
+ for (let i = 0; i < 4; i++) {
270
+ let yearClass = 'item';
271
+ let dataIndex = {
272
+ 'data-index': yearCount.toString() +
273
+ '-' +
274
+ fillString((selectedMonth + 1).toString(), '0', 2, true) +
275
+ '-' +
276
+ fillString(selectedDay.toString(), '0', 2, true),
277
+ };
278
+ if (yearCount === selectedYear) {
279
+ yearClass += ' selected';
280
+ }
281
+ row.push(h("td", { class: yearClass },
282
+ h("span", Object.assign({}, dataIndex, { class: "item-number", onClick: () => {
283
+ onCalendarMonthYearItemClick(component, dataIndex['data-index']);
284
+ } }), yearCount)));
285
+ yearCount++;
286
+ }
287
+ if (row.length > 0) {
288
+ tbody.push(h("tr", null, row));
289
+ row = [];
290
+ }
291
+ }
292
+ return (h("table", { class: "calendar" },
293
+ h("tbody", null, tbody)));
294
+ }
295
+ function getDaysOfWeekAsStringByLocale(firstDayIndex) {
296
+ const thisWeekDays = thisWeek(firstDayIndex);
297
+ const monday = thisWeekDays.startDate;
298
+ const days = [];
299
+ for (var i = 0; i < 7; i++) {
300
+ var date = new Date(monday.toISOString());
301
+ date.setDate(date.getDate() + i);
302
+ days[i] = getDayAsStringByLocale(date);
303
+ }
304
+ return days;
305
+ }
306
+ function thisWeek(firstDayIndex) {
307
+ const firstDay = firstDayThisWeek(firstDayIndex);
308
+ return {
309
+ startDate: firstDay,
310
+ endDate: offsetDate(firstDay, 6),
311
+ };
312
+ }
313
+ function firstDayThisWeek(firstDayIndex) {
314
+ const d = new Date();
315
+ const day = d.getDay();
316
+ // dayIndex0
317
+ d.setDate(d.getDate() - day);
318
+ // dayIndexX
319
+ d.setDate(d.getDate() + firstDayIndex);
320
+ return d;
321
+ }
322
+ const offsetDate = (base, count) => {
323
+ const date = new Date(base);
324
+ date.setDate(base.getDate() + count);
325
+ return date;
326
+ };
327
+ function getDayAsStringByLocale(date) {
328
+ if (date == null) {
329
+ return '';
330
+ }
331
+ const options = {
332
+ weekday: 'narrow',
333
+ /** weekday: 'narrow' 'short' 'long' */
334
+ };
335
+ const dateTimeFormat = new Intl.DateTimeFormat(dom.ketchup.dates.getLocale(), options);
336
+ return dateTimeFormat.format(date);
337
+ }
338
+ function fillString(stringIn, stringForFill, finalLen, addBefore) {
339
+ const initSize = stringIn.length;
340
+ let stringOut = '';
341
+ for (let i = initSize; i < finalLen; i += stringForFill.length) {
342
+ stringOut += stringForFill;
343
+ }
344
+ if (addBefore) {
345
+ return stringOut + stringIn;
346
+ }
347
+ else {
348
+ return stringIn + stringOut;
349
+ }
350
+ }
351
+ function prevPage(component) {
352
+ let mm = getMonth(component);
353
+ let yy = getYear(component);
354
+ if (getView(component) == SourceEvent.DATE) {
355
+ if (mm < 1) {
356
+ mm = 11;
357
+ yy--;
358
+ }
359
+ else {
360
+ mm--;
361
+ }
362
+ }
363
+ if (getView(component) == SourceEvent.MONTH) {
364
+ yy--;
365
+ }
366
+ if (getView(component) == SourceEvent.YEAR) {
367
+ let yearRange = getInitEndYear(yy);
368
+ yy = yearRange.initYear - 1;
369
+ }
370
+ setDay(component, null);
371
+ setMonth(component, mm);
372
+ setYear(component, yy);
373
+ refresh(component);
374
+ }
375
+ function nextPage(component) {
376
+ let mm = getMonth(component);
377
+ let yy = getYear(component);
378
+ if (getView(component) == SourceEvent.DATE) {
379
+ if (mm > 10) {
380
+ mm = 0;
381
+ yy++;
382
+ }
383
+ else {
384
+ mm++;
385
+ }
386
+ }
387
+ if (getView(component) == SourceEvent.MONTH) {
388
+ yy++;
389
+ }
390
+ if (getView(component) == SourceEvent.YEAR) {
391
+ const yearRange = getInitEndYear(yy);
392
+ yy = yearRange.endYear + 1;
393
+ }
394
+ setDay(component, null);
395
+ setMonth(component, mm);
396
+ setYear(component, yy);
397
+ refresh(component);
398
+ }
399
+ function getInitEndYear(curYear) {
400
+ const initYear = curYear - (curYear % 10);
401
+ const endYear = initYear + 16 - 1;
402
+ return { initYear: initYear, endYear: endYear };
403
+ }
404
+ function changeView(component) {
405
+ setDay(component, null);
406
+ switch (getView(component)) {
407
+ case SourceEvent.DATE: {
408
+ setView(component, SourceEvent.MONTH);
409
+ break;
410
+ }
411
+ case SourceEvent.MONTH: {
412
+ setView(component, SourceEvent.YEAR);
413
+ break;
414
+ }
415
+ case SourceEvent.YEAR: {
416
+ setView(component, SourceEvent.DATE);
417
+ break;
418
+ }
419
+ }
420
+ refresh(component);
421
+ }
422
+ function refresh(component) {
423
+ component.refresh();
424
+ }
425
+ function onCalendarMonthYearItemClick(component, value) {
426
+ let d;
427
+ if (dom.ketchup.dates.isValid(value, KupDatesFormats.ISO_DATE)) {
428
+ d = new Date(value);
429
+ }
430
+ else {
431
+ d = new Date();
432
+ }
433
+ setMonth(component, d.getMonth());
434
+ setYear(component, d.getFullYear());
435
+ switch (getView(component)) {
436
+ case SourceEvent.MONTH: {
437
+ setView(component, SourceEvent.DATE);
438
+ break;
439
+ }
440
+ case SourceEvent.YEAR: {
441
+ setView(component, SourceEvent.MONTH);
442
+ break;
443
+ }
444
+ }
445
+ refresh(component);
446
+ }
447
+ function onCalendarItemClick(component, value) {
448
+ let d;
449
+ if (dom.ketchup.dates.isValid(value, KupDatesFormats.ISO_DATE)) {
450
+ d = new Date(value);
451
+ }
452
+ else {
453
+ d = new Date();
454
+ }
455
+ setValue(component, d);
456
+ component.onKupClick(component.rootElement.id, value);
457
+ refresh(component);
458
+ }