angular-matecu 4.0.7 → 4.1.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 (54) hide show
  1. package/README.md +347 -130
  2. package/fesm2022/angular-matecu.mjs +1139 -138
  3. package/fesm2022/angular-matecu.mjs.map +1 -1
  4. package/package.json +6 -8
  5. package/types/angular-matecu.d.ts +489 -0
  6. package/CHANGELOG.md +0 -22
  7. package/esm2022/angular-matecu.mjs +0 -5
  8. package/esm2022/lib/components/matecu-alert-box/matecu-alert-box.component.mjs +0 -67
  9. package/esm2022/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.mjs +0 -54
  10. package/esm2022/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.mjs +0 -43
  11. package/esm2022/lib/components/matecu-spinner/matecu-spinner.component.mjs +0 -58
  12. package/esm2022/lib/components/matecu-topbar-action/matecu-topbar-action.component.mjs +0 -18
  13. package/esm2022/lib/components/matecu-topbar-body/matecu-topbar-body.component.mjs +0 -17
  14. package/esm2022/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.mjs +0 -43
  15. package/esm2022/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.mjs +0 -12
  16. package/esm2022/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.mjs +0 -29
  17. package/esm2022/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.mjs +0 -112
  18. package/esm2022/lib/components/matecu-topbar-search/matecu-topbar-search.component.mjs +0 -93
  19. package/esm2022/lib/components/matecu-topbar-title/matecu-topbar-title.component.mjs +0 -18
  20. package/esm2022/lib/modules/matecu-alert-box/matecu-alert-box.module.mjs +0 -24
  21. package/esm2022/lib/modules/matecu-spinner/matecu-spinner.module.mjs +0 -22
  22. package/esm2022/lib/modules/matecu-topbar-layout/matecu-topbar-layout.module.mjs +0 -83
  23. package/esm2022/lib/services/matecu-snack-bar.service.mjs +0 -66
  24. package/esm2022/lib/services/matecu-spinner.service.mjs +0 -44
  25. package/esm2022/lib/types/matecu-alert-dialog.mjs +0 -2
  26. package/esm2022/lib/types/matecu-alert-snackbar.mjs +0 -2
  27. package/esm2022/lib/types/matecu-altert-box-type.mjs +0 -8
  28. package/esm2022/public-api.mjs +0 -32
  29. package/index.d.ts +0 -5
  30. package/lib/components/matecu-alert-box/matecu-alert-box.component.d.ts +0 -19
  31. package/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.d.ts +0 -22
  32. package/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.d.ts +0 -20
  33. package/lib/components/matecu-spinner/matecu-spinner.component.d.ts +0 -20
  34. package/lib/components/matecu-topbar-action/matecu-topbar-action.component.d.ts +0 -9
  35. package/lib/components/matecu-topbar-body/matecu-topbar-body.component.d.ts +0 -6
  36. package/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.d.ts +0 -12
  37. package/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.d.ts +0 -5
  38. package/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.d.ts +0 -8
  39. package/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.d.ts +0 -27
  40. package/lib/components/matecu-topbar-search/matecu-topbar-search.component.d.ts +0 -27
  41. package/lib/components/matecu-topbar-title/matecu-topbar-title.component.d.ts +0 -9
  42. package/lib/modules/matecu-alert-box/matecu-alert-box.module.d.ts +0 -14
  43. package/lib/modules/matecu-spinner/matecu-spinner.module.d.ts +0 -8
  44. package/lib/modules/matecu-topbar-layout/matecu-topbar-layout.module.d.ts +0 -19
  45. package/lib/services/matecu-snack-bar.service.d.ts +0 -17
  46. package/lib/services/matecu-spinner.service.d.ts +0 -15
  47. package/lib/types/matecu-alert-dialog.d.ts +0 -9
  48. package/lib/types/matecu-alert-snackbar.d.ts +0 -7
  49. package/lib/types/matecu-altert-box-type.d.ts +0 -6
  50. package/public-api.d.ts +0 -28
  51. package/src/css/main.css +0 -1
  52. package/src/scss/main.scss +0 -2
  53. package/src/scss/matecu-spinner-module/_matecu-spinner-component.scss +0 -8
  54. package/src/scss/matecu-topbar-layout/_variables.scss +0 -2
@@ -0,0 +1,489 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, EventEmitter, ElementRef, NgZone, OnChanges, DoCheck, Injector, SimpleChanges } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { Observable, Subject } from 'rxjs';
5
+ import * as i2 from '@angular/material/toolbar';
6
+ import * as i3 from '@angular/material/icon';
7
+ import * as i4 from '@angular/forms';
8
+ import { FormControl, ControlValueAccessor, NgControl } from '@angular/forms';
9
+ import * as i5 from '@angular/material/button';
10
+ import * as i3$1 from '@angular/material/dialog';
11
+ import { MatDialogRef } from '@angular/material/dialog';
12
+ import * as i5$1 from '@angular/material/snack-bar';
13
+ import { MatSnackBarRef, MatSnackBar, MatSnackBarConfig, TextOnlySnackBar } from '@angular/material/snack-bar';
14
+ import { MatFormFieldControl } from '@angular/material/form-field';
15
+ import { FocusMonitor } from '@angular/cdk/a11y';
16
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
17
+ import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
18
+
19
+ declare class MatecuSpinnerService {
20
+ private active$;
21
+ private requestsKeys;
22
+ constructor();
23
+ watch(): Observable<boolean>;
24
+ add(customKey?: string): string;
25
+ remove(key: string): void;
26
+ clear(): void;
27
+ private updateStatus;
28
+ private createKey;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuSpinnerService, never>;
30
+ static ɵprov: i0.ɵɵInjectableDeclaration<MatecuSpinnerService>;
31
+ }
32
+
33
+ declare class MatecuSpinnerComponent implements OnInit, OnDestroy {
34
+ private spinnerService;
35
+ private cdr;
36
+ private destroy$;
37
+ private hiddenClass;
38
+ private activeCache;
39
+ className: string;
40
+ color: string;
41
+ global: boolean;
42
+ get active(): boolean;
43
+ set active(value: boolean);
44
+ size: string;
45
+ constructor(spinnerService: MatecuSpinnerService, cdr: ChangeDetectorRef);
46
+ ngOnDestroy(): void;
47
+ ngOnInit(): void;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuSpinnerComponent, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuSpinnerComponent, "matecu-spinner", never, { "color": { "alias": "color"; "required": false; }; "global": { "alias": "global"; "required": false; }; "active": { "alias": "active"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
50
+ }
51
+
52
+ declare class MatecuSpinnerModule {
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuSpinnerModule, never>;
54
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatecuSpinnerModule, never, [typeof i1.CommonModule, typeof MatecuSpinnerComponent], [typeof MatecuSpinnerComponent]>;
55
+ static ɵinj: i0.ɵɵInjectorDeclaration<MatecuSpinnerModule>;
56
+ }
57
+
58
+ declare class MatecuTopbarLayoutComponent implements AfterViewInit, OnDestroy {
59
+ private elementRef;
60
+ private changeDetector;
61
+ private zone;
62
+ private _scrolled;
63
+ private _prominent;
64
+ get scrolled(): boolean;
65
+ set scrolled(value: boolean);
66
+ private destroy$;
67
+ mobileStyle: boolean;
68
+ mobileStyleChange: EventEmitter<boolean>;
69
+ mobileWidth: number;
70
+ whenResize: EventEmitter<number>;
71
+ get prominent(): boolean;
72
+ set prominent(value: boolean);
73
+ className: string;
74
+ bodyElement?: ElementRef;
75
+ constructor(elementRef: ElementRef, changeDetector: ChangeDetectorRef, zone: NgZone);
76
+ ngOnDestroy(): void;
77
+ private spyScroll;
78
+ ngAfterViewInit(): void;
79
+ scrollTop(): void;
80
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarLayoutComponent, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarLayoutComponent, "matecu-topbar-layout", never, { "mobileStyle": { "alias": "mobileStyle"; "required": false; }; "mobileWidth": { "alias": "mobileWidth"; "required": false; }; "prominent": { "alias": "prominent"; "required": false; }; }, { "mobileStyleChange": "mobileStyleChange"; "whenResize": "whenResize"; }, never, ["matecu-topbar-header-row[first-row]", "matecu-topbar-header-row[second-row]", "matecu-topbar-body"], true, never>;
82
+ }
83
+
84
+ declare class MatecuTopbarTitleComponent implements OnInit {
85
+ className: string;
86
+ constructor();
87
+ ngOnInit(): void;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarTitleComponent, never>;
89
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarTitleComponent, "matecu-topbar-title", never, {}, {}, never, ["*"], true, never>;
90
+ }
91
+
92
+ declare class MatecuTopbarBodyComponent {
93
+ className: string;
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarBodyComponent, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarBodyComponent, "matecu-topbar-body", never, {}, {}, never, ["*"], true, never>;
96
+ }
97
+
98
+ declare class MatecuTopbarFabComponent {
99
+ private _mobileStyle;
100
+ private mainClassName;
101
+ display: boolean;
102
+ get mobileStyle(): boolean;
103
+ set mobileStyle(value: boolean);
104
+ className: string;
105
+ get color(): "flex" | "none";
106
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarFabComponent, never>;
107
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarFabComponent, "matecu-topbar-fab", never, { "display": { "alias": "display"; "required": false; }; "mobileStyle": { "alias": "mobileStyle"; "required": false; }; }, {}, never, ["*"], true, never>;
108
+ }
109
+
110
+ declare class MatecuTopbarSearchComponent implements OnInit {
111
+ hasValue: boolean;
112
+ activeMobileSearch: boolean;
113
+ inputCtrl: FormControl<string | null>;
114
+ private _value;
115
+ private _mobileStyle;
116
+ private destroy$;
117
+ display: boolean;
118
+ placeholder: string;
119
+ delyValueChanges: number;
120
+ get value(): string;
121
+ set value(v: string);
122
+ get mobileStyle(): boolean;
123
+ set mobileStyle(value: boolean);
124
+ valueChange: EventEmitter<string>;
125
+ className: string;
126
+ get color(): "flex" | "none";
127
+ ngOnInit(): void;
128
+ toggleActiveMobildeSearch(): void;
129
+ clearSearch(): void;
130
+ updateHasValueFn(): (value: string) => void;
131
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarSearchComponent, never>;
132
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarSearchComponent, "matecu-topbar-search", never, { "display": { "alias": "display"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "delyValueChanges": { "alias": "delyValueChanges"; "required": false; }; "value": { "alias": "value"; "required": false; }; "mobileStyle": { "alias": "mobileStyle"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
133
+ }
134
+
135
+ declare class MatecuTopbarActionComponent implements OnInit {
136
+ className: string;
137
+ constructor();
138
+ ngOnInit(): void;
139
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarActionComponent, never>;
140
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarActionComponent, "matecu-topbar-action", never, {}, {}, never, ["*"], true, never>;
141
+ }
142
+
143
+ declare class MatecuTopbarHeaderRowComponent {
144
+ display: boolean;
145
+ className: string;
146
+ get color(): "flex" | "none";
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarHeaderRowComponent, never>;
148
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarHeaderRowComponent, "matecu-topbar-header-row", never, { "display": { "alias": "display"; "required": false; }; }, {}, never, ["matecu-topbar-header-column[left-column]", "matecu-topbar-header-column[right-column]"], true, never>;
149
+ }
150
+
151
+ declare class MatecuTopbarHeaderColumnComponent {
152
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarHeaderColumnComponent, never>;
153
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuTopbarHeaderColumnComponent, "matecu-topbar-header-column", never, {}, {}, never, ["*"], true, never>;
154
+ }
155
+
156
+ declare class MatecuTopbarLayoutModule {
157
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuTopbarLayoutModule, never>;
158
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatecuTopbarLayoutModule, never, [typeof i1.CommonModule, typeof i2.MatToolbarModule, typeof i3.MatIconModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.MatButtonModule, typeof MatecuTopbarLayoutComponent, typeof MatecuTopbarTitleComponent, typeof MatecuTopbarBodyComponent, typeof MatecuTopbarFabComponent, typeof MatecuTopbarSearchComponent, typeof MatecuTopbarActionComponent, typeof MatecuTopbarHeaderRowComponent, typeof MatecuTopbarHeaderColumnComponent], [typeof MatecuTopbarLayoutComponent, typeof MatecuTopbarTitleComponent, typeof MatecuTopbarBodyComponent, typeof MatecuTopbarFabComponent, typeof MatecuTopbarSearchComponent, typeof MatecuTopbarActionComponent, typeof MatecuTopbarHeaderRowComponent, typeof MatecuTopbarHeaderColumnComponent]>;
159
+ static ɵinj: i0.ɵɵInjectorDeclaration<MatecuTopbarLayoutModule>;
160
+ }
161
+
162
+ declare enum MatecuAlertBoxType {
163
+ warning = "warning",
164
+ success = "success",
165
+ danger = "danger",
166
+ info = "info"
167
+ }
168
+
169
+ declare class MatecuAlertBoxComponent implements OnInit {
170
+ classNameBase: string;
171
+ alertColor?: MatecuAlertBoxType | undefined | string | null;
172
+ iconValue?: string | null | undefined;
173
+ private alertIcon;
174
+ get color(): MatecuAlertBoxType | undefined | string | null;
175
+ set color(value: MatecuAlertBoxType | undefined | string | null);
176
+ get icon(): boolean;
177
+ set icon(value: boolean);
178
+ className: string;
179
+ constructor();
180
+ ngOnInit(): void;
181
+ private updateIcon;
182
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAlertBoxComponent, never>;
183
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuAlertBoxComponent, "matecu-alert-box", never, { "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], true, never>;
184
+ }
185
+
186
+ interface MatecuAlertDialogData {
187
+ message: string;
188
+ title?: string | null | undefined;
189
+ action?: string | null | undefined;
190
+ icon?: boolean | null | undefined;
191
+ type?: MatecuAlertBoxType | string | null | undefined;
192
+ dismissText?: string | null | undefined;
193
+ }
194
+
195
+ declare class MatecuAlertDialogComponent implements OnInit {
196
+ dialogData: MatecuAlertDialogData;
197
+ dialogRef: MatDialogRef<MatecuAlertDialogComponent>;
198
+ hasTitle: boolean;
199
+ hasDismissBtn: boolean;
200
+ hasActionBtn: boolean;
201
+ showActions: boolean;
202
+ constructor(dialogData: MatecuAlertDialogData, dialogRef: MatDialogRef<MatecuAlertDialogComponent>);
203
+ ngOnInit(): void;
204
+ activateAction(): void;
205
+ private setHasTitle;
206
+ private setHasDismissBtn;
207
+ private setHasActionBtn;
208
+ private setShowActions;
209
+ private isValidString;
210
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAlertDialogComponent, never>;
211
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuAlertDialogComponent, "matecu-alert-dialog", never, {}, {}, never, never, true, never>;
212
+ }
213
+
214
+ interface MatecuAlertSnackBarData {
215
+ message: string;
216
+ title: string;
217
+ action?: string;
218
+ type: MatecuAlertBoxType;
219
+ }
220
+
221
+ declare class MatecuAlertSnackBarComponent {
222
+ data: MatecuAlertSnackBarData;
223
+ private snackBarRef;
224
+ title: string;
225
+ message: string;
226
+ action?: string;
227
+ classNameBase: string;
228
+ alertColor: MatecuAlertBoxType;
229
+ get color(): MatecuAlertBoxType;
230
+ set color(value: MatecuAlertBoxType);
231
+ className: string;
232
+ constructor(data: MatecuAlertSnackBarData, snackBarRef: MatSnackBarRef<MatecuAlertSnackBarComponent>);
233
+ dismiss(): void;
234
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAlertSnackBarComponent, never>;
235
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuAlertSnackBarComponent, "matecu-alert-snack-bar", never, {}, {}, never, never, true, never>;
236
+ }
237
+
238
+ declare class MatecuAlertBoxModule {
239
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAlertBoxModule, never>;
240
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MatecuAlertBoxModule, never, [typeof i1.CommonModule, typeof i3.MatIconModule, typeof i3$1.MatDialogModule, typeof i5.MatButtonModule, typeof i5$1.MatSnackBarModule, typeof MatecuAlertBoxComponent, typeof MatecuAlertDialogComponent, typeof MatecuAlertSnackBarComponent], [typeof MatecuAlertBoxComponent]>;
241
+ static ɵinj: i0.ɵɵInjectorDeclaration<MatecuAlertBoxModule>;
242
+ }
243
+
244
+ declare class MatecuSnackBarService {
245
+ private snackBar;
246
+ constructor(snackBar: MatSnackBar);
247
+ openError(error: string | Error, title?: string | null, action?: string, config?: MatSnackBarConfig<any>): MatSnackBarRef<MatecuAlertSnackBarComponent>;
248
+ openSuccess(message: string, title?: string | null, action?: string, config?: MatSnackBarConfig<any>): MatSnackBarRef<MatecuAlertSnackBarComponent>;
249
+ openWarning(message: string, title?: string | null, action?: string, config?: MatSnackBarConfig<any>): MatSnackBarRef<MatecuAlertSnackBarComponent>;
250
+ openInfo(message: string, title?: string | null, action?: string, config?: MatSnackBarConfig<any>): MatSnackBarRef<MatecuAlertSnackBarComponent>;
251
+ open(message: string, action?: string, config?: MatSnackBarConfig<any>): MatSnackBarRef<TextOnlySnackBar>;
252
+ dismiss(): void;
253
+ private openAlert;
254
+ private getErrorMessage;
255
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuSnackBarService, never>;
256
+ static ɵprov: i0.ɵɵInjectableDeclaration<MatecuSnackBarService>;
257
+ }
258
+
259
+ /**
260
+ * [value,label]
261
+ */
262
+ type MatecuAutocompleteOption = [string, string];
263
+ type MatecuAutocompleteFilterFn = (optionLabel: string, search: string) => boolean;
264
+
265
+ declare class MatecuAutocomplete implements ControlValueAccessor, MatFormFieldControl<string>, OnChanges, OnInit, OnDestroy, DoCheck {
266
+ options: MatecuAutocompleteOption[];
267
+ allowCreate: boolean;
268
+ loading: boolean;
269
+ readonly: boolean;
270
+ filterFn: MatecuAutocompleteFilterFn;
271
+ searchChangeDebounceTime: number;
272
+ get placeholder(): string;
273
+ set placeholder(value: string);
274
+ private _placeholder;
275
+ get required(): boolean;
276
+ set required(value: boolean);
277
+ private _required;
278
+ get disabled(): boolean;
279
+ set disabled(value: boolean);
280
+ private _disabled;
281
+ get value(): string | null;
282
+ set value(value: string | null);
283
+ searchChange: EventEmitter<string>;
284
+ create: EventEmitter<string>;
285
+ valueChange: EventEmitter<string | null>;
286
+ static nextId: number;
287
+ readonly stateChanges: Subject<void>;
288
+ readonly id: string;
289
+ ngControl: NgControl | null;
290
+ focused: boolean;
291
+ lastSearchText: string | null;
292
+ readonly controlType = "matecu-autocomplete";
293
+ readonly autofilled = false;
294
+ inputControl: FormControl<string | null>;
295
+ filteredOptions$: Observable<MatecuAutocompleteOption[]>;
296
+ private internalValue;
297
+ private focusMonitor;
298
+ private elementRef;
299
+ private injector;
300
+ private optionMap;
301
+ private onChange;
302
+ private onTouched;
303
+ get empty(): boolean;
304
+ get shouldLabelFloat(): boolean;
305
+ get errorState(): boolean;
306
+ get showCreateOption(): boolean;
307
+ constructor(focusMonitor: FocusMonitor, elementRef: ElementRef<HTMLElement>, injector: Injector);
308
+ ngOnInit(): void;
309
+ ngOnDestroy(): void;
310
+ ngDoCheck(): void;
311
+ ngOnChanges(changes: SimpleChanges): void;
312
+ private filter;
313
+ private createFilterFn;
314
+ displayLabel: (value: string | null) => string;
315
+ onOptionSelected(value: string): void;
316
+ onCreateClick(): void;
317
+ private updateInputLabelFromValue;
318
+ writeValue(value: string | null): void;
319
+ registerOnChange(fn: any): void;
320
+ registerOnTouched(fn: any): void;
321
+ setDisabledState(isDisabled: boolean): void;
322
+ focus(options?: FocusOptions): void;
323
+ onContainerClick(): void;
324
+ setDescribedByIds(ids: string[]): void;
325
+ private rebuildOptionMap;
326
+ private clearValue;
327
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAutocomplete, never>;
328
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuAutocomplete, "matecu-autocomplete", never, { "options": { "alias": "options"; "required": false; }; "allowCreate": { "alias": "allowCreate"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "searchChangeDebounceTime": { "alias": "searchChangeDebounceTime"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "searchChange": "searchChange"; "create": "create"; "valueChange": "valueChange"; }, never, never, true, never>;
329
+ }
330
+
331
+ declare class MatecuAutocompleteMultiple implements ControlValueAccessor, MatFormFieldControl<string[]>, OnDestroy, OnInit {
332
+ static nextId: number;
333
+ placeholder: string;
334
+ loading: boolean;
335
+ searchChangeDebounceTime: number;
336
+ enableSelectAll: boolean;
337
+ readonly: boolean;
338
+ selectAllLabel: string;
339
+ clearAllLabel: string;
340
+ showTooltip: boolean;
341
+ filterFn: MatecuAutocompleteFilterFn;
342
+ private _options;
343
+ set options(value: MatecuAutocompleteOption[]);
344
+ get options(): MatecuAutocompleteOption[];
345
+ searchChange: EventEmitter<string>;
346
+ control: FormControl<string[]>;
347
+ controlValue$: i0.Signal<string[] | undefined>;
348
+ searchControl: FormControl<string>;
349
+ autocompleteTrigger: MatAutocompleteTrigger;
350
+ readonly searchText: i0.WritableSignal<string>;
351
+ readonly filteredOptions: i0.Signal<MatecuAutocompleteOption[]>;
352
+ readonly selectedItems: i0.Signal<{
353
+ value: string;
354
+ label: string;
355
+ }[]>;
356
+ stateChanges: Subject<void>;
357
+ focused: boolean;
358
+ controlType: string;
359
+ id: string;
360
+ describedBy: string;
361
+ disabled: boolean;
362
+ required: boolean;
363
+ errorState: boolean;
364
+ private injector;
365
+ ngControl: NgControl | null;
366
+ get empty(): boolean;
367
+ get shouldLabelFloat(): boolean;
368
+ constructor(injector: Injector);
369
+ value: string[] | null;
370
+ autofilled?: boolean | undefined;
371
+ userAriaDescribedBy?: string | undefined;
372
+ disableAutomaticLabeling?: boolean | undefined;
373
+ describedByIds?: string[] | undefined;
374
+ ngOnInit(): void;
375
+ selectOption(option: [string, string]): void;
376
+ displayLabel(option: [string, string]): string;
377
+ remove(value: string): void;
378
+ selectAll(): void;
379
+ clearAll(): void;
380
+ drop(event: CdkDragDrop<any>): void;
381
+ onKeyDown(event: KeyboardEvent): void;
382
+ onChange: (value: string[]) => void;
383
+ onTouched: () => void;
384
+ writeValue(value: string[] | null): void;
385
+ registerOnChange(fn: any): void;
386
+ registerOnTouched(fn: any): void;
387
+ setDisabledState(isDisabled: boolean): void;
388
+ setDescribedByIds(ids: string[]): void;
389
+ onContainerClick(): void;
390
+ ngOnDestroy(): void;
391
+ trackByValue: (_: number, item: [string, string]) => string;
392
+ openPanel(): void;
393
+ private createFilterFn;
394
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuAutocompleteMultiple, never>;
395
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuAutocompleteMultiple, "matecu-autocomplete-multiple", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "searchChangeDebounceTime": { "alias": "searchChangeDebounceTime"; "required": false; }; "enableSelectAll": { "alias": "enableSelectAll"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "selectAllLabel": { "alias": "selectAllLabel"; "required": false; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; }; "showTooltip": { "alias": "showTooltip"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "options": { "alias": "options"; "required": true; }; }, { "searchChange": "searchChange"; }, never, never, true, never>;
396
+ }
397
+
398
+ interface ErrorMessages {
399
+ invalidSize: string;
400
+ invalidType: string;
401
+ tooManyFiles: string;
402
+ uploadError: string;
403
+ }
404
+ type FileSizeUnit = 'AUTO' | 'bytes' | 'KB' | 'MB' | 'GB' | 'TB';
405
+
406
+ declare enum FileInputState {
407
+ IDLE = "idle",
408
+ LOADING = "loading",
409
+ SUCCESS = "success",
410
+ ERROR = "error"
411
+ }
412
+ declare class MatecuFileInput implements ControlValueAccessor, OnDestroy {
413
+ fileInput: ElementRef<HTMLInputElement>;
414
+ files: File[];
415
+ file?: File;
416
+ isDisabled: boolean;
417
+ fileName?: string;
418
+ selectedFileSize?: number;
419
+ hasInvalidSize: boolean;
420
+ hasInvalidType: boolean;
421
+ previewUrl?: string;
422
+ previewUrls: Map<string, string>;
423
+ currentState: FileInputState;
424
+ validationErrors: string[];
425
+ isDragOver: boolean;
426
+ private onChange;
427
+ private onTouched;
428
+ optimizeImage?: (img: File) => Promise<File>;
429
+ optimizeImageToSize?: number;
430
+ maxFileSize?: number;
431
+ maxFiles: number;
432
+ multiple: boolean;
433
+ showFileSize: boolean;
434
+ fileSizeUnit: FileSizeUnit;
435
+ displayName?: string;
436
+ placeholder: string;
437
+ buttonText: string;
438
+ changeSelectedFileText: string;
439
+ loadingText: string;
440
+ ariaLabel?: string;
441
+ acceptedMimeTypes: string[];
442
+ acceptedExtensions: string[];
443
+ errorMessages: ErrorMessages;
444
+ enableDragDrop: boolean;
445
+ showPreview: boolean;
446
+ previewMaxWidth: number;
447
+ previewMaxHeight: number;
448
+ showProgress: boolean;
449
+ fileSelected: EventEmitter<File>;
450
+ filesSelected: EventEmitter<File[]>;
451
+ fileRemoved: EventEmitter<File>;
452
+ validationError: EventEmitter<string[]>;
453
+ dragEnter: EventEmitter<DragEvent>;
454
+ dragLeave: EventEmitter<DragEvent>;
455
+ stateChange: EventEmitter<FileInputState>;
456
+ writeValue(value: any): void;
457
+ registerOnChange(fn: (value: any) => void): void;
458
+ registerOnTouched(fn: () => void): void;
459
+ setDisabledState(isDisabled: boolean): void;
460
+ ngOnDestroy(): void;
461
+ onFileChange(event: Event): void;
462
+ onDragOver(event: DragEvent): void;
463
+ onDragLeave(event: DragEvent): void;
464
+ onDrop(event: DragEvent): void;
465
+ openFileDialog(): void;
466
+ removeFile(fileToRemove: File): void;
467
+ private handleFileSelection;
468
+ private handleSingleFile;
469
+ private handleMultipleFiles;
470
+ private processFile;
471
+ private validateFile;
472
+ private generatePreview;
473
+ private cleanupPreview;
474
+ private resetComponent;
475
+ private notifyChange;
476
+ private changeState;
477
+ calculateFileSizeInMB(file: File): number;
478
+ formatFileSize(file: File): string;
479
+ getFileIcon(file?: File): string;
480
+ getPreviewUrl(file: File): string;
481
+ get hasErrors(): boolean;
482
+ get isLoading(): boolean;
483
+ get hasFiles(): boolean;
484
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatecuFileInput, never>;
485
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatecuFileInput, "matecu-file-input", never, { "optimizeImage": { "alias": "optimizeImage"; "required": false; }; "optimizeImageToSize": { "alias": "optimizeImageToSize"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "maxFiles": { "alias": "maxFiles"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; "fileSizeUnit": { "alias": "fileSizeUnit"; "required": false; }; "displayName": { "alias": "displayName"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "changeSelectedFileText": { "alias": "changeSelectedFileText"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "acceptedMimeTypes": { "alias": "acceptedMimeTypes"; "required": false; }; "acceptedExtensions": { "alias": "acceptedExtensions"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "enableDragDrop": { "alias": "enableDragDrop"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "previewMaxWidth": { "alias": "previewMaxWidth"; "required": false; }; "previewMaxHeight": { "alias": "previewMaxHeight"; "required": false; }; "showProgress": { "alias": "showProgress"; "required": false; }; }, { "fileSelected": "fileSelected"; "filesSelected": "filesSelected"; "fileRemoved": "fileRemoved"; "validationError": "validationError"; "dragEnter": "dragEnter"; "dragLeave": "dragLeave"; "stateChange": "stateChange"; }, never, never, true, never>;
486
+ }
487
+
488
+ export { FileInputState, MatecuAlertBoxComponent, MatecuAlertBoxModule, MatecuAlertBoxType, MatecuAlertDialogComponent, MatecuAlertSnackBarComponent, MatecuAutocomplete, MatecuAutocompleteMultiple, MatecuFileInput, MatecuSnackBarService, MatecuSpinnerComponent, MatecuSpinnerModule, MatecuSpinnerService, MatecuTopbarActionComponent, MatecuTopbarBodyComponent, MatecuTopbarFabComponent, MatecuTopbarHeaderColumnComponent, MatecuTopbarHeaderRowComponent, MatecuTopbarLayoutComponent, MatecuTopbarLayoutModule, MatecuTopbarSearchComponent, MatecuTopbarTitleComponent };
489
+ export type { FileSizeUnit, MatecuAlertDialogData };
package/CHANGELOG.md DELETED
@@ -1,22 +0,0 @@
1
- Versión 4.0
2
-
3
- - Se cambio la estructura de los componentes relacionados con MatecuTopbarLayout
4
- - El color de la barra de MatecuTopbarLayout ya no se obtiene del tema de material design se puede asignar con la variable css --mtb-primary-color
5
- - Se cambio el selector para identifcar la primera y segunda fila MatecuTopbarHeaderRow se usan los atributos first-row y second-row según corresponda
6
- - Se agrego MatecuTopbarHeaderColumn para agregar elementos a la barra puede ser con atributo left-column o right-column
7
- - El output e input de MatecuTopbarSearch es valueChange y value respectivamente.
8
- - MatecuTopbarFab ya no incluye el botón ni su respectiva acción, se deben agregar como contenido.
9
- - Se quitaron los estilos para dispositivos móviles ahora se ajusta con la propiedad mobileStyle de algunos componentes
10
- Versión 3.0
11
-
12
- ## Standalone components
13
-
14
- - Se cambiaron todos los componentes a tipo standalone. El uso de módulos queda obsoleto y sera removido en futuras versiones
15
-
16
- ## TopbarLayout
17
-
18
- - Se quito el boton de navegación pricipal, input navMenu y output clickNavMenu fueron removidos
19
- - Se quito el boton de navegación pricipal, input actionMenu y output clickActionMenu fueron removidos
20
- - Se elimino componente matecu-topbar-actions queda en su lugar matecu-topbar-action que se puede utilizar en multiple ocaciones
21
- - Es obligatorio agrupar todos los elementos del topbar excepto matecu-topbar-body dentro del elemento matecu-topbar-header-row
22
- - Es obligatorio importar MatSnackBarModule para usar el componente matecu-alert-snack-bar
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlY3UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW1hdGVjdS9zcmMvYW5ndWxhci1tYXRlY3UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,67 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, HostBinding, Input } from '@angular/core';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { MatecuAlertBoxType } from '../../types/matecu-altert-box-type';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/material/icon";
8
- export class MatecuAlertBoxComponent {
9
- get color() {
10
- return this.alertColor;
11
- }
12
- set color(value) {
13
- this.alertColor = value;
14
- if (!!value) {
15
- this.className = `${this.classNameBase} ${this.classNameBase}--${value}`;
16
- }
17
- else {
18
- this.className = this.classNameBase;
19
- }
20
- this.updateIcon();
21
- }
22
- get icon() {
23
- return this.alertIcon;
24
- }
25
- set icon(value) {
26
- this.alertIcon = value;
27
- }
28
- constructor() {
29
- this.classNameBase = 'matecu-alert-box';
30
- this.alertIcon = false;
31
- this.className = this.classNameBase;
32
- }
33
- ngOnInit() { }
34
- updateIcon() {
35
- switch (this.color) {
36
- case MatecuAlertBoxType.danger:
37
- this.iconValue = 'dangerous';
38
- break;
39
- case MatecuAlertBoxType.warning:
40
- this.iconValue = 'warning';
41
- break;
42
- case MatecuAlertBoxType.success:
43
- this.iconValue = 'check_circle';
44
- break;
45
- case MatecuAlertBoxType.info:
46
- this.iconValue = 'info';
47
- break;
48
- default:
49
- this.iconValue = null;
50
- break;
51
- }
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MatecuAlertBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MatecuAlertBoxComponent, isStandalone: true, selector: "matecu-alert-box", inputs: { color: "color", icon: "icon" }, host: { properties: { "class": "this.className" } }, ngImport: i0, template: "<ng-container *ngIf=\"icon && iconValue\">\n <div class=\"matecu-alert-box__icon\">\n <mat-icon>{{iconValue}}</mat-icon>\n </div>\n</ng-container>\n<div class=\"matecu-alert-box__content\">\n <ng-content>\n\n\n </ng-content>\n</div>\n", styles: [":host.matecu-alert-box{display:flex;padding:1rem;border-radius:.25rem;position:relative;border:1px solid rgb(224,224,224);box-sizing:border-box;margin:1rem 0}:host.matecu-alert-box--success{color:#0f5032;background-color:#d2e6dc;border-color:#badccd}:host.matecu-alert-box--danger{color:#821e28;background-color:#f8d7da;border-color:#f5c2c7}:host.matecu-alert-box--warning{color:#644d03;background-color:#fff3cd;border-color:#ffecb4}:host.matecu-alert-box--info{color:#055160;background-color:#cff4fc;border-color:#b6effb}:host.matecu-alert-box .matecu-alert-box__icon{display:flex;margin-right:1rem}:host.matecu-alert-box .matecu-alert-box__content{align-self:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MatecuAlertBoxComponent, decorators: [{
57
- type: Component,
58
- args: [{ selector: 'matecu-alert-box', standalone: true, imports: [CommonModule, MatIconModule], template: "<ng-container *ngIf=\"icon && iconValue\">\n <div class=\"matecu-alert-box__icon\">\n <mat-icon>{{iconValue}}</mat-icon>\n </div>\n</ng-container>\n<div class=\"matecu-alert-box__content\">\n <ng-content>\n\n\n </ng-content>\n</div>\n", styles: [":host.matecu-alert-box{display:flex;padding:1rem;border-radius:.25rem;position:relative;border:1px solid rgb(224,224,224);box-sizing:border-box;margin:1rem 0}:host.matecu-alert-box--success{color:#0f5032;background-color:#d2e6dc;border-color:#badccd}:host.matecu-alert-box--danger{color:#821e28;background-color:#f8d7da;border-color:#f5c2c7}:host.matecu-alert-box--warning{color:#644d03;background-color:#fff3cd;border-color:#ffecb4}:host.matecu-alert-box--info{color:#055160;background-color:#cff4fc;border-color:#b6effb}:host.matecu-alert-box .matecu-alert-box__icon{display:flex;margin-right:1rem}:host.matecu-alert-box .matecu-alert-box__content{align-self:center}\n"] }]
59
- }], ctorParameters: () => [], propDecorators: { color: [{
60
- type: Input
61
- }], icon: [{
62
- type: Input
63
- }], className: [{
64
- type: HostBinding,
65
- args: ['class']
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZWN1LWFsZXJ0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW1hdGVjdS9zcmMvbGliL2NvbXBvbmVudHMvbWF0ZWN1LWFsZXJ0LWJveC9tYXRlY3UtYWxlcnQtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZWN1L3NyYy9saWIvY29tcG9uZW50cy9tYXRlY3UtYWxlcnQtYm94L21hdGVjdS1hbGVydC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFTeEUsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQWEsS0FBSyxDQUFDLEtBQXFEO1FBQ3RFLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVEO1FBdkJBLGtCQUFhLEdBQUcsa0JBQWtCLENBQUM7UUFHM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQW1CSixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRWpCLFFBQVEsS0FBVyxDQUFDO0lBRVosVUFBVTtRQUNoQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixLQUFLLGtCQUFrQixDQUFDLE1BQU07Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2dCQUM3QixNQUFNO1lBQ1IsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLGtCQUFrQixDQUFDLElBQUk7Z0JBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO2dCQUN4QixNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzs4R0E5Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMktDWnBDLG1QQVdBLHV0QkREWSxZQUFZLGtJQUFFLGFBQWE7OzJGQUUxQix1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7d0RBVXpCLEtBQUs7c0JBQWpCLEtBQUs7Z0JBWU8sSUFBSTtzQkFBaEIsS0FBSztnQkFHZ0IsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdGVjdUFsZXJ0Qm94VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL21hdGVjdS1hbHRlcnQtYm94LXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXRlY3UtYWxlcnQtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hdGVjdS1hbGVydC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXRlY3UtYWxlcnQtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVjdUFsZXJ0Qm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2xhc3NOYW1lQmFzZSA9ICdtYXRlY3UtYWxlcnQtYm94JztcbiAgYWxlcnRDb2xvcj86IE1hdGVjdUFsZXJ0Qm94VHlwZSB8IHVuZGVmaW5lZCB8IHN0cmluZyB8IG51bGw7XG4gIGljb25WYWx1ZT86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgYWxlcnRJY29uID0gZmFsc2U7XG4gIGdldCBjb2xvcigpOiBNYXRlY3VBbGVydEJveFR5cGUgfCB1bmRlZmluZWQgfCBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hbGVydENvbG9yO1xuICB9XG4gIEBJbnB1dCgpIHNldCBjb2xvcih2YWx1ZTogTWF0ZWN1QWxlcnRCb3hUeXBlIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuYWxlcnRDb2xvciA9IHZhbHVlO1xuICAgIGlmICghIXZhbHVlKSB7XG4gICAgICB0aGlzLmNsYXNzTmFtZSA9IGAke3RoaXMuY2xhc3NOYW1lQmFzZX0gJHt0aGlzLmNsYXNzTmFtZUJhc2V9LS0ke3ZhbHVlfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWVCYXNlO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUljb24oKTtcbiAgfVxuICBnZXQgaWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGVydEljb247XG4gIH1cbiAgQElucHV0KCkgc2V0IGljb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsZXJ0SWNvbiA9IHZhbHVlO1xuICB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZUJhc2U7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICBwcml2YXRlIHVwZGF0ZUljb24oKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmNvbG9yKSB7XG4gICAgICBjYXNlIE1hdGVjdUFsZXJ0Qm94VHlwZS5kYW5nZXI6XG4gICAgICAgIHRoaXMuaWNvblZhbHVlID0gJ2Rhbmdlcm91cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNYXRlY3VBbGVydEJveFR5cGUud2FybmluZzpcbiAgICAgICAgdGhpcy5pY29uVmFsdWUgPSAnd2FybmluZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNYXRlY3VBbGVydEJveFR5cGUuc3VjY2VzczpcbiAgICAgICAgdGhpcy5pY29uVmFsdWUgPSAnY2hlY2tfY2lyY2xlJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE1hdGVjdUFsZXJ0Qm94VHlwZS5pbmZvOlxuICAgICAgICB0aGlzLmljb25WYWx1ZSA9ICdpbmZvJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmljb25WYWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb24gJiYgaWNvblZhbHVlXCI+XG4gIDxkaXYgY2xhc3M9XCJtYXRlY3UtYWxlcnQtYm94X19pY29uXCI+XG4gICAgPG1hdC1pY29uPnt7aWNvblZhbHVlfX08L21hdC1pY29uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cIm1hdGVjdS1hbGVydC1ib3hfX2NvbnRlbnRcIj5cbiAgPG5nLWNvbnRlbnQ+XG5cblxuICA8L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==