ngx-material-entity 18.2.5 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngx-material-entity.mjs +165 -155
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/index.d.ts +4501 -3
- package/package.json +10 -12
- package/classes/base.builder.d.ts +0 -37
- package/classes/entity.model.d.ts +0 -27
- package/components/confirm-dialog/confirm-dialog-data.builder.d.ts +0 -24
- package/components/confirm-dialog/confirm-dialog-data.d.ts +0 -48
- package/components/confirm-dialog/confirm-dialog.component.d.ts +0 -36
- package/components/create-page/create-data.route.d.ts +0 -16
- package/components/create-page/create-page.component.d.ts +0 -141
- package/components/create-page/page-create-data.builder.d.ts +0 -18
- package/components/custom-table/custom-table-configuration.model.d.ts +0 -65
- package/components/custom-table/custom-table.component.d.ts +0 -111
- package/components/edit-page/edit-data.route.d.ts +0 -16
- package/components/edit-page/edit-page.component.d.ts +0 -167
- package/components/edit-page/page-edit-data.builder.d.ts +0 -18
- package/components/form/form.component.d.ts +0 -64
- package/components/input/array/array-date-input/array-date-input.component.d.ts +0 -17
- package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +0 -25
- package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +0 -26
- package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +0 -30
- package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +0 -36
- package/components/input/array/array-table.class.d.ts +0 -56
- package/components/input/base-input.component.d.ts +0 -64
- package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +0 -10
- package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +0 -13
- package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +0 -10
- package/components/input/custom/custom.component.d.ts +0 -13
- package/components/input/date/date-input/date-input.component.d.ts +0 -11
- package/components/input/date/date-range-input/date-range-input.component.d.ts +0 -22
- package/components/input/date/date-time-input/date-time-input.component.d.ts +0 -32
- package/components/input/file/file-default-input/file-default-input.component.d.ts +0 -11
- package/components/input/file/file-image-input/file-image-input.component.d.ts +0 -28
- package/components/input/file/file-input/file-input.component.d.ts +0 -45
- package/components/input/input.component.d.ts +0 -590
- package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +0 -24
- package/components/input/number/number-input/number-input.component.d.ts +0 -9
- package/components/input/number/number-slider-input/number-slider-input.component.d.ts +0 -10
- package/components/input/relations/references-many-input/references-many-input.component.d.ts +0 -43
- package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +0 -19
- package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +0 -24
- package/components/input/string/string-input/string-input.component.d.ts +0 -9
- package/components/input/string/string-password-input/string-password-input.component.d.ts +0 -31
- package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +0 -9
- package/components/table/create-dialog/create-data.builder.d.ts +0 -25
- package/components/table/create-dialog/create-entity-data.builder.d.ts +0 -21
- package/components/table/create-dialog/create-entity-data.d.ts +0 -19
- package/components/table/create-dialog/create-entity-dialog.component.d.ts +0 -77
- package/components/table/default.actions.d.ts +0 -25
- package/components/table/display-column-value/base-display-column-value.component.d.ts +0 -15
- package/components/table/display-column-value/display-column-value.component.d.ts +0 -26
- package/components/table/edit-dialog/edit-data.builder.d.ts +0 -44
- package/components/table/edit-dialog/edit-entity-data.d.ts +0 -27
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +0 -118
- package/components/table/edit-dialog/edit-entity.builder.d.ts +0 -23
- package/components/table/table-data.builder.d.ts +0 -102
- package/components/table/table-data.d.ts +0 -340
- package/components/table/table.component.d.ts +0 -119
- package/components/tooltip/tooltip.component.d.ts +0 -14
- package/decorators/array/array-decorator-internal.data.d.ts +0 -129
- package/decorators/array/array-decorator.data.d.ts +0 -252
- package/decorators/array/array.decorator.d.ts +0 -9
- package/decorators/base/base-property.decorator.d.ts +0 -9
- package/decorators/base/decorator-types.enum.d.ts +0 -48
- package/decorators/base/dropdown-value.interface.d.ts +0 -14
- package/decorators/base/property-decorator-internal.data.d.ts +0 -41
- package/decorators/base/property-decorator.data.d.ts +0 -88
- package/decorators/boolean/boolean-decorator-internal.data.d.ts +0 -26
- package/decorators/boolean/boolean-decorator.data.d.ts +0 -39
- package/decorators/boolean/boolean.decorator.d.ts +0 -7
- package/decorators/custom/custom-decorator-internal.data.d.ts +0 -17
- package/decorators/custom/custom-decorator.data.d.ts +0 -35
- package/decorators/custom/custom.decorator.d.ts +0 -9
- package/decorators/date/date-decorator-internal.data.d.ts +0 -45
- package/decorators/date/date-decorator.data.d.ts +0 -126
- package/decorators/date/date.decorator.d.ts +0 -7
- package/decorators/file/file-decorator-internal.data.d.ts +0 -93
- package/decorators/file/file-decorator.data.d.ts +0 -88
- package/decorators/file/file.decorator.d.ts +0 -8
- package/decorators/has-many/has-many-decorator-internal.data.d.ts +0 -16
- package/decorators/has-many/has-many-decorator.data.d.ts +0 -34
- package/decorators/has-many/has-many.decorator.d.ts +0 -8
- package/decorators/number/number-decorator-internal.data.d.ts +0 -38
- package/decorators/number/number-decorator.data.d.ts +0 -63
- package/decorators/number/number.decorator.d.ts +0 -7
- package/decorators/object/object-decorator-internal.data.d.ts +0 -23
- package/decorators/object/object-decorator.data.d.ts +0 -42
- package/decorators/object/object.decorator.d.ts +0 -8
- package/decorators/references-many/references-many-decorator-internal.data.d.ts +0 -30
- package/decorators/references-many/references-many-decorator.data.d.ts +0 -63
- package/decorators/references-many/references-many.decorator.d.ts +0 -8
- package/decorators/references-one/references-one-decorator-internal.data.d.ts +0 -16
- package/decorators/references-one/references-one-decorator.data.d.ts +0 -32
- package/decorators/references-one/references-one.decorator.d.ts +0 -8
- package/decorators/string/string-decorator-internal.data.d.ts +0 -56
- package/decorators/string/string-decorator.data.d.ts +0 -116
- package/decorators/string/string.decorator.d.ts +0 -7
- package/default-global-configuration-values.d.ts +0 -13
- package/directives/drag-drop.directive.d.ts +0 -29
- package/directives/dynamic-style-class.directive.d.ts +0 -24
- package/directives/included-in.directive.d.ts +0 -14
- package/directives/number.directive.d.ts +0 -16
- package/directives/password-match.directive.d.ts +0 -14
- package/directives/tooltip.directive.d.ts +0 -42
- package/encapsulation/js-2-xml.utilities.d.ts +0 -14
- package/encapsulation/jszip.utilities.d.ts +0 -12
- package/encapsulation/lodash.utilities.d.ts +0 -60
- package/encapsulation/reflect.utilities.d.ts +0 -59
- package/encapsulation/uuid.utilities.d.ts +0 -10
- package/esm2022/classes/base.builder.mjs +0 -47
- package/esm2022/classes/entity.model.mjs +0 -26
- package/esm2022/components/confirm-dialog/confirm-dialog-data.builder.mjs +0 -57
- package/esm2022/components/confirm-dialog/confirm-dialog-data.mjs +0 -2
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +0 -71
- package/esm2022/components/create-page/create-data.route.mjs +0 -12
- package/esm2022/components/create-page/create-page.component.mjs +0 -276
- package/esm2022/components/create-page/page-create-data.builder.mjs +0 -30
- package/esm2022/components/custom-table/custom-table-configuration.model.mjs +0 -37
- package/esm2022/components/custom-table/custom-table.component.mjs +0 -213
- package/esm2022/components/edit-page/edit-data.route.mjs +0 -12
- package/esm2022/components/edit-page/edit-page.component.mjs +0 -362
- package/esm2022/components/edit-page/page-edit-data.builder.mjs +0 -33
- package/esm2022/components/form/form.component.mjs +0 -106
- package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +0 -56
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +0 -82
- package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +0 -82
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +0 -81
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +0 -74
- package/esm2022/components/input/array/array-table.class.mjs +0 -107
- package/esm2022/components/input/base-input.component.mjs +0 -102
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +0 -29
- package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +0 -40
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +0 -29
- package/esm2022/components/input/custom/custom.component.mjs +0 -28
- package/esm2022/components/input/date/date-input/date-input.component.mjs +0 -28
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +0 -84
- package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +0 -90
- package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +0 -18
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +0 -104
- package/esm2022/components/input/file/file-input/file-input.component.mjs +0 -228
- package/esm2022/components/input/input.component.mjs +0 -1361
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +0 -65
- package/esm2022/components/input/number/number-input/number-input.component.mjs +0 -23
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +0 -27
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +0 -145
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +0 -56
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +0 -65
- package/esm2022/components/input/string/string-input/string-input.component.mjs +0 -23
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +0 -107
- package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +0 -24
- package/esm2022/components/table/create-dialog/create-data.builder.mjs +0 -56
- package/esm2022/components/table/create-dialog/create-entity-data.builder.mjs +0 -32
- package/esm2022/components/table/create-dialog/create-entity-data.mjs +0 -2
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +0 -180
- package/esm2022/components/table/default.actions.mjs +0 -83
- package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +0 -27
- package/esm2022/components/table/display-column-value/display-column-value.component.mjs +0 -41
- package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +0 -136
- package/esm2022/components/table/edit-dialog/edit-entity-data.mjs +0 -2
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +0 -295
- package/esm2022/components/table/edit-dialog/edit-entity.builder.mjs +0 -39
- package/esm2022/components/table/table-data.builder.mjs +0 -304
- package/esm2022/components/table/table-data.mjs +0 -2
- package/esm2022/components/table/table.component.mjs +0 -324
- package/esm2022/components/tooltip/tooltip.component.mjs +0 -26
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +0 -310
- package/esm2022/decorators/array/array-decorator.data.mjs +0 -51
- package/esm2022/decorators/array/array.decorator.mjs +0 -37
- package/esm2022/decorators/base/base-property.decorator.mjs +0 -17
- package/esm2022/decorators/base/decorator-types.enum.mjs +0 -35
- package/esm2022/decorators/base/dropdown-value.interface.mjs +0 -2
- package/esm2022/decorators/base/property-decorator-internal.data.mjs +0 -101
- package/esm2022/decorators/base/property-decorator.data.mjs +0 -59
- package/esm2022/decorators/boolean/boolean-decorator-internal.data.mjs +0 -45
- package/esm2022/decorators/boolean/boolean-decorator.data.mjs +0 -11
- package/esm2022/decorators/boolean/boolean.decorator.mjs +0 -21
- package/esm2022/decorators/custom/custom-decorator-internal.data.mjs +0 -34
- package/esm2022/decorators/custom/custom-decorator.data.mjs +0 -2
- package/esm2022/decorators/custom/custom.decorator.mjs +0 -13
- package/esm2022/decorators/date/date-decorator-internal.data.mjs +0 -92
- package/esm2022/decorators/date/date-decorator.data.mjs +0 -11
- package/esm2022/decorators/date/date.decorator.mjs +0 -22
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +0 -143
- package/esm2022/decorators/file/file-decorator.data.mjs +0 -59
- package/esm2022/decorators/file/file.decorator.mjs +0 -25
- package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +0 -41
- package/esm2022/decorators/has-many/has-many-decorator.data.mjs +0 -2
- package/esm2022/decorators/has-many/has-many.decorator.mjs +0 -13
- package/esm2022/decorators/number/number-decorator-internal.data.mjs +0 -68
- package/esm2022/decorators/number/number-decorator.data.mjs +0 -11
- package/esm2022/decorators/number/number.decorator.mjs +0 -22
- package/esm2022/decorators/object/object-decorator-internal.data.mjs +0 -42
- package/esm2022/decorators/object/object-decorator.data.mjs +0 -22
- package/esm2022/decorators/object/object.decorator.mjs +0 -20
- package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +0 -55
- package/esm2022/decorators/references-many/references-many-decorator.data.mjs +0 -2
- package/esm2022/decorators/references-many/references-many.decorator.mjs +0 -13
- package/esm2022/decorators/references-one/references-one-decorator-internal.data.mjs +0 -34
- package/esm2022/decorators/references-one/references-one-decorator.data.mjs +0 -2
- package/esm2022/decorators/references-one/references-one.decorator.mjs +0 -12
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +0 -119
- package/esm2022/decorators/string/string-decorator.data.mjs +0 -11
- package/esm2022/decorators/string/string.decorator.mjs +0 -29
- package/esm2022/default-global-configuration-values.mjs +0 -91
- package/esm2022/directives/drag-drop.directive.mjs +0 -60
- package/esm2022/directives/dynamic-style-class.directive.mjs +0 -51
- package/esm2022/directives/included-in.directive.mjs +0 -33
- package/esm2022/directives/number.directive.mjs +0 -37
- package/esm2022/directives/password-match.directive.mjs +0 -30
- package/esm2022/directives/tooltip.directive.mjs +0 -142
- package/esm2022/encapsulation/js-2-xml.utilities.mjs +0 -17
- package/esm2022/encapsulation/jszip.utilities.mjs +0 -16
- package/esm2022/encapsulation/lodash.utilities.mjs +0 -80
- package/esm2022/encapsulation/reflect.utilities.mjs +0 -79
- package/esm2022/encapsulation/uuid.utilities.mjs +0 -14
- package/esm2022/functions/default-false.function.mjs +0 -9
- package/esm2022/functions/default-style-classes.function.mjs +0 -7
- package/esm2022/functions/default-true.function.mjs +0 -9
- package/esm2022/functions/dropdown-values-to-function.function.mjs +0 -15
- package/esm2022/functions/get-changes-tooltip-content.function.mjs +0 -23
- package/esm2022/functions/get-config-value.function.mjs +0 -14
- package/esm2022/functions/get-validation-error-message.function.mjs +0 -54
- package/esm2022/functions/get-validation-errors-tooltip-content.function.mjs +0 -23
- package/esm2022/functions/is-async-function.function.mjs +0 -9
- package/esm2022/functions/table-column-value-to-sort-value.function.mjs +0 -33
- package/esm2022/global-configuration-values.mjs +0 -27
- package/esm2022/mocks/placeholder-data.png.mjs +0 -3
- package/esm2022/ngx-material-entity.mjs +0 -5
- package/esm2022/public-api.mjs +0 -68
- package/esm2022/services/entity.service.mjs +0 -269
- package/esm2022/services/unsaved-changes.guard.mjs +0 -13
- package/esm2022/utilities/date.utilities.mjs +0 -138
- package/esm2022/utilities/entity.utilities.mjs +0 -611
- package/esm2022/utilities/file.utilities.mjs +0 -172
- package/esm2022/utilities/selection.utilities.mjs +0 -49
- package/esm2022/utilities/validation.utilities.mjs +0 -543
- package/functions/default-false.function.d.ts +0 -6
- package/functions/default-style-classes.function.d.ts +0 -6
- package/functions/default-true.function.d.ts +0 -6
- package/functions/dropdown-values-to-function.function.d.ts +0 -11
- package/functions/get-changes-tooltip-content.function.d.ts +0 -13
- package/functions/get-config-value.function.d.ts +0 -7
- package/functions/get-validation-error-message.function.d.ts +0 -5
- package/functions/get-validation-errors-tooltip-content.function.d.ts +0 -12
- package/functions/is-async-function.function.d.ts +0 -6
- package/functions/table-column-value-to-sort-value.function.d.ts +0 -9
- package/global-configuration-values.d.ts +0 -205
- package/mocks/placeholder-data.png.d.ts +0 -1
- package/public-api.d.ts +0 -60
- package/services/entity.service.d.ts +0 -146
- package/services/unsaved-changes.guard.d.ts +0 -23
- package/utilities/date.utilities.d.ts +0 -92
- package/utilities/entity.utilities.d.ts +0 -236
- package/utilities/file.utilities.d.ts +0 -67
- package/utilities/selection.utilities.d.ts +0 -28
- package/utilities/validation.utilities.d.ts +0 -58
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { Component, EnvironmentInjector, EventEmitter, Inject, Input, Output, ViewChild, runInInjectionContext } from '@angular/core';
|
|
4
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
5
|
-
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
6
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
7
|
-
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
8
|
-
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
9
|
-
import { InternalCustomTableConfiguration } from './custom-table-configuration.model';
|
|
10
|
-
import { DynamicStyleClassDirective } from '../../directives/dynamic-style-class.directive';
|
|
11
|
-
import { tableColumnValueToSortValue } from '../../functions/table-column-value-to-sort-value.function';
|
|
12
|
-
import { NGX_COMPLETE_GLOBAL_DEFAULT_VALUES } from '../../global-configuration-values';
|
|
13
|
-
import { SelectionUtilities } from '../../utilities/selection.utilities';
|
|
14
|
-
import { DisplayColumnValueComponent } from '../table/display-column-value/display-column-value.component';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/material/checkbox";
|
|
17
|
-
import * as i2 from "@angular/material/table";
|
|
18
|
-
import * as i3 from "@angular/material/paginator";
|
|
19
|
-
import * as i4 from "@angular/material/sort";
|
|
20
|
-
import * as i5 from "@angular/material/progress-spinner";
|
|
21
|
-
/**
|
|
22
|
-
* A custom table that has things like sorting and pagination already built in.
|
|
23
|
-
*/
|
|
24
|
-
export class CustomTableComponent {
|
|
25
|
-
injector;
|
|
26
|
-
globalConfig;
|
|
27
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
28
|
-
SelectionUtilities = SelectionUtilities;
|
|
29
|
-
/**
|
|
30
|
-
* Updates the table entries.
|
|
31
|
-
*/
|
|
32
|
-
set data(value) {
|
|
33
|
-
this.selection.clear();
|
|
34
|
-
this.selectionChanged.emit(this.selection.selected);
|
|
35
|
-
this.dataSource.data = value;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Applies the given string as a filter to the table.
|
|
39
|
-
*/
|
|
40
|
-
set searchString(value) {
|
|
41
|
-
this.dataSource.filter = value.trim().toLowerCase();
|
|
42
|
-
}
|
|
43
|
-
set required(value) {
|
|
44
|
-
this.shouldShowMissingError = value;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Whether or not the table should show an error message when the table is empty.
|
|
48
|
-
*/
|
|
49
|
-
shouldShowMissingError = false;
|
|
50
|
-
/**
|
|
51
|
-
* Whether or not the table data is currently loading.
|
|
52
|
-
*/
|
|
53
|
-
isLoading = false;
|
|
54
|
-
/**
|
|
55
|
-
* The configuration of the table.
|
|
56
|
-
*/
|
|
57
|
-
configuration;
|
|
58
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
59
|
-
internalConfiguration;
|
|
60
|
-
/**
|
|
61
|
-
* Emits when a cell is clicked that is neither disabled nor disallowed to be clicked.
|
|
62
|
-
*/
|
|
63
|
-
cellClicked = new EventEmitter();
|
|
64
|
-
/**
|
|
65
|
-
* Emits when the selected values change.
|
|
66
|
-
*/
|
|
67
|
-
selectionChanged = new EventEmitter();
|
|
68
|
-
/**
|
|
69
|
-
* The paginator from the html.
|
|
70
|
-
*/
|
|
71
|
-
paginator;
|
|
72
|
-
/**
|
|
73
|
-
* The sort from the html.
|
|
74
|
-
*/
|
|
75
|
-
sort;
|
|
76
|
-
/**
|
|
77
|
-
* The data source for the table.
|
|
78
|
-
*/
|
|
79
|
-
dataSource = new MatTableDataSource();
|
|
80
|
-
/**
|
|
81
|
-
* The selection of the table.
|
|
82
|
-
*/
|
|
83
|
-
selection = new SelectionModel(true, []);
|
|
84
|
-
/**
|
|
85
|
-
* The columns of the table.
|
|
86
|
-
*/
|
|
87
|
-
displayedColumns;
|
|
88
|
-
constructor(injector, globalConfig) {
|
|
89
|
-
this.injector = injector;
|
|
90
|
-
this.globalConfig = globalConfig;
|
|
91
|
-
}
|
|
92
|
-
ngOnInit() {
|
|
93
|
-
this.internalConfiguration = new InternalCustomTableConfiguration(this.globalConfig, this.configuration);
|
|
94
|
-
const givenDisplayColumns = this.internalConfiguration.displayColumns.map((v) => v.displayName);
|
|
95
|
-
if (givenDisplayColumns.find(s => s === 'select')) {
|
|
96
|
-
throw new Error(`The name "select" for a display column is reserved.
|
|
97
|
-
Please choose a different name.`);
|
|
98
|
-
}
|
|
99
|
-
this.displayedColumns = this.internalConfiguration.withSelection ? ['select'].concat(givenDisplayColumns) : givenDisplayColumns;
|
|
100
|
-
this.setupDataSource();
|
|
101
|
-
}
|
|
102
|
-
setupDataSource() {
|
|
103
|
-
this.dataSource.sortingDataAccessor = (value, header) => {
|
|
104
|
-
return runInInjectionContext(this.injector, () => {
|
|
105
|
-
// eslint-disable-next-line stylistic/max-len
|
|
106
|
-
const displayColumn = this.internalConfiguration.displayColumns.find(dp => dp.displayName === header);
|
|
107
|
-
if (this.internalConfiguration.resolveToReferencedEntity) {
|
|
108
|
-
const resolvedEntity = this.internalConfiguration.resolveToReferencedEntity(value);
|
|
109
|
-
return tableColumnValueToSortValue(displayColumn.value(resolvedEntity));
|
|
110
|
-
}
|
|
111
|
-
return tableColumnValueToSortValue(displayColumn.value(value));
|
|
112
|
-
});
|
|
113
|
-
};
|
|
114
|
-
this.dataSource.sort = this.sort;
|
|
115
|
-
this.dataSource.filterPredicate = (value, filter) => {
|
|
116
|
-
const searchStr = this.internalConfiguration.searchStringForRow(value);
|
|
117
|
-
const formattedSearchString = searchStr.toLowerCase();
|
|
118
|
-
const formattedFilterString = filter.toLowerCase();
|
|
119
|
-
return formattedSearchString.includes(formattedFilterString);
|
|
120
|
-
};
|
|
121
|
-
this.dataSource.paginator = this.paginator;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Emits a cellClicked event when the clicked column is enabled and clicking is allowed by the configuration.
|
|
125
|
-
* @param value - The value of the row that was clicked.
|
|
126
|
-
* @param dCol - The display column of the row that was clicked.
|
|
127
|
-
*/
|
|
128
|
-
clickCell(value, dCol) {
|
|
129
|
-
if (dCol.disableClick == true || !this.internalConfiguration.allowClick(value)) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
this.cellClicked.emit({ displayColumn: dCol, value: value });
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Toggles a single table row.
|
|
136
|
-
* @param value - The value of the row that was clicked.
|
|
137
|
-
* @param event - The change event from the checkbox.
|
|
138
|
-
*/
|
|
139
|
-
toggle(value, event) {
|
|
140
|
-
if (!event) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
this.selection.toggle(value);
|
|
144
|
-
this.selectionChanged.emit(this.selection.selected);
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Toggles all table rows.
|
|
148
|
-
* @param event - The change event from the checkbox.
|
|
149
|
-
*/
|
|
150
|
-
masterToggle(event) {
|
|
151
|
-
if (!event) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
SelectionUtilities.masterToggle(this.selection, this.dataSource);
|
|
155
|
-
this.selectionChanged.emit(this.selection.selected);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Gets the value to display in the column.
|
|
159
|
-
* Runs in environment context to enable injection.
|
|
160
|
-
* @param value - The column value to get the display string from.
|
|
161
|
-
* @param displayColumn - The display column to get the value from.
|
|
162
|
-
* @returns The value of the display column.
|
|
163
|
-
*/
|
|
164
|
-
getDisplayColumnValue(value, displayColumn) {
|
|
165
|
-
return runInInjectionContext(this.injector, () => {
|
|
166
|
-
if (this.internalConfiguration.resolveToReferencedEntity) {
|
|
167
|
-
return displayColumn.value(this.internalConfiguration.resolveToReferencedEntity(value));
|
|
168
|
-
}
|
|
169
|
-
return displayColumn.value(value);
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: CustomTableComponent, deps: [{ token: i0.EnvironmentInjector }, { token: NGX_COMPLETE_GLOBAL_DEFAULT_VALUES }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.7", type: CustomTableComponent, isStandalone: true, selector: "custom-table", inputs: { data: "data", searchString: "searchString", required: "required", isLoading: "isLoading", configuration: "configuration" }, outputs: { cellClicked: "cellClicked", selectionChanged: "selectionChanged" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-table matSort [dataSource]=\"dataSource\" [class.table-with-error-slot]=\"shouldShowMissingError\">\n <!-- select Column -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef>\n <mat-checkbox [checked]=\"selection.hasValue() && SelectionUtilities.isAllSelected(selection, dataSource)\"\n [indeterminate]=\"selection.hasValue() && !SelectionUtilities.isAllSelected(selection, dataSource)\"\n (change)=\"masterToggle($event)\">\n </mat-checkbox>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let value\" [dynamicStyleClasses]=\"internalConfiguration.dynamicRowStyleClasses\" [value]=\"value\">\n <mat-checkbox [checked]=\"selection.isSelected(value)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggle(value, $event)\">\n </mat-checkbox>\n </mat-cell>\n </ng-container>\n\n @for (dCol of internalConfiguration.displayColumns; track $index) {\n <ng-container [matColumnDef]=\"dCol.displayName\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n {{dCol.displayName}}\n </mat-header-cell>\n <mat-cell *matCellDef=\"let value\" [class.enabled]=\"!dCol.disableClick && internalConfiguration.allowClick(value)\"\n [dynamicStyleClasses]=\"internalConfiguration.dynamicRowStyleClasses\" [value]=\"value\"\n (click)=\"clickCell(value, dCol)\"\n >\n @if (dCol.Component) {\n <display-column-value [entity]=\"value\" [ComponentClass]=\"dCol.Component\"></display-column-value>\n }\n @else {\n {{getDisplayColumnValue(value, dCol)}}\n }\n </mat-cell>\n </ng-container>\n }\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n</mat-table>\n\n@if (internalConfiguration.displayLoadingSpinner && isLoading) {\n <mat-spinner>\n </mat-spinner>\n}\n@else if (shouldShowMissingError && !dataSource.data.length) {\n <div class=\"table-error\">{{internalConfiguration.emptyErrorMessage}}</div>\n}\n\n<mat-paginator [length]=\"dataSource.filteredData.length\" [pageIndex]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 50]\"></mat-paginator>", styles: [".mdc-data-table__row:last-child .mdc-data-table__cell{border-bottom:1px solid rgba(0,0,0,.12)}mat-paginator{padding-top:10px;padding-bottom:10px}mat-spinner{margin:10px auto}.mat-column-select{flex:0 0 48px;padding-left:0;padding-right:0;justify-content:center}.enabled:hover{cursor:pointer}.table-with-error-slot{border:1px solid #E0E0E0;border-radius:5px;padding-top:5px;padding-bottom:5px}.table-error{display:flex;align-items:center;justify-content:center;margin-top:-6px;border:1px solid #E0E0E0;background-color:#f8d3d7;color:#721c24;height:fit-content;padding-left:4px;padding-right:4px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i3.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: DisplayColumnValueComponent, selector: "display-column-value", inputs: ["entity", "ComponentClass"] }, { kind: "directive", type: DynamicStyleClassDirective, selector: "[dynamicStyleClasses]", inputs: ["dynamicStyleClasses", "value"] }] });
|
|
174
|
-
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: CustomTableComponent, decorators: [{
|
|
176
|
-
type: Component,
|
|
177
|
-
args: [{ selector: 'custom-table', standalone: true, imports: [
|
|
178
|
-
CommonModule,
|
|
179
|
-
MatCheckboxModule,
|
|
180
|
-
MatTableModule,
|
|
181
|
-
MatPaginatorModule,
|
|
182
|
-
MatSortModule,
|
|
183
|
-
MatProgressSpinnerModule,
|
|
184
|
-
DisplayColumnValueComponent,
|
|
185
|
-
DynamicStyleClassDirective
|
|
186
|
-
], template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-table matSort [dataSource]=\"dataSource\" [class.table-with-error-slot]=\"shouldShowMissingError\">\n <!-- select Column -->\n <ng-container matColumnDef=\"select\">\n <mat-header-cell *matHeaderCellDef>\n <mat-checkbox [checked]=\"selection.hasValue() && SelectionUtilities.isAllSelected(selection, dataSource)\"\n [indeterminate]=\"selection.hasValue() && !SelectionUtilities.isAllSelected(selection, dataSource)\"\n (change)=\"masterToggle($event)\">\n </mat-checkbox>\n </mat-header-cell>\n <mat-cell *matCellDef=\"let value\" [dynamicStyleClasses]=\"internalConfiguration.dynamicRowStyleClasses\" [value]=\"value\">\n <mat-checkbox [checked]=\"selection.isSelected(value)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggle(value, $event)\">\n </mat-checkbox>\n </mat-cell>\n </ng-container>\n\n @for (dCol of internalConfiguration.displayColumns; track $index) {\n <ng-container [matColumnDef]=\"dCol.displayName\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n {{dCol.displayName}}\n </mat-header-cell>\n <mat-cell *matCellDef=\"let value\" [class.enabled]=\"!dCol.disableClick && internalConfiguration.allowClick(value)\"\n [dynamicStyleClasses]=\"internalConfiguration.dynamicRowStyleClasses\" [value]=\"value\"\n (click)=\"clickCell(value, dCol)\"\n >\n @if (dCol.Component) {\n <display-column-value [entity]=\"value\" [ComponentClass]=\"dCol.Component\"></display-column-value>\n }\n @else {\n {{getDisplayColumnValue(value, dCol)}}\n }\n </mat-cell>\n </ng-container>\n }\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\"></mat-row>\n</mat-table>\n\n@if (internalConfiguration.displayLoadingSpinner && isLoading) {\n <mat-spinner>\n </mat-spinner>\n}\n@else if (shouldShowMissingError && !dataSource.data.length) {\n <div class=\"table-error\">{{internalConfiguration.emptyErrorMessage}}</div>\n}\n\n<mat-paginator [length]=\"dataSource.filteredData.length\" [pageIndex]=\"0\" [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 50]\"></mat-paginator>", styles: [".mdc-data-table__row:last-child .mdc-data-table__cell{border-bottom:1px solid rgba(0,0,0,.12)}mat-paginator{padding-top:10px;padding-bottom:10px}mat-spinner{margin:10px auto}.mat-column-select{flex:0 0 48px;padding-left:0;padding-right:0;justify-content:center}.enabled:hover{cursor:pointer}.table-with-error-slot{border:1px solid #E0E0E0;border-radius:5px;padding-top:5px;padding-bottom:5px}.table-error{display:flex;align-items:center;justify-content:center;margin-top:-6px;border:1px solid #E0E0E0;background-color:#f8d3d7;color:#721c24;height:fit-content;padding-left:4px;padding-right:4px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}\n"] }]
|
|
187
|
-
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: undefined, decorators: [{
|
|
188
|
-
type: Inject,
|
|
189
|
-
args: [NGX_COMPLETE_GLOBAL_DEFAULT_VALUES]
|
|
190
|
-
}] }], propDecorators: { data: [{
|
|
191
|
-
type: Input,
|
|
192
|
-
args: [{ required: true }]
|
|
193
|
-
}], searchString: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], required: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], isLoading: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], configuration: [{
|
|
200
|
-
type: Input,
|
|
201
|
-
args: [{ required: true }]
|
|
202
|
-
}], cellClicked: [{
|
|
203
|
-
type: Output
|
|
204
|
-
}], selectionChanged: [{
|
|
205
|
-
type: Output
|
|
206
|
-
}], paginator: [{
|
|
207
|
-
type: ViewChild,
|
|
208
|
-
args: [MatPaginator, { static: true }]
|
|
209
|
-
}], sort: [{
|
|
210
|
-
type: ViewChild,
|
|
211
|
-
args: [MatSort, { static: true }]
|
|
212
|
-
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2N1c3RvbS10YWJsZS9jdXN0b20tdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RSxPQUFPLEVBQTRCLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDeEcsT0FB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bk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVudmlyb25tZW50SW5qZWN0b3IsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5cbmltcG9ydCB7IEN1c3RvbVRhYmxlQ29uZmlndXJhdGlvbiwgSW50ZXJuYWxDdXN0b21UYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL2N1c3RvbS10YWJsZS1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY1N0eWxlQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtc3R5bGUtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRhYmxlQ29sdW1uVmFsdWVUb1NvcnRWYWx1ZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy90YWJsZS1jb2x1bW4tdmFsdWUtdG8tc29ydC12YWx1ZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBOR1hfQ09NUExFVEVfR0xPQkFMX0RFRkFVTFRfVkFMVUVTLCBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIH0gZnJvbSAnLi4vLi4vZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IFNlbGVjdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9zZWxlY3Rpb24udXRpbGl0aWVzJztcbmltcG9ydCB7IERpc3BsYXlDb2x1bW5WYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlL2Rpc3BsYXktY29sdW1uLXZhbHVlL2Rpc3BsYXktY29sdW1uLXZhbHVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29sdW1uLCBUYWJsZUNvbHVtblZhbHVlIH0gZnJvbSAnLi4vdGFibGUvdGFibGUtZGF0YSc7XG5cbi8qKlxuICogVGhlIGV2ZW50IGZvciBjbGlja2luZyBvbiBhIHRhYmxlIGNlbGwuXG4gKi9cbmV4cG9ydCB0eXBlIENlbGxDbGlja2VkRXZlbnQ8VD4gPSB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbHVtbiB0aGF0IHdhcyBjbGlja2VkLlxuICAgICAqL1xuICAgIGRpc3BsYXlDb2x1bW46IERpc3BsYXlDb2x1bW48VD4sXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSByb3cgdGhhdCB3YXMgY2xpY2tlZC5cbiAgICAgKi9cbiAgICB2YWx1ZTogVFxufTtcblxuLyoqXG4gKiBBIGN1c3RvbSB0YWJsZSB0aGF0IGhhcyB0aGluZ3MgbGlrZSBzb3J0aW5nIGFuZCBwYWdpbmF0aW9uIGFscmVhZHkgYnVpbHQgaW4uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhbmd1bGFyL2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnY3VzdG9tLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b20tdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgTWF0VGFibGVNb2R1bGUsXG4gICAgICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICAgICAgTWF0U29ydE1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBEaXNwbGF5Q29sdW1uVmFsdWVDb21wb25lbnQsXG4gICAgICAgIER5bmFtaWNTdHlsZUNsYXNzRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21UYWJsZUNvbXBvbmVudDxULCBFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgU2VsZWN0aW9uVXRpbGl0aWVzOiB0eXBlb2YgU2VsZWN0aW9uVXRpbGl0aWVzID0gU2VsZWN0aW9uVXRpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgdGFibGUgZW50cmllcy5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHNldCBkYXRhKHZhbHVlOiBUW10pIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGdpdmVuIHN0cmluZyBhcyBhIGZpbHRlciB0byB0aGUgdGFibGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VhcmNoU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlciA9IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2hvdWxkU2hvd01pc3NpbmdFcnJvciA9IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgdGFibGUgc2hvdWxkIHNob3cgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSB0YWJsZSBpcyBlbXB0eS5cbiAgICAgKi9cbiAgICBzaG91bGRTaG93TWlzc2luZ0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgdGFibGUgZGF0YSBpcyBjdXJyZW50bHkgbG9hZGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHRhYmxlLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgY29uZmlndXJhdGlvbiE6IEN1c3RvbVRhYmxlQ29uZmlndXJhdGlvbjxUPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGludGVybmFsQ29uZmlndXJhdGlvbiE6IEludGVybmFsQ3VzdG9tVGFibGVDb25maWd1cmF0aW9uPFQ+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBhIGNlbGwgaXMgY2xpY2tlZCB0aGF0IGlzIG5laXRoZXIgZGlzYWJsZWQgbm9yIGRpc2FsbG93ZWQgdG8gYmUgY2xpY2tlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjZWxsQ2xpY2tlZDogRXZlbnRFbWl0dGVyPENlbGxDbGlja2VkRXZlbnQ8VD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxDZWxsQ2xpY2tlZEV2ZW50PFQ+PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWVzIGNoYW5nZS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHBhZ2luYXRvciBmcm9tIHRoZSBodG1sLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3J0IGZyb20gdGhlIGh0bWwuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ydCE6IE1hdFNvcnQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZm9yIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VD4gPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2VsZWN0aW9uIG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFQ+ID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRydWUsIFtdKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb2x1bW5zIG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBkaXNwbGF5ZWRDb2x1bW5zITogc3RyaW5nW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgQEluamVjdChOR1hfQ09NUExFVEVfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24gPSBuZXcgSW50ZXJuYWxDdXN0b21UYWJsZUNvbmZpZ3VyYXRpb24odGhpcy5nbG9iYWxDb25maWcsIHRoaXMuY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IGdpdmVuRGlzcGxheUNvbHVtbnM6IHN0cmluZ1tdID0gdGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24uZGlzcGxheUNvbHVtbnMubWFwKCh2KSA9PiB2LmRpc3BsYXlOYW1lKTtcbiAgICAgICAgaWYgKGdpdmVuRGlzcGxheUNvbHVtbnMuZmluZChzID0+IHMgPT09ICdzZWxlY3QnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBUaGUgbmFtZSBcInNlbGVjdFwiIGZvciBhIGRpc3BsYXkgY29sdW1uIGlzIHJlc2VydmVkLlxuICAgICAgICAgICAgICAgIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgbmFtZS5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuaW50ZXJuYWxDb25maWd1cmF0aW9uLndpdGhTZWxlY3Rpb24gPyBbJ3NlbGVjdCddLmNvbmNhdChnaXZlbkRpc3BsYXlDb2x1bW5zKSA6IGdpdmVuRGlzcGxheUNvbHVtbnM7XG4gICAgICAgIHRoaXMuc2V0dXBEYXRhU291cmNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cERhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKHZhbHVlOiBULCBoZWFkZXI6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheUNvbHVtbjogRGlzcGxheUNvbHVtbjxUPiA9IHRoaXMuaW50ZXJuYWxDb25maWd1cmF0aW9uLmRpc3BsYXlDb2x1bW5zLmZpbmQoZHAgPT4gZHAuZGlzcGxheU5hbWUgPT09IGhlYWRlcikgYXMgRGlzcGxheUNvbHVtbjxUPjtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24ucmVzb2x2ZVRvUmVmZXJlbmNlZEVudGl0eSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZEVudGl0eTogVCA9IHRoaXMuaW50ZXJuYWxDb25maWd1cmF0aW9uLnJlc29sdmVUb1JlZmVyZW5jZWRFbnRpdHkodmFsdWUpIGFzIFQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZUNvbHVtblZhbHVlVG9Tb3J0VmFsdWUoZGlzcGxheUNvbHVtbi52YWx1ZShyZXNvbHZlZEVudGl0eSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVDb2x1bW5WYWx1ZVRvU29ydFZhbHVlKGRpc3BsYXlDb2x1bW4udmFsdWUodmFsdWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlclByZWRpY2F0ZSA9ICh2YWx1ZTogVCwgZmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaFN0cjogc3RyaW5nID0gdGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24uc2VhcmNoU3RyaW5nRm9yUm93KHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFNlYXJjaFN0cmluZzogc3RyaW5nID0gc2VhcmNoU3RyLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRGaWx0ZXJTdHJpbmc6IHN0cmluZyA9IGZpbHRlci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZFNlYXJjaFN0cmluZy5pbmNsdWRlcyhmb3JtYXR0ZWRGaWx0ZXJTdHJpbmcpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYSBjZWxsQ2xpY2tlZCBldmVudCB3aGVuIHRoZSBjbGlja2VkIGNvbHVtbiBpcyBlbmFibGVkIGFuZCBjbGlja2luZyBpcyBhbGxvd2VkIGJ5IHRoZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgcm93IHRoYXQgd2FzIGNsaWNrZWQuXG4gICAgICogQHBhcmFtIGRDb2wgLSBUaGUgZGlzcGxheSBjb2x1bW4gb2YgdGhlIHJvdyB0aGF0IHdhcyBjbGlja2VkLlxuICAgICAqL1xuICAgIGNsaWNrQ2VsbCh2YWx1ZTogVCwgZENvbDogRGlzcGxheUNvbHVtbjxUPik6IHZvaWQge1xuICAgICAgICBpZiAoZENvbC5kaXNhYmxlQ2xpY2sgPT0gdHJ1ZSB8fCAhdGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24uYWxsb3dDbGljayh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNlbGxDbGlja2VkLmVtaXQoeyBkaXNwbGF5Q29sdW1uOiBkQ29sLCB2YWx1ZTogdmFsdWUgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyBhIHNpbmdsZSB0YWJsZSByb3cuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSByb3cgdGhhdCB3YXMgY2xpY2tlZC5cbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgY2hhbmdlIGV2ZW50IGZyb20gdGhlIGNoZWNrYm94LlxuICAgICAqL1xuICAgIHRvZ2dsZSh2YWx1ZTogVCwgZXZlbnQ/OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udG9nZ2xlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZXMgYWxsIHRhYmxlIHJvd3MuXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGNoYW5nZSBldmVudCBmcm9tIHRoZSBjaGVja2JveC5cbiAgICAgKi9cbiAgICBtYXN0ZXJUb2dnbGUoZXZlbnQ/OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgU2VsZWN0aW9uVXRpbGl0aWVzLm1hc3RlclRvZ2dsZSh0aGlzLnNlbGVjdGlvbiwgdGhpcy5kYXRhU291cmNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIGNvbHVtbi5cbiAgICAgKiBSdW5zIGluIGVudmlyb25tZW50IGNvbnRleHQgdG8gZW5hYmxlIGluamVjdGlvbi5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29sdW1uIHZhbHVlIHRvIGdldCB0aGUgZGlzcGxheSBzdHJpbmcgZnJvbS5cbiAgICAgKiBAcGFyYW0gZGlzcGxheUNvbHVtbiAtIFRoZSBkaXNwbGF5IGNvbHVtbiB0byBnZXQgdGhlIHZhbHVlIGZyb20uXG4gICAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBkaXNwbGF5IGNvbHVtbi5cbiAgICAgKi9cbiAgICBnZXREaXNwbGF5Q29sdW1uVmFsdWUodmFsdWU6IFQsIGRpc3BsYXlDb2x1bW46IERpc3BsYXlDb2x1bW48VD4pOiBUYWJsZUNvbHVtblZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnRlcm5hbENvbmZpZ3VyYXRpb24ucmVzb2x2ZVRvUmVmZXJlbmNlZEVudGl0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5Q29sdW1uLnZhbHVlKHRoaXMuaW50ZXJuYWxDb25maWd1cmF0aW9uLnJlc29sdmVUb1JlZmVyZW5jZWRFbnRpdHkodmFsdWUpIGFzIFQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlDb2x1bW4udmFsdWUodmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL25vLWNhbGwtZXhwcmVzc2lvbiAtLT5cbjxtYXQtdGFibGUgbWF0U29ydCBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW2NsYXNzLnRhYmxlLXdpdGgtZXJyb3Itc2xvdF09XCJzaG91bGRTaG93TWlzc2luZ0Vycm9yXCI+XG4gICAgPCEtLSBzZWxlY3QgQ29sdW1uIC0tPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIFNlbGVjdGlvblV0aWxpdGllcy5pc0FsbFNlbGVjdGVkKHNlbGVjdGlvbiwgZGF0YVNvdXJjZSlcIlxuICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICFTZWxlY3Rpb25VdGlsaXRpZXMuaXNBbGxTZWxlY3RlZChzZWxlY3Rpb24sIGRhdGFTb3VyY2UpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm1hc3RlclRvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCB2YWx1ZVwiIFtkeW5hbWljU3R5bGVDbGFzc2VzXT1cImludGVybmFsQ29uZmlndXJhdGlvbi5keW5hbWljUm93U3R5bGVDbGFzc2VzXCIgW3ZhbHVlXT1cInZhbHVlXCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGUodmFsdWUsICRldmVudClcIj5cbiAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L21hdC1jZWxsPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgQGZvciAoZENvbCBvZiBpbnRlcm5hbENvbmZpZ3VyYXRpb24uZGlzcGxheUNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiZENvbC5kaXNwbGF5TmFtZVwiPlxuICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XG4gICAgICAgICAgICAgICAge3tkQ29sLmRpc3BsYXlOYW1lfX1cbiAgICAgICAgICAgIDwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHZhbHVlXCIgW2NsYXNzLmVuYWJsZWRdPVwiIWRDb2wuZGlzYWJsZUNsaWNrICYmIGludGVybmFsQ29uZmlndXJhdGlvbi5hbGxvd0NsaWNrKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgW2R5bmFtaWNTdHlsZUNsYXNzZXNdPVwiaW50ZXJuYWxDb25maWd1cmF0aW9uLmR5bmFtaWNSb3dTdHlsZUNsYXNzZXNcIiBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NlbGwodmFsdWUsIGRDb2wpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGRDb2wuQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXNwbGF5LWNvbHVtbi12YWx1ZSBbZW50aXR5XT1cInZhbHVlXCIgW0NvbXBvbmVudENsYXNzXT1cImRDb2wuQ29tcG9uZW50XCI+PC9kaXNwbGF5LWNvbHVtbi12YWx1ZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB7e2dldERpc3BsYXlDb2x1bW5WYWx1ZSh2YWx1ZSwgZENvbCl9fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LWNlbGw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cblxuICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvbWF0LWhlYWRlci1yb3c+XG4gICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIj48L21hdC1yb3c+XG48L21hdC10YWJsZT5cblxuQGlmIChpbnRlcm5hbENvbmZpZ3VyYXRpb24uZGlzcGxheUxvYWRpbmdTcGlubmVyICYmIGlzTG9hZGluZykge1xuICAgIDxtYXQtc3Bpbm5lcj5cbiAgICA8L21hdC1zcGlubmVyPlxufVxuQGVsc2UgaWYgKHNob3VsZFNob3dNaXNzaW5nRXJyb3IgJiYgIWRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZXJyb3JcIj57e2ludGVybmFsQ29uZmlndXJhdGlvbi5lbXB0eUVycm9yTWVzc2FnZX19PC9kaXY+XG59XG5cbjxtYXQtcGFnaW5hdG9yIFtsZW5ndGhdPVwiZGF0YVNvdXJjZS5maWx0ZXJlZERhdGEubGVuZ3RoXCIgW3BhZ2VJbmRleF09XCIwXCIgW3BhZ2VTaXplXT1cIjEwXCIgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCA1MF1cIj48L21hdC1wYWdpbmF0b3I+Il19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { UnsavedChangesGuard } from '../../services/unsaved-changes.guard';
|
|
2
|
-
/**
|
|
3
|
-
* The default data for a edit route.
|
|
4
|
-
*/
|
|
5
|
-
export const defaultEditDataRoute = {
|
|
6
|
-
// eslint-disable-next-line promise/prefer-await-to-then
|
|
7
|
-
loadComponent: () => import('./edit-page.component').then(m => m.NgxMatEntityEditPageComponent),
|
|
8
|
-
title: 'Edit',
|
|
9
|
-
path: 'entities:id',
|
|
10
|
-
canDeactivate: [UnsavedChangesGuard]
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kYXRhLnJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy9lZGl0LXBhZ2UvZWRpdC1kYXRhLnJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBZ0IzRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFxQztJQUNsRSx3REFBd0Q7SUFDeEQsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztJQUMvRixLQUFLLEVBQUUsTUFBTTtJQUNiLElBQUksRUFBRSxhQUFhO0lBQ25CLGFBQWEsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0NBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRFeHBvcnQsIFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVW5zYXZlZENoYW5nZXNHdWFyZCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Vuc2F2ZWQtY2hhbmdlcy5ndWFyZCc7XG5cbi8qKlxuICogVGhlIGRlZmluaXRpb24gZm9yIGEgcm91dGUgdG8gdXNlIHdpdGggdGhlIFwiTmd4TWF0RW50aXR5RWRpdFBhZ2VDb21wb25lbnRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0RGF0YVJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jLCBzdHlsaXN0aWMvbWF4LWxlblxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IFR5cGU8dW5rbm93bj4gfCBPYnNlcnZhYmxlPFR5cGU8dW5rbm93bj4gfCBEZWZhdWx0RXhwb3J0PFR5cGU8dW5rbm93bj4+PiB8IFByb21pc2U8VHlwZTx1bmtub3duPiB8IERlZmF1bHRFeHBvcnQ8VHlwZTx1bmtub3duPj4+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcHJvdmlkZXJzOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwYXRoOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBkYXRhIGZvciBhIGVkaXQgcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RWRpdERhdGFSb3V0ZTogT21pdDxFZGl0RGF0YVJvdXRlLCAncHJvdmlkZXJzJz4gPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLXRoZW5cbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZWRpdC1wYWdlLmNvbXBvbmVudCcpLnRoZW4obSA9PiBtLk5neE1hdEVudGl0eUVkaXRQYWdlQ29tcG9uZW50KSxcbiAgICB0aXRsZTogJ0VkaXQnLFxuICAgIHBhdGg6ICdlbnRpdGllczppZCcsXG4gICAgY2FuRGVhY3RpdmF0ZTogW1Vuc2F2ZWRDaGFuZ2VzR3VhcmRdXG59OyJdfQ==
|