@gerandon/ngx-widgets 19.0.3 → 19.0.4
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,9 +1,9 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { input, inject, Injector, ChangeDetectorRef, Directive, ViewChild, InjectionToken, Optional, Inject, Input, isDevMode, output, forwardRef, Component, ViewEncapsulation, ViewChildren } from '@angular/core';
|
2
|
+
import { input, inject, Injector, ChangeDetectorRef, Directive, ViewChild, InjectionToken, Optional, Inject, Input, isDevMode, output, forwardRef, Component, ViewEncapsulation, ViewChildren, viewChild } from '@angular/core';
|
3
3
|
import * as i1 from '@angular/forms';
|
4
4
|
import { FormControl, NgControl, NG_VALUE_ACCESSOR, NG_ASYNC_VALIDATORS, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
5
|
-
import { of, Subject, Observable, takeUntil } from 'rxjs';
|
6
|
-
import { isEmpty, keys, isEqual } from 'lodash-es';
|
5
|
+
import { of, Subject, Observable, takeUntil, debounceTime, switchMap, map, tap } from 'rxjs';
|
6
|
+
import { isEmpty, keys, isEqual, find } from 'lodash-es';
|
7
7
|
import { SafeSubscriber } from 'rxjs/internal/Subscriber';
|
8
8
|
import * as i3 from '@angular/material/form-field';
|
9
9
|
import { MatFormFieldModule, MatFormField, MatLabel, MatError } from '@angular/material/form-field';
|
@@ -11,7 +11,7 @@ import * as i2 from '@angular/material/icon';
|
|
11
11
|
import { MatIconModule } from '@angular/material/icon';
|
12
12
|
import * as i4 from '@angular/material/input';
|
13
13
|
import { MatInputModule, MatInput } from '@angular/material/input';
|
14
|
-
import { NgIf, AsyncPipe
|
14
|
+
import { NgIf, AsyncPipe } from '@angular/common';
|
15
15
|
import { NgxMaskDirective } from 'ngx-mask';
|
16
16
|
import * as i2$1 from '@angular/material/select';
|
17
17
|
import { MatSelectModule } from '@angular/material/select';
|
@@ -346,8 +346,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
346
346
|
class BasicChipsComponent extends BaseInput {
|
347
347
|
constructor() {
|
348
348
|
super(...arguments);
|
349
|
+
this.tsFilterInput = viewChild('inputElement');
|
350
|
+
this.asyncFilterFn = input();
|
349
351
|
this.asyncOptions = input();
|
352
|
+
this.startTypingLabel = input('Kezdjen el gépelni...');
|
353
|
+
this.emptyListLabel = input('Nincs megjeleníthető elem!');
|
354
|
+
/**
|
355
|
+
* How much character you need to type before triggering search
|
356
|
+
*/
|
357
|
+
this.startAsyncFnAt = input(1);
|
350
358
|
this.separatorKeysCodes = [ENTER, COMMA];
|
359
|
+
this.inputChange = new Subject();
|
360
|
+
}
|
361
|
+
ngOnInit() {
|
362
|
+
super.ngOnInit();
|
363
|
+
this._hintLabel = this.hintLabel();
|
364
|
+
if (this.asyncFilterFn()) {
|
365
|
+
this.filterOptions$ = this.inputChange.pipe(debounceTime(300), switchMap((value) => {
|
366
|
+
if (value && value.length >= this.startAsyncFnAt()) {
|
367
|
+
return this.asyncFilterFn()(value).pipe(map((responseList) => {
|
368
|
+
return responseList.filter((responseListItem) => {
|
369
|
+
return !find(this.control.value, (controlAct) => isEqual(controlAct, responseListItem));
|
370
|
+
});
|
371
|
+
}));
|
372
|
+
}
|
373
|
+
return of([]);
|
374
|
+
}), tap((responseList) => {
|
375
|
+
if (!this.tsFilterInput()?.nativeElement.value && !this.control.value) {
|
376
|
+
this._hintLabel = 'Kezdjen el gépelni...';
|
377
|
+
}
|
378
|
+
else {
|
379
|
+
this._hintLabel = !responseList.length ? this.emptyListLabel() : '';
|
380
|
+
}
|
381
|
+
}));
|
382
|
+
}
|
383
|
+
else {
|
384
|
+
this.filterOptions$ = this.asyncOptions();
|
385
|
+
}
|
386
|
+
}
|
387
|
+
filter() {
|
388
|
+
const filterValue = this.tsFilterInput().nativeElement.value;
|
389
|
+
this.inputChange.next(filterValue);
|
351
390
|
}
|
352
391
|
remove(item) {
|
353
392
|
const values = this.control.value;
|
@@ -386,7 +425,7 @@ class BasicChipsComponent extends BaseInput {
|
|
386
425
|
}
|
387
426
|
}
|
388
427
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BasicChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BasicChipsComponent, isStandalone: true, selector: "gerandon-basic-chips", inputs: { asyncOptions: { classPropertyName: "asyncOptions", publicName: "asyncOptions", isSignal: true, isRequired: false, transformFunction: null }, labelProperty: { classPropertyName: "labelProperty", publicName: "labelProperty", isSignal: false, isRequired: false, transformFunction: null } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicChipsComponent), multi: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' elt\u00E1vol\u00EDt\u00E1sa'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of
|
428
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BasicChipsComponent, isStandalone: true, selector: "gerandon-basic-chips", inputs: { asyncFilterFn: { classPropertyName: "asyncFilterFn", publicName: "asyncFilterFn", isSignal: true, isRequired: false, transformFunction: null }, asyncOptions: { classPropertyName: "asyncOptions", publicName: "asyncOptions", isSignal: true, isRequired: false, transformFunction: null }, startTypingLabel: { classPropertyName: "startTypingLabel", publicName: "startTypingLabel", isSignal: true, isRequired: false, transformFunction: null }, emptyListLabel: { classPropertyName: "emptyListLabel", publicName: "emptyListLabel", isSignal: true, isRequired: false, transformFunction: null }, startAsyncFnAt: { classPropertyName: "startAsyncFnAt", publicName: "startAsyncFnAt", isSignal: true, isRequired: false, transformFunction: null }, labelProperty: { classPropertyName: "labelProperty", publicName: "labelProperty", isSignal: false, isRequired: false, transformFunction: null } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicChipsComponent), multi: true }], viewQueries: [{ propertyName: "tsFilterInput", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [hintLabel]=\"_hintLabel\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' elt\u00E1vol\u00EDt\u00E1sa'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n (input)=\"filter()\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of filterOptions$ | async; track filterItem) {\r\n <mat-option [value]=\"filterItem\">\r\n {{labelProperty ? filterItem[labelProperty] : filterItem}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-chip-grid>\r\n <input #input=\"ngForm\" [style.display]=\"'none'\" [formControl]=\"control\" />\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n", styles: ["gerandon-basic-chips{display:block}gerandon-basic-chips .mat-mdc-standard-chip{height:28px!important}gerandon-basic-chips mat-form-field{width:100%}gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:hidden!important}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i1$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i1$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
390
429
|
}
|
391
430
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BasicChipsComponent, decorators: [{
|
392
431
|
type: Component,
|
@@ -396,12 +435,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
396
435
|
ReactiveFormsModule,
|
397
436
|
MatAutocompleteModule,
|
398
437
|
AsyncPipe,
|
399
|
-
JsonPipe,
|
400
438
|
MatFormField,
|
401
439
|
MatInput,
|
402
440
|
MatLabel,
|
403
441
|
MatError,
|
404
|
-
], template: "<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' elt\u00E1vol\u00EDt\u00E1sa'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of
|
442
|
+
], template: "<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [hintLabel]=\"_hintLabel\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' elt\u00E1vol\u00EDt\u00E1sa'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n (input)=\"filter()\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of filterOptions$ | async; track filterItem) {\r\n <mat-option [value]=\"filterItem\">\r\n {{labelProperty ? filterItem[labelProperty] : filterItem}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-chip-grid>\r\n <input #input=\"ngForm\" [style.display]=\"'none'\" [formControl]=\"control\" />\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n", styles: ["gerandon-basic-chips{display:block}gerandon-basic-chips .mat-mdc-standard-chip{height:28px!important}gerandon-basic-chips mat-form-field{width:100%}gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mdc-evolution-chip__action--primary,gerandon-basic-chips mat-form-field .mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:hidden!important}\n"] }]
|
405
443
|
}], propDecorators: { labelProperty: [{
|
406
444
|
type: Input
|
407
445
|
}] } });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gerandon-ngx-widgets.mjs","sources":["../../../projects/ngx-widgets/src/lib/core/base-value-accessor.ts","../../../projects/ngx-widgets/src/lib/core/base-input.ts","../../../projects/ngx-widgets/src/lib/core/base-text-input.ts","../../../projects/ngx-widgets/src/lib/core/base-mask-input.ts","../../../projects/ngx-widgets/src/lib/core/component-unsubscribe.ts","../../../projects/ngx-widgets/src/lib/basic-input/basic-input.component.ts","../../../projects/ngx-widgets/src/lib/basic-input/basic-input.component.html","../../../projects/ngx-widgets/src/lib/select/select.component.ts","../../../projects/ngx-widgets/src/lib/select/select.component.html","../../../projects/ngx-widgets/src/lib/textarea-input/textarea-input.component.ts","../../../projects/ngx-widgets/src/lib/textarea-input/textarea-input.component.html","../../../projects/ngx-widgets/src/lib/basic-chips/basic-chips.component.ts","../../../projects/ngx-widgets/src/lib/basic-chips/basic-chips.component.html","../../../projects/ngx-widgets/src/public-api.ts","../../../projects/ngx-widgets/src/gerandon-ngx-widgets.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef, Directive,\n ElementRef, inject,\n Injector, OnDestroy, Type,\n ViewChild,\n input\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor, FormControl,\r\n NgControl,\r\n ValidationErrors,\r\n Validator, ValidatorFn,\r\n} from '@angular/forms';\r\n\r\nimport {Observable, of, Subject} from 'rxjs';\r\n\r\n@Directive()\r\nexport class BaseValueAccessor<T> implements ControlValueAccessor, AfterViewInit, Validator, OnDestroy {\r\n\r\n public readonly validator = input<Observable<ValidationErrors>>(of({}));\r\n @ViewChild('inputElement') inputElement!: ElementRef;\r\n @ViewChild('input') input!: NgControl;\r\n\r\n public control: FormControl;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private onChange = (value: T) => {\r\n };\r\n private onTouched = () => {\r\n };\r\n private readonly injector: Injector = inject(Injector);\r\n protected controlDir!: NgControl;\r\n protected readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected _validate: ValidatorFn;\r\n protected readonly _defaultValidate: ValidatorFn = () => null;\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n constructor() {\r\n this._validate = this._defaultValidate;\r\n // Temporarily, AfterViewInit will handle the correct setting\r\n this.control = new FormControl();\r\n }\r\n\r\n validate(control: AbstractControl): Observable<ValidationErrors> {\r\n control.setErrors({ ...control.errors, pending: true });\r\n return this.validator();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.controlDir = this.injector.get<NgControl>(NgControl as Type<NgControl>);\r\n this.control = <FormControl>this.controlDir.control;\r\n // For ng-valid expression changed error workaround purposes\r\n this.cdr.detectChanges();\r\n }\r\n\r\n writeValue(obj: T): void {\r\n this.valueAccessor?.writeValue(obj);\r\n }\r\n\r\n registerOnChange(fn: (value: T) => unknown): void {\r\n this.onChange = fn;\r\n this.valueAccessor?.registerOnChange(fn);\r\n }\r\n\r\n registerOnTouched(fn: () => unknown) {\r\n this.onTouched = fn;\r\n this.valueAccessor?.registerOnTouched(fn);\r\n }\r\n\r\n protected get valueAccessor(): ControlValueAccessor | null {\r\n return this.input ? this.input.valueAccessor : null;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive, Inject, inject, InjectionToken,\r\n Input, OnChanges,\r\n OnInit, Optional, SimpleChanges,\r\n input\r\n} from '@angular/core';\r\nimport {FloatLabelType, SubscriptSizing} from '@angular/material/form-field';\r\n\r\nimport {BaseValueAccessor} from './base-value-accessor';\r\nimport {isEmpty, keys} from 'lodash-es';\r\n\r\nexport interface NgxWidgetsValidationErrorTypes {\r\n required?: string;\r\n selectGlobalPlaceholder?: string;\r\n}\r\n\r\nexport const NGX_WIDGETS_VALIDATION_TRANSLATIONS = new InjectionToken<NgxWidgetsValidationErrorTypes>('NGX_WIDGETS_VALIDATION_TRANSLATIONS');\r\n\r\n@Directive()\r\nexport class BaseInput<T> extends BaseValueAccessor<T> implements OnInit, AfterViewInit, OnChanges {\r\n\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public id!: string;\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public name!: string;\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public label!: string;\r\n public readonly translateParams = input<unknown>();\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public placeholder!: string;\r\n public readonly isDisabled = input<boolean | undefined>(false);\r\n public readonly floatLabel = input<FloatLabelType>('auto');\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public prefixIcon?: string;\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public suffixIcon?: string;\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public suffix?: string;\r\n public readonly formControlName = input<string>();\r\n public readonly validatorMessages = input<{\r\n [key: string]: string;\r\n }>();\r\n public readonly subscriptSizing = input<SubscriptSizing>('fixed');\r\n public readonly hintLabel = input('');\r\n public validatorMessagesArray: { key: string, value: unknown }[] = [];\r\n\r\n constructor(@Optional() @Inject(NGX_WIDGETS_VALIDATION_TRANSLATIONS) protected readonly validationTranslations: NgxWidgetsValidationErrorTypes | any = {}) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.placeholder = this.placeholder === undefined ? this.label : this.placeholder;\r\n if (!this.name) {\r\n this.name = this.formControlName()!;\r\n /*\r\n console.warn(`name attribute is not defined for ${this.formControlName}! Please beware, that using this control multiple\r\n times with the same control name could result in wrong focus, clicking on the label!`);\r\n */\r\n }\r\n // *ngIf seems like does not re-render component when label is used with dynamic value (e.g.: translate pipe). Strange\r\n this.label = this.label || ' ';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['validatorMessages']) {\r\n const validatorMessages = this.validatorMessages();\r\n if (!isEmpty(validatorMessages)) {\r\n this.validatorMessagesArray = keys(validatorMessages).map((key) => ({\r\n key,\r\n value: this.validatorMessages()![key],\r\n }));\r\n }\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\n Directive,\n input\n} from '@angular/core';\r\n\r\nimport { BaseInput } from './base-input';\r\n\r\n@Directive()\r\nexport class BaseTextInput<T> extends BaseInput<T> {\r\n\r\n public readonly type = input<('text' | 'password' | 'number' | 'email' | 'tel')>('text');\r\n public readonly maxLength = input<number | undefined>(512);\r\n}\r\n","import {BaseTextInput} from \"./base-text-input\";\nimport {AfterViewInit, Directive, ViewChild, input} from \"@angular/core\";\nimport {NgxMaskDirective} from \"ngx-mask\";\n\n@Directive()\nexport class BaseMaskInput extends BaseTextInput<string> implements AfterViewInit {\n\n public readonly mask = input<string>();\n public readonly showMaskTyped = input(false);\n public readonly dropSpecialCharacters = input<string[] | boolean | readonly string[] | null>();\n public readonly specialCharacters = input<string[]>();\n public readonly placeHolderCharacter = input<string>('_');\n public readonly maskPrefix = input<string>('');\n public readonly maskSuffix = input<string>('');\n\n @ViewChild('maskInput') maskInput!: NgxMaskDirective;\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.maskInput) {\n this.maskInput._maskService.dropSpecialCharacters = this.dropSpecialCharacters()!;\n this.maskInput['_applyMask']();\n }\n }\n}\n","import { isDevMode } from '@angular/core';\n\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { SafeSubscriber } from 'rxjs/internal/Subscriber';\n\n/**\n * Automatically unsubscribe from an Observable when the view is destroyed\n * Tested with checking the \"complete\" event of a subscribe method\n * @description\n * An Annotation that should be used with an Observable typed variable to handle its subscriptions\n * @author gergo.asztalos\n */\nexport function UnsubscribeOnDestroy<ObservableType>(): PropertyDecorator {\n return function (target: any, propertyKey: string | symbol) {\n const ngOnDestroy = target.ngOnDestroy;\n\n const secretKey = `_${<string>propertyKey}$`;\n // Probably with function we could use own context\n const destroyKey = (_this: any) =>\n _this.hasOwnProperty('destroy$') ? 'destroy$' : `${_this.constructor.name}_destroy$`;\n Object.defineProperty(target, secretKey, { enumerable: false, writable: true });\n Object.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get: function() {\n return this[secretKey];\n },\n set: function(newValue: Observable<ObservableType> | SafeSubscriber<ObservableType>) {\n if (!this[destroyKey(this)]) {\n this[destroyKey(this)] = new Subject();\n }\n if (newValue instanceof Observable) {\n this[secretKey] = newValue.pipe(\n takeUntil(this[destroyKey(this)]),\n );\n } else {\n this[secretKey] = newValue;\n }\n },\n });\n\n target.ngOnDestroy = function () {\n if (this[propertyKey] instanceof SafeSubscriber) {\n this[propertyKey].unsubscribe();\n this[secretKey].unsubscribe();\n } else if (this.hasOwnProperty(destroyKey(this))) {\n this[destroyKey(this)].next();\n this[destroyKey(this)].complete();\n }\n delete this[secretKey];\n if (isDevMode()) {\n // eslint-disable-next-line no-console,max-len\n console.debug(`<UnsubscribeOnDestroy> - Observable/Subscription <${<string>propertyKey}> completed in class: ${this.constructor.name}`);\n }\n ngOnDestroy && ngOnDestroy.call(this);\n };\n };\n}\n","import {\n Component,\n forwardRef,\n OnInit,\n ViewEncapsulation,\n output\n} from '@angular/core';\r\nimport { NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport {NgIf} from \"@angular/common\";\r\nimport {NgxMaskDirective} from \"ngx-mask\";\r\nimport {BaseMaskInput} from \"../core/base-mask-input\";\r\n\r\n@Component({\r\n selector: 'gerandon-basic-input',\r\n templateUrl: './basic-input.component.html',\r\n styleUrls: ['./basic-input.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n NgIf,\r\n NgxMaskDirective,\r\n ],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicInputComponent), multi: true },\r\n { provide: NG_ASYNC_VALIDATORS, useExisting: forwardRef(() => BasicInputComponent), multi: true },\r\n ],\r\n})\r\nexport class BasicInputComponent extends BaseMaskInput implements OnInit {\r\n\r\n readonly iconClick = output();\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n this.id = this.id || this.name;\r\n }\r\n}\r\n","<div class=\"basic-input cva-input\">\r\n <mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [hintLabel]=\"hintLabel()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{label}}</mat-label>\r\n }\r\n @if(mask()) {\r\n <input\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n #maskInput=\"ngxMask\"\r\n matInput\r\n [style.padding-right]=\"(suffix || prefixIcon) && '35px'\"\r\n [type]=\"type()\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\"\r\n [mask]=\"mask()\"\r\n [triggerOnMaskChange]=\"true\"\r\n [showMaskTyped]=\"showMaskTyped()\"\r\n [specialCharacters]=\"specialCharacters()!\"\r\n [placeHolderCharacter]=\"placeHolderCharacter()!\"\r\n [prefix]=\"maskPrefix()\"\r\n [suffix]=\"maskSuffix()\"\r\n />\r\n } @else {\r\n <input\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n matInput\r\n [style.padding-right]=\"(suffix || prefixIcon) && '35px'\"\r\n [type]=\"type()\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\"\r\n />\r\n }\r\n @if (prefixIcon) {\r\n <mat-icon matPrefix color=\"accent\">\r\n {{prefixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffixIcon) {\r\n <mat-icon matSuffix color=\"accent\">\r\n {{suffixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffix) {\r\n <span matSuffix style=\"margin-right: 10px\">{{suffix}}</span>\r\n }\r\n\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n\r\n }\r\n @for (error of validatorMessagesArray; track error.key) {\r\n <!--\r\n this @if makes the mat-error to be placed out of subscript-wrapper\r\n that way the error message will be inside the input, not under the field as the others....\r\n\r\n @if (control.errors?.[error.key]) {\r\n }\r\n -->\r\n <mat-error *ngIf=\"control.errors?.[error.key]\">\r\n @if(!!validatorMessages()?.[error.key]) {\r\n {{ error.value }}\r\n } @else if (!!validationTranslations?.[error.key]) {\r\n {{ validationTranslations[error.key] }}\r\n }\r\n </mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import {\r\n Component,\r\n ElementRef,\r\n forwardRef,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n ViewEncapsulation,\r\n input\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {BaseInput} from '../core/base-input';\r\nimport { isEqual } from 'lodash-es';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport interface SelectOptionType {\r\n label: string;\r\n value: string | number | null | unknown;\r\n}\r\n\r\n@Component({\r\n selector: 'gerandon-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectComponent), multi: true }\r\n ],\r\n imports: [\r\n MatInputModule,\r\n MatSelectModule,\r\n ReactiveFormsModule,\r\n MatTooltipModule,\r\n ],\r\n})\r\nexport class SelectComponent extends BaseInput<unknown> implements OnInit {\r\n\r\n /**\r\n * In this case, an empty option appears that resets the control, to an empty value state\r\n */\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public emptyOptionLabel?: string;\r\n public readonly multiple = input<boolean>();\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public options!: SelectOptionType[];\r\n public readonly asyncOptions = input<Observable<SelectOptionType[]>>();\r\n @ViewChildren('optionElements') public optionElements!: QueryList<ElementRef>;\r\n\r\n /**\r\n * Angular Material - Select component comparsion is only '===', does not work with Array values\r\n * https://github.com/angular/components/blob/a07c0758a5ec2eb4de1bb822354be08178c66aa4/src/lib/select/select.ts#L242C48-L242C58\r\n */\r\n public readonly _isEqual = isEqual;\r\n\r\n override ngOnInit() {\r\n this.placeholder = !this.placeholder ? (this.validationTranslations?.selectGlobalPlaceholder || this.label) : this.placeholder;\r\n super.ngOnInit();\r\n this.id = this.id || this.formControlName() || this.name;\r\n const asyncOptions = this.asyncOptions();\r\n if (asyncOptions) {\r\n asyncOptions.pipe(takeUntil(this.destroy$)).subscribe((resp) => {\r\n this.options = resp;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n}\r\n","<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <mat-select #inputElement\r\n #input=\"ngForm\"\r\n [multiple]=\"multiple()\"\r\n [placeholder]=\"!floatLabel() ? label : placeholder\"\r\n [formControl]=\"control\"\r\n [id]=\"id\"\r\n [class.input-disabled]=\"isDisabled() || control.disabled\"\r\n [compareWith]=\"_isEqual\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\">\r\n @if (emptyOptionLabel) {\r\n <mat-option (click)=\"control.reset()\">\r\n {{ emptyOptionLabel }}\r\n </mat-option>\r\n }\r\n @for(option of options; track option) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (suffix) {\r\n <span matSuffix>{{suffix}}</span>\r\n }\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n","import { Component, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {BaseTextInput} from \"../core/base-text-input\";\r\n\r\n@Component({\r\n selector: 'gerandon-textarea-input',\r\n templateUrl: 'textarea-input.component.html',\r\n styleUrls: ['textarea-input.component.scss'],\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n ],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextareaInputComponent), multi: true },\r\n { provide: NG_ASYNC_VALIDATORS, useExisting: forwardRef(() => TextareaInputComponent), multi: true },\r\n ],\r\n})\r\nexport class TextareaInputComponent extends BaseTextInput<string> {\r\n\r\n public readonly rows = input(10);\r\n\r\n}\r\n","<div class=\"textarea-input cva-input\">\r\n <mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <textarea\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n #autosize=\"cdkTextareaAutosize\"\r\n matInput\r\n cdkTextareaAutosize\r\n [cdkAutosizeMinRows]=\"rows()\"\r\n class=\"w-100 cva-control\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\">\r\n </textarea>\r\n <span class=\"counter\">{{control.value?.length || 0}} / {{ maxLength() }}</span>\r\n @if (prefixIcon) {\r\n <mat-icon matPrefix color=\"accent\">\r\n {{prefixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffixIcon) {\r\n <mat-icon matSuffix color=\"accent\">\r\n {{suffixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffix) {\r\n <span matSuffix>{{suffix}}</span>\r\n }\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import {COMMA, ENTER} from '@angular/cdk/keycodes';\nimport {AsyncPipe, JsonPipe} from '@angular/common';\nimport {Component, forwardRef, Input, ViewEncapsulation, input} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\nimport {MatAutocompleteModule, MatAutocompleteSelectedEvent} from '@angular/material/autocomplete';\nimport {MatChipInputEvent, MatChipsModule} from '@angular/material/chips';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {Observable} from 'rxjs';\nimport {BaseInput} from \"../core/base-input\";\nimport {MatError, MatFormField, MatLabel} from \"@angular/material/form-field\";\nimport {MatInput} from \"@angular/material/input\";\n\n@Component({\n selector: 'gerandon-basic-chips',\n templateUrl: 'basic-chips.component.html',\n styleUrls: ['basic-chips.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicChipsComponent), multi: true}],\n imports: [\n MatChipsModule,\n MatIconModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n AsyncPipe,\n JsonPipe,\n MatFormField,\n MatInput,\n MatLabel,\n MatError,\n ],\n})\nexport class BasicChipsComponent<T> extends BaseInput<T[]> {\n\n public readonly asyncOptions = input<Observable<T[]>>();\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public labelProperty?: keyof T;\n public readonly separatorKeysCodes = [ENTER, COMMA] as const;\n\n remove(item: T) {\n const values: T[] = this.control.value;\n const index = values.indexOf(item);\n if (index >= 0) {\n values.splice(index, 1);\n this.control.setValue(values);\n }\n\n this.mark();\n }\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value) {\n this.updateValue(value as T);\n }\n event.chipInput!.clear();\n\n this.mark();\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n if (!this.control.value?.includes(event.option.value)) {\n this.updateValue(<T>event.option.value);\n }\n this.inputElement.nativeElement.value = '';\n\n this.mark();\n }\n\n private updateValue(value: T) {\n this.control.setValue([\n ...(this.control.value || []),\n value,\n ]);\n }\n\n private mark() {\n if (!this.control.touched) {\n this.control.markAsTouched();\n this.control.markAsDirty();\n }\n }\n}\n","<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' eltávolítása'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of asyncOptions() | async; track filterItem) {\r\n <mat-option [value]=\"filterItem\">\r\n {{labelProperty ? filterItem[labelProperty] : filterItem}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-chip-grid>\r\n <input #input=\"ngForm\" [style.display]=\"'none'\" [formControl]=\"control\" />\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n","/*\n * Public API Surface of ngx-widgets\n */\n\nexport * from './lib/core/base-value-accessor';\nexport * from './lib/core/base-input';\nexport * from './lib/core/base-text-input';\nexport * from './lib/core/base-mask-input';\nexport * from './lib/core/component-unsubscribe';\n\nexport * from './lib/basic-input/basic-input.component';\nexport * from './lib/select/select.component';\nexport * from './lib/textarea-input/textarea-input.component';\nexport * from './lib/basic-chips/basic-chips.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1","i2","i3","i4","i5"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"gerandon-ngx-widgets.mjs","sources":["../../../projects/ngx-widgets/src/lib/core/base-value-accessor.ts","../../../projects/ngx-widgets/src/lib/core/base-input.ts","../../../projects/ngx-widgets/src/lib/core/base-text-input.ts","../../../projects/ngx-widgets/src/lib/core/base-mask-input.ts","../../../projects/ngx-widgets/src/lib/core/component-unsubscribe.ts","../../../projects/ngx-widgets/src/lib/basic-input/basic-input.component.ts","../../../projects/ngx-widgets/src/lib/basic-input/basic-input.component.html","../../../projects/ngx-widgets/src/lib/select/select.component.ts","../../../projects/ngx-widgets/src/lib/select/select.component.html","../../../projects/ngx-widgets/src/lib/textarea-input/textarea-input.component.ts","../../../projects/ngx-widgets/src/lib/textarea-input/textarea-input.component.html","../../../projects/ngx-widgets/src/lib/basic-chips/basic-chips.component.ts","../../../projects/ngx-widgets/src/lib/basic-chips/basic-chips.component.html","../../../projects/ngx-widgets/src/public-api.ts","../../../projects/ngx-widgets/src/gerandon-ngx-widgets.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef, Directive,\n ElementRef, inject,\n Injector, OnDestroy, Type,\n ViewChild,\n input\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor, FormControl,\r\n NgControl,\r\n ValidationErrors,\r\n Validator, ValidatorFn,\r\n} from '@angular/forms';\r\n\r\nimport {Observable, of, Subject} from 'rxjs';\r\n\r\n@Directive()\r\nexport class BaseValueAccessor<T> implements ControlValueAccessor, AfterViewInit, Validator, OnDestroy {\r\n\r\n public readonly validator = input<Observable<ValidationErrors>>(of({}));\r\n @ViewChild('inputElement') inputElement!: ElementRef;\r\n @ViewChild('input') input!: NgControl;\r\n\r\n public control: FormControl;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n private onChange = (value: T) => {\r\n };\r\n private onTouched = () => {\r\n };\r\n private readonly injector: Injector = inject(Injector);\r\n protected controlDir!: NgControl;\r\n protected readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n protected _validate: ValidatorFn;\r\n protected readonly _defaultValidate: ValidatorFn = () => null;\r\n\r\n protected readonly destroy$ = new Subject<void>();\r\n\r\n constructor() {\r\n this._validate = this._defaultValidate;\r\n // Temporarily, AfterViewInit will handle the correct setting\r\n this.control = new FormControl();\r\n }\r\n\r\n validate(control: AbstractControl): Observable<ValidationErrors> {\r\n control.setErrors({ ...control.errors, pending: true });\r\n return this.validator();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.controlDir = this.injector.get<NgControl>(NgControl as Type<NgControl>);\r\n this.control = <FormControl>this.controlDir.control;\r\n // For ng-valid expression changed error workaround purposes\r\n this.cdr.detectChanges();\r\n }\r\n\r\n writeValue(obj: T): void {\r\n this.valueAccessor?.writeValue(obj);\r\n }\r\n\r\n registerOnChange(fn: (value: T) => unknown): void {\r\n this.onChange = fn;\r\n this.valueAccessor?.registerOnChange(fn);\r\n }\r\n\r\n registerOnTouched(fn: () => unknown) {\r\n this.onTouched = fn;\r\n this.valueAccessor?.registerOnTouched(fn);\r\n }\r\n\r\n protected get valueAccessor(): ControlValueAccessor | null {\r\n return this.input ? this.input.valueAccessor : null;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Directive, Inject, inject, InjectionToken,\r\n Input, OnChanges,\r\n OnInit, Optional, SimpleChanges,\r\n input\r\n} from '@angular/core';\r\nimport {FloatLabelType, SubscriptSizing} from '@angular/material/form-field';\r\n\r\nimport {BaseValueAccessor} from './base-value-accessor';\r\nimport {isEmpty, keys} from 'lodash-es';\r\n\r\nexport interface NgxWidgetsValidationErrorTypes {\r\n required?: string;\r\n selectGlobalPlaceholder?: string;\r\n}\r\n\r\nexport const NGX_WIDGETS_VALIDATION_TRANSLATIONS = new InjectionToken<NgxWidgetsValidationErrorTypes>('NGX_WIDGETS_VALIDATION_TRANSLATIONS');\r\n\r\n@Directive()\r\nexport class BaseInput<T> extends BaseValueAccessor<T> implements OnInit, AfterViewInit, OnChanges {\r\n\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public id!: string;\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public name!: string;\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public label!: string;\r\n public readonly translateParams = input<unknown>();\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public placeholder!: string;\r\n public readonly isDisabled = input<boolean | undefined>(false);\r\n public readonly floatLabel = input<FloatLabelType>('auto');\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public prefixIcon?: string;\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public suffixIcon?: string;\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public suffix?: string;\r\n public readonly formControlName = input<string>();\r\n public readonly validatorMessages = input<{\r\n [key: string]: string;\r\n }>();\r\n public readonly subscriptSizing = input<SubscriptSizing>('fixed');\r\n public readonly hintLabel = input('');\r\n public validatorMessagesArray: { key: string, value: unknown }[] = [];\r\n\r\n constructor(@Optional() @Inject(NGX_WIDGETS_VALIDATION_TRANSLATIONS) protected readonly validationTranslations: NgxWidgetsValidationErrorTypes | any = {}) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.placeholder = this.placeholder === undefined ? this.label : this.placeholder;\r\n if (!this.name) {\r\n this.name = this.formControlName()!;\r\n /*\r\n console.warn(`name attribute is not defined for ${this.formControlName}! Please beware, that using this control multiple\r\n times with the same control name could result in wrong focus, clicking on the label!`);\r\n */\r\n }\r\n // *ngIf seems like does not re-render component when label is used with dynamic value (e.g.: translate pipe). Strange\r\n this.label = this.label || ' ';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['validatorMessages']) {\r\n const validatorMessages = this.validatorMessages();\r\n if (!isEmpty(validatorMessages)) {\r\n this.validatorMessagesArray = keys(validatorMessages).map((key) => ({\r\n key,\r\n value: this.validatorMessages()![key],\r\n }));\r\n }\r\n }\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\n Directive,\n input\n} from '@angular/core';\r\n\r\nimport { BaseInput } from './base-input';\r\n\r\n@Directive()\r\nexport class BaseTextInput<T> extends BaseInput<T> {\r\n\r\n public readonly type = input<('text' | 'password' | 'number' | 'email' | 'tel')>('text');\r\n public readonly maxLength = input<number | undefined>(512);\r\n}\r\n","import {BaseTextInput} from \"./base-text-input\";\nimport {AfterViewInit, Directive, ViewChild, input} from \"@angular/core\";\nimport {NgxMaskDirective} from \"ngx-mask\";\n\n@Directive()\nexport class BaseMaskInput extends BaseTextInput<string> implements AfterViewInit {\n\n public readonly mask = input<string>();\n public readonly showMaskTyped = input(false);\n public readonly dropSpecialCharacters = input<string[] | boolean | readonly string[] | null>();\n public readonly specialCharacters = input<string[]>();\n public readonly placeHolderCharacter = input<string>('_');\n public readonly maskPrefix = input<string>('');\n public readonly maskSuffix = input<string>('');\n\n @ViewChild('maskInput') maskInput!: NgxMaskDirective;\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n if (this.maskInput) {\n this.maskInput._maskService.dropSpecialCharacters = this.dropSpecialCharacters()!;\n this.maskInput['_applyMask']();\n }\n }\n}\n","import { isDevMode } from '@angular/core';\n\nimport { Observable, Subject, takeUntil } from 'rxjs';\nimport { SafeSubscriber } from 'rxjs/internal/Subscriber';\n\n/**\n * Automatically unsubscribe from an Observable when the view is destroyed\n * Tested with checking the \"complete\" event of a subscribe method\n * @description\n * An Annotation that should be used with an Observable typed variable to handle its subscriptions\n * @author gergo.asztalos\n */\nexport function UnsubscribeOnDestroy<ObservableType>(): PropertyDecorator {\n return function (target: any, propertyKey: string | symbol) {\n const ngOnDestroy = target.ngOnDestroy;\n\n const secretKey = `_${<string>propertyKey}$`;\n // Probably with function we could use own context\n const destroyKey = (_this: any) =>\n _this.hasOwnProperty('destroy$') ? 'destroy$' : `${_this.constructor.name}_destroy$`;\n Object.defineProperty(target, secretKey, { enumerable: false, writable: true });\n Object.defineProperty(target, propertyKey, {\n configurable: true,\n enumerable: true,\n get: function() {\n return this[secretKey];\n },\n set: function(newValue: Observable<ObservableType> | SafeSubscriber<ObservableType>) {\n if (!this[destroyKey(this)]) {\n this[destroyKey(this)] = new Subject();\n }\n if (newValue instanceof Observable) {\n this[secretKey] = newValue.pipe(\n takeUntil(this[destroyKey(this)]),\n );\n } else {\n this[secretKey] = newValue;\n }\n },\n });\n\n target.ngOnDestroy = function () {\n if (this[propertyKey] instanceof SafeSubscriber) {\n this[propertyKey].unsubscribe();\n this[secretKey].unsubscribe();\n } else if (this.hasOwnProperty(destroyKey(this))) {\n this[destroyKey(this)].next();\n this[destroyKey(this)].complete();\n }\n delete this[secretKey];\n if (isDevMode()) {\n // eslint-disable-next-line no-console,max-len\n console.debug(`<UnsubscribeOnDestroy> - Observable/Subscription <${<string>propertyKey}> completed in class: ${this.constructor.name}`);\n }\n ngOnDestroy && ngOnDestroy.call(this);\n };\n };\n}\n","import {\n Component,\n forwardRef,\n OnInit,\n ViewEncapsulation,\n output\n} from '@angular/core';\r\nimport { NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport {NgIf} from \"@angular/common\";\r\nimport {NgxMaskDirective} from \"ngx-mask\";\r\nimport {BaseMaskInput} from \"../core/base-mask-input\";\r\n\r\n@Component({\r\n selector: 'gerandon-basic-input',\r\n templateUrl: './basic-input.component.html',\r\n styleUrls: ['./basic-input.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n NgIf,\r\n NgxMaskDirective,\r\n ],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicInputComponent), multi: true },\r\n { provide: NG_ASYNC_VALIDATORS, useExisting: forwardRef(() => BasicInputComponent), multi: true },\r\n ],\r\n})\r\nexport class BasicInputComponent extends BaseMaskInput implements OnInit {\r\n\r\n readonly iconClick = output();\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n this.id = this.id || this.name;\r\n }\r\n}\r\n","<div class=\"basic-input cva-input\">\r\n <mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [hintLabel]=\"hintLabel()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{label}}</mat-label>\r\n }\r\n @if(mask()) {\r\n <input\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n #maskInput=\"ngxMask\"\r\n matInput\r\n [style.padding-right]=\"(suffix || prefixIcon) && '35px'\"\r\n [type]=\"type()\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\"\r\n [mask]=\"mask()\"\r\n [triggerOnMaskChange]=\"true\"\r\n [showMaskTyped]=\"showMaskTyped()\"\r\n [specialCharacters]=\"specialCharacters()!\"\r\n [placeHolderCharacter]=\"placeHolderCharacter()!\"\r\n [prefix]=\"maskPrefix()\"\r\n [suffix]=\"maskSuffix()\"\r\n />\r\n } @else {\r\n <input\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n matInput\r\n [style.padding-right]=\"(suffix || prefixIcon) && '35px'\"\r\n [type]=\"type()\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\"\r\n />\r\n }\r\n @if (prefixIcon) {\r\n <mat-icon matPrefix color=\"accent\">\r\n {{prefixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffixIcon) {\r\n <mat-icon matSuffix color=\"accent\">\r\n {{suffixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffix) {\r\n <span matSuffix style=\"margin-right: 10px\">{{suffix}}</span>\r\n }\r\n\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n\r\n }\r\n @for (error of validatorMessagesArray; track error.key) {\r\n <!--\r\n this @if makes the mat-error to be placed out of subscript-wrapper\r\n that way the error message will be inside the input, not under the field as the others....\r\n\r\n @if (control.errors?.[error.key]) {\r\n }\r\n -->\r\n <mat-error *ngIf=\"control.errors?.[error.key]\">\r\n @if(!!validatorMessages()?.[error.key]) {\r\n {{ error.value }}\r\n } @else if (!!validationTranslations?.[error.key]) {\r\n {{ validationTranslations[error.key] }}\r\n }\r\n </mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import {\r\n Component,\r\n ElementRef,\r\n forwardRef,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n ViewEncapsulation,\r\n input\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport {BaseInput} from '../core/base-input';\r\nimport { isEqual } from 'lodash-es';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport interface SelectOptionType {\r\n label: string;\r\n value: string | number | null | unknown;\r\n}\r\n\r\n@Component({\r\n selector: 'gerandon-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectComponent), multi: true }\r\n ],\r\n imports: [\r\n MatInputModule,\r\n MatSelectModule,\r\n ReactiveFormsModule,\r\n MatTooltipModule,\r\n ],\r\n})\r\nexport class SelectComponent extends BaseInput<unknown> implements OnInit {\r\n\r\n /**\r\n * In this case, an empty option appears that resets the control, to an empty value state\r\n */\r\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public emptyOptionLabel?: string;\r\n public readonly multiple = input<boolean>();\r\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() public options!: SelectOptionType[];\r\n public readonly asyncOptions = input<Observable<SelectOptionType[]>>();\r\n @ViewChildren('optionElements') public optionElements!: QueryList<ElementRef>;\r\n\r\n /**\r\n * Angular Material - Select component comparsion is only '===', does not work with Array values\r\n * https://github.com/angular/components/blob/a07c0758a5ec2eb4de1bb822354be08178c66aa4/src/lib/select/select.ts#L242C48-L242C58\r\n */\r\n public readonly _isEqual = isEqual;\r\n\r\n override ngOnInit() {\r\n this.placeholder = !this.placeholder ? (this.validationTranslations?.selectGlobalPlaceholder || this.label) : this.placeholder;\r\n super.ngOnInit();\r\n this.id = this.id || this.formControlName() || this.name;\r\n const asyncOptions = this.asyncOptions();\r\n if (asyncOptions) {\r\n asyncOptions.pipe(takeUntil(this.destroy$)).subscribe((resp) => {\r\n this.options = resp;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n}\r\n","<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label>{{ label }}</mat-label>\r\n }\r\n <mat-select #inputElement\r\n #input=\"ngForm\"\r\n [multiple]=\"multiple()\"\r\n [placeholder]=\"!floatLabel() ? label : placeholder\"\r\n [formControl]=\"control\"\r\n [id]=\"id\"\r\n [class.input-disabled]=\"isDisabled() || control.disabled\"\r\n [compareWith]=\"_isEqual\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\">\r\n @if (emptyOptionLabel) {\r\n <mat-option (click)=\"control.reset()\">\r\n {{ emptyOptionLabel }}\r\n </mat-option>\r\n }\r\n @for(option of options; track option) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n @if (suffix) {\r\n <span matSuffix>{{suffix}}</span>\r\n }\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n","import { Component, forwardRef, ViewEncapsulation, input } from '@angular/core';\r\nimport { FormsModule, NG_ASYNC_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {BaseTextInput} from \"../core/base-text-input\";\r\n\r\n@Component({\r\n selector: 'gerandon-textarea-input',\r\n templateUrl: 'textarea-input.component.html',\r\n styleUrls: ['textarea-input.component.scss'],\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [\r\n FormsModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n ReactiveFormsModule,\r\n ],\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextareaInputComponent), multi: true },\r\n { provide: NG_ASYNC_VALIDATORS, useExisting: forwardRef(() => TextareaInputComponent), multi: true },\r\n ],\r\n})\r\nexport class TextareaInputComponent extends BaseTextInput<string> {\r\n\r\n public readonly rows = input(10);\r\n\r\n}\r\n","<div class=\"textarea-input cva-input\">\r\n <mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <textarea\r\n [id]=\"id\"\r\n #inputElement\r\n #input=\"ngForm\"\r\n #autosize=\"cdkTextareaAutosize\"\r\n matInput\r\n cdkTextareaAutosize\r\n [cdkAutosizeMinRows]=\"rows()\"\r\n class=\"w-100 cva-control\"\r\n [attr.disabled]=\"isDisabled() || control.disabled ? '' : null\"\r\n [readonly]=\"isDisabled()\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"control\"\r\n [maxLength]=\"maxLength()\"\r\n [name]=\"name\">\r\n </textarea>\r\n <span class=\"counter\">{{control.value?.length || 0}} / {{ maxLength() }}</span>\r\n @if (prefixIcon) {\r\n <mat-icon matPrefix color=\"accent\">\r\n {{prefixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffixIcon) {\r\n <mat-icon matSuffix color=\"accent\">\r\n {{suffixIcon}}\r\n </mat-icon>\r\n }\r\n @if (suffix) {\r\n <span matSuffix>{{suffix}}</span>\r\n }\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import {COMMA, ENTER} from '@angular/cdk/keycodes';\nimport {AsyncPipe, JsonPipe} from '@angular/common';\nimport {Component, forwardRef, Input, ViewEncapsulation, input, viewChild, ElementRef, OnInit} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\nimport {MatAutocompleteModule, MatAutocompleteSelectedEvent} from '@angular/material/autocomplete';\nimport {MatChipInputEvent, MatChipsModule} from '@angular/material/chips';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {debounceTime, map, Observable, of, Subject, switchMap, tap} from 'rxjs';\nimport {BaseInput} from \"../core/base-input\";\nimport {MatError, MatFormField, MatLabel} from \"@angular/material/form-field\";\nimport {MatInput} from \"@angular/material/input\";\nimport {find, isEqual} from \"lodash-es\";\n\n@Component({\n selector: 'gerandon-basic-chips',\n templateUrl: 'basic-chips.component.html',\n styleUrls: ['basic-chips.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n providers: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BasicChipsComponent), multi: true}],\n imports: [\n MatChipsModule,\n MatIconModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n AsyncPipe,\n MatFormField,\n MatInput,\n MatLabel,\n MatError,\n ],\n})\nexport class BasicChipsComponent<T> extends BaseInput<T[]> implements OnInit {\n\n public readonly tsFilterInput = viewChild<ElementRef>('inputElement');\n public readonly asyncFilterFn = input<(value: string) => Observable<T[]>>();\n public readonly asyncOptions = input<Observable<T[]>>();\n public readonly startTypingLabel = input('Kezdjen el gépelni...');\n public readonly emptyListLabel = input('Nincs megjeleníthető elem!');\n /**\n * How much character you need to type before triggering search\n */\n public readonly startAsyncFnAt = input<number>(1);\n // TODO: Skipped for migration because:\n // This input is used in a control flow expression (e.g. `@if` or `*ngIf`)\n // and migrating would break narrowing currently.\n @Input() public labelProperty?: keyof T;\n public readonly separatorKeysCodes = [ENTER, COMMA] as const;\n public filterOptions$?: Observable<T[]>;\n protected _hintLabel!: string;\n private readonly inputChange = new Subject<string>();\n\n override ngOnInit() {\n super.ngOnInit();\n this._hintLabel = this.hintLabel();\n if (this.asyncFilterFn()) {\n this.filterOptions$ = this.inputChange.pipe(\n debounceTime(300),\n switchMap((value) => {\n if (value && value.length >= this.startAsyncFnAt()) {\n return this.asyncFilterFn()!(value).pipe(\n map((responseList) => {\n return responseList.filter((responseListItem) => {\n return !find(this.control.value, (controlAct) => isEqual(controlAct, responseListItem));\n })\n })\n );\n }\n return of([]);\n }),\n tap((responseList) => {\n if (!this.tsFilterInput()?.nativeElement.value && !this.control.value) {\n this._hintLabel = 'Kezdjen el gépelni...';\n } else {\n this._hintLabel = !responseList.length ? this.emptyListLabel() : '';\n }\n })\n )\n } else {\n this.filterOptions$ = this.asyncOptions();\n }\n }\n\n filter() {\n const filterValue = this.tsFilterInput()!.nativeElement.value;\n this.inputChange.next(filterValue);\n }\n\n remove(item: T) {\n const values: T[] = this.control.value;\n const index = values.indexOf(item);\n if (index >= 0) {\n values.splice(index, 1);\n this.control.setValue(values);\n }\n\n this.mark();\n }\n\n add(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value) {\n this.updateValue(value as T);\n }\n event.chipInput!.clear();\n\n this.mark();\n }\n\n selected(event: MatAutocompleteSelectedEvent): void {\n if (!this.control.value?.includes(event.option.value)) {\n this.updateValue(<T>event.option.value);\n }\n this.inputElement.nativeElement.value = '';\n\n this.mark();\n }\n\n private updateValue(value: T) {\n this.control.setValue([\n ...(this.control.value || []),\n value,\n ]);\n }\n\n private mark() {\n if (!this.control.touched) {\n this.control.markAsTouched();\n this.control.markAsDirty();\n }\n }\n}\n","<mat-form-field appearance=\"outline\" [subscriptSizing]=\"subscriptSizing()\" [hintLabel]=\"_hintLabel\" [floatLabel]=\"floatLabel()\">\r\n @if (label) {\r\n <mat-label [class.disabled]=\"isDisabled()\">{{ label }}</mat-label>\r\n }\r\n <mat-chip-grid #chipGrid class=\"w-100\">\r\n @for(item of control.value; track item) {\r\n <mat-chip-row (removed)=\"remove(item)\" color=\"primary\" highlighted>\r\n {{ labelProperty ? item[labelProperty] : item}}\r\n <button matChipRemove [attr.aria-label]=\"(labelProperty ? item[labelProperty] : item) + ' eltávolítása'\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n <input #inputElement\r\n matInput\r\n [placeholder]=\"placeholder || label\"\r\n [matAutocomplete]=\"auto\"\r\n (input)=\"filter()\"\r\n [matChipInputFor]=\"chipGrid\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"!labelProperty && add($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\">\r\n @for (filterItem of filterOptions$ | async; track filterItem) {\r\n <mat-option [value]=\"filterItem\">\r\n {{labelProperty ? filterItem[labelProperty] : filterItem}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-chip-grid>\r\n <input #input=\"ngForm\" [style.display]=\"'none'\" [formControl]=\"control\" />\r\n @if (control.errors?.['server']) {\r\n <mat-error>{{ control.errors?.['server'] }}</mat-error>\r\n } @else if (control.errors?.['required'] && validationTranslations.required) {\r\n <mat-error>{{ validationTranslations.required }}</mat-error>\r\n } @else {\r\n @for (error of validatorMessagesArray; track error) {\r\n <mat-error>{{ error.value }}</mat-error>\r\n }\r\n }\r\n</mat-form-field>\r\n","/*\n * Public API Surface of ngx-widgets\n */\n\nexport * from './lib/core/base-value-accessor';\nexport * from './lib/core/base-input';\nexport * from './lib/core/base-text-input';\nexport * from './lib/core/base-mask-input';\nexport * from './lib/core/component-unsubscribe';\n\nexport * from './lib/basic-input/basic-input.component';\nexport * from './lib/select/select.component';\nexport * from './lib/textarea-input/textarea-input.component';\nexport * from './lib/basic-chips/basic-chips.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1","i2","i3","i4","i5"],"mappings":"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"}
|
@@ -1,17 +1,31 @@
|
|
1
|
+
import { ElementRef, OnInit } from '@angular/core';
|
1
2
|
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
|
2
3
|
import { MatChipInputEvent } from '@angular/material/chips';
|
3
4
|
import { Observable } from 'rxjs';
|
4
5
|
import { BaseInput } from "../core/base-input";
|
5
6
|
import * as i0 from "@angular/core";
|
6
|
-
export declare class BasicChipsComponent<T> extends BaseInput<T[]> {
|
7
|
+
export declare class BasicChipsComponent<T> extends BaseInput<T[]> implements OnInit {
|
8
|
+
readonly tsFilterInput: import("@angular/core").Signal<ElementRef<any> | undefined>;
|
9
|
+
readonly asyncFilterFn: import("@angular/core").InputSignal<((value: string) => Observable<T[]>) | undefined>;
|
7
10
|
readonly asyncOptions: import("@angular/core").InputSignal<Observable<T[]> | undefined>;
|
11
|
+
readonly startTypingLabel: import("@angular/core").InputSignal<string>;
|
12
|
+
readonly emptyListLabel: import("@angular/core").InputSignal<string>;
|
13
|
+
/**
|
14
|
+
* How much character you need to type before triggering search
|
15
|
+
*/
|
16
|
+
readonly startAsyncFnAt: import("@angular/core").InputSignal<number>;
|
8
17
|
labelProperty?: keyof T;
|
9
18
|
readonly separatorKeysCodes: readonly [13, 188];
|
19
|
+
filterOptions$?: Observable<T[]>;
|
20
|
+
protected _hintLabel: string;
|
21
|
+
private readonly inputChange;
|
22
|
+
ngOnInit(): void;
|
23
|
+
filter(): void;
|
10
24
|
remove(item: T): void;
|
11
25
|
add(event: MatChipInputEvent): void;
|
12
26
|
selected(event: MatAutocompleteSelectedEvent): void;
|
13
27
|
private updateValue;
|
14
28
|
private mark;
|
15
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<BasicChipsComponent<any>, never>;
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BasicChipsComponent<any>, "gerandon-basic-chips", never, { "asyncOptions": { "alias": "asyncOptions"; "required": false; "isSignal": true; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; }, {}, never, never, true, never>;
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BasicChipsComponent<any>, "gerandon-basic-chips", never, { "asyncFilterFn": { "alias": "asyncFilterFn"; "required": false; "isSignal": true; }; "asyncOptions": { "alias": "asyncOptions"; "required": false; "isSignal": true; }; "startTypingLabel": { "alias": "startTypingLabel"; "required": false; "isSignal": true; }; "emptyListLabel": { "alias": "emptyListLabel"; "required": false; "isSignal": true; }; "startAsyncFnAt": { "alias": "startAsyncFnAt"; "required": false; "isSignal": true; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; }, {}, never, never, true, never>;
|
17
31
|
}
|