@design.estate/dees-catalog 9.6.2 → 9.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +3138 -2725
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/demos/inputs.d.ts +1 -1
- package/dist_ts_web/demos/inputs.js +5 -4
- package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +6 -1
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.d.ts +5 -1
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +27 -3
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +11 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.d.ts +3 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.js +4 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.js +64 -16
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +4 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +52 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +4 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +93 -20
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +7 -21
- package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +20 -0
- package/dist_ts_web/elements/00group-harness/harness.helpers.js +58 -1
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +6 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +8 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.js +10 -2
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/component.d.ts +18 -3
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/component.js +181 -144
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/date-validation.d.ts +13 -0
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/date-validation.js +65 -0
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.js +44 -56
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/styles.js +6 -1
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/template.js +11 -5
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.d.ts +8 -8
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +6 -53
- package/dist_ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.d.ts +62 -0
- package/dist_ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.demo.js +3 -0
- package/dist_ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.js +224 -0
- package/dist_ts_web/elements/00group-input/dees-input-textarea/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/dees-input-textarea/index.js +2 -0
- package/dist_ts_web/elements/00group-input/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-input/index.js +2 -1
- package/dist_ts_web/elements/00group-input/text-input-contextmenu.d.ts +29 -0
- package/dist_ts_web/elements/00group-input/text-input-contextmenu.js +29 -0
- package/package.json +2 -2
- package/readme.md +61 -6
- package/scripts/check-packed-consumer.mjs +8 -5
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/demos/inputs.ts +5 -4
- package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +4 -0
- package/ts_web/elements/00group-form/dees-form/dees-form.ts +25 -2
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +4 -0
- package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.demo.ts +3 -0
- package/ts_web/elements/00group-harness/dees-harness-composer/dees-harness-composer.ts +49 -14
- package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +50 -0
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +95 -23
- package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +7 -20
- package/ts_web/elements/00group-harness/harness.helpers.ts +63 -0
- package/ts_web/elements/00group-harness/interfaces.ts +6 -0
- package/ts_web/elements/00group-harness/toolregistry.ts +22 -1
- package/ts_web/elements/00group-input/dees-input-datepicker/component.ts +149 -148
- package/ts_web/elements/00group-input/dees-input-datepicker/date-validation.ts +64 -0
- package/ts_web/elements/00group-input/dees-input-datepicker/datepicker-popup.ts +40 -40
- package/ts_web/elements/00group-input/dees-input-datepicker/styles.ts +5 -0
- package/ts_web/elements/00group-input/dees-input-datepicker/template.ts +10 -4
- package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +5 -52
- package/ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.demo.ts +2 -0
- package/ts_web/elements/00group-input/dees-input-textarea/dees-input-textarea.ts +128 -0
- package/ts_web/elements/00group-input/dees-input-textarea/index.ts +1 -0
- package/ts_web/elements/00group-input/index.ts +1 -0
- package/ts_web/elements/00group-input/text-input-contextmenu.ts +31 -0
|
@@ -38,6 +38,7 @@ import { demoFunc } from './demo.js';
|
|
|
38
38
|
import { datepickerStyles } from './styles.js';
|
|
39
39
|
import { renderDatepicker } from './template.js';
|
|
40
40
|
import { DeesInputDatepickerPopup } from './datepicker-popup.js';
|
|
41
|
+
import { createCalendarDate, dateValidationMessage, parseDateFields, parseDateValue } from './date-validation.js';
|
|
41
42
|
import '../../00group-utility/dees-icon/dees-icon.js';
|
|
42
43
|
import '../../00group-layout/dees-label/dees-label.js';
|
|
43
44
|
let DeesInputDatepicker = (() => {
|
|
@@ -100,6 +101,12 @@ let DeesInputDatepicker = (() => {
|
|
|
100
101
|
let _selectedMinute_decorators;
|
|
101
102
|
let _selectedMinute_initializers = [];
|
|
102
103
|
let _selectedMinute_extraInitializers = [];
|
|
104
|
+
let _draftText_decorators;
|
|
105
|
+
let _draftText_initializers = [];
|
|
106
|
+
let _draftText_extraInitializers = [];
|
|
107
|
+
let _validationText_decorators;
|
|
108
|
+
let _validationText_initializers = [];
|
|
109
|
+
let _validationText_extraInitializers = [];
|
|
103
110
|
var DeesInputDatepicker = class extends _classSuper {
|
|
104
111
|
static { _classThis = this; }
|
|
105
112
|
static {
|
|
@@ -122,6 +129,8 @@ let DeesInputDatepicker = (() => {
|
|
|
122
129
|
_viewDate_decorators = [state()];
|
|
123
130
|
_selectedHour_decorators = [state()];
|
|
124
131
|
_selectedMinute_decorators = [state()];
|
|
132
|
+
_draftText_decorators = [state()];
|
|
133
|
+
_validationText_decorators = [state()];
|
|
125
134
|
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
|
|
126
135
|
__esDecorate(this, null, _enableTime_decorators, { kind: "accessor", name: "enableTime", static: false, private: false, access: { has: obj => "enableTime" in obj, get: obj => obj.enableTime, set: (obj, value) => { obj.enableTime = value; } }, metadata: _metadata }, _enableTime_initializers, _enableTime_extraInitializers);
|
|
127
136
|
__esDecorate(this, null, _timeFormat_decorators, { kind: "accessor", name: "timeFormat", static: false, private: false, access: { has: obj => "timeFormat" in obj, get: obj => obj.timeFormat, set: (obj, value) => { obj.timeFormat = value; } }, metadata: _metadata }, _timeFormat_initializers, _timeFormat_extraInitializers);
|
|
@@ -140,6 +149,8 @@ let DeesInputDatepicker = (() => {
|
|
|
140
149
|
__esDecorate(this, null, _viewDate_decorators, { kind: "accessor", name: "viewDate", static: false, private: false, access: { has: obj => "viewDate" in obj, get: obj => obj.viewDate, set: (obj, value) => { obj.viewDate = value; } }, metadata: _metadata }, _viewDate_initializers, _viewDate_extraInitializers);
|
|
141
150
|
__esDecorate(this, null, _selectedHour_decorators, { kind: "accessor", name: "selectedHour", static: false, private: false, access: { has: obj => "selectedHour" in obj, get: obj => obj.selectedHour, set: (obj, value) => { obj.selectedHour = value; } }, metadata: _metadata }, _selectedHour_initializers, _selectedHour_extraInitializers);
|
|
142
151
|
__esDecorate(this, null, _selectedMinute_decorators, { kind: "accessor", name: "selectedMinute", static: false, private: false, access: { has: obj => "selectedMinute" in obj, get: obj => obj.selectedMinute, set: (obj, value) => { obj.selectedMinute = value; } }, metadata: _metadata }, _selectedMinute_initializers, _selectedMinute_extraInitializers);
|
|
152
|
+
__esDecorate(this, null, _draftText_decorators, { kind: "accessor", name: "draftText", static: false, private: false, access: { has: obj => "draftText" in obj, get: obj => obj.draftText, set: (obj, value) => { obj.draftText = value; } }, metadata: _metadata }, _draftText_initializers, _draftText_extraInitializers);
|
|
153
|
+
__esDecorate(this, null, _validationText_decorators, { kind: "accessor", name: "validationText", static: false, private: false, access: { has: obj => "validationText" in obj, get: obj => obj.validationText, set: (obj, value) => { obj.validationText = value; } }, metadata: _metadata }, _validationText_initializers, _validationText_extraInitializers);
|
|
143
154
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
144
155
|
DeesInputDatepicker = _classThis = _classDescriptor.value;
|
|
145
156
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -200,47 +211,72 @@ let DeesInputDatepicker = (() => {
|
|
|
200
211
|
#selectedMinute_accessor_storage = (__runInitializers(this, _selectedHour_extraInitializers), __runInitializers(this, _selectedMinute_initializers, 0));
|
|
201
212
|
get selectedMinute() { return this.#selectedMinute_accessor_storage; }
|
|
202
213
|
set selectedMinute(value) { this.#selectedMinute_accessor_storage = value; }
|
|
203
|
-
|
|
214
|
+
#draftText_accessor_storage = (__runInitializers(this, _selectedMinute_extraInitializers), __runInitializers(this, _draftText_initializers, null));
|
|
215
|
+
/** Uncommitted text stays visible even when it cannot be represented by value. */
|
|
216
|
+
get draftText() { return this.#draftText_accessor_storage; }
|
|
217
|
+
set draftText(value) { this.#draftText_accessor_storage = value; }
|
|
218
|
+
#validationText_accessor_storage = (__runInitializers(this, _draftText_extraInitializers), __runInitializers(this, _validationText_initializers, ''));
|
|
219
|
+
get validationText() { return this.#validationText_accessor_storage; }
|
|
220
|
+
set validationText(value) { this.#validationText_accessor_storage = value; }
|
|
221
|
+
get validationState() { return this.validationText ? 'invalid' : 'valid'; }
|
|
222
|
+
lastCommittedValue = __runInitializers(this, _validationText_extraInitializers);
|
|
223
|
+
popupInstance = null;
|
|
204
224
|
static styles = datepickerStyles;
|
|
205
225
|
render() {
|
|
206
226
|
return renderDatepicker(this);
|
|
207
227
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
228
|
+
willUpdate(changed) {
|
|
229
|
+
super.willUpdate(changed);
|
|
230
|
+
if (changed.has('value') && this.value !== this.lastCommittedValue) {
|
|
231
|
+
this.syncValue(this.value);
|
|
211
232
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
233
|
+
}
|
|
234
|
+
updated(changed) {
|
|
235
|
+
super.updated(changed);
|
|
236
|
+
if (changed.has('disabled') && this.disabled)
|
|
237
|
+
this.closePopup();
|
|
238
|
+
if (['value', 'minDate', 'maxDate', 'disabledDates', 'required', 'disabled'].some(key => changed.has(key))) {
|
|
239
|
+
this.updateValidation(this.currentValidationMessage());
|
|
240
|
+
}
|
|
241
|
+
if (this.popupInstance) {
|
|
242
|
+
this.popupInstance.minDate = this.minDate;
|
|
243
|
+
this.popupInstance.maxDate = this.maxDate;
|
|
244
|
+
this.popupInstance.disabledDates = this.disabledDates;
|
|
245
|
+
if (changed.has('selectedDate')) {
|
|
246
|
+
this.popupInstance.selectedDate = this.selectedDate;
|
|
247
|
+
this.popupInstance.viewDate = new Date(this.viewDate);
|
|
248
|
+
this.popupInstance.selectedHour = this.selectedHour;
|
|
249
|
+
this.popupInstance.selectedMinute = this.selectedMinute;
|
|
224
250
|
}
|
|
225
251
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
this.
|
|
230
|
-
|
|
252
|
+
const input = this.shadowRoot?.querySelector('input');
|
|
253
|
+
input?.setCustomValidity(this.disabled ? '' : this.validationText);
|
|
254
|
+
if (input && (changed.has('draftText') || changed.has('value'))) {
|
|
255
|
+
const display = this.draftText ?? this.formatDate(this.value);
|
|
256
|
+
if (input.value !== display)
|
|
257
|
+
input.value = display;
|
|
231
258
|
}
|
|
232
259
|
}
|
|
260
|
+
syncValue(value) {
|
|
261
|
+
this.value = value ?? '';
|
|
262
|
+
this.lastCommittedValue = this.value;
|
|
263
|
+
this.draftText = null;
|
|
264
|
+
this.selectedDate = parseDateValue(this.value);
|
|
265
|
+
this.viewDate = new Date(this.selectedDate ?? new Date());
|
|
266
|
+
this.selectedHour = this.selectedDate?.getHours() ?? 0;
|
|
267
|
+
this.selectedMinute = this.selectedDate?.getMinutes() ?? 0;
|
|
268
|
+
}
|
|
233
269
|
formatDate(isoString) {
|
|
234
270
|
if (!isoString)
|
|
235
271
|
return '';
|
|
236
272
|
try {
|
|
237
|
-
const date =
|
|
238
|
-
if (
|
|
239
|
-
return
|
|
273
|
+
const date = parseDateValue(isoString);
|
|
274
|
+
if (!date)
|
|
275
|
+
return isoString;
|
|
240
276
|
let formatted = this.dateFormat;
|
|
241
277
|
const day = date.getDate().toString().padStart(2, '0');
|
|
242
278
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
243
|
-
const year = date.getFullYear().toString();
|
|
279
|
+
const year = date.getFullYear().toString().padStart(4, '0');
|
|
244
280
|
formatted = formatted.replace('YYYY', year);
|
|
245
281
|
formatted = formatted.replace('YY', year.slice(-2));
|
|
246
282
|
formatted = formatted.replace('MM', month);
|
|
@@ -284,7 +320,7 @@ let DeesInputDatepicker = (() => {
|
|
|
284
320
|
const spaceAbove = rect.top;
|
|
285
321
|
const opensToTop = spaceBelow < 400 && spaceAbove > spaceBelow;
|
|
286
322
|
if (!this.popupInstance) {
|
|
287
|
-
this.popupInstance =
|
|
323
|
+
this.popupInstance = document.createElement('dees-input-datepicker-popup');
|
|
288
324
|
}
|
|
289
325
|
// Configure popup
|
|
290
326
|
this.popupInstance.triggerRect = rect;
|
|
@@ -313,28 +349,53 @@ let DeesInputDatepicker = (() => {
|
|
|
313
349
|
}
|
|
314
350
|
closePopup() {
|
|
315
351
|
this.isOpened = false;
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
this.
|
|
352
|
+
const popup = this.popupInstance;
|
|
353
|
+
this.popupInstance = null;
|
|
354
|
+
if (popup) {
|
|
355
|
+
popup.removeEventListener('date-selected', this.handleDateSelected);
|
|
356
|
+
popup.removeEventListener('date-cleared', this.handleDateCleared);
|
|
357
|
+
popup.removeEventListener('close-request', this.handleCloseRequest);
|
|
358
|
+
popup.removeEventListener('reposition-request', this.handleRepositionRequest);
|
|
359
|
+
void popup.hide();
|
|
322
360
|
}
|
|
323
361
|
}
|
|
324
362
|
handleDateSelected = (event) => {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
this.
|
|
328
|
-
this.selectedMinute = date.getMinutes();
|
|
329
|
-
this.viewDate = new Date(date);
|
|
330
|
-
this.value = this.formatValueWithTimezone(date);
|
|
331
|
-
this.changeSubject.next(this);
|
|
363
|
+
if (this.disabled)
|
|
364
|
+
return;
|
|
365
|
+
this.commitDate(event.detail, true);
|
|
332
366
|
};
|
|
333
367
|
handleDateCleared = () => {
|
|
334
|
-
this.
|
|
335
|
-
|
|
336
|
-
this.changeSubject.next(this);
|
|
368
|
+
if (!this.disabled)
|
|
369
|
+
this.commitClear();
|
|
337
370
|
};
|
|
371
|
+
commitDate(date, normalizeDraft) {
|
|
372
|
+
const message = dateValidationMessage(date, this);
|
|
373
|
+
if (message) {
|
|
374
|
+
this.updateValidation(message);
|
|
375
|
+
return false;
|
|
376
|
+
}
|
|
377
|
+
const value = this.formatValueWithTimezone(date);
|
|
378
|
+
const changed = value !== this.value;
|
|
379
|
+
this.lastCommittedValue = value;
|
|
380
|
+
this.value = value;
|
|
381
|
+
this.selectedDate = new Date(date);
|
|
382
|
+
this.selectedHour = date.getHours();
|
|
383
|
+
this.selectedMinute = date.getMinutes();
|
|
384
|
+
this.viewDate = new Date(date);
|
|
385
|
+
if (normalizeDraft)
|
|
386
|
+
this.draftText = null;
|
|
387
|
+
this.updateValidation('');
|
|
388
|
+
if (changed)
|
|
389
|
+
this.changeSubject.next(this);
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
commitClear() {
|
|
393
|
+
const changed = Boolean(this.value);
|
|
394
|
+
this.syncValue('');
|
|
395
|
+
this.updateValidation(this.currentValidationMessage());
|
|
396
|
+
if (changed)
|
|
397
|
+
this.changeSubject.next(this);
|
|
398
|
+
}
|
|
338
399
|
handleCloseRequest = () => {
|
|
339
400
|
this.closePopup();
|
|
340
401
|
};
|
|
@@ -355,12 +416,23 @@ let DeesInputDatepicker = (() => {
|
|
|
355
416
|
this.popupInstance.triggerRect = rect;
|
|
356
417
|
};
|
|
357
418
|
handleKeydown(e) {
|
|
358
|
-
if (
|
|
419
|
+
if (this.disabled || e.isComposing)
|
|
420
|
+
return;
|
|
421
|
+
if (e.key === 'Enter') {
|
|
422
|
+
e.preventDefault();
|
|
423
|
+
if (this.draftText !== null)
|
|
424
|
+
this.commitManualInput(true);
|
|
425
|
+
else
|
|
426
|
+
void this.toggleCalendar();
|
|
427
|
+
}
|
|
428
|
+
else if (e.key === 'ArrowDown' && e.altKey) {
|
|
359
429
|
e.preventDefault();
|
|
360
|
-
this.
|
|
430
|
+
if (!this.isOpened)
|
|
431
|
+
void this.toggleCalendar();
|
|
361
432
|
}
|
|
362
433
|
else if (e.key === 'Escape' && this.isOpened) {
|
|
363
434
|
e.preventDefault();
|
|
435
|
+
e.stopPropagation();
|
|
364
436
|
this.closePopup();
|
|
365
437
|
}
|
|
366
438
|
}
|
|
@@ -372,96 +444,81 @@ let DeesInputDatepicker = (() => {
|
|
|
372
444
|
}
|
|
373
445
|
clearValue(e) {
|
|
374
446
|
e.stopPropagation();
|
|
375
|
-
this.
|
|
376
|
-
|
|
377
|
-
this.changeSubject.next(this);
|
|
447
|
+
if (!this.disabled)
|
|
448
|
+
this.commitClear();
|
|
378
449
|
}
|
|
379
450
|
handleManualInput(e) {
|
|
380
|
-
|
|
381
|
-
const inputValue = input.value.trim();
|
|
382
|
-
if (!inputValue) {
|
|
383
|
-
this.value = '';
|
|
384
|
-
this.selectedDate = null;
|
|
451
|
+
if (this.disabled)
|
|
385
452
|
return;
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
this.value = parsedDate.toISOString();
|
|
390
|
-
this.selectedDate = parsedDate;
|
|
391
|
-
this.viewDate = new Date(parsedDate);
|
|
392
|
-
this.selectedHour = parsedDate.getHours();
|
|
393
|
-
this.selectedMinute = parsedDate.getMinutes();
|
|
394
|
-
this.changeSubject.next(this);
|
|
395
|
-
}
|
|
453
|
+
this.draftText = e.target.value;
|
|
454
|
+
if (!e.isComposing)
|
|
455
|
+
this.updateValidation(this.currentValidationMessage());
|
|
396
456
|
}
|
|
397
|
-
handleInputBlur(
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
457
|
+
handleInputBlur(_event) {
|
|
458
|
+
if (!this.disabled && this.draftText !== null)
|
|
459
|
+
this.commitManualInput(true);
|
|
460
|
+
}
|
|
461
|
+
commitManualInput(normalizeDraft) {
|
|
462
|
+
const text = this.draftText?.trim() ?? '';
|
|
463
|
+
if (!text) {
|
|
464
|
+
this.commitClear();
|
|
404
465
|
return;
|
|
405
466
|
}
|
|
406
|
-
const
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
this.
|
|
410
|
-
|
|
411
|
-
this.selectedHour = parsedDate.getHours();
|
|
412
|
-
this.selectedMinute = parsedDate.getMinutes();
|
|
413
|
-
this.changeSubject.next(this);
|
|
414
|
-
input.value = this.formatDate(this.value);
|
|
415
|
-
}
|
|
416
|
-
else {
|
|
417
|
-
input.value = this.formatDate(this.value);
|
|
467
|
+
const date = this.parseManualDate(text);
|
|
468
|
+
const message = dateValidationMessage(date, this);
|
|
469
|
+
if (message) {
|
|
470
|
+
this.updateValidation(message);
|
|
471
|
+
return;
|
|
418
472
|
}
|
|
473
|
+
this.commitDate(date, normalizeDraft);
|
|
419
474
|
}
|
|
420
475
|
parseManualDate(input) {
|
|
421
|
-
|
|
476
|
+
const match = /^(\S+)(?:\s+(\d{1,2}):(\d{2})(?:\s+(AM|PM))?)?$/i.exec(input.trim());
|
|
477
|
+
if (!match)
|
|
422
478
|
return null;
|
|
423
|
-
const
|
|
424
|
-
|
|
425
|
-
let timePart = parts[1] || '';
|
|
426
|
-
let parsedDate = null;
|
|
427
|
-
const isoMatch = datePart.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);
|
|
428
|
-
if (isoMatch) {
|
|
429
|
-
const [_, year, month, day] = isoMatch;
|
|
430
|
-
parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
431
|
-
}
|
|
432
|
-
if (!parsedDate) {
|
|
433
|
-
const euMatch = datePart.match(/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/);
|
|
434
|
-
if (euMatch) {
|
|
435
|
-
const [_, day, month, year] = euMatch;
|
|
436
|
-
parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
if (!parsedDate) {
|
|
440
|
-
const usMatch = datePart.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
|
|
441
|
-
if (usMatch) {
|
|
442
|
-
const [_, month, day, year] = usMatch;
|
|
443
|
-
parsedDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
if (!parsedDate || isNaN(parsedDate.getTime()))
|
|
479
|
+
const fields = parseDateFields(match[1]);
|
|
480
|
+
if (!fields)
|
|
447
481
|
return null;
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
}
|
|
482
|
+
let hour = Number(match[2] ?? 0);
|
|
483
|
+
const minute = Number(match[3] ?? 0);
|
|
484
|
+
if (match[4]) {
|
|
485
|
+
if (hour < 1 || hour > 12)
|
|
486
|
+
return null;
|
|
487
|
+
hour = hour % 12 + (match[4].toUpperCase() === 'PM' ? 12 : 0);
|
|
455
488
|
}
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
489
|
+
return createCalendarDate(...fields, match[2] === undefined ? undefined : hour, minute);
|
|
490
|
+
}
|
|
491
|
+
currentValidationMessage() {
|
|
492
|
+
if (this.disabled)
|
|
493
|
+
return '';
|
|
494
|
+
const text = this.draftText?.trim();
|
|
495
|
+
if (this.draftText !== null) {
|
|
496
|
+
if (!text)
|
|
497
|
+
return this.required ? 'Choose a date.' : '';
|
|
498
|
+
return dateValidationMessage(this.parseManualDate(text), this);
|
|
462
499
|
}
|
|
463
|
-
|
|
500
|
+
if (!this.value)
|
|
501
|
+
return this.required ? 'Choose a date.' : '';
|
|
502
|
+
return dateValidationMessage(parseDateValue(this.value), this);
|
|
503
|
+
}
|
|
504
|
+
updateValidation(message) {
|
|
505
|
+
const changed = message !== this.validationText;
|
|
506
|
+
this.validationText = message;
|
|
507
|
+
this.shadowRoot?.querySelector('input')?.setCustomValidity(message);
|
|
508
|
+
if (changed)
|
|
509
|
+
this.dispatchEvent(new CustomEvent('validation-change', {
|
|
510
|
+
detail: { valid: !message, message }, bubbles: true, composed: true,
|
|
511
|
+
}));
|
|
464
512
|
}
|
|
513
|
+
checkValidity() { return !this.currentValidationMessage(); }
|
|
514
|
+
reportValidity() {
|
|
515
|
+
const message = this.currentValidationMessage();
|
|
516
|
+
this.updateValidation(message);
|
|
517
|
+
if (message)
|
|
518
|
+
this.focus();
|
|
519
|
+
return !message;
|
|
520
|
+
}
|
|
521
|
+
reset() { this.setValue(''); }
|
|
465
522
|
formatValueWithTimezone(date) {
|
|
466
523
|
if (!this.enableTimezone)
|
|
467
524
|
return date.toISOString();
|
|
@@ -490,32 +547,12 @@ let DeesInputDatepicker = (() => {
|
|
|
490
547
|
return this.value;
|
|
491
548
|
}
|
|
492
549
|
setValue(value) {
|
|
493
|
-
this.value
|
|
494
|
-
|
|
495
|
-
try {
|
|
496
|
-
const date = new Date(value);
|
|
497
|
-
if (!isNaN(date.getTime())) {
|
|
498
|
-
this.selectedDate = date;
|
|
499
|
-
this.viewDate = new Date(date);
|
|
500
|
-
this.selectedHour = date.getHours();
|
|
501
|
-
this.selectedMinute = date.getMinutes();
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
catch {
|
|
505
|
-
// Invalid date
|
|
506
|
-
}
|
|
507
|
-
}
|
|
550
|
+
this.syncValue(value);
|
|
551
|
+
this.updateValidation(this.currentValidationMessage());
|
|
508
552
|
}
|
|
509
553
|
async disconnectedCallback() {
|
|
554
|
+
this.closePopup();
|
|
510
555
|
await super.disconnectedCallback();
|
|
511
|
-
if (this.popupInstance) {
|
|
512
|
-
this.popupInstance.removeEventListener('date-selected', this.handleDateSelected);
|
|
513
|
-
this.popupInstance.removeEventListener('date-cleared', this.handleDateCleared);
|
|
514
|
-
this.popupInstance.removeEventListener('close-request', this.handleCloseRequest);
|
|
515
|
-
this.popupInstance.removeEventListener('reposition-request', this.handleRepositionRequest);
|
|
516
|
-
this.popupInstance.hide();
|
|
517
|
-
this.popupInstance = null;
|
|
518
|
-
}
|
|
519
556
|
}
|
|
520
557
|
static {
|
|
521
558
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
@@ -524,4 +561,4 @@ let DeesInputDatepicker = (() => {
|
|
|
524
561
|
return DeesInputDatepicker = _classThis;
|
|
525
562
|
})();
|
|
526
563
|
export { DeesInputDatepicker };
|
|
527
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1kYXRlcGlja2VyL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sK0NBQStDLENBQUM7SUFVMUMsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsdUJBQXVCLENBQUM7Ozs7c0JBQ0UsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FBckIsU0FBUSxXQUFrQzs7OztpQ0FJeEUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3NDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7c0NBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzsyQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3NDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7bUNBRzFCLFFBQVEs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
|
|
564
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1kYXRlcGlja2VyL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xILE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTywrQ0FBK0MsQ0FBQztJQVUxQyxtQkFBbUI7NEJBRC9CLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQzs7OztzQkFDRSxhQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQUFyQixTQUFRLFdBQWtDOzs7O2lDQUl4RSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7c0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztzQ0FHM0IsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzJDQUcxQixRQUFRLENBQUMsRUFBRSxJ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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface IDateConstraints {
|
|
2
|
+
minDate: string;
|
|
3
|
+
maxDate: string;
|
|
4
|
+
disabledDates: string[];
|
|
5
|
+
}
|
|
6
|
+
/** Construct a local calendar date without accepting Date's overflow normalization. */
|
|
7
|
+
export declare const createCalendarDate: (year: number, month: number, day: number, hour?: number, minute?: number) => Date | null;
|
|
8
|
+
export declare const parseDateFields: (text: string) => [number, number, number] | null;
|
|
9
|
+
/** Date-only constraints are local calendar days, never UTC-midnight instants. */
|
|
10
|
+
export declare const parseDateValue: (value: string) => Date | null;
|
|
11
|
+
export declare const calendarDayKey: (date: Date) => number;
|
|
12
|
+
/** Shared by manual entry, calendar buttons and the final commit boundary. */
|
|
13
|
+
export declare const dateValidationMessage: (date: Date | null, constraints: IDateConstraints) => string;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** Construct a local calendar date without accepting Date's overflow normalization. */
|
|
2
|
+
export const createCalendarDate = (year, month, day, hour, minute = 0) => {
|
|
3
|
+
const requestedHour = hour ?? 0;
|
|
4
|
+
if (![year, month, day, requestedHour, minute].every(Number.isInteger)
|
|
5
|
+
|| year < 1 || year > 9999 || month < 1 || month > 12 || day < 1 || day > 31
|
|
6
|
+
|| requestedHour < 0 || requestedHour > 23 || minute < 0 || minute > 59)
|
|
7
|
+
return null;
|
|
8
|
+
const date = new Date(0);
|
|
9
|
+
// setFullYear avoids the constructor's special mapping of years 0–99 to 1900–1999.
|
|
10
|
+
date.setFullYear(year, month - 1, day);
|
|
11
|
+
date.setHours(requestedHour, minute, 0, 0);
|
|
12
|
+
// Some zones enter daylight saving at midnight. A date-only entry still names
|
|
13
|
+
// that valid calendar day; an explicitly typed nonexistent time is rejected.
|
|
14
|
+
return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day
|
|
15
|
+
&& (hour === undefined || date.getHours() === hour && date.getMinutes() === minute) ? date : null;
|
|
16
|
+
};
|
|
17
|
+
export const parseDateFields = (text) => {
|
|
18
|
+
let match = /^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(text);
|
|
19
|
+
if (match)
|
|
20
|
+
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
21
|
+
match = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(text);
|
|
22
|
+
if (match)
|
|
23
|
+
return [Number(match[3]), Number(match[2]), Number(match[1])];
|
|
24
|
+
match = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(text);
|
|
25
|
+
return match ? [Number(match[3]), Number(match[1]), Number(match[2])] : null;
|
|
26
|
+
};
|
|
27
|
+
/** Date-only constraints are local calendar days, never UTC-midnight instants. */
|
|
28
|
+
export const parseDateValue = (value) => {
|
|
29
|
+
if (!value)
|
|
30
|
+
return null;
|
|
31
|
+
const fields = parseDateFields(value);
|
|
32
|
+
if (fields)
|
|
33
|
+
return createCalendarDate(...fields);
|
|
34
|
+
const iso = /^(\d{4})-(\d{2})-(\d{2})T/.exec(value);
|
|
35
|
+
if (!iso || !createCalendarDate(Number(iso[1]), Number(iso[2]), Number(iso[3])))
|
|
36
|
+
return null;
|
|
37
|
+
const date = new Date(value);
|
|
38
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
39
|
+
};
|
|
40
|
+
export const calendarDayKey = (date) => date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();
|
|
41
|
+
/** Shared by manual entry, calendar buttons and the final commit boundary. */
|
|
42
|
+
export const dateValidationMessage = (date, constraints) => {
|
|
43
|
+
if (!date || Number.isNaN(date.getTime()) || date.getFullYear() < 1 || date.getFullYear() > 9999)
|
|
44
|
+
return 'Enter a valid date (YYYY-MM-DD, DD.MM.YYYY or MM/DD/YYYY).';
|
|
45
|
+
const key = calendarDayKey(date);
|
|
46
|
+
for (const bound of ['minDate', 'maxDate']) {
|
|
47
|
+
if (!constraints[bound])
|
|
48
|
+
continue;
|
|
49
|
+
const limit = parseDateValue(constraints[bound]);
|
|
50
|
+
if (!limit)
|
|
51
|
+
return `${bound === 'minDate' ? 'Minimum' : 'Maximum'} date is invalid.`;
|
|
52
|
+
if (bound === 'minDate' ? key < calendarDayKey(limit) : key > calendarDayKey(limit)) {
|
|
53
|
+
return `Choose a date on or ${bound === 'minDate' ? 'after' : 'before'} ${constraints[bound]}.`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
for (const value of constraints.disabledDates ?? []) {
|
|
57
|
+
const disabled = parseDateValue(value);
|
|
58
|
+
if (!disabled)
|
|
59
|
+
return 'A disabled date is invalid.';
|
|
60
|
+
if (key === calendarDayKey(disabled))
|
|
61
|
+
return 'This date is unavailable.';
|
|
62
|
+
}
|
|
63
|
+
return '';
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaW5wdXQvZGVlcy1pbnB1dC1kYXRlcGlja2VyL2RhdGUtdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSx1RkFBdUY7QUFDdkYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLEdBQVcsRUFBRSxJQUFhLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBZSxFQUFFO0lBQ3JILE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1dBQ2pFLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRTtXQUN6RSxhQUFhLEdBQUcsQ0FBQyxJQUFJLGFBQWEsR0FBRyxFQUFFLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLEdBQUcsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3ZGLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLG1GQUFtRjtJQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0MsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSxP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
|