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.
Files changed (96) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/components/index.mjs +22 -0
  3. package/esm2020/lib/components/special-autocomplete/special-autocomplete.component.mjs +61 -0
  4. package/esm2020/lib/components/special-autocomplete/special-autocomplete.interface.mjs +2 -0
  5. package/esm2020/lib/components/special-autocomplete/special-autocomplete.module.mjs +47 -0
  6. package/esm2020/lib/components/special-checkbox/special-checkbox.component.mjs +20 -0
  7. package/esm2020/lib/components/special-checkbox/special-checkbox.interface.mjs +2 -0
  8. package/esm2020/lib/components/special-checkbox/special-checkbox.module.mjs +47 -0
  9. package/esm2020/lib/components/special-datepicker/special-datepicker.component.mjs +24 -0
  10. package/esm2020/lib/components/special-datepicker/special-datepicker.interface.mjs +2 -0
  11. package/esm2020/lib/components/special-datepicker/special-datepicker.module.mjs +48 -0
  12. package/esm2020/lib/components/special-dropdown/special-dropdown.component.mjs +35 -0
  13. package/esm2020/lib/components/special-dropdown/special-dropdown.interface.mjs +2 -0
  14. package/esm2020/lib/components/special-dropdown/special-dropdown.module.mjs +43 -0
  15. package/esm2020/lib/components/special-form/special-form.component.mjs +97 -0
  16. package/esm2020/lib/components/special-form/special-form.module.mjs +68 -0
  17. package/esm2020/lib/components/special-input/special-input.component.mjs +42 -0
  18. package/esm2020/lib/components/special-input/special-input.interface.mjs +2 -0
  19. package/esm2020/lib/components/special-input/special-input.module.mjs +44 -0
  20. package/esm2020/lib/components/special-label/special-label.component.mjs +25 -0
  21. package/esm2020/lib/components/special-label/special-label.interface.mjs +2 -0
  22. package/esm2020/lib/components/special-label/special-label.module.mjs +47 -0
  23. package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.mjs +82 -0
  24. package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.mjs +2 -0
  25. package/esm2020/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.mjs +51 -0
  26. package/esm2020/lib/components/special-text-area/special-text-area.component.mjs +30 -0
  27. package/esm2020/lib/components/special-text-area/special-text-area.interface.mjs +2 -0
  28. package/esm2020/lib/components/special-text-area/special-text-area.module.mjs +44 -0
  29. package/esm2020/lib/components/special-upload/special-upload.component.mjs +69 -0
  30. package/esm2020/lib/components/special-upload/special-upload.interface.mjs +2 -0
  31. package/esm2020/lib/components/special-upload/special-upload.module.mjs +43 -0
  32. package/esm2020/lib/core/aux-data/control-types.enum.mjs +18 -0
  33. package/esm2020/lib/core/forms/special-forms.mjs +238 -0
  34. package/esm2020/lib/core/interfaces/field-basics.interfaces.mjs +2 -0
  35. package/esm2020/lib/core/interfaces/form.interfaces.mjs +2 -0
  36. package/esm2020/lib/core/services/index.mjs +3 -0
  37. package/esm2020/lib/core/services/special-form-builder/special-form-builder.service.mjs +156 -0
  38. package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.mjs +18 -0
  39. package/esm2020/lib/pipes/controls-list-pipe/controls-list.pipe.module.mjs +18 -0
  40. package/esm2020/lib/pipes/error-message-pipe/error.pipe.mjs +22 -0
  41. package/esm2020/lib/pipes/error-message-pipe/error.pipe.module.mjs +20 -0
  42. package/esm2020/lib/pipes/index.mjs +3 -0
  43. package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.mjs +22 -0
  44. package/esm2020/lib/pipes/text-by-function/text-by-function.pipe.module.mjs +20 -0
  45. package/esm2020/public-api.mjs +6 -0
  46. package/esm2020/special-forms.mjs +5 -0
  47. package/fesm2015/special-forms.mjs +1292 -0
  48. package/fesm2015/special-forms.mjs.map +1 -0
  49. package/fesm2020/special-forms.mjs +1319 -0
  50. package/fesm2020/special-forms.mjs.map +1 -0
  51. package/index.d.ts +5 -0
  52. package/lib/components/index.d.ts +21 -0
  53. package/lib/components/special-autocomplete/special-autocomplete.component.d.ts +19 -0
  54. package/lib/components/special-autocomplete/special-autocomplete.interface.d.ts +18 -0
  55. package/lib/components/special-autocomplete/special-autocomplete.module.d.ts +15 -0
  56. package/lib/components/special-checkbox/special-checkbox.component.d.ts +11 -0
  57. package/lib/components/special-checkbox/special-checkbox.interface.d.ts +10 -0
  58. package/lib/components/special-checkbox/special-checkbox.module.d.ts +14 -0
  59. package/lib/components/special-datepicker/special-datepicker.component.d.ts +12 -0
  60. package/lib/components/special-datepicker/special-datepicker.interface.d.ts +11 -0
  61. package/lib/components/special-datepicker/special-datepicker.module.d.ts +15 -0
  62. package/lib/components/special-dropdown/special-dropdown.component.d.ts +11 -0
  63. package/lib/components/special-dropdown/special-dropdown.interface.d.ts +16 -0
  64. package/lib/components/special-dropdown/special-dropdown.module.d.ts +14 -0
  65. package/lib/components/special-form/special-form.component.d.ts +31 -0
  66. package/lib/components/special-form/special-form.module.d.ts +19 -0
  67. package/lib/components/special-input/special-input.component.d.ts +15 -0
  68. package/lib/components/special-input/special-input.interface.d.ts +15 -0
  69. package/lib/components/special-input/special-input.module.d.ts +14 -0
  70. package/lib/components/special-label/special-label.component.d.ts +13 -0
  71. package/lib/components/special-label/special-label.interface.d.ts +12 -0
  72. package/lib/components/special-label/special-label.module.d.ts +15 -0
  73. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.component.d.ts +22 -0
  74. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.interface.d.ts +18 -0
  75. package/lib/components/special-multiple-autocomplete/special-multiple-autocomplete.module.d.ts +16 -0
  76. package/lib/components/special-text-area/special-text-area.component.d.ts +13 -0
  77. package/lib/components/special-text-area/special-text-area.interface.d.ts +7 -0
  78. package/lib/components/special-text-area/special-text-area.module.d.ts +14 -0
  79. package/lib/components/special-upload/special-upload.component.d.ts +21 -0
  80. package/lib/components/special-upload/special-upload.interface.d.ts +10 -0
  81. package/lib/components/special-upload/special-upload.module.d.ts +13 -0
  82. package/lib/core/aux-data/control-types.enum.d.ts +16 -0
  83. package/lib/core/forms/special-forms.d.ts +110 -0
  84. package/lib/core/interfaces/field-basics.interfaces.d.ts +22 -0
  85. package/lib/core/interfaces/form.interfaces.d.ts +51 -0
  86. package/lib/core/services/index.d.ts +2 -0
  87. package/lib/core/services/special-form-builder/special-form-builder.service.d.ts +25 -0
  88. package/lib/pipes/controls-list-pipe/controls-list.pipe.d.ts +11 -0
  89. package/lib/pipes/controls-list-pipe/controls-list.pipe.module.d.ts +8 -0
  90. package/lib/pipes/error-message-pipe/error.pipe.d.ts +12 -0
  91. package/lib/pipes/error-message-pipe/error.pipe.module.d.ts +8 -0
  92. package/lib/pipes/index.d.ts +2 -0
  93. package/lib/pipes/text-by-function/text-by-function.pipe.d.ts +7 -0
  94. package/lib/pipes/text-by-function/text-by-function.pipe.module.d.ts +8 -0
  95. package/package.json +31 -0
  96. package/public-api.d.ts +2 -0
@@ -0,0 +1,51 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { ReactiveFormsModule } from '@angular/forms';
7
+ import { ErrorMessagePipeModule, TextByFunctionPipeModule } from '../../pipes';
8
+ import { MatInputModule } from '@angular/material/input';
9
+ import { MatChipsModule } from '@angular/material/chips';
10
+ import { SpecialMultipleAutocompleteComponent } from './special-multiple-autocomplete.component';
11
+ import * as i0 from "@angular/core";
12
+ export class SpecialMultipleAutocompleteModule {
13
+ }
14
+ SpecialMultipleAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ SpecialMultipleAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteModule, declarations: [SpecialMultipleAutocompleteComponent], imports: [MatInputModule,
16
+ CommonModule,
17
+ MatAutocompleteModule,
18
+ MatIconModule,
19
+ ReactiveFormsModule,
20
+ MatButtonModule,
21
+ ErrorMessagePipeModule,
22
+ TextByFunctionPipeModule,
23
+ MatChipsModule], exports: [SpecialMultipleAutocompleteComponent] });
24
+ SpecialMultipleAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteModule, imports: [MatInputModule,
25
+ CommonModule,
26
+ MatAutocompleteModule,
27
+ MatIconModule,
28
+ ReactiveFormsModule,
29
+ MatButtonModule,
30
+ ErrorMessagePipeModule,
31
+ TextByFunctionPipeModule,
32
+ MatChipsModule] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialMultipleAutocompleteModule, decorators: [{
34
+ type: NgModule,
35
+ args: [{
36
+ declarations: [SpecialMultipleAutocompleteComponent],
37
+ imports: [
38
+ MatInputModule,
39
+ CommonModule,
40
+ MatAutocompleteModule,
41
+ MatIconModule,
42
+ ReactiveFormsModule,
43
+ MatButtonModule,
44
+ ErrorMessagePipeModule,
45
+ TextByFunctionPipeModule,
46
+ MatChipsModule,
47
+ ],
48
+ exports: [SpecialMultipleAutocompleteComponent],
49
+ }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUvc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBa0JqRyxNQUFNLE9BQU8saUNBQWlDOzs4SEFBakMsaUNBQWlDOytIQUFqQyxpQ0FBaUMsaUJBZjdCLG9DQUFvQyxhQUVqRCxjQUFjO1FBQ2QsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLGNBQWMsYUFHTixvQ0FBb0M7K0hBRW5DLGlDQUFpQyxZQWIxQyxjQUFjO1FBQ2QsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLGNBQWM7MkZBS0wsaUNBQWlDO2tCQWhCN0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDcEQsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixjQUFjO3FCQUVmO29CQUNELE9BQU8sRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlUGlwZU1vZHVsZSwgVGV4dEJ5RnVuY3Rpb25QaXBlTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IFNwZWNpYWxNdWx0aXBsZUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vc3BlY2lhbC1tdWx0aXBsZS1hdXRvY29tcGxldGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BlY2lhbE11bHRpcGxlQXV0b2NvbXBsZXRlQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBFcnJvck1lc3NhZ2VQaXBlTW9kdWxlLFxuICAgIFRleHRCeUZ1bmN0aW9uUGlwZU1vZHVsZSxcbiAgICBNYXRDaGlwc01vZHVsZSxcblxuICBdLFxuICBleHBvcnRzOiBbU3BlY2lhbE11bHRpcGxlQXV0b2NvbXBsZXRlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbE11bHRpcGxlQXV0b2NvbXBsZXRlTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { ChangeDetectionStrategy } from '@angular/core';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/cdk/text-field";
6
+ import * as i3 from "@angular/material/form-field";
7
+ import * as i4 from "@angular/material/input";
8
+ import * as i5 from "@angular/material/icon";
9
+ import * as i6 from "@angular/forms";
10
+ import * as i7 from "../../pipes/error-message-pipe/error.pipe";
11
+ export class SpecialTextAreaComponent {
12
+ constructor() {
13
+ this.onBlur = new EventEmitter();
14
+ this.onEnter = new EventEmitter();
15
+ }
16
+ ngOnInit() { }
17
+ }
18
+ SpecialTextAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ SpecialTextAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialTextAreaComponent, selector: "sp-text-area", inputs: { control: "control" }, outputs: { onBlur: "onBlur", onEnter: "onEnter" }, 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 <textarea\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n matInput\n (blur)=\"onBlur.emit(control.value)\"\n (keydown.enter)=\"onEnter.emit(control.value)\"\n [type]=\"control.settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n ></textarea>\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { 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: 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: "pipe", type: i7.ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialTextAreaComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'sp-text-area', 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 <textarea\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n cdkAutosizeMaxRows=\"5\"\n matInput\n (blur)=\"onBlur.emit(control.value)\"\n (keydown.enter)=\"onEnter.emit(control.value)\"\n [type]=\"control.settings?.type || 'text'\"\n [readonly]=\"control.readOnly\"\n [required]=\"control.required\"\n [placeholder]=\"control.placeholder\"\n [formControl]=\"control\"\n ></textarea>\n <mat-icon *ngIf=\"control.icon\" matPrefix>{{ control.icon }} </mat-icon>\n <mat-hint>\n {{ control.tooltip }}\n </mat-hint>\n <mat-error>\n {{ control.errors | errorMessage: control.errorMessages }}\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:contents}\n"] }]
23
+ }], ctorParameters: function () { return []; }, propDecorators: { control: [{
24
+ type: Input
25
+ }], onBlur: [{
26
+ type: Output
27
+ }], onEnter: [{
28
+ type: Output
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DO1FBSFUsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzQyxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDOztxSEFSUix3QkFBd0I7eUdBQXhCLHdCQUF3Qix1SUNWckMsNDdCQTZCQTsyRkRuQmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTswRUFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwZWNpYWxGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybXMvc3BlY2lhbC1mb3Jtcyc7XG5pbXBvcnQgeyBJVGV4dEFyZWFGaWVsZCB9IGZyb20gJy4vc3BlY2lhbC10ZXh0LWFyZWEuaW50ZXJmYWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLXRleHQtYXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGVjaWFsLXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwZWNpYWwtdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTcGVjaWFsVGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8SVRleHRBcmVhRmllbGQ+O1xuXG4gIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25FbnRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbnRyb2xcIlxuICBbaWRdPVwiY29udHJvbC5lbGVtZW50SWRcIlxuICBjbGFzcz1cInctZnVsbCB7eyBjb250cm9sLnN0eWxlQ2xhc3NlcyB9fVwiXG4gIFthcHBlYXJhbmNlXT1cImNvbnRyb2wubGFiZWwgPyAnb3V0bGluZScgOiAnc3RhbmRhcmQnXCJcbj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbnRyb2wubGFiZWxcIj57eyBjb250cm9sLmxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDx0ZXh0YXJlYVxuICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcbiAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcbiAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcbiAgICBtYXRJbnB1dFxuICAgIChibHVyKT1cIm9uQmx1ci5lbWl0KGNvbnRyb2wudmFsdWUpXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyLmVtaXQoY29udHJvbC52YWx1ZSlcIlxuICAgIFt0eXBlXT1cImNvbnRyb2wuc2V0dGluZ3M/LnR5cGUgfHwgJ3RleHQnXCJcbiAgICBbcmVhZG9ubHldPVwiY29udHJvbC5yZWFkT25seVwiXG4gICAgW3JlcXVpcmVkXT1cImNvbnRyb2wucmVxdWlyZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJjb250cm9sLnBsYWNlaG9sZGVyXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gID48L3RleHRhcmVhPlxuICA8bWF0LWljb24gKm5nSWY9XCJjb250cm9sLmljb25cIiBtYXRQcmVmaXg+e3sgY29udHJvbC5pY29uIH19IDwvbWF0LWljb24+XG4gIDxtYXQtaGludD5cbiAgICB7eyBjb250cm9sLnRvb2x0aXAgfX1cbiAgPC9tYXQtaGludD5cbiAgPG1hdC1lcnJvcj5cbiAgICB7eyBjb250cm9sLmVycm9ycyB8IGVycm9yTWVzc2FnZTogY29udHJvbC5lcnJvck1lc3NhZ2VzIH19XG4gIDwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC10ZXh0LWFyZWEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIElUZXh0QXJlYVNldHRpbmdzID0ge307XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUZXh0QXJlYUZpZWxkIGV4dGVuZHMgSUZpZWxkRGF0YSB7XHJcbiAgc2V0dGluZ3M6IElUZXh0QXJlYVNldHRpbmdzO1xyXG4gIHR5cGU6IEVDb250cm9sVHlwZXMudGV4dEFyZWE7XHJcbn1cclxuIl19
@@ -0,0 +1,44 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SpecialTextAreaComponent } from './special-text-area.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 SpecialTextAreaModule {
12
+ }
13
+ SpecialTextAreaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ SpecialTextAreaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialTextAreaModule, declarations: [SpecialTextAreaComponent], imports: [InputMaskModule,
15
+ CommonModule,
16
+ MatInputModule,
17
+ MatIconModule,
18
+ ReactiveFormsModule,
19
+ MatButtonModule,
20
+ ErrorMessagePipeModule], exports: [SpecialTextAreaComponent] });
21
+ SpecialTextAreaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialTextAreaModule, 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: SpecialTextAreaModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ declarations: [SpecialTextAreaComponent],
32
+ imports: [
33
+ InputMaskModule,
34
+ CommonModule,
35
+ MatInputModule,
36
+ MatIconModule,
37
+ ReactiveFormsModule,
38
+ MatButtonModule,
39
+ ErrorMessagePipeModule,
40
+ ],
41
+ exports: [SpecialTextAreaComponent],
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC10ZXh0LWFyZWEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC10ZXh0LWFyZWEvc3BlY2lhbC10ZXh0LWFyZWEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBZXJELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFaakIsd0JBQXdCLGFBRXJDLGVBQWU7UUFDZixZQUFZO1FBQ1osY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLHNCQUFzQixhQUVkLHdCQUF3QjttSEFFdkIscUJBQXFCLFlBVjlCLGVBQWU7UUFDZixZQUFZO1FBQ1osY0FBYztRQUNkLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLHNCQUFzQjsyRkFJYixxQkFBcUI7a0JBYmpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3BlY2lhbFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9zcGVjaWFsLXRleHQtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSAnQG5nbmVhdC9pbnB1dC1tYXNrJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VQaXBlTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTcGVjaWFsVGV4dEFyZWFDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgSW5wdXRNYXNrTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIEVycm9yTWVzc2FnZVBpcGVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTcGVjaWFsVGV4dEFyZWFDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTcGVjaWFsVGV4dEFyZWFNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ import * as i2 from "ngx-dropzone";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "../../pipes/error-message-pipe/error.pipe";
9
+ export class SpecialUploadComponent {
10
+ constructor(sanitizer) {
11
+ this.sanitizer = sanitizer;
12
+ this.onSelect = new EventEmitter();
13
+ this.previewImages = [];
14
+ }
15
+ set controlSetter(control) {
16
+ this.control = control;
17
+ this.previewImages = control.value;
18
+ }
19
+ ngOnInit() { }
20
+ onSelectMultiple(event) {
21
+ this.previewImages = [
22
+ ...this.previewImages,
23
+ ...event.addedFiles.map(file => ({
24
+ lastModified: file.lastModified,
25
+ url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file))
26
+ }))
27
+ ];
28
+ this.control.setValue([
29
+ ...this.control.value,
30
+ ...event.addedFiles.map(this.fixFileName)
31
+ ]);
32
+ this.onSelect.emit(this.control.value);
33
+ this.control.markAsDirty();
34
+ }
35
+ onSelectOne(event) {
36
+ this.previewImages = event.addedFiles.map(file => ({
37
+ lastModified: file.lastModified,
38
+ url: this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file))
39
+ }));
40
+ this.control.setValue(event.addedFiles.map(this.fixFileName));
41
+ this.onSelect.emit(this.control.value);
42
+ this.control.markAsDirty();
43
+ }
44
+ fixFileName(file) {
45
+ return Object.defineProperty(file, 'name', {
46
+ writable: true,
47
+ value: file.name.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
48
+ });
49
+ }
50
+ clean() {
51
+ this.previewImages = [];
52
+ }
53
+ onRemove(file) {
54
+ this.control.setValue(this.control.value.filter(fl => fl.lastModified !== file.lastModified));
55
+ this.previewImages = this.previewImages.filter(fl => fl.lastModified !== file.lastModified);
56
+ }
57
+ }
58
+ SpecialUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
59
+ SpecialUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: SpecialUploadComponent, selector: "sp-upload", inputs: { controlSetter: ["control", "controlSetter"] }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "<div class=\"special_upload mb-2\">\n <ngx-dropzone\n class=\"special_upload__dropzone\"\n [ngClass]=\"{\n 'special_upload--error-dashed':\n !!control.errors && (control.dirty || control.touched)\n }\"\n [multiple]=\"control.settings?.multiple\"\n [accept]=\"\n control.settings?.accept\n ? control.settings?.accept\n : 'image/png, .jpeg, .jpg, image/gif'\n \"\n (change)=\"\n control.settings?.multiple\n ? onSelectMultiple($event)\n : onSelectOne($event)\n \"\n >\n <ngx-dropzone-label\n [ngClass]=\"{\n 'special_upload--error':\n !!control.errors && (control.dirty || control.touched)\n }\"\n >\n <mat-icon class=\"special_upload__icon\"*ngIf=\"control.icon\">{{ control.icon }} </mat-icon>\n <h2 class=\"text-base font-bold\">\n {{ control.label }}\n </h2>\n <h3 class=\"text-base\">\n {{ control.placeholder }}\n </h3>\n </ngx-dropzone-label>\n <ngx-dropzone-preview\n *ngFor=\"let file of previewImages\"\n [removable]=\"true\"\n (removed)=\"onRemove(file)\"\n >\n <ngx-dropzone-label class=\"special_upload__card\">\n <img class=\"special_upload__card--image\" [src]=\"file?.url\" alt=\"\" />\n </ngx-dropzone-label>\n </ngx-dropzone-preview>\n </ngx-dropzone>\n <div\n class=\"special_upload--error mt-2\"\n *ngIf=\"!!control.errors && (control.dirty || control.touched)\"\n >\n {{ control.errors | errorMessage: control.errorMessages }}\n </div>\n</div>\n", styles: [":host{display:contents}:host .special-upload{margin-bottom:2rem}:host .special-upload__icon{height:64px;width:64px;font-size:64px}:host .special-upload__card{width:100%;height:100%;margin:0;box-sizing:border-box;display:flex;align-items:center;flex-direction:column}:host .special-upload__card--image{width:100%;height:100%;object-fit:cover}\n"], dependencies: [{ kind: "component", type: i2.NgxDropzoneComponent, selector: "ngx-dropzone, [ngx-dropzone]", inputs: ["accept", "disabled", "multiple", "maxFileSize", "expandable", "disableClick", "processDirectoryDrop", "id", "aria-label", "aria-labelledby", "aria-describedby"], outputs: ["change"] }, { kind: "directive", type: i2.NgxDropzoneLabelDirective, selector: "ngx-dropzone-label" }, { kind: "component", type: i2.NgxDropzonePreviewComponent, selector: "ngx-dropzone-preview", inputs: ["file", "removable"], outputs: ["removed"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.ErrorMessagePipe, name: "errorMessage" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'sp-upload', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"special_upload mb-2\">\n <ngx-dropzone\n class=\"special_upload__dropzone\"\n [ngClass]=\"{\n 'special_upload--error-dashed':\n !!control.errors && (control.dirty || control.touched)\n }\"\n [multiple]=\"control.settings?.multiple\"\n [accept]=\"\n control.settings?.accept\n ? control.settings?.accept\n : 'image/png, .jpeg, .jpg, image/gif'\n \"\n (change)=\"\n control.settings?.multiple\n ? onSelectMultiple($event)\n : onSelectOne($event)\n \"\n >\n <ngx-dropzone-label\n [ngClass]=\"{\n 'special_upload--error':\n !!control.errors && (control.dirty || control.touched)\n }\"\n >\n <mat-icon class=\"special_upload__icon\"*ngIf=\"control.icon\">{{ control.icon }} </mat-icon>\n <h2 class=\"text-base font-bold\">\n {{ control.label }}\n </h2>\n <h3 class=\"text-base\">\n {{ control.placeholder }}\n </h3>\n </ngx-dropzone-label>\n <ngx-dropzone-preview\n *ngFor=\"let file of previewImages\"\n [removable]=\"true\"\n (removed)=\"onRemove(file)\"\n >\n <ngx-dropzone-label class=\"special_upload__card\">\n <img class=\"special_upload__card--image\" [src]=\"file?.url\" alt=\"\" />\n </ngx-dropzone-label>\n </ngx-dropzone-preview>\n </ngx-dropzone>\n <div\n class=\"special_upload--error mt-2\"\n *ngIf=\"!!control.errors && (control.dirty || control.touched)\"\n >\n {{ control.errors | errorMessage: control.errorMessages }}\n </div>\n</div>\n", styles: [":host{display:contents}:host .special-upload{margin-bottom:2rem}:host .special-upload__icon{height:64px;width:64px;font-size:64px}:host .special-upload__card{width:100%;height:100%;margin:0;box-sizing:border-box;display:flex;align-items:center;flex-direction:column}:host .special-upload__card--image{width:100%;height:100%;object-fit:cover}\n"] }]
63
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { controlSetter: [{
64
+ type: Input,
65
+ args: ['control']
66
+ }], onSelect: [{
67
+ type: Output
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQyxZQUFxQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBSmxDLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzRCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztJQUU0QixDQUFDO0lBVGhELElBQXNCLGFBQWEsQ0FBQyxPQUFPO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBUUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsSUFBSSxDQUFDLGFBQWE7WUFDckIsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMvQixDQUFDO2dCQUNDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0RSxDQUNBLENBQUM7U0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQ25CO1lBQ0UsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDckIsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2pELENBQUM7WUFDQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RSxDQUFDLENBQUMsQ0FBQTtRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNuQixLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3ZDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7U0FDbEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQUk7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM3RixDQUFDOzttSEFoRVUsc0JBQXNCO3VHQUF0QixzQkFBc0IsNklDWm5DLGtpREFrREE7MkZEdENhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07bUdBS3pCLGFBQWE7c0JBQWxDLEtBQUs7dUJBQUMsU0FBUztnQkFLTixRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3BlY2lhbEZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS9mb3Jtcy9zcGVjaWFsLWZvcm1zJztcbmltcG9ydCB7IElVcGxvYWRTZXR0aW5ncyB9IGZyb20gJy4vc3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtdXBsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWNpYWwtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BlY2lhbC11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNwZWNpYWxVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb250cm9sOiBTcGVjaWFsRm9ybUNvbnRyb2w8SVVwbG9hZFNldHRpbmdzPjtcblxuICBASW5wdXQoJ2NvbnRyb2wnKSBzZXQgY29udHJvbFNldHRlcihjb250cm9sKSB7XG4gICAgdGhpcy5jb250cm9sID0gY29udHJvbDtcbiAgICB0aGlzLnByZXZpZXdJbWFnZXMgPSBjb250cm9sLnZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcmV2aWV3SW1hZ2VzID0gW107XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG9uU2VsZWN0TXVsdGlwbGUoZXZlbnQpIHtcbiAgICB0aGlzLnByZXZpZXdJbWFnZXMgPSBbXG4gICAgICAuLi50aGlzLnByZXZpZXdJbWFnZXMsXG4gICAgICAuLi5ldmVudC5hZGRlZEZpbGVzLm1hcChmaWxlID0+XG4gICAgICAoe1xuICAgICAgICBsYXN0TW9kaWZpZWQ6IGZpbGUubGFzdE1vZGlmaWVkLFxuICAgICAgICB1cmw6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSlcbiAgICAgIH1cbiAgICAgICkpXG4gICAgXTtcblxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShcbiAgICAgIFtcbiAgICAgICAgLi4udGhpcy5jb250cm9sLnZhbHVlLFxuICAgICAgICAuLi5ldmVudC5hZGRlZEZpbGVzLm1hcCh0aGlzLmZpeEZpbGVOYW1lKVxuICAgICAgXVxuICAgICk7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSlcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIG9uU2VsZWN0T25lKGV2ZW50KSB7XG4gICAgdGhpcy5wcmV2aWV3SW1hZ2VzID0gZXZlbnQuYWRkZWRGaWxlcy5tYXAoZmlsZSA9PlxuICAgICh7XG4gICAgICBsYXN0TW9kaWZpZWQ6IGZpbGUubGFzdE1vZGlmaWVkLFxuICAgICAgdXJsOiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpXG4gICAgfSkpXG5cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICBldmVudC5hZGRlZEZpbGVzLm1hcCh0aGlzLmZpeEZpbGVOYW1lKVxuICAgICk7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KHRoaXMuY29udHJvbC52YWx1ZSlcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGZpeEZpbGVOYW1lKGZpbGU6IEZpbGUpIHtcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZpbGUsICduYW1lJywge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLm5vcm1hbGl6ZShcIk5GRFwiKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgIH0pO1xuICB9XG5cbiAgY2xlYW4oKSB7XG4gICAgdGhpcy5wcmV2aWV3SW1hZ2VzID0gW107XG4gIH1cbiAgb25SZW1vdmUoZmlsZSkge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKGZsID0+IGZsLmxhc3RNb2RpZmllZCAhPT0gZmlsZS5sYXN0TW9kaWZpZWQpKTtcbiAgICB0aGlzLnByZXZpZXdJbWFnZXMgPSB0aGlzLnByZXZpZXdJbWFnZXMuZmlsdGVyKGZsID0+IGZsLmxhc3RNb2RpZmllZCAhPT0gZmlsZS5sYXN0TW9kaWZpZWQpXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNwZWNpYWxfdXBsb2FkIG1iLTJcIj5cbiAgPG5neC1kcm9wem9uZVxuICAgIGNsYXNzPVwic3BlY2lhbF91cGxvYWRfX2Ryb3B6b25lXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc3BlY2lhbF91cGxvYWQtLWVycm9yLWRhc2hlZCc6XG4gICAgICAgICEhY29udHJvbC5lcnJvcnMgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKVxuICAgIH1cIlxuICAgIFttdWx0aXBsZV09XCJjb250cm9sLnNldHRpbmdzPy5tdWx0aXBsZVwiXG4gICAgW2FjY2VwdF09XCJcbiAgICAgIGNvbnRyb2wuc2V0dGluZ3M/LmFjY2VwdFxuICAgICAgICA/IGNvbnRyb2wuc2V0dGluZ3M/LmFjY2VwdFxuICAgICAgICA6ICdpbWFnZS9wbmcsIC5qcGVnLCAuanBnLCBpbWFnZS9naWYnXG4gICAgXCJcbiAgICAoY2hhbmdlKT1cIlxuICAgICAgY29udHJvbC5zZXR0aW5ncz8ubXVsdGlwbGVcbiAgICAgICAgPyBvblNlbGVjdE11bHRpcGxlKCRldmVudClcbiAgICAgICAgOiBvblNlbGVjdE9uZSgkZXZlbnQpXG4gICAgXCJcbiAgPlxuICAgIDxuZ3gtZHJvcHpvbmUtbGFiZWxcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NwZWNpYWxfdXBsb2FkLS1lcnJvcic6XG4gICAgICAgICAgISFjb250cm9sLmVycm9ycyAmJiAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQpXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJzcGVjaWFsX3VwbG9hZF9faWNvblwiKm5nSWY9XCJjb250cm9sLmljb25cIj57eyBjb250cm9sLmljb24gfX0gPC9tYXQtaWNvbj5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj5cbiAgICAgICAge3sgY29udHJvbC5sYWJlbCB9fVxuICAgICAgPC9oMj5cbiAgICAgIDxoMyBjbGFzcz1cInRleHQtYmFzZVwiPlxuICAgICAgICB7eyBjb250cm9sLnBsYWNlaG9sZGVyIH19XG4gICAgICA8L2gzPlxuICAgIDwvbmd4LWRyb3B6b25lLWxhYmVsPlxuICAgIDxuZ3gtZHJvcHpvbmUtcHJldmlld1xuICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgcHJldmlld0ltYWdlc1wiXG4gICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgKHJlbW92ZWQpPVwib25SZW1vdmUoZmlsZSlcIlxuICAgID5cbiAgICAgIDxuZ3gtZHJvcHpvbmUtbGFiZWwgY2xhc3M9XCJzcGVjaWFsX3VwbG9hZF9fY2FyZFwiPlxuICAgICAgICA8aW1nIGNsYXNzPVwic3BlY2lhbF91cGxvYWRfX2NhcmQtLWltYWdlXCIgW3NyY109XCJmaWxlPy51cmxcIiBhbHQ9XCJcIiAvPlxuICAgICAgPC9uZ3gtZHJvcHpvbmUtbGFiZWw+XG4gICAgPC9uZ3gtZHJvcHpvbmUtcHJldmlldz5cbiAgPC9uZ3gtZHJvcHpvbmU+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNwZWNpYWxfdXBsb2FkLS1lcnJvciBtdC0yXCJcbiAgICAqbmdJZj1cIiEhY29udHJvbC5lcnJvcnMgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKVwiXG4gID5cbiAgICB7eyBjb250cm9sLmVycm9ycyB8IGVycm9yTWVzc2FnZTogY29udHJvbC5lcnJvck1lc3NhZ2VzIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ29udHJvbFR5cGVzIH0gZnJvbSAnLi4vLi4vY29yZS9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGREYXRhIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIElVcGxvYWRTZXR0aW5ncyA9IHtcclxuICBhY2NlcHQ/OiBzdHJpbmcsXHJcbiAgbXVsdGlwbGU/OiBib29sZWFuXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElVcGxvYWRGaWVsZCBleHRlbmRzIElGaWVsZERhdGEge1xyXG4gIHNldHRpbmdzOiBJVXBsb2FkU2V0dGluZ3M7XHJcbiAgdHlwZTogRUNvbnRyb2xUeXBlcy51cGxvYWQ7XHJcbn1cclxuIl19
@@ -0,0 +1,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SpecialUploadComponent } from './special-upload.component';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { ErrorMessagePipeModule } from '../../pipes';
8
+ import { NgxDropzoneModule } from 'ngx-dropzone';
9
+ import * as i0 from "@angular/core";
10
+ export class SpecialUploadModule {
11
+ }
12
+ SpecialUploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ SpecialUploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadModule, declarations: [SpecialUploadComponent], imports: [FormsModule,
14
+ NgxDropzoneModule,
15
+ CommonModule,
16
+ MatIconModule,
17
+ ReactiveFormsModule,
18
+ MatButtonModule,
19
+ ErrorMessagePipeModule], exports: [SpecialUploadComponent] });
20
+ SpecialUploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadModule, imports: [FormsModule,
21
+ NgxDropzoneModule,
22
+ CommonModule,
23
+ MatIconModule,
24
+ ReactiveFormsModule,
25
+ MatButtonModule,
26
+ ErrorMessagePipeModule] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SpecialUploadModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [SpecialUploadComponent],
31
+ imports: [
32
+ FormsModule,
33
+ NgxDropzoneModule,
34
+ CommonModule,
35
+ MatIconModule,
36
+ ReactiveFormsModule,
37
+ MatButtonModule,
38
+ ErrorMessagePipeModule
39
+ ],
40
+ exports: [SpecialUploadComponent],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbC11cGxvYWQvc3BlY2lhbC11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBZWpELE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFaZixzQkFBc0IsYUFFbkMsV0FBVztRQUNYLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysc0JBQXNCLGFBRWQsc0JBQXNCO2lIQUVyQixtQkFBbUIsWUFWNUIsV0FBVztRQUNYLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysc0JBQXNCOzJGQUliLG1CQUFtQjtrQkFiL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTcGVjaWFsVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9zcGVjaWFsLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlUGlwZU1vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IE5neERyb3B6b25lTW9kdWxlIH0gZnJvbSAnbmd4LWRyb3B6b25lJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3BlY2lhbFVwbG9hZENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ3hEcm9wem9uZU1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBFcnJvck1lc3NhZ2VQaXBlTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtTcGVjaWFsVXBsb2FkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3BlY2lhbFVwbG9hZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,18 @@
1
+ export var EControlTypes;
2
+ (function (EControlTypes) {
3
+ EControlTypes["pkey"] = "PRIMARY-KEY";
4
+ EControlTypes["input"] = "INPUT";
5
+ EControlTypes["textArea"] = "TEXT-AREA";
6
+ EControlTypes["dropdown"] = "DROPDOWN";
7
+ EControlTypes["date"] = "DATE";
8
+ EControlTypes["time"] = "TIME";
9
+ EControlTypes["checkbox"] = "CHECKBOX";
10
+ EControlTypes["upload"] = "UPLOAD";
11
+ EControlTypes["autocomplete"] = "AUTOCOMPLETE";
12
+ EControlTypes["multiple"] = "MULTIPLE-AUTOCOMPLETE";
13
+ EControlTypes["array"] = "ARRAY";
14
+ EControlTypes["form"] = "FORM";
15
+ EControlTypes["label"] = "LABEL";
16
+ EControlTypes["default"] = "DEFAULT";
17
+ })(EControlTypes || (EControlTypes = {}));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC10eXBlcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlY2lhbC1mb3Jtcy9zcmMvbGliL2NvcmUvYXV4LWRhdGEvY29udHJvbC10eXBlcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBZVg7QUFmRCxXQUFZLGFBQWE7SUFDdkIscUNBQW9CLENBQUE7SUFDcEIsZ0NBQWUsQ0FBQTtJQUNmLHVDQUFzQixDQUFBO0lBQ3RCLHNDQUFxQixDQUFBO0lBQ3JCLDhCQUFhLENBQUE7SUFDYiw4QkFBYSxDQUFBO0lBQ2Isc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsOENBQTZCLENBQUE7SUFDN0IsbURBQWtDLENBQUE7SUFDbEMsZ0NBQWUsQ0FBQTtJQUNmLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0lBQ2Ysb0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQWZXLGFBQWEsS0FBYixhQUFhLFFBZXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRUNvbnRyb2xUeXBlcyB7XHJcbiAgcGtleSA9ICdQUklNQVJZLUtFWScsXHJcbiAgaW5wdXQgPSAnSU5QVVQnLFxyXG4gIHRleHRBcmVhID0gJ1RFWFQtQVJFQScsXHJcbiAgZHJvcGRvd24gPSAnRFJPUERPV04nLFxyXG4gIGRhdGUgPSAnREFURScsXHJcbiAgdGltZSA9ICdUSU1FJyxcclxuICBjaGVja2JveCA9ICdDSEVDS0JPWCcsXHJcbiAgdXBsb2FkID0gJ1VQTE9BRCcsXHJcbiAgYXV0b2NvbXBsZXRlID0gJ0FVVE9DT01QTEVURScsXHJcbiAgbXVsdGlwbGUgPSAnTVVMVElQTEUtQVVUT0NPTVBMRVRFJyxcclxuICBhcnJheSA9ICdBUlJBWScsXHJcbiAgZm9ybSA9ICdGT1JNJyxcclxuICBsYWJlbCA9ICdMQUJFTCcsXHJcbiAgZGVmYXVsdCA9ICdERUZBVUxUJyxcclxufVxyXG4iXX0=
@@ -0,0 +1,238 @@
1
+ import { FormArray, FormControl, FormGroup, } from '@angular/forms';
2
+ export class SpecialFormControl extends FormControl {
3
+ constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, errorMessages, disabled, }) {
4
+ super(defaultValue, validators, asyncValidators);
5
+ this.name = name;
6
+ this.placeholder = placeholder;
7
+ this.label = label;
8
+ this.tooltip = tooltip;
9
+ this.icon = icon;
10
+ this.elementId = elementId;
11
+ this.settings = settings;
12
+ this.type = type;
13
+ this.styleClasses = styleClasses;
14
+ this.hidden = hidden;
15
+ this.length = length;
16
+ this.readOnly = readOnly;
17
+ this.required = required;
18
+ this.errorMessages = errorMessages;
19
+ disabled ? this.disable() : this.enable();
20
+ }
21
+ setReadOnly(status = true) {
22
+ this.readOnly = status;
23
+ }
24
+ setDisabled(status = true) {
25
+ status ? this.disable() : this.enable();
26
+ }
27
+ setHidden(status = true) {
28
+ this.hidden = status;
29
+ }
30
+ }
31
+ export class SpecialFormGroup extends FormGroup {
32
+ constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, length, placeholder, readOnly, required, tooltip, disabled, }, controls) {
33
+ super(controls, validators, asyncValidators);
34
+ this.name = name;
35
+ this.placeholder = placeholder;
36
+ this.label = label;
37
+ this.tooltip = tooltip;
38
+ this.icon = icon;
39
+ this.elementId = elementId;
40
+ this.settings = settings;
41
+ this.type = type;
42
+ this.styleClasses = styleClasses;
43
+ this.hidden = hidden;
44
+ this.length = length;
45
+ this.readOnly = readOnly;
46
+ this.required = required;
47
+ this.defaultValue = defaultValue;
48
+ disabled ? this.disable() : this.enable();
49
+ }
50
+ unpristineRequired() {
51
+ Object.values(this.controls).forEach((control) => {
52
+ if (control instanceof SpecialFormControl) {
53
+ control.markAsDirty();
54
+ }
55
+ else if (control instanceof SpecialFormGroup) {
56
+ control.unpristineRequired();
57
+ }
58
+ else if (control instanceof SpecialFormArray) {
59
+ control.unpristineRequired();
60
+ }
61
+ });
62
+ }
63
+ specialReset(value = {}) {
64
+ const aux = {};
65
+ Object.entries(this.controls).map(([key, control]) => {
66
+ if (control instanceof SpecialFormControl) {
67
+ aux[key] = control.defaultValue;
68
+ }
69
+ else if (control instanceof SpecialFormArray) {
70
+ control.clear();
71
+ }
72
+ });
73
+ this.reset({ ...aux, ...value });
74
+ }
75
+ setReadOnly(status = true) {
76
+ Object.values(this.controls).map((value) => {
77
+ if (value instanceof SpecialFormControl ||
78
+ value instanceof SpecialFormArray ||
79
+ value instanceof SpecialFormGroup) {
80
+ value.setReadOnly(status);
81
+ }
82
+ });
83
+ }
84
+ setReadOnlyByFields(fieldsObject) {
85
+ Object.entries(fieldsObject).map(([key, value]) => {
86
+ const control = this.controls[key];
87
+ if (control instanceof SpecialFormControl) {
88
+ control.readOnly = value;
89
+ }
90
+ });
91
+ }
92
+ setHiddenByFields(fields) {
93
+ Object.entries(fields).map(([key, value]) => {
94
+ const control = this.controls[key];
95
+ if (control instanceof SpecialFormControl) {
96
+ control.hidden = value;
97
+ }
98
+ });
99
+ }
100
+ setDisabled(status) {
101
+ Object.values(this.controls).map((value) => {
102
+ if (value instanceof SpecialFormControl ||
103
+ value instanceof SpecialFormArray ||
104
+ value instanceof SpecialFormGroup) {
105
+ value.setDisabled(status);
106
+ }
107
+ });
108
+ }
109
+ setDisabledByFields(fieldsObject) {
110
+ Object.entries(fieldsObject).map((entries) => {
111
+ if (this.controls[entries[0]] instanceof SpecialFormControl) {
112
+ entries[1]
113
+ ? this.controls[entries[0]].enable()
114
+ : this.controls[entries[0]].disable();
115
+ }
116
+ });
117
+ }
118
+ /**
119
+ * donde value es el objeto semilla y detailForm es un arreglo de form key para dar un marco al formarray
120
+ */
121
+ setFormValue(value) {
122
+ this.specialReset(value);
123
+ Object.entries(this.controls)
124
+ .filter(([_key, control]) => control instanceof SpecialFormArray)
125
+ .map(([key, control]) => {
126
+ control.fillFormArray(value[key]);
127
+ });
128
+ }
129
+ /**
130
+ * Método que retorna
131
+ */
132
+ getIdPkey() {
133
+ return Object.values(this.controls).find((control) => control instanceof SpecialFormControl && control.type === 'PRIMARY-KEY');
134
+ }
135
+ }
136
+ export class SpecialFormArray extends FormArray {
137
+ constructor({ name, settings, type, validators, asyncValidators, elementId, styleClasses, defaultValue, hidden, icon, label, placeholder, readOnly, required, tooltip, errorMessages, disabled, }, formCreation, controls) {
138
+ super(controls, validators, asyncValidators);
139
+ this.formCreation = formCreation;
140
+ this.form = this.formCreation();
141
+ this.name = name;
142
+ this.placeholder = placeholder;
143
+ this.label = label;
144
+ this.tooltip = tooltip;
145
+ this.icon = icon;
146
+ this.elementId = elementId;
147
+ this.settings = settings;
148
+ this.type = type;
149
+ this.styleClasses = styleClasses;
150
+ this.hidden = hidden;
151
+ this.readOnly = readOnly;
152
+ this.required = required;
153
+ this.defaultValue = defaultValue;
154
+ this.errorMessages = errorMessages;
155
+ disabled ? this.disable() : this.enable();
156
+ }
157
+ fillFormArray(data) {
158
+ this.form.reset();
159
+ this.clear();
160
+ data.forEach((item) => {
161
+ const form = this.formCreation(item);
162
+ this.push(form);
163
+ });
164
+ }
165
+ addItem() {
166
+ const form = this.formCreation(this.form.value);
167
+ this.form.specialReset();
168
+ this.push(form);
169
+ this.markAsDirty();
170
+ }
171
+ specialPush(index) {
172
+ const form = this.formCreation(this.form.value);
173
+ if (!index)
174
+ this.push(form);
175
+ else
176
+ this.controls[index].reset(this.form.value);
177
+ }
178
+ specialInsert(index = 0) {
179
+ const form = this.formCreation(this.form.value);
180
+ this.insert(index, form);
181
+ }
182
+ specialEdit(index, newValue) {
183
+ this.controls[index].reset({ ...this.controls[index].value, ...newValue });
184
+ this.markAsDirty();
185
+ }
186
+ /**
187
+ * Vuelve todos los controles del formArray de lectura o de sololectura
188
+ * @param status
189
+ */
190
+ setReadOnly(status) {
191
+ this.readOnly = status;
192
+ this.controls.forEach((control) => {
193
+ if (control instanceof SpecialFormGroup) {
194
+ control.setReadOnly(status);
195
+ }
196
+ });
197
+ }
198
+ /**
199
+ * Vuelve todos los controles del formArray habilitados o deshabilitados
200
+ * @param status
201
+ */
202
+ setDisabled(status) {
203
+ status ? this.disable() : this.enable();
204
+ this.controls.forEach((control) => {
205
+ if (control instanceof SpecialFormGroup) {
206
+ control.setDisabled(status);
207
+ }
208
+ });
209
+ }
210
+ /**
211
+ * Permite editar un control especifico.
212
+ * @param index
213
+ */
214
+ editControl(index) {
215
+ this.form.reset(this.controls[index].value);
216
+ }
217
+ unpristineRequired() {
218
+ this.markAsDirty();
219
+ this.controls.forEach((item) => {
220
+ item.unpristineRequired();
221
+ });
222
+ }
223
+ recursiveFillForm(form, data) {
224
+ Object.entries(form.controls).map(([key, control]) => {
225
+ if (control instanceof FormControl) {
226
+ control.setValue(data[key]);
227
+ }
228
+ else if (control instanceof FormArray) {
229
+ data[key].forEach(() => { });
230
+ }
231
+ else if (control instanceof FormGroup) {
232
+ control.reset(data[key]);
233
+ }
234
+ });
235
+ return form;
236
+ }
237
+ }
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWNpYWwtZm9ybXMvc3JjL2xpYi9jb3JlL2Zvcm1zL3NwZWNpYWwtZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFVeEIsTUFBTSxPQUFPLGtCQUNYLFNBQVEsV0FBVztJQWtCbkIsWUFBWSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxFQUNKLFVBQVUsRUFDVixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE9BQU8sRUFDUCxhQUFhLEVBQ2IsUUFBUSxHQUNPO1FBQ2YsS0FBSyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFhLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFN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LENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzdCO2lCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQzthQUM3QjtpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgRm9ybUFycmF5LFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVDb250cm9sVHlwZXMgfSBmcm9tICcuLi9hdXgtZGF0YS9jb250cm9sLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQgeyBJRmllbGRCYXNpY0RhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBJQXJyYXlTZXR0aW5ncyxcclxuICBJRm9ybVNldHRpbmdzLFxyXG4gIFRTcGVjaWFsRmllbGRzLFxyXG4gIFRTcGVjaWFsRm9ybSxcclxuICBUU3BlY2lhbEFycmF5LFxyXG59IGZyb20gJy4uL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2VzJztcclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtQ29udHJvbDxUPlxyXG4gIGV4dGVuZHMgRm9ybUNvbnRyb2xcclxuICBpbXBsZW1lbnRzIElGaWVsZEJhc2ljRGF0YVxyXG57XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzZXR0aW5nczogVDtcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3Ioe1xyXG4gICAgbmFtZSxcclxuICAgIHNldHRpbmdzLFxyXG4gICAgdHlwZSxcclxuICAgIHZhbGlkYXRvcnMsXHJcbiAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICBlbGVtZW50SWQsXHJcbiAgICBzdHlsZUNsYXNzZXMsXHJcbiAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICBoaWRkZW4sXHJcbiAgICBpY29uLFxyXG4gICAgbGFiZWwsXHJcbiAgICBsZW5ndGgsXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHJlYWRPbmx5LFxyXG4gICAgcmVxdWlyZWQsXHJcbiAgICB0b29sdGlwLFxyXG4gICAgZXJyb3JNZXNzYWdlcyxcclxuICAgIGRpc2FibGVkLFxyXG4gIH06IFRTcGVjaWFsRmllbGRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0VmFsdWUsIHZhbGlkYXRvcnMsIGFzeW5jVmFsaWRhdG9ycyk7XHJcblxyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3MgYXMgVDtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnN0eWxlQ2xhc3NlcyA9IHN0eWxlQ2xhc3NlcztcclxuICAgIHRoaXMuaGlkZGVuID0gaGlkZGVuO1xyXG4gICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBlcnJvck1lc3NhZ2VzO1xyXG4gICAgZGlzYWJsZWQgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seShzdGF0dXM6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoc3RhdHVzOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgc3RhdHVzID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGlkZGVuKHN0YXR1cyA9IHRydWUpIHtcclxuICAgIHRoaXMuaGlkZGVuID0gc3RhdHVzO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgU3BlY2lhbEZvcm1Hcm91cCBleHRlbmRzIEZvcm1Hcm91cCBpbXBsZW1lbnRzIElGaWVsZEJhc2ljRGF0YSB7XHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xyXG4gIHB1YmxpYyBpY29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBwdWJsaWMgbGVuZ3RoOiBudW1iZXI7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzZXR0aW5nczogSUZvcm1TZXR0aW5ncztcclxuICBwdWJsaWMgdHlwZTogRUNvbnRyb2xUeXBlcy5mb3JtO1xyXG4gIHB1YmxpYyBkZWZhdWx0VmFsdWU6IGFueTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHNldHRpbmdzLFxyXG4gICAgICB0eXBlLFxyXG4gICAgICB2YWxpZGF0b3JzLFxyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMsXHJcbiAgICAgIGVsZW1lbnRJZCxcclxuICAgICAgc3R5bGVDbGFzc2VzLFxyXG4gICAgICBkZWZhdWx0VmFsdWUsXHJcbiAgICAgIGhpZGRlbixcclxuICAgICAgaWNvbixcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIGxlbmd0aCxcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHJlYWRPbmx5LFxyXG4gICAgICByZXF1aXJlZCxcclxuICAgICAgdG9vbHRpcCxcclxuICAgICAgZGlzYWJsZWQsXHJcbiAgICB9OiBUU3BlY2lhbEZvcm0sXHJcbiAgICBjb250cm9sczoge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBTcGVjaWFsRm9ybUNvbnRyb2w8YW55PjtcclxuICAgIH0sXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb250cm9scywgdmFsaWRhdG9ycywgYXN5bmNWYWxpZGF0b3JzKTtcclxuXHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xyXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xyXG4gICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmVsZW1lbnRJZCA9IGVsZW1lbnRJZDtcclxuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnN0eWxlQ2xhc3NlcyA9IHN0eWxlQ2xhc3NlcztcclxuICAgIHRoaXMuaGlkZGVuID0gaGlkZGVuO1xyXG4gICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XHJcbiAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuICAgIGRpc2FibGVkID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgdW5wcmlzdGluZVJlcXVpcmVkKCkge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29udHJvbC51bnByaXN0aW5lUmVxdWlyZWQoKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSkge1xyXG4gICAgICAgIGNvbnRyb2wudW5wcmlzdGluZVJlcXVpcmVkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3BlY2lhbFJlc2V0KHZhbHVlID0ge30pIHtcclxuICAgIGNvbnN0IGF1eDogYW55ID0ge307XHJcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmNvbnRyb2xzKS5tYXAoKFtrZXksIGNvbnRyb2xdKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgYXV4W2tleV0gPSBjb250cm9sLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSkge1xyXG4gICAgICAgIGNvbnRyb2wuY2xlYXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZXNldCh7IC4uLmF1eCwgLi4udmFsdWUgfSk7XHJcbiAgfVxyXG4gIHNldFJlYWRPbmx5KHN0YXR1czogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQXJyYXkgfHxcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtR3JvdXBcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWUuc2V0UmVhZE9ubHkoc3RhdHVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFJlYWRPbmx5QnlGaWVsZHMoZmllbGRzT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSkge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoZmllbGRzT2JqZWN0KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sc1trZXldO1xyXG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wucmVhZE9ubHkgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRIaWRkZW5CeUZpZWxkcyhmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KSB7XHJcbiAgICBPYmplY3QuZW50cmllcyhmaWVsZHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xzW2tleV07XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgY29udHJvbC5oaWRkZW4gPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldERpc2FibGVkKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmNvbnRyb2xzKS5tYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFNwZWNpYWxGb3JtQ29udHJvbCB8fFxyXG4gICAgICAgIHZhbHVlIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSB8fFxyXG4gICAgICAgIHZhbHVlIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Hcm91cFxyXG4gICAgICApIHtcclxuICAgICAgICB2YWx1ZS5zZXREaXNhYmxlZChzdGF0dXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkQnlGaWVsZHMoZmllbGRzT2JqZWN0OiBhbnkpIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkc09iamVjdCkubWFwKChlbnRyaWVzKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzW2VudHJpZXNbMF1dIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgZW50cmllc1sxXVxyXG4gICAgICAgICAgPyB0aGlzLmNvbnRyb2xzW2VudHJpZXNbMF1dLmVuYWJsZSgpXHJcbiAgICAgICAgICA6IHRoaXMuY29udHJvbHNbZW50cmllc1swXV0uZGlzYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGRvbmRlIHZhbHVlIGVzIGVsIG9iamV0byBzZW1pbGxhIHkgZGV0YWlsRm9ybSBlcyB1biBhcnJlZ2xvIGRlIGZvcm0ga2V5IHBhcmEgZGFyIHVuIG1hcmNvIGFsIGZvcm1hcnJheVxyXG4gICAqL1xyXG5cclxuICBzZXRGb3JtVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5zcGVjaWFsUmVzZXQodmFsdWUpO1xyXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5jb250cm9scylcclxuICAgICAgLmZpbHRlcigoW19rZXksIGNvbnRyb2xdKSA9PiBjb250cm9sIGluc3RhbmNlb2YgU3BlY2lhbEZvcm1BcnJheSlcclxuICAgICAgLm1hcCgoW2tleSwgY29udHJvbF0pID0+IHtcclxuICAgICAgICAoY29udHJvbCBhcyBTcGVjaWFsRm9ybUFycmF5KS5maWxsRm9ybUFycmF5KHZhbHVlW2tleV0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIHJldG9ybmFcclxuICAgKi9cclxuXHJcbiAgZ2V0SWRQa2V5KCk6IFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuY29udHJvbHMpLmZpbmQoXHJcbiAgICAgIChjb250cm9sKSA9PlxyXG4gICAgICAgIGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUNvbnRyb2wgJiYgY29udHJvbC50eXBlID09PSAnUFJJTUFSWS1LRVknXHJcbiAgICApIGFzIFNwZWNpYWxGb3JtQ29udHJvbDxhbnk+IHwgdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNwZWNpYWxGb3JtQXJyYXkgZXh0ZW5kcyBGb3JtQXJyYXkgaW1wbGVtZW50cyBJRmllbGRCYXNpY0RhdGEge1xyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIHRvb2x0aXA6IHN0cmluZztcclxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBlbGVtZW50SWQ6IHN0cmluZztcclxuICBwdWJsaWMgc3R5bGVDbGFzc2VzOiBzdHJpbmc7XHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XHJcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBzZXR0aW5nczogSUFycmF5U2V0dGluZ3M7XHJcbiAgcHVibGljIHR5cGU6IEVDb250cm9sVHlwZXM7XHJcbiAgcHVibGljIGRlZmF1bHRWYWx1ZTogYW55O1xyXG4gIHB1YmxpYyBmb3JtOiBTcGVjaWFsRm9ybUdyb3VwO1xyXG4gIHByaXZhdGUgZm9ybUNyZWF0aW9uOiAodmFsdWU/OiBhbnkpID0+IFNwZWNpYWxGb3JtR3JvdXA7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICBuYW1lLFxyXG4gICAgICBzZXR0aW5ncyxcclxuICAgICAgdHlwZSxcclxuICAgICAgdmFsaWRhdG9ycyxcclxuICAgICAgYXN5bmNWYWxpZGF0b3JzLFxyXG4gICAgICBlbGVtZW50SWQsXHJcbiAgICAgIHN0eWxlQ2xhc3NlcyxcclxuICAgICAgZGVmYXVsdFZhbHVlLFxyXG4gICAgICBoaWRkZW4sXHJcbiAgICAgIGljb24sXHJcbiAgICAgIGxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcixcclxuICAgICAgcmVhZE9ubHksXHJcbiAgICAgIHJlcXVpcmVkLFxyXG4gICAgICB0b29sdGlwLFxyXG4gICAgICBlcnJvck1lc3NhZ2VzLFxyXG4gICAgICBkaXNhYmxlZCxcclxuICAgIH06IFRTcGVjaWFsQXJyYXksXHJcbiAgICBmb3JtQ3JlYXRpb246ICgpID0+IFNwZWNpYWxGb3JtR3JvdXAsXHJcbiAgICBjb250cm9sczogQWJzdHJhY3RDb250cm9sW11cclxuICApIHtcclxuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JzLCBhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ3JlYXRpb24gPSBmb3JtQ3JlYXRpb247XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1DcmVhdGlvbigpO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5lbGVtZW50SWQgPSBlbGVtZW50SWQ7XHJcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5zdHlsZUNsYXNzZXMgPSBzdHlsZUNsYXNzZXM7XHJcbiAgICB0aGlzLmhpZGRlbiA9IGhpZGRlbjtcclxuICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcclxuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gZXJyb3JNZXNzYWdlcztcclxuICAgIGRpc2FibGVkID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZmlsbEZvcm1BcnJheShkYXRhOiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybUNyZWF0aW9uKGl0ZW0pO1xyXG4gICAgICB0aGlzLnB1c2goZm9ybSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZEl0ZW0oKSB7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtQ3JlYXRpb24odGhpcy5mb3JtLnZhbHVlKTtcclxuXHJcbiAgICB0aGlzLmZvcm0uc3BlY2lhbFJlc2V0KCk7XHJcbiAgICB0aGlzLnB1c2goZm9ybSk7XHJcbiAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XHJcbiAgfVxyXG5cclxuICBzcGVjaWFsUHVzaChpbmRleD86IG51bWJlcikge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybUNyZWF0aW9uKHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgICBpZiAoIWluZGV4KSB0aGlzLnB1c2goZm9ybSk7XHJcbiAgICBlbHNlIHRoaXMuY29udHJvbHNbaW5kZXhdLnJlc2V0KHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzcGVjaWFsSW5zZXJ0KGluZGV4ID0gMCkge1xyXG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybUNyZWF0aW9uKHRoaXMuZm9ybS52YWx1ZSk7XHJcbiAgICB0aGlzLmluc2VydChpbmRleCwgZm9ybSk7XHJcbiAgfVxyXG5cclxuICBzcGVjaWFsRWRpdChpbmRleDogbnVtYmVyLCBuZXdWYWx1ZTogT2JqZWN0KSB7XHJcbiAgICB0aGlzLmNvbnRyb2xzW2luZGV4XS5yZXNldCh7IC4uLnRoaXMuY29udHJvbHNbaW5kZXhdLnZhbHVlLCAuLi5uZXdWYWx1ZSB9KTtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZ1ZWx2ZSB0b2RvcyBsb3MgY29udHJvbGVzIGRlbCBmb3JtQXJyYXkgZGUgbGVjdHVyYSBvIGRlIHNvbG9sZWN0dXJhXHJcbiAgICogQHBhcmFtIHN0YXR1c1xyXG4gICAqL1xyXG5cclxuICBzZXRSZWFkT25seShzdGF0dXM6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucmVhZE9ubHkgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRSZWFkT25seShzdGF0dXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZ1ZWx2ZSB0b2RvcyBsb3MgY29udHJvbGVzIGRlbCBmb3JtQXJyYXkgaGFiaWxpdGFkb3MgbyBkZXNoYWJpbGl0YWRvc1xyXG4gICAqIEBwYXJhbSBzdGF0dXNcclxuICAgKi9cclxuXHJcbiAgc2V0RGlzYWJsZWQoc3RhdHVzOiBib29sZWFuKSB7XHJcbiAgICBzdGF0dXMgPyB0aGlzLmRpc2FibGUoKSA6IHRoaXMuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2wpID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBTcGVjaWFsRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXREaXNhYmxlZChzdGF0dXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1pdGUgZWRpdGFyIHVuIGNvbnRyb2wgZXNwZWNpZmljby5cclxuICAgKiBAcGFyYW0gaW5kZXhcclxuICAgKi9cclxuXHJcbiAgZWRpdENvbnRyb2woaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KHRoaXMuY29udHJvbHNbaW5kZXhdLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHVucHJpc3RpbmVSZXF1aXJlZCgpIHtcclxuICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAoPFNwZWNpYWxGb3JtR3JvdXA+aXRlbSkudW5wcmlzdGluZVJlcXVpcmVkKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlY3Vyc2l2ZUZpbGxGb3JtKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogYW55KTogRm9ybUdyb3VwIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGZvcm0uY29udHJvbHMpLm1hcCgoW2tleSwgY29udHJvbF0pID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoZGF0YVtrZXldKTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgZGF0YVtrZXldLmZvckVhY2goKCkgPT4ge30pO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcclxuICAgICAgICBjb250cm9sLnJlc2V0KGRhdGFba2V5XSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzaWNzLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjaWFsLWZvcm1zL3NyYy9saWIvY29yZS9pbnRlcmZhY2VzL2ZpZWxkLWJhc2ljcy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkQmFzaWNEYXRhIHtcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdG9vbHRpcDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBlbGVtZW50SWQ6IHN0cmluZztcclxuICBzdHlsZUNsYXNzZXM6IHN0cmluZztcclxuICBsZW5ndGg6IG51bWJlcjtcclxuICByZXF1aXJlZDogYm9vbGVhbjtcclxuICBoaWRkZW46IGJvb2xlYW47XHJcbiAgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ6Ym9vbGVhbjtcclxuICBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZERhdGEgZXh0ZW5kcyBJRmllbGRCYXNpY0RhdGEge1xyXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGw7XHJcbiAgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbDtcclxuICBkZWZhdWx0VmFsdWU6IGFueTtcclxufVxyXG4iXX0=