@ngil/form-inputs 5.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,12 @@
1
+ import * as i2 from '@angular/common';
2
+ import { AsyncPipe, CommonModule } from '@angular/common';
1
3
  import * as i0 from '@angular/core';
2
4
  import { EventEmitter, forwardRef, Output, Input, ChangeDetectionStrategy, Component, ViewChild, Optional, HostListener, ViewEncapsulation, Directive, NgModule } from '@angular/core';
3
5
  import * as i1 from '@angular/forms';
4
- import { FormControl, NG_VALUE_ACCESSOR, FormGroup, ReactiveFormsModule } from '@angular/forms';
6
+ import { FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, FormsModule, FormGroup } from '@angular/forms';
5
7
  import * as i1$1 from '@ngil/form-cva';
6
8
  import { AbstractInputComponent } from '@ngil/form-cva';
7
9
  import { takeUntil } from 'rxjs/operators';
8
- import * as i2 from '@angular/common';
9
- import { CommonModule } from '@angular/common';
10
- import * as i3 from '@ngil/components';
11
10
  import { NgilOverlayComponent, NgilOverlayToggleDirective } from '@ngil/components';
12
11
  import { Subject, takeUntil as takeUntil$1 } from 'rxjs';
13
12
  import * as i1$2 from '@angular/cdk/overlay';
@@ -38,29 +37,82 @@ class NgilInputComponent extends AbstractInputComponent {
38
37
  }
39
38
  }
40
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilInputComponent, isStandalone: false, selector: "ngil-input", inputs: { type: "type" }, outputs: { changed: "changed" }, providers: [
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilInputComponent, isStandalone: true, selector: "ngil-input", inputs: { type: "type" }, outputs: { changed: "changed" }, providers: [
42
41
  {
43
42
  provide: NG_VALUE_ACCESSOR,
44
43
  useExisting: forwardRef(() => NgilInputComponent),
45
- multi: true
46
- }
47
- ], usesInheritance: true, ngImport: i0, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-input{flex-grow:1;position:relative}:host .ngil-input--error{color:red}:host .ngil-input--error .ngil-input__input{border-color:red}:host .ngil-input__label{display:flex;gap:.5rem}:host .ngil-input__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem}:host .ngil-input__field{display:flex;gap:.5rem;align-items:center}:host .ngil-input__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ multi: true,
45
+ },
46
+ ], usesInheritance: true, ngImport: i0, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-input{flex-grow:1;position:relative}:host .ngil-input--error{color:red}:host .ngil-input--error .ngil-input__input{border-color:red}:host .ngil-input__label{display:flex;gap:.5rem}:host .ngil-input__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem}:host .ngil-input__field{display:flex;gap:.5rem;align-items:center}:host .ngil-input__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
47
  }
49
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilInputComponent, decorators: [{
50
49
  type: Component,
51
- args: [{ selector: 'ngil-input', providers: [
50
+ args: [{ selector: 'ngil-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, ReactiveFormsModule], providers: [
52
51
  {
53
52
  provide: NG_VALUE_ACCESSOR,
54
53
  useExisting: forwardRef(() => NgilInputComponent),
55
- multi: true
56
- }
57
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-input{flex-grow:1;position:relative}:host .ngil-input--error{color:red}:host .ngil-input--error .ngil-input__input{border-color:red}:host .ngil-input__label{display:flex;gap:.5rem}:host .ngil-input__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem}:host .ngil-input__field{display:flex;gap:.5rem;align-items:center}:host .ngil-input__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}\n"] }]
54
+ multi: true,
55
+ },
56
+ ], template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-input{flex-grow:1;position:relative}:host .ngil-input--error{color:red}:host .ngil-input--error .ngil-input__input{border-color:red}:host .ngil-input__label{display:flex;gap:.5rem}:host .ngil-input__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem}:host .ngil-input__field{display:flex;gap:.5rem;align-items:center}:host .ngil-input__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}\n"] }]
58
57
  }], propDecorators: { type: [{
59
58
  type: Input
60
59
  }], changed: [{
61
60
  type: Output
62
61
  }] } });
63
62
 
63
+ class NgilRadioComponent {
64
+ constructor() {
65
+ this.formControlName = '';
66
+ this.label = '';
67
+ this.items = [];
68
+ this.value = '';
69
+ this.onChangeCallback = (_) => { };
70
+ this.onTouchedCallback = () => { };
71
+ }
72
+ onBlur() {
73
+ this.onTouchedCallback();
74
+ }
75
+ onFocus() {
76
+ this.onTouchedCallback();
77
+ }
78
+ writeValue(value) {
79
+ this.value = value;
80
+ }
81
+ registerOnChange(fn) {
82
+ this.onChangeCallback = fn;
83
+ }
84
+ registerOnTouched(fn) {
85
+ this.onTouchedCallback = fn;
86
+ }
87
+ updateModel() {
88
+ this.onChangeCallback(this.value);
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilRadioComponent, isStandalone: true, selector: "ngil-radio", inputs: { formControlName: "formControlName", label: "label", items: "items" }, providers: [
92
+ {
93
+ provide: NG_VALUE_ACCESSOR,
94
+ useExisting: forwardRef(() => NgilRadioComponent),
95
+ multi: true
96
+ }
97
+ ], ngImport: i0, template: "@for (item of items; track item) {\r\n <input\r\n type=\"radio\"\r\n [value]=\"item\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateModel()\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n />{{ item }}\r\n}\r\n", styles: [":host{display:flex;margin:1rem 0;min-width:200px}:host span{margin:0 1rem 0 0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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"] }] }); }
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilRadioComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'ngil-radio', imports: [FormsModule], providers: [
102
+ {
103
+ provide: NG_VALUE_ACCESSOR,
104
+ useExisting: forwardRef(() => NgilRadioComponent),
105
+ multi: true
106
+ }
107
+ ], template: "@for (item of items; track item) {\r\n <input\r\n type=\"radio\"\r\n [value]=\"item\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateModel()\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n />{{ item }}\r\n}\r\n", styles: [":host{display:flex;margin:1rem 0;min-width:200px}:host span{margin:0 1rem 0 0}\n"] }]
108
+ }], propDecorators: { formControlName: [{
109
+ type: Input
110
+ }], label: [{
111
+ type: Input
112
+ }], items: [{
113
+ type: Input
114
+ }] } });
115
+
64
116
  class NgilSelectOptionsComponent {
65
117
  constructor() {
66
118
  this.selectedItems = null;
@@ -96,11 +148,11 @@ class NgilSelectOptionsComponent {
96
148
  this.destroy$.complete();
97
149
  }
98
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilSelectOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilSelectOptionsComponent, isStandalone: false, selector: "ngil-select-options", inputs: { selectedItems: "selectedItems", items: "items", displayKey: "displayKey", multiple: "multiple", display: "display" }, outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;min-width:200px;background:#fff;border:1px solid #000;overflow-y:auto}:host .ngil-dropdown__item{line-height:1.5rem;padding:.25rem .5rem}:host .ngil-dropdown__item:hover{background:#d3d3d3}:host .ngil-dropdown__item--selected{background:#708090}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
151
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilSelectOptionsComponent, isStandalone: true, selector: "ngil-select-options", inputs: { selectedItems: "selectedItems", items: "items", displayKey: "displayKey", multiple: "multiple", display: "display" }, outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;min-width:200px;background:#fff;border:1px solid #000;overflow-y:auto}:host .ngil-dropdown__item{line-height:1.5rem;padding:.25rem .5rem}:host .ngil-dropdown__item:hover{background:#d3d3d3}:host .ngil-dropdown__item--selected{background:#708090}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
152
  }
101
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilSelectOptionsComponent, decorators: [{
102
154
  type: Component,
103
- args: [{ selector: 'ngil-select-options', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;min-width:200px;background:#fff;border:1px solid #000;overflow-y:auto}:host .ngil-dropdown__item{line-height:1.5rem;padding:.25rem .5rem}:host .ngil-dropdown__item:hover{background:#d3d3d3}:host .ngil-dropdown__item--selected{background:#708090}\n"] }]
155
+ args: [{ selector: 'ngil-select-options', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;min-width:200px;background:#fff;border:1px solid #000;overflow-y:auto}:host .ngil-dropdown__item{line-height:1.5rem;padding:.25rem .5rem}:host .ngil-dropdown__item:hover{background:#d3d3d3}:host .ngil-dropdown__item--selected{background:#708090}\n"] }]
104
156
  }], propDecorators: { selectedItems: [{
105
157
  type: Input
106
158
  }], items: [{
@@ -149,13 +201,13 @@ class NgilSelectComponent extends AbstractInputComponent {
149
201
  return Array.isArray(item);
150
202
  }
151
203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.NgilErrorMessagesService }, { token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilSelectComponent, isStandalone: false, selector: "ngil-select", inputs: { multiple: "multiple", items: "items", displayKey: "displayKey" }, providers: [
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: NgilSelectComponent, isStandalone: true, selector: "ngil-select", inputs: { multiple: "multiple", items: "items", displayKey: "displayKey" }, providers: [
153
205
  {
154
206
  provide: NG_VALUE_ACCESSOR,
155
207
  useExisting: forwardRef(() => NgilSelectComponent),
156
- multi: true
157
- }
158
- ], viewQueries: [{ propertyName: "overlay", first: true, predicate: NgilOverlayComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-select{flex-grow:1;position:relative}:host .ngil-select--error{color:red}:host .ngil-select--error .ngil-select__input{border-color:red}:host .ngil-select__label{display:block}:host .ngil-select__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem;overflow:hidden}:host .ngil-select__field{display:flex}:host .ngil-select__field-content{flex-grow:1}:host .ngil-select__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}:host .ngil-select__dropdown{width:100%}:host .hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i3.NgilOverlayToggleDirective, selector: "[ngilOverlayToggle]", inputs: ["ngilOverlayToggle", "isOverlayOrigin"], exportAs: ["ngilOverlayToggle"] }, { kind: "component", type: i3.NgilOverlayComponent, selector: "ngil-overlay", inputs: ["overwriteConfig", "positions"] }, { kind: "component", type: NgilSelectOptionsComponent, selector: "ngil-select-options", inputs: ["selectedItems", "items", "displayKey", "multiple", "display"], outputs: ["itemSelected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
208
+ multi: true,
209
+ },
210
+ ], viewQueries: [{ propertyName: "overlay", first: true, predicate: NgilOverlayComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-select{flex-grow:1;position:relative}:host .ngil-select--error{color:red}:host .ngil-select--error .ngil-select__input{border-color:red}:host .ngil-select__label{display:block}:host .ngil-select__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem;overflow:hidden}:host .ngil-select__field{display:flex}:host .ngil-select__field-content{flex-grow:1}:host .ngil-select__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}:host .ngil-select__dropdown{width:100%}:host .hidden{display:none}\n"], dependencies: [{ kind: "component", type: NgilOverlayComponent, selector: "ngil-overlay", inputs: ["overwriteConfig", "positions"] }, { kind: "directive", type: NgilOverlayToggleDirective, selector: "[ngilOverlayToggle]", inputs: ["ngilOverlayToggle", "isOverlayOrigin"], exportAs: ["ngilOverlayToggle"] }, { kind: "component", type: NgilSelectOptionsComponent, selector: "ngil-select-options", inputs: ["selectedItems", "items", "displayKey", "multiple", "display"], outputs: ["itemSelected"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
159
211
  }
160
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilSelectComponent, decorators: [{
161
213
  type: Component,
@@ -163,9 +215,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
163
215
  {
164
216
  provide: NG_VALUE_ACCESSOR,
165
217
  useExisting: forwardRef(() => NgilSelectComponent),
166
- multi: true
167
- }
168
- ], standalone: false, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-select{flex-grow:1;position:relative}:host .ngil-select--error{color:red}:host .ngil-select--error .ngil-select__input{border-color:red}:host .ngil-select__label{display:block}:host .ngil-select__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem;overflow:hidden}:host .ngil-select__field{display:flex}:host .ngil-select__field-content{flex-grow:1}:host .ngil-select__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}:host .ngil-select__dropdown{width:100%}:host .hidden{display:none}\n"] }]
218
+ multi: true,
219
+ },
220
+ ], imports: [NgilOverlayComponent, NgilOverlayToggleDirective, NgilSelectOptionsComponent, AsyncPipe], template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-select{flex-grow:1;position:relative}:host .ngil-select--error{color:red}:host .ngil-select--error .ngil-select__input{border-color:red}:host .ngil-select__label{display:block}:host .ngil-select__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem;overflow:hidden}:host .ngil-select__field{display:flex}:host .ngil-select__field-content{flex-grow:1}:host .ngil-select__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}:host .ngil-select__dropdown{width:100%}:host .hidden{display:none}\n"] }]
169
221
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.NgilErrorMessagesService }, { type: i1.ControlContainer, decorators: [{
170
222
  type: Optional
171
223
  }] }], propDecorators: { overlay: [{
@@ -217,7 +269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
217
269
  ], standalone: false, template: "@if (model$ | async; as model) {\r\n <div class=\"ngil-textarea\" [class.ngil-textarea--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-textarea__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-textarea__field\">\r\n <textarea\r\n class=\"ngil-textarea__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n >\r\n </textarea>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-textarea__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n}\r\n", styles: [":host{display:flex;width:100%;flex-direction:column;margin:.25rem 0 2rem;min-width:200px}:host .ngil-textarea{flex-grow:1;position:relative}:host .ngil-textarea--error{color:red}:host .ngil-textarea--error .ngil-textarea__input{border-color:red}:host .ngil-textarea__label{display:block}:host .ngil-textarea__input{width:100%;outline:none;border:1px solid black;border-radius:3px;padding:.25rem;height:4rem}:host .ngil-textarea__field{display:flex}:host .ngil-textarea__error-message{position:absolute;margin:.1rem 0;height:1rem;font-size:85%}\n"] }]
218
270
  }] });
219
271
 
220
- class PickerToggleComponent {
272
+ class NgilPickerToggleComponent {
221
273
  constructor() {
222
274
  this.onClick = (event) => {
223
275
  if (!this.picker?.isOpen) {
@@ -226,12 +278,12 @@ class PickerToggleComponent {
226
278
  event.stopPropagation();
227
279
  };
228
280
  }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PickerToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
230
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: PickerToggleComponent, isStandalone: false, selector: "ngil-picker-toggle", inputs: { picker: "picker" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{display:flex;background:none;border:none;padding:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilPickerToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
282
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: NgilPickerToggleComponent, isStandalone: true, selector: "ngil-picker-toggle", inputs: { picker: "picker" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{display:flex;background:none;border:none;padding:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
231
283
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: PickerToggleComponent, decorators: [{
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilPickerToggleComponent, decorators: [{
233
285
  type: Component,
234
- args: [{ selector: 'ngil-picker-toggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{display:flex;background:none;border:none;padding:0}\n"] }]
286
+ args: [{ selector: 'ngil-picker-toggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n", styles: [".toggle-button{display:flex;background:none;border:none;padding:0}\n"] }]
235
287
  }], propDecorators: { picker: [{
236
288
  type: Input
237
289
  }], onClick: [{
@@ -491,18 +543,17 @@ class NgilTimePickerOverlayComponent {
491
543
  return strategy;
492
544
  }
493
545
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilTimePickerOverlayComponent, deps: [{ token: i1$2.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: NgilTimePickerOverlayComponent, isStandalone: false, selector: "ngil-time-picker-overlay", ngImport: i0, template: '', isInline: true }); }
546
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: NgilTimePickerOverlayComponent, isStandalone: true, selector: "ngil-time-picker-overlay", ngImport: i0, template: '', isInline: true }); }
495
547
  }
496
548
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilTimePickerOverlayComponent, decorators: [{
497
549
  type: Component,
498
550
  args: [{
499
551
  selector: 'ngil-time-picker-overlay',
500
- template: '',
501
- standalone: false
552
+ template: ''
502
553
  }]
503
554
  }], ctorParameters: () => [{ type: i1$2.Overlay }] });
504
555
 
505
- class TimePickerDirective {
556
+ class NgilTimePickerDirective {
506
557
  constructor(elementRef, inputComponent, ngControl) {
507
558
  this.elementRef = elementRef;
508
559
  this.inputComponent = inputComponent;
@@ -527,7 +578,7 @@ class TimePickerDirective {
527
578
  this.picker?.setValue({
528
579
  hour: +parsedValue.hour,
529
580
  minute: +parsedValue.minute || 0,
530
- second: +parsedValue.second || 0
581
+ second: +parsedValue.second || 0,
531
582
  });
532
583
  }
533
584
  timeValidator() {
@@ -535,17 +586,17 @@ class TimePickerDirective {
535
586
  const value = this.getTimePickerValue(control.value);
536
587
  if (this.itemHasError(value.hour, 23)) {
537
588
  return {
538
- invalidHour: true
589
+ invalidHour: true,
539
590
  };
540
591
  }
541
592
  if (this.itemHasError(value.minute, 59)) {
542
593
  return {
543
- invalidMinute: true
594
+ invalidMinute: true,
544
595
  };
545
596
  }
546
597
  if (this.itemHasError(value.second, 59)) {
547
598
  return {
548
- invalidSecond: true
599
+ invalidSecond: true,
549
600
  };
550
601
  }
551
602
  return null;
@@ -562,7 +613,7 @@ class TimePickerDirective {
562
613
  return {
563
614
  hour: split ? split[0] : '00',
564
615
  minute: split ? split[1] : '00',
565
- second: split ? split[2] : '00'
616
+ second: split ? split[2] : '00',
566
617
  };
567
618
  }
568
619
  ngAfterViewInit() {
@@ -587,14 +638,13 @@ class TimePickerDirective {
587
638
  this.destroy$.next();
588
639
  this.destroy$.complete();
589
640
  }
590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TimePickerDirective, deps: [{ token: i0.ElementRef }, { token: NgilInputComponent, optional: true }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
591
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", type: TimePickerDirective, isStandalone: false, selector: "[ngilTimePicker]", inputs: { picker: "picker" }, outputs: { changed: "changed" }, host: { listeners: { "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, ngImport: i0 }); }
641
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilTimePickerDirective, deps: [{ token: i0.ElementRef }, { token: NgilInputComponent, optional: true }, { token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
642
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.4", type: NgilTimePickerDirective, isStandalone: true, selector: "[ngilTimePicker]", inputs: { picker: "picker" }, outputs: { changed: "changed" }, host: { listeners: { "keydown": "onKeyDown($event)", "input": "onInput($event)" } }, ngImport: i0 }); }
592
643
  }
593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: TimePickerDirective, decorators: [{
644
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilTimePickerDirective, decorators: [{
594
645
  type: Directive,
595
646
  args: [{
596
647
  selector: '[ngilTimePicker]',
597
- standalone: false
598
648
  }]
599
649
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: NgilInputComponent, decorators: [{
600
650
  type: Optional
@@ -614,49 +664,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
614
664
 
615
665
  class NgilUiFormModule {
616
666
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
617
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, declarations: [NgilInputComponent,
618
- NgilTimePickerComponent,
619
- NgilTimePickerOverlayComponent,
620
- PickerToggleComponent,
621
- NumberRotationDirective,
622
- TimePickerDirective,
667
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, declarations: [NgilTimePickerComponent, NumberRotationDirective, NgilTextareaComponent], imports: [CommonModule,
668
+ ReactiveFormsModule,
669
+ NgilOverlayToggleDirective,
670
+ NgilOverlayComponent,
671
+ NgilRadioComponent,
672
+ NgilPickerToggleComponent,
623
673
  NgilSelectComponent,
624
- NgilTextareaComponent,
625
- NgilSelectOptionsComponent], imports: [CommonModule, ReactiveFormsModule, NgilOverlayToggleDirective, NgilOverlayComponent], exports: [NgilInputComponent,
674
+ NgilSelectOptionsComponent,
675
+ NgilTimePickerDirective,
676
+ NgilTimePickerOverlayComponent,
677
+ NgilInputComponent], exports: [NgilInputComponent,
678
+ NgilRadioComponent,
626
679
  NgilSelectComponent,
627
680
  NgilTextareaComponent,
628
681
  NgilTimePickerComponent,
629
682
  NgilTimePickerOverlayComponent,
630
- PickerToggleComponent,
683
+ NgilPickerToggleComponent,
631
684
  NumberRotationDirective,
632
- TimePickerDirective] }); }
633
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, imports: [CommonModule, ReactiveFormsModule, NgilOverlayComponent] }); }
685
+ NgilTimePickerDirective] }); }
686
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, imports: [CommonModule,
687
+ ReactiveFormsModule,
688
+ NgilOverlayComponent,
689
+ NgilRadioComponent,
690
+ NgilSelectComponent,
691
+ NgilInputComponent] }); }
634
692
  }
635
693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: NgilUiFormModule, decorators: [{
636
694
  type: NgModule,
637
695
  args: [{
638
- imports: [CommonModule, ReactiveFormsModule, NgilOverlayToggleDirective, NgilOverlayComponent],
639
- declarations: [
640
- NgilInputComponent,
641
- NgilTimePickerComponent,
642
- NgilTimePickerOverlayComponent,
643
- PickerToggleComponent,
644
- NumberRotationDirective,
645
- TimePickerDirective,
696
+ imports: [
697
+ CommonModule,
698
+ ReactiveFormsModule,
699
+ NgilOverlayToggleDirective,
700
+ NgilOverlayComponent,
701
+ NgilRadioComponent,
702
+ NgilPickerToggleComponent,
646
703
  NgilSelectComponent,
647
- NgilTextareaComponent,
648
- NgilSelectOptionsComponent
704
+ NgilSelectOptionsComponent,
705
+ NgilTimePickerDirective,
706
+ NgilTimePickerOverlayComponent,
707
+ NgilInputComponent,
649
708
  ],
709
+ declarations: [NgilTimePickerComponent, NumberRotationDirective, NgilTextareaComponent],
650
710
  exports: [
651
711
  NgilInputComponent,
712
+ NgilRadioComponent,
652
713
  NgilSelectComponent,
653
714
  NgilTextareaComponent,
654
715
  NgilTimePickerComponent,
655
716
  NgilTimePickerOverlayComponent,
656
- PickerToggleComponent,
717
+ NgilPickerToggleComponent,
657
718
  NumberRotationDirective,
658
- TimePickerDirective
659
- ]
719
+ NgilTimePickerDirective,
720
+ ],
660
721
  }]
661
722
  }] });
662
723
 
@@ -664,5 +725,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImpor
664
725
  * Generated bundle index. Do not edit.
665
726
  */
666
727
 
667
- export { NgilInputComponent, NgilSelectComponent, NgilTextareaComponent, NgilTimePickerComponent, NgilTimePickerOverlayComponent, NgilUiFormModule, NumberRotationDirective, PickerToggleComponent, TimePickerDirective };
728
+ export { NgilInputComponent, NgilPickerToggleComponent, NgilRadioComponent, NgilSelectComponent, NgilTextareaComponent, NgilTimePickerComponent, NgilTimePickerDirective, NgilTimePickerOverlayComponent, NgilUiFormModule, NumberRotationDirective };
668
729
  //# sourceMappingURL=ngil-form-inputs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngil-form-inputs.mjs","sources":["../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/directives/number-rotation.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/time-picker-overlay.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/ngil-ui-form.module.ts","../../../../../../libs/ngil/ui/form-inputs/src/ngil-form-inputs.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ngil-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilInputComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class NgilInputComponent extends AbstractInputComponent<string | number> implements AfterViewInit {\r\n @Input() type = 'text';\r\n @Output() changed = new EventEmitter<string | number>();\r\n\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string | number): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string | number): void {\r\n if (this.type === 'number') {\r\n value = +value;\r\n }\r\n this.changed.emit(value);\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-select-options',\r\n templateUrl: './select-options.component.html',\r\n styleUrls: ['./select-options.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class NgilSelectOptionsComponent<T> implements OnDestroy {\r\n @Input() selectedItems: T | T[] | null = null;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n @Input() multiple = false;\r\n @Input() display = false;\r\n\r\n @Output() itemSelected = new EventEmitter<T | T[]>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n onItemSelected(item: T) {\r\n let newSelection: T | T[];\r\n\r\n if (Array.isArray(this.selectedItems)) {\r\n newSelection = this.selectedItems.includes(item)\r\n ? this.selectedItems.filter(selectedItem => selectedItem !== item)\r\n : [...this.selectedItems, item];\r\n } else if (this.multiple && this.selectedItems) {\r\n newSelection = [this.selectedItems, item];\r\n } else {\r\n newSelection = item;\r\n }\r\n\r\n this.itemSelected.emit(newSelection);\r\n }\r\n\r\n isSelected(item: T) {\r\n if (Array.isArray(this.selectedItems)) {\r\n return this.selectedItems.includes(item);\r\n }\r\n\r\n return item === this.selectedItems;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n forwardRef\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgilOverlayComponent } from '@ngil/components';\r\nimport { AbstractInputComponent, NgilErrorMessagesService } from '@ngil/form-cva';\r\n\r\n@Component({\r\n selector: 'ngil-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {\r\n @ViewChild(NgilOverlayComponent) overlay?: NgilOverlayComponent;\r\n @Input() multiple = false;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n\r\n value: T | T[] | null = null;\r\n\r\n get displayValue() {\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(item => (this.displayKey ? item[this.displayKey] : item)).join(',');\r\n }\r\n\r\n if (this.value && this.displayKey) {\r\n return this.value[this.displayKey];\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n constructor(\r\n private readonly cdr: ChangeDetectorRef,\r\n errorMessagesService: NgilErrorMessagesService,\r\n @Optional() controlContainer?: ControlContainer\r\n ) {\r\n super(errorMessagesService, controlContainer);\r\n }\r\n\r\n writeValue(value: T): void {\r\n this.value = value;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onItemSelected(item: T | T[]) {\r\n this.value = item;\r\n\r\n if (!this.multiple) {\r\n this.overlay?.close();\r\n }\r\n\r\n if (this.onChange) {\r\n this.onChange(this.value);\r\n }\r\n }\r\n\r\n isArray(item: T | T[]): item is T[] {\r\n return Array.isArray(item);\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilTextareaComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class NgilTextareaComponent extends AbstractInputComponent<string> implements AfterViewInit {\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string): void {\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-textarea\" [class.ngil-textarea--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-textarea__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-textarea__field\">\r\n <textarea\r\n class=\"ngil-textarea__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n >\r\n </textarea>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-textarea__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\r\nimport { NgilTimePickerOverlayComponent } from './time-picker-overlay.component';\r\n\r\n@Component({\r\n selector: 'ngil-picker-toggle',\r\n templateUrl: 'picker-toggle.html',\r\n styleUrls: ['picker-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class PickerToggleComponent {\r\n @Input() picker: NgilTimePickerOverlayComponent | undefined;\r\n\r\n @HostListener('click', ['$event']) onClick = (event: Event) => {\r\n if (!this.picker?.isOpen) {\r\n this.picker?.open();\r\n }\r\n event.stopPropagation();\r\n };\r\n}\r\n","<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[ngilNumberRotation]',\r\n standalone: false\r\n})\r\nexport class NumberRotationDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() min = 0;\r\n @Input() max = 10;\r\n @Input() buttonUp?: HTMLElement;\r\n @Input() buttonDown?: HTMLElement;\r\n\r\n get length(): number {\r\n return this.max.toString().length;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n this.onKeyDownEvent(event);\r\n };\r\n\r\n @HostListener('input', ['$event'])\r\n onInput = (event: InputEvent): void => {\r\n let value = (event.target as HTMLInputElement).value;\r\n if (+value > this.max) {\r\n value = value.slice(this.length);\r\n }\r\n this.setValue(+value);\r\n };\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>, private readonly ngControl: NgControl) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.value = this.elementRef.nativeElement.value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.buttonUp?.addEventListener('click', this.onUp);\r\n this.buttonDown?.addEventListener('click', this.onDown);\r\n }\r\n\r\n private onKeyDownEvent(event: KeyboardEvent): void {\r\n if (!this.isKeyValid(event.key)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.onUp();\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.onDown();\r\n }\r\n }\r\n\r\n private isKeyValid(key: string): boolean {\r\n if (key.length !== 1 || !isNaN(+key)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private onUp = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value + 1);\r\n };\r\n\r\n private onDown = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value - 1);\r\n };\r\n\r\n private setValue(value: number): void {\r\n if (value < this.min) {\r\n this.setInputValue(this.max);\r\n } else if (value > this.max) {\r\n this.setInputValue(this.min);\r\n } else {\r\n this.setInputValue(value);\r\n }\r\n }\r\n\r\n private setInputValue(value: number) {\r\n this.ngControl.control?.setValue(value);\r\n this.elementRef.nativeElement.value = value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.buttonUp?.removeEventListener('click', this.onUp);\r\n this.buttonDown?.removeEventListener('click', this.onDown);\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: NgilTimePickerComponent,\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class NgilTimePickerComponent extends AbstractInputComponent<TimePickerValue> implements AfterViewInit {\r\n private defaultValue: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n\r\n value = '';\r\n formGroup = new FormGroup({\r\n hour: new FormControl<number>(this.defaultValue.hour, { nonNullable: true }),\r\n minute: new FormControl<number>(this.defaultValue.minute, { nonNullable: true }),\r\n second: new FormControl<number>(this.defaultValue.second, { nonNullable: true })\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n this.listenValueChanges();\r\n }\r\n\r\n protected listenValueChanges(): void {\r\n this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n if (this.onChange) {\r\n const value = this.formGroup.getRawValue();\r\n this.onChange({\r\n hour: value.hour ?? this.defaultValue.hour,\r\n minute: value.minute ?? this.defaultValue.minute,\r\n second: value.second ?? this.defaultValue.second\r\n });\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: TimePickerValue): void {\r\n if (value) {\r\n this.formGroup.setValue(\r\n {\r\n ...this.defaultValue,\r\n ...value\r\n },\r\n { emitEvent: false }\r\n );\r\n } else {\r\n this.formGroup.reset(this.defaultValue, { emitEvent: false });\r\n }\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\" class=\"ngil-time-picker\">\r\n <div class=\"ngil-time-picker__field\">\r\n <button #hourButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"hour\"\r\n [buttonUp]=\"hourButtonUp\"\r\n [buttonDown]=\"hourButtonDown\"\r\n [max]=\"23\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #hourButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #minuteButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"minute\"\r\n [buttonUp]=\"minuteButtonUp\"\r\n [buttonDown]=\"minuteButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #minuteButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #secondButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"second\"\r\n [buttonUp]=\"secondButtonUp\"\r\n [buttonDown]=\"secondButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #secondButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<ng-template #arrowUp>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 75 50, 25 90, 75\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #arrowDown>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 25 50, 75 90, 25\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Component, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilTimePickerComponent } from '../time-picker/time-picker.component';\r\nimport { TimePickerValue } from '../time-picker/time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker-overlay',\r\n template: '',\r\n standalone: false\r\n})\r\nexport class NgilTimePickerOverlayComponent implements OnDestroy {\r\n origin?: ElementRef<HTMLInputElement>;\r\n valueChanges$ = new Subject<TimePickerValue>();\r\n isOpen = false;\r\n\r\n protected value: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n protected readonly destroy$ = new Subject<void>();\r\n protected contentComponent = NgilTimePickerComponent;\r\n protected componentInstance: undefined | NgilTimePickerComponent;\r\n private overlayRef?: OverlayRef;\r\n\r\n constructor(private readonly overlay: Overlay) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n open() {\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.getStrategy(),\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n const portal = new ComponentPortal(this.contentComponent);\r\n const componentRef = this.overlayRef.attach(portal);\r\n this.componentInstance = componentRef.instance;\r\n this.componentInstance.writeValue(this.value);\r\n\r\n this.componentInstance.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n const value = this.componentInstance?.formGroup.getRawValue();\r\n this.valueChanges$.next({\r\n hour: value?.hour ?? 0,\r\n minute: value?.minute ?? 0,\r\n second: value?.second ?? 0\r\n });\r\n });\r\n\r\n this.overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n\r\n this.isOpen = true;\r\n }\r\n\r\n close(): void {\r\n this.destroyOverlay();\r\n }\r\n\r\n private destroyOverlay() {\r\n this.destroy$.next();\r\n this.componentInstance?.ngOnDestroy();\r\n this.overlayRef?.dispose();\r\n this.componentInstance = undefined;\r\n this.overlayRef = undefined;\r\n this.isOpen = false;\r\n }\r\n\r\n setValue(value: TimePickerValue): void {\r\n this.value = value;\r\n\r\n if (this.componentInstance) {\r\n this.componentInstance.writeValue(this.value);\r\n }\r\n }\r\n\r\n private getStrategy() {\r\n const primaryX = 'start';\r\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\r\n const primaryY = 'top';\r\n const secondaryY = 'bottom';\r\n\r\n if (!this.origin) {\r\n return undefined;\r\n }\r\n\r\n const strategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.origin)\r\n .withPositions([\r\n {\r\n originX: primaryX,\r\n originY: secondaryY,\r\n overlayX: primaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: primaryX,\r\n originY: primaryY,\r\n overlayX: primaryX,\r\n overlayY: secondaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: secondaryY,\r\n overlayX: secondaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: primaryY,\r\n overlayX: secondaryX,\r\n overlayY: secondaryY\r\n }\r\n ]);\r\n\r\n return strategy;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output\r\n} from '@angular/core';\r\nimport { AbstractControl, NgControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilInputComponent } from '../input/input.component';\r\nimport { NgilTimePickerOverlayComponent } from '../time-picker-overlay/time-picker-overlay.component';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Directive({\r\n selector: '[ngilTimePicker]',\r\n standalone: false\r\n})\r\nexport class TimePickerDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() picker?: NgilTimePickerOverlayComponent;\r\n\r\n @Output() changed = new EventEmitter<TimePickerValue>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n if (isNaN(+event.key) && event.key !== ':' && event.key.length === 1) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n @HostListener('input', ['$event']) onInput = (event: InputEvent): void => {\r\n this.setPickerValue((event.target as HTMLInputElement).value);\r\n };\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef<HTMLInputElement>,\r\n @Optional() private readonly inputComponent?: NgilInputComponent,\r\n @Optional() private readonly ngControl?: NgControl\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.ngControl?.control?.setValidators([this.timeValidator()]);\r\n this.setPickerValue(this.ngControl?.control?.value);\r\n }\r\n\r\n private setPickerValue(value?: string) {\r\n const parsedValue = this.getTimePickerValue(value);\r\n this.picker?.setValue({\r\n hour: +parsedValue.hour,\r\n minute: +parsedValue.minute || 0,\r\n second: +parsedValue.second || 0\r\n });\r\n }\r\n\r\n private timeValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = this.getTimePickerValue(control.value);\r\n if (this.itemHasError(value.hour, 23)) {\r\n return {\r\n invalidHour: true\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.minute, 59)) {\r\n return {\r\n invalidMinute: true\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.second, 59)) {\r\n return {\r\n invalidSecond: true\r\n };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private itemHasError(value: string, max: number, min = 0) {\r\n if (value && (value.length > 2 || +value > max || +value < min)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getTimePickerValue(value: string | null | undefined) {\r\n const split = value?.split(':');\r\n\r\n return {\r\n hour: split ? split[0] : '00',\r\n minute: split ? split[1] : '00',\r\n second: split ? split[2] : '00'\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.picker) {\r\n this.picker.origin = this.elementRef;\r\n this.picker.valueChanges$.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.setInputText(value);\r\n this.changed.emit(value);\r\n });\r\n }\r\n }\r\n\r\n private setInputText(value: TimePickerValue): void {\r\n const text = [this.getItemText(value.hour), this.getItemText(value.minute), this.getItemText(value.second)].join(\r\n ':'\r\n );\r\n this.inputComponent?.control.setValue(text);\r\n this.elementRef.nativeElement.value = text;\r\n this.ngControl?.control?.setValue(text);\r\n }\r\n\r\n private getItemText(value: number) {\r\n return value.toString().padStart(2, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgilOverlayComponent, NgilOverlayToggleDirective } from '@ngil/components';\r\nimport { NgilInputComponent } from './components/input/input.component';\r\nimport { NgilSelectOptionsComponent } from './components/select-options/select-options.component';\r\nimport { NgilSelectComponent } from './components/select/select.component';\r\nimport { NgilTextareaComponent } from './components/textarea/textarea.component';\r\nimport { PickerToggleComponent } from './components/time-picker-overlay/picker-toggle';\r\nimport { NgilTimePickerOverlayComponent } from './components/time-picker-overlay/time-picker-overlay.component';\r\nimport { NgilTimePickerComponent } from './components/time-picker/time-picker.component';\r\nimport { TimePickerDirective } from './components/time-picker/time-picker.directive';\r\nimport { NumberRotationDirective } from './directives/number-rotation.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, ReactiveFormsModule, NgilOverlayToggleDirective, NgilOverlayComponent],\r\n declarations: [\r\n NgilInputComponent,\r\n NgilTimePickerComponent,\r\n NgilTimePickerOverlayComponent,\r\n PickerToggleComponent,\r\n NumberRotationDirective,\r\n TimePickerDirective,\r\n NgilSelectComponent,\r\n NgilTextareaComponent,\r\n NgilSelectOptionsComponent\r\n ],\r\n exports: [\r\n NgilInputComponent,\r\n NgilSelectComponent,\r\n NgilTextareaComponent,\r\n NgilTimePickerComponent,\r\n NgilTimePickerOverlayComponent,\r\n PickerToggleComponent,\r\n NumberRotationDirective,\r\n TimePickerDirective\r\n ]\r\n})\r\nexport class NgilUiFormModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4.NgilSelectOptionsComponent","i5","takeUntil","i3.NumberRotationDirective","i1.NgilInputComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ngil-form-inputs.mjs","sources":["../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/input/input.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/radio/radio.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/radio/radio.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select-options/select-options.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/select/select.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/textarea/textarea.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/picker-toggle.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/directives/number-rotation.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.component.html","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker-overlay/time-picker-overlay.component.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/components/time-picker/time-picker.directive.ts","../../../../../../libs/ngil/ui/form-inputs/src/lib/ngil-ui-form.module.ts","../../../../../../libs/ngil/ui/form-inputs/src/ngil-form-inputs.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ngil-input',\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AsyncPipe, ReactiveFormsModule],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class NgilInputComponent extends AbstractInputComponent<string | number> implements AfterViewInit {\r\n @Input() type = 'text';\r\n @Output() changed = new EventEmitter<string | number>();\r\n\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string | number): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string | number): void {\r\n if (this.type === 'number') {\r\n value = +value;\r\n }\r\n this.changed.emit(value);\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-input\" [class.ngil-input--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-input__label\" [for]=\"formControlName\">\r\n <ng-content select=\"[labelPrefix]\"></ng-content>\r\n <span> {{ label }}{{ required ? '*' : '' }} </span>\r\n <ng-content select=\"[labelSuffix]\"></ng-content>\r\n </label>\r\n <div class=\"ngil-input__field\">\r\n <ng-content select=\"[prefix]\"></ng-content>\r\n <input\r\n class=\"ngil-input__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [type]=\"type\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <ng-content select=\"[hint]\"></ng-content>\r\n <small class=\"ngil-input__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n }\r\n","import { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngil-radio',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss'],\r\n imports: [FormsModule],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilRadioComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgilRadioComponent implements ControlValueAccessor {\r\n @Input() formControlName: string = '';\r\n @Input() label: string = '';\r\n @Input() items: string[] = [];\r\n\r\n value: string = '';\r\n\r\n private onChangeCallback = (_: any) => {};\r\n\r\n private onTouchedCallback = () => {};\r\n\r\n onBlur(): void {\r\n this.onTouchedCallback();\r\n }\r\n\r\n onFocus(): void {\r\n this.onTouchedCallback();\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n updateModel() {\r\n this.onChangeCallback(this.value);\r\n }\r\n}\r\n","@for (item of items; track item) {\r\n <input\r\n type=\"radio\"\r\n [value]=\"item\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateModel()\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n />{{ item }}\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-select-options',\r\n templateUrl: './select-options.component.html',\r\n styleUrls: ['./select-options.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgilSelectOptionsComponent<T> implements OnDestroy {\r\n @Input() selectedItems: T | T[] | null = null;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n @Input() multiple = false;\r\n @Input() display = false;\r\n\r\n @Output() itemSelected = new EventEmitter<T | T[]>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n onItemSelected(item: T) {\r\n let newSelection: T | T[];\r\n\r\n if (Array.isArray(this.selectedItems)) {\r\n newSelection = this.selectedItems.includes(item)\r\n ? this.selectedItems.filter(selectedItem => selectedItem !== item)\r\n : [...this.selectedItems, item];\r\n } else if (this.multiple && this.selectedItems) {\r\n newSelection = [this.selectedItems, item];\r\n } else {\r\n newSelection = item;\r\n }\r\n\r\n this.itemSelected.emit(newSelection);\r\n }\r\n\r\n isSelected(item: T) {\r\n if (Array.isArray(this.selectedItems)) {\r\n return this.selectedItems.includes(item);\r\n }\r\n\r\n return item === this.selectedItems;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","@if (display) {\r\n <div class=\"ngil-dropdown\" role=\"listbox\" data-test=\"ngil-select-options-list\">\r\n @for (item of items; track item) {\r\n <div\r\n role=\"option\"\r\n class=\"ngil-dropdown__item\"\r\n data-test=\"ngil-select-option\"\r\n [attr.value]=\"item\"\r\n [attr.displayValue]=\"displayKey ? item[displayKey] : item\"\r\n (click)=\"onItemSelected(item)\"\r\n [class.ngil-dropdown__item--selected]=\"isSelected(item)\"\r\n >\r\n {{ displayKey ? item[displayKey] : item }}\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n Optional,\r\n ViewChild,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgilOverlayComponent, NgilOverlayToggleDirective } from '@ngil/components';\r\nimport { AbstractInputComponent, NgilErrorMessagesService } from '@ngil/form-cva';\r\nimport { NgilSelectOptionsComponent } from '../select-options/select-options.component';\r\n\r\n@Component({\r\n selector: 'ngil-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n imports: [NgilOverlayComponent, NgilOverlayToggleDirective, NgilSelectOptionsComponent, AsyncPipe],\r\n})\r\nexport class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {\r\n @ViewChild(NgilOverlayComponent) overlay?: NgilOverlayComponent;\r\n @Input() multiple = false;\r\n @Input() items: T[] = [];\r\n @Input() displayKey?: keyof T;\r\n\r\n value: T | T[] | null = null;\r\n\r\n get displayValue() {\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(item => (this.displayKey ? item[this.displayKey] : item)).join(',');\r\n }\r\n\r\n if (this.value && this.displayKey) {\r\n return this.value[this.displayKey];\r\n }\r\n\r\n return this.value;\r\n }\r\n\r\n constructor(\r\n private readonly cdr: ChangeDetectorRef,\r\n errorMessagesService: NgilErrorMessagesService,\r\n @Optional() controlContainer?: ControlContainer,\r\n ) {\r\n super(errorMessagesService, controlContainer);\r\n }\r\n\r\n writeValue(value: T): void {\r\n this.value = value;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onItemSelected(item: T | T[]) {\r\n this.value = item;\r\n\r\n if (!this.multiple) {\r\n this.overlay?.close();\r\n }\r\n\r\n if (this.onChange) {\r\n this.onChange(this.value);\r\n }\r\n }\r\n\r\n isArray(item: T | T[]): item is T[] {\r\n return Array.isArray(item);\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-select\" [class.ngil-select--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-select__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-select__field\">\r\n <div class=\"ngil-select__field-content\">\r\n <input\r\n class=\"ngil-select__input\"\r\n [value]=\"displayValue\"\r\n [disabled]=\"disabled\"\r\n (keydown)=\"$event.preventDefault(); overlay.toggle()\"\r\n [id]=\"formControlName\"\r\n (blur)=\"onBlur()\"\r\n [ngilOverlayToggle]=\"overlay\"\r\n />\r\n </div>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-select__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n <ngil-overlay #overlay [overwriteConfig]=\"{ maxHeight: 500 }\">\r\n <ngil-select-options\r\n ngilOverlay\r\n class=\"ngil-select__dropdown\"\r\n data-test=\"ngil-select-options\"\r\n [display]=\"overlay.isOpened\"\r\n [multiple]=\"multiple\"\r\n [items]=\"items\"\r\n [displayKey]=\"displayKey\"\r\n [selectedItems]=\"value\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n ></ngil-select-options>\r\n </ngil-overlay>\r\n }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ngil-textarea',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgilTextareaComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class NgilTextareaComponent extends AbstractInputComponent<string> implements AfterViewInit {\r\n control = new FormControl();\r\n\r\n ngAfterViewInit() {\r\n this.control.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.onChangeInput(value);\r\n });\r\n }\r\n\r\n writeValue(value: string): void {\r\n this.control.setValue(value);\r\n }\r\n\r\n onChangeInput(value: string): void {\r\n if (this.onChange) {\r\n this.onChange(value);\r\n }\r\n }\r\n}\r\n","@if (model$ | async; as model) {\r\n <div class=\"ngil-textarea\" [class.ngil-textarea--error]=\"!!model.errorMessage\">\r\n <label class=\"ngil-textarea__label\" [for]=\"formControlName\">{{ label }}{{ required ? '*' : '' }}</label>\r\n <div class=\"ngil-textarea__field\">\r\n <textarea\r\n class=\"ngil-textarea__input\"\r\n [id]=\"formControlName\"\r\n [required]=\"required\"\r\n [readonly]=\"readonly\"\r\n [formControl]=\"control\"\r\n (blur)=\"onBlur()\"\r\n >\r\n </textarea>\r\n <ng-content select=\"[suffix]\"></ng-content>\r\n </div>\r\n <small class=\"ngil-textarea__error-message\">{{ model.errorMessage }}</small>\r\n </div>\r\n}\r\n","import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\r\nimport { NgilTimePickerOverlayComponent } from './time-picker-overlay.component';\r\n\r\n@Component({\r\n selector: 'ngil-picker-toggle',\r\n templateUrl: 'picker-toggle.html',\r\n styleUrls: ['picker-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NgilPickerToggleComponent {\r\n @Input() picker: NgilTimePickerOverlayComponent | undefined;\r\n\r\n @HostListener('click', ['$event']) onClick = (event: Event) => {\r\n if (!this.picker?.isOpen) {\r\n this.picker?.open();\r\n }\r\n event.stopPropagation();\r\n };\r\n}\r\n","<button class=\"toggle-button\" type=\"button\">\r\n <svg\r\n class=\"mat-datepicker-toggle-default-icon\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"24px\"\r\n height=\"24px\"\r\n fill=\"currentColor\"\r\n focusable=\"false\"\r\n >\r\n <path\r\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"\r\n />\r\n </svg>\r\n</button>\r\n","import { AfterViewInit, Directive, ElementRef, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[ngilNumberRotation]',\r\n standalone: false\r\n})\r\nexport class NumberRotationDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() min = 0;\r\n @Input() max = 10;\r\n @Input() buttonUp?: HTMLElement;\r\n @Input() buttonDown?: HTMLElement;\r\n\r\n get length(): number {\r\n return this.max.toString().length;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n this.onKeyDownEvent(event);\r\n };\r\n\r\n @HostListener('input', ['$event'])\r\n onInput = (event: InputEvent): void => {\r\n let value = (event.target as HTMLInputElement).value;\r\n if (+value > this.max) {\r\n value = value.slice(this.length);\r\n }\r\n this.setValue(+value);\r\n };\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLInputElement>, private readonly ngControl: NgControl) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.value = this.elementRef.nativeElement.value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.buttonUp?.addEventListener('click', this.onUp);\r\n this.buttonDown?.addEventListener('click', this.onDown);\r\n }\r\n\r\n private onKeyDownEvent(event: KeyboardEvent): void {\r\n if (!this.isKeyValid(event.key)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (event.key === 'ArrowUp') {\r\n event.preventDefault();\r\n this.onUp();\r\n }\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault();\r\n this.onDown();\r\n }\r\n }\r\n\r\n private isKeyValid(key: string): boolean {\r\n if (key.length !== 1 || !isNaN(+key)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private onUp = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value + 1);\r\n };\r\n\r\n private onDown = (): void => {\r\n const value = +this.elementRef.nativeElement.value;\r\n this.setValue(value - 1);\r\n };\r\n\r\n private setValue(value: number): void {\r\n if (value < this.min) {\r\n this.setInputValue(this.max);\r\n } else if (value > this.max) {\r\n this.setInputValue(this.min);\r\n } else {\r\n this.setInputValue(value);\r\n }\r\n }\r\n\r\n private setInputValue(value: number) {\r\n this.ngControl.control?.setValue(value);\r\n this.elementRef.nativeElement.value = value.toString().padStart(this.length, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.buttonUp?.removeEventListener('click', this.onUp);\r\n this.buttonDown?.removeEventListener('click', this.onDown);\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AbstractInputComponent } from '@ngil/form-cva';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker',\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: NgilTimePickerComponent,\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class NgilTimePickerComponent extends AbstractInputComponent<TimePickerValue> implements AfterViewInit {\r\n private defaultValue: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n\r\n value = '';\r\n formGroup = new FormGroup({\r\n hour: new FormControl<number>(this.defaultValue.hour, { nonNullable: true }),\r\n minute: new FormControl<number>(this.defaultValue.minute, { nonNullable: true }),\r\n second: new FormControl<number>(this.defaultValue.second, { nonNullable: true })\r\n });\r\n\r\n ngAfterViewInit(): void {\r\n this.listenValueChanges();\r\n }\r\n\r\n protected listenValueChanges(): void {\r\n this.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n if (this.onChange) {\r\n const value = this.formGroup.getRawValue();\r\n this.onChange({\r\n hour: value.hour ?? this.defaultValue.hour,\r\n minute: value.minute ?? this.defaultValue.minute,\r\n second: value.second ?? this.defaultValue.second\r\n });\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: TimePickerValue): void {\r\n if (value) {\r\n this.formGroup.setValue(\r\n {\r\n ...this.defaultValue,\r\n ...value\r\n },\r\n { emitEvent: false }\r\n );\r\n } else {\r\n this.formGroup.reset(this.defaultValue, { emitEvent: false });\r\n }\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\" class=\"ngil-time-picker\">\r\n <div class=\"ngil-time-picker__field\">\r\n <button #hourButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"hour\"\r\n [buttonUp]=\"hourButtonUp\"\r\n [buttonDown]=\"hourButtonDown\"\r\n [max]=\"23\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #hourButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #minuteButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"minute\"\r\n [buttonUp]=\"minuteButtonUp\"\r\n [buttonDown]=\"minuteButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #minuteButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n\r\n <span>:</span>\r\n\r\n <div class=\"ngil-time-picker__field\">\r\n <button #secondButtonUp class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowUp\"></ng-container>\r\n </button>\r\n <input\r\n ngilNumberRotation\r\n class=\"ngil-time-picker__input\"\r\n formControlName=\"second\"\r\n [buttonUp]=\"secondButtonUp\"\r\n [buttonDown]=\"secondButtonDown\"\r\n [max]=\"59\"\r\n [min]=\"0\"\r\n (blur)=\"onBlur()\"\r\n />\r\n <button #secondButtonDown class=\"ngil-time-picker__button\">\r\n <ng-container *ngTemplateOutlet=\"arrowDown\"></ng-container>\r\n </button>\r\n </div>\r\n</form>\r\n\r\n<ng-template #arrowUp>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 75 50, 25 90, 75\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #arrowDown>\r\n <svg\r\n _ngcontent-vre-c235=\"\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n viewBox=\"0 0 100 100\"\r\n xml:space=\"preserve\"\r\n class=\"ngil-time-picker__arrow\"\r\n >\r\n <polyline\r\n _ngcontent-vre-c235=\"\"\r\n fill=\"none\"\r\n stroke=\"#000000\"\r\n stroke-width=\"10\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n points=\"10, 25 50, 75 90, 25\"\r\n ></polyline>\r\n </svg>\r\n</ng-template>\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Component, ElementRef, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilTimePickerComponent } from '../time-picker/time-picker.component';\r\nimport { TimePickerValue } from '../time-picker/time-picker.model';\r\n\r\n@Component({\r\n selector: 'ngil-time-picker-overlay',\r\n template: ''\r\n})\r\nexport class NgilTimePickerOverlayComponent implements OnDestroy {\r\n origin?: ElementRef<HTMLInputElement>;\r\n valueChanges$ = new Subject<TimePickerValue>();\r\n isOpen = false;\r\n\r\n protected value: TimePickerValue = { hour: 0, minute: 0, second: 0 };\r\n protected readonly destroy$ = new Subject<void>();\r\n protected contentComponent = NgilTimePickerComponent;\r\n protected componentInstance: undefined | NgilTimePickerComponent;\r\n private overlayRef?: OverlayRef;\r\n\r\n constructor(private readonly overlay: Overlay) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n open() {\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy: this.getStrategy(),\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop'\r\n });\r\n const portal = new ComponentPortal(this.contentComponent);\r\n const componentRef = this.overlayRef.attach(portal);\r\n this.componentInstance = componentRef.instance;\r\n this.componentInstance.writeValue(this.value);\r\n\r\n this.componentInstance.formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n const value = this.componentInstance?.formGroup.getRawValue();\r\n this.valueChanges$.next({\r\n hour: value?.hour ?? 0,\r\n minute: value?.minute ?? 0,\r\n second: value?.second ?? 0\r\n });\r\n });\r\n\r\n this.overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n this.close();\r\n });\r\n\r\n this.isOpen = true;\r\n }\r\n\r\n close(): void {\r\n this.destroyOverlay();\r\n }\r\n\r\n private destroyOverlay() {\r\n this.destroy$.next();\r\n this.componentInstance?.ngOnDestroy();\r\n this.overlayRef?.dispose();\r\n this.componentInstance = undefined;\r\n this.overlayRef = undefined;\r\n this.isOpen = false;\r\n }\r\n\r\n setValue(value: TimePickerValue): void {\r\n this.value = value;\r\n\r\n if (this.componentInstance) {\r\n this.componentInstance.writeValue(this.value);\r\n }\r\n }\r\n\r\n private getStrategy() {\r\n const primaryX = 'start';\r\n const secondaryX = primaryX === 'start' ? 'end' : 'start';\r\n const primaryY = 'top';\r\n const secondaryY = 'bottom';\r\n\r\n if (!this.origin) {\r\n return undefined;\r\n }\r\n\r\n const strategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.origin)\r\n .withPositions([\r\n {\r\n originX: primaryX,\r\n originY: secondaryY,\r\n overlayX: primaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: primaryX,\r\n originY: primaryY,\r\n overlayX: primaryX,\r\n overlayY: secondaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: secondaryY,\r\n overlayX: secondaryX,\r\n overlayY: primaryY\r\n },\r\n {\r\n originX: secondaryX,\r\n originY: primaryY,\r\n overlayX: secondaryX,\r\n overlayY: secondaryY\r\n }\r\n ]);\r\n\r\n return strategy;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n} from '@angular/core';\r\nimport { AbstractControl, NgControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgilInputComponent } from '../input/input.component';\r\nimport { NgilTimePickerOverlayComponent } from '../time-picker-overlay/time-picker-overlay.component';\r\nimport { TimePickerValue } from './time-picker.model';\r\n\r\n@Directive({\r\n selector: '[ngilTimePicker]',\r\n})\r\nexport class NgilTimePickerDirective implements AfterViewInit, OnDestroy, OnInit {\r\n @Input() picker?: NgilTimePickerOverlayComponent;\r\n\r\n @Output() changed = new EventEmitter<TimePickerValue>();\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown = (event: KeyboardEvent): void => {\r\n if (isNaN(+event.key) && event.key !== ':' && event.key.length === 1) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n @HostListener('input', ['$event']) onInput = (event: InputEvent): void => {\r\n this.setPickerValue((event.target as HTMLInputElement).value);\r\n };\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef<HTMLInputElement>,\r\n @Optional() private readonly inputComponent?: NgilInputComponent,\r\n @Optional() private readonly ngControl?: NgControl,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.ngControl?.control?.setValidators([this.timeValidator()]);\r\n this.setPickerValue(this.ngControl?.control?.value);\r\n }\r\n\r\n private setPickerValue(value?: string) {\r\n const parsedValue = this.getTimePickerValue(value);\r\n this.picker?.setValue({\r\n hour: +parsedValue.hour,\r\n minute: +parsedValue.minute || 0,\r\n second: +parsedValue.second || 0,\r\n });\r\n }\r\n\r\n private timeValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = this.getTimePickerValue(control.value);\r\n if (this.itemHasError(value.hour, 23)) {\r\n return {\r\n invalidHour: true,\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.minute, 59)) {\r\n return {\r\n invalidMinute: true,\r\n };\r\n }\r\n\r\n if (this.itemHasError(value.second, 59)) {\r\n return {\r\n invalidSecond: true,\r\n };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n private itemHasError(value: string, max: number, min = 0) {\r\n if (value && (value.length > 2 || +value > max || +value < min)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getTimePickerValue(value: string | null | undefined) {\r\n const split = value?.split(':');\r\n\r\n return {\r\n hour: split ? split[0] : '00',\r\n minute: split ? split[1] : '00',\r\n second: split ? split[2] : '00',\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.picker) {\r\n this.picker.origin = this.elementRef;\r\n this.picker.valueChanges$.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n this.setInputText(value);\r\n this.changed.emit(value);\r\n });\r\n }\r\n }\r\n\r\n private setInputText(value: TimePickerValue): void {\r\n const text = [this.getItemText(value.hour), this.getItemText(value.minute), this.getItemText(value.second)].join(\r\n ':',\r\n );\r\n this.inputComponent?.control.setValue(text);\r\n this.elementRef.nativeElement.value = text;\r\n this.ngControl?.control?.setValue(text);\r\n }\r\n\r\n private getItemText(value: number) {\r\n return value.toString().padStart(2, '0');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { NgilOverlayComponent, NgilOverlayToggleDirective } from '@ngil/components';\r\nimport { NgilInputComponent } from './components/input/input.component';\r\nimport { NgilRadioComponent } from './components/radio/radio.component';\r\nimport { NgilSelectOptionsComponent } from './components/select-options/select-options.component';\r\nimport { NgilSelectComponent } from './components/select/select.component';\r\nimport { NgilTextareaComponent } from './components/textarea/textarea.component';\r\nimport { NgilPickerToggleComponent } from './components/time-picker-overlay/picker-toggle';\r\nimport { NgilTimePickerOverlayComponent } from './components/time-picker-overlay/time-picker-overlay.component';\r\nimport { NgilTimePickerComponent } from './components/time-picker/time-picker.component';\r\nimport { NgilTimePickerDirective } from './components/time-picker/time-picker.directive';\r\nimport { NumberRotationDirective } from './directives/number-rotation.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n NgilOverlayToggleDirective,\r\n NgilOverlayComponent,\r\n NgilRadioComponent,\r\n NgilPickerToggleComponent,\r\n NgilSelectComponent,\r\n NgilSelectOptionsComponent,\r\n NgilTimePickerDirective,\r\n NgilTimePickerOverlayComponent,\r\n NgilInputComponent,\r\n ],\r\n declarations: [NgilTimePickerComponent, NumberRotationDirective, NgilTextareaComponent],\r\n exports: [\r\n NgilInputComponent,\r\n NgilRadioComponent,\r\n NgilSelectComponent,\r\n NgilTextareaComponent,\r\n NgilTimePickerComponent,\r\n NgilTimePickerOverlayComponent,\r\n NgilPickerToggleComponent,\r\n NumberRotationDirective,\r\n NgilTimePickerDirective,\r\n ],\r\n})\r\nexport class NgilUiFormModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","takeUntil","i3.NumberRotationDirective","i1.NgilInputComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngil/form-inputs",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterViewInit, EventEmitter, ChangeDetectorRef, OnDestroy, ElementRef, OnInit } from '@angular/core';
3
- import * as i11 from '@angular/forms';
4
- import { FormControl, ControlContainer, FormGroup, NgControl } from '@angular/forms';
3
+ import * as i5 from '@angular/forms';
4
+ import { FormControl, ControlValueAccessor, ControlContainer, FormGroup, NgControl } from '@angular/forms';
5
5
  import { AbstractInputComponent, NgilErrorMessagesService } from '@ngil/form-cva';
6
- import * as i12 from '@ngil/components';
6
+ import * as i6 from '@ngil/components';
7
7
  import { NgilOverlayComponent } from '@ngil/components';
8
8
  import { Overlay } from '@angular/cdk/overlay';
9
9
  import { Subject } from 'rxjs';
10
- import * as i10 from '@angular/common';
10
+ import * as i4 from '@angular/common';
11
11
 
12
12
  declare class NgilInputComponent extends AbstractInputComponent<string | number> implements AfterViewInit {
13
13
  type: string;
@@ -17,7 +17,24 @@ declare class NgilInputComponent extends AbstractInputComponent<string | number>
17
17
  writeValue(value: string | number): void;
18
18
  onChangeInput(value: string | number): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NgilInputComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<NgilInputComponent, "ngil-input", never, { "type": { "alias": "type"; "required": false; }; }, { "changed": "changed"; }, never, ["[labelPrefix]", "[labelSuffix]", "[prefix]", "[suffix]", "[hint]"], false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilInputComponent, "ngil-input", never, { "type": { "alias": "type"; "required": false; }; }, { "changed": "changed"; }, never, ["[labelPrefix]", "[labelSuffix]", "[prefix]", "[suffix]", "[hint]"], true, never>;
21
+ }
22
+
23
+ declare class NgilRadioComponent implements ControlValueAccessor {
24
+ formControlName: string;
25
+ label: string;
26
+ items: string[];
27
+ value: string;
28
+ private onChangeCallback;
29
+ private onTouchedCallback;
30
+ onBlur(): void;
31
+ onFocus(): void;
32
+ writeValue(value: string): void;
33
+ registerOnChange(fn: any): void;
34
+ registerOnTouched(fn: any): void;
35
+ updateModel(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgilRadioComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilRadioComponent, "ngil-radio", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "label": { "alias": "label"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
21
38
  }
22
39
 
23
40
  declare class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {
@@ -33,7 +50,7 @@ declare class NgilSelectComponent<T> extends AbstractInputComponent<T | T[]> {
33
50
  onItemSelected(item: T | T[]): void;
34
51
  isArray(item: T | T[]): item is T[];
35
52
  static ɵfac: i0.ɵɵFactoryDeclaration<NgilSelectComponent<any>, [null, null, { optional: true; }]>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectComponent<any>, "ngil-select", never, { "multiple": { "alias": "multiple"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; }, {}, never, ["[suffix]"], false, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectComponent<any>, "ngil-select", never, { "multiple": { "alias": "multiple"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; }, {}, never, ["[suffix]"], true, never>;
37
54
  }
38
55
 
39
56
  declare class NgilTextareaComponent extends AbstractInputComponent<string> implements AfterViewInit {
@@ -84,17 +101,17 @@ declare class NgilTimePickerOverlayComponent implements OnDestroy {
84
101
  setValue(value: TimePickerValue): void;
85
102
  private getStrategy;
86
103
  static ɵfac: i0.ɵɵFactoryDeclaration<NgilTimePickerOverlayComponent, never>;
87
- static ɵcmp: i0.ɵɵComponentDeclaration<NgilTimePickerOverlayComponent, "ngil-time-picker-overlay", never, {}, {}, never, never, false, never>;
104
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilTimePickerOverlayComponent, "ngil-time-picker-overlay", never, {}, {}, never, never, true, never>;
88
105
  }
89
106
 
90
- declare class PickerToggleComponent {
107
+ declare class NgilPickerToggleComponent {
91
108
  picker: NgilTimePickerOverlayComponent | undefined;
92
109
  onClick: (event: Event) => void;
93
- static ɵfac: i0.ɵɵFactoryDeclaration<PickerToggleComponent, never>;
94
- static ɵcmp: i0.ɵɵComponentDeclaration<PickerToggleComponent, "ngil-picker-toggle", never, { "picker": { "alias": "picker"; "required": false; }; }, {}, never, never, false, never>;
110
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgilPickerToggleComponent, never>;
111
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilPickerToggleComponent, "ngil-picker-toggle", never, { "picker": { "alias": "picker"; "required": false; }; }, {}, never, never, true, never>;
95
112
  }
96
113
 
97
- declare class TimePickerDirective implements AfterViewInit, OnDestroy, OnInit {
114
+ declare class NgilTimePickerDirective implements AfterViewInit, OnDestroy, OnInit {
98
115
  private readonly elementRef;
99
116
  private readonly inputComponent?;
100
117
  private readonly ngControl?;
@@ -113,8 +130,8 @@ declare class TimePickerDirective implements AfterViewInit, OnDestroy, OnInit {
113
130
  private setInputText;
114
131
  private getItemText;
115
132
  ngOnDestroy(): void;
116
- static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerDirective, [null, { optional: true; }, { optional: true; }]>;
117
- static ɵdir: i0.ɵɵDirectiveDeclaration<TimePickerDirective, "[ngilTimePicker]", never, { "picker": { "alias": "picker"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
133
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgilTimePickerDirective, [null, { optional: true; }, { optional: true; }]>;
134
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgilTimePickerDirective, "[ngilTimePicker]", never, { "picker": { "alias": "picker"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
118
135
  }
119
136
 
120
137
  declare class NumberRotationDirective implements AfterViewInit, OnDestroy, OnInit {
@@ -153,14 +170,14 @@ declare class NgilSelectOptionsComponent<T> implements OnDestroy {
153
170
  isSelected(item: T): boolean;
154
171
  ngOnDestroy(): void;
155
172
  static ɵfac: i0.ɵɵFactoryDeclaration<NgilSelectOptionsComponent<any>, never>;
156
- static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectOptionsComponent<any>, "ngil-select-options", never, { "selectedItems": { "alias": "selectedItems"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, { "itemSelected": "itemSelected"; }, never, never, false, never>;
173
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgilSelectOptionsComponent<any>, "ngil-select-options", never, { "selectedItems": { "alias": "selectedItems"; "required": false; }; "items": { "alias": "items"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, { "itemSelected": "itemSelected"; }, never, never, true, never>;
157
174
  }
158
175
 
159
176
  declare class NgilUiFormModule {
160
177
  static ɵfac: i0.ɵɵFactoryDeclaration<NgilUiFormModule, never>;
161
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgilUiFormModule, [typeof NgilInputComponent, typeof NgilTimePickerComponent, typeof NgilTimePickerOverlayComponent, typeof PickerToggleComponent, typeof NumberRotationDirective, typeof TimePickerDirective, typeof NgilSelectComponent, typeof NgilTextareaComponent, typeof NgilSelectOptionsComponent], [typeof i10.CommonModule, typeof i11.ReactiveFormsModule, typeof i12.NgilOverlayToggleDirective, typeof i12.NgilOverlayComponent], [typeof NgilInputComponent, typeof NgilSelectComponent, typeof NgilTextareaComponent, typeof NgilTimePickerComponent, typeof NgilTimePickerOverlayComponent, typeof PickerToggleComponent, typeof NumberRotationDirective, typeof TimePickerDirective]>;
178
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgilUiFormModule, [typeof NgilTimePickerComponent, typeof NumberRotationDirective, typeof NgilTextareaComponent], [typeof i4.CommonModule, typeof i5.ReactiveFormsModule, typeof i6.NgilOverlayToggleDirective, typeof i6.NgilOverlayComponent, typeof NgilRadioComponent, typeof NgilPickerToggleComponent, typeof NgilSelectComponent, typeof NgilSelectOptionsComponent, typeof NgilTimePickerDirective, typeof NgilTimePickerOverlayComponent, typeof NgilInputComponent], [typeof NgilInputComponent, typeof NgilRadioComponent, typeof NgilSelectComponent, typeof NgilTextareaComponent, typeof NgilTimePickerComponent, typeof NgilTimePickerOverlayComponent, typeof NgilPickerToggleComponent, typeof NumberRotationDirective, typeof NgilTimePickerDirective]>;
162
179
  static ɵinj: i0.ɵɵInjectorDeclaration<NgilUiFormModule>;
163
180
  }
164
181
 
165
- export { NgilInputComponent, NgilSelectComponent, NgilTextareaComponent, NgilTimePickerComponent, NgilTimePickerOverlayComponent, NgilUiFormModule, NumberRotationDirective, PickerToggleComponent, TimePickerDirective };
182
+ export { NgilInputComponent, NgilPickerToggleComponent, NgilRadioComponent, NgilSelectComponent, NgilTextareaComponent, NgilTimePickerComponent, NgilTimePickerDirective, NgilTimePickerOverlayComponent, NgilUiFormModule, NumberRotationDirective };
166
183
  export type { TimePickerValue };