ngx-material-entity 1.0.6 → 1.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 (84) hide show
  1. package/capsulation/jszip.utilities.d.ts +12 -0
  2. package/classes/entity.utilities.d.ts +0 -9
  3. package/classes/file.utilities.d.ts +13 -0
  4. package/components/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  5. package/components/input/array/array-date-input/array-date-input.component.d.ts +1 -1
  6. package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +1 -1
  7. package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +1 -1
  8. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +1 -1
  9. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +1 -1
  10. package/components/input/array/array-table.class.d.ts +2 -2
  11. package/components/input/base-input.component.d.ts +1 -1
  12. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +1 -1
  13. package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +1 -1
  14. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +1 -1
  15. package/components/input/custom/custom.component.d.ts +1 -1
  16. package/components/input/date/date-input/date-input.component.d.ts +1 -1
  17. package/components/input/date/date-range-input/date-range-input.component.d.ts +1 -1
  18. package/components/input/date/date-time-input/date-time-input.component.d.ts +1 -1
  19. package/components/input/file/file-default-input/file-default-input.component.d.ts +1 -1
  20. package/components/input/file/file-image-input/file-image-input.component.d.ts +1 -1
  21. package/components/input/file/file-input/dragDrop.directive.d.ts +1 -1
  22. package/components/input/file/file-input/file-input.component.d.ts +7 -7
  23. package/components/input/input.component.d.ts +1 -1
  24. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +1 -1
  25. package/components/input/number/number-input/number-input.component.d.ts +1 -1
  26. package/components/input/number/number-slider-input/number-slider-input.component.d.ts +1 -1
  27. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +1 -1
  28. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +1 -1
  29. package/components/input/string/string-input/string-input.component.d.ts +1 -1
  30. package/components/input/string/string-password-input/string-password-input.component.d.ts +1 -1
  31. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +1 -1
  32. package/components/table/create-dialog/create-entity-dialog.component.d.ts +1 -1
  33. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +6 -3
  34. package/components/table/table.component.d.ts +1 -1
  35. package/decorators/file/file-decorator-internal.data.d.ts +2 -0
  36. package/decorators/file/file-decorator.data.d.ts +9 -1
  37. package/esm2020/capsulation/jszip.utilities.mjs +17 -0
  38. package/esm2020/classes/entity.model.mjs +1 -1
  39. package/esm2020/classes/entity.utilities.mjs +23 -16
  40. package/esm2020/classes/file.utilities.mjs +40 -1
  41. package/esm2020/components/confirm-dialog/confirm-dialog.component.mjs +9 -9
  42. package/esm2020/components/confirm-dialog/confirm-dialog.module.mjs +5 -5
  43. package/esm2020/components/input/array/array-date-input/array-date-input.component.mjs +12 -12
  44. package/esm2020/components/input/array/array-date-range-input/array-date-range-input.component.mjs +12 -12
  45. package/esm2020/components/input/array/array-date-time-input/array-date-time-input.component.mjs +14 -14
  46. package/esm2020/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +12 -12
  47. package/esm2020/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +10 -10
  48. package/esm2020/components/input/array/array-table.class.mjs +5 -5
  49. package/esm2020/components/input/base-input.component.mjs +4 -4
  50. package/esm2020/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +6 -6
  51. package/esm2020/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +7 -7
  52. package/esm2020/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +6 -6
  53. package/esm2020/components/input/custom/custom.component.mjs +5 -5
  54. package/esm2020/components/input/date/date-input/date-input.component.mjs +7 -7
  55. package/esm2020/components/input/date/date-range-input/date-range-input.component.mjs +7 -7
  56. package/esm2020/components/input/date/date-time-input/date-time-input.component.mjs +11 -11
  57. package/esm2020/components/input/file/file-default-input/file-default-input.component.mjs +5 -5
  58. package/esm2020/components/input/file/file-image-input/file-image-input.component.mjs +7 -7
  59. package/esm2020/components/input/file/file-input/dragDrop.directive.mjs +4 -4
  60. package/esm2020/components/input/file/file-input/file-input.component.mjs +61 -36
  61. package/esm2020/components/input/input.component.mjs +36 -33
  62. package/esm2020/components/input/input.module.mjs +20 -22
  63. package/esm2020/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +9 -9
  64. package/esm2020/components/input/number/number-input/number-input.component.mjs +4 -4
  65. package/esm2020/components/input/number/number-slider-input/number-slider-input.component.mjs +7 -7
  66. package/esm2020/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +10 -10
  67. package/esm2020/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +9 -9
  68. package/esm2020/components/input/string/string-input/string-input.component.mjs +4 -4
  69. package/esm2020/components/input/string/string-password-input/string-password-input.component.mjs +8 -8
  70. package/esm2020/components/input/string/string-textbox-input/string-textbox-input.component.mjs +7 -7
  71. package/esm2020/components/table/create-dialog/create-entity-dialog.component.mjs +12 -9
  72. package/esm2020/components/table/create-dialog/create-entity-dialog.module.mjs +10 -12
  73. package/esm2020/components/table/edit-dialog/edit-entity-dialog.component.mjs +20 -15
  74. package/esm2020/components/table/edit-dialog/edit-entity-dialog.module.mjs +11 -13
  75. package/esm2020/components/table/table.component.mjs +12 -12
  76. package/esm2020/components/table/table.module.mjs +16 -18
  77. package/esm2020/decorators/file/file-decorator-internal.data.mjs +3 -1
  78. package/esm2020/decorators/file/file-decorator.data.mjs +1 -1
  79. package/fesm2015/ngx-material-entity.mjs +534 -434
  80. package/fesm2015/ngx-material-entity.mjs.map +1 -1
  81. package/fesm2020/ngx-material-entity.mjs +517 -423
  82. package/fesm2020/ngx-material-entity.mjs.map +1 -1
  83. package/{ngx-material-entity.d.ts → index.d.ts} +0 -0
  84. package/package.json +14 -13
@@ -0,0 +1,12 @@
1
+ import * as JSZipType from 'jszip';
2
+ /**
3
+ * Encapsulates JSZip functionality.
4
+ */
5
+ export declare abstract class JSZipUtilities {
6
+ /**
7
+ * Generates a new JSZip object that is correctly typed.
8
+ *
9
+ * @returns A new JSZip object.
10
+ */
11
+ static new(): JSZipType;
12
+ }
@@ -146,15 +146,6 @@ export declare abstract class EntityUtilities {
146
146
  * @param entityPriorChanges - The entity before any changes.
147
147
  */
148
148
  static resetChangesOnEntity<EntityType extends BaseEntityType<EntityType>>(entity: EntityType, entityPriorChanges: EntityType): void;
149
- /**
150
- * Gets the rows that are used to display the given entity.
151
- *
152
- * @param entity - The entity to get the rows from.
153
- * @param tab - The tab number for which the rows should be returned.
154
- * @param hideOmitForCreate - Whether or not keys with the metadata omitForCreate should be filtered out.
155
- * @param hideOmitForEdit - Whether or not keys with the metadata omitForUpdate should be filtered out.
156
- * @returns The sorted Rows containing the row number and the keys to display in that row.
157
- */
158
149
  private static getEntityRows;
159
150
  /**
160
151
  * Gets the tabs that are used to display the given entity.
@@ -32,6 +32,19 @@ export declare abstract class FileUtilities {
32
32
  * @returns FileDataWithFile.
33
33
  */
34
34
  static getFileData(data: FileData): Promise<FileDataWithFile>;
35
+ /**
36
+ * Downloads a single file from the given File Data.
37
+ *
38
+ * @param fileData - The file data. Needs to contain a blob.
39
+ */
40
+ static downloadSingleFile(fileData: FileDataWithFile): void;
41
+ /**
42
+ * Downloads multiple files as a zip with the given name.
43
+ *
44
+ * @param name - The name of the zip file to generate.
45
+ * @param multiFileData - The file data array to put in the zip.
46
+ */
47
+ static downloadMultipleFiles(name: string, multiFileData: FileData[]): Promise<void>;
35
48
  /**
36
49
  * Checks if the given file has a valid mime type.
37
50
  *
@@ -24,5 +24,5 @@ export declare class NgxMatEntityConfirmDialogComponent implements OnInit {
24
24
  */
25
25
  cancel(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityConfirmDialogComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityConfirmDialogComponent, "ngx-mat-entity-confirm-dialog", never, {}, {}, never, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityConfirmDialogComponent, "ngx-mat-entity-confirm-dialog", never, {}, {}, never, never, false>;
28
28
  }
@@ -7,5 +7,5 @@ import * as i0 from "@angular/core";
7
7
  export declare class ArrayDateInputComponent<EntityType extends BaseEntityType<EntityType>> extends ArrayTableComponent<Date, EntityType, DecoratorTypes.ARRAY_DATE> implements OnInit {
8
8
  DateUtilities: typeof DateUtilities;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayDateInputComponent<any>, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateInputComponent<any>, "array-date-input", never, {}, {}, never, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateInputComponent<any>, "array-date-input", never, {}, {}, never, never, false>;
11
11
  }
@@ -16,5 +16,5 @@ export declare class ArrayDateRangeInputComponent<EntityType extends BaseEntityT
16
16
  addDateRange(): void;
17
17
  protected resetInput(): void;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayDateRangeInputComponent<any>, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateRangeInputComponent<any>, "array-date-range-input", never, {}, {}, never, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateRangeInputComponent<any>, "array-date-range-input", never, {}, {}, never, never, false>;
20
20
  }
@@ -18,5 +18,5 @@ export declare class ArrayDateTimeInputComponent<EntityType extends BaseEntityTy
18
18
  */
19
19
  addDateTime(): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayDateTimeInputComponent<any>, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateTimeInputComponent<any>, "array-date-time-input", never, {}, {}, never, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayDateTimeInputComponent<any>, "array-date-time-input", never, {}, {}, never, never, false>;
22
22
  }
@@ -46,5 +46,5 @@ export declare class ArrayStringAutocompleteChipsComponent<EntityType extends Ba
46
46
  */
47
47
  filterAutocompleteStrings(input: unknown): void;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayStringAutocompleteChipsComponent<any>, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayStringAutocompleteChipsComponent<any>, "array-string-autocomplete-chips", never, {}, {}, never, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayStringAutocompleteChipsComponent<any>, "array-string-autocomplete-chips", never, {}, {}, never, never, false>;
50
50
  }
@@ -38,5 +38,5 @@ export declare class ArrayStringChipsInputComponent<EntityType extends BaseEntit
38
38
  */
39
39
  selected(event: MatAutocompleteSelectedEvent, chipsInput: HTMLInputElement): void;
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayStringChipsInputComponent<any>, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayStringChipsInputComponent<any>, "array-string-chips-input", never, {}, {}, never, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayStringChipsInputComponent<any>, "array-string-chips-input", never, {}, {}, never, never, false>;
42
42
  }
@@ -8,7 +8,7 @@ import { OnInit } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
9
  declare type ArrayTableType = DecoratorTypes.ARRAY | DecoratorTypes.ARRAY_DATE | DecoratorTypes.ARRAY_DATE_RANGE | DecoratorTypes.ARRAY_DATE_TIME;
10
10
  /**
11
- * The base data needed for all arrays that are displayed as a table.
11
+ * The base component needed for all arrays that are displayed as a table.
12
12
  */
13
13
  export declare abstract class ArrayTableComponent<ValueType, EntityType extends BaseEntityType<EntityType>, ArrayType extends ArrayTableType> extends NgxMatEntityBaseInputComponent<EntityType, ArrayType, ValueType[]> implements OnInit {
14
14
  private readonly matDialog;
@@ -43,6 +43,6 @@ export declare abstract class ArrayTableComponent<ValueType, EntityType extends
43
43
  */
44
44
  remove(): void;
45
45
  static ɵfac: i0.ɵɵFactoryDeclaration<ArrayTableComponent<any, any, any>, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<ArrayTableComponent<any, any, any>, "ngx-mat-entity-array-table", never, {}, {}, never, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArrayTableComponent<any, any, any>, "ngx-mat-entity-array-table", never, {}, {}, never, never, false>;
47
47
  }
48
48
  export {};
@@ -53,5 +53,5 @@ export declare abstract class NgxMatEntityBaseInputComponent<EntityType extends
53
53
  */
54
54
  emitChange(): void;
55
55
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityBaseInputComponent<any, any, any, any>, never>;
56
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityBaseInputComponent<any, any, any, any>, "ngx-mat-entity-base-input", never, { "entity": "entity"; "key": "key"; "getValidationErrorMessage": "getValidationErrorMessage"; "isReadOnly": "isReadOnly"; }, { "inputChangeEvent": "inputChangeEvent"; }, never, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityBaseInputComponent<any, any, any, any>, "ngx-mat-entity-base-input", never, { "entity": "entity"; "key": "key"; "getValidationErrorMessage": "getValidationErrorMessage"; "isReadOnly": "isReadOnly"; }, { "inputChangeEvent": "inputChangeEvent"; }, never, never, false>;
57
57
  }
@@ -6,5 +6,5 @@ import * as i0 from "@angular/core";
6
6
  export declare class BooleanCheckboxInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.BOOLEAN_CHECKBOX, boolean> implements OnInit {
7
7
  ngOnInit(): void;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BooleanCheckboxInputComponent<any>, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<BooleanCheckboxInputComponent<any>, "boolean-checkbox-input", never, {}, {}, never, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<BooleanCheckboxInputComponent<any>, "boolean-checkbox-input", never, {}, {}, never, never, false>;
10
10
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class BooleanDropdownInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.BOOLEAN_DROPDOWN, boolean> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<BooleanDropdownInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<BooleanDropdownInputComponent<any>, "boolean-dropdown-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<BooleanDropdownInputComponent<any>, "boolean-dropdown-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -6,5 +6,5 @@ import * as i0 from "@angular/core";
6
6
  export declare class BooleanToggleInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.BOOLEAN_TOGGLE, boolean> implements OnInit {
7
7
  ngOnInit(): void;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<BooleanToggleInputComponent<any>, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<BooleanToggleInputComponent<any>, "boolean-toggle-input", never, {}, {}, never, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<BooleanToggleInputComponent<any>, "boolean-toggle-input", never, {}, {}, never, never, false>;
10
10
  }
@@ -9,5 +9,5 @@ export declare class CustomInputComponent<EntityType extends BaseEntityType<Enti
9
9
  constructor(viewContainerRef: ViewContainerRef);
10
10
  ngOnInit(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomInputComponent<any, any, any, any>, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<CustomInputComponent<any, any, any, any>, "custom-input", never, {}, {}, never, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomInputComponent<any, any, any, any>, "custom-input", never, {}, {}, never, never, false>;
13
13
  }
@@ -7,5 +7,5 @@ import * as i0 from "@angular/core";
7
7
  export declare class DateInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.DATE, Date> implements OnInit {
8
8
  DateUtilities: typeof DateUtilities;
9
9
  static ɵfac: i0.ɵɵFactoryDeclaration<DateInputComponent<any>, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent<any>, "date-input", never, {}, {}, never, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateInputComponent<any>, "date-input", never, {}, {}, never, never, false>;
11
11
  }
@@ -15,5 +15,5 @@ export declare class DateRangeInputComponent<EntityType extends BaseEntityType<E
15
15
  */
16
16
  setDateRangeValues(): void;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeInputComponent<any>, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent<any>, "date-range-input", never, {}, {}, never, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent<any>, "date-range-input", never, {}, {}, never, never, false>;
19
19
  }
@@ -26,5 +26,5 @@ export declare class DateTimeInputComponent<EntityType extends BaseEntityType<En
26
26
  */
27
27
  setTime(): void;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<DateTimeInputComponent<any>, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<DateTimeInputComponent<any>, "date-time-input", never, {}, {}, never, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<DateTimeInputComponent<any>, "date-time-input", never, {}, {}, never, never, false>;
30
30
  }
@@ -9,5 +9,5 @@ export declare class FileDefaultInputComponent<EntityType extends BaseEntityType
9
9
  FileUtilities: typeof FileUtilities;
10
10
  refreshFileData(fileData?: FileData | FileData[]): Promise<void>;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<FileDefaultInputComponent<any>, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<FileDefaultInputComponent<any>, "file-default-input", never, {}, {}, never, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileDefaultInputComponent<any>, "file-default-input", never, {}, {}, never, never, false>;
13
13
  }
@@ -18,5 +18,5 @@ export declare class FileImageInputComponent<EntityType extends BaseEntityType<E
18
18
  next(): Promise<void>;
19
19
  setIndex(index: number): Promise<void>;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<FileImageInputComponent<any>, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<FileImageInputComponent<any>, "file-image-input", never, {}, {}, never, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileImageInputComponent<any>, "file-image-input", never, {}, {}, never, never, false>;
22
22
  }
@@ -28,5 +28,5 @@ export declare class DragDropDirective {
28
28
  */
29
29
  onDrop(evt: DragEvent): void;
30
30
  static ɵfac: i0.ɵɵFactoryDeclaration<DragDropDirective, never>;
31
- static ɵdir: i0.ɵɵDirectiveDeclaration<DragDropDirective, "[dragDrop]", never, {}, { "files": "files"; }, never>;
31
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragDropDirective, "[dragDrop]", never, {}, { "files": "files"; }, never, never, false>;
32
32
  }
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { NgModel } from '@angular/forms';
3
- import { DefaultFileDecoratorConfigInternal } from '../../../../decorators/file/file-decorator-internal.data';
3
+ import { DefaultFileDecoratorConfigInternal, ImageFileDecoratorConfigInternal } from '../../../../decorators/file/file-decorator-internal.data';
4
4
  import { FileUtilities } from '../../../../classes/file.utilities';
5
5
  import { FileData } from '../../../../decorators/file/file-decorator.data';
6
6
  import { MatDialog } from '@angular/material/dialog';
@@ -8,16 +8,13 @@ import { BaseEntityType } from '../../../../classes/entity.model';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare class FileInputComponent<EntityType extends BaseEntityType<EntityType>> implements OnInit {
10
10
  private readonly dialog;
11
- singleFileData?: FileData;
12
- multiFileData?: FileData[];
13
11
  filenames?: string[];
14
12
  FileUtilities: typeof FileUtilities;
15
- entity: EntityType;
16
- key: keyof EntityType;
13
+ propertyValue: FileData | FileData[] | undefined;
14
+ metadata: DefaultFileDecoratorConfigInternal | ImageFileDecoratorConfigInternal;
17
15
  getValidationErrorMessage: (model: NgModel) => string;
18
16
  isReadOnly: boolean;
19
17
  fileDataChangeEvent: EventEmitter<FileData | FileData[]>;
20
- metadata: DefaultFileDecoratorConfigInternal;
21
18
  constructor(dialog: MatDialog);
22
19
  ngOnInit(): Promise<void>;
23
20
  private initMultiFile;
@@ -28,6 +25,9 @@ export declare class FileInputComponent<EntityType extends BaseEntityType<Entity
28
25
  private setMultiFile;
29
26
  private setSingleFile;
30
27
  removeFile(name: string): void;
28
+ downloadFile(name: string): Promise<void>;
29
+ downloadAllEnabled(): boolean;
30
+ downloadAll(): Promise<void>;
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<FileInputComponent<any>, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<FileInputComponent<any>, "file-input", never, { "entity": "entity"; "key": "key"; "getValidationErrorMessage": "getValidationErrorMessage"; "isReadOnly": "isReadOnly"; }, { "fileDataChangeEvent": "fileDataChangeEvent"; }, never, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileInputComponent<any>, "file-input", never, { "propertyValue": "propertyValue"; "metadata": "metadata"; "getValidationErrorMessage": "getValidationErrorMessage"; "isReadOnly": "isReadOnly"; }, { "fileDataChangeEvent": "fileDataChangeEvent"; }, never, never, false>;
33
33
  }
@@ -147,5 +147,5 @@ export declare class NgxMatEntityInputComponent<EntityType extends BaseEntityTyp
147
147
  */
148
148
  isAllSelected(selection: SelectionModel<any>, dataSource: MatTableDataSource<any>): boolean;
149
149
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityInputComponent<any>, never>;
150
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityInputComponent<any>, "ngx-mat-entity-input", never, { "entity": "entity"; "propertyKey": "propertyKey"; "getValidationErrorMessage": "getValidationErrorMessage"; "hideOmitForCreate": "hideOmitForCreate"; "hideOmitForEdit": "hideOmitForEdit"; "isReadOnly": "isReadOnly"; }, { "inputChangeEvent": "inputChangeEvent"; }, never, never>;
150
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityInputComponent<any>, "ngx-mat-entity-input", never, { "entity": "entity"; "propertyKey": "propertyKey"; "getValidationErrorMessage": "getValidationErrorMessage"; "hideOmitForCreate": "hideOmitForCreate"; "hideOmitForEdit": "hideOmitForEdit"; "isReadOnly": "isReadOnly"; }, { "inputChangeEvent": "inputChangeEvent"; }, never, never, false>;
151
151
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NumberDropdownInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.NUMBER_DROPDOWN, number> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberDropdownInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<NumberDropdownInputComponent<any>, "number-dropdown-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumberDropdownInputComponent<any>, "number-dropdown-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NumberInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.NUMBER, number> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent<any>, "number-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent<any>, "number-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NumberSliderInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.NUMBER_SLIDER, number> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberSliderInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<NumberSliderInputComponent<any>, "number-slider-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumberSliderInputComponent<any>, "number-slider-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -14,5 +14,5 @@ export declare class StringAutocompleteInputComponent<EntityType extends BaseEnt
14
14
  */
15
15
  filterAutocompleteStrings(input?: string): void;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<StringAutocompleteInputComponent<any>, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<StringAutocompleteInputComponent<any>, "string-autocomplete-input", never, {}, {}, never, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringAutocompleteInputComponent<any>, "string-autocomplete-input", never, {}, {}, never, never, false>;
18
18
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class StringDropdownInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.STRING_DROPDOWN, string> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<StringDropdownInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<StringDropdownInputComponent<any>, "string-dropdown-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringDropdownInputComponent<any>, "string-dropdown-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class StringInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.STRING, string> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<StringInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<StringInputComponent<any>, "string-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringInputComponent<any>, "string-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -11,5 +11,5 @@ export declare class StringPasswordInputComponent<EntityType extends BaseEntityT
11
11
  ngOnInit(): void;
12
12
  passwordInput(): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<StringPasswordInputComponent<any>, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<StringPasswordInputComponent<any>, "string-password-input", never, {}, {}, never, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringPasswordInputComponent<any>, "string-password-input", never, {}, {}, never, never, false>;
15
15
  }
@@ -5,5 +5,5 @@ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class StringTextboxInputComponent<EntityType extends BaseEntityType<EntityType>> extends NgxMatEntityBaseInputComponent<EntityType, DecoratorTypes.STRING_TEXTBOX, string> implements OnInit {
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<StringTextboxInputComponent<any>, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<StringTextboxInputComponent<any>, "string-textbox-input", never, {}, {}, never, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringTextboxInputComponent<any>, "string-textbox-input", never, {}, {}, never, never, false>;
9
9
  }
@@ -39,5 +39,5 @@ export declare class NgxMatEntityCreateDialogComponent<EntityType extends BaseEn
39
39
  */
40
40
  cancel(): void;
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityCreateDialogComponent<any>, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityCreateDialogComponent<any>, "ngx-mat-entity-create-dialog", never, {}, {}, never, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityCreateDialogComponent<any>, "ngx-mat-entity-create-dialog", never, {}, {}, never, never, false>;
43
43
  }
@@ -23,11 +23,14 @@ export declare class NgxMatEntityEditDialogComponent<EntityType extends BaseEnti
23
23
  entityPriorChanges: EntityType;
24
24
  data: EditEntityDialogDataInternal<EntityType>;
25
25
  isEntityValid: boolean;
26
- isEntityDirty: Promise<boolean>;
26
+ isEntityDirty: boolean;
27
27
  isReadOnly: boolean;
28
28
  constructor(inputData: EditEntityDialogData<EntityType>, dialogRef: MatDialogRef<NgxMatEntityEditDialogComponent<EntityType>>, injector: Injector, dialog: MatDialog);
29
29
  ngOnInit(): void;
30
- checkEntity(): void;
30
+ /**
31
+ * Checks if the entity has become invalid or dirty.
32
+ */
33
+ checkEntity(): Promise<void>;
31
34
  /**
32
35
  * Tries to save the changes and close the dialog afterwards.
33
36
  * Also handles the confirmation if required.
@@ -45,5 +48,5 @@ export declare class NgxMatEntityEditDialogComponent<EntityType extends BaseEnti
45
48
  */
46
49
  cancel(): void;
47
50
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityEditDialogComponent<any>, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityEditDialogComponent<any>, "ngx-mat-entity-edit-dialog", never, {}, {}, never, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityEditDialogComponent<any>, "ngx-mat-entity-edit-dialog", never, {}, {}, never, never, false>;
49
52
  }
@@ -84,5 +84,5 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
84
84
  */
85
85
  applyFilter(event: Event): void;
86
86
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatEntityTableComponent<any>, never>;
87
- static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityTableComponent<any>, "ngx-mat-entity-table", never, { "tableData": "tableData"; }, {}, never, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxMatEntityTableComponent<any>, "ngx-mat-entity-table", never, { "tableData": "tableData"; }, {}, never, never, false>;
88
88
  }
@@ -70,6 +70,7 @@ export declare class DefaultFileDecoratorConfigInternal extends PropertyDecorato
70
70
  maxSizeErrorDialog: ConfirmDialogData;
71
71
  maxSizeTotalErrorDialog: ConfirmDialogData;
72
72
  dragAndDrop: boolean;
73
+ downloadAllButtonLabel: string;
73
74
  constructor(data: DefaultFileDecoratorConfig);
74
75
  }
75
76
  /**
@@ -88,5 +89,6 @@ export declare class ImageFileDecoratorConfigInternal extends PropertyDecoratorC
88
89
  maxSizeErrorDialog: ConfirmDialogData;
89
90
  maxSizeTotalErrorDialog: ConfirmDialogData;
90
91
  dragAndDrop: boolean;
92
+ downloadAllButtonLabel: string;
91
93
  constructor(data: ImageFileDecoratorConfig);
92
94
  }
@@ -61,10 +61,18 @@ declare abstract class FileDecoratorConfig extends PropertyDecoratorConfig {
61
61
  /**
62
62
  * Defines whether or not a dropdown box is displayed.
63
63
  *
64
- * @default true // when multiple is set to true.
64
+ * @default
65
+ * true // when multiple is set to true.
65
66
  * false // when multiple is set to false.
66
67
  */
67
68
  dragAndDrop?: boolean;
69
+ /**
70
+ * The label of the button to download all files.
71
+ * Is only shown when the property contains multiple files.
72
+ *
73
+ * @default 'Download All'
74
+ */
75
+ downloadAllButtonLabel?: string;
68
76
  }
69
77
  /**
70
78
  * Definition for a default file.
@@ -0,0 +1,17 @@
1
+ import JSZip from 'jszip';
2
+ // TODO: Find a way to use blobs with jest
3
+ /* istanbul ignore next */
4
+ /**
5
+ * Encapsulates JSZip functionality.
6
+ */
7
+ export class JSZipUtilities {
8
+ /**
9
+ * Generates a new JSZip object that is correctly typed.
10
+ *
11
+ * @returns A new JSZip object.
12
+ */
13
+ static new() {
14
+ return new JSZip();
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianN6aXAudXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY2Fwc3VsYXRpb24vanN6aXAudXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUkxQiwwQ0FBMEM7QUFDMUMsMEJBQTBCO0FBQzFCOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixjQUFjO0lBQ2hDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBRztRQUNOLE9BQU8sSUFBSSxLQUFLLEVBQWUsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSlNaaXAgZnJvbSAnanN6aXAnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1pbXBvcnRzXG5pbXBvcnQgKiBhcyBKU1ppcFR5cGUgZnJvbSAnanN6aXAnOyAvLyA8LS0gVGhpcyBpcyBuZWVkZWQgdG8gcHJvdmlkZSB0eXBlIHNhZmV0eS5cblxuLy8gVE9ETzogRmluZCBhIHdheSB0byB1c2UgYmxvYnMgd2l0aCBqZXN0XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuLyoqXG4gKiBFbmNhcHN1bGF0ZXMgSlNaaXAgZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEpTWmlwVXRpbGl0aWVzIHtcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcgSlNaaXAgb2JqZWN0IHRoYXQgaXMgY29ycmVjdGx5IHR5cGVkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBuZXcgSlNaaXAgb2JqZWN0LlxuICAgICAqL1xuICAgIHN0YXRpYyBuZXcoKTogSlNaaXBUeXBlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBKU1ppcCgpIGFzIEpTWmlwVHlwZTtcbiAgICB9XG59Il19
@@ -20,4 +20,4 @@ __decorate([
20
20
  }),
21
21
  __metadata("design:type", String)
22
22
  ], Entity.prototype, "id", void 0);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY2xhc3Nlcy9lbnRpdHkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFZckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07SUFjeEIsWUFBWSxNQUFlO1FBQ3ZCLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUxHO0lBUkMsTUFBTSxDQUFDO1FBQ0osYUFBYSxFQUFFLElBQUk7UUFDbkIsYUFBYSxFQUFFLElBQUk7UUFDbkIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsTUFBTTtRQUNwQixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNqQixDQUFDOztrQ0FDbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3N0cmluZy9zdHJpbmcuZGVjb3JhdG9yJztcbmltcG9ydCB7IEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4vZW50aXR5LnV0aWxpdGllcyc7XG5cbi8qKlxuICogVGhlIG5ld2FibGUgdHlwZSB1c2VkIHdoZW5ldmVyIGFuIGVudGl0eSBjbGFzcyBpcyBwYXNzZWQgdG8gY3JlYXRlIGFuIGVudGl0eSBhbmQgaW5pdGlhbGl6ZSBpdHMgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+ID0gbmV3KGRhdGE/OiBFbnRpdHlUeXBlKSA9PiBFbnRpdHlUeXBlO1xuXG4vKipcbiAqIFRoZSBHZW5lcmljIEJhc2UgRW50aXR5VHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQmFzZUVudGl0eVR5cGU8VD4gPSB7IFtLIGluIGtleW9mIFRdOiB1bmtub3duIH07XG5cbi8qKlxuICogQSBiYXNlIEVudGl0eSBjbGFzcyB3aXRoIGEgYnVpbHRpbiBpZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eSB7XG4gICAgLyoqXG4gICAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEVudGl0eS5cbiAgICAgKi9cbiAgICBAc3RyaW5nKHtcbiAgICAgICAgb21pdEZvckNyZWF0ZTogdHJ1ZSxcbiAgICAgICAgb21pdEZvclVwZGF0ZTogdHJ1ZSxcbiAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIGRpc3BsYXlTdHlsZTogJ2xpbmUnLFxuICAgICAgICBkaXNwbGF5TmFtZTogJ0lEJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9KVxuICAgIHJlYWRvbmx5IGlkITogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoZW50aXR5PzogRW50aXR5KSB7XG4gICAgICAgIEVudGl0eVV0aWxpdGllcy5uZXcodGhpcywgZW50aXR5KTtcbiAgICB9XG59Il19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY2xhc3Nlcy9lbnRpdHkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFZckQ7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLE1BQU07SUFjeEIsWUFBWSxNQUFlO1FBQ3ZCLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQWJHO0lBQUMsTUFBTSxDQUFDO1FBQ0osYUFBYSxFQUFFLElBQUk7UUFDbkIsYUFBYSxFQUFFLElBQUk7UUFDbkIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsTUFBTTtRQUNwQixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNqQixDQUFDOztrQ0FDbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHJpbmcgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3N0cmluZy9zdHJpbmcuZGVjb3JhdG9yJztcbmltcG9ydCB7IEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4vZW50aXR5LnV0aWxpdGllcyc7XG5cbi8qKlxuICogVGhlIG5ld2FibGUgdHlwZSB1c2VkIHdoZW5ldmVyIGFuIGVudGl0eSBjbGFzcyBpcyBwYXNzZWQgdG8gY3JlYXRlIGFuIGVudGl0eSBhbmQgaW5pdGlhbGl6ZSBpdHMgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCB0eXBlIEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+ID0gbmV3KGRhdGE/OiBFbnRpdHlUeXBlKSA9PiBFbnRpdHlUeXBlO1xuXG4vKipcbiAqIFRoZSBHZW5lcmljIEJhc2UgRW50aXR5VHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQmFzZUVudGl0eVR5cGU8VD4gPSB7IFtLIGluIGtleW9mIFRdOiB1bmtub3duIH07XG5cbi8qKlxuICogQSBiYXNlIEVudGl0eSBjbGFzcyB3aXRoIGEgYnVpbHRpbiBpZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eSB7XG4gICAgLyoqXG4gICAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIEVudGl0eS5cbiAgICAgKi9cbiAgICBAc3RyaW5nKHtcbiAgICAgICAgb21pdEZvckNyZWF0ZTogdHJ1ZSxcbiAgICAgICAgb21pdEZvclVwZGF0ZTogdHJ1ZSxcbiAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIGRpc3BsYXlTdHlsZTogJ2xpbmUnLFxuICAgICAgICBkaXNwbGF5TmFtZTogJ0lEJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9KVxuICAgIHJlYWRvbmx5IGlkITogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoZW50aXR5PzogRW50aXR5KSB7XG4gICAgICAgIEVudGl0eVV0aWxpdGllcy5uZXcodGhpcywgZW50aXR5KTtcbiAgICB9XG59Il19