@nettyapps/ntyui 0.1.4 → 0.1.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/fesm2022/nettyapps-ntyui.mjs +45 -70
- package/fesm2022/nettyapps-ntyui.mjs.map +1 -1
- package/index.d.ts +2 -6
- package/package.json +1 -1
|
@@ -6,20 +6,20 @@ import * as i2 from '@angular/material/form-field';
|
|
|
6
6
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
7
|
import * as i3 from '@angular/material/input';
|
|
8
8
|
import { MatInputModule } from '@angular/material/input';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i1$1 from '@angular/common';
|
|
10
10
|
import { CommonModule } from '@angular/common';
|
|
11
|
-
import * as i4
|
|
11
|
+
import * as i4 from '@angular/material/icon';
|
|
12
12
|
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i4$1 from '@angular/material/datepicker';
|
|
14
14
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
15
15
|
import { DateAdapter, MatNativeDateModule, provideNativeDateAdapter } from '@angular/material/core';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i6 from '@angular/material/timepicker';
|
|
17
17
|
import { MatTimepickerModule } from '@angular/material/timepicker';
|
|
18
|
-
import * as i1$
|
|
18
|
+
import * as i1$2 from '@angular/material/checkbox';
|
|
19
19
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
20
20
|
import * as i2$1 from '@angular/material/slide-toggle';
|
|
21
21
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
22
|
-
import * as i1$
|
|
22
|
+
import * as i1$3 from '@angular/material/button';
|
|
23
23
|
import { MatButtonModule } from '@angular/material/button';
|
|
24
24
|
import * as i3$1 from '@angular/material/menu';
|
|
25
25
|
import { MatMenuModule } from '@angular/material/menu';
|
|
@@ -28,7 +28,7 @@ import * as i2$2 from '@angular/material/select';
|
|
|
28
28
|
import { MatSelectModule } from '@angular/material/select';
|
|
29
29
|
import * as i2$3 from '@angular/material/radio';
|
|
30
30
|
import { MatRadioModule } from '@angular/material/radio';
|
|
31
|
-
import * as i5
|
|
31
|
+
import * as i5 from '@ngx-translate/core';
|
|
32
32
|
import { TranslateModule } from '@ngx-translate/core';
|
|
33
33
|
import { HttpClient } from '@angular/common/http';
|
|
34
34
|
import { EnvironmentProxy } from '@nettyapps/ntycontract';
|
|
@@ -165,13 +165,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
165
165
|
|
|
166
166
|
class NettyUITextInput extends UiBase {
|
|
167
167
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITextInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
168
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUITextInput, isStandalone: true, selector: "ntyui-text-input", providers: [
|
|
169
169
|
{
|
|
170
170
|
provide: NG_VALUE_ACCESSOR,
|
|
171
171
|
useExisting: forwardRef(() => NettyUITextInput),
|
|
172
172
|
multi: true,
|
|
173
173
|
},
|
|
174
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
174
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n type=\"text\"\n matInput\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"value.set($event)\"\n (input)=\"onInputChange($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
175
175
|
}
|
|
176
176
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITextInput, decorators: [{
|
|
177
177
|
type: Component,
|
|
@@ -188,7 +188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
188
188
|
useExisting: forwardRef(() => NettyUITextInput),
|
|
189
189
|
multi: true,
|
|
190
190
|
},
|
|
191
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
191
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n type=\"text\"\n matInput\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"value.set($event)\"\n (input)=\"onInputChange($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"] }]
|
|
192
192
|
}] });
|
|
193
193
|
|
|
194
194
|
class NettyUIEmailInput extends UiBase {
|
|
@@ -214,13 +214,13 @@ class NettyUIEmailInput extends UiBase {
|
|
|
214
214
|
return undefined;
|
|
215
215
|
}
|
|
216
216
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIEmailInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
217
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIEmailInput, isStandalone: true, selector: "ntyui-email-input", providers: [
|
|
218
218
|
{
|
|
219
219
|
provide: NG_VALUE_ACCESSOR,
|
|
220
220
|
useExisting: forwardRef(() => NettyUIEmailInput),
|
|
221
221
|
multi: true,
|
|
222
222
|
},
|
|
223
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
223
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n type=\"email\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n />\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }] });
|
|
224
224
|
}
|
|
225
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIEmailInput, decorators: [{
|
|
226
226
|
type: Component,
|
|
@@ -237,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
237
237
|
useExisting: forwardRef(() => NettyUIEmailInput),
|
|
238
238
|
multi: true,
|
|
239
239
|
},
|
|
240
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
240
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n type=\"email\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n />\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"] }]
|
|
241
241
|
}] });
|
|
242
242
|
|
|
243
243
|
class NettyUIDateTime extends UiBase {
|
|
@@ -339,7 +339,7 @@ class NettyUIDateTime extends UiBase {
|
|
|
339
339
|
this.onTouched();
|
|
340
340
|
}
|
|
341
341
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIDateTime, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIDateTime, isStandalone: true, selector: "ntyui-date-time", inputs: { dateTimeValue: { classPropertyName: "dateTimeValue", publicName: "dateTimeValue", isSignal: true, isRequired: false, transformFunction: null }, dateLabel: { classPropertyName: "dateLabel", publicName: "dateLabel", isSignal: true, isRequired: false, transformFunction: null }, timeLabel: { classPropertyName: "timeLabel", publicName: "timeLabel", isSignal: true, isRequired: false, transformFunction: null }, dateRestriction: { classPropertyName: "dateRestriction", publicName: "dateRestriction", isSignal: true, isRequired: false, transformFunction: null }, timeFormat: { classPropertyName: "timeFormat", publicName: "timeFormat", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateTimeValue: "dateTimeValueChange" }, viewQueries: [{ propertyName: "dateModel", first: true, predicate: ["dateModel"], descendants: true, isSignal: true }, { propertyName: "timeModel", first: true, predicate: ["timeModel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"datetime-container\">\n <!-- Datetime -->\n <mat-form-field\n [appearance]=\"appearance()\"\n class=\"datepicker\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && dateValue()\"\n >\n @if (dateLabel()) {\n <mat-label>{{ dateLabel() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"dateValue\"\n (dateChange)=\"onDateChange($event)\"\n [min]=\"minDate() ?? undefined\"\n [max]=\"maxDate() ?? undefined\"\n />\n\n @if (dateValue() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn date-clear\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n\n <!-- Timepicker -->\n <mat-form-field\n class=\"time-field\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && timeValue()\"\n >\n @if (timeLabel()) {\n <mat-label>{{ timeLabel() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"timepicker\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"onTimeChange($event)\"\n [ngModelOptions]=\"{updateOn: 'blur'}\"\n />\n\n @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-timepicker #timepicker />\n <mat-timepicker-toggle [for]=\"timepicker\" matSuffix />\n </mat-form-field>\n</div>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.datetime-container{display:flex;align-items:flex-start}@media (max-width: 600px){.datetime-container{flex-wrap:nowrap;overflow-x:auto;align-items:flex-start}}.datetime-container mat-form-field{flex:0 0 auto;min-width:150px}.datepicker{flex:1}.time-field{flex:0 0 120px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTimepickerModule }, { kind: "component", type: i6.MatTimepicker, selector: "mat-timepicker", inputs: ["interval", "options", "disableRipple", "aria-label", "aria-labelledby"], outputs: ["selected", "opened", "closed"], exportAs: ["matTimepicker"] }, { kind: "directive", type: i6.MatTimepickerInput, selector: "input[matTimepicker]", inputs: ["value", "matTimepicker", "matTimepickerMin", "matTimepickerMax", "matTimepickerOpenOnClick", "disabled"], outputs: ["valueChange"], exportAs: ["matTimepickerInput"] }, { kind: "component", type: i6.MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: ["for", "aria-label", "aria-labelledby", "disabled", "tabIndex", "disableRipple"], exportAs: ["matTimepickerToggle"] }] });
|
|
343
343
|
}
|
|
344
344
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIDateTime, decorators: [{
|
|
345
345
|
type: Component,
|
|
@@ -353,7 +353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
353
353
|
MatNativeDateModule,
|
|
354
354
|
MatIconModule,
|
|
355
355
|
MatTimepickerModule,
|
|
356
|
-
], template: "<div class=\"datetime-container\">\n <!-- Datetime -->\n <mat-form-field\n [appearance]=\"appearance()\"\n class=\"datepicker\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && dateValue()\"\n >\n
|
|
356
|
+
], template: "<div class=\"datetime-container\">\n <!-- Datetime -->\n <mat-form-field\n [appearance]=\"appearance()\"\n class=\"datepicker\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && dateValue()\"\n >\n @if (dateLabel()) {\n <mat-label>{{ dateLabel() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"dateValue\"\n (dateChange)=\"onDateChange($event)\"\n [min]=\"minDate() ?? undefined\"\n [max]=\"maxDate() ?? undefined\"\n />\n\n @if (dateValue() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn date-clear\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n\n <!-- Timepicker -->\n <mat-form-field\n class=\"time-field\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && timeValue()\"\n >\n @if (timeLabel()) {\n <mat-label>{{ timeLabel() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"timepicker\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"onTimeChange($event)\"\n [ngModelOptions]=\"{updateOn: 'blur'}\"\n />\n\n @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-timepicker #timepicker />\n <mat-timepicker-toggle [for]=\"timepicker\" matSuffix />\n </mat-form-field>\n</div>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.datetime-container{display:flex;align-items:flex-start}@media (max-width: 600px){.datetime-container{flex-wrap:nowrap;overflow-x:auto;align-items:flex-start}}.datetime-container mat-form-field{flex:0 0 auto;min-width:150px}.datepicker{flex:1}.time-field{flex:0 0 120px}\n"] }]
|
|
357
357
|
}], ctorParameters: () => [], propDecorators: { dateTimeValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateTimeValue", required: false }] }, { type: i0.Output, args: ["dateTimeValueChange"] }], dateLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateLabel", required: false }] }], timeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLabel", required: false }] }], dateRestriction: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateRestriction", required: false }] }], timeFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeFormat", required: false }] }], dateModel: [{ type: i0.ViewChild, args: ['dateModel', { isSignal: true }] }], timeModel: [{ type: i0.ViewChild, args: ['timeModel', { isSignal: true }] }] } });
|
|
358
358
|
|
|
359
359
|
class NettyUIDatePicker extends UiBase {
|
|
@@ -446,13 +446,13 @@ class NettyUIDatePicker extends UiBase {
|
|
|
446
446
|
this.onTouched();
|
|
447
447
|
}
|
|
448
448
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIDatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
449
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
449
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIDatePicker, isStandalone: true, selector: "ntyui-date-picker", inputs: { dateRestriction: { classPropertyName: "dateRestriction", publicName: "dateRestriction", isSignal: true, isRequired: false, transformFunction: null }, dateValue: { classPropertyName: "dateValue", publicName: "dateValue", isSignal: true, isRequired: false, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateValue: "dateValueChange", selectedDate: "selectedDateChange" }, providers: [
|
|
450
450
|
{
|
|
451
451
|
provide: NG_VALUE_ACCESSOR,
|
|
452
452
|
useExisting: forwardRef(() => NettyUIDatePicker),
|
|
453
453
|
multi: true,
|
|
454
454
|
},
|
|
455
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"appearance()\"\n class=\"example-full-width\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && selectedDate()\"\n>\n
|
|
455
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"appearance()\"\n class=\"example-full-width\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && selectedDate()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"selectedDate\"\n (dateChange)=\"onDateChange($event)\"\n [min]=\"minDate() ?? undefined\"\n [max]=\"maxDate() ?? undefined\"\n />\n\n <button\n mat-icon-button\n matSuffix\n [class.invisible]=\"!selectedDate() || disabled()\"\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn date-clear\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n\n @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.mat-datepicker-toggle{margin-right:5px}.clear-btn{opacity:1;transition:opacity .2s}.clear-btn.invisible{opacity:0;pointer-events:none}.mat-form-field-suffix{display:flex;align-items:center;gap:4px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
456
456
|
}
|
|
457
457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIDatePicker, decorators: [{
|
|
458
458
|
type: Component,
|
|
@@ -471,7 +471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
471
471
|
useExisting: forwardRef(() => NettyUIDatePicker),
|
|
472
472
|
multi: true,
|
|
473
473
|
},
|
|
474
|
-
], template: "<mat-form-field\n [appearance]=\"appearance()\"\n class=\"example-full-width\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && selectedDate()\"\n>\n
|
|
474
|
+
], template: "<mat-form-field\n [appearance]=\"appearance()\"\n class=\"example-full-width\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && selectedDate()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matDatepicker]=\"picker\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"selectedDate\"\n (dateChange)=\"onDateChange($event)\"\n [min]=\"minDate() ?? undefined\"\n [max]=\"maxDate() ?? undefined\"\n />\n\n <button\n mat-icon-button\n matSuffix\n [class.invisible]=\"!selectedDate() || disabled()\"\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn date-clear\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n\n @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.mat-datepicker-toggle{margin-right:5px}.clear-btn{opacity:1;transition:opacity .2s}.clear-btn.invisible{opacity:0;pointer-events:none}.mat-form-field-suffix{display:flex;align-items:center;gap:4px}\n"] }]
|
|
475
475
|
}], ctorParameters: () => [], propDecorators: { dateRestriction: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateRestriction", required: false }] }], dateValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateValue", required: false }] }, { type: i0.Output, args: ["dateValueChange"] }], selectedDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedDate", required: false }] }, { type: i0.Output, args: ["selectedDateChange"] }] } });
|
|
476
476
|
|
|
477
477
|
class NettyUIMaskedInput extends UiBase {
|
|
@@ -591,13 +591,13 @@ class NettyUIMaskedInput extends UiBase {
|
|
|
591
591
|
return undefined;
|
|
592
592
|
}
|
|
593
593
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIMaskedInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
594
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
594
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIMaskedInput, isStandalone: true, selector: "ntyui-masked-input", inputs: { mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
595
595
|
{
|
|
596
596
|
provide: NG_VALUE_ACCESSOR,
|
|
597
597
|
useExisting: forwardRef(() => NettyUIMaskedInput),
|
|
598
598
|
multi: true,
|
|
599
599
|
},
|
|
600
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
600
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
601
601
|
}
|
|
602
602
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIMaskedInput, decorators: [{
|
|
603
603
|
type: Component,
|
|
@@ -614,7 +614,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
614
614
|
useExisting: forwardRef(() => NettyUIMaskedInput),
|
|
615
615
|
multi: true,
|
|
616
616
|
},
|
|
617
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
617
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <input\n #inputModel=\"ngModel\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel.invalid && (inputModel.dirty || inputModel.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"] }]
|
|
618
618
|
}], propDecorators: { mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }] } });
|
|
619
619
|
|
|
620
620
|
class NettyUICarousel {
|
|
@@ -661,11 +661,11 @@ class NettyUICarousel {
|
|
|
661
661
|
}, 3000);
|
|
662
662
|
}
|
|
663
663
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUICarousel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
664
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
664
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUICarousel, isStandalone: true, selector: "ntyui-carousel", inputs: { slides: { classPropertyName: "slides", publicName: "slides", isSignal: true, isRequired: false, transformFunction: null }, indicators: { classPropertyName: "indicators", publicName: "indicators", isSignal: true, isRequired: false, transformFunction: null }, showText: { classPropertyName: "showText", publicName: "showText", isSignal: true, isRequired: false, transformFunction: null }, textPosition: { classPropertyName: "textPosition", publicName: "textPosition", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (slides() && slides().length > 0) {\n<div class=\"carousel-container\">\n @for (slide of slides(); track slide.imageSrc; let i = $index) {\n <div class=\"slide-container\" [class.active]=\"selectedIndex() === i\">\n <div class=\"image-container\">\n <img\n [src]=\"slide.imageSrc\"\n [alt]=\"slide.imageAlt\"\n [ngClass]=\"{ 'image-active': selectedIndex() === i }\"\n />\n </div>\n\n @if (showText()) {\n <div class=\"text-container\" [class]=\"'text-' + textPosition()\">\n @if (slide.title) {\n <h2 class=\"slide-title\">{{ slide.title }}</h2>\n } @if (slide.description) {\n <p class=\"slide-description\">{{ slide.description }}</p>\n }\n </div>\n }\n </div>\n } @if (indicators()) {\n <div class=\"carousel-dot-container\">\n @for (dot of slides(); track dot.imageSrc; let i = $index) {\n <span\n class=\"dot\"\n [ngClass]=\"{ active: selectedIndex() === i }\"\n (click)=\"selectImage(i)\"\n ></span>\n }\n </div>\n }\n</div>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.carousel-container{position:relative;margin:auto;text-align:center;width:100%;height:100%;border-radius:15px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.carousel-container .slide-container{position:relative;width:100%;height:100%;display:none}.carousel-container .slide-container.active{display:block}.carousel-container img{display:none;border-radius:15px;width:100%;height:100%;object-fit:cover}.carousel-container img.image-active{display:block}.carousel-container .text-container{position:absolute;color:#fff;background:#00000080;padding:1rem;border-radius:8px;max-width:80%;transition:all .3s ease;margin-bottom:20px}.carousel-container .text-container.text-bottom{bottom:20px;left:50%;transform:translate(-50%);text-align:center}.carousel-container .text-container.text-top{top:20px;left:50%;transform:translate(-50%);text-align:center}.carousel-container .text-container.text-left{left:20px;top:50%;transform:translateY(-50%);text-align:left}.carousel-container .text-container.text-right{right:20px;top:50%;transform:translateY(-50%);text-align:right}.carousel-container .text-container .slide-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;text-shadow:1px 1px 3px rgba(0,0,0,.8)}.carousel-container .text-container .slide-description{margin:0;font-size:1rem;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.carousel-container .carousel-dot-container{position:absolute;right:0;left:0;bottom:0;display:flex;justify-content:center;padding:0;margin-bottom:1rem;z-index:2}.carousel-container .dot{cursor:pointer;height:13px;width:13px;margin:0 5px;background-color:#fff;border-radius:50%;display:inline-block;transition:opacity .6s ease;opacity:.5}.carousel-container .dot.active,.carousel-container .dot:hover{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }] });
|
|
665
665
|
}
|
|
666
666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUICarousel, decorators: [{
|
|
667
667
|
type: Component,
|
|
668
|
-
args: [{ selector: 'ntyui-carousel', imports: [CommonModule, FormsModule], template: "
|
|
668
|
+
args: [{ selector: 'ntyui-carousel', imports: [CommonModule, FormsModule], template: "@if (slides() && slides().length > 0) {\n<div class=\"carousel-container\">\n @for (slide of slides(); track slide.imageSrc; let i = $index) {\n <div class=\"slide-container\" [class.active]=\"selectedIndex() === i\">\n <div class=\"image-container\">\n <img\n [src]=\"slide.imageSrc\"\n [alt]=\"slide.imageAlt\"\n [ngClass]=\"{ 'image-active': selectedIndex() === i }\"\n />\n </div>\n\n @if (showText()) {\n <div class=\"text-container\" [class]=\"'text-' + textPosition()\">\n @if (slide.title) {\n <h2 class=\"slide-title\">{{ slide.title }}</h2>\n } @if (slide.description) {\n <p class=\"slide-description\">{{ slide.description }}</p>\n }\n </div>\n }\n </div>\n } @if (indicators()) {\n <div class=\"carousel-dot-container\">\n @for (dot of slides(); track dot.imageSrc; let i = $index) {\n <span\n class=\"dot\"\n [ngClass]=\"{ active: selectedIndex() === i }\"\n (click)=\"selectImage(i)\"\n ></span>\n }\n </div>\n }\n</div>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.carousel-container{position:relative;margin:auto;text-align:center;width:100%;height:100%;border-radius:15px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.carousel-container .slide-container{position:relative;width:100%;height:100%;display:none}.carousel-container .slide-container.active{display:block}.carousel-container img{display:none;border-radius:15px;width:100%;height:100%;object-fit:cover}.carousel-container img.image-active{display:block}.carousel-container .text-container{position:absolute;color:#fff;background:#00000080;padding:1rem;border-radius:8px;max-width:80%;transition:all .3s ease;margin-bottom:20px}.carousel-container .text-container.text-bottom{bottom:20px;left:50%;transform:translate(-50%);text-align:center}.carousel-container .text-container.text-top{top:20px;left:50%;transform:translate(-50%);text-align:center}.carousel-container .text-container.text-left{left:20px;top:50%;transform:translateY(-50%);text-align:left}.carousel-container .text-container.text-right{right:20px;top:50%;transform:translateY(-50%);text-align:right}.carousel-container .text-container .slide-title{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;text-shadow:1px 1px 3px rgba(0,0,0,.8)}.carousel-container .text-container .slide-description{margin:0;font-size:1rem;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.carousel-container .carousel-dot-container{position:absolute;right:0;left:0;bottom:0;display:flex;justify-content:center;padding:0;margin-bottom:1rem;z-index:2}.carousel-container .dot{cursor:pointer;height:13px;width:13px;margin:0 5px;background-color:#fff;border-radius:50%;display:inline-block;transition:opacity .6s ease;opacity:.5}.carousel-container .dot.active,.carousel-container .dot:hover{opacity:1}\n"] }]
|
|
669
669
|
}], ctorParameters: () => [], propDecorators: { slides: [{ type: i0.Input, args: [{ isSignal: true, alias: "slides", required: false }] }], indicators: [{ type: i0.Input, args: [{ isSignal: true, alias: "indicators", required: false }] }], showText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showText", required: false }] }], textPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "textPosition", required: false }] }] } });
|
|
670
670
|
|
|
671
671
|
class NettyUICheckboxToggle extends UiBase {
|
|
@@ -717,7 +717,7 @@ class NettyUICheckboxToggle extends UiBase {
|
|
|
717
717
|
useExisting: forwardRef(() => NettyUICheckboxToggle),
|
|
718
718
|
multi: true,
|
|
719
719
|
},
|
|
720
|
-
], usesInheritance: true, ngImport: i0, template: "@if (type() === 'checkbox') {\n<mat-checkbox\n #inputModel=\"ngModel\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\"\n [labelPosition]=\"labelPosition()\"\n [class.circle]=\"shape() === 'circle'\"\n [class.rectangle]=\"shape() === 'rectangle'\"\n>\n {{ label() }}\n</mat-checkbox>\n} @else {\n<mat-slide-toggle\n #inputModel=\"ngModel\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\"\n class=\"slide-toggle\"\n>\n {{ label() }}\n</mat-slide-toggle>\n}\n\n<!-- Error message display using UiBase's getErrorMessage() -->\n@if (ngModel?.invalid && (ngModel?.dirty || ngModel?.touched)) {\n<div class=\"error-message\">{{ getErrorMessage() }}</div>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$
|
|
720
|
+
], usesInheritance: true, ngImport: i0, template: "@if (type() === 'checkbox') {\n<mat-checkbox\n #inputModel=\"ngModel\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\"\n [labelPosition]=\"labelPosition()\"\n [class.circle]=\"shape() === 'circle'\"\n [class.rectangle]=\"shape() === 'rectangle'\"\n>\n {{ label() }}\n</mat-checkbox>\n} @else {\n<mat-slide-toggle\n #inputModel=\"ngModel\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\"\n class=\"slide-toggle\"\n>\n {{ label() }}\n</mat-slide-toggle>\n}\n\n<!-- Error message display using UiBase's getErrorMessage() -->\n@if (ngModel?.invalid && (ngModel?.dirty || ngModel?.touched)) {\n<div class=\"error-message\">{{ getErrorMessage() }}</div>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i2$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }] });
|
|
721
721
|
}
|
|
722
722
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUICheckboxToggle, decorators: [{
|
|
723
723
|
type: Component,
|
|
@@ -774,7 +774,7 @@ class NettyUIButton extends UiBase {
|
|
|
774
774
|
this.timerSub?.unsubscribe();
|
|
775
775
|
}
|
|
776
776
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIButton, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
777
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIButton, isStandalone: true, selector: "ntyui-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, isFilled: { classPropertyName: "isFilled", publicName: "isFilled", isSignal: true, isRequired: false, transformFunction: null }, menuReference: { classPropertyName: "menuReference", publicName: "menuReference", isSignal: true, isRequired: false, transformFunction: null }, disableOnClick: { classPropertyName: "disableOnClick", publicName: "disableOnClick", isSignal: true, isRequired: false, transformFunction: null }, disableDuration: { classPropertyName: "disableDuration", publicName: "disableDuration", isSignal: true, isRequired: false, transformFunction: null }, waitingText: { classPropertyName: "waitingText", publicName: "waitingText", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, usesInheritance: true, ngImport: i0, template: "@if (type() === 'menu') {\n <button\n type=\"button\"\n mat-button\n class=\"ui-menu-button\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matMenuTriggerFor]=\"menuReference()\">\n @if (icon() && countdown() === 0) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n <span>{{ getDisplayText() }}</span>\n @if (menuReference() && !(countdown() > 0)){\n <mat-icon class=\"menu-icon\" >arrow_drop_down</mat-icon>\n }\n </button>\n} @else {\n @if(isFilled()){\n <button mat-raised-button color=\"primary\" [disabled]=\"isDisabled()\" (click)=\"onClicked()\" \n class=\"regular-button\" matButton=\"filled\">\n @if(icon()){\n <mat-icon >{{ icon() }}</mat-icon>\n }\n {{ getDisplayText() }}\n </button>\n } @else {\n <button mat-stroked-button color=\"primary\" [disabled]=\"isDisabled()\" (click)=\"onClicked()\" \n class=\"regular-button\">\n @if(icon()){\n <mat-icon >{{ icon() }}</mat-icon>\n }\n {{ getDisplayText() }}\n </button>\n } \n}", styles: ["@charset \"UTF-8\";.example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.flex-container{display:flex;justify-content:center;align-items:center}.ui-menu-button{flex-direction:row-reverse}.ui-menu-button mat-icon{font-size:20px;width:24px;height:24px;margin:15px}.ui-menu-button .menu-icon{margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$
|
|
777
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIButton, isStandalone: true, selector: "ntyui-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, isFilled: { classPropertyName: "isFilled", publicName: "isFilled", isSignal: true, isRequired: false, transformFunction: null }, menuReference: { classPropertyName: "menuReference", publicName: "menuReference", isSignal: true, isRequired: false, transformFunction: null }, disableOnClick: { classPropertyName: "disableOnClick", publicName: "disableOnClick", isSignal: true, isRequired: false, transformFunction: null }, disableDuration: { classPropertyName: "disableDuration", publicName: "disableDuration", isSignal: true, isRequired: false, transformFunction: null }, waitingText: { classPropertyName: "waitingText", publicName: "waitingText", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, usesInheritance: true, ngImport: i0, template: "@if (type() === 'menu') {\n <button\n type=\"button\"\n mat-button\n class=\"ui-menu-button\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matMenuTriggerFor]=\"menuReference()\">\n @if (icon() && countdown() === 0) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n <span>{{ getDisplayText() }}</span>\n @if (menuReference() && !(countdown() > 0)){\n <mat-icon class=\"menu-icon\" >arrow_drop_down</mat-icon>\n }\n </button>\n} @else {\n @if(isFilled()){\n <button mat-raised-button color=\"primary\" [disabled]=\"isDisabled()\" (click)=\"onClicked()\" \n class=\"regular-button\" matButton=\"filled\">\n @if(icon()){\n <mat-icon >{{ icon() }}</mat-icon>\n }\n {{ getDisplayText() }}\n </button>\n } @else {\n <button mat-stroked-button color=\"primary\" [disabled]=\"isDisabled()\" (click)=\"onClicked()\" \n class=\"regular-button\">\n @if(icon()){\n <mat-icon >{{ icon() }}</mat-icon>\n }\n {{ getDisplayText() }}\n </button>\n } \n}", styles: ["@charset \"UTF-8\";.example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.flex-container{display:flex;justify-content:center;align-items:center}.ui-menu-button{flex-direction:row-reverse}.ui-menu-button mat-icon{font-size:20px;width:24px;height:24px;margin:15px}.ui-menu-button .menu-icon{margin-left:10px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i3$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: CommonModule }] });
|
|
778
778
|
}
|
|
779
779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIButton, decorators: [{
|
|
780
780
|
type: Component,
|
|
@@ -785,10 +785,7 @@ class NettyUIFilterButton extends UiBase {
|
|
|
785
785
|
elementRef;
|
|
786
786
|
// Input signals
|
|
787
787
|
icon = input('', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
788
|
-
disableOnClick = input(false, ...(ngDevMode ? [{ debugName: "disableOnClick", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
789
|
-
disableDuration = input(5, ...(ngDevMode ? [{ debugName: "disableDuration" }] : []));
|
|
790
788
|
waitingText = input('', ...(ngDevMode ? [{ debugName: "waitingText" }] : []));
|
|
791
|
-
type = input('filter', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
792
789
|
searchValue = input('', ...(ngDevMode ? [{ debugName: "searchValue" }] : []));
|
|
793
790
|
// View child
|
|
794
791
|
filterInput = viewChild('filterInput', ...(ngDevMode ? [{ debugName: "filterInput" }] : []));
|
|
@@ -796,7 +793,6 @@ class NettyUIFilterButton extends UiBase {
|
|
|
796
793
|
_searchValue = signal(this.searchValue(), ...(ngDevMode ? [{ debugName: "_searchValue" }] : []));
|
|
797
794
|
lastEmittedValue = signal('', ...(ngDevMode ? [{ debugName: "lastEmittedValue" }] : []));
|
|
798
795
|
showFilterInput = signal(false, ...(ngDevMode ? [{ debugName: "showFilterInput" }] : []));
|
|
799
|
-
countdown = signal(0, ...(ngDevMode ? [{ debugName: "countdown" }] : []));
|
|
800
796
|
_isDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_isDisabled" }] : []));
|
|
801
797
|
// Computed signals
|
|
802
798
|
isDisabled = computed(() => this.disabled() || this._isDisabled(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
|
|
@@ -804,6 +800,7 @@ class NettyUIFilterButton extends UiBase {
|
|
|
804
800
|
// Outputs
|
|
805
801
|
clicked = output();
|
|
806
802
|
onSearch = output(); // Emits search value
|
|
803
|
+
isSearchOpen = output(); // True if text edit is open
|
|
807
804
|
// Timer
|
|
808
805
|
debounceTimer;
|
|
809
806
|
constructor(elementRef) {
|
|
@@ -829,14 +826,7 @@ class NettyUIFilterButton extends UiBase {
|
|
|
829
826
|
onClicked() {
|
|
830
827
|
if (this.isDisabled())
|
|
831
828
|
return;
|
|
832
|
-
|
|
833
|
-
this.toggleFilterInput();
|
|
834
|
-
return;
|
|
835
|
-
}
|
|
836
|
-
if (this.disableOnClick()) {
|
|
837
|
-
this.startDisableTimer();
|
|
838
|
-
}
|
|
839
|
-
this.clicked.emit();
|
|
829
|
+
this.toggleFilterInput();
|
|
840
830
|
}
|
|
841
831
|
onSearchInputChange(value) {
|
|
842
832
|
this._searchValue.set(value);
|
|
@@ -846,12 +836,14 @@ class NettyUIFilterButton extends UiBase {
|
|
|
846
836
|
}
|
|
847
837
|
toggleFilterInput() {
|
|
848
838
|
this.showFilterInput.update((show) => !show);
|
|
839
|
+
this.isSearchOpen.emit(this.showFilterInput());
|
|
849
840
|
if (this.showFilterInput()) {
|
|
850
841
|
setTimeout(() => this.filterInput()?.nativeElement.focus());
|
|
851
842
|
}
|
|
852
843
|
}
|
|
853
844
|
closeFilter() {
|
|
854
845
|
this.showFilterInput.set(false);
|
|
846
|
+
this.isSearchOpen.emit(false);
|
|
855
847
|
}
|
|
856
848
|
handleDocumentClick(event) {
|
|
857
849
|
// Check if click was outside the filter button/input
|
|
@@ -860,36 +852,19 @@ class NettyUIFilterButton extends UiBase {
|
|
|
860
852
|
this.closeFilter();
|
|
861
853
|
}
|
|
862
854
|
}
|
|
863
|
-
startDisableTimer() {
|
|
864
|
-
this._isDisabled.set(true);
|
|
865
|
-
this.countdown.set(this.disableDuration());
|
|
866
|
-
const timer = setInterval(() => {
|
|
867
|
-
this.countdown.update((v) => {
|
|
868
|
-
const newVal = v - 1;
|
|
869
|
-
if (newVal <= 0) {
|
|
870
|
-
clearInterval(timer);
|
|
871
|
-
this._isDisabled.set(false);
|
|
872
|
-
}
|
|
873
|
-
return newVal;
|
|
874
|
-
});
|
|
875
|
-
}, 1000);
|
|
876
|
-
}
|
|
877
855
|
getDisplayText() {
|
|
878
|
-
if (this.countdown() > 0) {
|
|
879
|
-
return this.waitingText() || `${this.countdown()}s`;
|
|
880
|
-
}
|
|
881
856
|
return this.label();
|
|
882
857
|
}
|
|
883
858
|
ngOnDestroy() {
|
|
884
859
|
clearTimeout(this.debounceTimer);
|
|
885
860
|
}
|
|
886
861
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIFilterButton, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
887
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIFilterButton, isStandalone: true, selector: "ntyui-filter-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null },
|
|
862
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIFilterButton, isStandalone: true, selector: "ntyui-filter-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, waitingText: { classPropertyName: "waitingText", publicName: "waitingText", isSignal: true, isRequired: false, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked", onSearch: "onSearch", isSearchOpen: "isSearchOpen" }, host: { listeners: { "document:click": "handleDocumentClick($event)" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n mat-button\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n class=\"filter-button\"\n>\n@if (icon()){\n <mat-icon [style.color]=\"iconColor()\">{{ icon() }}</mat-icon>\n}\n</button>\n\n@if (showFilterInput()) {\n<input\n #filterInput\n type=\"text\"\n class=\"filter-input\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"_searchValue()\"\n (ngModelChange)=\"onSearchInputChange($event)\"\n (click)=\"onFilterInputClick($event)\"\n/>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.filter-input{position:absolute;z-index:10;width:300px;height:30px;border-radius:5px}.filter-button mat-icon{font-size:24px;width:24px;height:24px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
888
863
|
}
|
|
889
864
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIFilterButton, decorators: [{
|
|
890
865
|
type: Component,
|
|
891
|
-
args: [{ selector: 'ntyui-filter-button', imports: [MatButtonModule, MatIconModule, CommonModule, FormsModule], template: "
|
|
892
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }],
|
|
866
|
+
args: [{ selector: 'ntyui-filter-button', imports: [MatButtonModule, MatIconModule, CommonModule, FormsModule], template: "<button\n mat-button\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n class=\"filter-button\"\n>\n@if (icon()){\n <mat-icon [style.color]=\"iconColor()\">{{ icon() }}</mat-icon>\n}\n</button>\n\n@if (showFilterInput()) {\n<input\n #filterInput\n type=\"text\"\n class=\"filter-input\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"_searchValue()\"\n (ngModelChange)=\"onSearchInputChange($event)\"\n (click)=\"onFilterInputClick($event)\"\n/>\n}\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.filter-input{position:absolute;z-index:10;width:300px;height:30px;border-radius:5px}.filter-button mat-icon{font-size:24px;width:24px;height:24px}\n"] }]
|
|
867
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], waitingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "waitingText", required: false }] }], searchValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchValue", required: false }] }], filterInput: [{ type: i0.ViewChild, args: ['filterInput', { isSignal: true }] }], clicked: [{ type: i0.Output, args: ["clicked"] }], onSearch: [{ type: i0.Output, args: ["onSearch"] }], isSearchOpen: [{ type: i0.Output, args: ["isSearchOpen"] }], handleDocumentClick: [{
|
|
893
868
|
type: HostListener,
|
|
894
869
|
args: ['document:click', ['$event']]
|
|
895
870
|
}] } });
|
|
@@ -917,13 +892,13 @@ class NettyUINumberInput extends UiBase {
|
|
|
917
892
|
}
|
|
918
893
|
}
|
|
919
894
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUINumberInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
920
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
895
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUINumberInput, isStandalone: true, selector: "ntyui-number-input", providers: [
|
|
921
896
|
{
|
|
922
897
|
provide: NG_VALUE_ACCESSOR,
|
|
923
898
|
useExisting: forwardRef(() => NettyUINumberInput),
|
|
924
899
|
multi: true,
|
|
925
900
|
},
|
|
926
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
901
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n name=\"calculation\"\n #calcInput\n class=\"calculation-input\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n (keydown.enter)=\"calculateExpression($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.calculation-input{text-align:right;padding-left:-24px}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
927
902
|
}
|
|
928
903
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUINumberInput, decorators: [{
|
|
929
904
|
type: Component,
|
|
@@ -940,7 +915,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
940
915
|
useExisting: forwardRef(() => NettyUINumberInput),
|
|
941
916
|
multi: true,
|
|
942
917
|
},
|
|
943
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
918
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n name=\"calculation\"\n #calcInput\n class=\"calculation-input\"\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n (keydown.enter)=\"calculateExpression($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n } @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.calculation-input{text-align:right;padding-left:-24px}\n"] }]
|
|
944
919
|
}] });
|
|
945
920
|
|
|
946
921
|
class NettyUISearchInput extends UiBase {
|
|
@@ -950,13 +925,13 @@ class NettyUISearchInput extends UiBase {
|
|
|
950
925
|
this.search.emit(this.value());
|
|
951
926
|
}
|
|
952
927
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUISearchInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
953
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
928
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUISearchInput, isStandalone: true, selector: "ntyui-search-input", outputs: { search: "search" }, providers: [
|
|
954
929
|
{
|
|
955
930
|
provide: NG_VALUE_ACCESSOR,
|
|
956
931
|
useExisting: forwardRef(() => NettyUISearchInput),
|
|
957
932
|
multi: true,
|
|
958
933
|
},
|
|
959
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
934
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n type=\"text\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n (keyup.enter)=\"emitSearch()\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n }\n\n <button\n class=\"search-icon\"\n mat-icon-button\n matSuffix\n (click)=\"emitSearch()\"\n aria-label=\"Search\"\n >\n <mat-icon matSuffix>search</mat-icon>\n </button>\n\n @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
960
935
|
}
|
|
961
936
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUISearchInput, decorators: [{
|
|
962
937
|
type: Component,
|
|
@@ -973,7 +948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
973
948
|
useExisting: forwardRef(() => NettyUISearchInput),
|
|
974
949
|
multi: true,
|
|
975
950
|
},
|
|
976
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
951
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n type=\"text\"\n matInput\n [placeholder]=\"placeholder()\"\n [(ngModel)]=\"value\"\n (input)=\"onInputChange($event)\"\n (keyup.enter)=\"emitSearch()\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n }\n\n <button\n class=\"search-icon\"\n mat-icon-button\n matSuffix\n (click)=\"emitSearch()\"\n aria-label=\"Search\"\n >\n <mat-icon matSuffix>search</mat-icon>\n </button>\n\n @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}\n"] }]
|
|
977
952
|
}], propDecorators: { search: [{ type: i0.Output, args: ["search"] }] } });
|
|
978
953
|
|
|
979
954
|
class NettyUISelect extends UiBase {
|
|
@@ -1035,7 +1010,7 @@ class NettyUISelect extends UiBase {
|
|
|
1035
1010
|
useExisting: forwardRef(() => NettyUISelect),
|
|
1036
1011
|
multi: true,
|
|
1037
1012
|
},
|
|
1038
|
-
], viewQueries: [{ propertyName: "selectModel", first: true, predicate: ["selectModel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
1013
|
+
], viewQueries: [{ propertyName: "selectModel", first: true, predicate: ["selectModel"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <mat-select\n #inputModel=\"ngModel\"\n [(ngModel)]=\"selectedValue\"\n [placeholder]=\"placeholder()\"\n [required]=\"required() && !nullAllowed()\"\n [multiple]=\"multiple()\"\n >\n <!-- Custom trigger -->\n @if (showCustomTrigger()) {\n <mat-select-trigger>\n @if (multiple()) { {{ getSelectedText(selectedValue()?.[0]) || '' }} @if\n ((selectedValue()?.length || 0) > 1) {\n <span class=\"additional-selection\">\n (+{{ getSelectedCount() - 1 }} {{ getSelectedCount() === 2 ? 'other' :\n 'others' }})\n </span>\n } } @else { {{ getSelectedText(selectedValue()) || '' }} }\n </mat-select-trigger>\n }\n <!-- None option -->\n @if (hasNoneOption()) {\n <mat-option [value]=\"null\"> {{ placeholder() || 'Hepsi' }} </mat-option>\n }\n <!-- Dynamic options -->\n @for (option of enumList(); track option.value) {\n <mat-option [value]=\"option.value\"> {{ option.text }} </mat-option>\n }\n </mat-select>\n\n @if (inputModel?.hasError('required')) {\n <mat-error>{{ getErrorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.example-full-width{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i2$2.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatInputModule }] });
|
|
1039
1014
|
}
|
|
1040
1015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUISelect, decorators: [{
|
|
1041
1016
|
type: Component,
|
|
@@ -1051,7 +1026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
1051
1026
|
useExisting: forwardRef(() => NettyUISelect),
|
|
1052
1027
|
multi: true,
|
|
1053
1028
|
},
|
|
1054
|
-
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n
|
|
1029
|
+
], template: "<mat-form-field\n class=\"example-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <mat-select\n #inputModel=\"ngModel\"\n [(ngModel)]=\"selectedValue\"\n [placeholder]=\"placeholder()\"\n [required]=\"required() && !nullAllowed()\"\n [multiple]=\"multiple()\"\n >\n <!-- Custom trigger -->\n @if (showCustomTrigger()) {\n <mat-select-trigger>\n @if (multiple()) { {{ getSelectedText(selectedValue()?.[0]) || '' }} @if\n ((selectedValue()?.length || 0) > 1) {\n <span class=\"additional-selection\">\n (+{{ getSelectedCount() - 1 }} {{ getSelectedCount() === 2 ? 'other' :\n 'others' }})\n </span>\n } } @else { {{ getSelectedText(selectedValue()) || '' }} }\n </mat-select-trigger>\n }\n <!-- None option -->\n @if (hasNoneOption()) {\n <mat-option [value]=\"null\"> {{ placeholder() || 'Hepsi' }} </mat-option>\n }\n <!-- Dynamic options -->\n @for (option of enumList(); track option.value) {\n <mat-option [value]=\"option.value\"> {{ option.text }} </mat-option>\n }\n </mat-select>\n\n @if (inputModel?.hasError('required')) {\n <mat-error>{{ getErrorMessage() }}</mat-error>\n }\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.example-full-width{width:100%}\n"] }]
|
|
1055
1030
|
}], ctorParameters: () => [], propDecorators: { showNoneOption: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNoneOption", required: false }] }], nullAllowed: [{ type: i0.Input, args: [{ isSignal: true, alias: "nullAllowed", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showCustomTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCustomTrigger", required: false }] }], enumList: [{ type: i0.Input, args: [{ isSignal: true, alias: "enumList", required: false }] }, { type: i0.Output, args: ["enumListChange"] }], selectedValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValue", required: false }] }, { type: i0.Output, args: ["selectedValueChange"] }], selectModel: [{ type: i0.ViewChild, args: ['selectModel', { isSignal: true }] }] } });
|
|
1056
1031
|
|
|
1057
1032
|
class NettyUITimePicker extends UiBase {
|
|
@@ -1082,7 +1057,7 @@ class NettyUITimePicker extends UiBase {
|
|
|
1082
1057
|
this.timeValue.set(fixedDate);
|
|
1083
1058
|
}
|
|
1084
1059
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1085
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
1060
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUITimePicker, isStandalone: true, selector: "ntyui-time-picker", inputs: { timeValue: { classPropertyName: "timeValue", publicName: "timeValue", isSignal: true, isRequired: false, transformFunction: null }, timeFormat: { classPropertyName: "timeFormat", publicName: "timeFormat", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { timeValue: "timeValueChange" }, providers: [provideNativeDateAdapter()], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && timeValue()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"picker\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"onTimeChange($event)\"\n [placeholder]=\"placeholder()\"\n />\n\n @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-timepicker #picker />\n <mat-timepicker-toggle [for]=\"picker\" matSuffix />\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}mat-form-field{margin-right:16px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTimepickerModule }, { kind: "component", type: i6.MatTimepicker, selector: "mat-timepicker", inputs: ["interval", "options", "disableRipple", "aria-label", "aria-labelledby"], outputs: ["selected", "opened", "closed"], exportAs: ["matTimepicker"] }, { kind: "directive", type: i6.MatTimepickerInput, selector: "input[matTimepicker]", inputs: ["value", "matTimepicker", "matTimepickerMin", "matTimepickerMax", "matTimepickerOpenOnClick", "disabled"], outputs: ["valueChange"], exportAs: ["matTimepickerInput"] }, { kind: "component", type: i6.MatTimepickerToggle, selector: "mat-timepicker-toggle", inputs: ["for", "aria-label", "aria-labelledby", "disabled", "tabIndex", "disableRipple"], exportAs: ["matTimepickerToggle"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1086
1061
|
}
|
|
1087
1062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITimePicker, decorators: [{
|
|
1088
1063
|
type: Component,
|
|
@@ -1094,7 +1069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
1094
1069
|
FormsModule,
|
|
1095
1070
|
CommonModule,
|
|
1096
1071
|
ReactiveFormsModule,
|
|
1097
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideNativeDateAdapter()], template: "<mat-form-field\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && timeValue()\"\n>\n
|
|
1072
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideNativeDateAdapter()], template: "<mat-form-field\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && timeValue()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #inputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"picker\"\n [(ngModel)]=\"timeValue\"\n (ngModelChange)=\"onTimeChange($event)\"\n [placeholder]=\"placeholder()\"\n />\n\n @if (inputModel?.invalid && (inputModel?.dirty || inputModel?.touched)) {\n <mat-error> {{ getErrorMessage() }} </mat-error>\n }\n\n <mat-timepicker #picker />\n <mat-timepicker-toggle [for]=\"picker\" matSuffix />\n</mat-form-field>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}mat-form-field{margin-right:16px}\n"] }]
|
|
1098
1073
|
}], ctorParameters: () => [], propDecorators: { timeValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeValue", required: false }] }, { type: i0.Output, args: ["timeValueChange"] }], timeFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeFormat", required: false }] }] } });
|
|
1099
1074
|
|
|
1100
1075
|
class NettyUITree {
|
|
@@ -1338,7 +1313,7 @@ class NettyUITree {
|
|
|
1338
1313
|
return node.children.every((child) => child.disabled || this.allChildrenDisabled(child));
|
|
1339
1314
|
}
|
|
1340
1315
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITree, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1341
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUITree, isStandalone: true, selector: "ntyui-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, selectBranch: { classPropertyName: "selectBranch", publicName: "selectBranch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", selectionMode: "selectionModeChange", selectedIds: "selectedIdsChange" }, ngImport: i0, template: "<div class=\"tree-container\">\n @for (node of treeData(); track node.id) {\n <div class=\"tree-node\" [style.margin-left.px]=\"getNodeLevel(node) * 24\">\n <!-- Expand/Collapse button -->\n @if (node.children && node.children.length > 0) {\n <button\n mat-icon-button\n class=\"expand-btn\"\n (click)=\"toggleExpand(node);\"\n [attr.aria-label]=\"node.expanded ? 'Collapse' : 'Expand'\"\n >\n <mat-icon>{{ node.expanded ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n } @else {\n <!-- Empty space for leaf nodes -->\n <div class=\"expand-spacer\"></div>\n }\n\n <!-- Checkbox for multiple selection -->\n @if (selectionMode() === 'multiple') {\n <mat-checkbox\n class=\"node-checkbox\"\n [checked]=\"node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (change)=\"onCheckboxChange(node, $event)\"\n [id]=\"'checkbox-' + node.id\"\n [disabled]=\"node.disabled || allChildrenDisabled(node)\"\n >\n {{ node.text }}\n </mat-checkbox>\n }\n\n <!-- Radio button for single selection -->\n @if (selectionMode() === 'single') {\n <mat-radio-button\n class=\"node-radio\"\n [checked]=\"node.selected || false\"\n (change)=\"onRadioChange(node)\"\n [name]=\"'tree-radio-' + componentId\"\n [id]=\"'radio-' + node.id\"\n [value]=\"node.id\"\n [disabled]=\"node.disabled || allChildrenDisabled(node)\"\n >\n {{ node.text }}\n </mat-radio-button>\n }\n </div>\n }\n</div>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.tree-container{font-family:Roboto,sans-serif;-webkit-user-select:none;user-select:none;padding:8px 0}.tree-node{display:flex;align-items:center;padding:4px 0;min-height:40px}.expand-btn{width:32px;height:32px;margin-right:8px;flex-shrink:0}.expand-btn mat-icon{font-size:18px;width:18px;height:18px}.expand-spacer{width:40px;display:inline-block;flex-shrink:0}.node-checkbox,.node-radio{flex-grow:1}.node-checkbox ::ng-deep .mat-mdc-checkbox-label,.node-radio ::ng-deep .mat-mdc-radio-label{width:100%}.tree-node:hover{background-color:#0000000a;border-radius:4px}.node-checkbox.mat-mdc-checkbox-checked,.node-radio.mat-mdc-radio-checked{background-color:#3f51b514;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$
|
|
1316
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUITree, isStandalone: true, selector: "ntyui-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null }, selectBranch: { classPropertyName: "selectBranch", publicName: "selectBranch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", selectionMode: "selectionModeChange", selectedIds: "selectedIdsChange" }, ngImport: i0, template: "<div class=\"tree-container\">\n @for (node of treeData(); track node.id) {\n <div class=\"tree-node\" [style.margin-left.px]=\"getNodeLevel(node) * 24\">\n <!-- Expand/Collapse button -->\n @if (node.children && node.children.length > 0) {\n <button\n mat-icon-button\n class=\"expand-btn\"\n (click)=\"toggleExpand(node);\"\n [attr.aria-label]=\"node.expanded ? 'Collapse' : 'Expand'\"\n >\n <mat-icon>{{ node.expanded ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n } @else {\n <!-- Empty space for leaf nodes -->\n <div class=\"expand-spacer\"></div>\n }\n\n <!-- Checkbox for multiple selection -->\n @if (selectionMode() === 'multiple') {\n <mat-checkbox\n class=\"node-checkbox\"\n [checked]=\"node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (change)=\"onCheckboxChange(node, $event)\"\n [id]=\"'checkbox-' + node.id\"\n [disabled]=\"node.disabled || allChildrenDisabled(node)\"\n >\n {{ node.text }}\n </mat-checkbox>\n }\n\n <!-- Radio button for single selection -->\n @if (selectionMode() === 'single') {\n <mat-radio-button\n class=\"node-radio\"\n [checked]=\"node.selected || false\"\n (change)=\"onRadioChange(node)\"\n [name]=\"'tree-radio-' + componentId\"\n [id]=\"'radio-' + node.id\"\n [value]=\"node.id\"\n [disabled]=\"node.disabled || allChildrenDisabled(node)\"\n >\n {{ node.text }}\n </mat-radio-button>\n }\n </div>\n }\n</div>\n", styles: [".example-full-width{width:100%;max-width:500px}.mat-mdc-form-field-subscript-wrapper{width:auto;height:0}.clear-btn{background:none;border:none;box-shadow:none;cursor:pointer}.search-icon{background:none;border:none;box-shadow:none;opacity:1;cursor:pointer}.search-icon:hover,.clear-btn:hover{color:var(--mat-sys-primary)}.required-field{background-color:var(--mat-sys-required)}.required-with-value{background-color:transparent!important}::ng-deep .circle .mdc-checkbox__background{border-radius:50%!important}::ng-deep .circle .mdc-checkbox__background:before{border-radius:50%!important}.tree-container{font-family:Roboto,sans-serif;-webkit-user-select:none;user-select:none;padding:8px 0}.tree-node{display:flex;align-items:center;padding:4px 0;min-height:40px}.expand-btn{width:32px;height:32px;margin-right:8px;flex-shrink:0}.expand-btn mat-icon{font-size:18px;width:18px;height:18px}.expand-spacer{width:40px;display:inline-block;flex-shrink:0}.node-checkbox,.node-radio{flex-grow:1}.node-checkbox ::ng-deep .mat-mdc-checkbox-label,.node-radio ::ng-deep .mat-mdc-radio-label{width:100%}.tree-node:hover{background-color:#0000000a;border-radius:4px}.node-checkbox.mat-mdc-checkbox-checked,.node-radio.mat-mdc-radio-checked{background-color:#3f51b514;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "component", type: i2$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
1342
1317
|
}
|
|
1343
1318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUITree, decorators: [{
|
|
1344
1319
|
type: Component,
|
|
@@ -1447,7 +1422,7 @@ class NettyUIColorPicker {
|
|
|
1447
1422
|
this.closePicker();
|
|
1448
1423
|
}
|
|
1449
1424
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1450
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIColorPicker, isStandalone: true, selector: "ntyui-color-picker", inputs: { selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: true, isRequired: false, transformFunction: null }, customColorPresets: { classPropertyName: "customColorPresets", publicName: "customColorPresets", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedColor: "selectedColorChange", colorChange: "colorChange" }, viewQueries: [{ propertyName: "colorInput", first: true, predicate: ["colorInput"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"color-picker-input-container\">\n <span\n matPrefix\n class=\"color-preview\"\n [style.background-color]=\"selectedColor()\"\n (click)=\"togglePicker()\"\n ></span>\n\n <input\n matInput\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"onInputChange($event)\"\n placeholder=\"Renk Kodu (\u00F6rn: #FFFFFF)\"\n />\n\n <mat-icon matSuffix (click)=\"togglePicker()\">search</mat-icon>\n</mat-form-field>\n\n<input\n type=\"color\"\n class=\"hidden-color-input\"\n #colorInput\n [value]=\"selectedColor()\"\n (change)=\"onColorPickerChange($event)\"\n/>\n\n<!-- Custom color picker pop-up -->\n@if (isPickerVisible()) {\n<div class=\"custom-color-picker-overlay\" (click)=\"closePicker()\">\n <div class=\"custom-color-picker\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"picker-header\">\n <h3>{{'@
|
|
1425
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NettyUIColorPicker, isStandalone: true, selector: "ntyui-color-picker", inputs: { selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: true, isRequired: false, transformFunction: null }, customColorPresets: { classPropertyName: "customColorPresets", publicName: "customColorPresets", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedColor: "selectedColorChange", colorChange: "colorChange" }, viewQueries: [{ propertyName: "colorInput", first: true, predicate: ["colorInput"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"color-picker-input-container\">\n <span\n matPrefix\n class=\"color-preview\"\n [style.background-color]=\"selectedColor()\"\n (click)=\"togglePicker()\"\n ></span>\n\n <input\n matInput\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"onInputChange($event)\"\n placeholder=\"Renk Kodu (\u00F6rn: #FFFFFF)\"\n />\n\n <mat-icon matSuffix (click)=\"togglePicker()\">search</mat-icon>\n</mat-form-field>\n\n<input\n type=\"color\"\n class=\"hidden-color-input\"\n #colorInput\n [value]=\"selectedColor()\"\n (change)=\"onColorPickerChange($event)\"\n/>\n\n<!-- Custom color picker pop-up -->\n@if (isPickerVisible()) {\n<div class=\"custom-color-picker-overlay\" (click)=\"closePicker()\">\n <div class=\"custom-color-picker\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"picker-header\">\n <h3>{{'@choose_Color' | translate}}</h3>\n <button class=\"close-btn\" (click)=\"closePicker()\" type=\"button\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"picker-content\">\n <!-- Custom color picker -->\n <div class=\"color-input-section\">\n <label class=\"section-label\"\n >{{'@choose_Custom_Color' | translate}}</label\n >\n <input\n type=\"color\"\n [value]=\"selectedColor()\"\n (change)=\"onCustomColorChange($event)\"\n class=\"native-color-input\"\n />\n <span class=\"current-color\"\n >{{'@available' | translate}}: {{ selectedColor() }}</span\n >\n </div>\n\n <!-- Custom colors -->\n @if (hasCustomColors()) {\n <div class=\"color-presets-section\">\n <label class=\"section-label\">{{'@defined_Colors' | translate}}</label>\n <div class=\"color-presets-grid\">\n @for (color of customColorPresets(); track color) {\n <div\n class=\"color-preset\"\n [style.background-color]=\"color\"\n (click)=\"selectColor(color)\"\n [class.selected]=\"color === selectedColor()\"\n [title]=\"color\"\n >\n @if (color === selectedColor()) {\n <mat-icon class=\"check-icon\">check</mat-icon>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Standard colors -->\n <div class=\"color-presets-section\">\n <label class=\"section-label\">\n {{ hasCustomColors() ? ('@standard_Colors' | translate) :\n ('@color_Palette' | translate) }}\n </label>\n <div class=\"color-presets-grid\">\n @for (color of defaultColorPresets(); track color) {\n <div\n class=\"color-preset\"\n [style.background-color]=\"color\"\n (click)=\"selectColor(color)\"\n [class.selected]=\"color === selectedColor()\"\n [title]=\"color\"\n >\n @if (color === selectedColor()) {\n <mat-icon class=\"check-icon\">check</mat-icon>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n}\n", styles: [".color-picker-input-container{width:100%;max-width:280px}.color-preview{display:inline-block;width:20px;height:20px;margin-left:16px;border-radius:50%;border:2px solid #e0e0e0;cursor:pointer;margin-right:8px;transition:all .2s ease}.color-preview:hover{border-color:#999;transform:scale(1.1)}.hidden-color-input{display:none}.custom-color-picker-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}.custom-color-picker{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;width:min(90vw,340px);max-height:min(80vh,600px);overflow:hidden;animation:slideUp .2s ease}.picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#fff}.picker-header h3{margin:0;font-size:16px;font-weight:600;color:#333}.picker-header .close-btn{background:none;border:none;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.picker-header .close-btn:hover{background-color:#f5f5f5;color:#333}.picker-header .close-btn mat-icon{font-size:20px;width:20px;height:20px}.picker-content{padding:20px;display:flex;flex-direction:column;gap:24px}.color-input-section{display:flex;flex-direction:column;gap:12px}.color-input-section .section-label{font-weight:600;color:#333;font-size:14px}.color-input-section .native-color-input{width:100%;height:48px;cursor:pointer;border:2px solid #e0e0e0;border-radius:8px}.color-input-section .native-color-input:hover{border-color:#ccc}.color-input-section .current-color{font-size:12px;color:#666;text-align:center}.color-presets-section .section-label{display:block;font-weight:600;color:#333;font-size:14px;margin-bottom:12px}.color-presets-section .color-presets-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.color-presets-section .color-presets-grid .color-preset{position:relative;width:100%;aspect-ratio:1;border-radius:8px;cursor:pointer;border:2px solid #e0e0e0;transition:all .2s ease}.color-presets-section .color-presets-grid .color-preset:hover{transform:scale(1.1);border-color:#999;box-shadow:0 4px 12px #00000026}.color-presets-section .color-presets-grid .color-preset.selected{border-color:#333;transform:scale(1.05)}.color-presets-section .color-presets-grid .color-preset .check-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:16px;width:16px;height:16px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
1451
1426
|
}
|
|
1452
1427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NettyUIColorPicker, decorators: [{
|
|
1453
1428
|
type: Component,
|
|
@@ -1457,7 +1432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImpo
|
|
|
1457
1432
|
MatIconModule,
|
|
1458
1433
|
MatInputModule,
|
|
1459
1434
|
TranslateModule,
|
|
1460
|
-
], template: "<mat-form-field appearance=\"outline\" class=\"color-picker-input-container\">\n <span\n matPrefix\n class=\"color-preview\"\n [style.background-color]=\"selectedColor()\"\n (click)=\"togglePicker()\"\n ></span>\n\n <input\n matInput\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"onInputChange($event)\"\n placeholder=\"Renk Kodu (\u00F6rn: #FFFFFF)\"\n />\n\n <mat-icon matSuffix (click)=\"togglePicker()\">search</mat-icon>\n</mat-form-field>\n\n<input\n type=\"color\"\n class=\"hidden-color-input\"\n #colorInput\n [value]=\"selectedColor()\"\n (change)=\"onColorPickerChange($event)\"\n/>\n\n<!-- Custom color picker pop-up -->\n@if (isPickerVisible()) {\n<div class=\"custom-color-picker-overlay\" (click)=\"closePicker()\">\n <div class=\"custom-color-picker\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"picker-header\">\n <h3>{{'@
|
|
1435
|
+
], template: "<mat-form-field appearance=\"outline\" class=\"color-picker-input-container\">\n <span\n matPrefix\n class=\"color-preview\"\n [style.background-color]=\"selectedColor()\"\n (click)=\"togglePicker()\"\n ></span>\n\n <input\n matInput\n [ngModel]=\"selectedColor()\"\n (ngModelChange)=\"onInputChange($event)\"\n placeholder=\"Renk Kodu (\u00F6rn: #FFFFFF)\"\n />\n\n <mat-icon matSuffix (click)=\"togglePicker()\">search</mat-icon>\n</mat-form-field>\n\n<input\n type=\"color\"\n class=\"hidden-color-input\"\n #colorInput\n [value]=\"selectedColor()\"\n (change)=\"onColorPickerChange($event)\"\n/>\n\n<!-- Custom color picker pop-up -->\n@if (isPickerVisible()) {\n<div class=\"custom-color-picker-overlay\" (click)=\"closePicker()\">\n <div class=\"custom-color-picker\" (click)=\"$event.stopPropagation()\">\n <!-- Header -->\n <div class=\"picker-header\">\n <h3>{{'@choose_Color' | translate}}</h3>\n <button class=\"close-btn\" (click)=\"closePicker()\" type=\"button\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"picker-content\">\n <!-- Custom color picker -->\n <div class=\"color-input-section\">\n <label class=\"section-label\"\n >{{'@choose_Custom_Color' | translate}}</label\n >\n <input\n type=\"color\"\n [value]=\"selectedColor()\"\n (change)=\"onCustomColorChange($event)\"\n class=\"native-color-input\"\n />\n <span class=\"current-color\"\n >{{'@available' | translate}}: {{ selectedColor() }}</span\n >\n </div>\n\n <!-- Custom colors -->\n @if (hasCustomColors()) {\n <div class=\"color-presets-section\">\n <label class=\"section-label\">{{'@defined_Colors' | translate}}</label>\n <div class=\"color-presets-grid\">\n @for (color of customColorPresets(); track color) {\n <div\n class=\"color-preset\"\n [style.background-color]=\"color\"\n (click)=\"selectColor(color)\"\n [class.selected]=\"color === selectedColor()\"\n [title]=\"color\"\n >\n @if (color === selectedColor()) {\n <mat-icon class=\"check-icon\">check</mat-icon>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Standard colors -->\n <div class=\"color-presets-section\">\n <label class=\"section-label\">\n {{ hasCustomColors() ? ('@standard_Colors' | translate) :\n ('@color_Palette' | translate) }}\n </label>\n <div class=\"color-presets-grid\">\n @for (color of defaultColorPresets(); track color) {\n <div\n class=\"color-preset\"\n [style.background-color]=\"color\"\n (click)=\"selectColor(color)\"\n [class.selected]=\"color === selectedColor()\"\n [title]=\"color\"\n >\n @if (color === selectedColor()) {\n <mat-icon class=\"check-icon\">check</mat-icon>\n }\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n}\n", styles: [".color-picker-input-container{width:100%;max-width:280px}.color-preview{display:inline-block;width:20px;height:20px;margin-left:16px;border-radius:50%;border:2px solid #e0e0e0;cursor:pointer;margin-right:8px;transition:all .2s ease}.color-preview:hover{border-color:#999;transform:scale(1.1)}.hidden-color-input{display:none}.custom-color-picker-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}.custom-color-picker{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;width:min(90vw,340px);max-height:min(80vh,600px);overflow:hidden;animation:slideUp .2s ease}.picker-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#fff}.picker-header h3{margin:0;font-size:16px;font-weight:600;color:#333}.picker-header .close-btn{background:none;border:none;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.picker-header .close-btn:hover{background-color:#f5f5f5;color:#333}.picker-header .close-btn mat-icon{font-size:20px;width:20px;height:20px}.picker-content{padding:20px;display:flex;flex-direction:column;gap:24px}.color-input-section{display:flex;flex-direction:column;gap:12px}.color-input-section .section-label{font-weight:600;color:#333;font-size:14px}.color-input-section .native-color-input{width:100%;height:48px;cursor:pointer;border:2px solid #e0e0e0;border-radius:8px}.color-input-section .native-color-input:hover{border-color:#ccc}.color-input-section .current-color{font-size:12px;color:#666;text-align:center}.color-presets-section .section-label{display:block;font-weight:600;color:#333;font-size:14px;margin-bottom:12px}.color-presets-section .color-presets-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.color-presets-section .color-presets-grid .color-preset{position:relative;width:100%;aspect-ratio:1;border-radius:8px;cursor:pointer;border:2px solid #e0e0e0;transition:all .2s ease}.color-presets-section .color-presets-grid .color-preset:hover{transform:scale(1.1);border-color:#999;box-shadow:0 4px 12px #00000026}.color-presets-section .color-presets-grid .color-preset.selected{border-color:#333;transform:scale(1.05)}.color-presets-section .color-presets-grid .color-preset .check-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:16px;width:16px;height:16px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}\n"] }]
|
|
1461
1436
|
}], propDecorators: { selectedColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedColor", required: false }] }, { type: i0.Output, args: ["selectedColorChange"] }], customColorPresets: [{ type: i0.Input, args: [{ isSignal: true, alias: "customColorPresets", required: false }] }], colorChange: [{ type: i0.Output, args: ["colorChange"] }], colorInput: [{ type: i0.ViewChild, args: ['colorInput', { isSignal: true }] }] } });
|
|
1462
1437
|
|
|
1463
1438
|
class NettyEnumValues {
|