@nectary/components 0.39.0 → 0.40.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 (115) hide show
  1. package/accordion/index.js +47 -84
  2. package/accordion-item/index.js +26 -53
  3. package/action-menu/index.d.ts +0 -1
  4. package/action-menu/index.js +179 -223
  5. package/action-menu/types.d.ts +8 -18
  6. package/action-menu-option/index.d.ts +1 -0
  7. package/action-menu-option/index.js +51 -62
  8. package/action-menu-option/types.d.ts +9 -0
  9. package/action-menu-option/utils.d.ts +2 -0
  10. package/action-menu-option/utils.js +3 -0
  11. package/alert/index.js +6 -20
  12. package/avatar/index.js +12 -31
  13. package/avatar-badge/index.js +8 -22
  14. package/avatar-status/index.js +1 -1
  15. package/button/index.js +42 -92
  16. package/card/index.js +21 -59
  17. package/chat-avatar/index.js +8 -22
  18. package/chat-block/index.js +29 -69
  19. package/chat-bubble/index.js +6 -20
  20. package/checkbox/index.js +55 -107
  21. package/chip/index.d.ts +13 -0
  22. package/chip/index.js +137 -0
  23. package/chip/types.d.ts +38 -0
  24. package/color-menu/index.d.ts +13 -0
  25. package/color-menu/index.js +464 -0
  26. package/color-menu/types.d.ts +37 -0
  27. package/color-swatch/index.d.ts +13 -0
  28. package/color-swatch/index.js +59 -0
  29. package/color-swatch/types.d.ts +12 -0
  30. package/colors.json +57 -49
  31. package/date-picker/index.js +161 -292
  32. package/dialog/index.js +70 -142
  33. package/dropdown-checkbox-option/index.js +6 -20
  34. package/dropdown-radio-option/index.js +6 -20
  35. package/field/index.js +25 -63
  36. package/file-drop/index.js +123 -200
  37. package/file-picker/index.d.ts +0 -1
  38. package/file-picker/index.js +55 -108
  39. package/file-status/index.js +15 -39
  40. package/help-tooltip/index.js +1 -1
  41. package/horizontal-stepper/index.js +33 -59
  42. package/horizontal-stepper-item/index.js +13 -37
  43. package/icon-button/index.js +39 -84
  44. package/icons-channel/notify/index.d.ts +11 -0
  45. package/icons-channel/notify/index.js +4 -0
  46. package/illustrations/create-illustration-class.js +1 -1
  47. package/inline-alert/index.js +29 -81
  48. package/input/index.js +113 -222
  49. package/link/index.js +46 -96
  50. package/list-item/index.js +1 -1
  51. package/package.json +12 -14
  52. package/pagination/index.js +109 -163
  53. package/popover/index.js +224 -294
  54. package/progress/index.js +9 -28
  55. package/radio/index.js +103 -169
  56. package/radio-option/index.js +24 -48
  57. package/segment/index.js +49 -130
  58. package/segment-collapse/index.js +24 -49
  59. package/segmented-control/index.js +36 -73
  60. package/segmented-control-option/index.js +41 -87
  61. package/segmented-icon-control/index.js +47 -84
  62. package/segmented-icon-control-option/index.js +38 -79
  63. package/select-button/index.d.ts +13 -0
  64. package/select-button/index.js +153 -0
  65. package/select-button/types.d.ts +43 -0
  66. package/select-menu/index.d.ts +11 -0
  67. package/select-menu/index.js +346 -0
  68. package/select-menu/types.d.ts +29 -0
  69. package/select-menu/types.js +1 -0
  70. package/{dropdown-text-option → select-menu-option}/index.d.ts +5 -7
  71. package/select-menu-option/index.js +76 -0
  72. package/{select-option → select-menu-option}/types.d.ts +8 -9
  73. package/stop-events/index.js +7 -20
  74. package/table-head-cell/index.js +7 -21
  75. package/tabs/index.js +103 -165
  76. package/tabs-option/index.js +20 -44
  77. package/tag/index.d.ts +0 -1
  78. package/tag/index.js +37 -38
  79. package/tag/types.d.ts +13 -7
  80. package/textarea/index.js +92 -167
  81. package/theme.css +80 -49
  82. package/tile-control/index.js +55 -96
  83. package/tile-control-option/index.js +40 -86
  84. package/time-picker/index.js +216 -368
  85. package/title/index.js +6 -20
  86. package/toast/index.js +32 -70
  87. package/toast-manager/index.js +141 -217
  88. package/toggle/index.js +54 -106
  89. package/types.d.ts +7 -0
  90. package/utils/colors.d.ts +10 -0
  91. package/utils/colors.js +121 -0
  92. package/{utils.d.ts → utils/index.d.ts} +17 -9
  93. package/{utils.js → utils/index.js} +96 -39
  94. package/vertical-stepper/index.js +29 -50
  95. package/vertical-stepper-item/index.js +13 -37
  96. package/dropdown/index.d.ts +0 -12
  97. package/dropdown/index.js +0 -415
  98. package/dropdown/types.d.ts +0 -32
  99. package/dropdown-text-option/index.js +0 -104
  100. package/dropdown-text-option/types.d.ts +0 -16
  101. package/select/index.d.ts +0 -13
  102. package/select/index.js +0 -316
  103. package/select/types.d.ts +0 -53
  104. package/select-option/index.d.ts +0 -11
  105. package/select-option/index.js +0 -8
  106. package/tag/utils.d.ts +0 -5
  107. package/tag/utils.js +0 -6
  108. package/tag-close/index.d.ts +0 -12
  109. package/tag-close/index.js +0 -42
  110. package/tag-close/types.d.ts +0 -5
  111. /package/{dropdown-text-option → chip}/types.js +0 -0
  112. /package/{dropdown → color-menu}/types.js +0 -0
  113. /package/{select-option → color-swatch}/types.js +0 -0
  114. /package/{select → select-button}/types.js +0 -0
  115. /package/{tag-close → select-menu-option}/types.js +0 -0
@@ -1,16 +1,3 @@
1
- import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
2
- import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
3
-
4
- var _$month, _$weeks, _$days, _$weekDayNames, _date, _minDate, _maxDate, _$prevMonth, _$nextMonth, _$prevYear, _$nextYear, _$date, _monthNames, _onPrevMonthClick, _onNextMonthClick, _onPrevYearClick, _onNextYearClick, _onDateClick, _render, _dispatchChangeEvent, _onChangeReactHandler;
5
-
6
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
7
-
8
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
9
-
10
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
11
-
12
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
13
-
14
1
  import '../icon-button';
15
2
  import '../icons/keyboard-arrow-right';
16
3
  import '../icons/keyboard-double-arrow-right';
@@ -24,199 +11,60 @@ const templateHTML = '<style>:host{display:block;outline:0}#content{width:fit-co
24
11
  import { areDatesEqual, assertDate, assertLocale, assertMinMax, assertValue, canGoNextMonth, canGoNextYear, canGoPrevMonth, canGoPrevYear, clampMaxDate, clampMinDate, dateToIso, decMonth, decYear, getCalendarMonth, getDayNames, getMonthNames, incMonth, incYear, isDateBetween, isoToDate, isValidDate, today } from './utils';
25
12
  const template = document.createElement('template');
26
13
  template.innerHTML = templateHTML;
27
- defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new WeakMap(), _$days = new WeakMap(), _$weekDayNames = new WeakMap(), _date = new WeakMap(), _minDate = new WeakMap(), _maxDate = new WeakMap(), _$prevMonth = new WeakMap(), _$nextMonth = new WeakMap(), _$prevYear = new WeakMap(), _$nextYear = new WeakMap(), _$date = new WeakMap(), _monthNames = new WeakMap(), _onPrevMonthClick = new WeakMap(), _onNextMonthClick = new WeakMap(), _onPrevYearClick = new WeakMap(), _onNextYearClick = new WeakMap(), _onDateClick = new WeakMap(), _render = new WeakSet(), _dispatchChangeEvent = new WeakSet(), _onChangeReactHandler = new WeakMap(), class extends NectaryElement {
14
+ defineCustomElement('sinch-date-picker', class extends NectaryElement {
15
+ #$month;
16
+ #$weeks;
17
+ #$days;
18
+ #$weekDayNames;
19
+ #date = null;
20
+ #minDate = null;
21
+ #maxDate = null;
22
+ #$prevMonth;
23
+ #$nextMonth;
24
+ #$prevYear;
25
+ #$nextYear;
26
+ #$date;
27
+ #monthNames;
28
+
28
29
  constructor() {
29
30
  super();
30
-
31
- _classPrivateMethodInitSpec(this, _dispatchChangeEvent);
32
-
33
- _classPrivateMethodInitSpec(this, _render);
34
-
35
- _classPrivateFieldInitSpec(this, _$month, {
36
- writable: true,
37
- value: void 0
38
- });
39
-
40
- _classPrivateFieldInitSpec(this, _$weeks, {
41
- writable: true,
42
- value: void 0
43
- });
44
-
45
- _classPrivateFieldInitSpec(this, _$days, {
46
- writable: true,
47
- value: void 0
48
- });
49
-
50
- _classPrivateFieldInitSpec(this, _$weekDayNames, {
51
- writable: true,
52
- value: void 0
53
- });
54
-
55
- _classPrivateFieldInitSpec(this, _date, {
56
- writable: true,
57
- value: null
58
- });
59
-
60
- _classPrivateFieldInitSpec(this, _minDate, {
61
- writable: true,
62
- value: null
63
- });
64
-
65
- _classPrivateFieldInitSpec(this, _maxDate, {
66
- writable: true,
67
- value: null
68
- });
69
-
70
- _classPrivateFieldInitSpec(this, _$prevMonth, {
71
- writable: true,
72
- value: void 0
73
- });
74
-
75
- _classPrivateFieldInitSpec(this, _$nextMonth, {
76
- writable: true,
77
- value: void 0
78
- });
79
-
80
- _classPrivateFieldInitSpec(this, _$prevYear, {
81
- writable: true,
82
- value: void 0
83
- });
84
-
85
- _classPrivateFieldInitSpec(this, _$nextYear, {
86
- writable: true,
87
- value: void 0
88
- });
89
-
90
- _classPrivateFieldInitSpec(this, _$date, {
91
- writable: true,
92
- value: void 0
93
- });
94
-
95
- _classPrivateFieldInitSpec(this, _monthNames, {
96
- writable: true,
97
- value: void 0
98
- });
99
-
100
- _classPrivateFieldInitSpec(this, _onPrevMonthClick, {
101
- writable: true,
102
- value: e => {
103
- e.stopPropagation();
104
- decMonth(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate));
105
-
106
- _classPrivateMethodGet(this, _render, _render2).call(this);
107
- }
108
- });
109
-
110
- _classPrivateFieldInitSpec(this, _onNextMonthClick, {
111
- writable: true,
112
- value: e => {
113
- e.stopPropagation();
114
- incMonth(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate));
115
-
116
- _classPrivateMethodGet(this, _render, _render2).call(this);
117
- }
118
- });
119
-
120
- _classPrivateFieldInitSpec(this, _onPrevYearClick, {
121
- writable: true,
122
- value: e => {
123
- e.stopPropagation();
124
- decYear(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate));
125
-
126
- _classPrivateMethodGet(this, _render, _render2).call(this);
127
- }
128
- });
129
-
130
- _classPrivateFieldInitSpec(this, _onNextYearClick, {
131
- writable: true,
132
- value: e => {
133
- e.stopPropagation();
134
- incYear(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate));
135
-
136
- _classPrivateMethodGet(this, _render, _render2).call(this);
137
- }
138
- });
139
-
140
- _classPrivateFieldInitSpec(this, _onDateClick, {
141
- writable: true,
142
- value: e => {
143
- e.stopPropagation();
144
- const dateIso = e.target.getAttribute('data-date');
145
-
146
- if (dateIso === null || dateIso.length === 0) {
147
- return;
148
- }
149
-
150
- _classPrivateMethodGet(this, _dispatchChangeEvent, _dispatchChangeEvent2).call(this, dateIso);
151
- }
152
- });
153
-
154
- _classPrivateFieldInitSpec(this, _onChangeReactHandler, {
155
- writable: true,
156
- value: e => {
157
- getReactEventHandler(this, 'on-change')?.(e);
158
- }
159
- });
160
-
161
31
  const shadowRoot = this.attachShadow();
162
32
  shadowRoot.appendChild(template.content.cloneNode(true));
163
-
164
- _classPrivateFieldSet(this, _$prevMonth, shadowRoot.querySelector('#prev-month'));
165
-
166
- _classPrivateFieldSet(this, _$nextMonth, shadowRoot.querySelector('#next-month'));
167
-
168
- _classPrivateFieldSet(this, _$prevYear, shadowRoot.querySelector('#prev-year'));
169
-
170
- _classPrivateFieldSet(this, _$nextYear, shadowRoot.querySelector('#next-year'));
171
-
172
- _classPrivateFieldSet(this, _$date, shadowRoot.querySelector('#date'));
173
-
174
- _classPrivateFieldSet(this, _$month, shadowRoot.querySelector('#month'));
175
-
176
- _classPrivateFieldSet(this, _$days, []);
177
-
178
- _classPrivateFieldSet(this, _$weeks, []);
179
-
180
- _classPrivateFieldSet(this, _monthNames, []);
181
-
33
+ this.#$prevMonth = shadowRoot.querySelector('#prev-month');
34
+ this.#$nextMonth = shadowRoot.querySelector('#next-month');
35
+ this.#$prevYear = shadowRoot.querySelector('#prev-year');
36
+ this.#$nextYear = shadowRoot.querySelector('#next-year');
37
+ this.#$date = shadowRoot.querySelector('#date');
38
+ this.#$month = shadowRoot.querySelector('#month');
39
+ this.#$days = [];
40
+ this.#$weeks = [];
41
+ this.#monthNames = [];
182
42
  shadowRoot.querySelectorAll('.week').forEach((week, i) => {
183
- _classPrivateFieldGet(this, _$weeks).push(week);
184
-
185
- _classPrivateFieldGet(this, _$days)[i] = [];
43
+ this.#$weeks.push(week);
44
+ this.#$days[i] = [];
186
45
  week.querySelectorAll('.day').forEach(day => {
187
- _classPrivateFieldGet(this, _$days)[i].push(day);
46
+ this.#$days[i].push(day);
188
47
  });
189
48
  });
190
-
191
- _classPrivateFieldSet(this, _$weekDayNames, Array.from(shadowRoot.querySelectorAll('#week-day-names > .week-day-name')));
49
+ this.#$weekDayNames = Array.from(shadowRoot.querySelectorAll('#week-day-names > .week-day-name'));
192
50
  }
193
51
 
194
52
  connectedCallback() {
195
- _classPrivateFieldGet(this, _$prevMonth).addEventListener('click', _classPrivateFieldGet(this, _onPrevMonthClick));
196
-
197
- _classPrivateFieldGet(this, _$nextMonth).addEventListener('click', _classPrivateFieldGet(this, _onNextMonthClick));
198
-
199
- _classPrivateFieldGet(this, _$prevYear).addEventListener('click', _classPrivateFieldGet(this, _onPrevYearClick));
200
-
201
- _classPrivateFieldGet(this, _$nextYear).addEventListener('click', _classPrivateFieldGet(this, _onNextYearClick));
202
-
203
- _classPrivateFieldGet(this, _$month).addEventListener('click', _classPrivateFieldGet(this, _onDateClick));
204
-
205
- this.addEventListener('-change', _classPrivateFieldGet(this, _onChangeReactHandler));
53
+ this.#$prevMonth.addEventListener('click', this.#onPrevMonthClick);
54
+ this.#$nextMonth.addEventListener('click', this.#onNextMonthClick);
55
+ this.#$prevYear.addEventListener('click', this.#onPrevYearClick);
56
+ this.#$nextYear.addEventListener('click', this.#onNextYearClick);
57
+ this.#$month.addEventListener('click', this.#onDateClick);
58
+ this.addEventListener('-change', this.#onChangeReactHandler);
206
59
  }
207
60
 
208
61
  disconnectedCallback() {
209
- _classPrivateFieldGet(this, _$prevMonth).removeEventListener('click', _classPrivateFieldGet(this, _onPrevMonthClick));
210
-
211
- _classPrivateFieldGet(this, _$nextMonth).removeEventListener('click', _classPrivateFieldGet(this, _onNextMonthClick));
212
-
213
- _classPrivateFieldGet(this, _$prevYear).removeEventListener('click', _classPrivateFieldGet(this, _onPrevYearClick));
214
-
215
- _classPrivateFieldGet(this, _$nextYear).removeEventListener('click', _classPrivateFieldGet(this, _onNextYearClick));
216
-
217
- _classPrivateFieldGet(this, _$month).removeEventListener('click', _classPrivateFieldGet(this, _onDateClick));
218
-
219
- this.removeEventListener('-change', _classPrivateFieldGet(this, _onChangeReactHandler));
62
+ this.#$prevMonth.removeEventListener('click', this.#onPrevMonthClick);
63
+ this.#$nextMonth.removeEventListener('click', this.#onNextMonthClick);
64
+ this.#$prevYear.removeEventListener('click', this.#onPrevYearClick);
65
+ this.#$nextYear.removeEventListener('click', this.#onNextYearClick);
66
+ this.#$month.removeEventListener('click', this.#onDateClick);
67
+ this.removeEventListener('-change', this.#onChangeReactHandler);
220
68
  }
221
69
 
222
70
  static get observedAttributes() {
@@ -232,57 +80,49 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
232
80
  case 'value':
233
81
  {
234
82
  assertValue(newVal);
83
+ this.#date = newVal.length > 0 ? isoToDate(newVal) : today();
235
84
 
236
- _classPrivateFieldSet(this, _date, newVal.length > 0 ? isoToDate(newVal) : today());
237
-
238
- if (!isValidDate(_classPrivateFieldGet(this, _date))) {
239
- _classPrivateFieldSet(this, _date, today());
85
+ if (!isValidDate(this.#date)) {
86
+ this.#date = today();
240
87
  }
241
88
 
242
- if (_classPrivateFieldGet(this, _minDate) !== null) {
243
- clampMinDate(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate));
89
+ if (this.#minDate !== null) {
90
+ clampMinDate(this.#date, this.#minDate);
244
91
  }
245
92
 
246
- if (_classPrivateFieldGet(this, _maxDate) !== null) {
247
- clampMaxDate(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate));
93
+ if (this.#maxDate !== null) {
94
+ clampMaxDate(this.#date, this.#maxDate);
248
95
  }
249
96
 
250
- _classPrivateMethodGet(this, _render, _render2).call(this);
251
-
97
+ this.#render();
252
98
  break;
253
99
  }
254
100
 
255
101
  case 'min':
256
102
  {
257
103
  assertMinMax(newVal, name);
104
+ this.#minDate = isoToDate(newVal);
105
+ assertDate(this.#minDate, name, newVal);
258
106
 
259
- _classPrivateFieldSet(this, _minDate, isoToDate(newVal));
260
-
261
- assertDate(_classPrivateFieldGet(this, _minDate), name, newVal);
262
-
263
- if (_classPrivateFieldGet(this, _date) !== null) {
264
- clampMinDate(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate));
107
+ if (this.#date !== null) {
108
+ clampMinDate(this.#date, this.#minDate);
265
109
  }
266
110
 
267
- _classPrivateMethodGet(this, _render, _render2).call(this);
268
-
111
+ this.#render();
269
112
  break;
270
113
  }
271
114
 
272
115
  case 'max':
273
116
  {
274
117
  assertMinMax(newVal, name);
118
+ this.#maxDate = isoToDate(newVal);
119
+ assertDate(this.#maxDate, name, newVal);
275
120
 
276
- _classPrivateFieldSet(this, _maxDate, isoToDate(newVal));
277
-
278
- assertDate(_classPrivateFieldGet(this, _maxDate), name, newVal);
279
-
280
- if (_classPrivateFieldGet(this, _date) !== null) {
281
- clampMaxDate(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate));
121
+ if (this.#date !== null) {
122
+ clampMaxDate(this.#date, this.#maxDate);
282
123
  }
283
124
 
284
- _classPrivateMethodGet(this, _render, _render2).call(this);
285
-
125
+ this.#render();
286
126
  break;
287
127
  }
288
128
 
@@ -290,39 +130,35 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
290
130
  {
291
131
  assertLocale(newVal);
292
132
  const names = getDayNames(newVal);
293
-
294
- _classPrivateFieldGet(this, _$weekDayNames).forEach(($day, i) => {
133
+ this.#$weekDayNames.forEach(($day, i) => {
295
134
  $day.textContent = names[i];
296
135
  });
297
-
298
- _classPrivateFieldSet(this, _monthNames, getMonthNames(newVal));
299
-
300
- _classPrivateMethodGet(this, _render, _render2).call(this);
301
-
136
+ this.#monthNames = getMonthNames(newVal);
137
+ this.#render();
302
138
  break;
303
139
  }
304
140
 
305
141
  case 'prev-year-aria-label':
306
142
  {
307
- updateAttribute(_classPrivateFieldGet(this, _$prevYear), 'aria-label', newVal);
143
+ updateAttribute(this.#$prevYear, 'aria-label', newVal);
308
144
  break;
309
145
  }
310
146
 
311
147
  case 'next-year-aria-label':
312
148
  {
313
- updateAttribute(_classPrivateFieldGet(this, _$nextYear), 'aria-label', newVal);
149
+ updateAttribute(this.#$nextYear, 'aria-label', newVal);
314
150
  break;
315
151
  }
316
152
 
317
153
  case 'prev-month-aria-label':
318
154
  {
319
- updateAttribute(_classPrivateFieldGet(this, _$prevMonth), 'aria-label', newVal);
155
+ updateAttribute(this.#$prevMonth, 'aria-label', newVal);
320
156
  break;
321
157
  }
322
158
 
323
159
  case 'next-month-aria-label':
324
160
  {
325
- updateAttribute(_classPrivateFieldGet(this, _$nextMonth), 'aria-label', newVal);
161
+ updateAttribute(this.#$nextMonth, 'aria-label', newVal);
326
162
  break;
327
163
  }
328
164
  }
@@ -381,19 +217,19 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
381
217
  }
382
218
 
383
219
  get prevYearButtonRect() {
384
- return getRect(_classPrivateFieldGet(this, _$prevYear));
220
+ return getRect(this.#$prevYear);
385
221
  }
386
222
 
387
223
  get nextYearButtonRect() {
388
- return getRect(_classPrivateFieldGet(this, _$nextYear));
224
+ return getRect(this.#$nextYear);
389
225
  }
390
226
 
391
227
  get prevMonthButtonRect() {
392
- return getRect(_classPrivateFieldGet(this, _$prevMonth));
228
+ return getRect(this.#$prevMonth);
393
229
  }
394
230
 
395
231
  get nextMonthButtonRect() {
396
- return getRect(_classPrivateFieldGet(this, _$nextMonth));
232
+ return getRect(this.#$nextMonth);
397
233
  }
398
234
 
399
235
  nthButtonRect(index) {
@@ -401,7 +237,7 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
401
237
  return null;
402
238
  }
403
239
 
404
- const indexOffset = _classPrivateFieldGet(this, _$days)[0].findIndex(el => el.getAttribute('data-date') !== null);
240
+ const indexOffset = this.#$days[0].findIndex(el => el.getAttribute('data-date') !== null);
405
241
 
406
242
  if (indexOffset < 0) {
407
243
  return null;
@@ -409,7 +245,7 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
409
245
 
410
246
  const rowIndex = Math.floor((indexOffset + index) / 7);
411
247
  const colIndex = (indexOffset + index) % 7;
412
- const $el = _classPrivateFieldGet(this, _$days)[rowIndex]?.[colIndex];
248
+ const $el = this.#$days[rowIndex]?.[colIndex];
413
249
 
414
250
  if ($el == null) {
415
251
  return null;
@@ -418,67 +254,100 @@ defineCustomElement('sinch-date-picker', (_$month = new WeakMap(), _$weeks = new
418
254
  return getRect($el);
419
255
  }
420
256
 
421
- }));
257
+ #onPrevMonthClick = e => {
258
+ e.stopPropagation();
259
+ decMonth(this.#date, this.#minDate);
260
+ this.#render();
261
+ };
262
+ #onNextMonthClick = e => {
263
+ e.stopPropagation();
264
+ incMonth(this.#date, this.#maxDate);
265
+ this.#render();
266
+ };
267
+ #onPrevYearClick = e => {
268
+ e.stopPropagation();
269
+ decYear(this.#date, this.#minDate);
270
+ this.#render();
271
+ };
272
+ #onNextYearClick = e => {
273
+ e.stopPropagation();
274
+ incYear(this.#date, this.#maxDate);
275
+ this.#render();
276
+ };
277
+ #onDateClick = e => {
278
+ e.stopPropagation();
279
+ const dateIso = e.target.getAttribute('data-date');
280
+
281
+ if (dateIso === null || dateIso.length === 0) {
282
+ return;
283
+ }
422
284
 
423
- function _render2() {
424
- if (_classPrivateFieldGet(this, _date) === null || _classPrivateFieldGet(this, _minDate) === null || _classPrivateFieldGet(this, _maxDate) === null || this.locale === null) {
425
- return;
426
- }
285
+ this.#dispatchChangeEvent(dateIso);
286
+ };
427
287
 
428
- const valueDate = isoToDate(this.value);
429
- const todayDate = new Date();
430
- const month = getCalendarMonth(_classPrivateFieldGet(this, _date));
431
- updateBooleanAttribute(_classPrivateFieldGet(this, _$prevMonth), 'disabled', canGoPrevMonth(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate)) === false);
432
- updateBooleanAttribute(_classPrivateFieldGet(this, _$nextMonth), 'disabled', canGoNextMonth(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate)) === false);
433
- updateBooleanAttribute(_classPrivateFieldGet(this, _$prevYear), 'disabled', canGoPrevYear(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _minDate)) === false);
434
- updateBooleanAttribute(_classPrivateFieldGet(this, _$nextYear), 'disabled', canGoNextYear(_classPrivateFieldGet(this, _date), _classPrivateFieldGet(this, _maxDate)) === false);
435
- _classPrivateFieldGet(this, _$date).textContent = `${_classPrivateFieldGet(this, _monthNames)[_classPrivateFieldGet(this, _date).getMonth()]} ${_classPrivateFieldGet(this, _date).getFullYear()}`;
436
-
437
- _classPrivateFieldGet(this, _$days).forEach(($week, wi) => {
438
- let isEmptyWeek = true;
439
- $week.forEach(($day, di) => {
440
- const week = month[wi];
441
- const day = week?.[di];
442
- $day.classList.remove('selected');
443
- $day.classList.remove('today');
444
-
445
- if (day == null) {
446
- $day.textContent = '';
447
- $day.removeAttribute('data-date');
448
- $day.setAttribute('disabled', '');
449
- $day.setAttribute('aria-hidden', 'true');
450
- } else {
451
- const dayIso = dateToIso(day);
452
- $day.textContent = day.getDate().toString();
453
- $day.setAttribute('data-date', dayIso);
454
-
455
- if (isDateBetween(day, _classPrivateFieldGet(this, _minDate), _classPrivateFieldGet(this, _maxDate))) {
456
- $day.removeAttribute('disabled');
457
- $day.removeAttribute('aria-hidden');
458
- } else {
288
+ #render() {
289
+ if (this.#date === null || this.#minDate === null || this.#maxDate === null || this.locale === null) {
290
+ return;
291
+ }
292
+
293
+ const valueDate = isoToDate(this.value);
294
+ const todayDate = new Date();
295
+ const month = getCalendarMonth(this.#date);
296
+ updateBooleanAttribute(this.#$prevMonth, 'disabled', canGoPrevMonth(this.#date, this.#minDate) === false);
297
+ updateBooleanAttribute(this.#$nextMonth, 'disabled', canGoNextMonth(this.#date, this.#maxDate) === false);
298
+ updateBooleanAttribute(this.#$prevYear, 'disabled', canGoPrevYear(this.#date, this.#minDate) === false);
299
+ updateBooleanAttribute(this.#$nextYear, 'disabled', canGoNextYear(this.#date, this.#maxDate) === false);
300
+ this.#$date.textContent = `${this.#monthNames[this.#date.getMonth()]} ${this.#date.getFullYear()}`;
301
+ this.#$days.forEach(($week, wi) => {
302
+ let isEmptyWeek = true;
303
+ $week.forEach(($day, di) => {
304
+ const week = month[wi];
305
+ const day = week?.[di];
306
+ $day.classList.remove('selected');
307
+ $day.classList.remove('today');
308
+
309
+ if (day == null) {
310
+ $day.textContent = '';
311
+ $day.removeAttribute('data-date');
459
312
  $day.setAttribute('disabled', '');
460
313
  $day.setAttribute('aria-hidden', 'true');
461
- }
314
+ } else {
315
+ const dayIso = dateToIso(day);
316
+ $day.textContent = day.getDate().toString();
317
+ $day.setAttribute('data-date', dayIso);
318
+
319
+ if (isDateBetween(day, this.#minDate, this.#maxDate)) {
320
+ $day.removeAttribute('disabled');
321
+ $day.removeAttribute('aria-hidden');
322
+ } else {
323
+ $day.setAttribute('disabled', '');
324
+ $day.setAttribute('aria-hidden', 'true');
325
+ }
462
326
 
463
- if (areDatesEqual(day, valueDate)) {
464
- $day.classList.add('selected');
465
- } else if (areDatesEqual(day, todayDate)) {
466
- $day.classList.add('today');
467
- }
327
+ if (areDatesEqual(day, valueDate)) {
328
+ $day.classList.add('selected');
329
+ } else if (areDatesEqual(day, todayDate)) {
330
+ $day.classList.add('today');
331
+ }
468
332
 
469
- isEmptyWeek = false;
470
- }
333
+ isEmptyWeek = false;
334
+ }
335
+ });
336
+ setClass(this.#$weeks[wi], 'empty', isEmptyWeek);
471
337
  });
472
- setClass(_classPrivateFieldGet(this, _$weeks)[wi], 'empty', isEmptyWeek);
473
- });
474
- }
475
-
476
- function _dispatchChangeEvent2(value) {
477
- this.dispatchEvent(new CustomEvent('change', {
478
- detail: value,
479
- bubbles: true
480
- }));
481
- this.dispatchEvent(new CustomEvent('-change', {
482
- detail: value
483
- }));
484
- }
338
+ }
339
+
340
+ #dispatchChangeEvent(value) {
341
+ this.dispatchEvent(new CustomEvent('change', {
342
+ detail: value,
343
+ bubbles: true
344
+ }));
345
+ this.dispatchEvent(new CustomEvent('-change', {
346
+ detail: value
347
+ }));
348
+ }
349
+
350
+ #onChangeReactHandler = e => {
351
+ getReactEventHandler(this, 'on-change')?.(e);
352
+ };
353
+ });