nira-falcon 1.0.5 → 1.0.7
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/esm2022/lib/core-checkbox/core-checkbox.component.mjs +8 -3
- package/esm2022/lib/core-date-picker/core-date-picker.component.mjs +18 -3
- package/esm2022/lib/core-radio-buttons/core-radio-buttons.component.mjs +22 -3
- package/esm2022/lib/core-select/core-select.component.mjs +31 -31
- package/esm2022/lib/core-select-search/core-select-search.component.mjs +94 -55
- package/esm2022/lib/core-switch/core-switch.component.mjs +11 -3
- package/esm2022/lib/core-table/core-table/core-table.component.mjs +2 -2
- package/esm2022/lib/falcon-lib.module.mjs +5 -2
- package/esm2022/svg-icon/calendar-today-icon/calendar-today-icon.component.mjs +11 -0
- package/fesm2022/nira-falcon.mjs +187 -90
- package/fesm2022/nira-falcon.mjs.map +1 -1
- package/lib/core-checkbox/core-checkbox.component.d.ts +1 -0
- package/lib/core-date-picker/core-date-picker.component.d.ts +1 -0
- package/lib/core-radio-buttons/core-radio-buttons.component.d.ts +1 -0
- package/lib/core-select/core-select.component.d.ts +1 -2
- package/lib/core-select-search/core-select-search.component.d.ts +12 -6
- package/lib/core-switch/core-switch.component.d.ts +1 -0
- package/lib/falcon-lib.module.d.ts +6 -5
- package/package.json +2 -2
- package/svg-icon/calendar-today-icon/calendar-today-icon.component.d.ts +5 -0
package/fesm2022/nira-falcon.mjs
CHANGED
|
@@ -251,12 +251,17 @@ class CoreCheckboxComponent {
|
|
|
251
251
|
change(event) {
|
|
252
252
|
this.onChange.emit(event);
|
|
253
253
|
}
|
|
254
|
+
handleKey(event) {
|
|
255
|
+
if (event.key === 'Enter') {
|
|
256
|
+
this.checked = !this.checked;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
254
259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
255
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: { label: "label", name: "name", checked: "checked", inputFormControl: "inputFormControl" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"flex gap-3\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: { label: "label", name: "name", checked: "checked", inputFormControl: "inputFormControl" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"flex gap-3\" (keydown)=\"handleKey($event)\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
256
261
|
}
|
|
257
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreCheckboxComponent, decorators: [{
|
|
258
263
|
type: Component,
|
|
259
|
-
args: [{ selector: 'core-checkbox', template: "<div class=\"flex gap-3\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"] }]
|
|
264
|
+
args: [{ selector: 'core-checkbox', template: "<div class=\"flex gap-3\" (keydown)=\"handleKey($event)\">\r\n <input\r\n type=\"checkbox\"\r\n [name]=\"name\"\r\n [(ngModel)]=\"checked\"\r\n (change)=\"change($event)\"\r\n />\r\n <span class=\"checkmark\">{{ label }}</span>\r\n</div>\r\n", styles: [".container{display:inline;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;font-size:18px;padding-inline:8px;-webkit-user-select:none;user-select:none}.label{padding-right:8px}.container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.container:hover input~.checkmark{background-color:var(--default-checkbox-input-hover-background-color)}.container input:checked~.checkmark{background-color:var(--default-checkbox-input-checked-background-color)}.checkmark:after{content:\"\";position:absolute;display:none}.container input:checked~.checkmark:after{display:block}.container .checkmark:after{left:10px;top:4px;width:4px;height:10px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.container{font-size:13px;font-weight:500}\n"] }]
|
|
260
265
|
}], propDecorators: { label: [{
|
|
261
266
|
type: Input
|
|
262
267
|
}], name: [{
|
|
@@ -660,6 +665,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
660
665
|
type: Input
|
|
661
666
|
}] } });
|
|
662
667
|
|
|
668
|
+
class CalendarTodayIconComponent {
|
|
669
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarTodayIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
670
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarTodayIconComponent, selector: "calendar-today-icon", ngImport: i0, template: "<svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n height=\"100%\"\r\n viewBox=\"0 -960 960 960\"\r\n width=\"100%\"\r\n>\r\n <path\r\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z\"\r\n />\r\n</svg>\r\n", styles: [""] }); }
|
|
671
|
+
}
|
|
672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarTodayIconComponent, decorators: [{
|
|
673
|
+
type: Component,
|
|
674
|
+
args: [{ selector: 'calendar-today-icon', template: "<svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n height=\"100%\"\r\n viewBox=\"0 -960 960 960\"\r\n width=\"100%\"\r\n>\r\n <path\r\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z\"\r\n />\r\n</svg>\r\n" }]
|
|
675
|
+
}] });
|
|
676
|
+
|
|
663
677
|
class CoreDatePickerComponent {
|
|
664
678
|
set inputFormControl(value) {
|
|
665
679
|
this._inputFormControl = value;
|
|
@@ -675,6 +689,20 @@ class CoreDatePickerComponent {
|
|
|
675
689
|
this.date = '';
|
|
676
690
|
}
|
|
677
691
|
ngOnInit() { }
|
|
692
|
+
onInput(event) {
|
|
693
|
+
const raw = event.target.value.replace(/\D/g, '');
|
|
694
|
+
if (raw.length > 8)
|
|
695
|
+
return;
|
|
696
|
+
let formatted = raw;
|
|
697
|
+
if (raw.length > 4) {
|
|
698
|
+
formatted = raw.slice(0, 4) + '-' + raw.slice(4);
|
|
699
|
+
}
|
|
700
|
+
if (raw.length > 6) {
|
|
701
|
+
formatted = formatted.slice(0, 7) + '-' + formatted.slice(7);
|
|
702
|
+
}
|
|
703
|
+
this.date = formatted;
|
|
704
|
+
this._inputFormControl.setValue(formatted);
|
|
705
|
+
}
|
|
678
706
|
ngAfterViewInit() {
|
|
679
707
|
this.changeDetectorRef.detectChanges();
|
|
680
708
|
}
|
|
@@ -687,11 +715,11 @@ class CoreDatePickerComponent {
|
|
|
687
715
|
this._inputFormControl.setValue(todayDate);
|
|
688
716
|
}
|
|
689
717
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
690
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl", size: "size" }, ngImport: i0, template: "<core-input\r\n
|
|
718
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreDatePickerComponent, selector: "core-date-picker", inputs: { canSelectToday: "canSelectToday", defaultDate: "defaultDate", label: "label", inputFormControl: "inputFormControl", size: "size" }, ngImport: i0, template: "<div class=\"container\">\r\n <core-input\r\n [placeholder]=\"''\"\r\n (input)=\"onInput($event)\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n >\r\n </core-input>\r\n <!-- <input type=\"text\" [value]=\"date\" (input)=\"onInput($event)\" /> -->\r\n <calendar-today-icon\r\n class=\"icon\"\r\n (click)=\"isOpenCalendar = true\"\r\n ></calendar-today-icon>\r\n</div>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [".container{position:relative}.container .icon{position:absolute;cursor:pointer;left:8px;top:6px;width:24px;height:24px;fill:#383838}\n"], dependencies: [{ kind: "component", type: i1$2.NiraDatePickerComponent, selector: "lib-nira-date-picker", inputs: ["selectToday", "disable", "changableYears", "theme", "defaultDate", "isOpenCalendar"], outputs: ["isOpenCalendarChange", "todayDate", "datePickerResult"] }, { kind: "component", type: CoreInputComponent, selector: "core-input", inputs: ["type", "canShowWordifyFa", "canSplitNumber", "canHighlightBackground", "maxLength", "size", "inputFormControl", "disable", "placeholder", "errorMessages"], outputs: ["onChange", "onBlurEmit"] }, { kind: "component", type: CalendarTodayIconComponent, selector: "calendar-today-icon" }] }); }
|
|
691
719
|
}
|
|
692
720
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreDatePickerComponent, decorators: [{
|
|
693
721
|
type: Component,
|
|
694
|
-
args: [{ selector: 'core-date-picker', template: "<core-input\r\n
|
|
722
|
+
args: [{ selector: 'core-date-picker', template: "<div class=\"container\">\r\n <core-input\r\n [placeholder]=\"''\"\r\n (input)=\"onInput($event)\"\r\n [inputFormControl]=\"_inputFormControl\"\r\n >\r\n </core-input>\r\n <!-- <input type=\"text\" [value]=\"date\" (input)=\"onInput($event)\" /> -->\r\n <calendar-today-icon\r\n class=\"icon\"\r\n (click)=\"isOpenCalendar = true\"\r\n ></calendar-today-icon>\r\n</div>\r\n<lib-nira-date-picker\r\n [(isOpenCalendar)]=\"isOpenCalendar\"\r\n [defaultDate]=\"date ? date : defaultDate\"\r\n (datePickerResult)=\"onDatePickerResult($event)\"\r\n [selectToday]=\"canSelectToday\"\r\n (todayDate)=\"onTodayDate($event)\"\r\n>\r\n</lib-nira-date-picker>\r\n", styles: [".container{position:relative}.container .icon{position:absolute;cursor:pointer;left:8px;top:6px;width:24px;height:24px;fill:#383838}\n"] }]
|
|
695
723
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { canSelectToday: [{
|
|
696
724
|
type: Input
|
|
697
725
|
}], defaultDate: [{
|
|
@@ -770,12 +798,31 @@ class CoreRadioButtonsComponent {
|
|
|
770
798
|
this.selectedItem = item;
|
|
771
799
|
this.onChange.emit(String(item.value));
|
|
772
800
|
}
|
|
801
|
+
handleKey(event) {
|
|
802
|
+
const currentIndex = this.newItems.findIndex((item) => item.value === this.selectedItem.value);
|
|
803
|
+
switch (event.key) {
|
|
804
|
+
case 'ArrowLeft':
|
|
805
|
+
event.preventDefault();
|
|
806
|
+
if (this.newItems.length - 1 > currentIndex) {
|
|
807
|
+
this.selectedItem = this.newItems[currentIndex + 1];
|
|
808
|
+
this.onChange.emit(String(this.selectedItem.value));
|
|
809
|
+
}
|
|
810
|
+
break;
|
|
811
|
+
case 'ArrowRight':
|
|
812
|
+
event.preventDefault();
|
|
813
|
+
if (currentIndex > 0) {
|
|
814
|
+
this.selectedItem = this.newItems[currentIndex - 1];
|
|
815
|
+
this.onChange.emit(String(this.selectedItem.value));
|
|
816
|
+
}
|
|
817
|
+
break;
|
|
818
|
+
}
|
|
819
|
+
}
|
|
773
820
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreRadioButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
774
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: { items: "items", defaultValue: "defaultValue", titleKey: "titleKey", valueKey: "valueKey", layout: "layout", name: "name" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div
|
|
821
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: { items: "items", defaultValue: "defaultValue", titleKey: "titleKey", valueKey: "valueKey", layout: "layout", name: "name" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div\r\n class=\"root\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'container-row': layout == 'row' }\"\r\n>\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
775
822
|
}
|
|
776
823
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreRadioButtonsComponent, decorators: [{
|
|
777
824
|
type: Component,
|
|
778
|
-
args: [{ selector: 'core-radio-buttons', template: "<div
|
|
825
|
+
args: [{ selector: 'core-radio-buttons', template: "<div\r\n class=\"root\"\r\n (keydown)=\"handleKey($event)\"\r\n [ngClass]=\"{ 'container-row': layout == 'row' }\"\r\n>\r\n <div\r\n class=\"radio-bottom\"\r\n [ngClass]=\"{ 'item-row-reverse': layout == 'row' }\"\r\n *ngFor=\"let item of newItems\"\r\n (click)=\"onItemClick(item)\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"item.value == selectedItem.value\"\r\n [checked]=\"item.value == selectedItem.value\"\r\n (click)=\"onItemClick(item)\"\r\n />\r\n <span class=\"label\">{{ item.title }}</span>\r\n </div>\r\n</div>\r\n", styles: [".root{display:flex;flex-direction:column;gap:6px}.container-row{flex-direction:row}.item-row-reverse{display:flex;flex-direction:row-reverse}.radio-bottom{display:inline-flex;flex-direction:row;align-items:center;margin-left:auto;cursor:pointer;-webkit-user-select:none;user-select:none}input[type=radio]{appearance:none;width:18px;height:18px;border-radius:50%;background-clip:content-box;border:1px solid var(--default-radio-buttons-input-border-color);background-color:var(--default-radio-buttons-input-background-color)}input[type=radio]:checked{background-color:var(--default-radio-buttons-background-color);padding:4px;border:2px solid var(--default-radio-buttons-border-color)}.label{font-size:small;font-weight:500;margin-inline:4px}\n"] }]
|
|
779
826
|
}], propDecorators: { items: [{
|
|
780
827
|
type: Input
|
|
781
828
|
}], defaultValue: [{
|
|
@@ -854,6 +901,7 @@ class CoreSelectComponent {
|
|
|
854
901
|
this.cdr = cdr;
|
|
855
902
|
this.elRef = elRef;
|
|
856
903
|
this.selectedItem = {};
|
|
904
|
+
this.focusItem = undefined;
|
|
857
905
|
this.newItems = [];
|
|
858
906
|
this.isOpenMenu = false;
|
|
859
907
|
this._items = [];
|
|
@@ -887,31 +935,33 @@ class CoreSelectComponent {
|
|
|
887
935
|
if (this.disabled)
|
|
888
936
|
return;
|
|
889
937
|
this.isOpenMenu = !this.isOpenMenu;
|
|
890
|
-
if (this.isOpenMenu && canFocus) {
|
|
891
|
-
setTimeout(() => {
|
|
892
|
-
const element = this.focusableElements.toArray();
|
|
893
|
-
element[0].nativeElement.focus();
|
|
894
|
-
}, 50);
|
|
895
|
-
}
|
|
896
938
|
}
|
|
897
939
|
handleKey(event) {
|
|
898
|
-
const
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
940
|
+
const currentItemIndex = this._items.findIndex((item) => item[this.valueKeyObject] === this.focusItem?.value);
|
|
941
|
+
switch (event.key) {
|
|
942
|
+
case 'Enter':
|
|
943
|
+
this.isOpenMenu = !this.isOpenMenu;
|
|
944
|
+
if (this.focusItem)
|
|
945
|
+
this.selectedItem = this.focusItem;
|
|
946
|
+
break;
|
|
947
|
+
case ' ':
|
|
948
|
+
this.isOpenMenu = !this.isOpenMenu;
|
|
949
|
+
break;
|
|
950
|
+
case 'Escape':
|
|
951
|
+
event.preventDefault();
|
|
952
|
+
this.isOpenMenu = false;
|
|
953
|
+
break;
|
|
954
|
+
case 'ArrowDown':
|
|
955
|
+
if (this.isOpenMenu && this._items.length - 1 > currentItemIndex)
|
|
956
|
+
this.focusItem = this._items[currentItemIndex + 1];
|
|
957
|
+
break;
|
|
958
|
+
case 'ArrowUp':
|
|
959
|
+
if (this.isOpenMenu && currentItemIndex > 0)
|
|
960
|
+
this.focusItem = this._items[currentItemIndex - 1];
|
|
961
|
+
break;
|
|
962
|
+
case 'Tab':
|
|
963
|
+
this.isOpenMenu = false;
|
|
964
|
+
break;
|
|
915
965
|
}
|
|
916
966
|
}
|
|
917
967
|
onItemSelect(selectedItem, isFromUi) {
|
|
@@ -920,19 +970,16 @@ class CoreSelectComponent {
|
|
|
920
970
|
this.isOpenMenu = false;
|
|
921
971
|
if (!selectedItem) {
|
|
922
972
|
this.selectedItem = {};
|
|
973
|
+
this.focusItem = undefined;
|
|
923
974
|
this.inputFormControl.reset();
|
|
924
975
|
return;
|
|
925
976
|
}
|
|
926
977
|
this.selectedItem = selectedItem;
|
|
978
|
+
this.focusItem = selectedItem;
|
|
927
979
|
const mainItem = this._items.find((item) => item[this.valueKeyObject] === selectedItem.value);
|
|
928
980
|
this.inputFormControl.setValue(selectedItem.value);
|
|
929
981
|
this.onItemSelected.emit(mainItem);
|
|
930
982
|
}
|
|
931
|
-
onEnterPress(e) {
|
|
932
|
-
if (e.key === 'Enter') {
|
|
933
|
-
this.openMenuClick(true);
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
983
|
focusOut(event) {
|
|
937
984
|
const nextFocusedElement = event.relatedTarget;
|
|
938
985
|
if (!nextFocusedElement ||
|
|
@@ -942,11 +989,11 @@ class CoreSelectComponent {
|
|
|
942
989
|
}
|
|
943
990
|
}
|
|
944
991
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
945
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (
|
|
992
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectComponent, selector: "core-select", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "focusableElements", predicate: ["focusable"], descendants: true }], ngImport: i0, template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n tabindex=\"0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WarningIconComponent, selector: "warning-icon" }, { kind: "component", type: ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
946
993
|
}
|
|
947
994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectComponent, decorators: [{
|
|
948
995
|
type: Component,
|
|
949
|
-
args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (
|
|
996
|
+
args: [{ selector: 'core-select', template: "<div class=\"dropdown\" (focusout)=\"focusOut($event)\">\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n\r\n }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n (click)=\"openMenuClick(false)\"\r\n >\r\n <span\r\n class=\"placeholder-top\"\r\n *ngIf=\"(selectedItem | json) != ({} | json)\"\r\n >{{ label }}</span\r\n >\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n\r\n <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n >\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu dropdown\"\r\n tabindex=\"0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n >\r\n <li\r\n *ngFor=\"let item of newItems\"\r\n class=\"dropdown-item\"\r\n #focusable\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect(item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;height:42px;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473);outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu li:focus{outline:none}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
|
|
950
997
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
|
|
951
998
|
type: Input
|
|
952
999
|
}], valueKey: [{
|
|
@@ -987,12 +1034,20 @@ class CoreSwitchComponent {
|
|
|
987
1034
|
this.toggle = this.icon.iconActive;
|
|
988
1035
|
this.value.emit(this.toggle);
|
|
989
1036
|
}
|
|
1037
|
+
handleKey(event) {
|
|
1038
|
+
if (event.key === 'Enter') {
|
|
1039
|
+
if (this.toggle === this.icon.iconActive)
|
|
1040
|
+
this.toggle = this.icon.iconInactive;
|
|
1041
|
+
else
|
|
1042
|
+
this.toggle = this.icon.iconActive;
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
990
1045
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
991
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSwitchComponent, selector: "core-switch", inputs: { icon: "icon", label: "label", defaultValue: "defaultValue" }, outputs: { value: "value" }, ngImport: i0, template: "<div class=\"switch-container\" (click)=\"change()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"switch\"\r\n [checked]=\"toggle === icon.iconActive\"\r\n />\r\n <div class=\"switch-color\">\r\n <span>{{ label }} </span>\r\n </div>\r\n <label for=\"switch\" class=\"label\"\r\n ><span class=\"material-symbols-outlined\">{{ toggle }} </span>\r\n </label>\r\n</div>\r\n", styles: [".switch-container{min-width:55px;max-width:118px;height:30px;border-radius:10em;border:1px solid var(--default-switch-border-color);position:relative;cursor:pointer;text-align:end}.switch-container .switch{display:none}.switch-container .switch:checked~.label{transform:translate(87px) rotate(360deg)}.switch-container .switch~.label{transition:all 1s cubic-bezier(.34,1.36,.2,1)}.switch-container .switch-color{width:100%;height:30px;background:var(--default-switch-background-color);border-radius:10em;z-index:0;position:absolute;transition:all .5s cubic-bezier(.34,1.36,.2,1)}.switch-container .label{width:25px;height:25px;text-align:center;border-radius:10em;background:var(--default-switch-background-label-color);position:absolute;top:2px;left:3px;box-shadow:2px 2px 10px 2px var(--default-switch-box-shadow-color);z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-container .label span{font-size:20px;padding-block-start:3px;padding-inline-start:1px;color:var(--default-switch-text-color)}\n"] }); }
|
|
1046
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSwitchComponent, selector: "core-switch", inputs: { icon: "icon", label: "label", defaultValue: "defaultValue" }, outputs: { value: "value" }, ngImport: i0, template: "<div class=\"switch-container\" (keydown)=\"handleKey($event)\" (click)=\"change()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"switch\"\r\n [checked]=\"toggle === icon.iconActive\"\r\n />\r\n <div class=\"switch-color\">\r\n <span>{{ label }} </span>\r\n </div>\r\n <label for=\"switch\" class=\"label\"\r\n ><span class=\"material-symbols-outlined\">{{ toggle }} </span>\r\n </label>\r\n</div>\r\n", styles: [".switch-container{min-width:55px;max-width:118px;height:30px;border-radius:10em;border:1px solid var(--default-switch-border-color);position:relative;cursor:pointer;text-align:end}.switch-container .switch{display:none}.switch-container .switch:checked~.label{transform:translate(87px) rotate(360deg)}.switch-container .switch~.label{transition:all 1s cubic-bezier(.34,1.36,.2,1)}.switch-container .switch-color{width:100%;height:30px;background:var(--default-switch-background-color);border-radius:10em;z-index:0;position:absolute;transition:all .5s cubic-bezier(.34,1.36,.2,1)}.switch-container .label{width:25px;height:25px;text-align:center;border-radius:10em;background:var(--default-switch-background-label-color);position:absolute;top:2px;left:3px;box-shadow:2px 2px 10px 2px var(--default-switch-box-shadow-color);z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-container .label span{font-size:20px;padding-block-start:3px;padding-inline-start:1px;color:var(--default-switch-text-color)}\n"] }); }
|
|
992
1047
|
}
|
|
993
1048
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSwitchComponent, decorators: [{
|
|
994
1049
|
type: Component,
|
|
995
|
-
args: [{ selector: 'core-switch', template: "<div class=\"switch-container\" (click)=\"change()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"switch\"\r\n [checked]=\"toggle === icon.iconActive\"\r\n />\r\n <div class=\"switch-color\">\r\n <span>{{ label }} </span>\r\n </div>\r\n <label for=\"switch\" class=\"label\"\r\n ><span class=\"material-symbols-outlined\">{{ toggle }} </span>\r\n </label>\r\n</div>\r\n", styles: [".switch-container{min-width:55px;max-width:118px;height:30px;border-radius:10em;border:1px solid var(--default-switch-border-color);position:relative;cursor:pointer;text-align:end}.switch-container .switch{display:none}.switch-container .switch:checked~.label{transform:translate(87px) rotate(360deg)}.switch-container .switch~.label{transition:all 1s cubic-bezier(.34,1.36,.2,1)}.switch-container .switch-color{width:100%;height:30px;background:var(--default-switch-background-color);border-radius:10em;z-index:0;position:absolute;transition:all .5s cubic-bezier(.34,1.36,.2,1)}.switch-container .label{width:25px;height:25px;text-align:center;border-radius:10em;background:var(--default-switch-background-label-color);position:absolute;top:2px;left:3px;box-shadow:2px 2px 10px 2px var(--default-switch-box-shadow-color);z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-container .label span{font-size:20px;padding-block-start:3px;padding-inline-start:1px;color:var(--default-switch-text-color)}\n"] }]
|
|
1050
|
+
args: [{ selector: 'core-switch', template: "<div class=\"switch-container\" (keydown)=\"handleKey($event)\" (click)=\"change()\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"switch\"\r\n [checked]=\"toggle === icon.iconActive\"\r\n />\r\n <div class=\"switch-color\">\r\n <span>{{ label }} </span>\r\n </div>\r\n <label for=\"switch\" class=\"label\"\r\n ><span class=\"material-symbols-outlined\">{{ toggle }} </span>\r\n </label>\r\n</div>\r\n", styles: [".switch-container{min-width:55px;max-width:118px;height:30px;border-radius:10em;border:1px solid var(--default-switch-border-color);position:relative;cursor:pointer;text-align:end}.switch-container .switch{display:none}.switch-container .switch:checked~.label{transform:translate(87px) rotate(360deg)}.switch-container .switch~.label{transition:all 1s cubic-bezier(.34,1.36,.2,1)}.switch-container .switch-color{width:100%;height:30px;background:var(--default-switch-background-color);border-radius:10em;z-index:0;position:absolute;transition:all .5s cubic-bezier(.34,1.36,.2,1)}.switch-container .label{width:25px;height:25px;text-align:center;border-radius:10em;background:var(--default-switch-background-label-color);position:absolute;top:2px;left:3px;box-shadow:2px 2px 10px 2px var(--default-switch-box-shadow-color);z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none}.switch-container .label span{font-size:20px;padding-block-start:3px;padding-inline-start:1px;color:var(--default-switch-text-color)}\n"] }]
|
|
996
1051
|
}], propDecorators: { value: [{
|
|
997
1052
|
type: Output
|
|
998
1053
|
}], icon: [{
|
|
@@ -2281,7 +2336,7 @@ class CoreTableComponent {
|
|
|
2281
2336
|
}
|
|
2282
2337
|
handleEnter(event) {
|
|
2283
2338
|
const key = event;
|
|
2284
|
-
if (document.activeElement === this.table
|
|
2339
|
+
if (document.activeElement === this.table?.nativeElement) {
|
|
2285
2340
|
if (key.key === 'ArrowDown') {
|
|
2286
2341
|
if (this.selectedItemIndex === this.sortedTableData.length - 1)
|
|
2287
2342
|
return;
|
|
@@ -3191,14 +3246,15 @@ class CoreSelectSearchComponent {
|
|
|
3191
3246
|
this._defaultValue = data;
|
|
3192
3247
|
this.init();
|
|
3193
3248
|
}
|
|
3194
|
-
constructor(
|
|
3195
|
-
this.
|
|
3249
|
+
constructor(elRef) {
|
|
3250
|
+
this.elRef = elRef;
|
|
3196
3251
|
this.selectedItem = {};
|
|
3252
|
+
this.focusItem = undefined;
|
|
3197
3253
|
this.newItems = [];
|
|
3198
3254
|
this.isOpenMenu = false;
|
|
3199
3255
|
this._items = [];
|
|
3200
3256
|
this.keys = [];
|
|
3201
|
-
this.
|
|
3257
|
+
this.currentItemIndex = 0;
|
|
3202
3258
|
this.size = 'small';
|
|
3203
3259
|
this.searchKeys = '';
|
|
3204
3260
|
this.canAddValueKeyAndTitleKeyInSearchKeys = true;
|
|
@@ -3214,13 +3270,68 @@ class CoreSelectSearchComponent {
|
|
|
3214
3270
|
this.valueKeyObject = this.valueKey;
|
|
3215
3271
|
this.newItems = this.changeItemsType(this._items);
|
|
3216
3272
|
this.inputFormControl.setValue(this._defaultValue);
|
|
3217
|
-
this.
|
|
3218
|
-
this.
|
|
3273
|
+
this.itemSelect(this.newItems.find((item) => item.value == this._defaultValue), false);
|
|
3274
|
+
this.onChangeText();
|
|
3219
3275
|
}
|
|
3220
3276
|
ngOnInit() {
|
|
3221
3277
|
this.keys = this.searchKeys.length > 0 ? this.searchKeys.split(',') : [];
|
|
3222
3278
|
this.init();
|
|
3223
|
-
this.
|
|
3279
|
+
this.onChangeText();
|
|
3280
|
+
this.setInputFocus();
|
|
3281
|
+
}
|
|
3282
|
+
handleKey(event) {
|
|
3283
|
+
const items = this.filteredItems.getValue();
|
|
3284
|
+
this.currentItemIndex = items.findIndex((item) => item[this.valueKeyObject] === this.focusItem?.value);
|
|
3285
|
+
switch (event.key) {
|
|
3286
|
+
case 'Enter':
|
|
3287
|
+
this.isOpenMenu = !this.isOpenMenu;
|
|
3288
|
+
this.setInputFocus();
|
|
3289
|
+
if (this.focusItem) {
|
|
3290
|
+
this.selectedItem = this.focusItem;
|
|
3291
|
+
this.inputFormControl.setValue(this.selectedItem.title);
|
|
3292
|
+
this.searchText = this.selectedItem.title;
|
|
3293
|
+
}
|
|
3294
|
+
break;
|
|
3295
|
+
case 'Escape':
|
|
3296
|
+
event.preventDefault();
|
|
3297
|
+
this.isOpenMenu = false;
|
|
3298
|
+
break;
|
|
3299
|
+
case 'ArrowDown':
|
|
3300
|
+
event.preventDefault();
|
|
3301
|
+
if (this.isOpenMenu && items.length - 1 > this.currentItemIndex)
|
|
3302
|
+
this.focusItem = items[this.currentItemIndex + 1];
|
|
3303
|
+
this.scrollToActive();
|
|
3304
|
+
break;
|
|
3305
|
+
case 'ArrowUp':
|
|
3306
|
+
event.preventDefault();
|
|
3307
|
+
if (this.isOpenMenu && this.currentItemIndex > 0)
|
|
3308
|
+
this.focusItem = items[this.currentItemIndex - 1];
|
|
3309
|
+
this.scrollToActive();
|
|
3310
|
+
break;
|
|
3311
|
+
case 'Tab':
|
|
3312
|
+
this.isOpenMenu = false;
|
|
3313
|
+
break;
|
|
3314
|
+
}
|
|
3315
|
+
}
|
|
3316
|
+
itemSelect(selectedItem, isFromUi) {
|
|
3317
|
+
if (isFromUi)
|
|
3318
|
+
this.inputFormControl.markAsTouched();
|
|
3319
|
+
this.isOpenMenu = false;
|
|
3320
|
+
if (!selectedItem) {
|
|
3321
|
+
this.selectedItem = {};
|
|
3322
|
+
return;
|
|
3323
|
+
}
|
|
3324
|
+
this.selectedItem = selectedItem;
|
|
3325
|
+
const mainItem = this._items.find((item) => item[this.valueKeyObject] === selectedItem.value);
|
|
3326
|
+
this.inputFormControl.setValue(selectedItem.title);
|
|
3327
|
+
this.searchText = selectedItem.title;
|
|
3328
|
+
this.onItemSelected.emit(mainItem);
|
|
3329
|
+
this.onChangeText();
|
|
3330
|
+
}
|
|
3331
|
+
onItemSelect(event, selectedItem, isFromUi) {
|
|
3332
|
+
event.preventDefault();
|
|
3333
|
+
this.focusItem = selectedItem;
|
|
3334
|
+
this.itemSelect(selectedItem, isFromUi);
|
|
3224
3335
|
}
|
|
3225
3336
|
changeItemsType(items) {
|
|
3226
3337
|
return items.map((item) => {
|
|
@@ -3234,70 +3345,51 @@ class CoreSelectSearchComponent {
|
|
|
3234
3345
|
return result;
|
|
3235
3346
|
});
|
|
3236
3347
|
}
|
|
3237
|
-
async
|
|
3238
|
-
if (this.
|
|
3239
|
-
this.filteredItems.next(this.newItems
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
item.value.toLowerCase().includes(this.searchText.toLowerCase()))) {
|
|
3245
|
-
isMach = true;
|
|
3246
|
-
}
|
|
3247
|
-
if (this.keys.length > 0) {
|
|
3248
|
-
this.keys.forEach((key) => {
|
|
3249
|
-
if (item[key]
|
|
3250
|
-
.toString()
|
|
3251
|
-
.toLowerCase()
|
|
3252
|
-
.includes(this.searchText.toLowerCase())) {
|
|
3253
|
-
isMach = true;
|
|
3254
|
-
}
|
|
3255
|
-
});
|
|
3256
|
-
}
|
|
3257
|
-
return isMach;
|
|
3258
|
-
}));
|
|
3348
|
+
async onChangeText() {
|
|
3349
|
+
if (this.selectedItem.title === this.searchText) {
|
|
3350
|
+
this.filteredItems.next(this.newItems);
|
|
3351
|
+
}
|
|
3352
|
+
else if (this.searchText) {
|
|
3353
|
+
this.filteredItems.next(this.newItems.filter((item) => item.title.includes(this.searchText) ||
|
|
3354
|
+
item.value.toLowerCase().includes(this.searchText)));
|
|
3259
3355
|
}
|
|
3260
3356
|
else {
|
|
3261
3357
|
this.filteredItems.next(this.newItems);
|
|
3262
3358
|
}
|
|
3263
3359
|
}
|
|
3360
|
+
setInputFocus() {
|
|
3361
|
+
if (this.inputElement) {
|
|
3362
|
+
setTimeout(() => {
|
|
3363
|
+
this.inputElement.nativeElement?.focus();
|
|
3364
|
+
});
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3264
3367
|
openMenuClick() {
|
|
3265
3368
|
if (this.disabled)
|
|
3266
3369
|
return;
|
|
3267
3370
|
this.isOpenMenu = !this.isOpenMenu;
|
|
3268
3371
|
}
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
return;
|
|
3276
|
-
}
|
|
3277
|
-
this.selectedItem = selectedItem;
|
|
3278
|
-
const mainItem = this._items.find((item) => item[this.valueKeyObject] === selectedItem.value);
|
|
3279
|
-
this.inputFormControl.setValue(selectedItem.value);
|
|
3280
|
-
this.clearText();
|
|
3281
|
-
this.onItemSelected.emit(mainItem);
|
|
3372
|
+
scrollToActive() {
|
|
3373
|
+
const element = document.getElementById('scroll' + this.currentItemIndex);
|
|
3374
|
+
element?.scrollIntoView({
|
|
3375
|
+
block: 'center',
|
|
3376
|
+
behavior: 'smooth',
|
|
3377
|
+
});
|
|
3282
3378
|
}
|
|
3283
3379
|
focusOut(event) {
|
|
3284
|
-
const
|
|
3285
|
-
if (!
|
|
3380
|
+
const nextFocusedElement = event.relatedTarget;
|
|
3381
|
+
if (!nextFocusedElement ||
|
|
3382
|
+
!this.elRef.nativeElement.contains(nextFocusedElement)) {
|
|
3286
3383
|
this.isOpenMenu = false;
|
|
3287
3384
|
this.inputFormControl.markAsTouched();
|
|
3288
|
-
this.clearText();
|
|
3289
3385
|
}
|
|
3290
3386
|
}
|
|
3291
|
-
clearText() {
|
|
3292
|
-
this.searchText = '';
|
|
3293
|
-
this.changeSearchText();
|
|
3294
|
-
}
|
|
3295
3387
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectSearchComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3296
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectSearchComponent, selector: "core-select-search", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", searchKeys: "searchKeys", canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, ngImport: i0, template: "<div
|
|
3388
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreSelectSearchComponent, selector: "core-select-search", inputs: { titleKey: "titleKey", valueKey: "valueKey", size: "size", searchKeys: "searchKeys", canAddValueKeyAndTitleKeyInSearchKeys: "canAddValueKeyAndTitleKeyInSearchKeys", canHighlightBackground: "canHighlightBackground", items: "items", defaultValue: "defaultValue", label: "label", disabled: "disabled", inputFormControl: "inputFormControl" }, outputs: { onItemSelected: "onItemSelected" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputSearch"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"col-span-11 bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText()\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: WarningIconComponent, selector: "warning-icon" }, { kind: "component", type: ArrowDownIconComponent, selector: "arrow-down-icon" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
|
|
3297
3389
|
}
|
|
3298
3390
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreSelectSearchComponent, decorators: [{
|
|
3299
3391
|
type: Component,
|
|
3300
|
-
args: [{ selector: 'core-select-search', template: "<div
|
|
3392
|
+
args: [{ selector: 'core-select-search', template: "<div\r\n class=\"dropdown\"\r\n id=\"container\"\r\n (focusin)=\"setInputFocus()\"\r\n (focusout)=\"focusOut($event)\"\r\n>\r\n <div\r\n class=\"select\"\r\n [ngClass]=\"{\r\n 'select-clicked': isOpenMenu,\r\n 'highlight-background':\r\n canHighlightBackground &&\r\n (selectedItem | json) === ({} | json) &&\r\n !(inputFormControl.touched && inputFormControl.errors),\r\n selectError: inputFormControl.touched && inputFormControl.errors ,\r\n 'disable-selector': disabled,\r\n }\"\r\n (click)=\"openMenuClick()\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n >\r\n <span class=\"placeholder-top\" *ngIf=\"searchText\">{{ label }}</span>\r\n <arrow-down-icon\r\n class=\"caret fill-secondary-text-color h-6\"\r\n [ngClass]=\"{ 'caret-rotate': isOpenMenu }\"\r\n ></arrow-down-icon>\r\n <input\r\n #inputSearch\r\n autocomplete=\"off\"\r\n id=\"inputSearch\"\r\n class=\"col-span-11 bg-transparent focus:outline-none\"\r\n [(ngModel)]=\"searchText\"\r\n [placeholder]=\"label\"\r\n (keyup)=\"onChangeText()\"\r\n />\r\n <!-- <span\r\n [ngClass]=\"[\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? 'placeholder'\r\n : 'selected'\r\n ]\"\r\n >{{\r\n label.length > 0 && (selectedItem | json) == ({} | json)\r\n ? label\r\n : selectedItem.title\r\n }}</span\r\n > -->\r\n </div>\r\n <div\r\n class=\"no-data\"\r\n *ngIf=\"newItems.length === 0\"\r\n [ngClass]=\"{ 'menu-open-no-data': isOpenMenu }\"\r\n >\r\n <warning-icon class=\"icon-color inline-block w-6\"></warning-icon>\r\n <b class=\"content block\">\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F</b>\r\n </div>\r\n <ul\r\n class=\"menu\"\r\n *ngIf=\"newItems.length > 0\"\r\n [ngClass]=\"{ 'menu-open': isOpenMenu }\"\r\n tabindex=\"0\"\r\n (keydown)=\"handleKey($event)\"\r\n >\r\n <li\r\n *ngFor=\"let item of filteredItems | async; let i = index\"\r\n [id]=\"'scroll' + i\"\r\n [ngClass]=\"{ active: item.value === focusItem?.value }\"\r\n (click)=\"onItemSelect($event, item, true)\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ul>\r\n <div class=\"label-error overflow-hidden\">\r\n <span\r\n *ngIf=\"\r\n inputFormControl.touched &&\r\n inputFormControl.errors?.['required']\"\r\n >\u0627\u06CC\u0646 \u0641\u06CC\u0644\u062F \u062E\u0627\u0644\u06CC \u0627\u0633\u062A</span\r\n >\r\n </div>\r\n</div>\r\n", styles: [".dropdown{min-width:15em;position:relative;width:100%;min-width:120px}.dropdown .disable-selector{background-color:#f7f7f7!important;border:1px dashed #ced4da!important;cursor:no-drop!important}.dropdown .highlight-background{background-color:#dcf6ff!important}.dropdown .select{background:#fff;color:#304050;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center;border:1px solid #ced4da;border-radius:4px;padding:8px;cursor:pointer;transition:background .3s;font-size:12px;-webkit-user-select:none;user-select:none}.dropdown .select:hover{background:#fbfbfb}.dropdown .select:focus{border:2px solid rgba(37,112,198,.473)!important;outline:none}.dropdown .select .selected{padding-inline:12px;font-size:14px;color:#000000b3;-webkit-user-select:none;user-select:none}.dropdown .select .placeholder-top{position:absolute;right:13px;background:#fff;top:-8px;padding-inline:6px;font-size:11px;color:#888}.dropdown .select .caret{color:#595c5f;-webkit-user-select:none;user-select:none}.dropdown .select .caret-rotate{transform:rotate(180deg)}.dropdown .select .placeholder{color:#888;padding-inline:16px}.dropdown .select-clicked{border:1px solid rgba(19,92,175,.397)}.dropdown .menu-open-no-data{display:flex!important;opacity:1}.dropdown .no-data{display:none;justify-content:center;align-items:center;font-size:small;flex-direction:column;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);transition:0,2s;z-index:10;height:120px;overflow:auto}.dropdown .no-data .icon-color{fill:var(--default-table-warning-icon-color)}.dropdown .no-data .content{color:var(--default-table-warning-color)}.dropdown .menu{list-style:none;padding-inline:0px;background:#fff;border:1px #e3e8f1 solid;box-shadow:0 .5em 1em #0003;border-radius:.5em;color:#595c5f;position:absolute;top:40px;left:50%;width:100%;transform:translate(-50%);opacity:0;display:none;transition:0,2s;z-index:10;max-height:200px;overflow:auto}.dropdown .menu li{padding:.7em .5em;margin:.3em 0;margin-inline:4px;border-radius:.5em;font-size:14px;text-align:start;cursor:pointer}.dropdown .menu li:hover{background:#f6f6f6;box-shadow:0 1px 2px #00000021,0 4px 4px #0000001a}.dropdown .menu .active{background:#ced4da!important}.dropdown .menu-open{display:block;opacity:1}.dropdown .label-error{color:red;font-size:13px;margin-block-start:4px;min-height:21px;width:100%;display:inline-block!important;text-align:start}.dropdown .selectError{border:1px solid #fe5f5f!important}\n"] }]
|
|
3301
3393
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { titleKey: [{
|
|
3302
3394
|
type: Input
|
|
3303
3395
|
}], valueKey: [{
|
|
@@ -3322,6 +3414,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3322
3414
|
type: Output
|
|
3323
3415
|
}], inputFormControl: [{
|
|
3324
3416
|
type: Input
|
|
3417
|
+
}], inputElement: [{
|
|
3418
|
+
type: ViewChild,
|
|
3419
|
+
args: ['inputSearch']
|
|
3325
3420
|
}] } });
|
|
3326
3421
|
|
|
3327
3422
|
class FalconLibModule {
|
|
@@ -3389,7 +3484,8 @@ class FalconLibModule {
|
|
|
3389
3484
|
CoreRowPelakComponent,
|
|
3390
3485
|
CoreTableDetailViewerForReportComponent,
|
|
3391
3486
|
CalendarIconComponent,
|
|
3392
|
-
ArrowDownIconComponent
|
|
3487
|
+
ArrowDownIconComponent,
|
|
3488
|
+
CalendarTodayIconComponent], imports: [CommonModule,
|
|
3393
3489
|
ReactiveFormsModule,
|
|
3394
3490
|
FormsModule,
|
|
3395
3491
|
NiraSnackBarModule,
|
|
@@ -3492,6 +3588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
3492
3588
|
CoreTableDetailViewerForReportComponent,
|
|
3493
3589
|
CalendarIconComponent,
|
|
3494
3590
|
ArrowDownIconComponent,
|
|
3591
|
+
CalendarTodayIconComponent,
|
|
3495
3592
|
],
|
|
3496
3593
|
imports: [
|
|
3497
3594
|
CommonModule,
|