special-forms 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2020/lib/components/index.mjs +22 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.component.mjs +61 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.interface.mjs +2 -0
- package/esm2020/lib/components/special-autocomplete/special-autocomplete.module.mjs +47 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.component.mjs +20 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.interface.mjs +2 -0
- package/esm2020/lib/components/special-checkbox/special-checkbox.module.mjs +47 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.component.mjs +24 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.interface.mjs +2 -0
- package/esm2020/lib/components/special-datepicker/special-datepicker.module.mjs +48 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.component.mjs +35 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.interface.mjs +2 -0
- package/esm2020/lib/components/special-dropdown/special-dropdown.module.mjs +43 -0
- package/esm2020/lib/components/special-form/special-form.component.mjs +97 -0
- package/esm2020/lib/components/special-form/special-form.module.mjs +68 -0
- package/esm2020/lib/components/special-input/special-input.component.mjs +42 -0
- package/esm2020/lib/components/special-input/special-input.interface.mjs +2 -0
- package/esm2020/lib/components/special-input/special-input.module.mjs +44 -0
- package/esm2020/lib/components/special-label/special-label.component.mjs +25 -0
- package/esm2020/lib/components/special-label/special-label.interface.mjs +2 -0
- package/esm2020/lib/components/special-label/special-label.module.mjs +47 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +82 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +2 -0
- package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.mjs +51 -0
- package/esm2020/lib/components/special-text-area/special-text-area.component.mjs +30 -0
- package/esm2020/lib/components/special-text-area/special-text-area.interface.mjs +2 -0
- package/esm2020/lib/components/special-text-area/special-text-area.module.mjs +44 -0
- package/esm2020/lib/components/special-upload/special-upload.component.mjs +69 -0
- package/esm2020/lib/components/special-upload/special-upload.interface.mjs +2 -0
- package/esm2020/lib/components/special-upload/special-upload.module.mjs +43 -0
- package/esm2020/lib/core/aux-data/control-types.enum.mjs +18 -0
- package/esm2020/lib/core/forms/special-forms.mjs +238 -0
- package/esm2020/lib/core/interfaces/field-basics.interfaces.mjs +2 -0
- package/esm2020/lib/core/interfaces/form.interfaces.mjs +2 -0
- package/esm2020/lib/core/services/index.mjs +3 -0
- package/esm2020/lib/core/services/special-form-builder/special-form-builder.service.mjs +156 -0
- package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.mjs +18 -0
- package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.module.mjs +18 -0
- package/esm2020/lib/pipes/error-message-pipe/error.pipe.mjs +22 -0
- package/esm2020/lib/pipes/error-message-pipe/error.pipe.module.mjs +20 -0
- package/esm2020/lib/pipes/index.mjs +3 -0
- package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.mjs +22 -0
- package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.module.mjs +20 -0
- package/esm2020/public-api.mjs +6 -0
- package/esm2020/special-forms.mjs +5 -0
- package/fesm2015/special-forms.mjs +1292 -0
- package/fesm2015/special-forms.mjs.map +1 -0
- package/fesm2020/special-forms.mjs +1319 -0
- package/fesm2020/special-forms.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/index.d.ts +21 -0
- package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +19 -0
- package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +18 -0
- package/lib/components/special-autocomplete/special-autocomplete.module.d.ts +15 -0
- package/lib/components/special-checkbox/special-checkbox.component.d.ts +11 -0
- package/lib/components/special-checkbox/special-checkbox.interface.d.ts +10 -0
- package/lib/components/special-checkbox/special-checkbox.module.d.ts +14 -0
- package/lib/components/special-datepicker/special-datepicker.component.d.ts +12 -0
- package/lib/components/special-datepicker/special-datepicker.interface.d.ts +11 -0
- package/lib/components/special-datepicker/special-datepicker.module.d.ts +15 -0
- package/lib/components/special-dropdown/special-dropdown.component.d.ts +11 -0
- package/lib/components/special-dropdown/special-dropdown.interface.d.ts +16 -0
- package/lib/components/special-dropdown/special-dropdown.module.d.ts +14 -0
- package/lib/components/special-form/special-form.component.d.ts +31 -0
- package/lib/components/special-form/special-form.module.d.ts +19 -0
- package/lib/components/special-input/special-input.component.d.ts +15 -0
- package/lib/components/special-input/special-input.interface.d.ts +15 -0
- package/lib/components/special-input/special-input.module.d.ts +14 -0
- package/lib/components/special-label/special-label.component.d.ts +13 -0
- package/lib/components/special-label/special-label.interface.d.ts +12 -0
- package/lib/components/special-label/special-label.module.d.ts +15 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +22 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +18 -0
- package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.d.ts +16 -0
- package/lib/components/special-text-area/special-text-area.component.d.ts +13 -0
- package/lib/components/special-text-area/special-text-area.interface.d.ts +7 -0
- package/lib/components/special-text-area/special-text-area.module.d.ts +14 -0
- package/lib/components/special-upload/special-upload.component.d.ts +21 -0
- package/lib/components/special-upload/special-upload.interface.d.ts +10 -0
- package/lib/components/special-upload/special-upload.module.d.ts +13 -0
- package/lib/core/aux-data/control-types.enum.d.ts +16 -0
- package/lib/core/forms/special-forms.d.ts +110 -0
- package/lib/core/interfaces/field-basics.interfaces.d.ts +22 -0
- package/lib/core/interfaces/form.interfaces.d.ts +51 -0
- package/lib/core/services/index.d.ts +2 -0
- package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +25 -0
- package/lib/pipes/controls-list-pipe/controls-list.pipe.d.ts +11 -0
- package/lib/pipes/controls-list-pipe/controls-list.pipe.module.d.ts +8 -0
- package/lib/pipes/error-message-pipe/error.pipe.d.ts +12 -0
- package/lib/pipes/error-message-pipe/error.pipe.module.d.ts +8 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/text-by-function/text-by-function.pipe.d.ts +7 -0
- package/lib/pipes/text-by-function/text-by-function.pipe.module.d.ts +8 -0
- package/package.json +31 -0
- package/public-api.d.ts +2 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Directive } from '@angular/core';
|
|
2
|
+
import { Component, Input } from '@angular/core';
|
|
3
|
+
import { EControlTypes } from '@lib/core/aux-data/control-types.enum';
|
|
4
|
+
import { SpecialAutocompleteComponent } from '../special-autocomplete/special-autocomplete.component';
|
|
5
|
+
import { SpecialCheckboxComponent } from '../special-checkbox/special-checkbox.component';
|
|
6
|
+
import { SpecialDatepickerComponent } from '../special-datepicker/special-datepicker.component';
|
|
7
|
+
import { SpecialDropdownComponent } from '../special-dropdown/special-dropdown.component';
|
|
8
|
+
import { SpecialInputComponent } from '../special-input/special-input.component';
|
|
9
|
+
import { SpecialLabelComponent } from '../special-label/special-label.component';
|
|
10
|
+
import { SpecialMultipleAutocompleteComponent } from '../special-multiple-autocomplete/special-multiple-autocomplete.component';
|
|
11
|
+
import { SpecialTextAreaComponent } from '../special-text-area/special-text-area.component';
|
|
12
|
+
import { SpecialUploadComponent } from '../special-upload/special-upload.component';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "../../pipes/controls-list-pipe/controls-list.pipe";
|
|
16
|
+
import * as i3 from "@angular/material/button";
|
|
17
|
+
export class SpecialFormComponent {
|
|
18
|
+
set control(form) {
|
|
19
|
+
this.form = form;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() { }
|
|
22
|
+
}
|
|
23
|
+
SpecialFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
SpecialFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialFormComponent, selector: "sp-form", inputs: { form: ["control", "form"] }, ngImport: i0, template: "<div class=\"w-full box-border p-2\">\n <div\n *ngIf=\"form\"\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\n <div class=\"w-full flex flex-wrap\">\n <ng-template\n *ngFor=\"let control of form.controls | controlsList\"\n controlRender\n [control]=\"control\"\n ></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return FormControlsRenderDirective; }), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(function () { return i2.FormControlsListPipe; }), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'sp-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full box-border p-2\">\n <div\n *ngIf=\"form\"\n [class]=\"\n form.label\n ? 'w-full mt-2 p-3 border-slate-200 border border-solid box-border'\n : 'container'\n \"\n >\n <h1 *ngIf=\"!!form.label\" class=\"font-bold py-3\">{{ form.label }}</h1>\n <div class=\"w-full flex flex-wrap\">\n <ng-template\n *ngFor=\"let control of form.controls | controlsList\"\n controlRender\n [control]=\"control\"\n ></ng-template>\n </div>\n </div>\n</div>\n", styles: [":host{display:contents}\n"] }]
|
|
28
|
+
}], propDecorators: { form: [{
|
|
29
|
+
type: Input,
|
|
30
|
+
args: ['control']
|
|
31
|
+
}] } });
|
|
32
|
+
export class SpecialArrayComponent {
|
|
33
|
+
constructor() { }
|
|
34
|
+
set control(formArray) {
|
|
35
|
+
this.formArray = formArray;
|
|
36
|
+
}
|
|
37
|
+
get withFormHeader() {
|
|
38
|
+
return this.formArray.settings.withFormHeader;
|
|
39
|
+
}
|
|
40
|
+
get settings() {
|
|
41
|
+
return this.formArray.settings;
|
|
42
|
+
}
|
|
43
|
+
ngOnInit() { }
|
|
44
|
+
removeItem(index) {
|
|
45
|
+
this.formArray.removeAt(index);
|
|
46
|
+
}
|
|
47
|
+
addItem() {
|
|
48
|
+
this.formArray.addItem();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
SpecialArrayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialArrayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
SpecialArrayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialArrayComponent, selector: "sp-array", inputs: { formArray: ["control", "formArray"] }, ngImport: i0, template: "<div class=\"w-full box-border p-2\">\r\n <div\r\n *ngIf=\"formArray\"\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n <h1 *ngIf=\"!!formArray.label\" class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n <div class=\"divide-y divide-solid\">\r\n <div\r\n *ngIf=\"formArray.form\"\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n <ng-container *ngIf=\"!withFormHeader; else FORMHEADERREF\">\r\n <h2\r\n [class]=\"item.styleClasses\"\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n >\r\n {{ item.label }}\r\n </h2>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n ></div>\r\n </ng-container>\r\n <ng-template #FORMHEADERREF>\r\n <ng-template\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n Add\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div\r\n class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\"\r\n *ngFor=\"let formGroup of formArray.controls; let i = index\"\r\n >\r\n <ng-template\r\n *ngFor=\"let item of formGroup.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <table class=\"form-array-container__table\">\r\n <thead *ngIf=\"formArray.form\">\r\n <tr\r\n *ngIf=\"headerForm; else HEADERFORMREF\"\r\n class=\"form-array-container__table-header\"\r\n >\r\n <th\r\n class=\"header-cell\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n {{ control.label | translate }}\r\n </th>\r\n <th *ngIf=\"!formArray.readOnly\"></th>\r\n </tr>\r\n <ng-template #HEADERFORMREF>\r\n <tr class=\"table-form-header\">\r\n <th\r\n class=\"header-cell\"\r\n [ngSwitch]=\"control.type\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </th>\r\n <th class=\"header-cell\" *ngIf=\"!formArray.readOnly\">\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n </thead> -->\r\n\r\n<!-- [ngStyle]=\"{'max-height':'calc(100vh - '+maxHeight+'px)' }\"> -->\r\n<!-- <tbody>\r\n <tr *ngFor=\"let formGroup of formArray.controls; let i = index\">\r\n <td [ngSwitch]=\"control.type\" *ngFor=\"let control of formGroup.controls | controlsList\">\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </td>\r\n <td *ngIf=\"!formArray.readOnly\">\r\n <bmb-button\r\n [icon]=\"'delete_outline'\"\r\n [type]=\"'Raised'\"\r\n [size]=\"'XLarge'\"\r\n [bdrColor]=\"'error-500'\"\r\n [tColor]=\"'error-500'\"\r\n (onClick)=\"deleteItem(i)\"\r\n >\r\n </bmb-button>\r\n </td>\r\n </tr>\r\n </tbody> -->\r\n<!-- </table> -->\r\n\r\n<!-- <ng-template #TABLET>\r\n <div class=\"mt-1\">\r\n <ng-container *ngIf=\"headerFormEnable\">\r\n <div class=\"card-form-container\">\r\n <automatic-forms [form]=\"formArray.form\" [enableButtons]=\"false\">\r\n </automatic-forms>\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-content select=\"[header]\"></ng-content>\r\n </div>\r\n <div class=\"accordion-container\">\r\n <mat-accordion>\r\n <mat-expansion-panel\r\n class=\"mat-elevation-z1\"\r\n *ngFor=\"let item of formArray.controls; let i = index\"\r\n >\r\n <mat-expansion-panel-header\r\n class=\"expanded-header\"\r\n collapsedHeight=\"3rem\"\r\n expandedHeight=\"3rem\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"cardHeaderTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n <mat-icon\r\n *ngIf=\"!formArray.readOnly\"\r\n class=\"mobile-delete\"\r\n (click)=\"deleteItem(i)\"\r\n color=\"warn\"\r\n >\r\n delete_outline\r\n </mat-icon>\r\n </mat-expansion-panel-header>\r\n <ng-container\r\n *ngTemplateOutlet=\"cardBodyTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"text-error\" *ngIf=\"formArray.dirty && formArray.invalid\">\r\n {{ formArray.errors | errorMessage | translate }}\r\n</div>\r\n\r\n<ng-template #ADDBUTTON>\r\n <div class=\"add-item-btn\">\r\n <bmb-button\r\n [icon]=\"'add'\"\r\n [type]=\"'Raised'\"\r\n [bdrColor]=\"'aux-success'\"\r\n [size]=\"'XLarge'\"\r\n [tColor]=\"'aux-success'\"\r\n [disabled]=\"!formArray.form.valid || !formArray.form.dirty\"\r\n (onClick)=\"addItemAction()\"\r\n >\r\n </bmb-button>\r\n </div>\r\n</ng-template> -->\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return i3.MatButton; }), selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i0.forwardRef(function () { return FormControlsRenderDirective; }), selector: "[controlRender]", inputs: ["control"] }, { kind: "pipe", type: i0.forwardRef(function () { return i2.FormControlsListPipe; }), name: "controlsList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialArrayComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'sp-array', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full box-border p-2\">\r\n <div\r\n *ngIf=\"formArray\"\r\n class=\"w-full mt-2 p-3 border-slate-200 border border-solid box-border\"\r\n >\r\n <h1 *ngIf=\"!!formArray.label\" class=\"font-bold py-3\">\r\n {{ formArray.label }}\r\n </h1>\r\n <div class=\"divide-y divide-solid\">\r\n <div\r\n *ngIf=\"formArray.form\"\r\n [ngClass]=\"{ 'md:grid-cols-15': settings.withActionButtons }\"\r\n class=\"grid gap-4 grid-cols-12\"\r\n >\r\n <ng-container *ngIf=\"!withFormHeader; else FORMHEADERREF\">\r\n <h2\r\n [class]=\"item.styleClasses\"\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n >\r\n {{ item.label }}\r\n </h2>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n ></div>\r\n </ng-container>\r\n <ng-template #FORMHEADERREF>\r\n <ng-template\r\n *ngFor=\"let item of formArray.form.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n *ngIf=\"settings.withActionButtons\"\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button\r\n mat-flat-button\r\n color=\"primary\"\r\n [disabled]=\"formArray.form.invalid\"\r\n (click)=\"addItem()\"\r\n >\r\n Add\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div\r\n class=\"w-full pt-5 grid gap-4 grid-cols-12 md:grid-cols-15\"\r\n *ngFor=\"let formGroup of formArray.controls; let i = index\"\r\n >\r\n <ng-template\r\n *ngFor=\"let item of formGroup.controls | controlsList\"\r\n controlRender\r\n [control]=\"item\"\r\n ></ng-template>\r\n <div\r\n class=\"\r\n col-start-7 col-end-13\r\n md:col-start-13 md:col-end-16\r\n pb-5\r\n my-auto\r\n ml-auto\r\n md:m-auto\r\n \"\r\n >\r\n <button mat-flat-button color=\"warn\" (click)=\"removeItem(i)\">\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <table class=\"form-array-container__table\">\r\n <thead *ngIf=\"formArray.form\">\r\n <tr\r\n *ngIf=\"headerForm; else HEADERFORMREF\"\r\n class=\"form-array-container__table-header\"\r\n >\r\n <th\r\n class=\"header-cell\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n {{ control.label | translate }}\r\n </th>\r\n <th *ngIf=\"!formArray.readOnly\"></th>\r\n </tr>\r\n <ng-template #HEADERFORMREF>\r\n <tr class=\"table-form-header\">\r\n <th\r\n class=\"header-cell\"\r\n [ngSwitch]=\"control.type\"\r\n *ngFor=\"let control of formArray.form | controlsList\"\r\n >\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </th>\r\n <th class=\"header-cell\" *ngIf=\"!formArray.readOnly\">\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n </thead> -->\r\n\r\n<!-- [ngStyle]=\"{'max-height':'calc(100vh - '+maxHeight+'px)' }\"> -->\r\n<!-- <tbody>\r\n <tr *ngFor=\"let formGroup of formArray.controls; let i = index\">\r\n <td [ngSwitch]=\"control.type\" *ngFor=\"let control of formGroup.controls | controlsList\">\r\n <sp-form-control-selector\r\n [control]=\"control\"\r\n ></sp-form-control-selector>\r\n </td>\r\n <td *ngIf=\"!formArray.readOnly\">\r\n <bmb-button\r\n [icon]=\"'delete_outline'\"\r\n [type]=\"'Raised'\"\r\n [size]=\"'XLarge'\"\r\n [bdrColor]=\"'error-500'\"\r\n [tColor]=\"'error-500'\"\r\n (onClick)=\"deleteItem(i)\"\r\n >\r\n </bmb-button>\r\n </td>\r\n </tr>\r\n </tbody> -->\r\n<!-- </table> -->\r\n\r\n<!-- <ng-template #TABLET>\r\n <div class=\"mt-1\">\r\n <ng-container *ngIf=\"headerFormEnable\">\r\n <div class=\"card-form-container\">\r\n <automatic-forms [form]=\"formArray.form\" [enableButtons]=\"false\">\r\n </automatic-forms>\r\n <ng-container *ngTemplateOutlet=\"ADDBUTTON\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-content select=\"[header]\"></ng-content>\r\n </div>\r\n <div class=\"accordion-container\">\r\n <mat-accordion>\r\n <mat-expansion-panel\r\n class=\"mat-elevation-z1\"\r\n *ngFor=\"let item of formArray.controls; let i = index\"\r\n >\r\n <mat-expansion-panel-header\r\n class=\"expanded-header\"\r\n collapsedHeight=\"3rem\"\r\n expandedHeight=\"3rem\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"cardHeaderTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n <mat-icon\r\n *ngIf=\"!formArray.readOnly\"\r\n class=\"mobile-delete\"\r\n (click)=\"deleteItem(i)\"\r\n color=\"warn\"\r\n >\r\n delete_outline\r\n </mat-icon>\r\n </mat-expansion-panel-header>\r\n <ng-container\r\n *ngTemplateOutlet=\"cardBodyTemplate; context: { $implicit: item }\"\r\n >\r\n </ng-container>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"text-error\" *ngIf=\"formArray.dirty && formArray.invalid\">\r\n {{ formArray.errors | errorMessage | translate }}\r\n</div>\r\n\r\n<ng-template #ADDBUTTON>\r\n <div class=\"add-item-btn\">\r\n <bmb-button\r\n [icon]=\"'add'\"\r\n [type]=\"'Raised'\"\r\n [bdrColor]=\"'aux-success'\"\r\n [size]=\"'XLarge'\"\r\n [tColor]=\"'aux-success'\"\r\n [disabled]=\"!formArray.form.valid || !formArray.form.dirty\"\r\n (onClick)=\"addItemAction()\"\r\n >\r\n </bmb-button>\r\n </div>\r\n</ng-template> -->\r\n", styles: [":host{display:contents}\n"] }]
|
|
56
|
+
}], ctorParameters: function () { return []; }, propDecorators: { formArray: [{
|
|
57
|
+
type: Input,
|
|
58
|
+
args: ['control']
|
|
59
|
+
}] } });
|
|
60
|
+
export class FormControlsRenderDirective {
|
|
61
|
+
constructor(viewContainer) {
|
|
62
|
+
this.viewContainer = viewContainer;
|
|
63
|
+
this.componentsBuffer = {
|
|
64
|
+
[EControlTypes.autocomplete]: SpecialAutocompleteComponent,
|
|
65
|
+
[EControlTypes.checkbox]: SpecialCheckboxComponent,
|
|
66
|
+
[EControlTypes.date]: SpecialDatepickerComponent,
|
|
67
|
+
[EControlTypes.dropdown]: SpecialDropdownComponent,
|
|
68
|
+
[EControlTypes.array]: SpecialArrayComponent,
|
|
69
|
+
[EControlTypes.input]: SpecialInputComponent,
|
|
70
|
+
[EControlTypes.multiple]: SpecialMultipleAutocompleteComponent,
|
|
71
|
+
[EControlTypes.textArea]: SpecialTextAreaComponent,
|
|
72
|
+
[EControlTypes.label]: SpecialLabelComponent,
|
|
73
|
+
[EControlTypes.upload]: SpecialUploadComponent,
|
|
74
|
+
[EControlTypes.form]: SpecialFormComponent,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
set controlSetter(control) {
|
|
78
|
+
this.viewContainer.clear();
|
|
79
|
+
const component = this.componentsBuffer[control.type];
|
|
80
|
+
if (component) {
|
|
81
|
+
const componentRef = this.viewContainer.createComponent(component);
|
|
82
|
+
componentRef.instance.control = control;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
FormControlsRenderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormControlsRenderDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
87
|
+
FormControlsRenderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: FormControlsRenderDirective, selector: "[controlRender]", inputs: { controlSetter: ["control", "controlSetter"] }, ngImport: i0 });
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FormControlsRenderDirective, decorators: [{
|
|
89
|
+
type: Directive,
|
|
90
|
+
args: [{
|
|
91
|
+
selector: `[controlRender]`,
|
|
92
|
+
}]
|
|
93
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { controlSetter: [{
|
|
94
|
+
type: Input,
|
|
95
|
+
args: ['control']
|
|
96
|
+
}] } });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1mb3JtL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0tYXJyYXkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBS3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQVFwRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLElBQUksT0FBTyxDQUFDLElBQXNCO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxRQUFRLEtBQVUsQ0FBQzs7aUhBTFIsb0JBQW9CO3FHQUFwQixvQkFBb0Isc0ZDdkJqQyxpaEJBbUJBLHFhRGdEYSwyQkFBMkI7MkZBNUMzQixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNOzhCQUc3QixJQUFJO3NCQUFyQixLQUFLO3VCQUFDLFNBQVM7O0FBYWxCLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsZ0JBQWUsQ0FBQztJQVpoQixJQUFJLE9BQU8sQ0FBQyxTQUFjO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUlELFFBQVEsS0FBSSxDQUFDO0lBRWIsVUFBVSxDQUFDLEtBQUs7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0hBeEJVLHFCQUFxQjtzR0FBckIscUJBQXFCLGlHRXJDbEMsc29OQThNQSw2NEJGM0lhLDJCQUEyQjsyRkE5QjNCLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU07MEVBRzdCLFNBQVM7c0JBQTFCLEtBQUs7dUJBQUMsU0FBUzs7QUE2QmxCLE1BQU0sT0FBTywyQkFBMkI7SUF1QnRDLFlBQW9CLGFBQStCO1FBQS9CLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQXRCbEMscUJBQWdCLEdBQUc7WUFDbEMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsNEJBQTRCO1lBQzFELENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtZQUNsRCxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSwwQkFBMEI7WUFDaEQsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsd0JBQXdCO1lBQ2xELENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLHFCQUFxQjtZQUM1QyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxxQkFBcUI7WUFDNUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsb0NBQW9DO1lBQzlELENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtZQUNsRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxxQkFBcUI7WUFDNUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsc0JBQXNCO1lBQzlDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLG9CQUFvQjtTQUMzQyxDQUFDO0lBVW9ELENBQUM7SUFUdkQsSUFBc0IsYUFBYSxDQUFDLE9BQWdDO1FBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLFNBQVMsRUFBRTtZQUNiLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLFlBQVksQ0FBQyxRQUFnQixDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDbEQ7SUFDSCxDQUFDOzt3SEFyQlUsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjt1R0FldUIsYUFBYTtzQkFBbEMsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnQGxpYi9jb3JlL2F1eC1kYXRhL2NvbnRyb2wtdHlwZXMuZW51bSc7XG5pbXBvcnQge1xuICBTcGVjaWFsRm9ybUdyb3VwLFxuICBTcGVjaWFsRm9ybUNvbnRyb2wsXG59IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XG5pbXBvcnQgeyBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1hdXRvY29tcGxldGUvc3BlY2lhbC1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtY2hlY2tib3gvc3BlY2lhbC1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BlY2lhbERhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWRhdGVwaWNrZXIvc3BlY2lhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLWRyb3Bkb3duL3NwZWNpYWwtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWNpYWwtaW5wdXQvc3BlY2lhbC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BlY2lhbExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC1sYWJlbC9zcGVjaWFsLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IFNwZWNpYWxVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi9zcGVjaWFsLXVwbG9hZC9zcGVjaWFsLXVwbG9hZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ2NvbnRyb2wnKSBmb3JtOiBTcGVjaWFsRm9ybUdyb3VwO1xuICBzZXQgY29udHJvbChmb3JtOiBTcGVjaWFsRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLWFycmF5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtZm9ybS1hcnJheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtZm9ybS1hcnJheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbEFycmF5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdjb250cm9sJykgZm9ybUFycmF5OiBhbnk7XG5cbiAgc2V0IGNvbnRyb2woZm9ybUFycmF5OiBhbnkpIHtcbiAgICB0aGlzLmZvcm1BcnJheSA9IGZvcm1BcnJheTtcbiAgfVxuXG4gIGdldCB3aXRoRm9ybUhlYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuc2V0dGluZ3Mud2l0aEZvcm1IZWFkZXI7XG4gIH1cblxuICBnZXQgc2V0dGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LnNldHRpbmdzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICByZW1vdmVJdGVtKGluZGV4KSB7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG4gIGFkZEl0ZW0oKSB7XG4gICAgdGhpcy5mb3JtQXJyYXkuYWRkSXRlbSgpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFtjb250cm9sUmVuZGVyXWAsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sc1JlbmRlckRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50c0J1ZmZlciA9IHtcbiAgICBbRUNvbnRyb2xUeXBlcy5hdXRvY29tcGxldGVdOiBTcGVjaWFsQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmNoZWNrYm94XTogU3BlY2lhbENoZWNrYm94Q29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmRhdGVdOiBTcGVjaWFsRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5kcm9wZG93bl06IFNwZWNpYWxEcm9wZG93bkNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5hcnJheV06IFNwZWNpYWxBcnJheUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5pbnB1dF06IFNwZWNpYWxJbnB1dENvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5tdWx0aXBsZV06IFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy50ZXh0QXJlYV06IFNwZWNpYWxUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy5sYWJlbF06IFNwZWNpYWxMYWJlbENvbXBvbmVudCxcbiAgICBbRUNvbnRyb2xUeXBlcy51cGxvYWRdOiBTcGVjaWFsVXBsb2FkQ29tcG9uZW50LFxuICAgIFtFQ29udHJvbFR5cGVzLmZvcm1dOiBTcGVjaWFsRm9ybUNvbXBvbmVudCxcbiAgfTtcbiAgQElucHV0KCdjb250cm9sJykgc2V0IGNvbnRyb2xTZXR0ZXIoY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPGFueT4pIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudHNCdWZmZXJbY29udHJvbC50eXBlXTtcbiAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueSkuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBib3gtYm9yZGVyIHAtMlwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJmb3JtXCJcbiAgICBbY2xhc3NdPVwiXG4gICAgICBmb3JtLmxhYmVsXG4gICAgICAgID8gJ3ctZnVsbCBtdC0yIHAtMyBib3JkZXItc2xhdGUtMjAwIGJvcmRlciBib3JkZXItc29saWQgYm94LWJvcmRlcidcbiAgICAgICAgOiAnY29udGFpbmVyJ1xuICAgIFwiXG4gID5cbiAgICA8aDEgKm5nSWY9XCIhIWZvcm0ubGFiZWxcIiBjbGFzcz1cImZvbnQtYm9sZCBweS0zXCI+e3sgZm9ybS5sYWJlbCB9fTwvaDE+XG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtd3JhcFwiPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGZvcm0uY29udHJvbHMgfCBjb250cm9sc0xpc3RcIlxuICAgICAgICBjb250cm9sUmVuZGVyXG4gICAgICAgIFtjb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGJveC1ib3JkZXIgcC0yXCI+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJmb3JtQXJyYXlcIlxyXG4gICAgY2xhc3M9XCJ3LWZ1bGwgbXQtMiBwLTMgYm9yZGVyLXNsYXRlLTIwMCBib3JkZXIgYm9yZGVyLXNvbGlkIGJveC1ib3JkZXJcIlxyXG4gID5cclxuICAgIDxoMSAqbmdJZj1cIiEhZm9ybUFycmF5LmxhYmVsXCIgY2xhc3M9XCJmb250LWJvbGQgcHktM1wiPlxyXG4gICAgICB7eyBmb3JtQXJyYXkubGFiZWwgfX1cclxuICAgIDwvaDE+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlLXkgZGl2aWRlLXNvbGlkXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cImZvcm1BcnJheS5mb3JtXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdtZDpncmlkLWNvbHMtMTUnOiBzZXR0aW5ncy53aXRoQWN0aW9uQnV0dG9ucyB9XCJcclxuICAgICAgICBjbGFzcz1cImdyaWQgZ2FwLTQgZ3JpZC1jb2xzLTEyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhd2l0aEZvcm1IZWFkZXI7IGVsc2UgRk9STUhFQURFUlJFRlwiPlxyXG4gICAgICAgICAgPGgyXHJcbiAgICAgICAgICAgIFtjbGFzc109XCJpdGVtLnN0eWxlQ2xhc3Nlc1wiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1BcnJheS5mb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5ncy53aXRoQWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgY29sLXN0YXJ0LTcgY29sLWVuZC0xM1xyXG4gICAgICAgICAgICAgIG1kOmNvbC1zdGFydC0xMyBtZDpjb2wtZW5kLTE2XHJcbiAgICAgICAgICAgICAgcGItNVxyXG4gICAgICAgICAgICAgIG15LWF1dG9cclxuICAgICAgICAgICAgICBtbC1hdXRvXHJcbiAgICAgICAgICAgICAgbWQ6bS1hdXRvXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNGT1JNSEVBREVSUkVGPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1BcnJheS5mb3JtLmNvbnRyb2xzIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICAgICAgY29udHJvbFJlbmRlclxyXG4gICAgICAgICAgICBbY29udHJvbF09XCJpdGVtXCJcclxuICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cInNldHRpbmdzLndpdGhBY3Rpb25CdXR0b25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICBjb2wtc3RhcnQtNyBjb2wtZW5kLTEzXHJcbiAgICAgICAgICAgICAgbWQ6Y29sLXN0YXJ0LTEzIG1kOmNvbC1lbmQtMTZcclxuICAgICAgICAgICAgICBwYi01XHJcbiAgICAgICAgICAgICAgbXktYXV0b1xyXG4gICAgICAgICAgICAgIG1sLWF1dG9cclxuICAgICAgICAgICAgICBtZDptLWF1dG9cclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm1BcnJheS5mb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgQWRkXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBwdC01IGdyaWQgZ2FwLTQgZ3JpZC1jb2xzLTEyIG1kOmdyaWQtY29scy0xNVwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGZvcm1Hcm91cCBvZiBmb3JtQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb3JtR3JvdXAuY29udHJvbHMgfCBjb250cm9sc0xpc3RcIlxyXG4gICAgICAgICAgY29udHJvbFJlbmRlclxyXG4gICAgICAgICAgW2NvbnRyb2xdPVwiaXRlbVwiXHJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgY29sLXN0YXJ0LTcgY29sLWVuZC0xM1xyXG4gICAgICAgICAgICBtZDpjb2wtc3RhcnQtMTMgbWQ6Y29sLWVuZC0xNlxyXG4gICAgICAgICAgICBwYi01XHJcbiAgICAgICAgICAgIG15LWF1dG9cclxuICAgICAgICAgICAgbWwtYXV0b1xyXG4gICAgICAgICAgICBtZDptLWF1dG9cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaSlcIj5cclxuICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDx0YWJsZSBjbGFzcz1cImZvcm0tYXJyYXktY29udGFpbmVyX190YWJsZVwiPlxyXG4gICAgPHRoZWFkICpuZ0lmPVwiZm9ybUFycmF5LmZvcm1cIj5cclxuICAgICAgPHRyXHJcbiAgICAgICAgKm5nSWY9XCJoZWFkZXJGb3JtOyBlbHNlIEhFQURFUkZPUk1SRUZcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1hcnJheS1jb250YWluZXJfX3RhYmxlLWhlYWRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8dGhcclxuICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZm9ybUFycmF5LmZvcm0gfCBjb250cm9sc0xpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGNvbnRyb2wubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0aCAqbmdJZj1cIiFmb3JtQXJyYXkucmVhZE9ubHlcIj48L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI0hFQURFUkZPUk1SRUY+XHJcbiAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtZm9ybS1oZWFkZXJcIj5cclxuICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlci1jZWxsXCJcclxuICAgICAgICAgICAgW25nU3dpdGNoXT1cImNvbnRyb2wudHlwZVwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGZvcm1BcnJheS5mb3JtIHwgY29udHJvbHNMaXN0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwLWZvcm0tY29udHJvbC1zZWxlY3RvclxyXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICA+PC9zcC1mb3JtLWNvbnRyb2wtc2VsZWN0b3I+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPHRoIGNsYXNzPVwiaGVhZGVyLWNlbGxcIiAqbmdJZj1cIiFmb3JtQXJyYXkucmVhZE9ubHlcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkFEREJVVFRPTlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC90aGVhZD4gLS0+XHJcblxyXG48IS0tIFtuZ1N0eWxlXT1cInsnbWF4LWhlaWdodCc6J2NhbGMoMTAwdmggLSAnK21heEhlaWdodCsncHgpJyB9XCI+IC0tPlxyXG48IS0tIDx0Ym9keT5cclxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBmb3JtR3JvdXAgb2YgZm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPHRkIFtuZ1N3aXRjaF09XCJjb250cm9sLnR5cGVcIiAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBmb3JtR3JvdXAuY29udHJvbHMgfCBjb250cm9sc0xpc3RcIj5cclxuICAgICAgICAgIDxzcC1mb3JtLWNvbnRyb2wtc2VsZWN0b3JcclxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICA+PC9zcC1mb3JtLWNvbnRyb2wtc2VsZWN0b3I+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgKm5nSWY9XCIhZm9ybUFycmF5LnJlYWRPbmx5XCI+XHJcbiAgICAgICAgICA8Ym1iLWJ1dHRvblxyXG4gICAgICAgICAgICBbaWNvbl09XCInZGVsZXRlX291dGxpbmUnXCJcclxuICAgICAgICAgICAgW3R5cGVdPVwiJ1JhaXNlZCdcIlxyXG4gICAgICAgICAgICBbc2l6ZV09XCInWExhcmdlJ1wiXHJcbiAgICAgICAgICAgIFtiZHJDb2xvcl09XCInZXJyb3ItNTAwJ1wiXHJcbiAgICAgICAgICAgIFt0Q29sb3JdPVwiJ2Vycm9yLTUwMCdcIlxyXG4gICAgICAgICAgICAob25DbGljayk9XCJkZWxldGVJdGVtKGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvYm1iLWJ1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT4gLS0+XHJcbjwhLS0gPC90YWJsZT4gLS0+XHJcblxyXG48IS0tIDxuZy10ZW1wbGF0ZSAjVEFCTEVUPlxyXG4gIDxkaXYgY2xhc3M9XCJtdC0xXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyRm9ybUVuYWJsZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb3JtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxhdXRvbWF0aWMtZm9ybXMgW2Zvcm1dPVwiZm9ybUFycmF5LmZvcm1cIiBbZW5hYmxlQnV0dG9uc109XCJmYWxzZVwiPlxyXG4gICAgICAgIDwvYXV0b21hdGljLWZvcm1zPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJBRERCVVRUT05cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24tY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWFjY29yZGlvbj5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWxcclxuICAgICAgICBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejFcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJcclxuICAgICAgICAgIGNsYXNzPVwiZXhwYW5kZWQtaGVhZGVyXCJcclxuICAgICAgICAgIGNvbGxhcHNlZEhlaWdodD1cIjNyZW1cIlxyXG4gICAgICAgICAgZXhwYW5kZWRIZWlnaHQ9XCIzcmVtXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZEhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWZvcm1BcnJheS5yZWFkT25seVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibW9iaWxlLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKGkpXCJcclxuICAgICAgICAgICAgY29sb3I9XCJ3YXJuXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgZGVsZXRlX291dGxpbmVcclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRCb2R5VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPC9tYXQtYWNjb3JkaW9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cInRleHQtZXJyb3JcIiAqbmdJZj1cImZvcm1BcnJheS5kaXJ0eSAmJiBmb3JtQXJyYXkuaW52YWxpZFwiPlxyXG4gIHt7IGZvcm1BcnJheS5lcnJvcnMgfCBlcnJvck1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI0FEREJVVFRPTj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkLWl0ZW0tYnRuXCI+XHJcbiAgICA8Ym1iLWJ1dHRvblxyXG4gICAgICBbaWNvbl09XCInYWRkJ1wiXHJcbiAgICAgIFt0eXBlXT1cIidSYWlzZWQnXCJcclxuICAgICAgW2JkckNvbG9yXT1cIidhdXgtc3VjY2VzcydcIlxyXG4gICAgICBbc2l6ZV09XCInWExhcmdlJ1wiXHJcbiAgICAgIFt0Q29sb3JdPVwiJ2F1eC1zdWNjZXNzJ1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhZm9ybUFycmF5LmZvcm0udmFsaWQgfHwgIWZvcm1BcnJheS5mb3JtLmRpcnR5XCJcclxuICAgICAgKG9uQ2xpY2spPVwiYWRkSXRlbUFjdGlvbigpXCJcclxuICAgID5cclxuICAgIDwvYm1iLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormControlsRenderDirective, SpecialFormComponent, SpecialArrayComponent, } from './special-form.component';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { FormControlsListPipeModule } from '../../pipes/controls-list-pipe/controls-list.pipe.module';
|
|
6
|
+
import { SpecialDropdownModule, SpecialInputModule, SpecialAutocompleteModule, SpecialDatepickerModule, SpecialMultipleAutocompleteModule, SpecialCheckboxModule, SpecialTextAreaModule, SpecialUploadModule, SpecialLabelModule, } from '../../components';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class SpecialFormModule {
|
|
9
|
+
}
|
|
10
|
+
SpecialFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
SpecialFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormModule, declarations: [SpecialArrayComponent,
|
|
12
|
+
FormControlsRenderDirective,
|
|
13
|
+
SpecialFormComponent], imports: [CommonModule,
|
|
14
|
+
FormControlsListPipeModule,
|
|
15
|
+
MatButtonModule,
|
|
16
|
+
SpecialDropdownModule,
|
|
17
|
+
SpecialInputModule,
|
|
18
|
+
SpecialAutocompleteModule,
|
|
19
|
+
SpecialDatepickerModule,
|
|
20
|
+
SpecialLabelModule,
|
|
21
|
+
SpecialMultipleAutocompleteModule,
|
|
22
|
+
SpecialCheckboxModule,
|
|
23
|
+
SpecialTextAreaModule,
|
|
24
|
+
SpecialUploadModule], exports: [SpecialArrayComponent,
|
|
25
|
+
FormControlsRenderDirective,
|
|
26
|
+
SpecialFormComponent] });
|
|
27
|
+
SpecialFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormModule, imports: [CommonModule,
|
|
28
|
+
FormControlsListPipeModule,
|
|
29
|
+
MatButtonModule,
|
|
30
|
+
SpecialDropdownModule,
|
|
31
|
+
SpecialInputModule,
|
|
32
|
+
SpecialAutocompleteModule,
|
|
33
|
+
SpecialDatepickerModule,
|
|
34
|
+
SpecialLabelModule,
|
|
35
|
+
SpecialMultipleAutocompleteModule,
|
|
36
|
+
SpecialCheckboxModule,
|
|
37
|
+
SpecialTextAreaModule,
|
|
38
|
+
SpecialUploadModule] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialFormModule, decorators: [{
|
|
40
|
+
type: NgModule,
|
|
41
|
+
args: [{
|
|
42
|
+
declarations: [
|
|
43
|
+
SpecialArrayComponent,
|
|
44
|
+
FormControlsRenderDirective,
|
|
45
|
+
SpecialFormComponent,
|
|
46
|
+
],
|
|
47
|
+
imports: [
|
|
48
|
+
CommonModule,
|
|
49
|
+
FormControlsListPipeModule,
|
|
50
|
+
MatButtonModule,
|
|
51
|
+
SpecialDropdownModule,
|
|
52
|
+
SpecialInputModule,
|
|
53
|
+
SpecialAutocompleteModule,
|
|
54
|
+
SpecialDatepickerModule,
|
|
55
|
+
SpecialLabelModule,
|
|
56
|
+
SpecialMultipleAutocompleteModule,
|
|
57
|
+
SpecialCheckboxModule,
|
|
58
|
+
SpecialTextAreaModule,
|
|
59
|
+
SpecialUploadModule,
|
|
60
|
+
],
|
|
61
|
+
exports: [
|
|
62
|
+
SpecialArrayComponent,
|
|
63
|
+
FormControlsRenderDirective,
|
|
64
|
+
SpecialFormComponent,
|
|
65
|
+
],
|
|
66
|
+
}]
|
|
67
|
+
}] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWwtZm9ybS9zcGVjaWFsLWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQyxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQzs7QUE0QjFCLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkF4QjFCLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0Isb0JBQW9CLGFBR3BCLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsaUNBQWlDO1FBQ2pDLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsbUJBQW1CLGFBR25CLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0Isb0JBQW9COytHQUdYLGlCQUFpQixZQW5CMUIsWUFBWTtRQUNaLDBCQUEwQjtRQUMxQixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQixpQ0FBaUM7UUFDakMscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixtQkFBbUI7MkZBUVYsaUJBQWlCO2tCQTFCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQiwyQkFBMkI7d0JBQzNCLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osMEJBQTBCO3dCQUMxQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix5QkFBeUI7d0JBQ3pCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQixpQ0FBaUM7d0JBQ2pDLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRyb2xzUmVuZGVyRGlyZWN0aXZlLFxuICBTcGVjaWFsRm9ybUNvbXBvbmVudCxcbiAgU3BlY2lhbEFycmF5Q29tcG9uZW50LFxufSBmcm9tICcuL3NwZWNpYWwtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEZvcm1Db250cm9sc0xpc3RQaXBlTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29udHJvbHMtbGlzdC1waXBlL2NvbnRyb2xzLWxpc3QucGlwZS5tb2R1bGUnO1xuaW1wb3J0IHtcbiAgU3BlY2lhbERyb3Bkb3duTW9kdWxlLFxuICBTcGVjaWFsSW5wdXRNb2R1bGUsXG4gIFNwZWNpYWxBdXRvY29tcGxldGVNb2R1bGUsXG4gIFNwZWNpYWxEYXRlcGlja2VyTW9kdWxlLFxuICBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVNb2R1bGUsXG4gIFNwZWNpYWxDaGVja2JveE1vZHVsZSxcbiAgU3BlY2lhbFRleHRBcmVhTW9kdWxlLFxuICBTcGVjaWFsVXBsb2FkTW9kdWxlLFxuICBTcGVjaWFsTGFiZWxNb2R1bGUsXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTcGVjaWFsQXJyYXlDb21wb25lbnQsXG4gICAgRm9ybUNvbnRyb2xzUmVuZGVyRGlyZWN0aXZlLFxuICAgIFNwZWNpYWxGb3JtQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1Db250cm9sc0xpc3RQaXBlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBTcGVjaWFsRHJvcGRvd25Nb2R1bGUsXG4gICAgU3BlY2lhbElucHV0TW9kdWxlLFxuICAgIFNwZWNpYWxBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgU3BlY2lhbERhdGVwaWNrZXJNb2R1bGUsXG4gICAgU3BlY2lhbExhYmVsTW9kdWxlLFxuICAgIFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBTcGVjaWFsQ2hlY2tib3hNb2R1bGUsXG4gICAgU3BlY2lhbFRleHRBcmVhTW9kdWxlLFxuICAgIFNwZWNpYWxVcGxvYWRNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTcGVjaWFsQXJyYXlDb21wb25lbnQsXG4gICAgRm9ybUNvbnRyb2xzUmVuZGVyRGlyZWN0aXZlLFxuICAgIFNwZWNpYWxGb3JtQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTcGVjaWFsRm9ybU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngneat/input-mask";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/form-field";
|
|
6
|
+
import * as i4 from "@angular/material/input";
|
|
7
|
+
import * as i5 from "@angular/material/icon";
|
|
8
|
+
import * as i6 from "@angular/forms";
|
|
9
|
+
import * as i7 from "@angular/material/button";
|
|
10
|
+
import * as i8 from "../../pipes/error-message-pipe/error.pipe";
|
|
11
|
+
export class SpecialInputComponent {
|
|
12
|
+
constructor() { }
|
|
13
|
+
ngOnInit() { }
|
|
14
|
+
onEnterClick() {
|
|
15
|
+
if (this.settings.onEnter) {
|
|
16
|
+
this.settings.onEnter(this.control.value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
onBlurAction() {
|
|
20
|
+
if (this.settings.onBlur) {
|
|
21
|
+
this.settings.onBlur(this.control.value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
get settings() {
|
|
25
|
+
return this.control.settings;
|
|
26
|
+
}
|
|
27
|
+
iconClick(event) {
|
|
28
|
+
if (this.settings.iconAction) {
|
|
29
|
+
this.settings.iconAction(this.control.value);
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
SpecialInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
SpecialInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialInputComponent, selector: "sp-input", inputs: { control: "control" }, ngImport: i0, template: "<mat-form-field\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'standard'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <button\n *ngIf=\"settings?.icon\"\n mat-icon-button\n matSuffix\n (click)=\"iconClick($event)\"\n >\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1.InputMaskDirective, selector: "[inputMask]", inputs: ["inputMask"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i4.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: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i8.ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'sp-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field\n *ngIf=\"control\"\n [id]=\"control.elementId\"\n class=\"w-full {{ control.styleClasses }}\"\n [appearance]=\"control.label ? 'outline' : 'standard'\"\n>\n <mat-label *ngIf=\"control.label\">{{ control.label }}</mat-label>\n <input\n matInput\n (blur)=\"onBlurAction()\"\n (keydown.enter)=\"onEnterClick()\"\n [inputMask]=\"settings?.mask\"\n autocomplete=\"off\"\n [type]=\"settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n />\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <button\n *ngIf=\"settings?.icon\"\n mat-icon-button\n matSuffix\n (click)=\"iconClick($event)\"\n >\n <mat-icon>\n {{ settings.icon }}\n </mat-icon>\n </button>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:contents}\n"] }]
|
|
39
|
+
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWlucHV0L3NwZWNpYWwtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1pbnB1dC9zcGVjaWFsLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBU2xGLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQUs7UUFDYixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7a0hBNUJVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdGQ1RsQyw4Z0NBcUNBOzJGRDVCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsVUFBVSxtQkFHSCx1QkFBdUIsQ0FBQyxNQUFNOzBFQUd0QyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcGVjaWFsRm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMnO1xuaW1wb3J0IHsgSUlucHV0U2V0dGluZ3MgfSBmcm9tICcuL3NwZWNpYWwtaW5wdXQuaW50ZXJmYWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcGVjaWFsLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTcGVjaWFsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8SUlucHV0U2V0dGluZ3M+O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgb25FbnRlckNsaWNrKCkge1xuICAgIGlmICh0aGlzLnNldHRpbmdzLm9uRW50ZXIpIHtcbiAgICAgIHRoaXMuc2V0dGluZ3Mub25FbnRlcih0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1ckFjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vbkJsdXIpIHtcbiAgICAgIHRoaXMuc2V0dGluZ3Mub25CbHVyKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNldHRpbmdzKCk6IElJbnB1dFNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xuICB9XG5cbiAgaWNvbkNsaWNrKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuaWNvbkFjdGlvbikge1xuICAgICAgdGhpcy5zZXR0aW5ncy5pY29uQWN0aW9uKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbnRyb2xcIlxuICBbaWRdPVwiY29udHJvbC5lbGVtZW50SWRcIlxuICBjbGFzcz1cInctZnVsbCB7eyBjb250cm9sLnN0eWxlQ2xhc3NlcyB9fVwiXG4gIFthcHBlYXJhbmNlXT1cImNvbnRyb2wubGFiZWwgPyAnb3V0bGluZScgOiAnc3RhbmRhcmQnXCJcbj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbnRyb2wubGFiZWxcIj57eyBjb250cm9sLmxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgKGJsdXIpPVwib25CbHVyQWN0aW9uKClcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJDbGljaygpXCJcbiAgICBbaW5wdXRNYXNrXT1cInNldHRpbmdzPy5tYXNrXCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIFt0eXBlXT1cInNldHRpbmdzPy50eXBlIHx8ICd0ZXh0J1wiXG4gICAgW3JlYWRvbmx5XT1cImNvbnRyb2wucmVhZE9ubHlcIlxuICAgIFtyZXF1aXJlZF09XCJjb250cm9sLnJlcXVpcmVkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29udHJvbC5wbGFjZWhvbGRlclwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAvPlxuICA8bWF0LWljb24gKm5nSWY9XCJjb250cm9sLmljb25cIiBtYXRQcmVmaXg+e3sgY29udHJvbC5pY29uIH19IDwvbWF0LWljb24+XG4gIDxtYXQtaGludD5cbiAgICB7eyBjb250cm9sLnRvb2x0aXAgfX1cbiAgPC9tYXQtaGludD5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2V0dGluZ3M/Lmljb25cIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIG1hdFN1ZmZpeFxuICAgIChjbGljayk9XCJpY29uQ2xpY2soJGV2ZW50KVwiXG4gID5cbiAgICA8bWF0LWljb24+XG4gICAgICB7eyBzZXR0aW5ncy5pY29uIH19XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxtYXQtZXJyb3I+XG4gICAge3sgY29udHJvbC5lcnJvcnMgfCBlcnJvck1lc3NhZ2U6IGNvbnRyb2wuZXJyb3JNZXNzYWdlcyB9fVxuICA8L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1pbnB1dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWlucHV0L3NwZWNpYWwtaW5wdXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dG1hc2tPcHRpb25zIH0gZnJvbSAnQG5nbmVhdC9pbnB1dC1tYXNrJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkRGF0YSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgdHlwZSBJSW5wdXRTZXR0aW5ncyA9IHtcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG1hc2s/OiBJbnB1dG1hc2tPcHRpb25zPGFueT47XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQWN0aW9uPzogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBvbkVudGVyPzogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBvbkJsdXI/OiAoZGF0YTogYW55KSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJSW5wdXRGaWVsZCBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJSW5wdXRTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmlucHV0O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { SpecialInputComponent } from './special-input.component';
|
|
4
|
+
import { MatInputModule } from '@angular/material/input';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { InputMaskModule } from "@ngneat/input-mask";
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { ErrorMessagePipeModule } from '../../pipes';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class SpecialInputModule {
|
|
12
|
+
}
|
|
13
|
+
SpecialInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
SpecialInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputModule, declarations: [SpecialInputComponent], imports: [InputMaskModule,
|
|
15
|
+
CommonModule,
|
|
16
|
+
MatInputModule,
|
|
17
|
+
MatIconModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
MatButtonModule,
|
|
20
|
+
ErrorMessagePipeModule], exports: [SpecialInputComponent] });
|
|
21
|
+
SpecialInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputModule, imports: [InputMaskModule,
|
|
22
|
+
CommonModule,
|
|
23
|
+
MatInputModule,
|
|
24
|
+
MatIconModule,
|
|
25
|
+
ReactiveFormsModule,
|
|
26
|
+
MatButtonModule,
|
|
27
|
+
ErrorMessagePipeModule] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialInputModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
declarations: [SpecialInputComponent],
|
|
32
|
+
imports: [
|
|
33
|
+
InputMaskModule,
|
|
34
|
+
CommonModule,
|
|
35
|
+
MatInputModule,
|
|
36
|
+
MatIconModule,
|
|
37
|
+
ReactiveFormsModule,
|
|
38
|
+
MatButtonModule,
|
|
39
|
+
ErrorMessagePipeModule
|
|
40
|
+
],
|
|
41
|
+
exports: [SpecialInputComponent],
|
|
42
|
+
}]
|
|
43
|
+
}] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWlucHV0L3NwZWNpYWwtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBZXJELE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFaZCxxQkFBcUIsYUFFbEMsZUFBZTtRQUNmLFlBQVk7UUFDWixjQUFjO1FBQ2QsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysc0JBQXNCLGFBRWQscUJBQXFCO2dIQUVwQixrQkFBa0IsWUFWM0IsZUFBZTtRQUNmLFlBQVk7UUFDWixjQUFjO1FBQ2QsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysc0JBQXNCOzJGQUliLGtCQUFrQjtrQkFiOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTcGVjaWFsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3NwZWNpYWwtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IElucHV0TWFza01vZHVsZSB9IGZyb20gXCJAbmduZWF0L2lucHV0LW1hc2tcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VQaXBlTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTcGVjaWFsSW5wdXRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgSW5wdXRNYXNrTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIEVycm9yTWVzc2FnZVBpcGVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1NwZWNpYWxJbnB1dENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNwZWNpYWxJbnB1dE1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../../pipes/text-by-function/text-by-function.pipe";
|
|
5
|
+
export class SpecialLabelComponent {
|
|
6
|
+
constructor() { }
|
|
7
|
+
ngOnInit() { }
|
|
8
|
+
get settings() {
|
|
9
|
+
return this.control.settings || { isLink: false };
|
|
10
|
+
}
|
|
11
|
+
onLink() {
|
|
12
|
+
if (this.settings.isLink && this.settings.onClickLink) {
|
|
13
|
+
this.settings.onClickLink(this.control.value);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
SpecialLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
SpecialLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialLabelComponent, selector: "sp-label", inputs: { control: "control" }, ngImport: i0, template: "<div class=\"px-2 {{control.styleClasses}} {{ control.value | textByFunction: settings.stylesPipe}}\">\n <div *ngIf=\"!!control.label\" class=\"font-bold\">{{control.label}}</div>\n <div [ngClass]=\"{'cursor-pointer text-blue-600 hover:text-blue-700':settings.isLink }\" (click)=\"onLink()\">\n {{ control.value | textByFunction: control.settings.pipe}}\n </div>\n</div>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'sp-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"px-2 {{control.styleClasses}} {{ control.value | textByFunction: settings.stylesPipe}}\">\n <div *ngIf=\"!!control.label\" class=\"font-bold\">{{control.label}}</div>\n <div [ngClass]=\"{'cursor-pointer text-blue-600 hover:text-blue-700':settings.isLink }\" (click)=\"onLink()\">\n {{ control.value | textByFunction: control.settings.pipe}}\n </div>\n</div>\n", styles: [":host{display:contents}\n"] }]
|
|
22
|
+
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWxhYmVsL3NwZWNpYWwtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1sYWJlbC9zcGVjaWFsLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBVWxGLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQzs7a0hBZlUscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0ZDVmxDLDRYQU1BOzJGRElhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU07MEVBR3RDLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XG5pbXBvcnQgeyBJTGFiZWxTZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC1sYWJlbC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BlY2lhbC1sYWJlbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbExhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29udHJvbDogU3BlY2lhbEZvcm1Db250cm9sPElMYWJlbFNldHRpbmdzPjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldCBzZXR0aW5ncygpOiBJTGFiZWxTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5zZXR0aW5ncyB8fCB7IGlzTGluazogZmFsc2UgfTtcbiAgfVxuXG4gIG9uTGluaygpIHtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5pc0xpbmsgJiYgdGhpcy5zZXR0aW5ncy5vbkNsaWNrTGluaykge1xuICAgICAgdGhpcy5zZXR0aW5ncy5vbkNsaWNrTGluayh0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB4LTIge3tjb250cm9sLnN0eWxlQ2xhc3Nlc319IHt7IGNvbnRyb2wudmFsdWUgfCB0ZXh0QnlGdW5jdGlvbjogc2V0dGluZ3Muc3R5bGVzUGlwZX19XCI+XG4gIDxkaXYgKm5nSWY9XCIhIWNvbnRyb2wubGFiZWxcIiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7Y29udHJvbC5sYWJlbH19PC9kaXY+XG4gIDxkaXYgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlciB0ZXh0LWJsdWUtNjAwIGhvdmVyOnRleHQtYmx1ZS03MDAnOnNldHRpbmdzLmlzTGluayB9XCIgKGNsaWNrKT1cIm9uTGluaygpXCI+XG4gICAge3sgY29udHJvbC52YWx1ZSB8IHRleHRCeUZ1bmN0aW9uOiBjb250cm9sLnNldHRpbmdzLnBpcGV9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1sYWJlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWxhYmVsL3NwZWNpYWwtbGFiZWwuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIElMYWJlbFNldHRpbmdzID0ge1xyXG4gIHBpcGU/OiAodmFsdWUpID0+IHN0cmluZztcclxuICBzdHlsZXNQaXBlPzogKHZhbHVlKSA9PiBzdHJpbmc7XHJcbiAgaXNMaW5rOiBib29sZWFuO1xyXG4gIG9uQ2xpY2tMaW5rPzogKHZhbHVlKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTGFiZWxGaWVsZCBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJTGFiZWxTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLmxhYmVsO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { SpecialLabelComponent } from './special-label.component';
|
|
4
|
+
import { MatInputModule } from '@angular/material/input';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { InputMaskModule } from "@ngneat/input-mask";
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class SpecialLabelModule {
|
|
12
|
+
}
|
|
13
|
+
SpecialLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
SpecialLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelModule, declarations: [SpecialLabelComponent], imports: [InputMaskModule,
|
|
15
|
+
CommonModule,
|
|
16
|
+
MatInputModule,
|
|
17
|
+
MatIconModule,
|
|
18
|
+
ReactiveFormsModule,
|
|
19
|
+
MatButtonModule,
|
|
20
|
+
TextByFunctionPipeModule,
|
|
21
|
+
ErrorMessagePipeModule], exports: [SpecialLabelComponent] });
|
|
22
|
+
SpecialLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelModule, imports: [InputMaskModule,
|
|
23
|
+
CommonModule,
|
|
24
|
+
MatInputModule,
|
|
25
|
+
MatIconModule,
|
|
26
|
+
ReactiveFormsModule,
|
|
27
|
+
MatButtonModule,
|
|
28
|
+
TextByFunctionPipeModule,
|
|
29
|
+
ErrorMessagePipeModule] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialLabelModule, decorators: [{
|
|
31
|
+
type: NgModule,
|
|
32
|
+
args: [{
|
|
33
|
+
declarations: [SpecialLabelComponent],
|
|
34
|
+
imports: [
|
|
35
|
+
InputMaskModule,
|
|
36
|
+
CommonModule,
|
|
37
|
+
MatInputModule,
|
|
38
|
+
MatIconModule,
|
|
39
|
+
ReactiveFormsModule,
|
|
40
|
+
MatButtonModule,
|
|
41
|
+
TextByFunctionPipeModule,
|
|
42
|
+
ErrorMessagePipeModule
|
|
43
|
+
],
|
|
44
|
+
exports: [SpecialLabelComponent],
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1sYWJlbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9zcGVjaWFsLWxhYmVsL3NwZWNpYWwtbGFiZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBZ0IvRSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBYmQscUJBQXFCLGFBRWxDLGVBQWU7UUFDZixZQUFZO1FBQ1osY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixzQkFBc0IsYUFFZCxxQkFBcUI7Z0hBRXBCLGtCQUFrQixZQVgzQixlQUFlO1FBQ2YsWUFBWTtRQUNaLGNBQWM7UUFDZCxhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsc0JBQXNCOzJGQUliLGtCQUFrQjtrQkFkOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNwZWNpYWxMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSBcIkBuZ25lYXQvaW5wdXQtbWFza1wiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZVBpcGVNb2R1bGUsIFRleHRCeUZ1bmN0aW9uUGlwZU1vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BlY2lhbExhYmVsQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIElucHV0TWFza01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBUZXh0QnlGdW5jdGlvblBpcGVNb2R1bGUsXG4gICAgRXJyb3JNZXNzYWdlUGlwZU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbU3BlY2lhbExhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbExhYmVsTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { debounceTime } from 'rxjs/operators';
|
|
3
|
+
import { Subscription } from 'rxjs';
|
|
4
|
+
import { FormControl } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/form-field";
|
|
7
|
+
import * as i2 from "@angular/material/input";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/material/autocomplete";
|
|
10
|
+
import * as i5 from "@angular/material/core";
|
|
11
|
+
import * as i6 from "@angular/material/icon";
|
|
12
|
+
import * as i7 from "@angular/forms";
|
|
13
|
+
import * as i8 from "@angular/material/button";
|
|
14
|
+
import * as i9 from "@angular/material/chips";
|
|
15
|
+
import * as i10 from "../../pipes/error-message-pipe/error.pipe";
|
|
16
|
+
import * as i11 from "../../pipes/text-by-function/text-by-function.pipe";
|
|
17
|
+
export class SpecialMultipleAutocompleteComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.subs = new Subscription();
|
|
20
|
+
this.internalControl = new FormControl();
|
|
21
|
+
this.configValue = (item) => {
|
|
22
|
+
if (!item)
|
|
23
|
+
return '';
|
|
24
|
+
const fieldName = this.control.settings.fieldName;
|
|
25
|
+
return fieldName instanceof Function ? fieldName(item) : item[fieldName];
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.init();
|
|
30
|
+
}
|
|
31
|
+
get settings() {
|
|
32
|
+
return this.control.settings;
|
|
33
|
+
}
|
|
34
|
+
init() {
|
|
35
|
+
this.subs.add(this.internalControl.valueChanges
|
|
36
|
+
.pipe(debounceTime(500))
|
|
37
|
+
.subscribe((value) => {
|
|
38
|
+
if (typeof value === 'string') {
|
|
39
|
+
this.control.settings.getData(value, this.control);
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
optionSelected(data) {
|
|
44
|
+
const newItem = data.option.value;
|
|
45
|
+
this.internalControl.reset();
|
|
46
|
+
this.control.setValue([
|
|
47
|
+
...(this.control.value || []).filter((item) => item[this.control.settings.fieldId] !==
|
|
48
|
+
newItem[this.control.settings.fieldId]),
|
|
49
|
+
newItem,
|
|
50
|
+
]);
|
|
51
|
+
if (this.settings.onSelect)
|
|
52
|
+
this.settings.onSelect(newItem);
|
|
53
|
+
}
|
|
54
|
+
iconClick(event) {
|
|
55
|
+
if (this.settings.iconAction) {
|
|
56
|
+
this.settings.iconAction(this.control.value);
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
remove(value) {
|
|
61
|
+
let currentValues = Array.from(this.control.value);
|
|
62
|
+
const index = currentValues.indexOf(value);
|
|
63
|
+
if (index > -1) {
|
|
64
|
+
currentValues.splice(index, 1);
|
|
65
|
+
const value = currentValues;
|
|
66
|
+
this.control.markAsDirty();
|
|
67
|
+
this.control.setValue(value);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
ngOnDestroy() {
|
|
71
|
+
this.subs.unsubscribe();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
SpecialMultipleAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
SpecialMultipleAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialMultipleAutocompleteComponent, selector: "sp-multiple-autocomplete", inputs: { control: "control" }, ngImport: i0, template: "<div\r\n class=\"w-full {{ control.styleClasses }}\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'standard'\"\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 class=\"autocomplete-options\"\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 object-contain\"\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-list>\r\n <mat-chip\r\n class=\"chip-style\"\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 object-contain\"\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-list>\r\n</div>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i1.MatSuffix, selector: "[matSuffix]" }, { 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: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i9.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i9.MatChipRemove, selector: "[matChipRemove]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.ErrorMessagePipe, name: "errorMessage" }, { kind: "pipe", type: i11.TextByFunctionPipe, name: "textByFunction" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'sp-multiple-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"w-full {{ control.styleClasses }}\"\r\n *ngIf=\"control && !control.hidden\"\r\n>\r\n <mat-form-field\r\n class=\"w-full\"\r\n [id]=\"control.elementId\"\r\n [appearance]=\"control.label ? 'outline' : 'standard'\"\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 class=\"autocomplete-options\"\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 object-contain\"\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-list>\r\n <mat-chip\r\n class=\"chip-style\"\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 object-contain\"\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-list>\r\n</div>\r\n", styles: [":host{display:contents}\n"] }]
|
|
79
|
+
}], ctorParameters: function () { return []; }, propDecorators: { control: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTyxvQ0FBb0M7SUFNL0M7UUFIQSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixvQkFBZSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUEwRHBDLGdCQUFXLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDbEQsT0FBTyxTQUFTLFlBQVksUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7SUE1RGEsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDWCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVk7YUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDcEQ7UUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFrQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2xDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQ3pDO1lBQ0QsT0FBTztTQUNSLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBWTtRQUNqQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQVFELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7O2lJQXRFVSxvQ0FBb0M7cUhBQXBDLG9DQUFvQyxnR0NkakQseS9FQWtGQTsyRkRwRWEsb0NBQW9DO2tCQU5oRCxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTswRUFHdEMsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XHJcbmltcG9ydCB7IElNdWx0aXBsZUF1dG9jb21wbGV0ZVNldHRpbmdzIH0gZnJvbSAnLi9zcGVjaWFsLW11bHRpcGxlLWF1dG9jb21wbGV0ZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3AtbXVsdGlwbGUtYXV0b2NvbXBsZXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtbXVsdGlwbGUtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjaWFsTXVsdGlwbGVBdXRvY29tcGxldGVDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbnRyb2w6IFNwZWNpYWxGb3JtQ29udHJvbDxJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncz47XHJcblxyXG4gIHN1YnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgaW50ZXJuYWxDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGdldCBzZXR0aW5ncygpOiBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMuc3Vicy5hZGQoXHJcbiAgICAgIHRoaXMuaW50ZXJuYWxDb250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0dGluZ3MuZ2V0RGF0YSh2YWx1ZSwgdGhpcy5jb250cm9sKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wdGlvblNlbGVjdGVkKGRhdGE6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IG5ld0l0ZW0gPSBkYXRhLm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuaW50ZXJuYWxDb250cm9sLnJlc2V0KCk7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoW1xyXG4gICAgICAuLi4odGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKS5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0pID0+XHJcbiAgICAgICAgICBpdGVtW3RoaXMuY29udHJvbC5zZXR0aW5ncy5maWVsZElkXSAhPT1cclxuICAgICAgICAgIG5ld0l0ZW1bdGhpcy5jb250cm9sLnNldHRpbmdzLmZpZWxkSWRdXHJcbiAgICAgICksXHJcbiAgICAgIG5ld0l0ZW0sXHJcbiAgICBdKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vblNlbGVjdCkgdGhpcy5zZXR0aW5ncy5vblNlbGVjdChuZXdJdGVtKTtcclxuICB9XHJcblxyXG4gIGljb25DbGljayhldmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuaWNvbkFjdGlvbikge1xyXG4gICAgICB0aGlzLnNldHRpbmdzLmljb25BY3Rpb24odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmUodmFsdWU6IGFueVtdKTogdm9pZCB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlcyA9IEFycmF5LmZyb20odGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudFZhbHVlcy5pbmRleE9mKHZhbHVlKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICBjdXJyZW50VmFsdWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY3VycmVudFZhbHVlcztcclxuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25maWdWYWx1ZSA9IChpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmICghaXRlbSkgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5jb250cm9sLnNldHRpbmdzLmZpZWxkTmFtZTtcclxuICAgIHJldHVybiBmaWVsZE5hbWUgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IGZpZWxkTmFtZShpdGVtKSA6IGl0ZW1bZmllbGROYW1lXTtcclxuICB9O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJ3LWZ1bGwge3sgY29udHJvbC5zdHlsZUNsYXNzZXMgfX1cIlxyXG4gICpuZ0lmPVwiY29udHJvbCAmJiAhY29udHJvbC5oaWRkZW5cIlxyXG4+XHJcbiAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICBjbGFzcz1cInctZnVsbFwiXHJcbiAgICBbaWRdPVwiY29udHJvbC5lbGVtZW50SWRcIlxyXG4gICAgW2FwcGVhcmFuY2VdPVwiY29udHJvbC5sYWJlbCA/ICdvdXRsaW5lJyA6ICdzdGFuZGFyZCdcIlxyXG4gID5cclxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb250cm9sLmxhYmVsXCI+XHJcbiAgICAgIHt7IGNvbnRyb2wubGFiZWwgfX1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImNvbnRyb2wucmVxdWlyZWQgJiYgIWNvbnRyb2wudmFsdWU/Lmxlbmd0aFwiXHJcbiAgICAgIFtyZWFkb25seV09XCJjb250cm9sLnJlYWRPbmx5XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnRyb2wucGxhY2Vob2xkZXJcIlxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxDb250cm9sXCJcclxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS1vcHRpb25zXCJcclxuICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICBbZGlzcGxheVdpdGhdPVwiY29uZmlnVmFsdWVcIlxyXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZXR0aW5ncz8uc291cmNlIHwgYXN5bmNcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZ3MuZmllbGRJbWFnZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidy04IHByLTIgb2JqZWN0LWNvbnRhaW5cIlxyXG4gICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICBbc3JjXT1cIm9wdGlvbiB8IHRleHRCeUZ1bmN0aW9uOiBzZXR0aW5ncy5maWVsZEltYWdlXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3sgb3B0aW9uIHwgdGV4dEJ5RnVuY3Rpb246IHNldHRpbmdzLmZpZWxkTmFtZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJjb250cm9sLmljb25cIiBtYXRQcmVmaXg+e3sgY29udHJvbC5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCJzZXR0aW5ncy5pY29uXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAoY2xpY2spPVwiaWNvbkNsaWNrKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24+XHJcbiAgICAgICAge3sgc2V0dGluZ3MuaWNvbiB9fVxyXG4gICAgICA8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8bWF0LWhpbnQ+e3sgY29udHJvbC50b29sdGlwIH19PC9tYXQtaGludD5cclxuICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgIHt7IGNvbnRyb2wuZXJyb3JzIHwgZXJyb3JNZXNzYWdlOiBjb250cm9sLmVycm9yTWVzc2FnZXMgfX1cclxuICAgIDwvbWF0LWVycm9yPlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gIDxtYXQtY2hpcC1saXN0PlxyXG4gICAgPG1hdC1jaGlwXHJcbiAgICAgIGNsYXNzPVwiY2hpcC1zdHlsZVwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBjaGlwIG9mIGNvbnRyb2wudmFsdWVcIlxyXG4gICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAocmVtb3ZlZCk9XCJyZW1vdmUoY2hpcClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICAqbmdJZj1cInNldHRpbmdzLmZpZWxkSW1hZ2VcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ3LTggcHItMiBvYmplY3QtY29udGFpblwiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgW3NyY109XCJjaGlwIHwgdGV4dEJ5RnVuY3Rpb246IHNldHRpbmdzLmZpZWxkSW1hZ2VcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAge3sgY2hpcCB8IHRleHRCeUZ1bmN0aW9uOiBzZXR0aW5ncy5maWVsZE5hbWUgfX1cclxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWNoaXA+XHJcbiAgPC9tYXQtY2hpcC1saXN0PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRUNvbnRyb2xUeXBlcyB9IGZyb20gJy4uLy4uL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgSUZpZWxkRGF0YSB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC1iYXNpY3MuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgdHlwZSBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncyA9IHtcclxuICBnZXREYXRhOiAocXVlcnk6IHN0cmluZywgY29udHJvbD86IEFic3RyYWN0Q29udHJvbCkgPT4gdm9pZDtcclxuICBzb3VyY2U6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGZpZWxkSWQ6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGljb25BY3Rpb24/OiAoZGF0YTogYW55KSA9PiB2b2lkO1xyXG4gIG9uU2VsZWN0PzogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxuICBmaWVsZE5hbWU6IHN0cmluZyB8ICgoYT86IGFueSkgPT4gc3RyaW5nKTtcclxuICBmaWVsZEltYWdlPzogc3RyaW5nIHwgKChhPzogYW55KSA9PiBzdHJpbmcpO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTXVsdGlwbGVBdXRvY29tcGxldGVGaWVsZCBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJTXVsdGlwbGVBdXRvY29tcGxldGVTZXR0aW5ncztcclxuICB0eXBlOiBFQ29udHJvbFR5cGVzLm11bHRpcGxlO1xyXG59XHJcbiJdfQ==
|