@nettyapps/ntyui 21.0.16 → 21.1.1

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.
@@ -804,7 +804,7 @@ class NettyUICheckboxToggle extends UiBase {
804
804
  useExisting: NettyUICheckboxToggle,
805
805
  multi: true,
806
806
  },
807
- ], 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"] }] });
807
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"nty-checkbox-frame\">\n @if (type() === 'checkbox') {\n\n <mat-checkbox #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" [labelPosition]=\"labelPosition()\" [class.circle]=\"shape() === 'circle'\"\n [class.rectangle]=\"shape() === 'rectangle'\">\n {{ label() }}\n </mat-checkbox>\n } @else {\n <mat-slide-toggle #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" class=\"slide-toggle\">\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</div>", 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}.nty-checkbox-frame{display:flex;align-items:center;border:1px solid var(--mat-sys-outline);border-radius:4px;box-sizing:border-box;align-content:center;height:3.5rem;min-height:3.3rem;margin-bottom:.5rem}::ng-deep .nty-checkbox-frame mat-checkbox,::ng-deep .nty-checkbox-frame mat-slide-toggle{width:100%}::ng-deep .nty-checkbox-frame .mdc-label,::ng-deep .nty-checkbox-frame .mdc-form-field{flex:1;min-width:0;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important}::ng-deep .nty-checkbox-frame .mat-mdc-checkbox,::ng-deep .nty-checkbox-frame .mat-mdc-slide-toggle{display:flex;flex:1}\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"] }] });
808
808
  }
809
809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: NettyUICheckboxToggle, decorators: [{
810
810
  type: Component,
@@ -814,7 +814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImpor
814
814
  useExisting: NettyUICheckboxToggle,
815
815
  multi: true,
816
816
  },
817
- ], host: { 'ntyui-id': 'NettyUICheckboxToggle' }, 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"] }]
817
+ ], host: { 'ntyui-id': 'NettyUICheckboxToggle' }, template: "<div class=\"nty-checkbox-frame\">\n @if (type() === 'checkbox') {\n\n <mat-checkbox #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" [labelPosition]=\"labelPosition()\" [class.circle]=\"shape() === 'circle'\"\n [class.rectangle]=\"shape() === 'rectangle'\">\n {{ label() }}\n </mat-checkbox>\n } @else {\n <mat-slide-toggle #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" class=\"slide-toggle\">\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</div>", 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}.nty-checkbox-frame{display:flex;align-items:center;border:1px solid var(--mat-sys-outline);border-radius:4px;box-sizing:border-box;align-content:center;height:3.5rem;min-height:3.3rem;margin-bottom:.5rem}::ng-deep .nty-checkbox-frame mat-checkbox,::ng-deep .nty-checkbox-frame mat-slide-toggle{width:100%}::ng-deep .nty-checkbox-frame .mdc-label,::ng-deep .nty-checkbox-frame .mdc-form-field{flex:1;min-width:0;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important}::ng-deep .nty-checkbox-frame .mat-mdc-checkbox,::ng-deep .nty-checkbox-frame .mat-mdc-slide-toggle{display:flex;flex:1}\n"] }]
818
818
  }], ctorParameters: () => [], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }] } });
819
819
 
820
820
  class NettyUIButton extends UiBase {
@@ -1 +1 @@
1
- {"version":3,"file":"nettyapps-ntyui.mjs","sources":["../../../projects/ntyui/src/lib/ntyui.ts","../../../projects/ntyui/src/lib/ntyui-module.ts","../../../projects/ntyui/src/lib/ui-base/ui-base.ts","../../../projects/ntyui/src/lib/ui-base/ui-base.html","../../../projects/ntyui/src/lib/text-input/text-input.ts","../../../projects/ntyui/src/lib/text-input/text-input.html","../../../projects/ntyui/src/lib/email-input/email-input.ts","../../../projects/ntyui/src/lib/email-input/email-input.html","../../../projects/ntyui/src/lib/date-time/date-time.ts","../../../projects/ntyui/src/lib/date-time/date-time.html","../../../projects/ntyui/src/lib/date-picker/date-picker.ts","../../../projects/ntyui/src/lib/date-picker/date-picker.html","../../../projects/ntyui/src/lib/masked-input/masked-input.ts","../../../projects/ntyui/src/lib/masked-input/masked-input.html","../../../projects/ntyui/src/lib/carousel/carousel.ts","../../../projects/ntyui/src/lib/carousel/carousel.html","../../../projects/ntyui/src/lib/checkbox-toggle/checkbox-toggle.ts","../../../projects/ntyui/src/lib/checkbox-toggle/checkbox-toggle.html","../../../projects/ntyui/src/lib/button/button.ts","../../../projects/ntyui/src/lib/button/button.html","../../../projects/ntyui/src/lib/filter-button/filter-button.ts","../../../projects/ntyui/src/lib/filter-button/filter-button.html","../../../projects/ntyui/src/lib/number-input/number-input.ts","../../../projects/ntyui/src/lib/number-input/number-input.html","../../../projects/ntyui/src/lib/search-input/search-input.ts","../../../projects/ntyui/src/lib/search-input/search-input.html","../../../projects/ntyui/src/lib/select/select.ts","../../../projects/ntyui/src/lib/select/select.html","../../../projects/ntyui/src/lib/visible-switch-button/visible-switch-button.ts","../../../projects/ntyui/src/lib/visible-switch-button/visible-switch-button.html","../../../projects/ntyui/src/lib/time-picker/time-picker.ts","../../../projects/ntyui/src/lib/time-picker/time-picker.html","../../../projects/ntyui/src/lib/tree/tree.ts","../../../projects/ntyui/src/lib/tree/tree.html","../../../projects/ntyui/src/lib/color-picker/color-picker.ts","../../../projects/ntyui/src/lib/color-picker/color-picker.html","../../../projects/ntyui/src/lib/framework/models/enum-values.ts","../../../projects/ntyui/src/lib/framework/services/enumstorage-proxy.ts","../../../projects/ntyui/src/public-api.ts","../../../projects/ntyui/src/nettyapps-ntyui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ntyui',\n standalone: false,\n template: `\n <p>\n ntyui works!\n </p>\n `,\n styles: ``,\n host: { 'ntyui-id': 'Ntyui' },\n})\nexport class Ntyui {\n\n}\n","import { NgModule } from '@angular/core';\nimport { Ntyui } from './ntyui';\n\n@NgModule({\n declarations: [Ntyui],\n imports: [],\n exports: [Ntyui],\n})\nexport class NtyuiModule {}\n","import {\n Component,\n input,\n booleanAttribute,\n model,\n viewChild,\n effect,\n output,\n} from '@angular/core';\nimport { NgModel, Validators } from '@angular/forms';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\n@Component({\n selector: 'ntyui-ui-base',\n imports: [],\n templateUrl: './ui-base.html',\n styleUrl: './ui-base.scss',\n host: { 'ntyui-id': 'UiBase' },\n})\nexport class UiBase {\n // Input properties\n placeholder = input<string>('');\n label = input<string>('');\n required = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n appearance = input<MatFormFieldAppearance>('outline');\n maxLength = input<number | undefined>();\n minLength = input<number | undefined>();\n validateRegex = input<string | RegExp | null>(null);\n validateRegexErrorMessage = input<string>('@invalidFormat');\n forFilter = input(false, { transform: booleanAttribute });\n\n // Debounce properties\n debounce = input<number>(200);\n protected debounceTimer: any;\n\n value = model('');\n\n // Error messages\n errorMessages = input<{\n required?: string;\n minlength?: string;\n maxlength?: string;\n email?: string;\n pattern?: string;\n incomplete?: string;\n [key: string]: string | undefined;\n }>({\n incomplete: 'Please complete the field',\n });\n\n // Reference to ngModel (will be set by child component)\n protected ngModel?: NgModel;\n\n // Get reference to NgModel directive\n inputModel = viewChild<NgModel>('inputModel');\n\n // ControlValueAccessor methods\n protected onChange: (value: any) => void = () => { };\n protected onTouched: () => void = () => { };\n\n constructor() {\n effect(() => {\n this.ngModel = this.inputModel();\n this.updateValidators();\n });\n\n effect(() => {\n this.onChange(this.value());\n });\n\n effect(() => {\n if (this.validateRegex()) {\n this.updateValidators();\n }\n });\n }\n\n // ControlValueAccessor interface implementation\n writeValue(value: any): void {\n this.value.set(value || '');\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n getErrorMessage(): string | undefined {\n if (!this.ngModel?.control) return undefined;\n\n if (this.ngModel.control.hasError('required')) {\n return this.errorMessages().required;\n }\n if (this.ngModel.control.hasError('minlength')) {\n return this.errorMessages().minlength;\n }\n if (this.ngModel.control.hasError('maxlength')) {\n return this.errorMessages().maxlength;\n }\n if (this.ngModel.control.hasError('pattern')) {\n return this.errorMessages().pattern || this.validateRegexErrorMessage();\n }\n\n return undefined;\n }\n\n // Update validators based on input changes\n protected updateValidators() {\n if (!this.ngModel?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n if (this.disabled()) {\n this.ngModel.control.disable({ emitEvent: false });\n } else {\n this.ngModel.control.enable({ emitEvent: false });\n }\n\n const minLength = this.minLength();\n if (minLength !== undefined) {\n validators.push(Validators.minLength(minLength));\n }\n\n const maxLength = this.maxLength();\n if (maxLength !== undefined) {\n validators.push(Validators.maxLength(maxLength));\n }\n\n // Regex validation\n const regexPattern = this.validateRegex();\n if (regexPattern) {\n const pattern =\n regexPattern instanceof RegExp\n ? regexPattern\n : new RegExp(regexPattern);\n validators.push(Validators.pattern(pattern));\n }\n\n this.ngModel.control.setValidators(validators);\n this.ngModel.control.updateValueAndValidity();\n }\n\n onInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n let val = input.value;\n\n const regexPattern = this.validateRegex();\n if (regexPattern && val) {\n const pattern =\n regexPattern instanceof RegExp\n ? regexPattern\n : new RegExp(regexPattern, 'g');\n const matches = val.match(pattern);\n if (matches) {\n val = matches.join('');\n } else {\n val = '';\n }\n\n input.value = val;\n }\n if (this.debounceTimer) {\n clearTimeout(this.debounceTimer);\n }\n\n this.debounceTimer = setTimeout(() => {\n this.value.set(val);\n }, this.debounce());\n\n this.onTouched();\n }\n\n // Clear the input value\n clearInput() {\n this.value.set('');\n this.ngModel?.control.setValue('');\n this.onTouched();\n }\n}\n","<p>ui-base works!</p>\n","import { Component } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-text-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './text-input.html',\n styleUrl: './text-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUITextInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUITextInput' },\n})\nexport class NettyUITextInput extends UiBase {}\n","<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 (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","import { Component, forwardRef } from '@angular/core';\nimport {\n Validators,\n FormsModule,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-email-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatIconModule,\n ],\n templateUrl: './email-input.html',\n styleUrl: './email-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIEmailInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIEmailInput' },\n})\nexport class NettyUIEmailInput extends UiBase {\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [Validators.email];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.inputModel()?.control) return undefined;\n\n if (this.inputModel()?.control.hasError('required')) {\n return this.errorMessages().required;\n }\n\n if (this.inputModel()?.control.hasError('email')) {\n return this.errorMessages().email;\n }\n\n return undefined;\n }\n}\n","<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","import {\n Component,\n input,\n model,\n effect,\n signal,\n inject,\n viewChild,\n computed,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTimepickerModule } from '@angular/material/timepicker';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype DateRestriction = 'past' | 'future' | 'any';\n\n@Component({\n selector: 'ntyui-date-time',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatIconModule,\n MatTimepickerModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIDateTime,\n multi: true,\n },\n ],\n templateUrl: './date-time.html',\n styleUrl: './date-time.scss',\n host: { 'ntyui-id': 'NettyUIDateTime' },\n})\nexport class NettyUIDateTime extends UiBase {\n // Combined value output\n dateTimeValue = model<Date | null>(null);\n\n // Input properties\n timeLabel = input<string>('');\n dateRestriction = input<DateRestriction>('any');\n timeFormat = input<string>('tr-TR');\n\n // Date properties\n public dateValue = signal<Date | null>(null);\n\n // Time properties\n public timeValue = signal<Date>(new Date('1900-01-01T00:00:00'));\n\n // Template references\n dateModel = viewChild<NgModel>('dateModel');\n timeModel = viewChild<NgModel>('timeModel');\n\n override inputModel = viewChild<NgModel>('dateInputModel');\n\n private readonly dateAdapter =\n inject<DateAdapter<unknown, unknown>>(DateAdapter);\n\n displayValue = computed(() => {\n const date = this.dateValue();\n if (!date) return null;\n\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n return `${day}/${month}/${year}`;\n });\n\n // Date restrictions\n minDate = computed(() => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return this.dateRestriction() === 'future'\n ? new Date(today.getTime() + 86400000)\n : null;\n });\n\n maxDate = computed(() => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return this.dateRestriction() === 'past'\n ? new Date(today.getTime() - 86400000)\n : null;\n });\n\n constructor() {\n super();\n\n // Value changes\n effect(() => {\n this.dateValue();\n this.timeValue();\n this.updateCombinedValue();\n });\n\n effect(() => {\n const dateTime = this.dateTimeValue();\n const shouldBeNull = this.forFilter() || this.required();\n if (dateTime) {\n // 3 saatlik farkı telafi ederek ISO string oluşturma\n const offset = dateTime.getTimezoneOffset() * 60000;\n const localISOTime = new Date(dateTime.getTime() - offset)\n .toISOString()\n .slice(0, -1);\n\n this.value.set(localISOTime);\n this.onChange(dateTime);\n } else {\n this.value.set(shouldBeNull ? null : ('' as any));\n this.onChange(shouldBeNull ? null : dateTime);\n }\n });\n\n // Locale changes\n effect(() => {\n this.dateAdapter.setLocale(this.timeFormat());\n });\n }\n\n private updateCombinedValue() {\n const date = this.dateValue();\n const time = this.timeValue();\n\n if (!date) {\n if (this.forFilter()) {\n this.dateTimeValue.set(null);\n return;\n }\n this.dateTimeValue.set(\n this.required() ? null : new Date('1900-01-01T00:00:00')\n );\n return;\n }\n\n const combined = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n 0\n );\n\n this.dateTimeValue.set(combined);\n }\n\n onDateChange(event: any) {\n const newDate = event.value as Date | null;\n\n if (!newDate || isNaN(newDate.getTime())) {\n this.dateValue.set(null);\n this.updateCombinedValue();\n return;\n }\n\n const localDate = new Date(\n newDate.getFullYear(),\n newDate.getMonth(),\n newDate.getDate()\n );\n\n const min = this.minDate();\n const max = this.maxDate();\n const isValid = (!min || localDate >= min) && (!max || localDate <= max);\n\n if (isValid) {\n this.dateValue.set(localDate);\n this.updateCombinedValue();\n } else {\n this.dateValue.set(null);\n this.updateCombinedValue();\n }\n }\n\n onTimeChange(newTime: Date) {\n const time = new Date('1900-01-01T00:00:00');\n time.setHours(newTime.getHours());\n time.setMinutes(newTime.getMinutes());\n this.timeValue.set(time);\n }\n\n override clearInput() {\n this.dateValue.set(null);\n this.timeValue.set(new Date('1900-01-01T00:00:00'));\n this.onChange(null);\n this.updateCombinedValue();\n this.onTouched();\n }\n\n override writeValue(value: any): void {\n if (value && value !== '') {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.dateValue.set(date);\n const t = new Date('1900-01-01T00:00:00');\n t.setHours(date.getHours(), date.getMinutes());\n this.timeValue.set(t);\n this.value.set(value);\n return;\n }\n }\n\n this.dateValue.set(null);\n this.timeValue.set(new Date('1900-01-01T00:00:00'));\n\n const shouldBeNull = this.forFilter() || this.required();\n\n this.value.set(shouldBeNull ? null : ('' as any));\n this.dateTimeValue.set(\n shouldBeNull ? null : new Date('1900-01-01T00:00:00')\n );\n }\n}\n","<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 (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #dateInputModel=\"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 (dateInputModel.invalid && (dateInputModel.dirty ||\n dateInputModel.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 #timeInputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"timepicker\"\n [ngModel]=\"timeValue()\"\n (ngModelChange)=\"onTimeChange($event)\"\n [ngModelOptions]=\"{updateOn: 'blur'}\"\n [disabled]=\"disabled()\"\n />\n\n @if ( timeInputModel.invalid && ( timeInputModel.dirty ||\n timeInputModel.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","import {\n Component,\n input,\n model,\n effect,\n signal,\n forwardRef,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype DateRestriction = 'past' | 'future' | 'any';\n\n@Component({\n selector: 'ntyui-date-picker',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatIconModule,\n ],\n templateUrl: './date-picker.html',\n styleUrl: './date-picker.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIDatePicker,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIDatePicker' },\n})\nexport class NettyUIDatePicker extends UiBase {\n // Constants\n private readonly NULL_DATE = '1900-01-01T00:00:00.000Z'; // Null date in UTC format\n\n // Inputs\n dateRestriction = input<DateRestriction>('any');\n\n // Model and Signals\n dateValue = model<string | Date | null>(null);\n selectedDate = model<Date | null>(null);\n displayValue = signal<string | null>(null);\n\n // Date limits\n minDate = signal<Date | null>(null);\n maxDate = signal<Date | null>(null);\n\n constructor() {\n super();\n\n // Update displayValue and dateValue when selected date changes\n effect(() => {\n const date = this.selectedDate();\n\n if (date === null) {\n this.dateValue.set(this.required() ? null : this.NULL_DATE);\n this.displayValue.set(null);\n } else {\n this.dateValue.set(date.toISOString());\n this.displayValue.set(this.formatDisplayDate(date));\n }\n });\n\n // Set min/max dates according to date restriction\n effect(() => {\n const today = this.getStartOfDay(new Date());\n\n switch (this.dateRestriction()) {\n case 'past':\n this.minDate.set(null);\n this.maxDate.set(new Date(today.getTime() - 86400000)); // Yesterday\n break;\n case 'future':\n this.minDate.set(new Date(today.getTime() + 86400000)); // Tomorrow\n this.maxDate.set(null);\n break;\n default: // 'any'\n this.minDate.set(null);\n this.maxDate.set(null);\n }\n });\n }\n\n private getStartOfDay(date: Date): Date {\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n private formatDisplayDate(date: Date): string {\n const day = date.getUTCDate().toString().padStart(2, '0');\n const month = (date.getUTCMonth() + 1).toString().padStart(2, '0');\n const year = date.getUTCFullYear();\n return `${day}/${month}/${year}`;\n }\n\n // ControlValueAccessor Implementation\n override writeValue(value: any): void {\n if (value && value !== this.NULL_DATE) {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.selectedDate.set(date);\n return;\n }\n }\n\n this.selectedDate.set(null);\n }\n\n onDateChange(event: { value: Date | null }): void {\n const newValue = event.value;\n\n if (!newValue || isNaN(newValue.getTime())) {\n this.selectedDate.set(null);\n this.onChange(null);\n return;\n }\n\n // Create UTC date\n const utcDate = new Date(\n Date.UTC(newValue.getFullYear(), newValue.getMonth(), newValue.getDate())\n );\n\n // Date restriction check\n const isValid = this.isDateValid(utcDate);\n this.selectedDate.set(isValid ? utcDate : null);\n this.onChange(isValid ? utcDate.toISOString() : null);\n this.onTouched();\n }\n\n private isDateValid(date: Date): boolean {\n return (\n (this.minDate() === null || date >= this.minDate()!) &&\n (this.maxDate() === null || date <= this.maxDate()!)\n );\n }\n\n override clearInput(): void {\n this.selectedDate.set(null);\n this.onChange(this.required() ? null : this.NULL_DATE);\n this.onTouched();\n }\n}\n","<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","import { Component, input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-masked-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './masked-input.html',\n styleUrl: './masked-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIMaskedInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIMaskedInput' },\n})\nexport class NettyUIMaskedInput extends UiBase {\n // Input properties\n mask = input<string>('00-00');\n\n override onInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n let value = input.value;\n this.onChange(value);\n this.onTouched();\n let cursorPosition = input.selectionStart || 0;\n\n // Apply mask\n const maskedValue = this.applyMask(value);\n\n // Update values\n const unmaskedValue = this.removeMask(maskedValue);\n this.value.set(unmaskedValue);\n this.value.set(maskedValue);\n input.value = maskedValue;\n\n // Adjust cursor position only if we're typing (not deleting)\n if (value.length >= this.value().length) {\n cursorPosition = this.adjustCursorPosition(\n this.value(),\n maskedValue,\n cursorPosition\n );\n input.setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n\n private applyMask(value: string): string {\n if (!value) return '';\n\n const mask = this.mask();\n if (!mask) return value;\n\n const unmaskedValue = this.removeMask(value);\n let maskedValue = '';\n let valueIndex = 0;\n\n for (let i = 0; i < mask.length && valueIndex < unmaskedValue.length; i++) {\n const maskChar = mask[i];\n\n if (maskChar === '0') {\n if (/\\d/.test(unmaskedValue[valueIndex])) {\n maskedValue += unmaskedValue[valueIndex];\n valueIndex++;\n }\n } else {\n // Only add mask character if we have digits after it\n if (valueIndex > 0 || unmaskedValue.length > 0) {\n maskedValue += maskChar;\n }\n }\n }\n\n return maskedValue;\n }\n\n private removeMask(value: string): string {\n if (!this.mask()) return value;\n return value.replace(/\\D/g, ''); // Only accept numbers, remove everything else\n }\n\n private adjustCursorPosition(\n oldValue: string,\n newValue: string,\n cursorPosition: number\n ): number {\n const mask = this.mask();\n if (!mask || cursorPosition >= mask.length) return cursorPosition;\n\n // Delete operation\n if (oldValue.length > newValue.length) {\n if (cursorPosition > 0 && mask[cursorPosition - 1] !== '0') {\n return cursorPosition - 1;\n }\n return cursorPosition;\n }\n\n // Add operation\n if (cursorPosition < mask.length && mask[cursorPosition] !== '0') {\n return cursorPosition + 1;\n }\n\n return cursorPosition;\n }\n\n private validateMaskCompletion(value: string): boolean {\n if (!this.mask() || !value) return false;\n\n const unmaskedValue = this.removeMask(value);\n const requiredDigits = this.mask().split('0').length - 1;\n\n return unmaskedValue.length >= requiredDigits;\n }\n\n private maskValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null; // Skip validation if empty (required fields are handled by a separate validator)\n\n return this.validateMaskCompletion(value) ? null : { incomplete: true };\n };\n }\n\n // Update validators based on input properties\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n const minLength = this.minLength();\n if (minLength !== undefined) {\n validators.push(Validators.minLength(minLength));\n }\n\n const maxLength = this.maxLength();\n if (maxLength !== undefined) {\n validators.push(Validators.maxLength(maxLength));\n }\n\n validators.push(this.maskValidator());\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.inputModel()?.control) return undefined;\n\n if (this.inputModel()?.control.hasError('required')) {\n return this.errorMessages().required;\n }\n\n if (this.inputModel()?.control.hasError('incomplete')) {\n return this.errorMessages().incomplete;\n }\n\n return undefined;\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { Component, effect, input, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\ninterface CarouselSlide {\n imageSrc: string;\n imageAlt: string;\n title?: string;\n description?: string;\n}\n\n@Component({\n selector: 'ntyui-carousel',\n imports: [CommonModule, FormsModule],\n templateUrl: './carousel.html',\n styleUrl: './carousel.scss',\n host: { 'ntyui-id': 'NettyUICarousel' },\n})\nexport class NettyUICarousel {\n slides = input<CarouselSlide[]>([\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1460627390041-532a28402358?ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80',\n imageAlt: 'nature1',\n title: 'Beautiful Nature',\n description: 'Explore the wonders of nature in this breathtaking view',\n },\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1470252649378-9c29740c9fa8?ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80',\n imageAlt: 'nature2',\n title: 'Sunset Magic',\n description: 'Witness the magical colors of sunset',\n },\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1640844444545-66e19eb6f549?ixlib=rb-1.2.1&auto=format&fit=crop&w=1032&q=80',\n imageAlt: 'person1',\n title: 'Portrait Photography',\n description: 'Professional portrait photography at its best',\n },\n ]);\n\n indicators = input(true);\n showText = input(true);\n textPosition = input<'bottom' | 'top' | 'left' | 'right'>('bottom');\n selectedIndex = signal(0);\n\n constructor() {\n effect(() => {\n if (this.selectedIndex() >= this.slides().length) {\n this.selectedIndex.set(0);\n }\n });\n }\n\n ngOnInit(): void {\n this.autoSlideImages();\n }\n\n selectImage(index: number): void {\n this.selectedIndex.set(index);\n }\n\n autoSlideImages(): void {\n setInterval(() => {\n this.selectedIndex.update((currentIndex) =>\n currentIndex < this.slides().length - 1 ? currentIndex + 1 : 0\n );\n }, 3000);\n }\n}\n","@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","import { Component, effect, forwardRef, input, model } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype ToggleType = 'checkbox' | 'slide-toggle';\n\ntype CheckboxShape = 'circle' | 'rectangle';\n\n@Component({\n selector: 'ntyui-checkbox-toggle',\n imports: [MatCheckboxModule, MatSlideToggleModule, FormsModule],\n templateUrl: './checkbox-toggle.html',\n styleUrl: './checkbox-toggle.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUICheckboxToggle,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUICheckboxToggle' },\n})\nexport class NettyUICheckboxToggle extends UiBase {\n // Checkbox and toggle properties\n type = input<ToggleType>('checkbox');\n shape = input<CheckboxShape>('rectangle');\n checked = model(false);\n\n // Position of the label relative to the checkbox (only applies when type is 'checkbox')\n labelPosition = input<'before' | 'after'>('after');\n\n constructor() {\n super();\n\n effect(() => {\n this.onChange(this.checked());\n });\n }\n\n /**\n * Handle value change events\n * @param newValue New value of the toggle\n */\n onValueChange(newValue: boolean) {\n this.checked.set(newValue);\n this.onChange(newValue);\n this.onTouched();\n }\n\n // ControlValueAccessor interface implementation\n override writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.requiredTrue);\n }\n\n if (this.disabled()) {\n this.inputModel()?.control.disable({ emitEvent: false });\n } else {\n this.inputModel()?.control.enable({ emitEvent: false });\n }\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n}\n","@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","\nimport {\n booleanAttribute,\n Component,\n computed,\n input,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { interval, takeWhile, Subscription } from 'rxjs';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype MenuButtonType = 'regular' | 'menu' | 'close';\n\n@Component({\n selector: 'ntyui-button',\n imports: [\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MatMenuModule\n ],\n templateUrl: './button.html',\n styleUrl: './button.scss',\n host: { 'ntyui-id': 'NettyUIButton' },\n})\nexport class NettyUIButton extends UiBase implements OnDestroy {\n // Input signals\n icon = input<string>('');\n isFilled = input(false, { transform: booleanAttribute });\n menuReference = input<any>(null);\n disableOnClick = input(false, { transform: booleanAttribute });\n disableDuration = input<number>(0);\n waitingText = input<string>('');\n type = input<MenuButtonType>('menu');\n toolTip = input<string>('');\n // Output\n clicked = output<void>();\n\n // Computed signal\n private _isDisabled = signal<boolean>(false);\n isDisabled = computed(() => this.disabled() || this._isDisabled());\n // Timer\n private timerSub?: Subscription;\n countdown = signal<number>(0);\n\n onClicked() {\n if (this.isDisabled()) return;\n\n if (this.disableOnClick() && this.disableDuration() > 0) {\n this._isDisabled.set(true);\n this.countdown.set(this.disableDuration());\n\n this.timerSub?.unsubscribe();\n\n this.timerSub = interval(1000)\n .pipe(takeWhile(() => this.countdown() > 0))\n .subscribe({\n next: () => {\n this.countdown.update((v) => v - 1);\n },\n complete: () => {\n this._isDisabled.set(false);\n },\n });\n }\n\n this.clicked.emit();\n }\n\n getDisplayText(): string {\n if (this.countdown() > 0) {\n return this.waitingText() || `${this.countdown()}s`;\n }\n return this.label();\n }\n\n ngOnDestroy() {\n this.timerSub?.unsubscribe();\n }\n}\n","@switch (type()) { @case ('menu') {\n<button\n type=\"button\"\n mat-button\n [matTooltip]=\"toolTip()\"\n [class]=\"getDisplayText().length > 0 ? 'ui-menu-button-text' : 'ui-menu-button'\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matMenuTriggerFor]=\"menuReference()\"\n>\n @if (icon() && countdown() === 0) {\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> }\n <span>{{ getDisplayText() }}</span>\n @if (menuReference() && !(countdown() > 0)){\n <mat-icon class=\"menu-icon\">arrow_drop_down</mat-icon>\n }\n</button>\n} @case ('close') {\n<div class=\"flex-container\">\n <button\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"ui-close-button\"\n >\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } @else\n {<mat-icon> close </mat-icon>} {{ getDisplayText() }}\n </button>\n</div>\n} @default { @if(isFilled()){\n<button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"regular-button\"\n matButton=\"filled\"\n>\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } {{\n getDisplayText() }}\n</button>\n} @else {\n<button\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"regular-button\"\n>\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } {{\n getDisplayText() }}\n</button>\n} } }\n","import {\n Component,\n ElementRef,\n input,\n output,\n signal,\n viewChild,\n computed,\n OnDestroy,\n HostListener,\n effect,\n} from '@angular/core';\n\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-filter-button',\n imports: [MatButtonModule, MatIconModule, FormsModule],\n templateUrl: './filter-button.html',\n styleUrl: './filter-button.scss',\n host: { 'ntyui-id': 'NettyUIFilterButton' },\n})\nexport class NettyUIFilterButton extends UiBase implements OnDestroy {\n // Input signals\n icon = input<string>('');\n waitingText = input<string>('');\n searchValue = input<string>('');\n\n // View child\n filterInput = viewChild<ElementRef>('filterInput');\n\n // State signals\n protected _searchValue = signal<string>(this.searchValue());\n private lastEmittedValue = signal('');\n showFilterInput = signal<boolean>(false);\n private _isDisabled = signal<boolean>(false);\n\n // Computed signals\n isDisabled = computed(() => this.disabled() || this._isDisabled());\n iconColor = computed(() =>\n this._searchValue() ? 'var(--mat-sys-surface)' : ''\n );\n buttonBackgroundColor = computed(() =>\n this._searchValue() ? 'var(--mat-sys-primary)' : ''\n );\n\n // Outputs\n clicked = output<void>();\n onSearch = output<string>(); // Emits search value\n isSearchOpen = output<boolean>(); // True if text edit is open\n\n // Timer\n constructor(private elementRef: ElementRef) {\n super();\n // Update the _searchValue signal when the input value changes\n effect(() => {\n this._searchValue.set(this.searchValue());\n });\n\n // Debounce Effect\n effect(() => {\n const currentValue = this._searchValue();\n const lastValue = this.lastEmittedValue();\n\n if (currentValue !== lastValue) {\n clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.onSearch.emit(currentValue);\n this.lastEmittedValue.set(currentValue);\n }, 500);\n }\n });\n }\n\n onClicked() {\n if (this.isDisabled()) return;\n this.toggleFilterInput();\n }\n\n onSearchInputChange(value: string) {\n this._searchValue.set(value);\n }\n\n onFilterInputClick(event: Event) {\n event.stopPropagation();\n }\n\n toggleFilterInput() {\n this.showFilterInput.update((show) => !show);\n this.isSearchOpen.emit(this.showFilterInput());\n if (this.showFilterInput()) {\n setTimeout(() => this.filterInput()?.nativeElement.focus());\n }\n }\n\n closeFilter() {\n this.showFilterInput.set(false);\n this.isSearchOpen.emit(false);\n }\n\n @HostListener('document:click', ['$event'])\n handleDocumentClick(event: MouseEvent) {\n // Check if click was outside the filter button/input\n if (\n !this.elementRef.nativeElement.contains(event.target) &&\n this.showFilterInput()\n ) {\n this.closeFilter();\n }\n }\n\n getDisplayText(): string {\n return this.label();\n }\n\n ngOnDestroy() {\n clearTimeout(this.debounceTimer);\n }\n}\n","<button\n mat-button\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n class=\"filter-button\"\n [style.background-color]=\"buttonBackgroundColor()\"\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","import { Component, input, numberAttribute } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-number-input',\n imports: [\n MatInputModule,\n MatFormFieldModule,\n FormsModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './number-input.html',\n styleUrl: './number-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUINumberInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUINumberInput' },\n})\nexport class NettyUINumberInput extends UiBase {\n min = input<number | null, unknown>(null, { transform: numberAttribute });\n max = input<number | null, unknown>(null, { transform: numberAttribute });\n\n protected override updateValidators() {\n if (!this.ngModel?.control) return;\n\n const validators = [];\n\n if (this.required()) validators.push(Validators.required);\n\n const minValue = this.min();\n if (minValue !== null && minValue !== undefined) {\n validators.push(Validators.min(minValue));\n }\n\n const maxValue = this.max();\n if (maxValue !== null && maxValue !== undefined) {\n validators.push(Validators.max(maxValue));\n }\n\n const regexPattern = this.validateRegex();\n if (regexPattern) {\n validators.push(Validators.pattern(regexPattern));\n }\n\n this.ngModel.control.setValidators(validators);\n this.ngModel.control.updateValueAndValidity();\n }\n\n calculateExpression(event?: Event) {\n if (event) {\n event.preventDefault(); // Prevent form submission\n }\n try {\n if (/[a-zA-Z<>{};]/.test(this.value() ?? '')) {\n throw new Error('Invalid character');\n }\n\n const expression = (this.value() ?? '').replace(/x/g, '*');\n // Use Function constructor instead of direct eval\n const result = new Function('return ' + expression)();\n\n this.value.set(result.toString());\n } catch (e) {\n console.error('Hesaplama hatası:', e);\n this.value.set('Geçersiz ifade girdiniz.');\n setTimeout(() => {\n this.value.set('');\n }, 2000);\n }\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.ngModel?.control) return undefined;\n\n const errors = this.ngModel.control.errors;\n if (!errors) return undefined;\n\n if (errors['min']) {\n return this.errorMessages()['min'];\n }\n\n if (errors['max']) {\n return this.errorMessages()['max'];\n }\n\n return super.getErrorMessage();\n }\n}\n","<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","import { Component, output } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-search-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './search-input.html',\n styleUrl: './search-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUISearchInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUISearchInput' },\n})\nexport class NettyUISearchInput extends UiBase {\n // Output event when user presses Enter\n search = output<string>();\n\n emitSearch() {\n this.search.emit(this.value());\n }\n}\n","<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","import {\n Component,\n booleanAttribute,\n input,\n model,\n effect,\n viewChild,\n} from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { Validators } from '@angular/forms';\nimport { NettyEnum } from '../framework/models/IEnum';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-select',\n imports: [MatFormFieldModule, MatSelectModule, FormsModule, MatInputModule],\n templateUrl: './select.html',\n styleUrl: './select.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUISelect,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUISelect' },\n})\nexport class NettyUISelect extends UiBase {\n // Input properties\n showNoneOption = input(false, { transform: booleanAttribute });\n nullAllowed = input(false, { transform: booleanAttribute });\n multiple = input(false, { transform: booleanAttribute });\n showCustomTrigger = input(false, { transform: booleanAttribute });\n enumList = model<NettyEnum[]>([]);\n selectedValue = model<any>(this.multiple() ? [] : null);\n\n // Template reference\n selectModel = viewChild<NgModel>('selectModel');\n\n constructor() {\n super();\n\n // Update validators when required or nullAllowed changes\n effect(() => {\n const validators =\n this.required() && !this.nullAllowed() ? [Validators.required] : [];\n\n if (this.selectModel()?.control) {\n this.selectModel()?.control.setValidators(validators);\n this.selectModel()?.control.updateValueAndValidity();\n }\n });\n\n // Reset selectedValue when switching between single/multiple mode\n effect(() => {\n this.selectedValue.set(this.multiple() ? [] : null);\n });\n\n // Handle value changes\n effect(() => {\n const value = this.selectedValue();\n this.onChange(value);\n this.onTouched();\n });\n }\n\n hasNoneOption(): boolean {\n return (this.showNoneOption() || this.nullAllowed()) && !this.required();\n }\n\n getSelectedCount(): number {\n return this.selectedValue()?.length || 0;\n }\n\n getSelectedText(value: any): string {\n if (value === null || value === undefined) return '';\n\n const found = this.enumList().find((item) => item.value == value);\n return found ? found.text : '';\n }\n\n // ControlValueAccessor interface implementation\n override writeValue(value: any): void {\n if (this.multiple()) {\n this.selectedValue.set(Array.isArray(value) ? value : []);\n } else {\n this.selectedValue.set(value);\n }\n }\n}\n","<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","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\nimport { Component, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'ntyui-visible-switch-button',\n imports: [MatButtonModule, MatIconModule],\n templateUrl: './visible-switch-button.html',\n styleUrl: './visible-switch-button.scss',\n host: { 'ntyui-id': 'NettyUIVisibleSwitchButton' },\n})\nexport class NettyUIVisibleSwitchButton extends UiBase {\n public visible = model<boolean>(true);\n public visibleIcon = input<string>('visibility');\n public hiddenIcon = input<string>('visibility_off');\n public visibleLabel = input<string>('');\n public hiddenLabel = input<string>('');\n public clicked = output<boolean>();\n\n onClicked() {\n this.visible.update((a) => !a);\n this.clicked.emit(this.visible());\n }\n\n getDisplayText(): string {\n return this.visible() ? this.visibleLabel() : this.hiddenLabel();\n }\n}\n","<button mat-button [disabled]=\"disabled()\" (click)=\"onClicked()\"\n [class]=\"getDisplayText().length > 0 ? 'visible-button-text' : 'visible-button'\">\n @if (visible()){\n <mat-icon>{{ visibleIcon() }}</mat-icon>\n }\n @else{\n <mat-icon>{{ hiddenIcon() }}</mat-icon>\n }\n <span>{{ getDisplayText() }}</span>\n</button>","import {\n Component,\n ChangeDetectionStrategy,\n model,\n inject,\n effect,\n input,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatTimepickerModule } from '@angular/material/timepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateAdapter, provideNativeDateAdapter } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-time-picker',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n MatTimepickerModule,\n MatDatepickerModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.scss',\n providers: [provideNativeDateAdapter()],\n host: { 'ntyui-id': 'NettyUITimePicker' },\n})\nexport class NettyUITimePicker extends UiBase {\n timeValue = model<Date | null>(new Date('1900-01-01T00:00:00.000Z'));\n\n // Input properties\n timeFormat = input<string>('tr-TR');\n\n // Time format\n private readonly _adapter =\n inject<DateAdapter<unknown, unknown>>(DateAdapter);\n\n constructor() {\n super();\n // Watch for changes in timeFormat and update the locale\n effect(() => {\n this._adapter.setLocale(this.timeFormat());\n });\n }\n\n ngOnInit() {\n // Uses a fixed date instead of today's date when initializing the time picker\n this.timeValue.set(new Date('1900-01-01T00:00:00.000Z'));\n }\n\n protected onTimeChange(newTime: Date | null) {\n if (!newTime) {\n // Handle the null case - maybe set to default time or return early\n return;\n }\n\n const fixedDate = new Date('1900-01-01T00:00:00.000Z');\n fixedDate.setHours(newTime.getHours());\n fixedDate.setMinutes(newTime.getMinutes());\n this.timeValue.set(fixedDate);\n }\n}\n","<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","import { Component, signal, model, input, effect } from '@angular/core';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport interface TreeNode {\n id: string; // GUID\n text: string;\n parentId: string | null;\n children?: TreeNode[];\n expanded?: boolean;\n selected?: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n}\n\nexport type SelectionMode = 'single' | 'multiple';\n\n@Component({\n selector: 'ntyui-tree',\n imports: [\n MatCheckboxModule,\n MatRadioModule,\n MatButtonModule,\n MatIconModule\n ],\n templateUrl: './tree.html',\n styleUrl: './tree.scss',\n host: { 'ntyui-id': 'NettyUITree' },\n})\nexport class NettyUITree {\n // Input signals\n data = model<TreeNode[]>([]);\n selectionMode = model<SelectionMode>('multiple');\n\n selectedIds = model<string[]>([]);\n selectBranch = input<boolean>(true);\n\n // Internal signals\n private flattenedNodes = signal<TreeNode[]>([]);\n public componentId = Math.random().toString(36).substr(2, 9);\n protected treeData = signal<TreeNode[]>([]); // Computed signal for visible tree data\n protected isExpanded = signal<boolean>(false); // Track expanded state of nodes\n\n // Clear function when SelectionMode changes\n private previousSelectionMode: SelectionMode | undefined;\n\n constructor() {\n effect(() => {\n const ids = this.selectedIds();\n this.updateNodeSelection(ids);\n });\n\n // Effect that cleans up only when selectionMode changes\n effect(() => {\n const currentMode = this.selectionMode();\n // Clean only when mode changes (compares with previously saved mode)\n if (currentMode !== this.previousSelectionMode) {\n this.selectedIds.set([]);\n this.updateTreeDisplay(null);\n this.previousSelectionMode = currentMode;\n }\n });\n }\n\n ngOnInit(): void {\n this.updateTreeDisplay(null);\n }\n\n updateTreeDisplay(node: TreeNode | null): void {\n let nodes = this.buildTree(this.data(), node);\n this.flattenedNodes.set(this.flattenTree(nodes));\n this.treeData.set(this.getVisibleNodes(nodes));\n console.log('Tree data updated:', this.treeData());\n }\n\n getNodeLevel(node: TreeNode): number {\n let level = 0;\n let current = node;\n const allNodes = this.flattenedNodes();\n\n while (current.parentId) {\n const parent = allNodes.find((n) => n.id === current.parentId);\n if (parent) {\n level++;\n current = parent;\n } else {\n break;\n }\n }\n\n return level;\n }\n\n toggleExpand(node: TreeNode): void {\n node.expanded = !node.expanded;\n this.updateTreeDisplay(node);\n\n // After updating, ensure selection states are maintained\n this.updateNodeSelection(this.selectedIds());\n }\n\n onCheckboxChange(node: TreeNode, event: any): void {\n if (node.disabled) {\n event.source.checked = node.selected; // Revert the change\n return;\n }\n\n const isChecked = event.checked;\n\n if (this.selectionMode() === 'multiple') {\n this.setNodeSelection(node, isChecked);\n this.updateChildrenSelection(node, isChecked);\n\n // If selectBranch is active and node's parent is disabled, don't update parent\n if (\n !(\n this.selectBranch() &&\n node.parentId &&\n this.flattenedNodes().find((p) => p.id === node.parentId)?.disabled\n )\n ) {\n this.updateParentSelection(node);\n }\n\n this.emitSelection();\n }\n }\n\n onRadioChange(node: TreeNode): void {\n if (node.disabled || this.allChildrenDisabled(node)) {\n return;\n }\n\n if (this.selectionMode() === 'single') {\n // Clear all selections\n this.flattenedNodes().forEach((n) => (n.selected = false));\n // Select only the clicked node\n node.selected = true;\n this.emitSelection();\n }\n }\n\n private buildTree(\n nodes: TreeNode[],\n updatedNode: TreeNode | null\n ): TreeNode[] {\n const nodeMap = new Map<string, TreeNode>();\n const rootNodes: TreeNode[] = [];\n const currentSelectedIds = this.selectedIds();\n\n // First add all nodes to the map (without children)\n nodes.forEach((node) => {\n if (node.id == updatedNode?.id) {\n node.expanded = updatedNode?.expanded ?? false;\n }\n\n const hasChildren = nodes.some((n) => n.parentId === node.id);\n nodeMap.set(node.id, {\n ...node,\n children: [],\n expanded: node.expanded ?? false,\n selected: currentSelectedIds.includes(node.id),\n indeterminate: node.indeterminate ?? false,\n disabled: node.disabled ?? (hasChildren ? !this.selectBranch() : false),\n });\n });\n\n nodes.forEach((node) => {\n const treeNode = nodeMap.get(node.id)!;\n if (node.parentId && nodeMap.has(node.parentId)) {\n const parent = nodeMap.get(node.parentId)!;\n parent.children = parent.children || [];\n parent.children.push(treeNode);\n } else {\n rootNodes.push(treeNode);\n }\n });\n\n return rootNodes;\n }\n\n private flattenTree(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n\n const traverse = (nodeList: TreeNode[]) => {\n nodeList.forEach((node) => {\n result.push(node);\n if (node.children && node.children.length > 0) {\n traverse(node.children);\n }\n });\n };\n\n traverse(nodes);\n return result;\n }\n\n private getVisibleNodes(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n\n const traverse = (nodeList: TreeNode[]) => {\n nodeList.forEach((node) => {\n result.push(node);\n if (node.expanded && node.children && node.children.length > 0) {\n traverse(node.children);\n }\n });\n };\n\n traverse(nodes);\n return result;\n }\n\n private setNodeSelection(node: TreeNode, selected: boolean): void {\n if (node.disabled || this.allChildrenDisabled(node)) {\n return;\n }\n node.selected = selected;\n node.indeterminate = false;\n }\n\n private updateChildrenSelection(node: TreeNode, selected: boolean): void {\n if (node.children) {\n node.children.forEach((child) => {\n if (!child.disabled && !this.allChildrenDisabled(child)) {\n this.setNodeSelection(child, selected);\n this.updateChildrenSelection(child, selected);\n }\n });\n }\n }\n\n private updateParentSelection(node: TreeNode): void {\n const allNodes = this.flattenedNodes();\n const parent = allNodes.find((n) => n.id === node.parentId);\n\n if (parent) {\n if (this.selectBranch() && parent.disabled) {\n return;\n }\n\n const enabledChildren =\n parent.children?.filter((child) => !child.disabled) || [];\n const selectedChildren = enabledChildren.filter(\n (child) => child.selected\n ).length;\n const totalEnabledChildren = enabledChildren.length;\n\n if (\n selectedChildren === totalEnabledChildren &&\n totalEnabledChildren > 0\n ) {\n parent.selected = true;\n parent.indeterminate = false;\n } else if (selectedChildren > 0) {\n parent.selected = false;\n parent.indeterminate = true;\n } else {\n parent.selected = false;\n parent.indeterminate = false;\n }\n\n this.updateParentSelection(parent);\n }\n }\n\n private updateNodeSelection(selectedIds: string[]): void {\n const allNodes = this.flattenedNodes();\n\n allNodes.forEach((node) => {\n // Don't change selection state if selectBranch is active and node is disabled\n if (!(this.selectBranch() && node.disabled)) {\n node.selected = selectedIds.includes(node.id);\n }\n });\n\n if (this.selectionMode() === 'multiple') {\n const nodesReversed = [...allNodes].reverse();\n\n nodesReversed.forEach((node) => {\n if (this.selectBranch() && node.disabled) {\n return;\n }\n\n if (node.children?.length) {\n const enabledChildren = node.children.filter((c) => !c.disabled);\n const selectedCount = enabledChildren.filter(\n (c) => c.selected\n ).length;\n const indeterminateCount = enabledChildren.filter(\n (c) => c.indeterminate\n ).length;\n\n if (\n selectedCount === enabledChildren.length &&\n enabledChildren.length > 0\n ) {\n node.selected = true;\n node.indeterminate = false;\n } else if (selectedCount > 0 || indeterminateCount > 0) {\n node.selected = false;\n node.indeterminate = true;\n } else {\n node.selected = false;\n node.indeterminate = false;\n }\n }\n });\n }\n }\n\n private emitSelection(): void {\n const selected = this.flattenedNodes()\n .filter((node) => node.selected)\n .map((node) => node.id);\n\n this.selectedIds.set(selected);\n }\n\n public allChildrenDisabled(node: TreeNode): boolean {\n if (node.disabled) return true;\n if (!node.children || node.children.length === 0) {\n return false;\n }\n return node.children.every(\n (child) => child.disabled || this.allChildrenDisabled(child)\n );\n }\n}\n","<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","import {\n Component,\n ElementRef,\n input,\n model,\n output,\n viewChild,\n signal,\n computed,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'ntyui-color-picker',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n TranslateModule,\n ],\n templateUrl: './color-picker.html',\n styleUrl: './color-picker.scss',\n host: { 'ntyui-id': 'NettyUIColorPicker' },\n})\nexport class NettyUIColorPicker {\n // Two-way binding for the selected color (#RRGGBB format)\n selectedColor = model<string>('#000000');\n\n // Input for custom color presets provided by the parent component\n customColorPresets = input<string[]>([]);\n\n // Event emitted when the selected color changes\n colorChange = output<string>();\n\n // Reference to the hidden native color input element\n colorInput = viewChild<ElementRef<HTMLInputElement>>('colorInput');\n\n // Signal to control the visibility of the custom color picker popup\n isPickerVisible = signal(false);\n\n // Default color palette for the picker\n protected defaultColorPresets = signal<string[]>([\n '#FF0000',\n '#00FF00',\n '#0000FF',\n '#FFFF00',\n '#FF00FF',\n '#00FFFF',\n '#000000',\n '#FFFFFF',\n '#FF5733',\n '#33FF57',\n '#3357FF',\n '#F333FF',\n '#FF3333',\n '#33FFF3',\n '#8E33FF',\n '#FF33A1',\n '#FF6B6B',\n '#4ECDC4',\n '#45B7D1',\n '#96CEB4',\n '#FFEAA7',\n '#DDA0DD',\n '#98D8C8',\n '#F7DC6F',\n ]);\n\n // Computed signal that combines custom and default colors, ensuring uniqueness.\n displayColorPresets = computed(() => {\n const customColors = this.customColorPresets();\n const defaultColors = this.defaultColorPresets();\n\n // Merges colors and removes duplicates using a Set.\n return customColors.length > 0\n ? [...new Set([...customColors, ...defaultColors])]\n : defaultColors;\n });\n\n // Computed signal to check if custom color presets were provided.\n hasCustomColors = computed(() => this.customColorPresets().length > 0);\n\n /**\n * Handles changes from the text input field, updating the model and emitting the event.\n * @param newColor The new color value (e.g., '#FF0000').\n */\n onInputChange(newColor: string): void {\n this.selectedColor.set(newColor);\n this.colorChange.emit(newColor);\n }\n\n /**\n * Toggles the visibility of the custom color picker popup.\n */\n togglePicker(): void {\n this.isPickerVisible.update((visible) => !visible);\n }\n\n /**\n * Closes the custom color picker popup.\n */\n closePicker(): void {\n this.isPickerVisible.set(false);\n }\n\n /**\n * Handles color changes from the native HTML color picker.\n * @param event The native change event.\n */\n onColorPickerChange(event: Event): void {\n const newColor = (event.target as HTMLInputElement).value;\n this.selectedColor.set(newColor);\n this.colorChange.emit(newColor);\n }\n\n /**\n * Handles color changes from the custom color input inside the popup.\n * @param event The native change event.\n */\n onCustomColorChange(event: Event): void {\n const newColor = (event.target as HTMLInputElement).value;\n this.selectColor(newColor);\n }\n\n /**\n * Sets the selected color, emits the change, and closes the picker.\n * @param color The color to be selected.\n */\n selectColor(color: string): void {\n this.selectedColor.set(color);\n this.colorChange.emit(color);\n this.closePicker();\n }\n}\n","<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 (örn: #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","import { NettyEnum } from './IEnum';\n\nexport class NettyEnumValues implements NettyEnum {\n languageCode: string = '';\n enumName: string = '';\n value: number = 0;\n text: string = '-';\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { NettyEnum } from '../models/IEnum';\nimport { NettyEnumValues } from '../models/enum-values';\nimport { lastValueFrom } from 'rxjs';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NettyEnumStorageProxy {\n private http = inject(HttpClient);\n private environmentProxy = inject(EnvironmentProxy);\n\n async loadEnumList() {\n try {\n let functionUrl: string =\n this.environmentProxy.getAdminLink('/GetAppEnum');\n let enumList: NettyEnumValues[] = <NettyEnumValues[]>(\n await lastValueFrom(this.http.get(functionUrl))\n );\n let languages: Array<string> = Array.from(\n new Set(enumList.map((item: NettyEnumValues) => item.languageCode))\n );\n let enumNames: Array<string> = Array.from(\n new Set(enumList.map((item: NettyEnumValues) => item.enumName))\n );\n enumNames.forEach((name) => {\n languages.forEach((lang) => {\n let data: NettyEnumValues[] = enumList.filter(\n (f) => f.enumName == name && f.languageCode == lang\n );\n localStorage.setItem(name + '_' + lang, JSON.stringify(data));\n });\n });\n } catch (error) {}\n }\n\n getEnum(EnumName: string): NettyEnum[] {\n let lang = this.environmentProxy.getCulture();\n let data = localStorage.getItem(EnumName + '_' + lang);\n\n if (data == null) return [];\n return JSON.parse(data);\n }\n}\n","/*\n * Public API Surface of ntyui\n */\n\nexport * from './lib/ntyui';\nexport * from './lib/ntyui-module';\nexport * from './lib/text-input/text-input';\nexport * from './lib/email-input/email-input';\nexport * from './lib/date-time/date-time';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/masked-input/masked-input';\nexport * from './lib/carousel/carousel';\nexport * from './lib/checkbox-toggle/checkbox-toggle';\nexport * from './lib/button/button';\nexport * from './lib/filter-button/filter-button';\nexport * from './lib/number-input/number-input';\nexport * from './lib/search-input/search-input';\nexport * from './lib/select/select';\nexport * from './lib/visible-switch-button/visible-switch-button';\nexport * from './lib/time-picker/time-picker';\nexport * from './lib/tree/tree';\nexport * from './lib/color-picker/color-picker';\nexport * from './lib/framework/models/IEnum';\nexport * from './lib/framework/models/enum-values';\nexport * from './lib/framework/services/enumstorage-proxy';\nexport * from './lib/ui-base/ui-base';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i5","i1","i3","i2"],"mappings":"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"}
1
+ {"version":3,"file":"nettyapps-ntyui.mjs","sources":["../../../projects/ntyui/src/lib/ntyui.ts","../../../projects/ntyui/src/lib/ntyui-module.ts","../../../projects/ntyui/src/lib/ui-base/ui-base.ts","../../../projects/ntyui/src/lib/ui-base/ui-base.html","../../../projects/ntyui/src/lib/text-input/text-input.ts","../../../projects/ntyui/src/lib/text-input/text-input.html","../../../projects/ntyui/src/lib/email-input/email-input.ts","../../../projects/ntyui/src/lib/email-input/email-input.html","../../../projects/ntyui/src/lib/date-time/date-time.ts","../../../projects/ntyui/src/lib/date-time/date-time.html","../../../projects/ntyui/src/lib/date-picker/date-picker.ts","../../../projects/ntyui/src/lib/date-picker/date-picker.html","../../../projects/ntyui/src/lib/masked-input/masked-input.ts","../../../projects/ntyui/src/lib/masked-input/masked-input.html","../../../projects/ntyui/src/lib/carousel/carousel.ts","../../../projects/ntyui/src/lib/carousel/carousel.html","../../../projects/ntyui/src/lib/checkbox-toggle/checkbox-toggle.ts","../../../projects/ntyui/src/lib/checkbox-toggle/checkbox-toggle.html","../../../projects/ntyui/src/lib/button/button.ts","../../../projects/ntyui/src/lib/button/button.html","../../../projects/ntyui/src/lib/filter-button/filter-button.ts","../../../projects/ntyui/src/lib/filter-button/filter-button.html","../../../projects/ntyui/src/lib/number-input/number-input.ts","../../../projects/ntyui/src/lib/number-input/number-input.html","../../../projects/ntyui/src/lib/search-input/search-input.ts","../../../projects/ntyui/src/lib/search-input/search-input.html","../../../projects/ntyui/src/lib/select/select.ts","../../../projects/ntyui/src/lib/select/select.html","../../../projects/ntyui/src/lib/visible-switch-button/visible-switch-button.ts","../../../projects/ntyui/src/lib/visible-switch-button/visible-switch-button.html","../../../projects/ntyui/src/lib/time-picker/time-picker.ts","../../../projects/ntyui/src/lib/time-picker/time-picker.html","../../../projects/ntyui/src/lib/tree/tree.ts","../../../projects/ntyui/src/lib/tree/tree.html","../../../projects/ntyui/src/lib/color-picker/color-picker.ts","../../../projects/ntyui/src/lib/color-picker/color-picker.html","../../../projects/ntyui/src/lib/framework/models/enum-values.ts","../../../projects/ntyui/src/lib/framework/services/enumstorage-proxy.ts","../../../projects/ntyui/src/public-api.ts","../../../projects/ntyui/src/nettyapps-ntyui.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ntyui',\n standalone: false,\n template: `\n <p>\n ntyui works!\n </p>\n `,\n styles: ``,\n host: { 'ntyui-id': 'Ntyui' },\n})\nexport class Ntyui {\n\n}\n","import { NgModule } from '@angular/core';\nimport { Ntyui } from './ntyui';\n\n@NgModule({\n declarations: [Ntyui],\n imports: [],\n exports: [Ntyui],\n})\nexport class NtyuiModule {}\n","import {\n Component,\n input,\n booleanAttribute,\n model,\n viewChild,\n effect,\n output,\n} from '@angular/core';\nimport { NgModel, Validators } from '@angular/forms';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\n@Component({\n selector: 'ntyui-ui-base',\n imports: [],\n templateUrl: './ui-base.html',\n styleUrl: './ui-base.scss',\n host: { 'ntyui-id': 'UiBase' },\n})\nexport class UiBase {\n // Input properties\n placeholder = input<string>('');\n label = input<string>('');\n required = input(false, { transform: booleanAttribute });\n disabled = input(false, { transform: booleanAttribute });\n appearance = input<MatFormFieldAppearance>('outline');\n maxLength = input<number | undefined>();\n minLength = input<number | undefined>();\n validateRegex = input<string | RegExp | null>(null);\n validateRegexErrorMessage = input<string>('@invalidFormat');\n forFilter = input(false, { transform: booleanAttribute });\n\n // Debounce properties\n debounce = input<number>(200);\n protected debounceTimer: any;\n\n value = model('');\n\n // Error messages\n errorMessages = input<{\n required?: string;\n minlength?: string;\n maxlength?: string;\n email?: string;\n pattern?: string;\n incomplete?: string;\n [key: string]: string | undefined;\n }>({\n incomplete: 'Please complete the field',\n });\n\n // Reference to ngModel (will be set by child component)\n protected ngModel?: NgModel;\n\n // Get reference to NgModel directive\n inputModel = viewChild<NgModel>('inputModel');\n\n // ControlValueAccessor methods\n protected onChange: (value: any) => void = () => { };\n protected onTouched: () => void = () => { };\n\n constructor() {\n effect(() => {\n this.ngModel = this.inputModel();\n this.updateValidators();\n });\n\n effect(() => {\n this.onChange(this.value());\n });\n\n effect(() => {\n if (this.validateRegex()) {\n this.updateValidators();\n }\n });\n }\n\n // ControlValueAccessor interface implementation\n writeValue(value: any): void {\n this.value.set(value || '');\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n getErrorMessage(): string | undefined {\n if (!this.ngModel?.control) return undefined;\n\n if (this.ngModel.control.hasError('required')) {\n return this.errorMessages().required;\n }\n if (this.ngModel.control.hasError('minlength')) {\n return this.errorMessages().minlength;\n }\n if (this.ngModel.control.hasError('maxlength')) {\n return this.errorMessages().maxlength;\n }\n if (this.ngModel.control.hasError('pattern')) {\n return this.errorMessages().pattern || this.validateRegexErrorMessage();\n }\n\n return undefined;\n }\n\n // Update validators based on input changes\n protected updateValidators() {\n if (!this.ngModel?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n if (this.disabled()) {\n this.ngModel.control.disable({ emitEvent: false });\n } else {\n this.ngModel.control.enable({ emitEvent: false });\n }\n\n const minLength = this.minLength();\n if (minLength !== undefined) {\n validators.push(Validators.minLength(minLength));\n }\n\n const maxLength = this.maxLength();\n if (maxLength !== undefined) {\n validators.push(Validators.maxLength(maxLength));\n }\n\n // Regex validation\n const regexPattern = this.validateRegex();\n if (regexPattern) {\n const pattern =\n regexPattern instanceof RegExp\n ? regexPattern\n : new RegExp(regexPattern);\n validators.push(Validators.pattern(pattern));\n }\n\n this.ngModel.control.setValidators(validators);\n this.ngModel.control.updateValueAndValidity();\n }\n\n onInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n let val = input.value;\n\n const regexPattern = this.validateRegex();\n if (regexPattern && val) {\n const pattern =\n regexPattern instanceof RegExp\n ? regexPattern\n : new RegExp(regexPattern, 'g');\n const matches = val.match(pattern);\n if (matches) {\n val = matches.join('');\n } else {\n val = '';\n }\n\n input.value = val;\n }\n if (this.debounceTimer) {\n clearTimeout(this.debounceTimer);\n }\n\n this.debounceTimer = setTimeout(() => {\n this.value.set(val);\n }, this.debounce());\n\n this.onTouched();\n }\n\n // Clear the input value\n clearInput() {\n this.value.set('');\n this.ngModel?.control.setValue('');\n this.onTouched();\n }\n}\n","<p>ui-base works!</p>\n","import { Component } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-text-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './text-input.html',\n styleUrl: './text-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUITextInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUITextInput' },\n})\nexport class NettyUITextInput extends UiBase {}\n","<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 (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","import { Component, forwardRef } from '@angular/core';\nimport {\n Validators,\n FormsModule,\n ReactiveFormsModule,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-email-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatIconModule,\n ],\n templateUrl: './email-input.html',\n styleUrl: './email-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIEmailInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIEmailInput' },\n})\nexport class NettyUIEmailInput extends UiBase {\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [Validators.email];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.inputModel()?.control) return undefined;\n\n if (this.inputModel()?.control.hasError('required')) {\n return this.errorMessages().required;\n }\n\n if (this.inputModel()?.control.hasError('email')) {\n return this.errorMessages().email;\n }\n\n return undefined;\n }\n}\n","<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","import {\n Component,\n input,\n model,\n effect,\n signal,\n inject,\n viewChild,\n computed,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTimepickerModule } from '@angular/material/timepicker';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype DateRestriction = 'past' | 'future' | 'any';\n\n@Component({\n selector: 'ntyui-date-time',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatIconModule,\n MatTimepickerModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIDateTime,\n multi: true,\n },\n ],\n templateUrl: './date-time.html',\n styleUrl: './date-time.scss',\n host: { 'ntyui-id': 'NettyUIDateTime' },\n})\nexport class NettyUIDateTime extends UiBase {\n // Combined value output\n dateTimeValue = model<Date | null>(null);\n\n // Input properties\n timeLabel = input<string>('');\n dateRestriction = input<DateRestriction>('any');\n timeFormat = input<string>('tr-TR');\n\n // Date properties\n public dateValue = signal<Date | null>(null);\n\n // Time properties\n public timeValue = signal<Date>(new Date('1900-01-01T00:00:00'));\n\n // Template references\n dateModel = viewChild<NgModel>('dateModel');\n timeModel = viewChild<NgModel>('timeModel');\n\n override inputModel = viewChild<NgModel>('dateInputModel');\n\n private readonly dateAdapter =\n inject<DateAdapter<unknown, unknown>>(DateAdapter);\n\n displayValue = computed(() => {\n const date = this.dateValue();\n if (!date) return null;\n\n const day = date.getDate().toString().padStart(2, '0');\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const year = date.getFullYear();\n return `${day}/${month}/${year}`;\n });\n\n // Date restrictions\n minDate = computed(() => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return this.dateRestriction() === 'future'\n ? new Date(today.getTime() + 86400000)\n : null;\n });\n\n maxDate = computed(() => {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return this.dateRestriction() === 'past'\n ? new Date(today.getTime() - 86400000)\n : null;\n });\n\n constructor() {\n super();\n\n // Value changes\n effect(() => {\n this.dateValue();\n this.timeValue();\n this.updateCombinedValue();\n });\n\n effect(() => {\n const dateTime = this.dateTimeValue();\n const shouldBeNull = this.forFilter() || this.required();\n if (dateTime) {\n // 3 saatlik farkı telafi ederek ISO string oluşturma\n const offset = dateTime.getTimezoneOffset() * 60000;\n const localISOTime = new Date(dateTime.getTime() - offset)\n .toISOString()\n .slice(0, -1);\n\n this.value.set(localISOTime);\n this.onChange(dateTime);\n } else {\n this.value.set(shouldBeNull ? null : ('' as any));\n this.onChange(shouldBeNull ? null : dateTime);\n }\n });\n\n // Locale changes\n effect(() => {\n this.dateAdapter.setLocale(this.timeFormat());\n });\n }\n\n private updateCombinedValue() {\n const date = this.dateValue();\n const time = this.timeValue();\n\n if (!date) {\n if (this.forFilter()) {\n this.dateTimeValue.set(null);\n return;\n }\n this.dateTimeValue.set(\n this.required() ? null : new Date('1900-01-01T00:00:00')\n );\n return;\n }\n\n const combined = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n 0\n );\n\n this.dateTimeValue.set(combined);\n }\n\n onDateChange(event: any) {\n const newDate = event.value as Date | null;\n\n if (!newDate || isNaN(newDate.getTime())) {\n this.dateValue.set(null);\n this.updateCombinedValue();\n return;\n }\n\n const localDate = new Date(\n newDate.getFullYear(),\n newDate.getMonth(),\n newDate.getDate()\n );\n\n const min = this.minDate();\n const max = this.maxDate();\n const isValid = (!min || localDate >= min) && (!max || localDate <= max);\n\n if (isValid) {\n this.dateValue.set(localDate);\n this.updateCombinedValue();\n } else {\n this.dateValue.set(null);\n this.updateCombinedValue();\n }\n }\n\n onTimeChange(newTime: Date) {\n const time = new Date('1900-01-01T00:00:00');\n time.setHours(newTime.getHours());\n time.setMinutes(newTime.getMinutes());\n this.timeValue.set(time);\n }\n\n override clearInput() {\n this.dateValue.set(null);\n this.timeValue.set(new Date('1900-01-01T00:00:00'));\n this.onChange(null);\n this.updateCombinedValue();\n this.onTouched();\n }\n\n override writeValue(value: any): void {\n if (value && value !== '') {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.dateValue.set(date);\n const t = new Date('1900-01-01T00:00:00');\n t.setHours(date.getHours(), date.getMinutes());\n this.timeValue.set(t);\n this.value.set(value);\n return;\n }\n }\n\n this.dateValue.set(null);\n this.timeValue.set(new Date('1900-01-01T00:00:00'));\n\n const shouldBeNull = this.forFilter() || this.required();\n\n this.value.set(shouldBeNull ? null : ('' as any));\n this.dateTimeValue.set(\n shouldBeNull ? null : new Date('1900-01-01T00:00:00')\n );\n }\n}\n","<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 (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n #dateInputModel=\"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 (dateInputModel.invalid && (dateInputModel.dirty ||\n dateInputModel.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 #timeInputModel=\"ngModel\"\n matInput\n [matTimepicker]=\"timepicker\"\n [ngModel]=\"timeValue()\"\n (ngModelChange)=\"onTimeChange($event)\"\n [ngModelOptions]=\"{updateOn: 'blur'}\"\n [disabled]=\"disabled()\"\n />\n\n @if ( timeInputModel.invalid && ( timeInputModel.dirty ||\n timeInputModel.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","import {\n Component,\n input,\n model,\n effect,\n signal,\n forwardRef,\n} from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype DateRestriction = 'past' | 'future' | 'any';\n\n@Component({\n selector: 'ntyui-date-picker',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatIconModule,\n ],\n templateUrl: './date-picker.html',\n styleUrl: './date-picker.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIDatePicker,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIDatePicker' },\n})\nexport class NettyUIDatePicker extends UiBase {\n // Constants\n private readonly NULL_DATE = '1900-01-01T00:00:00.000Z'; // Null date in UTC format\n\n // Inputs\n dateRestriction = input<DateRestriction>('any');\n\n // Model and Signals\n dateValue = model<string | Date | null>(null);\n selectedDate = model<Date | null>(null);\n displayValue = signal<string | null>(null);\n\n // Date limits\n minDate = signal<Date | null>(null);\n maxDate = signal<Date | null>(null);\n\n constructor() {\n super();\n\n // Update displayValue and dateValue when selected date changes\n effect(() => {\n const date = this.selectedDate();\n\n if (date === null) {\n this.dateValue.set(this.required() ? null : this.NULL_DATE);\n this.displayValue.set(null);\n } else {\n this.dateValue.set(date.toISOString());\n this.displayValue.set(this.formatDisplayDate(date));\n }\n });\n\n // Set min/max dates according to date restriction\n effect(() => {\n const today = this.getStartOfDay(new Date());\n\n switch (this.dateRestriction()) {\n case 'past':\n this.minDate.set(null);\n this.maxDate.set(new Date(today.getTime() - 86400000)); // Yesterday\n break;\n case 'future':\n this.minDate.set(new Date(today.getTime() + 86400000)); // Tomorrow\n this.maxDate.set(null);\n break;\n default: // 'any'\n this.minDate.set(null);\n this.maxDate.set(null);\n }\n });\n }\n\n private getStartOfDay(date: Date): Date {\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n private formatDisplayDate(date: Date): string {\n const day = date.getUTCDate().toString().padStart(2, '0');\n const month = (date.getUTCMonth() + 1).toString().padStart(2, '0');\n const year = date.getUTCFullYear();\n return `${day}/${month}/${year}`;\n }\n\n // ControlValueAccessor Implementation\n override writeValue(value: any): void {\n if (value && value !== this.NULL_DATE) {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n this.selectedDate.set(date);\n return;\n }\n }\n\n this.selectedDate.set(null);\n }\n\n onDateChange(event: { value: Date | null }): void {\n const newValue = event.value;\n\n if (!newValue || isNaN(newValue.getTime())) {\n this.selectedDate.set(null);\n this.onChange(null);\n return;\n }\n\n // Create UTC date\n const utcDate = new Date(\n Date.UTC(newValue.getFullYear(), newValue.getMonth(), newValue.getDate())\n );\n\n // Date restriction check\n const isValid = this.isDateValid(utcDate);\n this.selectedDate.set(isValid ? utcDate : null);\n this.onChange(isValid ? utcDate.toISOString() : null);\n this.onTouched();\n }\n\n private isDateValid(date: Date): boolean {\n return (\n (this.minDate() === null || date >= this.minDate()!) &&\n (this.maxDate() === null || date <= this.maxDate()!)\n );\n }\n\n override clearInput(): void {\n this.selectedDate.set(null);\n this.onChange(this.required() ? null : this.NULL_DATE);\n this.onTouched();\n }\n}\n","<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","import { Component, input, forwardRef } from '@angular/core';\nimport {\n AbstractControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-masked-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './masked-input.html',\n styleUrl: './masked-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUIMaskedInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUIMaskedInput' },\n})\nexport class NettyUIMaskedInput extends UiBase {\n // Input properties\n mask = input<string>('00-00');\n\n override onInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n let value = input.value;\n this.onChange(value);\n this.onTouched();\n let cursorPosition = input.selectionStart || 0;\n\n // Apply mask\n const maskedValue = this.applyMask(value);\n\n // Update values\n const unmaskedValue = this.removeMask(maskedValue);\n this.value.set(unmaskedValue);\n this.value.set(maskedValue);\n input.value = maskedValue;\n\n // Adjust cursor position only if we're typing (not deleting)\n if (value.length >= this.value().length) {\n cursorPosition = this.adjustCursorPosition(\n this.value(),\n maskedValue,\n cursorPosition\n );\n input.setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n\n private applyMask(value: string): string {\n if (!value) return '';\n\n const mask = this.mask();\n if (!mask) return value;\n\n const unmaskedValue = this.removeMask(value);\n let maskedValue = '';\n let valueIndex = 0;\n\n for (let i = 0; i < mask.length && valueIndex < unmaskedValue.length; i++) {\n const maskChar = mask[i];\n\n if (maskChar === '0') {\n if (/\\d/.test(unmaskedValue[valueIndex])) {\n maskedValue += unmaskedValue[valueIndex];\n valueIndex++;\n }\n } else {\n // Only add mask character if we have digits after it\n if (valueIndex > 0 || unmaskedValue.length > 0) {\n maskedValue += maskChar;\n }\n }\n }\n\n return maskedValue;\n }\n\n private removeMask(value: string): string {\n if (!this.mask()) return value;\n return value.replace(/\\D/g, ''); // Only accept numbers, remove everything else\n }\n\n private adjustCursorPosition(\n oldValue: string,\n newValue: string,\n cursorPosition: number\n ): number {\n const mask = this.mask();\n if (!mask || cursorPosition >= mask.length) return cursorPosition;\n\n // Delete operation\n if (oldValue.length > newValue.length) {\n if (cursorPosition > 0 && mask[cursorPosition - 1] !== '0') {\n return cursorPosition - 1;\n }\n return cursorPosition;\n }\n\n // Add operation\n if (cursorPosition < mask.length && mask[cursorPosition] !== '0') {\n return cursorPosition + 1;\n }\n\n return cursorPosition;\n }\n\n private validateMaskCompletion(value: string): boolean {\n if (!this.mask() || !value) return false;\n\n const unmaskedValue = this.removeMask(value);\n const requiredDigits = this.mask().split('0').length - 1;\n\n return unmaskedValue.length >= requiredDigits;\n }\n\n private maskValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value;\n if (!value) return null; // Skip validation if empty (required fields are handled by a separate validator)\n\n return this.validateMaskCompletion(value) ? null : { incomplete: true };\n };\n }\n\n // Update validators based on input properties\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n const minLength = this.minLength();\n if (minLength !== undefined) {\n validators.push(Validators.minLength(minLength));\n }\n\n const maxLength = this.maxLength();\n if (maxLength !== undefined) {\n validators.push(Validators.maxLength(maxLength));\n }\n\n validators.push(this.maskValidator());\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.inputModel()?.control) return undefined;\n\n if (this.inputModel()?.control.hasError('required')) {\n return this.errorMessages().required;\n }\n\n if (this.inputModel()?.control.hasError('incomplete')) {\n return this.errorMessages().incomplete;\n }\n\n return undefined;\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { Component, effect, input, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\ninterface CarouselSlide {\n imageSrc: string;\n imageAlt: string;\n title?: string;\n description?: string;\n}\n\n@Component({\n selector: 'ntyui-carousel',\n imports: [CommonModule, FormsModule],\n templateUrl: './carousel.html',\n styleUrl: './carousel.scss',\n host: { 'ntyui-id': 'NettyUICarousel' },\n})\nexport class NettyUICarousel {\n slides = input<CarouselSlide[]>([\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1460627390041-532a28402358?ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80',\n imageAlt: 'nature1',\n title: 'Beautiful Nature',\n description: 'Explore the wonders of nature in this breathtaking view',\n },\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1470252649378-9c29740c9fa8?ixlib=rb-1.2.1&auto=format&fit=crop&w=870&q=80',\n imageAlt: 'nature2',\n title: 'Sunset Magic',\n description: 'Witness the magical colors of sunset',\n },\n {\n imageSrc:\n 'https://images.unsplash.com/photo-1640844444545-66e19eb6f549?ixlib=rb-1.2.1&auto=format&fit=crop&w=1032&q=80',\n imageAlt: 'person1',\n title: 'Portrait Photography',\n description: 'Professional portrait photography at its best',\n },\n ]);\n\n indicators = input(true);\n showText = input(true);\n textPosition = input<'bottom' | 'top' | 'left' | 'right'>('bottom');\n selectedIndex = signal(0);\n\n constructor() {\n effect(() => {\n if (this.selectedIndex() >= this.slides().length) {\n this.selectedIndex.set(0);\n }\n });\n }\n\n ngOnInit(): void {\n this.autoSlideImages();\n }\n\n selectImage(index: number): void {\n this.selectedIndex.set(index);\n }\n\n autoSlideImages(): void {\n setInterval(() => {\n this.selectedIndex.update((currentIndex) =>\n currentIndex < this.slides().length - 1 ? currentIndex + 1 : 0\n );\n }, 3000);\n }\n}\n","@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","import { Component, effect, forwardRef, input, model } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype ToggleType = 'checkbox' | 'slide-toggle';\n\ntype CheckboxShape = 'circle' | 'rectangle';\n\n@Component({\n selector: 'ntyui-checkbox-toggle',\n imports: [MatCheckboxModule, MatSlideToggleModule, FormsModule],\n templateUrl: './checkbox-toggle.html',\n styleUrl: './checkbox-toggle.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUICheckboxToggle,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUICheckboxToggle' },\n})\nexport class NettyUICheckboxToggle extends UiBase {\n // Checkbox and toggle properties\n type = input<ToggleType>('checkbox');\n shape = input<CheckboxShape>('rectangle');\n checked = model(false);\n\n // Position of the label relative to the checkbox (only applies when type is 'checkbox')\n labelPosition = input<'before' | 'after'>('after');\n\n constructor() {\n super();\n\n effect(() => {\n this.onChange(this.checked());\n });\n }\n\n /**\n * Handle value change events\n * @param newValue New value of the toggle\n */\n onValueChange(newValue: boolean) {\n this.checked.set(newValue);\n this.onChange(newValue);\n this.onTouched();\n }\n\n // ControlValueAccessor interface implementation\n override writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n override updateValidators() {\n if (!this.inputModel()?.control) return;\n\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.requiredTrue);\n }\n\n if (this.disabled()) {\n this.inputModel()?.control.disable({ emitEvent: false });\n } else {\n this.inputModel()?.control.enable({ emitEvent: false });\n }\n\n this.inputModel()?.control.setValidators(validators);\n this.inputModel()?.control.updateValueAndValidity();\n }\n}\n","<div class=\"nty-checkbox-frame\">\n @if (type() === 'checkbox') {\n\n <mat-checkbox #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" [labelPosition]=\"labelPosition()\" [class.circle]=\"shape() === 'circle'\"\n [class.rectangle]=\"shape() === 'rectangle'\">\n {{ label() }}\n </mat-checkbox>\n } @else {\n <mat-slide-toggle #inputModel=\"ngModel\" [ngModel]=\"checked()\" (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"disabled()\" class=\"slide-toggle\">\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</div>","\nimport {\n booleanAttribute,\n Component,\n computed,\n input,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { interval, takeWhile, Subscription } from 'rxjs';\nimport { UiBase } from '../ui-base/ui-base';\n\ntype MenuButtonType = 'regular' | 'menu' | 'close';\n\n@Component({\n selector: 'ntyui-button',\n imports: [\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MatMenuModule\n ],\n templateUrl: './button.html',\n styleUrl: './button.scss',\n host: { 'ntyui-id': 'NettyUIButton' },\n})\nexport class NettyUIButton extends UiBase implements OnDestroy {\n // Input signals\n icon = input<string>('');\n isFilled = input(false, { transform: booleanAttribute });\n menuReference = input<any>(null);\n disableOnClick = input(false, { transform: booleanAttribute });\n disableDuration = input<number>(0);\n waitingText = input<string>('');\n type = input<MenuButtonType>('menu');\n toolTip = input<string>('');\n // Output\n clicked = output<void>();\n\n // Computed signal\n private _isDisabled = signal<boolean>(false);\n isDisabled = computed(() => this.disabled() || this._isDisabled());\n // Timer\n private timerSub?: Subscription;\n countdown = signal<number>(0);\n\n onClicked() {\n if (this.isDisabled()) return;\n\n if (this.disableOnClick() && this.disableDuration() > 0) {\n this._isDisabled.set(true);\n this.countdown.set(this.disableDuration());\n\n this.timerSub?.unsubscribe();\n\n this.timerSub = interval(1000)\n .pipe(takeWhile(() => this.countdown() > 0))\n .subscribe({\n next: () => {\n this.countdown.update((v) => v - 1);\n },\n complete: () => {\n this._isDisabled.set(false);\n },\n });\n }\n\n this.clicked.emit();\n }\n\n getDisplayText(): string {\n if (this.countdown() > 0) {\n return this.waitingText() || `${this.countdown()}s`;\n }\n return this.label();\n }\n\n ngOnDestroy() {\n this.timerSub?.unsubscribe();\n }\n}\n","@switch (type()) { @case ('menu') {\n<button\n type=\"button\"\n mat-button\n [matTooltip]=\"toolTip()\"\n [class]=\"getDisplayText().length > 0 ? 'ui-menu-button-text' : 'ui-menu-button'\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matMenuTriggerFor]=\"menuReference()\"\n>\n @if (icon() && countdown() === 0) {\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> }\n <span>{{ getDisplayText() }}</span>\n @if (menuReference() && !(countdown() > 0)){\n <mat-icon class=\"menu-icon\">arrow_drop_down</mat-icon>\n }\n</button>\n} @case ('close') {\n<div class=\"flex-container\">\n <button\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"ui-close-button\"\n >\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } @else\n {<mat-icon> close </mat-icon>} {{ getDisplayText() }}\n </button>\n</div>\n} @default { @if(isFilled()){\n<button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"regular-button\"\n matButton=\"filled\"\n>\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } {{\n getDisplayText() }}\n</button>\n} @else {\n<button\n mat-stroked-button\n color=\"primary\"\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n [matTooltip]=\"toolTip()\"\n class=\"regular-button\"\n>\n @if(icon()){\n <mat-icon class=\"material-symbols-outlined\">{{ icon() }}</mat-icon> } {{\n getDisplayText() }}\n</button>\n} } }\n","import {\n Component,\n ElementRef,\n input,\n output,\n signal,\n viewChild,\n computed,\n OnDestroy,\n HostListener,\n effect,\n} from '@angular/core';\n\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-filter-button',\n imports: [MatButtonModule, MatIconModule, FormsModule],\n templateUrl: './filter-button.html',\n styleUrl: './filter-button.scss',\n host: { 'ntyui-id': 'NettyUIFilterButton' },\n})\nexport class NettyUIFilterButton extends UiBase implements OnDestroy {\n // Input signals\n icon = input<string>('');\n waitingText = input<string>('');\n searchValue = input<string>('');\n\n // View child\n filterInput = viewChild<ElementRef>('filterInput');\n\n // State signals\n protected _searchValue = signal<string>(this.searchValue());\n private lastEmittedValue = signal('');\n showFilterInput = signal<boolean>(false);\n private _isDisabled = signal<boolean>(false);\n\n // Computed signals\n isDisabled = computed(() => this.disabled() || this._isDisabled());\n iconColor = computed(() =>\n this._searchValue() ? 'var(--mat-sys-surface)' : ''\n );\n buttonBackgroundColor = computed(() =>\n this._searchValue() ? 'var(--mat-sys-primary)' : ''\n );\n\n // Outputs\n clicked = output<void>();\n onSearch = output<string>(); // Emits search value\n isSearchOpen = output<boolean>(); // True if text edit is open\n\n // Timer\n constructor(private elementRef: ElementRef) {\n super();\n // Update the _searchValue signal when the input value changes\n effect(() => {\n this._searchValue.set(this.searchValue());\n });\n\n // Debounce Effect\n effect(() => {\n const currentValue = this._searchValue();\n const lastValue = this.lastEmittedValue();\n\n if (currentValue !== lastValue) {\n clearTimeout(this.debounceTimer);\n this.debounceTimer = setTimeout(() => {\n this.onSearch.emit(currentValue);\n this.lastEmittedValue.set(currentValue);\n }, 500);\n }\n });\n }\n\n onClicked() {\n if (this.isDisabled()) return;\n this.toggleFilterInput();\n }\n\n onSearchInputChange(value: string) {\n this._searchValue.set(value);\n }\n\n onFilterInputClick(event: Event) {\n event.stopPropagation();\n }\n\n toggleFilterInput() {\n this.showFilterInput.update((show) => !show);\n this.isSearchOpen.emit(this.showFilterInput());\n if (this.showFilterInput()) {\n setTimeout(() => this.filterInput()?.nativeElement.focus());\n }\n }\n\n closeFilter() {\n this.showFilterInput.set(false);\n this.isSearchOpen.emit(false);\n }\n\n @HostListener('document:click', ['$event'])\n handleDocumentClick(event: MouseEvent) {\n // Check if click was outside the filter button/input\n if (\n !this.elementRef.nativeElement.contains(event.target) &&\n this.showFilterInput()\n ) {\n this.closeFilter();\n }\n }\n\n getDisplayText(): string {\n return this.label();\n }\n\n ngOnDestroy() {\n clearTimeout(this.debounceTimer);\n }\n}\n","<button\n mat-button\n [disabled]=\"isDisabled()\"\n (click)=\"onClicked()\"\n class=\"filter-button\"\n [style.background-color]=\"buttonBackgroundColor()\"\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","import { Component, input, numberAttribute } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-number-input',\n imports: [\n MatInputModule,\n MatFormFieldModule,\n FormsModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './number-input.html',\n styleUrl: './number-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUINumberInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUINumberInput' },\n})\nexport class NettyUINumberInput extends UiBase {\n min = input<number | null, unknown>(null, { transform: numberAttribute });\n max = input<number | null, unknown>(null, { transform: numberAttribute });\n\n protected override updateValidators() {\n if (!this.ngModel?.control) return;\n\n const validators = [];\n\n if (this.required()) validators.push(Validators.required);\n\n const minValue = this.min();\n if (minValue !== null && minValue !== undefined) {\n validators.push(Validators.min(minValue));\n }\n\n const maxValue = this.max();\n if (maxValue !== null && maxValue !== undefined) {\n validators.push(Validators.max(maxValue));\n }\n\n const regexPattern = this.validateRegex();\n if (regexPattern) {\n validators.push(Validators.pattern(regexPattern));\n }\n\n this.ngModel.control.setValidators(validators);\n this.ngModel.control.updateValueAndValidity();\n }\n\n calculateExpression(event?: Event) {\n if (event) {\n event.preventDefault(); // Prevent form submission\n }\n try {\n if (/[a-zA-Z<>{};]/.test(this.value() ?? '')) {\n throw new Error('Invalid character');\n }\n\n const expression = (this.value() ?? '').replace(/x/g, '*');\n // Use Function constructor instead of direct eval\n const result = new Function('return ' + expression)();\n\n this.value.set(result.toString());\n } catch (e) {\n console.error('Hesaplama hatası:', e);\n this.value.set('Geçersiz ifade girdiniz.');\n setTimeout(() => {\n this.value.set('');\n }, 2000);\n }\n }\n\n override getErrorMessage(): string | undefined {\n if (!this.ngModel?.control) return undefined;\n\n const errors = this.ngModel.control.errors;\n if (!errors) return undefined;\n\n if (errors['min']) {\n return this.errorMessages()['min'];\n }\n\n if (errors['max']) {\n return this.errorMessages()['max'];\n }\n\n return super.getErrorMessage();\n }\n}\n","<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","import { Component, output } from '@angular/core';\nimport {\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-search-input',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n ],\n templateUrl: './search-input.html',\n styleUrl: './search-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUISearchInput,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUISearchInput' },\n})\nexport class NettyUISearchInput extends UiBase {\n // Output event when user presses Enter\n search = output<string>();\n\n emitSearch() {\n this.search.emit(this.value());\n }\n}\n","<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","import {\n Component,\n booleanAttribute,\n input,\n model,\n effect,\n viewChild,\n} from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { Validators } from '@angular/forms';\nimport { NettyEnum } from '../framework/models/IEnum';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-select',\n imports: [MatFormFieldModule, MatSelectModule, FormsModule, MatInputModule],\n templateUrl: './select.html',\n styleUrl: './select.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NettyUISelect,\n multi: true,\n },\n ],\n host: { 'ntyui-id': 'NettyUISelect' },\n})\nexport class NettyUISelect extends UiBase {\n // Input properties\n showNoneOption = input(false, { transform: booleanAttribute });\n nullAllowed = input(false, { transform: booleanAttribute });\n multiple = input(false, { transform: booleanAttribute });\n showCustomTrigger = input(false, { transform: booleanAttribute });\n enumList = model<NettyEnum[]>([]);\n selectedValue = model<any>(this.multiple() ? [] : null);\n\n // Template reference\n selectModel = viewChild<NgModel>('selectModel');\n\n constructor() {\n super();\n\n // Update validators when required or nullAllowed changes\n effect(() => {\n const validators =\n this.required() && !this.nullAllowed() ? [Validators.required] : [];\n\n if (this.selectModel()?.control) {\n this.selectModel()?.control.setValidators(validators);\n this.selectModel()?.control.updateValueAndValidity();\n }\n });\n\n // Reset selectedValue when switching between single/multiple mode\n effect(() => {\n this.selectedValue.set(this.multiple() ? [] : null);\n });\n\n // Handle value changes\n effect(() => {\n const value = this.selectedValue();\n this.onChange(value);\n this.onTouched();\n });\n }\n\n hasNoneOption(): boolean {\n return (this.showNoneOption() || this.nullAllowed()) && !this.required();\n }\n\n getSelectedCount(): number {\n return this.selectedValue()?.length || 0;\n }\n\n getSelectedText(value: any): string {\n if (value === null || value === undefined) return '';\n\n const found = this.enumList().find((item) => item.value == value);\n return found ? found.text : '';\n }\n\n // ControlValueAccessor interface implementation\n override writeValue(value: any): void {\n if (this.multiple()) {\n this.selectedValue.set(Array.isArray(value) ? value : []);\n } else {\n this.selectedValue.set(value);\n }\n }\n}\n","<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","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '../ui-base/ui-base';\nimport { Component, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'ntyui-visible-switch-button',\n imports: [MatButtonModule, MatIconModule],\n templateUrl: './visible-switch-button.html',\n styleUrl: './visible-switch-button.scss',\n host: { 'ntyui-id': 'NettyUIVisibleSwitchButton' },\n})\nexport class NettyUIVisibleSwitchButton extends UiBase {\n public visible = model<boolean>(true);\n public visibleIcon = input<string>('visibility');\n public hiddenIcon = input<string>('visibility_off');\n public visibleLabel = input<string>('');\n public hiddenLabel = input<string>('');\n public clicked = output<boolean>();\n\n onClicked() {\n this.visible.update((a) => !a);\n this.clicked.emit(this.visible());\n }\n\n getDisplayText(): string {\n return this.visible() ? this.visibleLabel() : this.hiddenLabel();\n }\n}\n","<button mat-button [disabled]=\"disabled()\" (click)=\"onClicked()\"\n [class]=\"getDisplayText().length > 0 ? 'visible-button-text' : 'visible-button'\">\n @if (visible()){\n <mat-icon>{{ visibleIcon() }}</mat-icon>\n }\n @else{\n <mat-icon>{{ hiddenIcon() }}</mat-icon>\n }\n <span>{{ getDisplayText() }}</span>\n</button>","import {\n Component,\n ChangeDetectionStrategy,\n model,\n inject,\n effect,\n input,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatTimepickerModule } from '@angular/material/timepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { DateAdapter, provideNativeDateAdapter } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { UiBase } from '../ui-base/ui-base';\n\n@Component({\n selector: 'ntyui-time-picker',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n MatTimepickerModule,\n MatDatepickerModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.scss',\n providers: [provideNativeDateAdapter()],\n host: { 'ntyui-id': 'NettyUITimePicker' },\n})\nexport class NettyUITimePicker extends UiBase {\n timeValue = model<Date | null>(new Date('1900-01-01T00:00:00.000Z'));\n\n // Input properties\n timeFormat = input<string>('tr-TR');\n\n // Time format\n private readonly _adapter =\n inject<DateAdapter<unknown, unknown>>(DateAdapter);\n\n constructor() {\n super();\n // Watch for changes in timeFormat and update the locale\n effect(() => {\n this._adapter.setLocale(this.timeFormat());\n });\n }\n\n ngOnInit() {\n // Uses a fixed date instead of today's date when initializing the time picker\n this.timeValue.set(new Date('1900-01-01T00:00:00.000Z'));\n }\n\n protected onTimeChange(newTime: Date | null) {\n if (!newTime) {\n // Handle the null case - maybe set to default time or return early\n return;\n }\n\n const fixedDate = new Date('1900-01-01T00:00:00.000Z');\n fixedDate.setHours(newTime.getHours());\n fixedDate.setMinutes(newTime.getMinutes());\n this.timeValue.set(fixedDate);\n }\n}\n","<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","import { Component, signal, model, input, effect } from '@angular/core';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport interface TreeNode {\n id: string; // GUID\n text: string;\n parentId: string | null;\n children?: TreeNode[];\n expanded?: boolean;\n selected?: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n}\n\nexport type SelectionMode = 'single' | 'multiple';\n\n@Component({\n selector: 'ntyui-tree',\n imports: [\n MatCheckboxModule,\n MatRadioModule,\n MatButtonModule,\n MatIconModule\n ],\n templateUrl: './tree.html',\n styleUrl: './tree.scss',\n host: { 'ntyui-id': 'NettyUITree' },\n})\nexport class NettyUITree {\n // Input signals\n data = model<TreeNode[]>([]);\n selectionMode = model<SelectionMode>('multiple');\n\n selectedIds = model<string[]>([]);\n selectBranch = input<boolean>(true);\n\n // Internal signals\n private flattenedNodes = signal<TreeNode[]>([]);\n public componentId = Math.random().toString(36).substr(2, 9);\n protected treeData = signal<TreeNode[]>([]); // Computed signal for visible tree data\n protected isExpanded = signal<boolean>(false); // Track expanded state of nodes\n\n // Clear function when SelectionMode changes\n private previousSelectionMode: SelectionMode | undefined;\n\n constructor() {\n effect(() => {\n const ids = this.selectedIds();\n this.updateNodeSelection(ids);\n });\n\n // Effect that cleans up only when selectionMode changes\n effect(() => {\n const currentMode = this.selectionMode();\n // Clean only when mode changes (compares with previously saved mode)\n if (currentMode !== this.previousSelectionMode) {\n this.selectedIds.set([]);\n this.updateTreeDisplay(null);\n this.previousSelectionMode = currentMode;\n }\n });\n }\n\n ngOnInit(): void {\n this.updateTreeDisplay(null);\n }\n\n updateTreeDisplay(node: TreeNode | null): void {\n let nodes = this.buildTree(this.data(), node);\n this.flattenedNodes.set(this.flattenTree(nodes));\n this.treeData.set(this.getVisibleNodes(nodes));\n console.log('Tree data updated:', this.treeData());\n }\n\n getNodeLevel(node: TreeNode): number {\n let level = 0;\n let current = node;\n const allNodes = this.flattenedNodes();\n\n while (current.parentId) {\n const parent = allNodes.find((n) => n.id === current.parentId);\n if (parent) {\n level++;\n current = parent;\n } else {\n break;\n }\n }\n\n return level;\n }\n\n toggleExpand(node: TreeNode): void {\n node.expanded = !node.expanded;\n this.updateTreeDisplay(node);\n\n // After updating, ensure selection states are maintained\n this.updateNodeSelection(this.selectedIds());\n }\n\n onCheckboxChange(node: TreeNode, event: any): void {\n if (node.disabled) {\n event.source.checked = node.selected; // Revert the change\n return;\n }\n\n const isChecked = event.checked;\n\n if (this.selectionMode() === 'multiple') {\n this.setNodeSelection(node, isChecked);\n this.updateChildrenSelection(node, isChecked);\n\n // If selectBranch is active and node's parent is disabled, don't update parent\n if (\n !(\n this.selectBranch() &&\n node.parentId &&\n this.flattenedNodes().find((p) => p.id === node.parentId)?.disabled\n )\n ) {\n this.updateParentSelection(node);\n }\n\n this.emitSelection();\n }\n }\n\n onRadioChange(node: TreeNode): void {\n if (node.disabled || this.allChildrenDisabled(node)) {\n return;\n }\n\n if (this.selectionMode() === 'single') {\n // Clear all selections\n this.flattenedNodes().forEach((n) => (n.selected = false));\n // Select only the clicked node\n node.selected = true;\n this.emitSelection();\n }\n }\n\n private buildTree(\n nodes: TreeNode[],\n updatedNode: TreeNode | null\n ): TreeNode[] {\n const nodeMap = new Map<string, TreeNode>();\n const rootNodes: TreeNode[] = [];\n const currentSelectedIds = this.selectedIds();\n\n // First add all nodes to the map (without children)\n nodes.forEach((node) => {\n if (node.id == updatedNode?.id) {\n node.expanded = updatedNode?.expanded ?? false;\n }\n\n const hasChildren = nodes.some((n) => n.parentId === node.id);\n nodeMap.set(node.id, {\n ...node,\n children: [],\n expanded: node.expanded ?? false,\n selected: currentSelectedIds.includes(node.id),\n indeterminate: node.indeterminate ?? false,\n disabled: node.disabled ?? (hasChildren ? !this.selectBranch() : false),\n });\n });\n\n nodes.forEach((node) => {\n const treeNode = nodeMap.get(node.id)!;\n if (node.parentId && nodeMap.has(node.parentId)) {\n const parent = nodeMap.get(node.parentId)!;\n parent.children = parent.children || [];\n parent.children.push(treeNode);\n } else {\n rootNodes.push(treeNode);\n }\n });\n\n return rootNodes;\n }\n\n private flattenTree(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n\n const traverse = (nodeList: TreeNode[]) => {\n nodeList.forEach((node) => {\n result.push(node);\n if (node.children && node.children.length > 0) {\n traverse(node.children);\n }\n });\n };\n\n traverse(nodes);\n return result;\n }\n\n private getVisibleNodes(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n\n const traverse = (nodeList: TreeNode[]) => {\n nodeList.forEach((node) => {\n result.push(node);\n if (node.expanded && node.children && node.children.length > 0) {\n traverse(node.children);\n }\n });\n };\n\n traverse(nodes);\n return result;\n }\n\n private setNodeSelection(node: TreeNode, selected: boolean): void {\n if (node.disabled || this.allChildrenDisabled(node)) {\n return;\n }\n node.selected = selected;\n node.indeterminate = false;\n }\n\n private updateChildrenSelection(node: TreeNode, selected: boolean): void {\n if (node.children) {\n node.children.forEach((child) => {\n if (!child.disabled && !this.allChildrenDisabled(child)) {\n this.setNodeSelection(child, selected);\n this.updateChildrenSelection(child, selected);\n }\n });\n }\n }\n\n private updateParentSelection(node: TreeNode): void {\n const allNodes = this.flattenedNodes();\n const parent = allNodes.find((n) => n.id === node.parentId);\n\n if (parent) {\n if (this.selectBranch() && parent.disabled) {\n return;\n }\n\n const enabledChildren =\n parent.children?.filter((child) => !child.disabled) || [];\n const selectedChildren = enabledChildren.filter(\n (child) => child.selected\n ).length;\n const totalEnabledChildren = enabledChildren.length;\n\n if (\n selectedChildren === totalEnabledChildren &&\n totalEnabledChildren > 0\n ) {\n parent.selected = true;\n parent.indeterminate = false;\n } else if (selectedChildren > 0) {\n parent.selected = false;\n parent.indeterminate = true;\n } else {\n parent.selected = false;\n parent.indeterminate = false;\n }\n\n this.updateParentSelection(parent);\n }\n }\n\n private updateNodeSelection(selectedIds: string[]): void {\n const allNodes = this.flattenedNodes();\n\n allNodes.forEach((node) => {\n // Don't change selection state if selectBranch is active and node is disabled\n if (!(this.selectBranch() && node.disabled)) {\n node.selected = selectedIds.includes(node.id);\n }\n });\n\n if (this.selectionMode() === 'multiple') {\n const nodesReversed = [...allNodes].reverse();\n\n nodesReversed.forEach((node) => {\n if (this.selectBranch() && node.disabled) {\n return;\n }\n\n if (node.children?.length) {\n const enabledChildren = node.children.filter((c) => !c.disabled);\n const selectedCount = enabledChildren.filter(\n (c) => c.selected\n ).length;\n const indeterminateCount = enabledChildren.filter(\n (c) => c.indeterminate\n ).length;\n\n if (\n selectedCount === enabledChildren.length &&\n enabledChildren.length > 0\n ) {\n node.selected = true;\n node.indeterminate = false;\n } else if (selectedCount > 0 || indeterminateCount > 0) {\n node.selected = false;\n node.indeterminate = true;\n } else {\n node.selected = false;\n node.indeterminate = false;\n }\n }\n });\n }\n }\n\n private emitSelection(): void {\n const selected = this.flattenedNodes()\n .filter((node) => node.selected)\n .map((node) => node.id);\n\n this.selectedIds.set(selected);\n }\n\n public allChildrenDisabled(node: TreeNode): boolean {\n if (node.disabled) return true;\n if (!node.children || node.children.length === 0) {\n return false;\n }\n return node.children.every(\n (child) => child.disabled || this.allChildrenDisabled(child)\n );\n }\n}\n","<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","import {\n Component,\n ElementRef,\n input,\n model,\n output,\n viewChild,\n signal,\n computed,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'ntyui-color-picker',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n TranslateModule,\n ],\n templateUrl: './color-picker.html',\n styleUrl: './color-picker.scss',\n host: { 'ntyui-id': 'NettyUIColorPicker' },\n})\nexport class NettyUIColorPicker {\n // Two-way binding for the selected color (#RRGGBB format)\n selectedColor = model<string>('#000000');\n\n // Input for custom color presets provided by the parent component\n customColorPresets = input<string[]>([]);\n\n // Event emitted when the selected color changes\n colorChange = output<string>();\n\n // Reference to the hidden native color input element\n colorInput = viewChild<ElementRef<HTMLInputElement>>('colorInput');\n\n // Signal to control the visibility of the custom color picker popup\n isPickerVisible = signal(false);\n\n // Default color palette for the picker\n protected defaultColorPresets = signal<string[]>([\n '#FF0000',\n '#00FF00',\n '#0000FF',\n '#FFFF00',\n '#FF00FF',\n '#00FFFF',\n '#000000',\n '#FFFFFF',\n '#FF5733',\n '#33FF57',\n '#3357FF',\n '#F333FF',\n '#FF3333',\n '#33FFF3',\n '#8E33FF',\n '#FF33A1',\n '#FF6B6B',\n '#4ECDC4',\n '#45B7D1',\n '#96CEB4',\n '#FFEAA7',\n '#DDA0DD',\n '#98D8C8',\n '#F7DC6F',\n ]);\n\n // Computed signal that combines custom and default colors, ensuring uniqueness.\n displayColorPresets = computed(() => {\n const customColors = this.customColorPresets();\n const defaultColors = this.defaultColorPresets();\n\n // Merges colors and removes duplicates using a Set.\n return customColors.length > 0\n ? [...new Set([...customColors, ...defaultColors])]\n : defaultColors;\n });\n\n // Computed signal to check if custom color presets were provided.\n hasCustomColors = computed(() => this.customColorPresets().length > 0);\n\n /**\n * Handles changes from the text input field, updating the model and emitting the event.\n * @param newColor The new color value (e.g., '#FF0000').\n */\n onInputChange(newColor: string): void {\n this.selectedColor.set(newColor);\n this.colorChange.emit(newColor);\n }\n\n /**\n * Toggles the visibility of the custom color picker popup.\n */\n togglePicker(): void {\n this.isPickerVisible.update((visible) => !visible);\n }\n\n /**\n * Closes the custom color picker popup.\n */\n closePicker(): void {\n this.isPickerVisible.set(false);\n }\n\n /**\n * Handles color changes from the native HTML color picker.\n * @param event The native change event.\n */\n onColorPickerChange(event: Event): void {\n const newColor = (event.target as HTMLInputElement).value;\n this.selectedColor.set(newColor);\n this.colorChange.emit(newColor);\n }\n\n /**\n * Handles color changes from the custom color input inside the popup.\n * @param event The native change event.\n */\n onCustomColorChange(event: Event): void {\n const newColor = (event.target as HTMLInputElement).value;\n this.selectColor(newColor);\n }\n\n /**\n * Sets the selected color, emits the change, and closes the picker.\n * @param color The color to be selected.\n */\n selectColor(color: string): void {\n this.selectedColor.set(color);\n this.colorChange.emit(color);\n this.closePicker();\n }\n}\n","<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 (örn: #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","import { NettyEnum } from './IEnum';\n\nexport class NettyEnumValues implements NettyEnum {\n languageCode: string = '';\n enumName: string = '';\n value: number = 0;\n text: string = '-';\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { NettyEnum } from '../models/IEnum';\nimport { NettyEnumValues } from '../models/enum-values';\nimport { lastValueFrom } from 'rxjs';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NettyEnumStorageProxy {\n private http = inject(HttpClient);\n private environmentProxy = inject(EnvironmentProxy);\n\n async loadEnumList() {\n try {\n let functionUrl: string =\n this.environmentProxy.getAdminLink('/GetAppEnum');\n let enumList: NettyEnumValues[] = <NettyEnumValues[]>(\n await lastValueFrom(this.http.get(functionUrl))\n );\n let languages: Array<string> = Array.from(\n new Set(enumList.map((item: NettyEnumValues) => item.languageCode))\n );\n let enumNames: Array<string> = Array.from(\n new Set(enumList.map((item: NettyEnumValues) => item.enumName))\n );\n enumNames.forEach((name) => {\n languages.forEach((lang) => {\n let data: NettyEnumValues[] = enumList.filter(\n (f) => f.enumName == name && f.languageCode == lang\n );\n localStorage.setItem(name + '_' + lang, JSON.stringify(data));\n });\n });\n } catch (error) {}\n }\n\n getEnum(EnumName: string): NettyEnum[] {\n let lang = this.environmentProxy.getCulture();\n let data = localStorage.getItem(EnumName + '_' + lang);\n\n if (data == null) return [];\n return JSON.parse(data);\n }\n}\n","/*\n * Public API Surface of ntyui\n */\n\nexport * from './lib/ntyui';\nexport * from './lib/ntyui-module';\nexport * from './lib/text-input/text-input';\nexport * from './lib/email-input/email-input';\nexport * from './lib/date-time/date-time';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/masked-input/masked-input';\nexport * from './lib/carousel/carousel';\nexport * from './lib/checkbox-toggle/checkbox-toggle';\nexport * from './lib/button/button';\nexport * from './lib/filter-button/filter-button';\nexport * from './lib/number-input/number-input';\nexport * from './lib/search-input/search-input';\nexport * from './lib/select/select';\nexport * from './lib/visible-switch-button/visible-switch-button';\nexport * from './lib/time-picker/time-picker';\nexport * from './lib/tree/tree';\nexport * from './lib/color-picker/color-picker';\nexport * from './lib/framework/models/IEnum';\nexport * from './lib/framework/models/enum-values';\nexport * from './lib/framework/services/enumstorage-proxy';\nexport * from './lib/ui-base/ui-base';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i5","i1","i3","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nettyapps/ntyui",
3
- "version": "21.0.16",
3
+ "version": "21.1.1",
4
4
  "description": "This library contains the common UI components for the netty projects. This components should not have any dependencies out side of this library. The ntyui component library provides modern and reusable UI components for Angular applications. Developed with Material Design principles in mind, this library helps your application maintain a consistent and aesthetic look.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -10,7 +10,7 @@
10
10
  "@angular/core": ">= 21.1.2",
11
11
  "@angular/material": ">= 21.1.2",
12
12
  "@angular/cdk": ">= 21.1.2",
13
- "@nettyapps/ntycontract": ">= 21.0.9"
13
+ "@nettyapps/ntycontract": ">= 21.1.0"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0"