@abp/ng.theme.shared 5.0.1 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/abp-ng.theme.shared.d.ts +5 -5
- package/bundles/abp-ng.theme.shared-extensions.umd.js +1749 -1748
- package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
- package/bundles/abp-ng.theme.shared-testing.umd.js +41 -41
- package/bundles/abp-ng.theme.shared-testing.umd.js.map +1 -1
- package/bundles/abp-ng.theme.shared.umd.js +2316 -2316
- package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
- package/esm2015/abp-ng.theme.shared.js +4 -4
- package/esm2015/extensions/abp-ng.theme.shared-extensions.js +4 -4
- package/esm2015/extensions/lib/adapters/date-time.adapter.js +34 -34
- package/esm2015/extensions/lib/adapters/date.adapter.js +41 -41
- package/esm2015/extensions/lib/adapters/time.adapter.js +36 -36
- package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js +25 -25
- package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +109 -109
- package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +164 -164
- package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +70 -70
- package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +134 -134
- package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +45 -45
- package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +46 -46
- package/esm2015/extensions/lib/constants/extra-properties.js +2 -2
- package/esm2015/extensions/lib/directives/disabled.directive.js +29 -29
- package/esm2015/extensions/lib/directives/prop-data.directive.js +41 -41
- package/esm2015/extensions/lib/enums/props.enum.js +2 -2
- package/esm2015/extensions/lib/models/actions.js +46 -46
- package/esm2015/extensions/lib/models/entity-actions.js +29 -29
- package/esm2015/extensions/lib/models/entity-props.js +36 -34
- package/esm2015/extensions/lib/models/form-props.js +52 -52
- package/esm2015/extensions/lib/models/internal/object-extensions.js +2 -2
- package/esm2015/extensions/lib/models/object-extensions.js +3 -3
- package/esm2015/extensions/lib/models/props.js +50 -50
- package/esm2015/extensions/lib/models/toolbar-actions.js +41 -41
- package/esm2015/extensions/lib/services/extensions.service.js +24 -24
- package/esm2015/extensions/lib/tokens/extensions.token.js +7 -7
- package/esm2015/extensions/lib/ui-extensions.module.js +92 -92
- package/esm2015/extensions/lib/utils/actions.util.js +9 -9
- package/esm2015/extensions/lib/utils/enum.util.js +42 -42
- package/esm2015/extensions/lib/utils/factory.util.js +4 -4
- package/esm2015/extensions/lib/utils/form-props.util.js +51 -51
- package/esm2015/extensions/lib/utils/localization.util.js +13 -13
- package/esm2015/extensions/lib/utils/props.util.js +14 -14
- package/esm2015/extensions/lib/utils/state.util.js +124 -124
- package/esm2015/extensions/lib/utils/typeahead.util.js +52 -52
- package/esm2015/extensions/lib/utils/validation.util.js +11 -11
- package/esm2015/extensions/public-api.js +28 -28
- package/esm2015/lib/animations/bounce.animations.js +17 -17
- package/esm2015/lib/animations/collapse.animations.js +50 -50
- package/esm2015/lib/animations/fade.animations.js +38 -38
- package/esm2015/lib/animations/index.js +7 -7
- package/esm2015/lib/animations/modal.animations.js +11 -11
- package/esm2015/lib/animations/slide.animations.js +8 -8
- package/esm2015/lib/animations/toast.animations.js +13 -13
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +49 -49
- package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +22 -22
- package/esm2015/lib/components/button/button.component.js +98 -98
- package/esm2015/lib/components/confirmation/confirmation.component.js +40 -40
- package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +65 -65
- package/esm2015/lib/components/index.js +13 -13
- package/esm2015/lib/components/loader-bar/loader-bar.component.js +126 -126
- package/esm2015/lib/components/loading/loading.component.js +47 -47
- package/esm2015/lib/components/modal/modal-close.directive.js +28 -28
- package/esm2015/lib/components/modal/modal-ref.service.js +26 -26
- package/esm2015/lib/components/modal/modal.component.js +188 -188
- package/esm2015/lib/components/toast/toast.component.js +61 -61
- package/esm2015/lib/components/toast-container/toast-container.component.js +49 -49
- package/esm2015/lib/constants/styles.js +182 -182
- package/esm2015/lib/constants/validation.js +15 -15
- package/esm2015/lib/directives/ellipsis.directive.js +63 -63
- package/esm2015/lib/directives/index.js +5 -5
- package/esm2015/lib/directives/loading.directive.js +90 -90
- package/esm2015/lib/directives/ngx-datatable-default.directive.js +75 -75
- package/esm2015/lib/directives/ngx-datatable-list.directive.js +94 -94
- package/esm2015/lib/enums/index.js +2 -2
- package/esm2015/lib/enums/route-names.js +2 -2
- package/esm2015/lib/handlers/document-dir.handler.js +33 -33
- package/esm2015/lib/handlers/error.handler.js +292 -292
- package/esm2015/lib/handlers/index.js +3 -3
- package/esm2015/lib/models/common.js +2 -2
- package/esm2015/lib/models/confirmation.js +10 -10
- package/esm2015/lib/models/index.js +6 -6
- package/esm2015/lib/models/nav-item.js +7 -7
- package/esm2015/lib/models/statistics.js +2 -2
- package/esm2015/lib/models/toaster.js +2 -2
- package/esm2015/lib/providers/index.js +3 -3
- package/esm2015/lib/providers/ng-bootstrap-config.provider.js +17 -17
- package/esm2015/lib/providers/route.provider.js +18 -18
- package/esm2015/lib/services/confirmation.service.js +68 -68
- package/esm2015/lib/services/index.js +5 -5
- package/esm2015/lib/services/nav-items.service.js +51 -51
- package/esm2015/lib/services/page-alert.service.js +26 -26
- package/esm2015/lib/services/toaster.service.js +103 -103
- package/esm2015/lib/theme-shared.module.js +165 -165
- package/esm2015/lib/tokens/append-content.token.js +11 -11
- package/esm2015/lib/tokens/http-error.token.js +10 -10
- package/esm2015/lib/tokens/index.js +5 -5
- package/esm2015/lib/tokens/ngx-datatable-messages.token.js +8 -8
- package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js +3 -3
- package/esm2015/lib/utils/date-parser-formatter.js +59 -59
- package/esm2015/lib/utils/index.js +3 -3
- package/esm2015/lib/utils/validation-utils.js +33 -33
- package/esm2015/public-api.js +16 -16
- package/esm2015/testing/abp-ng.theme.shared-testing.js +4 -4
- package/esm2015/testing/lib/models/config.js +2 -2
- package/esm2015/testing/lib/models/index.js +2 -2
- package/esm2015/testing/lib/theme-shared-testing.module.js +43 -43
- package/esm2015/testing/public-api.js +4 -4
- package/extensions/abp-ng.theme.shared-extensions.d.ts +5 -5
- package/extensions/lib/adapters/date-time.adapter.d.ts +11 -11
- package/extensions/lib/adapters/date.adapter.d.ts +9 -9
- package/extensions/lib/adapters/time.adapter.d.ts +8 -8
- package/extensions/lib/components/abstract-actions/abstract-actions.component.d.ts +14 -14
- package/extensions/lib/components/date-time-picker/date-time-picker.component.d.ts +16 -16
- package/extensions/lib/components/extensible-form/extensible-form-prop.component.d.ts +37 -37
- package/extensions/lib/components/extensible-form/extensible-form.component.d.ts +24 -24
- package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +35 -35
- package/extensions/lib/components/grid-actions/grid-actions.component.d.ts +13 -13
- package/extensions/lib/components/page-toolbar/page-toolbar.component.d.ts +12 -12
- package/extensions/lib/constants/extra-properties.d.ts +1 -1
- package/extensions/lib/directives/disabled.directive.d.ts +11 -11
- package/extensions/lib/directives/prop-data.directive.d.ts +19 -19
- package/extensions/lib/enums/props.enum.d.ts +15 -15
- package/extensions/lib/models/actions.d.ts +35 -35
- package/extensions/lib/models/entity-actions.d.ts +22 -22
- package/extensions/lib/models/entity-props.d.ts +29 -29
- package/extensions/lib/models/form-props.d.ts +42 -42
- package/extensions/lib/models/internal/object-extensions.d.ts +85 -85
- package/extensions/lib/models/object-extensions.d.ts +2 -2
- package/extensions/lib/models/props.d.ts +39 -39
- package/extensions/lib/models/toolbar-actions.d.ts +29 -29
- package/extensions/lib/services/extensions.service.d.ts +14 -14
- package/extensions/lib/tokens/extensions.token.d.ts +14 -14
- package/extensions/lib/ui-extensions.module.d.ts +23 -23
- package/extensions/lib/utils/actions.util.d.ts +7 -7
- package/extensions/lib/utils/enum.util.d.ts +7 -7
- package/extensions/lib/utils/factory.util.d.ts +1 -1
- package/extensions/lib/utils/form-props.util.d.ts +3 -3
- package/extensions/lib/utils/localization.util.d.ts +3 -3
- package/extensions/lib/utils/props.util.d.ts +8 -8
- package/extensions/lib/utils/state.util.d.ts +5 -5
- package/extensions/lib/utils/typeahead.util.d.ts +11 -11
- package/extensions/lib/utils/validation.util.d.ts +3 -3
- package/extensions/public-api.d.ts +27 -27
- package/fesm2015/abp-ng.theme.shared-extensions.js +1263 -1262
- package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
- package/fesm2015/abp-ng.theme.shared-testing.js +37 -37
- package/fesm2015/abp-ng.theme.shared-testing.js.map +1 -1
- package/fesm2015/abp-ng.theme.shared.js +2117 -2117
- package/fesm2015/abp-ng.theme.shared.js.map +1 -1
- package/lib/animations/bounce.animations.d.ts +1 -1
- package/lib/animations/collapse.animations.d.ts +9 -9
- package/lib/animations/fade.animations.d.ts +10 -10
- package/lib/animations/index.d.ts +6 -6
- package/lib/animations/modal.animations.d.ts +2 -2
- package/lib/animations/slide.animations.d.ts +1 -1
- package/lib/animations/toast.animations.d.ts +1 -1
- package/lib/components/breadcrumb/breadcrumb.component.d.ts +16 -16
- package/lib/components/breadcrumb-items/breadcrumb-items.component.d.ts +7 -7
- package/lib/components/button/button.component.d.ts +25 -25
- package/lib/components/confirmation/confirmation.component.d.ts +14 -14
- package/lib/components/http-error-wrapper/http-error-wrapper.component.d.ts +27 -27
- package/lib/components/index.d.ts +12 -12
- package/lib/components/loader-bar/loader-bar.component.d.ts +33 -33
- package/lib/components/loading/loading.component.d.ts +5 -5
- package/lib/components/modal/modal-close.directive.d.ts +9 -9
- package/lib/components/modal/modal-ref.service.d.ts +13 -13
- package/lib/components/modal/modal.component.d.ts +50 -50
- package/lib/components/toast/toast.component.d.ts +14 -14
- package/lib/components/toast-container/toast-container.component.d.ts +18 -18
- package/lib/constants/styles.d.ts +2 -2
- package/lib/constants/validation.d.ts +14 -14
- package/lib/directives/ellipsis.directive.d.ts +21 -21
- package/lib/directives/index.d.ts +4 -4
- package/lib/directives/loading.directive.d.ts +25 -25
- package/lib/directives/ngx-datatable-default.directive.d.ts +30 -30
- package/lib/directives/ngx-datatable-list.directive.d.ts +24 -24
- package/lib/enums/index.d.ts +1 -1
- package/lib/enums/route-names.d.ts +3 -3
- package/lib/handlers/document-dir.handler.d.ts +13 -13
- package/lib/handlers/error.handler.d.ts +82 -82
- package/lib/handlers/index.d.ts +2 -2
- package/lib/models/common.d.ts +19 -19
- package/lib/models/confirmation.d.ts +25 -25
- package/lib/models/index.d.ts +5 -5
- package/lib/models/nav-item.d.ts +11 -11
- package/lib/models/statistics.d.ts +12 -12
- package/lib/models/toaster.d.ts +30 -30
- package/lib/providers/index.d.ts +2 -2
- package/lib/providers/ng-bootstrap-config.provider.d.ts +8 -8
- package/lib/providers/route.provider.d.ts +8 -8
- package/lib/services/confirmation.service.d.ts +21 -21
- package/lib/services/index.d.ts +4 -4
- package/lib/services/nav-items.service.d.ts +13 -13
- package/lib/services/page-alert.service.d.ts +18 -18
- package/lib/services/toaster.service.d.ts +60 -60
- package/lib/theme-shared.module.d.ts +33 -33
- package/lib/tokens/append-content.token.d.ts +2 -2
- package/lib/tokens/http-error.token.d.ts +5 -5
- package/lib/tokens/index.d.ts +4 -4
- package/lib/tokens/ngx-datatable-messages.token.d.ts +12 -12
- package/lib/tokens/suppress-unsaved-changes-warning.token.d.ts +2 -2
- package/lib/utils/date-parser-formatter.d.ts +12 -12
- package/lib/utils/index.d.ts +2 -2
- package/lib/utils/validation-utils.d.ts +3 -3
- package/package.json +2 -2
- package/public-api.d.ts +12 -12
- package/testing/abp-ng.theme.shared-testing.d.ts +5 -5
- package/testing/lib/models/config.d.ts +4 -4
- package/testing/lib/models/index.d.ts +1 -1
- package/testing/lib/theme-shared-testing.module.d.ts +14 -14
- package/testing/public-api.d.ts +3 -3
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import { TrackByService } from '@abp/ng.core';
|
|
2
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';
|
|
3
|
-
import { ControlContainer } from '@angular/forms';
|
|
4
|
-
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
|
|
5
|
-
import { ExtensionsService } from '../../services/extensions.service';
|
|
6
|
-
import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';
|
|
7
|
-
import { selfFactory } from '../../utils/factory.util';
|
|
8
|
-
import { ExtensibleFormPropComponent } from './extensible-form-prop.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@abp/ng.core";
|
|
11
|
-
import * as i2 from "@angular/forms";
|
|
12
|
-
import * as i3 from "../../services/extensions.service";
|
|
13
|
-
import * as i4 from "./extensible-form-prop.component";
|
|
14
|
-
import * as i5 from "@angular/common";
|
|
15
|
-
import * as i6 from "../../directives/prop-data.directive";
|
|
16
|
-
import * as i7 from "@ngx-validate/core";
|
|
17
|
-
export class ExtensibleFormComponent {
|
|
18
|
-
constructor(cdRef, track, container, extensions, identifier) {
|
|
19
|
-
this.cdRef = cdRef;
|
|
20
|
-
this.track = track;
|
|
21
|
-
this.container = container;
|
|
22
|
-
this.extensions = extensions;
|
|
23
|
-
this.identifier = identifier;
|
|
24
|
-
this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;
|
|
25
|
-
}
|
|
26
|
-
set selectedRecord(record) {
|
|
27
|
-
const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
|
|
28
|
-
this.propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
|
|
29
|
-
this.record = record;
|
|
30
|
-
}
|
|
31
|
-
get form() {
|
|
32
|
-
return (this.container ? this.container.control : { controls: {} });
|
|
33
|
-
}
|
|
34
|
-
get extraProperties() {
|
|
35
|
-
return (this.form.controls.extraProperties || { controls: {} });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
ExtensibleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i2.ControlContainer }, { token: i3.ExtensionsService }, { token: EXTENSIONS_IDENTIFIER }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
ExtensibleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\
|
|
40
|
-
{
|
|
41
|
-
provide: ControlContainer,
|
|
42
|
-
useFactory: selfFactory,
|
|
43
|
-
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
44
|
-
},
|
|
45
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{
|
|
49
|
-
exportAs: 'abpExtensibleForm',
|
|
50
|
-
selector: 'abp-extensible-form',
|
|
51
|
-
templateUrl: './extensible-form.component.html',
|
|
52
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
53
|
-
viewProviders: [
|
|
54
|
-
{
|
|
55
|
-
provide: ControlContainer,
|
|
56
|
-
useFactory: selfFactory,
|
|
57
|
-
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
}]
|
|
61
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TrackByService }, { type: i2.ControlContainer }, { type: i3.ExtensionsService }, { type: undefined, decorators: [{
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: [EXTENSIONS_IDENTIFIER]
|
|
64
|
-
}] }]; }, propDecorators: { formProps: [{
|
|
65
|
-
type: ViewChildren,
|
|
66
|
-
args: [ExtensibleFormPropComponent]
|
|
67
|
-
}], selectedRecord: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { TrackByService } from '@abp/ng.core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';
|
|
3
|
+
import { ControlContainer } from '@angular/forms';
|
|
4
|
+
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
|
|
5
|
+
import { ExtensionsService } from '../../services/extensions.service';
|
|
6
|
+
import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';
|
|
7
|
+
import { selfFactory } from '../../utils/factory.util';
|
|
8
|
+
import { ExtensibleFormPropComponent } from './extensible-form-prop.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@abp/ng.core";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "../../services/extensions.service";
|
|
13
|
+
import * as i4 from "./extensible-form-prop.component";
|
|
14
|
+
import * as i5 from "@angular/common";
|
|
15
|
+
import * as i6 from "../../directives/prop-data.directive";
|
|
16
|
+
import * as i7 from "@ngx-validate/core";
|
|
17
|
+
export class ExtensibleFormComponent {
|
|
18
|
+
constructor(cdRef, track, container, extensions, identifier) {
|
|
19
|
+
this.cdRef = cdRef;
|
|
20
|
+
this.track = track;
|
|
21
|
+
this.container = container;
|
|
22
|
+
this.extensions = extensions;
|
|
23
|
+
this.identifier = identifier;
|
|
24
|
+
this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;
|
|
25
|
+
}
|
|
26
|
+
set selectedRecord(record) {
|
|
27
|
+
const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
|
|
28
|
+
this.propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
|
|
29
|
+
this.record = record;
|
|
30
|
+
}
|
|
31
|
+
get form() {
|
|
32
|
+
return (this.container ? this.container.control : { controls: {} });
|
|
33
|
+
}
|
|
34
|
+
get extraProperties() {
|
|
35
|
+
return (this.form.controls.extraProperties || { controls: {} });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
ExtensibleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TrackByService }, { token: i2.ControlContainer }, { token: i3.ExtensionsService }, { token: EXTENSIONS_IDENTIFIER }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
ExtensibleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ExtensibleFormComponent, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\n <ng-container *ngIf=\"prop.visible(data)\">\n <ng-container\n [formGroupName]=\"extraPropertiesKey\"\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\n >\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\n </ng-container>\n\n <ng-template #tempDefault>\n <abp-extensible-form-prop\n *ngIf=\"form.get(prop.name)\"\n [prop]=\"prop\"\n [data]=\"data\"\n [first]=\"first\"\n ></abp-extensible-form-prop>\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n", components: [{ type: i4.ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }], viewProviders: [
|
|
40
|
+
{
|
|
41
|
+
provide: ControlContainer,
|
|
42
|
+
useFactory: selfFactory,
|
|
43
|
+
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
44
|
+
},
|
|
45
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{
|
|
49
|
+
exportAs: 'abpExtensibleForm',
|
|
50
|
+
selector: 'abp-extensible-form',
|
|
51
|
+
templateUrl: './extensible-form.component.html',
|
|
52
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
53
|
+
viewProviders: [
|
|
54
|
+
{
|
|
55
|
+
provide: ControlContainer,
|
|
56
|
+
useFactory: selfFactory,
|
|
57
|
+
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
}]
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TrackByService }, { type: i2.ControlContainer }, { type: i3.ExtensionsService }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [EXTENSIONS_IDENTIFIER]
|
|
64
|
+
}] }]; }, propDecorators: { formProps: [{
|
|
65
|
+
type: ViewChildren,
|
|
66
|
+
args: [ExtensibleFormPropComponent]
|
|
67
|
+
}], selectedRecord: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBZS9FLE1BQU0sT0FBTyx1QkFBdUI7SUF1QmxDLFlBQ2tCLEtBQXdCLEVBQ3hCLEtBQXFCLEVBQzdCLFNBQTJCLEVBQzNCLFVBQTZCLEVBQ0UsVUFBa0I7UUFKekMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDRSxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBakIzRCx1QkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztJQWtCdkMsQ0FBQztJQXpCSixJQUNJLGNBQWMsQ0FBQyxNQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9FLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxJQUFJLElBQUk7UUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFjLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFjLENBQUM7SUFDL0UsQ0FBQzs7cUhBckJVLHVCQUF1QixrSkE0QnhCLHFCQUFxQjt5R0E1QnBCLHVCQUF1Qix1SUFDcEIsMkJBQTJCLGlGQ2xDM0MsazRCQXVCQSw2MEJERWlCO1FBQ2I7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFVBQVUsRUFBRSxXQUFXO1lBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDM0Q7S0FDRjs0RkFFVSx1QkFBdUI7a0JBYm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLGtDQUFrQztvQkFDL0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixVQUFVLEVBQUUsV0FBVzs0QkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzt5QkFDM0Q7cUJBQ0Y7aUJBQ0Y7OzBCQTZCSSxNQUFNOzJCQUFDLHFCQUFxQjs0Q0ExQi9CLFNBQVM7c0JBRFIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBSXJDLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcbmltcG9ydCB7IEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCB9IGZyb20gJy4vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZUZvcm0nLFxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29udHJvbENvbnRhaW5lcl1dLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGb3JtQ29tcG9uZW50PFIgPSBhbnk+IHtcbiAgQFZpZXdDaGlsZHJlbihFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQpXG4gIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWxlY3RlZFJlY29yZChyZWNvcmQ6IFIpIHtcbiAgICBjb25zdCB0eXBlID0gIXJlY29yZCB8fCBKU09OLnN0cmluZ2lmeShyZWNvcmQpID09PSAne30nID8gJ2NyZWF0ZScgOiAnZWRpdCc7XG4gICAgdGhpcy5wcm9wTGlzdCA9IHRoaXMuZXh0ZW5zaW9uc1tgJHt0eXBlfUZvcm1Qcm9wc2BdLmdldCh0aGlzLmlkZW50aWZpZXIpLnByb3BzO1xuICAgIHRoaXMucmVjb3JkID0gcmVjb3JkO1xuICB9XG5cbiAgZXh0cmFQcm9wZXJ0aWVzS2V5ID0gRVhUUkFfUFJPUEVSVElFU19LRVk7XG4gIHByb3BMaXN0ITogRm9ybVByb3BMaXN0PFI+O1xuICByZWNvcmQhOiBSO1xuXG4gIGdldCBmb3JtKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuICh0aGlzLmNvbnRhaW5lciA/IHRoaXMuY29udGFpbmVyLmNvbnRyb2wgOiB7IGNvbnRyb2xzOiB7fSB9KSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBnZXQgZXh0cmFQcm9wZXJ0aWVzKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMuZXh0cmFQcm9wZXJ0aWVzIHx8IHsgY29udHJvbHM6IHt9IH0pIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICBwcml2YXRlIGV4dGVuc2lvbnM6IEV4dGVuc2lvbnNTZXJ2aWNlLFxuICAgIEBJbmplY3QoRVhURU5TSU9OU19JREVOVElGSUVSKSBwcml2YXRlIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgKSB7fVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1cIj5cbiAgPG5nLWNvbnRhaW5lciAqYWJwUHJvcERhdGE9XCJsZXQgZGF0YTsgZnJvbUxpc3Q6IHByb3BMaXN0OyB3aXRoUmVjb3JkOiByZWNvcmRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIHByb3BMaXN0OyBsZXQgZmlyc3QgPSBmaXJzdDsgdHJhY2tCeTogdHJhY2suYnkoJ25hbWUnKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3AudmlzaWJsZShkYXRhKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiZXh0cmFQcm9wZXJ0aWVzS2V5XCJcbiAgICAgICAgICAqbmdJZj1cImV4dHJhUHJvcGVydGllcy5jb250cm9sc1twcm9wLm5hbWVdOyBlbHNlIHRlbXBEZWZhdWx0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3AgW3Byb3BdPVwicHJvcFwiIFtkYXRhXT1cImRhdGFcIj48L2FicC1leHRlbnNpYmxlLWZvcm0tcHJvcD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wRGVmYXVsdD5cbiAgICAgICAgICA8YWJwLWV4dGVuc2libGUtZm9ybS1wcm9wXG4gICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KHByb3AubmFtZSlcIlxuICAgICAgICAgICAgW3Byb3BdPVwicHJvcFwiXG4gICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXG4gICAgICAgICAgPjwvYWJwLWV4dGVuc2libGUtZm9ybS1wcm9wPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, PermissionService, } from '@abp/ng.core';
|
|
2
|
-
import { formatDate } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, Inject, Injector, Input, LOCALE_ID, TemplateRef, } from '@angular/core';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import { ExtensionsService } from '../../services/extensions.service';
|
|
6
|
-
import { EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM } from '../../tokens/extensions.token';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@abp/ng.core";
|
|
9
|
-
import * as i2 from "@swimlane/ngx-datatable";
|
|
10
|
-
import * as i3 from "../grid-actions/grid-actions.component";
|
|
11
|
-
import * as i4 from "@abp/ng.theme.shared";
|
|
12
|
-
import * as i5 from "@angular/common";
|
|
13
|
-
const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
|
|
14
|
-
export class ExtensibleTableComponent {
|
|
15
|
-
constructor(locale, config, injector) {
|
|
16
|
-
this.locale = locale;
|
|
17
|
-
this.config = config;
|
|
18
|
-
this.injector = injector;
|
|
19
|
-
this.trackByFn = (_, item) => item.name;
|
|
20
|
-
this.getInjected = injector.get.bind(injector);
|
|
21
|
-
const extensions = injector.get(ExtensionsService);
|
|
22
|
-
const name = injector.get(EXTENSIONS_IDENTIFIER);
|
|
23
|
-
this.propList = extensions.entityProps.get(name).props;
|
|
24
|
-
this.actionList = extensions['entityActions'].get(name)
|
|
25
|
-
.actions;
|
|
26
|
-
const permissionService = injector.get(PermissionService);
|
|
27
|
-
this.hasAtLeastOnePermittedAction =
|
|
28
|
-
permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
|
|
29
|
-
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
|
|
30
|
-
}
|
|
31
|
-
set actionsText(value) {
|
|
32
|
-
this._actionsText = value;
|
|
33
|
-
}
|
|
34
|
-
get actionsText() {
|
|
35
|
-
var _a;
|
|
36
|
-
return (_a = this._actionsText) !== null && _a !== void 0 ? _a : (this.actionList.length > 1 ? 'AbpUi::Actions' : '');
|
|
37
|
-
}
|
|
38
|
-
set actionsColumnWidth(width) {
|
|
39
|
-
this.setColumnWidths(width ? Number(width) : undefined);
|
|
40
|
-
}
|
|
41
|
-
setColumnWidths(actionsColumn) {
|
|
42
|
-
const widths = [actionsColumn];
|
|
43
|
-
this.propList.forEach(({ value: prop }) => {
|
|
44
|
-
widths.push(prop.columnWidth);
|
|
45
|
-
});
|
|
46
|
-
this.columnWidths = widths;
|
|
47
|
-
}
|
|
48
|
-
getDate(value, format) {
|
|
49
|
-
return value ? formatDate(value, format, this.locale) : '';
|
|
50
|
-
}
|
|
51
|
-
getIcon(value) {
|
|
52
|
-
return value
|
|
53
|
-
? '<div class="text-center text-success"><i class="fa fa-check"></i></div>'
|
|
54
|
-
: '<div class="text-center text-danger"><i class="fa fa-times"></i></div>';
|
|
55
|
-
}
|
|
56
|
-
getEnum(rowValue, list) {
|
|
57
|
-
if (!list)
|
|
58
|
-
return rowValue;
|
|
59
|
-
const { key } = list.find(({ value }) => value === rowValue);
|
|
60
|
-
return key;
|
|
61
|
-
}
|
|
62
|
-
getContent(prop, data) {
|
|
63
|
-
return prop.valueResolver(data).pipe(map(value => {
|
|
64
|
-
switch (prop.type) {
|
|
65
|
-
case "boolean" /* Boolean */:
|
|
66
|
-
return this.getIcon(value);
|
|
67
|
-
case "date" /* Date */:
|
|
68
|
-
return this.getDate(value, getShortDateFormat(this.config));
|
|
69
|
-
case "time" /* Time */:
|
|
70
|
-
return this.getDate(value, getShortTimeFormat(this.config));
|
|
71
|
-
case "dateTime" /* DateTime */:
|
|
72
|
-
return this.getDate(value, getShortDateShortTimeFormat(this.config));
|
|
73
|
-
case "enum" /* Enum */:
|
|
74
|
-
return this.getEnum(value, prop.enumList);
|
|
75
|
-
default:
|
|
76
|
-
return value;
|
|
77
|
-
// More types can be handled in the future
|
|
78
|
-
}
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
ngOnChanges({ data }) {
|
|
82
|
-
if (!(data === null || data === void 0 ? void 0 : data.currentValue))
|
|
83
|
-
return;
|
|
84
|
-
this.data = data.currentValue.map((record, index) => {
|
|
85
|
-
this.propList.forEach(prop => {
|
|
86
|
-
const propData = { getInjected: this.getInjected, record, index };
|
|
87
|
-
const value = this.getContent(prop.value, propData);
|
|
88
|
-
const propKey = `_${prop.value.name}`;
|
|
89
|
-
record[propKey] = {
|
|
90
|
-
visible: prop.value.visible(propData),
|
|
91
|
-
value,
|
|
92
|
-
};
|
|
93
|
-
if (prop.value.component) {
|
|
94
|
-
const injector = Injector.create([
|
|
95
|
-
{
|
|
96
|
-
provide: PROP_DATA_STREAM,
|
|
97
|
-
useValue: value,
|
|
98
|
-
},
|
|
99
|
-
], this.injector);
|
|
100
|
-
record[propKey].injector = injector;
|
|
101
|
-
record[propKey].component = prop.value.component;
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
return record;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
ExtensibleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleTableComponent, deps: [{ token: LOCALE_ID }, { token: i1.ConfigStateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
ExtensibleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
|
|
111
|
-
type: Component,
|
|
112
|
-
args: [{
|
|
113
|
-
exportAs: 'abpExtensibleTable',
|
|
114
|
-
selector: 'abp-extensible-table',
|
|
115
|
-
templateUrl: './extensible-table.component.html',
|
|
116
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
117
|
-
}]
|
|
118
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
119
|
-
type: Inject,
|
|
120
|
-
args: [LOCALE_ID]
|
|
121
|
-
}] }, { type: i1.ConfigStateService }, { type: i0.Injector }]; }, propDecorators: { actionsText: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}], data: [{
|
|
124
|
-
type: Input
|
|
125
|
-
}], list: [{
|
|
126
|
-
type: Input
|
|
127
|
-
}], recordsTotal: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], actionsColumnWidth: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], actionsTemplate: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLXRhYmxlL2V4dGVuc2libGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBR1QsV0FBVyxHQUdaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQUV4RixNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQVF6QyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUM2QixNQUFjLEVBQ2pDLE1BQTBCLEVBQzFCLFFBQWtCO1FBRkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNqQyxXQUFNLEdBQU4sTUFB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QUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWdDSSxNQUFNOzJCQUFDLFNBQVM7b0dBNUJmLFdBQVc7c0JBRGQsS0FBSztnQkFRRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sa0JBQWtCO3NCQUE5QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFCUCxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxyXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcclxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBJbmplY3RGbGFncyxcclxuICBJbmplY3Rpb25Ub2tlbixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBMT0NBTEVfSUQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG4gIFR5cGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIsIFBST1BfREFUQV9TVFJFQU0gfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcblxyXG5jb25zdCBERUZBVUxUX0FDVElPTlNfQ09MVU1OX1dJRFRIID0gMTUwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlVGFibGUnLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudDxSID0gYW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFjdGlvbnNUZXh0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FjdGlvbnNUZXh0ID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBhY3Rpb25zVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNUZXh0ID8/ICh0aGlzLmFjdGlvbkxpc3QubGVuZ3RoID4gMSA/ICdBYnBVaTo6QWN0aW9ucycgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkYXRhOiBSW107XHJcbiAgQElucHV0KCkgbGlzdDogTGlzdFNlcnZpY2U7XHJcbiAgQElucHV0KCkgcmVjb3Jkc1RvdGFsOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2V0IGFjdGlvbnNDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuICBASW5wdXQoKSBhY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGdldEluamVjdGVkOiA8VD4odG9rZW46IFR5cGU8VD4gfCBJbmplY3Rpb25Ub2tlbjxUPiwgbm90Rm91bmRWYWx1ZT86IFQsIGZsYWdzPzogSW5qZWN0RmxhZ3MpID0+IFQ7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRoczogbnVtYmVyW107XHJcblxyXG4gIHJlYWRvbmx5IHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgYWN0aW9uTGlzdDogRW50aXR5QWN0aW9uTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgdGhpcy5nZXRJbmplY3RlZCA9IGluamVjdG9yLmdldC5iaW5kKGluamVjdG9yKTtcclxuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBpbmplY3Rvci5nZXQoRXh0ZW5zaW9uc1NlcnZpY2UpO1xyXG4gICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG4gICAgdGhpcy5wcm9wTGlzdCA9IGV4dGVuc2lvbnMuZW50aXR5UHJvcHMuZ2V0KG5hbWUpLnByb3BzO1xyXG4gICAgdGhpcy5hY3Rpb25MaXN0ID0gZXh0ZW5zaW9uc1snZW50aXR5QWN0aW9ucyddLmdldChuYW1lKVxyXG4gICAgICAuYWN0aW9ucyBhcyB1bmtub3duIGFzIEVudGl0eUFjdGlvbkxpc3Q8Uj47XHJcblxyXG4gICAgY29uc3QgcGVybWlzc2lvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gICAgdGhpcy5oYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uID1cclxuICAgICAgcGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMoREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbHVtbldpZHRocyhhY3Rpb25zQ29sdW1uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHdpZHRocyA9IFthY3Rpb25zQ29sdW1uXTtcclxuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICAgIHdpZHRocy5wdXNoKHByb3AuY29sdW1uV2lkdGgpO1xyXG4gICAgfSk7XHJcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0ZSh2YWx1ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB2YWx1ZSA/IGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdCwgdGhpcy5sb2NhbGUpIDogJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEljb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICA/ICc8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1zdWNjZXNzXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT48L2Rpdj4nXHJcbiAgICAgIDogJzxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LWRhbmdlclwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9kaXY+JztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW51bShyb3dWYWx1ZTogYW55LCBsaXN0OiBBcnJheTxBQlAuT3B0aW9uPGFueT4+KSB7XHJcbiAgICBpZiAoIWxpc3QpIHJldHVybiByb3dWYWx1ZTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSBsaXN0LmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHJvd1ZhbHVlKTtcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWNvbih2YWx1ZSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWcpKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRW51bTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bSh2YWx1ZSwgcHJvcC5lbnVtTGlzdCk7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoIWRhdGE/LmN1cnJlbnRWYWx1ZSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICB0aGlzLnByb3BMaXN0LmZvckVhY2gocHJvcCA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcERhdGEgPSB7IGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkLCByZWNvcmQsIGluZGV4IH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDb250ZW50KHByb3AudmFsdWUsIHByb3BEYXRhKTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJvcEtleSA9IGBfJHtwcm9wLnZhbHVlLm5hbWV9YDtcclxuICAgICAgICByZWNvcmRbcHJvcEtleV0gPSB7XHJcbiAgICAgICAgICB2aXNpYmxlOiBwcm9wLnZhbHVlLnZpc2libGUocHJvcERhdGEpLFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAocHJvcC52YWx1ZS5jb21wb25lbnQpIHtcclxuICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPUF9EQVRBX1NUUkVBTSxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJlY29yZFtwcm9wS2V5XS5pbmplY3RvciA9IGluamVjdG9yO1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZ3gtZGF0YXRhYmxlIGRlZmF1bHQgW3Jvd3NdPVwiZGF0YVwiIFtjb3VudF09XCJyZWNvcmRzVG90YWxcIiBbbGlzdF09XCJsaXN0XCI+XHJcbiAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAqbmdJZj1cImFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbilcIlxyXG4gICAgW25hbWVdPVwiYWN0aW9uc1RleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgW21heFdpZHRoXT1cImNvbHVtbldpZHRoc1swXVwiXHJcbiAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVGVtcGxhdGUgfHwgZ3JpZEFjdGlvbnM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JpZEFjdGlvbnM+XHJcbiAgICAgICAgPGFicC1ncmlkLWFjdGlvbnMgW2luZGV4XT1cImlcIiBbcmVjb3JkXT1cInJvd1wiIHRleHQ9XCJBYnBVaTo6QWN0aW9uc1wiPjwvYWJwLWdyaWQtYWN0aW9ucz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcCBvZiBwcm9wTGlzdDsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1tpICsgMV0gfHwgMjAwXCJcclxuICAgICAgW25hbWVdPVwicHJvcC5kaXNwbGF5TmFtZSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKmFicFBlcm1pc3Npb249XCJwcm9wLnBlcm1pc3Npb25cIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dbJ18nICsgcHJvcC5uYW1lXT8udmlzaWJsZVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcm93WydfJyArIHByb3AubmFtZV0uY29tcG9uZW50OyBlbHNlIGNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgcHJvcC5hY3Rpb24gJiYgcHJvcC5hY3Rpb24oeyBnZXRJbmplY3RlZDogZ2V0SW5qZWN0ZWQsIHJlY29yZDogcm93LCBpbmRleDogaSB9KVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICByb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICBpbmplY3Rvcjogcm93WydfJyArIHByb3AubmFtZV0uaW5qZWN0b3JcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZ3gtZGF0YXRhYmxlPlxyXG4iXX0=
|
|
1
|
+
import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, PermissionService, } from '@abp/ng.core';
|
|
2
|
+
import { formatDate } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, Inject, Injector, Input, LOCALE_ID, TemplateRef, } from '@angular/core';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { ExtensionsService } from '../../services/extensions.service';
|
|
6
|
+
import { EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM } from '../../tokens/extensions.token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@abp/ng.core";
|
|
9
|
+
import * as i2 from "@swimlane/ngx-datatable";
|
|
10
|
+
import * as i3 from "../grid-actions/grid-actions.component";
|
|
11
|
+
import * as i4 from "@abp/ng.theme.shared";
|
|
12
|
+
import * as i5 from "@angular/common";
|
|
13
|
+
const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
|
|
14
|
+
export class ExtensibleTableComponent {
|
|
15
|
+
constructor(locale, config, injector) {
|
|
16
|
+
this.locale = locale;
|
|
17
|
+
this.config = config;
|
|
18
|
+
this.injector = injector;
|
|
19
|
+
this.trackByFn = (_, item) => item.name;
|
|
20
|
+
this.getInjected = injector.get.bind(injector);
|
|
21
|
+
const extensions = injector.get(ExtensionsService);
|
|
22
|
+
const name = injector.get(EXTENSIONS_IDENTIFIER);
|
|
23
|
+
this.propList = extensions.entityProps.get(name).props;
|
|
24
|
+
this.actionList = extensions['entityActions'].get(name)
|
|
25
|
+
.actions;
|
|
26
|
+
const permissionService = injector.get(PermissionService);
|
|
27
|
+
this.hasAtLeastOnePermittedAction =
|
|
28
|
+
permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
|
|
29
|
+
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
|
|
30
|
+
}
|
|
31
|
+
set actionsText(value) {
|
|
32
|
+
this._actionsText = value;
|
|
33
|
+
}
|
|
34
|
+
get actionsText() {
|
|
35
|
+
var _a;
|
|
36
|
+
return (_a = this._actionsText) !== null && _a !== void 0 ? _a : (this.actionList.length > 1 ? 'AbpUi::Actions' : '');
|
|
37
|
+
}
|
|
38
|
+
set actionsColumnWidth(width) {
|
|
39
|
+
this.setColumnWidths(width ? Number(width) : undefined);
|
|
40
|
+
}
|
|
41
|
+
setColumnWidths(actionsColumn) {
|
|
42
|
+
const widths = [actionsColumn];
|
|
43
|
+
this.propList.forEach(({ value: prop }) => {
|
|
44
|
+
widths.push(prop.columnWidth);
|
|
45
|
+
});
|
|
46
|
+
this.columnWidths = widths;
|
|
47
|
+
}
|
|
48
|
+
getDate(value, format) {
|
|
49
|
+
return value ? formatDate(value, format, this.locale) : '';
|
|
50
|
+
}
|
|
51
|
+
getIcon(value) {
|
|
52
|
+
return value
|
|
53
|
+
? '<div class="text-center text-success"><i class="fa fa-check"></i></div>'
|
|
54
|
+
: '<div class="text-center text-danger"><i class="fa fa-times"></i></div>';
|
|
55
|
+
}
|
|
56
|
+
getEnum(rowValue, list) {
|
|
57
|
+
if (!list)
|
|
58
|
+
return rowValue;
|
|
59
|
+
const { key } = list.find(({ value }) => value === rowValue);
|
|
60
|
+
return key;
|
|
61
|
+
}
|
|
62
|
+
getContent(prop, data) {
|
|
63
|
+
return prop.valueResolver(data).pipe(map(value => {
|
|
64
|
+
switch (prop.type) {
|
|
65
|
+
case "boolean" /* Boolean */:
|
|
66
|
+
return this.getIcon(value);
|
|
67
|
+
case "date" /* Date */:
|
|
68
|
+
return this.getDate(value, getShortDateFormat(this.config));
|
|
69
|
+
case "time" /* Time */:
|
|
70
|
+
return this.getDate(value, getShortTimeFormat(this.config));
|
|
71
|
+
case "dateTime" /* DateTime */:
|
|
72
|
+
return this.getDate(value, getShortDateShortTimeFormat(this.config));
|
|
73
|
+
case "enum" /* Enum */:
|
|
74
|
+
return this.getEnum(value, prop.enumList);
|
|
75
|
+
default:
|
|
76
|
+
return value;
|
|
77
|
+
// More types can be handled in the future
|
|
78
|
+
}
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
ngOnChanges({ data }) {
|
|
82
|
+
if (!(data === null || data === void 0 ? void 0 : data.currentValue))
|
|
83
|
+
return;
|
|
84
|
+
this.data = data.currentValue.map((record, index) => {
|
|
85
|
+
this.propList.forEach(prop => {
|
|
86
|
+
const propData = { getInjected: this.getInjected, record, index };
|
|
87
|
+
const value = this.getContent(prop.value, propData);
|
|
88
|
+
const propKey = `_${prop.value.name}`;
|
|
89
|
+
record[propKey] = {
|
|
90
|
+
visible: prop.value.visible(propData),
|
|
91
|
+
value,
|
|
92
|
+
};
|
|
93
|
+
if (prop.value.component) {
|
|
94
|
+
const injector = Injector.create([
|
|
95
|
+
{
|
|
96
|
+
provide: PROP_DATA_STREAM,
|
|
97
|
+
useValue: value,
|
|
98
|
+
},
|
|
99
|
+
], this.injector);
|
|
100
|
+
record[propKey].injector = injector;
|
|
101
|
+
record[propKey].component = prop.value.component;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return record;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ExtensibleTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleTableComponent, deps: [{ token: LOCALE_ID }, { token: i1.ConfigStateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
+
ExtensibleTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ExtensibleTableComponent, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\n [name]=\"actionsText | abpLocalization\"\n [maxWidth]=\"columnWidths[0]\"\n [width]=\"columnWidths[0]\"\n [sortable]=\"false\"\n >\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\n <ng-container\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\n ></ng-container>\n <ng-template #gridActions>\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\n </ng-template>\n </ng-template>\n </ngx-datatable-column>\n\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\n <ngx-datatable-column\n [width]=\"columnWidths[i + 1] || 200\"\n [name]=\"prop.displayName | abpLocalization\"\n [prop]=\"prop.name\"\n [sortable]=\"prop.sortable\"\n >\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\n <ng-container *abpPermission=\"prop.permission\">\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\n <div\n *ngIf=\"!row['_' + prop.name].component; else component\"\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\n (click)=\"\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\n \"\n [class.pointer]=\"prop.action\"\n ></div>\n </ng-container>\n <ng-template #component>\n <ng-container\n *ngComponentOutlet=\"\n row['_' + prop.name].component;\n injector: row['_' + prop.name].injector\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-template>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n", components: [{ type: i2.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i3.GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }], directives: [{ type: i4.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { type: i4.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i2.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }], pipes: { "abpLocalization": i1.LocalizationPipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{
|
|
113
|
+
exportAs: 'abpExtensibleTable',
|
|
114
|
+
selector: 'abp-extensible-table',
|
|
115
|
+
templateUrl: './extensible-table.component.html',
|
|
116
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
117
|
+
}]
|
|
118
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
119
|
+
type: Inject,
|
|
120
|
+
args: [LOCALE_ID]
|
|
121
|
+
}] }, { type: i1.ConfigStateService }, { type: i0.Injector }]; }, propDecorators: { actionsText: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], data: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], list: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], recordsTotal: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], actionsColumnWidth: [{
|
|
130
|
+
type: Input
|
|
131
|
+
}], actionsTemplate: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}] } });
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLXRhYmxlL2V4dGVuc2libGUtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBR1QsV0FBVyxHQUdaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQUV4RixNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQVF6QyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUM2QixNQUFjLEVBQ2pDLE1BQTBCLEVBQzFCLFFBQWtCO1FBRkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTG5CLGNBQVMsR0FBbUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBTzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQ3BELE9BQXlDLENBQUM7UUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLDRCQUE0QjtZQUMvQixpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQ2pGLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBOUNELElBQ0ksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksV0FBVzs7UUFDYixPQUFPLE1BQUEsSUFBSSxDQUFDLFlBQVksbUNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBS0QsSUFBYSxrQkFBa0IsQ0FBQyxLQUFhO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFtQ08sZUFBZSxDQUFDLGFBQXFCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBVyxFQUFFLE1BQWM7UUFDekMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTyxPQUFPLENBQUMsS0FBYztRQUM1QixPQUFPLEtBQUs7WUFDVixDQUFDLENBQUMseUVBQXlFO1lBQzNFLENBQUMsQ0FBQyx3RUFBd0UsQ0FBQztJQUMvRSxDQUFDO0lBRU8sT0FBTyxDQUFDLFFBQWEsRUFBRSxJQUE0QjtRQUN6RCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzdELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFtQixFQUFFLElBQWM7UUFDNUMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQjtvQkFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCO29CQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlEO29CQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlEO29CQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFO29CQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QztvQkFDRSxPQUFPLEtBQUssQ0FBQztnQkFDZiwwQ0FBMEM7YUFDM0M7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBaUI7UUFDakMsSUFBSSxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFlBQVksQ0FBQTtZQUFFLE9BQU87UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxRQUFRLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFTLENBQUM7Z0JBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFFcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUc7b0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLEtBQUs7aUJBQ04sQ0FBQztnQkFDRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO29CQUN4QixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUM5Qjt3QkFDRTs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixRQUFRLEVBQUUsS0FBSzt5QkFDaEI7cUJBQ0YsRUFDRCxJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7b0JBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7aUJBQ2xEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3NIQTlIVSx3QkFBd0Isa0JBK0J6QixTQUFTOzBHQS9CUix3QkFBd0IsbVNDMUNyQyxtZ0VBa0RBOzRGRFJhLHdCQUF3QjtrQkFOcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWdDSSxNQUFNOzJCQUFDLFNBQVM7b0dBNUJmLFdBQVc7c0JBRGQsS0FBSztnQkFRRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sa0JBQWtCO3NCQUE5QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBQlAsXG4gIENvbmZpZ1N0YXRlU2VydmljZSxcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxuICBnZXRTaG9ydERhdGVTaG9ydFRpbWVGb3JtYXQsXG4gIGdldFNob3J0VGltZUZvcm1hdCxcbiAgTGlzdFNlcnZpY2UsXG4gIFBlcm1pc3Npb25TZXJ2aWNlLFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdEZsYWdzLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBMT0NBTEVfSUQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcbmltcG9ydCB7IEVudGl0eUFjdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xuaW1wb3J0IHsgRW50aXR5UHJvcCwgRW50aXR5UHJvcExpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LXByb3BzJztcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiwgUFJPUF9EQVRBX1NUUkVBTSB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcblxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcbiAgc2VsZWN0b3I6ICdhYnAtZXh0ZW5zaWJsZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudDxSID0gYW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCBfYWN0aW9uc1RleHQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgc2V0IGFjdGlvbnNUZXh0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xuICB9XG4gIGdldCBhY3Rpb25zVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zVGV4dCA/PyAodGhpcy5hY3Rpb25MaXN0Lmxlbmd0aCA+IDEgPyAnQWJwVWk6OkFjdGlvbnMnIDogJycpO1xuICB9XG5cbiAgQElucHV0KCkgZGF0YTogUltdO1xuICBASW5wdXQoKSBsaXN0OiBMaXN0U2VydmljZTtcbiAgQElucHV0KCkgcmVjb3Jkc1RvdGFsOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zQ29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xuICAgIHRoaXMuc2V0Q29sdW1uV2lkdGhzKHdpZHRoID8gTnVtYmVyKHdpZHRoKSA6IHVuZGVmaW5lZCk7XG4gIH1cbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldEluamVjdGVkOiA8VD4odG9rZW46IFR5cGU8VD4gfCBJbmplY3Rpb25Ub2tlbjxUPiwgbm90Rm91bmRWYWx1ZT86IFQsIGZsYWdzPzogSW5qZWN0RmxhZ3MpID0+IFQ7XG5cbiAgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbjogYm9vbGVhbjtcblxuICByZWFkb25seSBjb2x1bW5XaWR0aHM6IG51bWJlcltdO1xuXG4gIHJlYWRvbmx5IHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxSPjtcblxuICByZWFkb25seSBhY3Rpb25MaXN0OiBFbnRpdHlBY3Rpb25MaXN0PFI+O1xuXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eVByb3A8Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBsb2NhbGU6IHN0cmluZyxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICB0aGlzLmdldEluamVjdGVkID0gaW5qZWN0b3IuZ2V0LmJpbmQoaW5qZWN0b3IpO1xuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBpbmplY3Rvci5nZXQoRXh0ZW5zaW9uc1NlcnZpY2UpO1xuICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcbiAgICB0aGlzLnByb3BMaXN0ID0gZXh0ZW5zaW9ucy5lbnRpdHlQcm9wcy5nZXQobmFtZSkucHJvcHM7XG4gICAgdGhpcy5hY3Rpb25MaXN0ID0gZXh0ZW5zaW9uc1snZW50aXR5QWN0aW9ucyddLmdldChuYW1lKVxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xuXG4gICAgY29uc3QgcGVybWlzc2lvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XG4gICAgICBwZXJtaXNzaW9uU2VydmljZS5maWx0ZXJJdGVtc0J5UG9saWN5KFxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcbiAgICAgICkubGVuZ3RoID4gMDtcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyhERUZBVUxUX0FDVElPTlNfQ09MVU1OX1dJRFRIKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29sdW1uV2lkdGhzKGFjdGlvbnNDb2x1bW46IG51bWJlcikge1xuICAgIGNvbnN0IHdpZHRocyA9IFthY3Rpb25zQ29sdW1uXTtcbiAgICB0aGlzLnByb3BMaXN0LmZvckVhY2goKHsgdmFsdWU6IHByb3AgfSkgPT4ge1xuICAgICAgd2lkdGhzLnB1c2gocHJvcC5jb2x1bW5XaWR0aCk7XG4gICAgfSk7XG4gICAgKHRoaXMuY29sdW1uV2lkdGhzIGFzIGFueSkgPSB3aWR0aHM7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGUodmFsdWU6IERhdGUsIGZvcm1hdDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlID8gZm9ybWF0RGF0ZSh2YWx1ZSwgZm9ybWF0LCB0aGlzLmxvY2FsZSkgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWNvbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgPyAnPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtc3VjY2Vzc1wiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+PC9kaXY+J1xuICAgICAgOiAnPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtZGFuZ2VyXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiPjwvaT48L2Rpdj4nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbnVtKHJvd1ZhbHVlOiBhbnksIGxpc3Q6IEFycmF5PEFCUC5PcHRpb248YW55Pj4pIHtcbiAgICBpZiAoIWxpc3QpIHJldHVybiByb3dWYWx1ZTtcbiAgICBjb25zdCB7IGtleSB9ID0gbGlzdC5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSByb3dWYWx1ZSk7XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcbiAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEljb24odmFsdWUpO1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWcpKTtcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVTaG9ydFRpbWVGb3JtYXQodGhpcy5jb25maWcpKTtcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5FbnVtOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bSh2YWx1ZSwgcHJvcC5lbnVtTGlzdCk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFkYXRhPy5jdXJyZW50VmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDb250ZW50KHByb3AudmFsdWUsIHByb3BEYXRhKTtcblxuICAgICAgICBjb25zdCBwcm9wS2V5ID0gYF8ke3Byb3AudmFsdWUubmFtZX1gO1xuICAgICAgICByZWNvcmRbcHJvcEtleV0gPSB7XG4gICAgICAgICAgdmlzaWJsZTogcHJvcC52YWx1ZS52aXNpYmxlKHByb3BEYXRhKSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHByb3AudmFsdWUuY29tcG9uZW50KSB7XG4gICAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBQUk9QX0RBVEFfU1RSRUFNLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5neC1kYXRhdGFibGUgZGVmYXVsdCBbcm93c109XCJkYXRhXCIgW2NvdW50XT1cInJlY29yZHNUb3RhbFwiIFtsaXN0XT1cImxpc3RcIj5cbiAgPG5neC1kYXRhdGFibGUtY29sdW1uXG4gICAgKm5nSWY9XCJhY3Rpb25zVGVtcGxhdGUgfHwgKGFjdGlvbkxpc3QubGVuZ3RoICYmIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb24pXCJcbiAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXG4gICAgW21heFdpZHRoXT1cImNvbHVtbldpZHRoc1swXVwiXG4gICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1swXVwiXG4gICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVGVtcGxhdGUgfHwgZ3JpZEFjdGlvbnM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpIH1cIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cbiAgICAgICAgPGFicC1ncmlkLWFjdGlvbnMgW2luZGV4XT1cImlcIiBbcmVjb3JkXT1cInJvd1wiIHRleHQ9XCJBYnBVaTo6QWN0aW9uc1wiPjwvYWJwLWdyaWQtYWN0aW9ucz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIHByb3BMaXN0OyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cbiAgICAgIFt3aWR0aF09XCJjb2x1bW5XaWR0aHNbaSArIDFdIHx8IDIwMFwiXG4gICAgICBbbmFtZV09XCJwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uXCJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXG4gICAgICBbc29ydGFibGVdPVwicHJvcC5zb3J0YWJsZVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwicHJvcC5wZXJtaXNzaW9uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52aXNpYmxlXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudDsgZWxzZSBjb21wb25lbnRcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgIHByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKHsgZ2V0SW5qZWN0ZWQ6IGdldEluamVjdGVkLCByZWNvcmQ6IHJvdywgaW5kZXg6IGkgfSlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICByb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgaW5qZWN0b3I6IHJvd1snXycgKyBwcm9wLm5hbWVdLmluamVjdG9yXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZ3gtZGF0YXRhYmxlPlxuIl19
|