@stemy/ngx-utils 19.9.46 → 19.9.49
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/fesm2022/stemy-ngx-utils.mjs +137 -89
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/common-types.d.ts +7 -6
- package/ngx-utils/components/calendar/calendar-inputs.d.ts +1 -2
- package/ngx-utils/components/chips/chips.component.d.ts +5 -5
- package/ngx-utils/components/code-editor/code-editor.component.d.ts +17 -15
- package/ngx-utils/components/date-picker/date-picker.component.d.ts +5 -3
- package/ngx-utils/components/drop-list/drop-list.component.d.ts +3 -3
- package/ngx-utils/components/upload/upload.component.d.ts +3 -3
- package/ngx-utils/components/wysiwyg/wysiwyg.component.d.ts +3 -2
- package/ngx-utils/ngx-utils.imports.d.ts +1 -2
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
|
@@ -8206,7 +8206,6 @@ class CalendarInputs {
|
|
|
8206
8206
|
this.max = input(null);
|
|
8207
8207
|
this.disabledDates = input([]);
|
|
8208
8208
|
this.disabledDays = input([]);
|
|
8209
|
-
this.disabled = model(false);
|
|
8210
8209
|
this.strict = input(true);
|
|
8211
8210
|
this.testId = input("calendar", {
|
|
8212
8211
|
transform: value => String(value || "calendar")
|
|
@@ -8263,7 +8262,7 @@ class CalendarInputs {
|
|
|
8263
8262
|
});
|
|
8264
8263
|
}
|
|
8265
8264
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: CalendarInputs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8266
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.22", type: CalendarInputs, isStandalone: true, selector: "ng-component", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null },
|
|
8265
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.22", type: CalendarInputs, isStandalone: true, selector: "ng-component", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, strict: { classPropertyName: "strict", publicName: "strict", isSignal: true, isRequired: false, transformFunction: null }, testId: { classPropertyName: "testId", publicName: "testId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0, template: ``, isInline: true }); }
|
|
8267
8266
|
}
|
|
8268
8267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: CalendarInputs, decorators: [{
|
|
8269
8268
|
type: Component,
|
|
@@ -8456,23 +8455,43 @@ class CalendarComponent extends CalendarInputs {
|
|
|
8456
8455
|
const val = this.validatedValue();
|
|
8457
8456
|
untracked(() => {
|
|
8458
8457
|
let referenceDate = null;
|
|
8459
|
-
|
|
8460
|
-
if (
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8458
|
+
const isMulti = this.isMultiSelect();
|
|
8459
|
+
if (isMulti) {
|
|
8460
|
+
// For multi-select, always initialize to the current month if not initialized yet.
|
|
8461
|
+
if (!this.isInitialized) {
|
|
8462
|
+
const today = new Date();
|
|
8463
|
+
const todayYear = today.getFullYear();
|
|
8464
|
+
const todayMonth = today.getMonth();
|
|
8465
|
+
// Check if today's month has at least one valid date, or if it is restricted.
|
|
8466
|
+
if (this.isMonthAvailable(todayYear, todayMonth)) {
|
|
8467
|
+
referenceDate = today;
|
|
8468
|
+
}
|
|
8469
|
+
else {
|
|
8470
|
+
const min = this.minDate();
|
|
8471
|
+
const max = this.maxDate();
|
|
8472
|
+
const disabledTimes = this.disabledTimestamps();
|
|
8473
|
+
const disabledDays = this.disabledDays();
|
|
8474
|
+
referenceDate = findClosestValidDate(today, min, max, disabledTimes, disabledDays);
|
|
8475
|
+
}
|
|
8476
|
+
}
|
|
8465
8477
|
}
|
|
8466
|
-
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8478
|
+
else {
|
|
8479
|
+
// For single-select, align the view to the selected date or fall back to the closest valid date.
|
|
8480
|
+
if (val instanceof Date) {
|
|
8481
|
+
referenceDate = val;
|
|
8482
|
+
}
|
|
8483
|
+
else if (Array.isArray(val) && val.length > 0) {
|
|
8484
|
+
referenceDate = new Date(Math.max(...val.map(d => d.getTime())));
|
|
8485
|
+
}
|
|
8486
|
+
if (!referenceDate || isNaN(referenceDate.getTime())) {
|
|
8487
|
+
const min = this.minDate();
|
|
8488
|
+
const max = this.maxDate();
|
|
8489
|
+
const disabledTimes = this.disabledTimestamps();
|
|
8490
|
+
const disabledDays = this.disabledDays();
|
|
8491
|
+
referenceDate = findClosestValidDate(new Date(), min, max, disabledTimes, disabledDays);
|
|
8492
|
+
}
|
|
8474
8493
|
}
|
|
8475
|
-
//
|
|
8494
|
+
// Update the view tracking states cleanly on initialization or when single-select value changes.
|
|
8476
8495
|
if (referenceDate && !isNaN(referenceDate.getTime())) {
|
|
8477
8496
|
this.currentMonth.set(referenceDate.getMonth());
|
|
8478
8497
|
this.currentYear.set(referenceDate.getFullYear());
|
|
@@ -8625,6 +8644,13 @@ class CalendarComponent extends CalendarInputs {
|
|
|
8625
8644
|
}
|
|
8626
8645
|
this.value.set(Array.from(updatedSelectionMap.values()));
|
|
8627
8646
|
}
|
|
8647
|
+
// Switch month/year if we chose a filler day
|
|
8648
|
+
const dragMonth = currentDrag.getMonth();
|
|
8649
|
+
const dragYear = currentDrag.getFullYear();
|
|
8650
|
+
if (dragMonth !== this.currentMonth() || dragYear !== this.currentYear()) {
|
|
8651
|
+
this.currentMonth.set(dragMonth);
|
|
8652
|
+
this.currentYear.set(dragYear);
|
|
8653
|
+
}
|
|
8628
8654
|
}
|
|
8629
8655
|
});
|
|
8630
8656
|
this.isDragging.set(false);
|
|
@@ -8766,7 +8792,14 @@ class ChipsComponent {
|
|
|
8766
8792
|
return true;
|
|
8767
8793
|
}
|
|
8768
8794
|
onBlur(ev) {
|
|
8769
|
-
|
|
8795
|
+
const relatedTarget = ev.relatedTarget;
|
|
8796
|
+
// If the focus is moving to an element inside the dropdown (like an option button),
|
|
8797
|
+
// we do not want to trigger the blur commit logic.
|
|
8798
|
+
const contentElement = this.chipDropdown?.contentElement;
|
|
8799
|
+
const insideDropdown = relatedTarget
|
|
8800
|
+
&& contentElement instanceof HTMLElement
|
|
8801
|
+
&& contentElement.contains(relatedTarget);
|
|
8802
|
+
if (insideDropdown)
|
|
8770
8803
|
return;
|
|
8771
8804
|
const input = ev.target;
|
|
8772
8805
|
this.enterOption(input.value);
|
|
@@ -8856,13 +8889,13 @@ class ChipsComponent {
|
|
|
8856
8889
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: ChipsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8857
8890
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.22", type: ChipsComponent, isStandalone: false, selector: "chips", inputs: { testId: "testId", value: "value", multiple: "multiple", disabled: "disabled", type: "type", min: "min", max: "max", minLength: "minLength", maxLength: "maxLength", step: "step", placeholder: "placeholder", unique: "unique", strict: "strict", options: "options" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
8858
8891
|
{ provide: NG_VALUE_ACCESSOR, useExisting: ChipsComponent, multi: true }
|
|
8859
|
-
], viewQueries: [{ propertyName: "chipDropdown", first: true, predicate: ["chipDropdown"], descendants: true }, { propertyName: "chipButtons", first: true, predicate: ["chipButtons"], descendants: true }, { propertyName: "chipInput", first: true, predicate: ["chipInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div dd
|
|
8892
|
+
], viewQueries: [{ propertyName: "chipDropdown", first: true, predicate: ["chipDropdown"], descendants: true }, { propertyName: "chipButtons", first: true, predicate: ["chipButtons"], descendants: true }, { propertyName: "chipInput", first: true, predicate: ["chipInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div dd attachTo=\"root\" [closeInside]=\"false\" [autoPlacement]=\"autoPlacement\" [ngClass]=\"{disabled: disabled}\"\r\n class=\"chips\" #chipDropdown=\"dropdown\">\r\n <input class=\"chips-input\" dropdownToggle [switch]=\"false\" [attr.data-testid]=\"testId + '-input'\"\r\n [type]=\"type == 'number' ? 'number': 'text'\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [disabled]=\"disabled\"\r\n [placeholder]=\"valueOptions.length == 0 && placeholder | translate\" [ngStyle]=\"inputStyles\"\r\n (blur)=\"onBlur($event)\" (keyup)=\"onInput($event)\" #chipInput />\r\n <div class=\"chips-buttons\" #chipButtons [ngClass]=\"{disabled: disabled}\" (resize)=\"onResize()\">\r\n <ng-container *ngFor=\"let item of valueOptions; let ix = index; trackBy:trackBy\">\r\n <a class=\"chips-button\" [ngClass]=\"'chips-' + statuses[ix]\" (dblclick)=\"removeItem($event, ix)\">\r\n @if (item.picture) {\r\n <img [src]=\"item.picture | safe:'url'\" class=\"chip-picture\" referrerpolicy=\"no-referrer\"\r\n [attr.alt]=\"item.label\">\r\n\r\n }\r\n <span class=\"chips-label\" [attr.data-testid]=\"testId + '-label-' + ix\">{{ item.label }} </span>\r\n <close-btn class=\"chips-remove\" [attr.data-testid]=\"testId + '-delete-' + ix\"\r\n (click)=\"removeItem($event, ix)\" *ngIf=\"!disabled\"></close-btn>\r\n </a>\r\n </ng-container>\r\n </div>\r\n @if (options) {\r\n <div class=\"chips-dropdown\" *dropdownContent>\r\n <button [ngClass]=\"option.classes\" [disabled]=\"option.disabled\" (click)=\"enterOption(option.value)\"\r\n *ngFor=\"let option of filteredOptions\">\r\n <div class=\"select-option\">\r\n @if (option?.picture) {\r\n <img [src]=\"option.picture | safe:'url'\" class=\"select-option-picture\" referrerpolicy=\"no-referrer\"\r\n [attr.alt]=\"option.label\">\r\n }\r\n <div class=\"select-option-label\">\r\n {{ option.label }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n }\r\n</div>", styles: [".chips{--chips-border-size: var(--border-size, 1px);--chips-border-radius: var(--border-radius, 5px);--chips-top-border-radius: var(--chips-border-radius) var(--chips-border-radius) 0 0;--chips-bottom-border-radius: 0 0 var(--chips-border-radius) var(--chips-border-radius);--chips-bg-color: var(--bg-color, #ffffff);--chips-border-color: var(--border-color, #ced4da);--chips-highlight-color: var(--highlight-color, var(--primary-color, #888888));--chips-highlight-text-color: var(--highlight-text-color, #ffffff);--chips-text-color: var(--text-color, #151515);--chips-text-size: var(--text-size, 16px);--chips-padding-vertical: 6px;--chips-padding-horizontal: 12px;--chips-padding: var(--chips-padding-vertical) var(--chips-padding-horizontal);--chips-btn-padding: 12px;--chips-btn-gap: calc(var(--chips-btn-padding) / 2);--chips-btn-color: white;--chips-btn-valid-color: rgba(200, 255, 200, .7);--chips-btn-invalid-color: rgba(255, 200, 200, .7);position:relative;margin:5px 0;font-size:var(--chips-text-size);padding:var(--chips-padding);background:var(--chips-bg-color);color:var(--chips-text-color);border:var(--chips-border-size) solid var(--chips-border-color);border-radius:var(--chips-border-radius)}.chips *{box-sizing:border-box}.chips .chips-input{background:var(--chips-bg-color);padding:var(--chips-padding);font-size:var(--chips-text-size);outline:none;border:none;width:100%;-webkit-user-select:none;user-select:none;font-weight:400}.chips .chips-buttons{position:absolute;top:var(--chips-padding-vertical);left:var(--chips-padding-horizontal);max-width:calc(100% - var(--chips-padding-horizontal) * 2);display:flex;gap:5px;overflow:auto;border-radius:var(--chips-border-radius)}.chips .chips-button{background:var(--chipd-btn-color);color:var(--chips-text-color);border:var(--chips-border-size) solid rgba(0,0,0,.2);border-radius:var(--chips-border-radius);padding:var(--chips-padding-vertical) var(--chips-btn-gap) var(--chips-padding-vertical) var(--chips-btn-padding);-webkit-user-select:none;user-select:none;font-weight:400;outline:none;display:flex;gap:var(--chips-btn-gap);justify-content:center;align-items:center;line-height:1.2rem;text-decoration:none}.chips .chips-button.chips-valid{--chipd-btn-color: var(--chips-btn-valid-color) }.chips .chips-button.chips-invalid{--chipd-btn-color: var(--chips-btn-invalid-color) }.chips img.chip-picture{width:28px;height:28px;object-fit:cover}.chips .chips-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chips.disabled{opacity:.75}.chips.disabled .chips-button{padding-right:var(--chips-btn-padding)}.chips-dropdown:not(:empty){position:relative;z-index:1;width:var(--toggle-width, 0);display:flex;flex-direction:column;margin:-3px 0;padding:0;list-style:none;border:var(--chips-border-size) solid var(--chips-border-color);background:var(--chips-bg-color);border-radius:var(--chips-bottom-border-radius);overflow:hidden}.chips-dropdown:not(:empty) *{box-sizing:border-box}.chips-dropdown:not(:empty) button{border:none;background:none;cursor:pointer;padding:6px 12px;-webkit-user-select:none;user-select:none;text-align:left}.chips-dropdown:not(:empty) button:hover,.chips-dropdown:not(:empty) button.active{background-color:var(--chips-highlight-color);color:var(--chips-highlight-text-color)}.chips-dropdown:not(:empty) button:hover a,.chips-dropdown:not(:empty) button.active a{color:var(--chips-highlight-text-color)}.chips-dropdown:not(:empty) .select-option{display:flex;gap:8px;align-items:center;justify-content:center}.chips-dropdown:not(:empty) .select-option .select-option-picture{width:32px;height:32px;object-fit:cover}.chips-dropdown:not(:empty) .select-option .select-option-label{flex:1}.dropdown-placement-top .chips-dropdown{border-radius:var(--chips-top-border-radius)}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: DropdownDirective, selector: "[dd],[drop-down]", inputs: ["closeInside", "attachTo", "boundary", "placement", "autoPlacement", "mobileViewUnder", "fixed", "keyboardHandler", "isDisabled"], outputs: ["onShown", "onHidden", "onKeyboard"], exportAs: ["dropdown"] }, { kind: "directive", type: DropdownContentDirective, selector: "[dropdownContent]", exportAs: ["dropdown-content"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[dropdownToggle]", inputs: ["beforeOpen", "switch"], exportAs: ["dropdown-toggle"] }, { kind: "component", type: CloseBtnComponent, selector: "close-btn" }, { kind: "pipe", type: SafeHtmlPipe, name: "safe" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
8860
8893
|
}
|
|
8861
8894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: ChipsComponent, decorators: [{
|
|
8862
8895
|
type: Component,
|
|
8863
8896
|
args: [{ standalone: false, encapsulation: ViewEncapsulation.None, selector: "chips", providers: [
|
|
8864
8897
|
{ provide: NG_VALUE_ACCESSOR, useExisting: ChipsComponent, multi: true }
|
|
8865
|
-
], template: "<div dd
|
|
8898
|
+
], template: "<div dd attachTo=\"root\" [closeInside]=\"false\" [autoPlacement]=\"autoPlacement\" [ngClass]=\"{disabled: disabled}\"\r\n class=\"chips\" #chipDropdown=\"dropdown\">\r\n <input class=\"chips-input\" dropdownToggle [switch]=\"false\" [attr.data-testid]=\"testId + '-input'\"\r\n [type]=\"type == 'number' ? 'number': 'text'\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [disabled]=\"disabled\"\r\n [placeholder]=\"valueOptions.length == 0 && placeholder | translate\" [ngStyle]=\"inputStyles\"\r\n (blur)=\"onBlur($event)\" (keyup)=\"onInput($event)\" #chipInput />\r\n <div class=\"chips-buttons\" #chipButtons [ngClass]=\"{disabled: disabled}\" (resize)=\"onResize()\">\r\n <ng-container *ngFor=\"let item of valueOptions; let ix = index; trackBy:trackBy\">\r\n <a class=\"chips-button\" [ngClass]=\"'chips-' + statuses[ix]\" (dblclick)=\"removeItem($event, ix)\">\r\n @if (item.picture) {\r\n <img [src]=\"item.picture | safe:'url'\" class=\"chip-picture\" referrerpolicy=\"no-referrer\"\r\n [attr.alt]=\"item.label\">\r\n\r\n }\r\n <span class=\"chips-label\" [attr.data-testid]=\"testId + '-label-' + ix\">{{ item.label }} </span>\r\n <close-btn class=\"chips-remove\" [attr.data-testid]=\"testId + '-delete-' + ix\"\r\n (click)=\"removeItem($event, ix)\" *ngIf=\"!disabled\"></close-btn>\r\n </a>\r\n </ng-container>\r\n </div>\r\n @if (options) {\r\n <div class=\"chips-dropdown\" *dropdownContent>\r\n <button [ngClass]=\"option.classes\" [disabled]=\"option.disabled\" (click)=\"enterOption(option.value)\"\r\n *ngFor=\"let option of filteredOptions\">\r\n <div class=\"select-option\">\r\n @if (option?.picture) {\r\n <img [src]=\"option.picture | safe:'url'\" class=\"select-option-picture\" referrerpolicy=\"no-referrer\"\r\n [attr.alt]=\"option.label\">\r\n }\r\n <div class=\"select-option-label\">\r\n {{ option.label }}\r\n </div>\r\n </div>\r\n </button>\r\n </div>\r\n }\r\n</div>", styles: [".chips{--chips-border-size: var(--border-size, 1px);--chips-border-radius: var(--border-radius, 5px);--chips-top-border-radius: var(--chips-border-radius) var(--chips-border-radius) 0 0;--chips-bottom-border-radius: 0 0 var(--chips-border-radius) var(--chips-border-radius);--chips-bg-color: var(--bg-color, #ffffff);--chips-border-color: var(--border-color, #ced4da);--chips-highlight-color: var(--highlight-color, var(--primary-color, #888888));--chips-highlight-text-color: var(--highlight-text-color, #ffffff);--chips-text-color: var(--text-color, #151515);--chips-text-size: var(--text-size, 16px);--chips-padding-vertical: 6px;--chips-padding-horizontal: 12px;--chips-padding: var(--chips-padding-vertical) var(--chips-padding-horizontal);--chips-btn-padding: 12px;--chips-btn-gap: calc(var(--chips-btn-padding) / 2);--chips-btn-color: white;--chips-btn-valid-color: rgba(200, 255, 200, .7);--chips-btn-invalid-color: rgba(255, 200, 200, .7);position:relative;margin:5px 0;font-size:var(--chips-text-size);padding:var(--chips-padding);background:var(--chips-bg-color);color:var(--chips-text-color);border:var(--chips-border-size) solid var(--chips-border-color);border-radius:var(--chips-border-radius)}.chips *{box-sizing:border-box}.chips .chips-input{background:var(--chips-bg-color);padding:var(--chips-padding);font-size:var(--chips-text-size);outline:none;border:none;width:100%;-webkit-user-select:none;user-select:none;font-weight:400}.chips .chips-buttons{position:absolute;top:var(--chips-padding-vertical);left:var(--chips-padding-horizontal);max-width:calc(100% - var(--chips-padding-horizontal) * 2);display:flex;gap:5px;overflow:auto;border-radius:var(--chips-border-radius)}.chips .chips-button{background:var(--chipd-btn-color);color:var(--chips-text-color);border:var(--chips-border-size) solid rgba(0,0,0,.2);border-radius:var(--chips-border-radius);padding:var(--chips-padding-vertical) var(--chips-btn-gap) var(--chips-padding-vertical) var(--chips-btn-padding);-webkit-user-select:none;user-select:none;font-weight:400;outline:none;display:flex;gap:var(--chips-btn-gap);justify-content:center;align-items:center;line-height:1.2rem;text-decoration:none}.chips .chips-button.chips-valid{--chipd-btn-color: var(--chips-btn-valid-color) }.chips .chips-button.chips-invalid{--chipd-btn-color: var(--chips-btn-invalid-color) }.chips img.chip-picture{width:28px;height:28px;object-fit:cover}.chips .chips-label{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chips.disabled{opacity:.75}.chips.disabled .chips-button{padding-right:var(--chips-btn-padding)}.chips-dropdown:not(:empty){position:relative;z-index:1;width:var(--toggle-width, 0);display:flex;flex-direction:column;margin:-3px 0;padding:0;list-style:none;border:var(--chips-border-size) solid var(--chips-border-color);background:var(--chips-bg-color);border-radius:var(--chips-bottom-border-radius);overflow:hidden}.chips-dropdown:not(:empty) *{box-sizing:border-box}.chips-dropdown:not(:empty) button{border:none;background:none;cursor:pointer;padding:6px 12px;-webkit-user-select:none;user-select:none;text-align:left}.chips-dropdown:not(:empty) button:hover,.chips-dropdown:not(:empty) button.active{background-color:var(--chips-highlight-color);color:var(--chips-highlight-text-color)}.chips-dropdown:not(:empty) button:hover a,.chips-dropdown:not(:empty) button.active a{color:var(--chips-highlight-text-color)}.chips-dropdown:not(:empty) .select-option{display:flex;gap:8px;align-items:center;justify-content:center}.chips-dropdown:not(:empty) .select-option .select-option-picture{width:32px;height:32px;object-fit:cover}.chips-dropdown:not(:empty) .select-option .select-option-label{flex:1}.dropdown-placement-top .chips-dropdown{border-radius:var(--chips-top-border-radius)}\n"] }]
|
|
8866
8899
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { testId: [{
|
|
8867
8900
|
type: Input
|
|
8868
8901
|
}], value: [{
|
|
@@ -8912,30 +8945,73 @@ class CodeEditorComponent {
|
|
|
8912
8945
|
get rootNode() {
|
|
8913
8946
|
return this.root;
|
|
8914
8947
|
}
|
|
8915
|
-
constructor(
|
|
8916
|
-
this.
|
|
8917
|
-
this.
|
|
8918
|
-
this.
|
|
8919
|
-
this.
|
|
8920
|
-
this.
|
|
8921
|
-
|
|
8922
|
-
this.
|
|
8923
|
-
};
|
|
8948
|
+
constructor() {
|
|
8949
|
+
this.value = model("");
|
|
8950
|
+
this.lang = input("json");
|
|
8951
|
+
this.disabled = model(false);
|
|
8952
|
+
this.onChange = () => { };
|
|
8953
|
+
this.onTouched = () => { };
|
|
8954
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
8955
|
+
this.element = inject((ElementRef));
|
|
8924
8956
|
this.extensions = {};
|
|
8957
|
+
this.editor = signal(null);
|
|
8958
|
+
this.editorElem = viewChild("editor");
|
|
8959
|
+
effect(() => {
|
|
8960
|
+
const editor = this.editor();
|
|
8961
|
+
if (!editor)
|
|
8962
|
+
return;
|
|
8963
|
+
const value = this.value() || "";
|
|
8964
|
+
const disabled = this.disabled();
|
|
8965
|
+
const expectedStr = !isString(value) ? JSON.stringify(value, null, 4) : value;
|
|
8966
|
+
const currentStr = editor.state.doc.toString();
|
|
8967
|
+
const langExtension = this.getLangExtension();
|
|
8968
|
+
const { EditorView } = CM["@codemirror/view"];
|
|
8969
|
+
const dispatchData = {
|
|
8970
|
+
effects: [
|
|
8971
|
+
this.langCompartment.reconfigure(langExtension),
|
|
8972
|
+
this.editableCompartment.reconfigure(EditorView.editable.of(!disabled))
|
|
8973
|
+
]
|
|
8974
|
+
};
|
|
8975
|
+
if (currentStr !== expectedStr) {
|
|
8976
|
+
dispatchData.changes = {
|
|
8977
|
+
from: 0,
|
|
8978
|
+
to: editor.state.doc.length,
|
|
8979
|
+
insert: expectedStr
|
|
8980
|
+
};
|
|
8981
|
+
}
|
|
8982
|
+
editor.dispatch(dispatchData);
|
|
8983
|
+
});
|
|
8925
8984
|
}
|
|
8926
8985
|
getLangExtension() {
|
|
8927
|
-
|
|
8928
|
-
|
|
8929
|
-
const
|
|
8930
|
-
|
|
8986
|
+
const langVal = this.lang();
|
|
8987
|
+
if (!this.extensions[langVal]) {
|
|
8988
|
+
const lang = CM[`@codemirror/lang-${langVal || "json"}`];
|
|
8989
|
+
const ext = lang[langVal];
|
|
8990
|
+
this.extensions[langVal] = ext();
|
|
8931
8991
|
}
|
|
8932
|
-
return this.extensions[
|
|
8992
|
+
return this.extensions[langVal];
|
|
8933
8993
|
}
|
|
8934
8994
|
ngAfterViewInit() {
|
|
8935
8995
|
Promise.all([
|
|
8936
8996
|
LoaderUtils.loadScript("https://codemirror.net/codemirror.js", true),
|
|
8937
8997
|
LoaderUtils.loadScript("https://cdn.jsdelivr.net/npm/jsonlint", true),
|
|
8938
|
-
]).then(() =>
|
|
8998
|
+
]).then(() => this.initEditor());
|
|
8999
|
+
}
|
|
9000
|
+
registerOnChange(fn) {
|
|
9001
|
+
this.onChange = fn;
|
|
9002
|
+
}
|
|
9003
|
+
registerOnTouched(fn) {
|
|
9004
|
+
this.onTouched = fn;
|
|
9005
|
+
}
|
|
9006
|
+
writeValue(value) {
|
|
9007
|
+
this.value.set(value);
|
|
9008
|
+
this.cdr.markForCheck();
|
|
9009
|
+
}
|
|
9010
|
+
setDisabledState(isDisabled) {
|
|
9011
|
+
this.disabled.set(isDisabled);
|
|
9012
|
+
}
|
|
9013
|
+
initEditor() {
|
|
9014
|
+
untracked(() => {
|
|
8939
9015
|
const { basicSetup } = CM["codemirror"];
|
|
8940
9016
|
const { Compartment } = CM["@codemirror/state"];
|
|
8941
9017
|
const { EditorView } = CM["@codemirror/view"];
|
|
@@ -8944,7 +9020,7 @@ class CodeEditorComponent {
|
|
|
8944
9020
|
const jsonLinter = linter((view) => {
|
|
8945
9021
|
const diagnostics = [];
|
|
8946
9022
|
const value = view.state.doc.toString();
|
|
8947
|
-
if (!value.trim() || this.lang !== "json")
|
|
9023
|
+
if (!value.trim() || this.lang() !== "json")
|
|
8948
9024
|
return diagnostics;
|
|
8949
9025
|
try {
|
|
8950
9026
|
jsonlint.parse(value);
|
|
@@ -8967,87 +9043,59 @@ class CodeEditorComponent {
|
|
|
8967
9043
|
if (update.docChanged) {
|
|
8968
9044
|
// Grab the full string payload of the document
|
|
8969
9045
|
const value = update.state.doc.toString();
|
|
8970
|
-
|
|
9046
|
+
const lang = untracked(() => this.lang());
|
|
9047
|
+
let parsedValue;
|
|
9048
|
+
if (lang === "json") {
|
|
8971
9049
|
try {
|
|
8972
|
-
|
|
9050
|
+
parsedValue = JSON.parse(value);
|
|
8973
9051
|
}
|
|
8974
9052
|
catch (e) {
|
|
8975
9053
|
return null;
|
|
8976
9054
|
}
|
|
8977
9055
|
}
|
|
8978
9056
|
else {
|
|
8979
|
-
|
|
9057
|
+
parsedValue = value;
|
|
8980
9058
|
}
|
|
8981
|
-
this.
|
|
8982
|
-
this.
|
|
9059
|
+
this.value.set(parsedValue);
|
|
9060
|
+
this.onChange(parsedValue);
|
|
9061
|
+
this.onTouched(parsedValue);
|
|
8983
9062
|
}
|
|
8984
9063
|
});
|
|
8985
9064
|
// Initialize editor on an HTMLElement
|
|
8986
|
-
const value = this.value || "";
|
|
9065
|
+
const value = this.value() || "";
|
|
9066
|
+
const disabled = this.disabled();
|
|
8987
9067
|
this.langCompartment = new Compartment();
|
|
8988
|
-
this.
|
|
9068
|
+
this.editableCompartment = new Compartment();
|
|
9069
|
+
this.editor.set(new EditorView({
|
|
8989
9070
|
doc: !isString(value) ? JSON.stringify(value, null, 4) : value,
|
|
8990
9071
|
extensions: [
|
|
8991
9072
|
basicSetup,
|
|
8992
9073
|
this.langCompartment.of(langExtension),
|
|
9074
|
+
this.editableCompartment.of(EditorView.editable.of(!disabled)),
|
|
9075
|
+
EditorView.lineWrapping,
|
|
8993
9076
|
jsonLinter,
|
|
8994
9077
|
changeHandler
|
|
8995
9078
|
],
|
|
8996
|
-
parent: this.editorElem
|
|
8997
|
-
});
|
|
8998
|
-
});
|
|
8999
|
-
}
|
|
9000
|
-
ngOnChanges() {
|
|
9001
|
-
if (!this.editor)
|
|
9002
|
-
return;
|
|
9003
|
-
const value = this.value || "";
|
|
9004
|
-
this.lang = EDITOR_TYPES.includes(this.lang) ? this.lang : "json";
|
|
9005
|
-
this.editor.dispatch({
|
|
9006
|
-
effects: this.langCompartment.reconfigure(this.getLangExtension()),
|
|
9007
|
-
changes: {
|
|
9008
|
-
from: 0,
|
|
9009
|
-
to: this.editor.state.doc.length,
|
|
9010
|
-
insert: !isString(value) ? JSON.stringify(value, null, 4) : value
|
|
9011
|
-
}
|
|
9079
|
+
parent: this.editorElem()?.nativeElement
|
|
9080
|
+
}));
|
|
9012
9081
|
});
|
|
9013
9082
|
}
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
}
|
|
9017
|
-
registerOnTouched(fn) {
|
|
9018
|
-
this.onTouched = fn;
|
|
9019
|
-
}
|
|
9020
|
-
writeValue(value) {
|
|
9021
|
-
this.value = value;
|
|
9022
|
-
this.cdr.markForCheck();
|
|
9023
|
-
this.ngOnChanges();
|
|
9024
|
-
}
|
|
9025
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9026
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.22", type: CodeEditorComponent, isStandalone: false, selector: "code-editor", inputs: { value: "value", lang: "lang", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
9083
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: CodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9084
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.22", type: CodeEditorComponent, isStandalone: false, selector: "code-editor", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", disabled: "disabledChange" }, providers: [
|
|
9027
9085
|
{ provide: NG_VALUE_ACCESSOR, useExisting: CodeEditorComponent, multi: true }
|
|
9028
|
-
], viewQueries: [{ propertyName: "editorElem", first: true, predicate: ["editor"], descendants: true
|
|
9086
|
+
], viewQueries: [{ propertyName: "editorElem", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"code-editor\" [ngClass]=\"{disabled: disabled()}\">\r\n <div #editor></div>\r\n</div>\r\n", styles: [".code-editor>div{margin:10px 0}.code-editor>div .cm-editor{outline:none}.code-editor>div .cm-scroller{min-height:150px;max-height:345px;background:#fefefe;border:1px solid #ddd}.code-editor.disabled .cm-content{pointer-events:none;-webkit-user-select:none;user-select:none}.code-editor.disabled .cm-content .cm-activeLine{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
9029
9087
|
}
|
|
9030
9088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: CodeEditorComponent, decorators: [{
|
|
9031
9089
|
type: Component,
|
|
9032
9090
|
args: [{ standalone: false, selector: "code-editor", encapsulation: ViewEncapsulation.None, providers: [
|
|
9033
9091
|
{ provide: NG_VALUE_ACCESSOR, useExisting: CodeEditorComponent, multi: true }
|
|
9034
|
-
], template: "<div class=\"code-editor\" [ngClass]=\"{disabled: disabled}\">\r\n <div #editor></div>\r\n</div>\r\n", styles: [".code-editor>div{margin:10px 0}.code-editor>div .cm-editor{outline:none}.code-editor>div .cm-scroller{min-height:150px;max-height:345px;background:#fefefe;border:1px solid #ddd}\n"] }]
|
|
9035
|
-
}], ctorParameters: () => [
|
|
9036
|
-
type: Input
|
|
9037
|
-
}], lang: [{
|
|
9038
|
-
type: Input
|
|
9039
|
-
}], disabled: [{
|
|
9040
|
-
type: Input
|
|
9041
|
-
}], valueChange: [{
|
|
9042
|
-
type: Output
|
|
9043
|
-
}], editorElem: [{
|
|
9044
|
-
type: ViewChild,
|
|
9045
|
-
args: ["editor"]
|
|
9046
|
-
}] } });
|
|
9092
|
+
], template: "<div class=\"code-editor\" [ngClass]=\"{disabled: disabled()}\">\r\n <div #editor></div>\r\n</div>\r\n", styles: [".code-editor>div{margin:10px 0}.code-editor>div .cm-editor{outline:none}.code-editor>div .cm-scroller{min-height:150px;max-height:345px;background:#fefefe;border:1px solid #ddd}.code-editor.disabled .cm-content{pointer-events:none;-webkit-user-select:none;user-select:none}.code-editor.disabled .cm-content .cm-activeLine{background-color:transparent}\n"] }]
|
|
9093
|
+
}], ctorParameters: () => [] });
|
|
9047
9094
|
|
|
9048
9095
|
class DatePickerComponent extends CalendarInputs {
|
|
9049
9096
|
constructor() {
|
|
9050
9097
|
super(...arguments);
|
|
9098
|
+
this.disabled = model(false);
|
|
9051
9099
|
this.autoPlacement = {
|
|
9052
9100
|
autoAlignment: true,
|
|
9053
9101
|
allowedPlacements: ["top-end", "bottom-end"]
|
|
@@ -9117,15 +9165,15 @@ class DatePickerComponent extends CalendarInputs {
|
|
|
9117
9165
|
this.onTouched();
|
|
9118
9166
|
}
|
|
9119
9167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
9120
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.22", type: DatePickerComponent, isStandalone: false, selector: "date-picker", providers: [
|
|
9168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.22", type: DatePickerComponent, isStandalone: false, selector: "date-picker", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange" }, providers: [
|
|
9121
9169
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DatePickerComponent, multi: true }
|
|
9122
|
-
], viewQueries: [{ propertyName: "pickerDropdown", first: true, predicate: ["pickerDropdown"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let id = testId();\r\n<div class=\"date-picker\"\r\n drop-down\r\n [closeInside]=\"false\"\r\n [autoPlacement]=\"autoPlacement\"\r\n [ngClass]=\"{disabled:
|
|
9170
|
+
], viewQueries: [{ propertyName: "pickerDropdown", first: true, predicate: ["pickerDropdown"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let id = testId();\r\n@let isDisabled = disabled();\r\n<div class=\"date-picker\"\r\n drop-down\r\n [closeInside]=\"false\"\r\n [autoPlacement]=\"autoPlacement\"\r\n [ngClass]=\"{disabled: isDisabled}\"\r\n #pickerDropdown=\"dropdown\">\r\n <input class=\"date-picker-input\"\r\n [attr.data-testid]=\"id\"\r\n [disabled]=\"isDisabled\"\r\n [type]=\"strict() ? 'date' : 'text'\"\r\n [value]=\"inputValue()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur($event)\"/>\r\n @if (!isDisabled) {\r\n <div class=\"date-picker-buttons\">\r\n @if (value()) {\r\n <btn [attr.data-testid]=\"id + '-clear'\"\r\n type=\"transparent\"\r\n icon=\"close\" (click)=\"clear()\"></btn>\r\n }\r\n <btn [attr.data-testid]=\"id + '-open-picker'\"\r\n type=\"transparent\"\r\n icon=\"calendar-days\" dropdownToggle></btn>\r\n </div>\r\n }\r\n <div *dropdownContent>\r\n <calendar [testId]=\"id + '-picker'\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [disabledDays]=\"disabledDays()\"\r\n [disabled]=\"disabled()\"\r\n [strict]=\"strict()\"\r\n [value]=\"value()\"\r\n (valueChange)=\"onPickerChange($event)\"></calendar>\r\n </div>\r\n</div>\r\n", styles: [".date-picker{--date-picker-border-size: var(--border-size, 1px);--date-picker-border-radius: var(--border-radius, 5px);--date-picker-bg-color: var(--bg-color, #ffffff);--date-picker-border-color: var(--border-color, #ced4da);--date-picker-highlight-color: var(--highlight-color, var(--primary-color, #888888));--date-picker-highlight-text-color: var(--highlight-text-color, #ffffff);--date-picker-text-color: var(--text-color, #151515);--date-picker-text-size: var(--text-size, 16px);--date-picker-padding-vertical: 6px;--date-picker-padding-horizontal: 12px;--date-picker-padding: var(--date-picker-padding-vertical) var(--date-picker-padding-horizontal);--date-picker-btn-padding: 12px;--date-picker-btn-gap: calc(var(--date-picker-btn-padding) / 2);--date-picker-btn-color: white;--date-picker-btn-valid-color: rgba(200, 255, 200, .7);--date-picker-btn-invalid-color: rgba(255, 200, 200, .7);position:relative;margin:5px 0;font-size:var(--date-picker-text-size);padding:var(--date-picker-padding);background:var(--date-picker-bg-color);color:var(--date-picker-text-color);border:var(--date-picker-border-size) solid var(--date-picker-border-color);border-radius:var(--date-picker-border-radius)}.date-picker *{box-sizing:border-box}.date-picker .date-picker-input{background:var(--date-picker-bg-color);font-size:var(--date-picker-text-size);outline:none;border:none;width:100%;-webkit-user-select:none;user-select:none;font-weight:400}.date-picker .date-picker-input::-webkit-calendar-picker-indicator{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-input::-webkit-clear-button{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-input::-webkit-inner-spin-button{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-buttons{display:flex;justify-content:flex-end;position:absolute;aspect-ratio:2/1;top:0;bottom:0;right:0;overflow:hidden}.date-picker .date-picker-buttons>btn{max-width:50%}.date-picker.disabled{opacity:.75}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: DropdownDirective, selector: "[dd],[drop-down]", inputs: ["closeInside", "attachTo", "boundary", "placement", "autoPlacement", "mobileViewUnder", "fixed", "keyboardHandler", "isDisabled"], outputs: ["onShown", "onHidden", "onKeyboard"], exportAs: ["dropdown"] }, { kind: "directive", type: DropdownContentDirective, selector: "[dropdownContent]", exportAs: ["dropdown-content"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[dropdownToggle]", inputs: ["beforeOpen", "switch"], exportAs: ["dropdown-toggle"] }, { kind: "component", type: BtnComponent, selector: "btn", inputs: ["label", "tooltip", "icon", "disabled", "path", "type", "size"] }, { kind: "component", type: CalendarComponent, selector: "calendar" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
9123
9171
|
}
|
|
9124
9172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.22", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
9125
9173
|
type: Component,
|
|
9126
9174
|
args: [{ standalone: false, encapsulation: ViewEncapsulation.None, selector: "date-picker", providers: [
|
|
9127
9175
|
{ provide: NG_VALUE_ACCESSOR, useExisting: DatePickerComponent, multi: true }
|
|
9128
|
-
], template: "@let id = testId();\r\n<div class=\"date-picker\"\r\n drop-down\r\n [closeInside]=\"false\"\r\n [autoPlacement]=\"autoPlacement\"\r\n [ngClass]=\"{disabled:
|
|
9176
|
+
], template: "@let id = testId();\r\n@let isDisabled = disabled();\r\n<div class=\"date-picker\"\r\n drop-down\r\n [closeInside]=\"false\"\r\n [autoPlacement]=\"autoPlacement\"\r\n [ngClass]=\"{disabled: isDisabled}\"\r\n #pickerDropdown=\"dropdown\">\r\n <input class=\"date-picker-input\"\r\n [attr.data-testid]=\"id\"\r\n [disabled]=\"isDisabled\"\r\n [type]=\"strict() ? 'date' : 'text'\"\r\n [value]=\"inputValue()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur($event)\"/>\r\n @if (!isDisabled) {\r\n <div class=\"date-picker-buttons\">\r\n @if (value()) {\r\n <btn [attr.data-testid]=\"id + '-clear'\"\r\n type=\"transparent\"\r\n icon=\"close\" (click)=\"clear()\"></btn>\r\n }\r\n <btn [attr.data-testid]=\"id + '-open-picker'\"\r\n type=\"transparent\"\r\n icon=\"calendar-days\" dropdownToggle></btn>\r\n </div>\r\n }\r\n <div *dropdownContent>\r\n <calendar [testId]=\"id + '-picker'\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [disabledDays]=\"disabledDays()\"\r\n [disabled]=\"disabled()\"\r\n [strict]=\"strict()\"\r\n [value]=\"value()\"\r\n (valueChange)=\"onPickerChange($event)\"></calendar>\r\n </div>\r\n</div>\r\n", styles: [".date-picker{--date-picker-border-size: var(--border-size, 1px);--date-picker-border-radius: var(--border-radius, 5px);--date-picker-bg-color: var(--bg-color, #ffffff);--date-picker-border-color: var(--border-color, #ced4da);--date-picker-highlight-color: var(--highlight-color, var(--primary-color, #888888));--date-picker-highlight-text-color: var(--highlight-text-color, #ffffff);--date-picker-text-color: var(--text-color, #151515);--date-picker-text-size: var(--text-size, 16px);--date-picker-padding-vertical: 6px;--date-picker-padding-horizontal: 12px;--date-picker-padding: var(--date-picker-padding-vertical) var(--date-picker-padding-horizontal);--date-picker-btn-padding: 12px;--date-picker-btn-gap: calc(var(--date-picker-btn-padding) / 2);--date-picker-btn-color: white;--date-picker-btn-valid-color: rgba(200, 255, 200, .7);--date-picker-btn-invalid-color: rgba(255, 200, 200, .7);position:relative;margin:5px 0;font-size:var(--date-picker-text-size);padding:var(--date-picker-padding);background:var(--date-picker-bg-color);color:var(--date-picker-text-color);border:var(--date-picker-border-size) solid var(--date-picker-border-color);border-radius:var(--date-picker-border-radius)}.date-picker *{box-sizing:border-box}.date-picker .date-picker-input{background:var(--date-picker-bg-color);font-size:var(--date-picker-text-size);outline:none;border:none;width:100%;-webkit-user-select:none;user-select:none;font-weight:400}.date-picker .date-picker-input::-webkit-calendar-picker-indicator{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-input::-webkit-clear-button{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-input::-webkit-inner-spin-button{display:none!important;-webkit-appearance:none!important}.date-picker .date-picker-buttons{display:flex;justify-content:flex-end;position:absolute;aspect-ratio:2/1;top:0;bottom:0;right:0;overflow:hidden}.date-picker .date-picker-buttons>btn{max-width:50%}.date-picker.disabled{opacity:.75}\n"] }]
|
|
9129
9177
|
}] });
|
|
9130
9178
|
|
|
9131
9179
|
class DropListComponent {
|