special-forms 16.2.1 → 17.0.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.
- package/esm2022/lib/components/index.mjs +13 -13
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.component.mjs +75 -75
- package/esm2022/lib/components/special-autocomplete/special-autocomplete.interface.mjs +2 -2
- package/esm2022/lib/components/special-checkbox/special-checkbox.component.mjs +39 -36
- package/esm2022/lib/components/special-checkbox/special-checkbox.interface.mjs +3 -2
- package/esm2022/lib/components/special-datepicker/special-datepicker.component.mjs +43 -40
- package/esm2022/lib/components/special-datepicker/special-datepicker.interface.mjs +3 -2
- package/esm2022/lib/components/special-dropdown/special-dropdown.component.mjs +48 -47
- package/esm2022/lib/components/special-dropdown/special-dropdown.interface.mjs +3 -2
- package/esm2022/lib/components/special-form/special-form.component.mjs +99 -99
- package/esm2022/lib/components/special-form/special-form.module.mjs +78 -78
- package/esm2022/lib/components/special-input/special-input.component.mjs +56 -56
- package/esm2022/lib/components/special-input/special-input.interface.mjs +2 -2
- package/esm2022/lib/components/special-label/special-label.component.mjs +27 -27
- package/esm2022/lib/components/special-label/special-label.interface.mjs +2 -2
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +97 -97
- package/esm2022/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +2 -2
- package/esm2022/lib/components/special-richtext/special-richtext.component.mjs +54 -45
- package/esm2022/lib/components/special-richtext/special-richtext.interface.mjs +3 -2
- package/esm2022/lib/components/special-text-area/special-text-area.component.mjs +44 -44
- package/esm2022/lib/components/special-text-area/special-text-area.interface.mjs +2 -2
- package/esm2022/lib/components/special-upload/special-upload.component.mjs +84 -84
- package/esm2022/lib/components/special-upload/special-upload.interface.mjs +2 -2
- package/esm2022/lib/core/aux-data/control-types.enum.mjs +17 -17
- package/esm2022/lib/core/aux-data/input-types.mjs +15 -15
- package/esm2022/lib/core/forms/special-forms.mjs +240 -260
- package/esm2022/lib/core/interfaces/field-basics.interfaces.mjs +1 -1
- package/esm2022/lib/core/interfaces/form.interfaces.mjs +2 -2
- package/esm2022/lib/core/interfaces/special-control.interface.mjs +2 -2
- package/esm2022/lib/core/masks/currency.mask.mjs +10 -10
- package/esm2022/lib/core/masks/index.mjs +2 -2
- package/esm2022/lib/core/masks/number.mask.mjs +2 -2
- package/esm2022/lib/core/pipes/controls-list-pipe/controls-list.pipe.mjs +17 -17
- package/esm2022/lib/core/pipes/error-message-pipe/error.pipe.mjs +22 -22
- package/esm2022/lib/core/pipes/index.mjs +3 -3
- package/esm2022/lib/core/pipes/text-by-function/text-by-function.pipe.mjs +21 -21
- package/esm2022/lib/core/services/error-state-matcher/error-matcher.mjs +12 -12
- package/esm2022/lib/core/services/index.mjs +3 -3
- package/esm2022/lib/core/services/special-form-builder/special-form-builder.service.mjs +156 -156
- package/esm2022/public-api.mjs +12 -12
- package/esm2022/special-forms.mjs +4 -4
- package/fesm2022/special-forms.mjs +1018 -1024
- package/fesm2022/special-forms.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/index.d.ts +23 -23
- package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +19 -19
- package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +19 -18
- package/lib/components/special-checkbox/special-checkbox.component.d.ts +12 -11
- package/lib/components/special-checkbox/special-checkbox.interface.d.ts +13 -12
- package/lib/components/special-datepicker/special-datepicker.component.d.ts +13 -12
- package/lib/components/special-datepicker/special-datepicker.interface.d.ts +12 -11
- package/lib/components/special-dropdown/special-dropdown.component.d.ts +11 -11
- package/lib/components/special-dropdown/special-dropdown.interface.d.ts +17 -16
- package/lib/components/special-form/special-form.component.d.ts +31 -31
- package/lib/components/special-form/special-form.module.d.ts +20 -20
- package/lib/components/special-input/special-input.component.d.ts +15 -15
- package/lib/components/special-input/special-input.interface.d.ts +17 -16
- package/lib/components/special-label/special-label.component.d.ts +13 -13
- package/lib/components/special-label/special-label.interface.d.ts +13 -12
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +22 -22
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +19 -18
- package/lib/components/special-richtext/special-richtext.component.d.ts +17 -17
- package/lib/components/special-richtext/special-richtext.interface.d.ts +10 -9
- package/lib/components/special-text-area/special-text-area.component.d.ts +13 -13
- package/lib/components/special-text-area/special-text-area.interface.d.ts +8 -7
- package/lib/components/special-upload/special-upload.component.d.ts +21 -21
- package/lib/components/special-upload/special-upload.interface.d.ts +12 -11
- package/lib/core/aux-data/control-types.enum.d.ts +16 -16
- package/lib/core/aux-data/input-types.d.ts +2 -2
- package/lib/core/forms/special-forms.d.ts +108 -123
- package/lib/core/interfaces/field-basics.interfaces.d.ts +22 -22
- package/lib/core/interfaces/form.interfaces.d.ts +58 -55
- package/lib/core/interfaces/special-control.interface.d.ts +4 -4
- package/lib/core/masks/currency.mask.d.ts +1 -1
- package/lib/core/masks/index.d.ts +2 -2
- package/lib/core/masks/number.mask.d.ts +1 -1
- package/lib/core/pipes/controls-list-pipe/controls-list.pipe.d.ts +11 -11
- package/lib/core/pipes/error-message-pipe/error.pipe.d.ts +12 -12
- package/lib/core/pipes/index.d.ts +3 -3
- package/lib/core/pipes/text-by-function/text-by-function.pipe.d.ts +7 -7
- package/lib/core/services/error-state-matcher/error-matcher.d.ts +8 -8
- package/lib/core/services/index.d.ts +3 -3
- package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +25 -25
- package/lib/styles/tailwind-final.scss +31 -0
- package/package.json +9 -9
- package/public-api.d.ts +9 -9
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { debounceTime } from 'rxjs/operators';
|
|
3
|
-
import { MatAutocompleteModule, } from '@angular/material/autocomplete';
|
|
4
|
-
import { Subscription } from 'rxjs';
|
|
5
|
-
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatInputModule } from '@angular/material/input';
|
|
7
|
-
import { CommonModule } from '@angular/common';
|
|
8
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
-
import { MatChipsModule } from '@angular/material/chips';
|
|
11
|
-
import { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "@angular/material/input";
|
|
14
|
-
import * as i2 from "@angular/material/form-field";
|
|
15
|
-
import * as i3 from "@angular/common";
|
|
16
|
-
import * as i4 from "@angular/material/autocomplete";
|
|
17
|
-
import * as i5 from "@angular/material/core";
|
|
18
|
-
import * as i6 from "@angular/material/icon";
|
|
19
|
-
import * as i7 from "@angular/forms";
|
|
20
|
-
import * as i8 from "@angular/material/button";
|
|
21
|
-
import * as i9 from "@angular/material/chips";
|
|
22
|
-
export class SpecialMultipleAutocompleteComponent {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.subs = new Subscription();
|
|
25
|
-
this.internalControl = new FormControl();
|
|
26
|
-
this.configValue = (item) => {
|
|
27
|
-
if (!item)
|
|
28
|
-
return '';
|
|
29
|
-
const fieldName = this.control.settings.fieldName;
|
|
30
|
-
return fieldName instanceof Function ? fieldName(item) : item[fieldName];
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
this.init();
|
|
35
|
-
}
|
|
36
|
-
get settings() {
|
|
37
|
-
return this.control.settings;
|
|
38
|
-
}
|
|
39
|
-
init() {
|
|
40
|
-
this.subs.add(this.internalControl.valueChanges
|
|
41
|
-
.pipe(debounceTime(500))
|
|
42
|
-
.subscribe((value) => {
|
|
43
|
-
if (typeof value === 'string') {
|
|
44
|
-
this.control.settings.getData(value, this.control);
|
|
45
|
-
}
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
optionSelected(data) {
|
|
49
|
-
const newItem = data.option.value;
|
|
50
|
-
this.internalControl.reset();
|
|
51
|
-
this.control.setValue([
|
|
52
|
-
...(this.control.value || []).filter((item) => item[this.control.settings.fieldId] !==
|
|
53
|
-
newItem[this.control.settings.fieldId]),
|
|
54
|
-
newItem,
|
|
55
|
-
]);
|
|
56
|
-
if (this.settings.onSelect)
|
|
57
|
-
this.settings.onSelect(newItem);
|
|
58
|
-
}
|
|
59
|
-
iconClick(event) {
|
|
60
|
-
if (this.settings.iconAction) {
|
|
61
|
-
this.settings.iconAction(this.control.value);
|
|
62
|
-
event.stopPropagation();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
remove(value) {
|
|
66
|
-
let currentValues = Array.from(this.control.value);
|
|
67
|
-
const index = currentValues.indexOf(value);
|
|
68
|
-
if (index > -1) {
|
|
69
|
-
currentValues.splice(index, 1);
|
|
70
|
-
const value = currentValues;
|
|
71
|
-
this.control.markAsDirty();
|
|
72
|
-
this.control.setValue(value);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
ngOnDestroy() {
|
|
76
|
-
this.subs.unsubscribe();
|
|
77
|
-
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
80
|
-
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
82
|
-
type: Component,
|
|
83
|
-
args: [{ standalone: true, selector: 'sp-multiple-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
84
|
-
MatInputModule,
|
|
85
|
-
CommonModule,
|
|
86
|
-
MatAutocompleteModule,
|
|
87
|
-
MatIconModule,
|
|
88
|
-
ReactiveFormsModule,
|
|
89
|
-
MatButtonModule,
|
|
90
|
-
ErrorMessagePipe,
|
|
91
|
-
TextByFunctionPipe,
|
|
92
|
-
MatChipsModule,
|
|
93
|
-
], template: "<div\r\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required && !control.value?.length\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"internalControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-chip-listbox>\r\n <mat-chip\r\n *ngFor=\"let chip of control.value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(chip)\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
94
|
-
}], ctorParameters:
|
|
95
|
-
type: Input
|
|
96
|
-
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFr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LENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQVFELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBdEVVLG9DQUFvQztrR0FBcEMsb0NBQW9DLG9IQ3BDakQsdzdFQWdGQSxrRkR2REksY0FBYyw2aUNBQ2QsWUFBWSxvVEFDWixxQkFBcUIsZ2NBQ3JCLGFBQWEsbUxBQ2IsbUJBQW1CLHN5QkFDbkIsZUFBZSx1TEFDZixnQkFBZ0IsZ0RBQ2hCLGtCQUFrQixzREFDbEIsY0FBYzs7MkZBR0wsb0NBQW9DO2tCQWxCaEQsU0FBUztpQ0FDSSxJQUFJLFlBQ04sMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmOzBFQUdRLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3BlY2lhbEZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcclxuaW1wb3J0IHsgSU11bHRpcGxlQXV0b2NvbXBsZXRlU2V0dGluZ3MgfSBmcm9tICcuL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5cclxuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUsIFRleHRCeUZ1bmN0aW9uUGlwZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ3NwLW11bHRpcGxlLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBFcnJvck1lc3NhZ2VQaXBlLFxyXG4gICAgVGV4dEJ5RnVuY3Rpb25QaXBlLFxyXG4gICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncz47XHJcblxyXG4gIHN1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgaW50ZXJuYWxDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBzZXR0aW5ncygpOiBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMuc3Vicy5hZGQoXHJcbiAgICAgIHRoaXMuaW50ZXJuYWxDb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0dGluZ3MuZ2V0RGF0YSh2YWx1ZSwgdGhpcy5jb250cm9sKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wdGlvblNlbGVjdGVkKGRhdGE6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IG5ld0l0ZW0gPSBkYXRhLm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuaW50ZXJuYWxDb250cm9sLnJlc2V0KCk7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoW1xyXG4gICAgICAuLi4odGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKS5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT5cclxuICAgICAgICAgIGl0ZW1bdGhpcy5jb250cm9sLnNldHRpbmdzLmZpZWxkSWRdICE9PVxyXG4gICAgICAgICAgbmV3SXRlbVt0aGlzLmNvbnRyb2wuc2V0dGluZ3MuZmllbGRJZF1cclxuICAgICAgKSxcclxuICAgICAgbmV3SXRlbSxcclxuICAgIF0pO1xyXG5cclxuICAgIGlmICh0aGlzLnNldHRpbmdzLm9uU2VsZWN0KSB0aGlzLnNldHRpbmdzLm9uU2VsZWN0KG5ld0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgaWNvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuaWNvbkFjdGlvbikge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmljb25BY3Rpb24odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmUodmFsdWU6IGFueVtdKTogdm9pZCB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlcyA9IEFycmF5LmZyb20odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudFZhbHVlcy5pbmRleE9mKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICBjdXJyZW50VmFsdWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY3VycmVudFZhbHVlcztcclxuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25maWdWYWx1ZSA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmICghaXRlbSkgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5jb250cm9sLnNldHRpbmdzLmZpZWxkTmFtZTtcclxuICAgIHJldHVybiBmaWVsZE5hbWUgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IGZpZWxkTmFtZShpdGVtKSA6IGl0ZW1bZmllbGROYW1lXTtcclxuICB9O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJzcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZSB3LWZ1bGwgbWItMyB7eyBjb250cm9sLnN0eWxlQ2xhc3NlcyB9fVwiXHJcbiAgW2lkXT1cImNvbnRyb2wuZWxlbWVudElkXCJcclxuICAqbmdJZj1cImNvbnRyb2wgJiYgIWNvbnRyb2wuaGlkZGVuXCJcclxuPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiY29udHJvbC5sYWJlbCA/ICdvdXRsaW5lJyA6ICdmaWxsJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbnRyb2wubGFiZWxcIj5cclxuICAgICAge3sgY29udHJvbC5sYWJlbCB9fVxyXG4gICAgPC9tYXQtbGFiZWw+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiY29udHJvbC5yZXF1aXJlZCAmJiAhY29udHJvbC52YWx1ZT8ubGVuZ3RoXCJcclxuICAgICAgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZE9ubHlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJpbnRlcm5hbENvbnRyb2xcIlxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxyXG4gICAgLz5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImNvbmZpZ1ZhbHVlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9wdGlvblNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2V0dGluZ3M/LnNvdXJjZSB8IGFzeW5jXCJcclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAqbmdJZj1cInNldHRpbmdzLmZpZWxkSW1hZ2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInctOCBwci0yXCJcclxuICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgW3NyY109XCJvcHRpb24gfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGRJbWFnZVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7IG9wdGlvbiB8IHRleHRCeUZ1bmN0aW9uOiBzZXR0aW5ncy5maWVsZE5hbWUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiY29udHJvbC5pY29uXCIgbWF0UHJlZml4Pnt7IGNvbnRyb2wuaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2V0dGluZ3MuaWNvblwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgKGNsaWNrKT1cImljb25DbGljaygkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPlxyXG4gICAgICAgIHt7IHNldHRpbmdzLmljb24gfX1cclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPG1hdC1oaW50Pnt7IGNvbnRyb2wudG9vbHRpcCB9fTwvbWF0LWhpbnQ+XHJcbiAgICA8bWF0LWVycm9yPlxyXG4gICAgICB7eyBjb250cm9sLmVycm9ycyB8IGVycm9yTWVzc2FnZTogY29udHJvbC5lcnJvck1lc3NhZ2VzIH19XHJcbiAgICA8L21hdC1lcnJvcj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICA8bWF0LWNoaXAtbGlzdGJveD5cclxuICAgIDxtYXQtY2hpcFxyXG4gICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sLnZhbHVlXCJcclxuICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcclxuICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKGNoaXApXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5ncy5maWVsZEltYWdlXCJcclxuICAgICAgICAgIGNsYXNzPVwidy04IHByLTJcIlxyXG4gICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgIFtzcmNdPVwiY2hpcCB8IHRleHRCeUZ1bmN0aW9uOiBzZXR0aW5ncy5maWVsZEltYWdlXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIHt7IGNoaXAgfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGROYW1lIH19XHJcbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jaGlwPlxyXG4gIDwvbWF0LWNoaXAtbGlzdGJveD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { debounceTime } from 'rxjs/operators';
|
|
3
|
+
import { MatAutocompleteModule, } from '@angular/material/autocomplete';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { MatInputModule } from '@angular/material/input';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
11
|
+
import { ErrorMessagePipe, TextByFunctionPipe } from '../../core/pipes';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/material/input";
|
|
14
|
+
import * as i2 from "@angular/material/form-field";
|
|
15
|
+
import * as i3 from "@angular/common";
|
|
16
|
+
import * as i4 from "@angular/material/autocomplete";
|
|
17
|
+
import * as i5 from "@angular/material/core";
|
|
18
|
+
import * as i6 from "@angular/material/icon";
|
|
19
|
+
import * as i7 from "@angular/forms";
|
|
20
|
+
import * as i8 from "@angular/material/button";
|
|
21
|
+
import * as i9 from "@angular/material/chips";
|
|
22
|
+
export class SpecialMultipleAutocompleteComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.subs = new Subscription();
|
|
25
|
+
this.internalControl = new FormControl();
|
|
26
|
+
this.configValue = (item) => {
|
|
27
|
+
if (!item)
|
|
28
|
+
return '';
|
|
29
|
+
const fieldName = this.control.settings.fieldName;
|
|
30
|
+
return fieldName instanceof Function ? fieldName(item) : item[fieldName];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.init();
|
|
35
|
+
}
|
|
36
|
+
get settings() {
|
|
37
|
+
return this.control.settings;
|
|
38
|
+
}
|
|
39
|
+
init() {
|
|
40
|
+
this.subs.add(this.internalControl.valueChanges
|
|
41
|
+
.pipe(debounceTime(500))
|
|
42
|
+
.subscribe((value) => {
|
|
43
|
+
if (typeof value === 'string') {
|
|
44
|
+
this.control.settings.getData(value, this.control);
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
optionSelected(data) {
|
|
49
|
+
const newItem = data.option.value;
|
|
50
|
+
this.internalControl.reset();
|
|
51
|
+
this.control.setValue([
|
|
52
|
+
...(this.control.value || []).filter((item) => item[this.control.settings.fieldId] !==
|
|
53
|
+
newItem[this.control.settings.fieldId]),
|
|
54
|
+
newItem,
|
|
55
|
+
]);
|
|
56
|
+
if (this.settings.onSelect)
|
|
57
|
+
this.settings.onSelect(newItem);
|
|
58
|
+
}
|
|
59
|
+
iconClick(event) {
|
|
60
|
+
if (this.settings.iconAction) {
|
|
61
|
+
this.settings.iconAction(this.control.value);
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
remove(value) {
|
|
66
|
+
let currentValues = Array.from(this.control.value);
|
|
67
|
+
const index = currentValues.indexOf(value);
|
|
68
|
+
if (index > -1) {
|
|
69
|
+
currentValues.splice(index, 1);
|
|
70
|
+
const value = currentValues;
|
|
71
|
+
this.control.markAsDirty();
|
|
72
|
+
this.control.setValue(value);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
this.subs.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialMultipleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: SpecialMultipleAutocompleteComponent, isStandalone: true, selector: "sp-multiple-autocomplete", inputs: { control: "control" }, ngImport: i0, template: "<div\r\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required && !control.value?.length\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"internalControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-chip-listbox>\r\n <mat-chip\r\n *ngFor=\"let chip of control.value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(chip)\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i4.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: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: TextByFunctionPipe, name: "textByFunction" }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i9.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i9.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i9.MatChipRemove, selector: "[matChipRemove]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialMultipleAutocompleteComponent, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{ standalone: true, selector: 'sp-multiple-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
84
|
+
MatInputModule,
|
|
85
|
+
CommonModule,
|
|
86
|
+
MatAutocompleteModule,
|
|
87
|
+
MatIconModule,
|
|
88
|
+
ReactiveFormsModule,
|
|
89
|
+
MatButtonModule,
|
|
90
|
+
ErrorMessagePipe,
|
|
91
|
+
TextByFunctionPipe,
|
|
92
|
+
MatChipsModule,
|
|
93
|
+
], template: "<div\r\n class=\"special-multiple-autocomplete w-full mb-3 {{ control.styleClasses }}\"\r\n [id]=\"control.elementId\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n >\r\n <mat-label *ngIf=\"control.label\">\r\n {{ control.label }}\r\n </mat-label>\r\n <input\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [required]=\"control.required && !control.value?.length\"\r\n [readonly]=\"control.readOnly\"\r\n [placeholder]=\"control.placeholder\"\r\n matInput\r\n [formControl]=\"internalControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"configValue\"\r\n (optionSelected)=\"optionSelected($event)\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of settings?.source | async\"\r\n [value]=\"option\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"option | textByFunction: settings.fieldImage\"\r\n />\r\n <span>\r\n {{ option | textByFunction: settings.fieldName }}\r\n </span>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }}</mat-icon>\r\n <button\r\n *ngIf=\"settings.icon\"\r\n mat-icon-button\r\n matSuffix\r\n (click)=\"iconClick($event)\"\r\n >\r\n <mat-icon>\r\n {{ settings.icon }}\r\n </mat-icon>\r\n </button>\r\n <mat-hint>{{ control.tooltip }}</mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-chip-listbox>\r\n <mat-chip\r\n *ngFor=\"let chip of control.value\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(chip)\"\r\n >\r\n <div class=\"flex items-center\">\r\n <img\r\n *ngIf=\"settings.fieldImage\"\r\n class=\"w-8 pr-2\"\r\n alt=\"\"\r\n [src]=\"chip | textByFunction: settings.fieldImage\"\r\n />\r\n {{ chip | textByFunction: settings.fieldName }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </div>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
94
|
+
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}] } });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFr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LENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQVFELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBdEVVLG9DQUFvQztrR0FBcEMsb0NBQW9DLG9IQ3BDakQsdzdFQWdGQSxrRkR2REksY0FBYyw2aUNBQ2QsWUFBWSxvVEFDWixxQkFBcUIsdzFCQUNyQixhQUFhLG1MQUNiLG1CQUFtQixzeUJBQ25CLGVBQWUsdUlBQ2YsZ0JBQWdCLGdEQUNoQixrQkFBa0Isc0RBQ2xCLGNBQWM7OzJGQUdMLG9DQUFvQztrQkFsQmhELFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsY0FBYztxQkFDZjt3REFHUSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IElNdWx0aXBsZUF1dG9jb21wbGV0ZUZpZWxkLCBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcblxyXG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlUGlwZSwgVGV4dEJ5RnVuY3Rpb25QaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnc3AtbXVsdGlwbGUtYXV0b2NvbXBsZXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZVBpcGUsXHJcbiAgICBUZXh0QnlGdW5jdGlvblBpcGUsXHJcbiAgICBNYXRDaGlwc01vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbE11bHRpcGxlQXV0b2NvbXBsZXRlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250cm9sITogU3BlY2lhbEZvcm1Db250cm9sPElNdWx0aXBsZUF1dG9jb21wbGV0ZUZpZWxkPjtcclxuXHJcbiAgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBpbnRlcm5hbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNldHRpbmdzKCk6IElNdWx0aXBsZUF1dG9jb21wbGV0ZVNldHRpbmdzPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5zZXR0aW5ncztcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnMuYWRkKFxyXG4gICAgICB0aGlzLmludGVybmFsQ29udHJvbC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldHRpbmdzLmdldERhdGEodmFsdWUsIHRoaXMuY29udHJvbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvcHRpb25TZWxlY3RlZChkYXRhOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCBuZXdJdGVtID0gZGF0YS5vcHRpb24udmFsdWU7XHJcbiAgICB0aGlzLmludGVybmFsQ29udHJvbC5yZXNldCgpO1xyXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFtcclxuICAgICAgLi4uKHRoaXMuY29udHJvbC52YWx1ZSB8fCBbXSkuZmlsdGVyKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+XHJcbiAgICAgICAgICBpdGVtW3RoaXMuY29udHJvbC5zZXR0aW5ncy5maWVsZElkXSAhPT1cclxuICAgICAgICAgIG5ld0l0ZW1bdGhpcy5jb250cm9sLnNldHRpbmdzLmZpZWxkSWRdXHJcbiAgICAgICksXHJcbiAgICAgIG5ld0l0ZW0sXHJcbiAgICBdKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vblNlbGVjdCkgdGhpcy5zZXR0aW5ncy5vblNlbGVjdChuZXdJdGVtKTtcclxuICB9XHJcblxyXG4gIGljb25DbGljayhldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnNldHRpbmdzLmljb25BY3Rpb24pIHtcclxuICAgICAgdGhpcy5zZXR0aW5ncy5pY29uQWN0aW9uKHRoaXMuY29udHJvbC52YWx1ZSk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZXMgPSBBcnJheS5mcm9tKHRoaXMuY29udHJvbC52YWx1ZSk7XHJcbiAgICBjb25zdCBpbmRleCA9IGN1cnJlbnRWYWx1ZXMuaW5kZXhPZih2YWx1ZSk7XHJcblxyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgY3VycmVudFZhbHVlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGN1cnJlbnRWYWx1ZXM7XHJcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uZmlnVmFsdWUgPSAoaXRlbTogYW55KSA9PiB7XHJcbiAgICBpZiAoIWl0ZW0pIHJldHVybiAnJztcclxuICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMuY29udHJvbC5zZXR0aW5ncy5maWVsZE5hbWU7XHJcbiAgICByZXR1cm4gZmllbGROYW1lIGluc3RhbmNlb2YgRnVuY3Rpb24gPyBmaWVsZE5hbWUoaXRlbSkgOiBpdGVtW2ZpZWxkTmFtZV07XHJcbiAgfTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUgdy1mdWxsIG1iLTMge3sgY29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gIFtpZF09XCJjb250cm9sLmVsZW1lbnRJZFwiXHJcbiAgKm5nSWY9XCJjb250cm9sICYmICFjb250cm9sLmhpZGRlblwiXHJcbj5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIGNsYXNzPVwidy1mdWxsXCJcclxuICAgIFthcHBlYXJhbmNlXT1cImNvbnRyb2wubGFiZWwgPyAnb3V0bGluZScgOiAnZmlsbCdcIlxyXG4gID5cclxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb250cm9sLmxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnRyb2wubGFiZWwgfX1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImNvbnRyb2wucmVxdWlyZWQgJiYgIWNvbnRyb2wudmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgIFtyZWFkb25seV09XCJjb250cm9sLnJlYWRPbmx5XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxDb250cm9sXCJcclxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgIFtkaXNwbGF5V2l0aF09XCJjb25maWdWYWx1ZVwiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvcHRpb25TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNldHRpbmdzPy5zb3VyY2UgfCBhc3luY1wiXHJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5ncy5maWVsZEltYWdlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LTggcHItMlwiXHJcbiAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgIFtzcmNdPVwib3B0aW9uIHwgdGV4dEJ5RnVuY3Rpb246IHNldHRpbmdzLmZpZWxkSW1hZ2VcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24gfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGROYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImNvbnRyb2wuaWNvblwiIG1hdFByZWZpeD57eyBjb250cm9sLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNldHRpbmdzLmljb25cIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgbWF0U3VmZml4XHJcbiAgICAgIChjbGljayk9XCJpY29uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5cclxuICAgICAgICB7eyBzZXR0aW5ncy5pY29uIH19XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxtYXQtaGludD57eyBjb250cm9sLnRvb2x0aXAgfX08L21hdC1oaW50PlxyXG4gICAgPG1hdC1lcnJvcj5cclxuICAgICAge3sgY29udHJvbC5lcnJvcnMgfCBlcnJvck1lc3NhZ2U6IGNvbnRyb2wuZXJyb3JNZXNzYWdlcyB9fVxyXG4gICAgPC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgPG1hdC1jaGlwLWxpc3Rib3g+XHJcbiAgICA8bWF0LWNoaXBcclxuICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgY29udHJvbC52YWx1ZVwiXHJcbiAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgIChyZW1vdmVkKT1cInJlbW92ZShjaGlwKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3MuZmllbGRJbWFnZVwiXHJcbiAgICAgICAgICBjbGFzcz1cInctOCBwci0yXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICBbc3JjXT1cImNoaXAgfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3MuZmllbGRJbWFnZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB7eyBjaGlwIHwgdGV4dEJ5RnVuY3Rpb246IHNldHRpbmdzLmZpZWxkTmFtZSB9fVxyXG4gICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2hpcD5cclxuICA8L21hdC1jaGlwLWxpc3Rib3g+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkRGF0YSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgdHlwZSBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5nczxUPiA9IHtcclxuICBnZXREYXRhOiAocXVlcnk6IHN0cmluZywgY29udHJvbD86IEFic3RyYWN0Q29udHJvbCkgPT4gdm9pZDtcclxuICBzb3VyY2U6IE9ic2VydmFibGU8VFtdPjtcclxuICBmaWVsZElkOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQWN0aW9uPzogKGRhdGE6IFQpID0+IHZvaWQ7XHJcbiAgb25TZWxlY3Q/OiAoZGF0YTogVCkgPT4gdm9pZDtcclxuICBmaWVsZE5hbWU6IHN0cmluZyB8ICgoYT86IFQpID0+IHN0cmluZyk7XHJcbiAgZmllbGRJbWFnZT86IHN0cmluZyB8ICgoYT86IFQpID0+IHN0cmluZyk7XHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElNdWx0aXBsZUF1dG9jb21wbGV0ZUZpZWxkPFQgPSBhbnk+IGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IElNdWx0aXBsZUF1dG9jb21wbGV0ZVNldHRpbmdzPFQ+O1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMubXVsdGlwbGU7XHJcbiAgZGVmYXVsdFZhbHVlOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -1,45 +1,54 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { NgxEditorModule, Editor } from 'ngx-editor';
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import * as
|
|
9
|
-
import * as
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
['
|
|
24
|
-
['
|
|
25
|
-
[
|
|
26
|
-
['
|
|
27
|
-
['
|
|
28
|
-
['
|
|
29
|
-
['
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵ
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { NgxEditorModule, Editor } from 'ngx-editor';
|
|
6
|
+
import { MatInputModule } from '@angular/material/input';
|
|
7
|
+
import { ErrorMessagePipe } from '../../core/pipes';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/common";
|
|
10
|
+
import * as i2 from "@angular/forms";
|
|
11
|
+
import * as i3 from "ngx-editor";
|
|
12
|
+
export class SpecialRichtextComponent {
|
|
13
|
+
set control(control) {
|
|
14
|
+
this.formControl = control;
|
|
15
|
+
if (control.settings.colorPresets)
|
|
16
|
+
this.colorPresets = control.settings.colorPresets;
|
|
17
|
+
this.editor = new Editor();
|
|
18
|
+
}
|
|
19
|
+
constructor() {
|
|
20
|
+
this.colorPresets = ['red', 'yellow', 'green', 'blue', 'black'];
|
|
21
|
+
this.toolbar = [
|
|
22
|
+
// default value
|
|
23
|
+
['bold', 'italic'],
|
|
24
|
+
['underline', 'strike'],
|
|
25
|
+
['code', 'blockquote'],
|
|
26
|
+
['ordered_list', 'bullet_list'],
|
|
27
|
+
[{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],
|
|
28
|
+
['link', 'image'],
|
|
29
|
+
['text_color', 'background_color'],
|
|
30
|
+
['align_left', 'align_center', 'align_right', 'align_justify'],
|
|
31
|
+
['horizontal_rule', 'format_clear'],
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() { }
|
|
35
|
+
ngOnDestroy() {
|
|
36
|
+
this.editor.destroy();
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialRichtextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: SpecialRichtextComponent, isStandalone: true, selector: "sp-input", inputs: { control: "control" }, ngImport: i0, template: "<div\r\n class=\"special-richtext w-full mb-3 {{ formControl.styleClasses }}\"\r\n [id]=\"formControl.elementId\"\r\n *ngIf=\"formControl && !formControl.hidden\"\r\n>\r\n <div class=\"text-md font-medium pl-2 mb-2\" *ngIf=\"formControl.label\">\r\n {{ formControl.label }}\r\n </div>\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"formControl\"\r\n [required]=\"formControl.required\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"formControl.placeholder\"\r\n ></ngx-editor>\r\n <div class=\"px-5 mt-2\">\r\n <ng-container *ngIf=\"formControl.dirty; else tooltipRef\">\r\n <div\r\n class=\"text-sm text-rose-500\"\r\n *ngIf=\"\r\n formControl.errors\r\n | errorMessage : formControl.errorMessages as error;\r\n else tooltipRef\r\n \"\r\n >\r\n {{ error }}\r\n </div>\r\n </ng-container>\r\n <ng-template #tooltipRef>\r\n <div class=\"text-sm font-medium\">{{ formControl.tooltip }}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i3.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i3.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialRichtextComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ standalone: true, selector: 'sp-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
44
|
+
CommonModule,
|
|
45
|
+
MatInputModule,
|
|
46
|
+
MatIconModule,
|
|
47
|
+
ReactiveFormsModule,
|
|
48
|
+
NgxEditorModule,
|
|
49
|
+
ErrorMessagePipe,
|
|
50
|
+
], template: "<div\r\n class=\"special-richtext w-full mb-3 {{ formControl.styleClasses }}\"\r\n [id]=\"formControl.elementId\"\r\n *ngIf=\"formControl && !formControl.hidden\"\r\n>\r\n <div class=\"text-md font-medium pl-2 mb-2\" *ngIf=\"formControl.label\">\r\n {{ formControl.label }}\r\n </div>\r\n <ngx-editor-menu\r\n [colorPresets]=\"colorPresets\"\r\n [toolbar]=\"toolbar\"\r\n [editor]=\"editor\"\r\n >\r\n </ngx-editor-menu>\r\n <ngx-editor\r\n [editor]=\"editor\"\r\n [formControl]=\"formControl\"\r\n [required]=\"formControl.required\"\r\n [disabled]=\"false\"\r\n [placeholder]=\"formControl.placeholder\"\r\n ></ngx-editor>\r\n <div class=\"px-5 mt-2\">\r\n <ng-container *ngIf=\"formControl.dirty; else tooltipRef\">\r\n <div\r\n class=\"text-sm text-rose-500\"\r\n *ngIf=\"\r\n formControl.errors\r\n | errorMessage : formControl.errorMessages as error;\r\n else tooltipRef\r\n \"\r\n >\r\n {{ error }}\r\n </div>\r\n </ng-container>\r\n <ng-template #tooltipRef>\r\n <div class=\"text-sm font-medium\">{{ formControl.tooltip }}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
51
|
+
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1yaWNodGV4dC9zcGVjaWFsLXJpY2h0ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxlQUFlLEVBQVcsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFpQnBELE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsSUFBYSxPQUFPLENBQUMsT0FBMkM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDM0IsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7WUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQWVEO1FBdEJBLGlCQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFTM0QsWUFBTyxHQUFZO1lBQ2pCLGdCQUFnQjtZQUNoQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDbEIsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1lBQ3ZCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztZQUN0QixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7WUFDL0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDakIsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7WUFDbEMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7WUFDOUQsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUM7U0FDcEMsQ0FBQztJQUVhLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFDbkIsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0E5QlUsd0JBQXdCO2tHQUF4Qix3QkFBd0Isb0dDOUJyQywyckNBdUNBLGtGRGpCSSxZQUFZLGtJQUNaLGNBQWMsOEJBQ2QsYUFBYSw4QkFDYixtQkFBbUIsc2hCQUNuQixlQUFlLHdXQUNmLGdCQUFnQjs7MkZBR1Asd0JBQXdCO2tCQWZwQyxTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7d0RBT1ksT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xyXG5pbXBvcnQgeyBJUmljaFRleHRGaWVsZCB9IGZyb20gJy4vc3BlY2lhbC1yaWNodGV4dC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBOZ3hFZGl0b3JNb2R1bGUsIFRvb2xiYXIsIEVkaXRvciB9IGZyb20gJ25neC1lZGl0b3InO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlUGlwZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ3NwLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3BlY2lhbC1yaWNodGV4dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ3hFZGl0b3JNb2R1bGUsXHJcbiAgICBFcnJvck1lc3NhZ2VQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsUmljaHRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVkaXRvcjogRWRpdG9yO1xyXG4gIGZvcm1Db250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8SVJpY2hUZXh0RmllbGQ+O1xyXG4gIGNvbG9yUHJlc2V0cyA9IFsncmVkJywgJ3llbGxvdycsICdncmVlbicsICdibHVlJywgJ2JsYWNrJ107XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjb250cm9sKGNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxJUmljaFRleHRGaWVsZD4pIHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgaWYgKGNvbnRyb2wuc2V0dGluZ3MuY29sb3JQcmVzZXRzKVxyXG4gICAgICB0aGlzLmNvbG9yUHJlc2V0cyA9IGNvbnRyb2wuc2V0dGluZ3MuY29sb3JQcmVzZXRzO1xyXG4gICAgdGhpcy5lZGl0b3IgPSBuZXcgRWRpdG9yKCk7XHJcbiAgfVxyXG5cclxuICB0b29sYmFyOiBUb29sYmFyID0gW1xyXG4gICAgLy8gZGVmYXVsdCB2YWx1ZVxyXG4gICAgWydib2xkJywgJ2l0YWxpYyddLFxyXG4gICAgWyd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sXHJcbiAgICBbJ2NvZGUnLCAnYmxvY2txdW90ZSddLFxyXG4gICAgWydvcmRlcmVkX2xpc3QnLCAnYnVsbGV0X2xpc3QnXSxcclxuICAgIFt7IGhlYWRpbmc6IFsnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnXSB9XSxcclxuICAgIFsnbGluaycsICdpbWFnZSddLFxyXG4gICAgWyd0ZXh0X2NvbG9yJywgJ2JhY2tncm91bmRfY29sb3InXSxcclxuICAgIFsnYWxpZ25fbGVmdCcsICdhbGlnbl9jZW50ZXInLCAnYWxpZ25fcmlnaHQnLCAnYWxpZ25fanVzdGlmeSddLFxyXG4gICAgWydob3Jpem9udGFsX3J1bGUnLCAnZm9ybWF0X2NsZWFyJ10sXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRvci5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cInNwZWNpYWwtcmljaHRleHQgdy1mdWxsIG1iLTMge3sgZm9ybUNvbnRyb2wuc3R5bGVDbGFzc2VzIH19XCJcclxuICBbaWRdPVwiZm9ybUNvbnRyb2wuZWxlbWVudElkXCJcclxuICAqbmdJZj1cImZvcm1Db250cm9sICYmICFmb3JtQ29udHJvbC5oaWRkZW5cIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtbWQgZm9udC1tZWRpdW0gcGwtMiBtYi0yXCIgKm5nSWY9XCJmb3JtQ29udHJvbC5sYWJlbFwiPlxyXG4gICAge3sgZm9ybUNvbnRyb2wubGFiZWwgfX1cclxuICA8L2Rpdj5cclxuICA8bmd4LWVkaXRvci1tZW51XHJcbiAgICBbY29sb3JQcmVzZXRzXT1cImNvbG9yUHJlc2V0c1wiXHJcbiAgICBbdG9vbGJhcl09XCJ0b29sYmFyXCJcclxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcclxuICA+XHJcbiAgPC9uZ3gtZWRpdG9yLW1lbnU+XHJcbiAgPG5neC1lZGl0b3JcclxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICBbcmVxdWlyZWRdPVwiZm9ybUNvbnRyb2wucmVxdWlyZWRcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJmb3JtQ29udHJvbC5wbGFjZWhvbGRlclwiXHJcbiAgPjwvbmd4LWVkaXRvcj5cclxuICA8ZGl2IGNsYXNzPVwicHgtNSBtdC0yXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUNvbnRyb2wuZGlydHk7IGVsc2UgdG9vbHRpcFJlZlwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtcm9zZS01MDBcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbC5lcnJvcnNcclxuICAgICAgICAgICAgfCBlcnJvck1lc3NhZ2UgOiBmb3JtQ29udHJvbC5lcnJvck1lc3NhZ2VzIGFzIGVycm9yO1xyXG4gICAgICAgICAgZWxzZSB0b29sdGlwUmVmXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGVycm9yIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBSZWY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+e3sgZm9ybUNvbnRyb2wudG9vbHRpcCB9fTwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
;
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1yaWNodGV4dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLXJpY2h0ZXh0L3NwZWNpYWwtcmljaHRleHQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJpY2hUZXh0U2V0dGluZ3N7XHJcbiAgY29sb3JQcmVzZXRzOiBzdHJpbmdbXTtcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJpY2hUZXh0RmllbGQgZXh0ZW5kcyBJRmllbGREYXRhIHtcclxuICBzZXR0aW5nczogSVJpY2hUZXh0U2V0dGluZ3M7XHJcbiAgdHlwZTogRUNvbnRyb2xUeXBlcy5yaWNoVGV4dDtcclxuICBkZWZhdWx0VmFsdWU6IHN0cmluZztcclxufVxyXG4iXX0=
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
4
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { MatInputModule } from '@angular/material/input';
|
|
8
|
-
import { InputMaskModule } from '@ngneat/input-mask';
|
|
9
|
-
import { ErrorMessagePipe } from '../../core/pipes';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "@angular/material/input";
|
|
13
|
-
import * as i3 from "@angular/material/form-field";
|
|
14
|
-
import * as i4 from "@angular/cdk/text-field";
|
|
15
|
-
import * as i5 from "@angular/material/icon";
|
|
16
|
-
import * as i6 from "@angular/forms";
|
|
17
|
-
export class SpecialTextAreaComponent {
|
|
18
|
-
constructor() {
|
|
19
|
-
this.onBlur = new EventEmitter();
|
|
20
|
-
this.onEnter = new EventEmitter();
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() { }
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
-
type: Component,
|
|
28
|
-
args: [{ standalone: true, selector: 'sp-text-area', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
29
|
-
InputMaskModule,
|
|
30
|
-
CommonModule,
|
|
31
|
-
MatInputModule,
|
|
32
|
-
MatIconModule,
|
|
33
|
-
ReactiveFormsModule,
|
|
34
|
-
MatButtonModule,
|
|
35
|
-
ErrorMessagePipe,
|
|
36
|
-
], template: "<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <textarea\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n matInput\r\n (blur)=\"onBlur.emit(control.value)\"\r\n (keydown.enter)=\"onEnter.emit(control.value)\"\r\n [
|
|
37
|
-
}], ctorParameters:
|
|
38
|
-
type: Input
|
|
39
|
-
}], onBlur: [{
|
|
40
|
-
type: Output
|
|
41
|
-
}], onEnter: [{
|
|
42
|
-
type: Output
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatInputModule } from '@angular/material/input';
|
|
8
|
+
import { InputMaskModule } from '@ngneat/input-mask';
|
|
9
|
+
import { ErrorMessagePipe } from '../../core/pipes';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "@angular/material/input";
|
|
13
|
+
import * as i3 from "@angular/material/form-field";
|
|
14
|
+
import * as i4 from "@angular/cdk/text-field";
|
|
15
|
+
import * as i5 from "@angular/material/icon";
|
|
16
|
+
import * as i6 from "@angular/forms";
|
|
17
|
+
export class SpecialTextAreaComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.onBlur = new EventEmitter();
|
|
20
|
+
this.onEnter = new EventEmitter();
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() { }
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: SpecialTextAreaComponent, isStandalone: true, selector: "sp-text-area", inputs: { control: "control" }, outputs: { onBlur: "onBlur", onEnter: "onEnter" }, ngImport: i0, template: "<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <textarea\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n matInput\r\n (blur)=\"onBlur.emit(control.value)\"\r\n (keydown.enter)=\"onEnter.emit(control.value)\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n ></textarea>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: InputMaskModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "pipe", type: ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SpecialTextAreaComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ standalone: true, selector: 'sp-text-area', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
29
|
+
InputMaskModule,
|
|
30
|
+
CommonModule,
|
|
31
|
+
MatInputModule,
|
|
32
|
+
MatIconModule,
|
|
33
|
+
ReactiveFormsModule,
|
|
34
|
+
MatButtonModule,
|
|
35
|
+
ErrorMessagePipe,
|
|
36
|
+
], template: "<mat-form-field\r\n *ngIf=\"control && !control.hidden\"\r\n [id]=\"control.elementId\"\r\n class=\"special-textarea w-full mb-3 {{ control.styleClasses }}\"\r\n [appearance]=\"control.label ? 'outline' : 'fill'\"\r\n>\r\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\r\n <textarea\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n matInput\r\n (blur)=\"onBlur.emit(control.value)\"\r\n (keydown.enter)=\"onEnter.emit(control.value)\"\r\n [readonly]=\"control.readOnly\"\r\n [required]=\"control.required\"\r\n [placeholder]=\"control.placeholder\"\r\n [formControl]=\"control\"\r\n ></textarea>\r\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\r\n <mat-hint>\r\n {{ control.tooltip }}\r\n </mat-hint>\r\n <mat-error>\r\n {{ control.errors | errorMessage: control.errorMessages }}\r\n </mat-error>\r\n</mat-form-field>\r\n", styles: [":host{display:contents}\n"] }]
|
|
37
|
+
}], ctorParameters: () => [], propDecorators: { control: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], onBlur: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}], onEnter: [{
|
|
42
|
+
type: Output
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUFtQnBELE1BQU0sT0FBTyx3QkFBd0I7SUFNbkM7UUFIVSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRTNDLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7OEdBUlIsd0JBQXdCO2tHQUF4Qix3QkFBd0IsMkpDNUJyQyx3K0JBNEJBLGtGRFRJLGVBQWUsOEJBQ2YsWUFBWSxrSUFDWixjQUFjLDJvQ0FDZCxhQUFhLG1MQUNiLG1CQUFtQixzeUJBQ25CLGVBQWUsMEJBQ2YsZ0JBQWdCOzsyRkFHUCx3QkFBd0I7a0JBaEJwQyxTQUFTO2lDQUNHLElBQUksWUFDTCxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0sV0FDdkM7d0JBQ04sZUFBZTt3QkFDZixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZ0JBQWdCO3FCQUNqQjt3REFHUSxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IElucHV0TWFza01vZHVsZSB9IGZyb20gJ0BuZ25lYXQvaW5wdXQtbWFzayc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgSVRleHRBcmVhRmllbGQgfSBmcm9tICcuL3NwZWNpYWwtdGV4dC1hcmVhLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOnRydWUsXHJcbiAgc2VsZWN0b3I6ICdzcC10ZXh0LWFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOltcclxuICAgIElucHV0TWFza01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBFcnJvck1lc3NhZ2VQaXBlLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY29udHJvbCE6IFNwZWNpYWxGb3JtQ29udHJvbDxJVGV4dEFyZWFGaWVsZD47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkVudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcbn1cclxuIiwiPG1hdC1mb3JtLWZpZWxkXHJcbiAgKm5nSWY9XCJjb250cm9sICYmICFjb250cm9sLmhpZGRlblwiXHJcbiAgW2lkXT1cImNvbnRyb2wuZWxlbWVudElkXCJcclxuICBjbGFzcz1cInNwZWNpYWwtdGV4dGFyZWEgdy1mdWxsIG1iLTMge3sgY29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gIFthcHBlYXJhbmNlXT1cImNvbnRyb2wubGFiZWwgPyAnb3V0bGluZScgOiAnZmlsbCdcIlxyXG4+XHJcbiAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbnRyb2wubGFiZWxcIj57eyBjb250cm9sLmxhYmVsIH19PC9tYXQtbGFiZWw+XHJcbiAgPHRleHRhcmVhXHJcbiAgICBjZGtUZXh0YXJlYUF1dG9zaXplXHJcbiAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxyXG4gICAgY2RrQXV0b3NpemVNYXhSb3dzPVwiNVwiXHJcbiAgICBtYXRJbnB1dFxyXG4gICAgKGJsdXIpPVwib25CbHVyLmVtaXQoY29udHJvbC52YWx1ZSlcIlxyXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlci5lbWl0KGNvbnRyb2wudmFsdWUpXCJcclxuICAgIFtyZWFkb25seV09XCJjb250cm9sLnJlYWRPbmx5XCJcclxuICAgIFtyZXF1aXJlZF09XCJjb250cm9sLnJlcXVpcmVkXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICA+PC90ZXh0YXJlYT5cclxuICA8bWF0LWljb24gKm5nSWY9XCJjb250cm9sLmljb25cIiBtYXRQcmVmaXg+e3sgY29udHJvbC5pY29uIH19IDwvbWF0LWljb24+XHJcbiAgPG1hdC1oaW50PlxyXG4gICAge3sgY29udHJvbC50b29sdGlwIH19XHJcbiAgPC9tYXQtaGludD5cclxuICA8bWF0LWVycm9yPlxyXG4gICAge3sgY29udHJvbC5lcnJvcnMgfCBlcnJvck1lc3NhZ2U6IGNvbnRyb2wuZXJyb3JNZXNzYWdlcyB9fVxyXG4gIDwvbWF0LWVycm9yPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG4iXX0=
|