@abp/ng.components 9.0.4 → 9.1.0-rc.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.
Files changed (69) hide show
  1. package/extensible/lib/components/abstract-actions/abstract-actions.component.d.ts +1 -1
  2. package/fesm2022/abp-ng.components-chart.js.mjs +10 -9
  3. package/fesm2022/abp-ng.components-chart.js.mjs.map +1 -1
  4. package/fesm2022/abp-ng.components-extensible.mjs +78 -80
  5. package/fesm2022/abp-ng.components-extensible.mjs.map +1 -1
  6. package/fesm2022/abp-ng.components-page.mjs +31 -24
  7. package/fesm2022/abp-ng.components-page.mjs.map +1 -1
  8. package/fesm2022/abp-ng.components-tree.mjs +17 -15
  9. package/fesm2022/abp-ng.components-tree.mjs.map +1 -1
  10. package/package.json +4 -14
  11. package/esm2022/abp-ng.components.mjs +0 -5
  12. package/esm2022/chart.js/abp-ng.components-chart.js.mjs +0 -5
  13. package/esm2022/chart.js/chart.component.mjs +0 -141
  14. package/esm2022/chart.js/chart.module.mjs +0 -19
  15. package/esm2022/chart.js/public-api.mjs +0 -4
  16. package/esm2022/chart.js/widget-utils.mjs +0 -11
  17. package/esm2022/extensible/abp-ng.components-extensible.mjs +0 -5
  18. package/esm2022/extensible/lib/components/abstract-actions/abstract-actions.component.mjs +0 -25
  19. package/esm2022/extensible/lib/components/date-time-picker/extensible-date-time-picker.component.mjs +0 -119
  20. package/esm2022/extensible/lib/components/extensible-form/extensible-form-prop.component.mjs +0 -172
  21. package/esm2022/extensible/lib/components/extensible-form/extensible-form.component.mjs +0 -73
  22. package/esm2022/extensible/lib/components/extensible-table/extensible-table.component.mjs +0 -171
  23. package/esm2022/extensible/lib/components/grid-actions/grid-actions.component.mjs +0 -49
  24. package/esm2022/extensible/lib/components/index.mjs +0 -8
  25. package/esm2022/extensible/lib/components/page-toolbar/page-toolbar.component.mjs +0 -45
  26. package/esm2022/extensible/lib/constants/extra-properties.mjs +0 -2
  27. package/esm2022/extensible/lib/directives/prop-data.directive.mjs +0 -42
  28. package/esm2022/extensible/lib/enums/components.mjs +0 -2
  29. package/esm2022/extensible/lib/enums/props.enum.mjs +0 -2
  30. package/esm2022/extensible/lib/extensible.module.mjs +0 -80
  31. package/esm2022/extensible/lib/models/actions.mjs +0 -48
  32. package/esm2022/extensible/lib/models/entity-actions.mjs +0 -33
  33. package/esm2022/extensible/lib/models/entity-props.mjs +0 -45
  34. package/esm2022/extensible/lib/models/form-props.mjs +0 -78
  35. package/esm2022/extensible/lib/models/internal/object-extensions.mjs +0 -2
  36. package/esm2022/extensible/lib/models/object-extensions.mjs +0 -3
  37. package/esm2022/extensible/lib/models/props.mjs +0 -55
  38. package/esm2022/extensible/lib/models/toolbar-actions.mjs +0 -44
  39. package/esm2022/extensible/lib/pipes/create-injector.pipe.mjs +0 -37
  40. package/esm2022/extensible/lib/services/extensible-form-prop.service.mjs +0 -77
  41. package/esm2022/extensible/lib/services/extensions.service.mjs +0 -24
  42. package/esm2022/extensible/lib/tokens/extensible-form-view-provider.token.mjs +0 -3
  43. package/esm2022/extensible/lib/tokens/extensions.token.mjs +0 -12
  44. package/esm2022/extensible/lib/utils/actions.util.mjs +0 -9
  45. package/esm2022/extensible/lib/utils/enum.util.mjs +0 -42
  46. package/esm2022/extensible/lib/utils/factory.util.mjs +0 -4
  47. package/esm2022/extensible/lib/utils/form-props.util.mjs +0 -55
  48. package/esm2022/extensible/lib/utils/localization.util.mjs +0 -13
  49. package/esm2022/extensible/lib/utils/model.utils.mjs +0 -2
  50. package/esm2022/extensible/lib/utils/props.util.mjs +0 -51
  51. package/esm2022/extensible/lib/utils/state.util.mjs +0 -132
  52. package/esm2022/extensible/lib/utils/typeahead.util.mjs +0 -53
  53. package/esm2022/extensible/lib/utils/validation.util.mjs +0 -11
  54. package/esm2022/extensible/public-api.mjs +0 -28
  55. package/esm2022/page/abp-ng.components-page.mjs +0 -5
  56. package/esm2022/page/page-part.directive.mjs +0 -76
  57. package/esm2022/page/page-parts.component.mjs +0 -45
  58. package/esm2022/page/page.component.mjs +0 -54
  59. package/esm2022/page/page.module.mjs +0 -37
  60. package/esm2022/page/public-api.mjs +0 -5
  61. package/esm2022/public-api.mjs +0 -5
  62. package/esm2022/tree/abp-ng.components-tree.mjs +0 -5
  63. package/esm2022/tree/lib/components/tree.component.mjs +0 -153
  64. package/esm2022/tree/lib/disable-tree-style-loading.token.mjs +0 -3
  65. package/esm2022/tree/lib/templates/expanded-icon-template.directive.mjs +0 -16
  66. package/esm2022/tree/lib/templates/tree-node-template.directive.mjs +0 -16
  67. package/esm2022/tree/lib/tree.module.mjs +0 -25
  68. package/esm2022/tree/lib/utils/nz-tree-adapter.mjs +0 -92
  69. package/esm2022/tree/public-api.mjs +0 -7
@@ -1,171 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, TemplateRef, } from '@angular/core';
2
- import { AsyncPipe, formatDate, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
3
- import { filter, map } from 'rxjs';
4
- import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
5
- import { NgxDatatableModule } from '@swimlane/ngx-datatable';
6
- import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, LocalizationModule, PermissionDirective, PermissionService, } from '@abp/ng.core';
7
- import { AbpVisibleDirective, NgxDatatableDefaultDirective, NgxDatatableListDirective, } from '@abp/ng.theme.shared';
8
- import { ExtensionsService } from '../../services/extensions.service';
9
- import { ENTITY_PROP_TYPE_CLASSES, EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM, } from '../../tokens/extensions.token';
10
- import { GridActionsComponent } from '../grid-actions/grid-actions.component';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@swimlane/ngx-datatable";
13
- import * as i2 from "@abp/ng.core";
14
- const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
15
- export class ExtensibleTableComponent {
16
- #injector;
17
- set actionsText(value) {
18
- this._actionsText = value;
19
- }
20
- get actionsText() {
21
- return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');
22
- }
23
- set actionsColumnWidth(width) {
24
- this.setColumnWidths(width ? Number(width) : undefined);
25
- }
26
- constructor() {
27
- this.#injector = inject(Injector);
28
- this.getInjected = this.#injector.get.bind(this.#injector);
29
- this.cdr = inject(ChangeDetectorRef);
30
- this.locale = inject(LOCALE_ID);
31
- this.config = inject(ConfigStateService);
32
- this.entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);
33
- this.permissionService = inject(PermissionService);
34
- this.tableActivate = new EventEmitter();
35
- this.trackByFn = (_, item) => item.name;
36
- const extensions = this.#injector.get(ExtensionsService);
37
- const name = this.#injector.get(EXTENSIONS_IDENTIFIER);
38
- this.propList = extensions.entityProps.get(name).props;
39
- this.actionList = extensions['entityActions'].get(name)
40
- .actions;
41
- this.hasAtLeastOnePermittedAction =
42
- this.permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
43
- this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
44
- }
45
- setColumnWidths(actionsColumn) {
46
- const widths = [actionsColumn];
47
- this.propList.forEach(({ value: prop }) => {
48
- widths.push(prop.columnWidth);
49
- });
50
- this.columnWidths = widths;
51
- }
52
- getDate(value, format) {
53
- return value && format ? formatDate(value, format, this.locale) : '';
54
- }
55
- getIcon(value) {
56
- return value
57
- ? '<div class="text-success"><i class="fa fa-check" aria-hidden="true"></i></div>'
58
- : '<div class="text-danger"><i class="fa fa-times" aria-hidden="true"></i></div>';
59
- }
60
- getEnum(rowValue, list) {
61
- if (!list || list.length < 1)
62
- return rowValue;
63
- const { key } = list.find(({ value }) => value === rowValue) || {};
64
- return key;
65
- }
66
- getContent(prop, data) {
67
- return prop.valueResolver(data).pipe(map(value => {
68
- switch (prop.type) {
69
- case "boolean" /* ePropType.Boolean */:
70
- return this.getIcon(value);
71
- case "date" /* ePropType.Date */:
72
- return this.getDate(value, getShortDateFormat(this.config));
73
- case "time" /* ePropType.Time */:
74
- return this.getDate(value, getShortTimeFormat(this.config));
75
- case "datetime" /* ePropType.DateTime */:
76
- return this.getDate(value, getShortDateShortTimeFormat(this.config));
77
- case "enum" /* ePropType.Enum */:
78
- return this.getEnum(value, prop.enumList || []);
79
- default:
80
- return value;
81
- // More types can be handled in the future
82
- }
83
- }));
84
- }
85
- ngOnChanges({ data }) {
86
- if (!data?.currentValue)
87
- return;
88
- if (data.currentValue.length < 1) {
89
- this.list.totalCount = this.recordsTotal;
90
- }
91
- this.data = data.currentValue.map((record, index) => {
92
- this.propList.forEach(prop => {
93
- const propData = { getInjected: this.getInjected, record, index };
94
- const value = this.getContent(prop.value, propData);
95
- const propKey = `_${prop.value.name}`;
96
- record[propKey] = {
97
- visible: prop.value.visible(propData),
98
- value,
99
- };
100
- if (prop.value.component) {
101
- record[propKey].injector = Injector.create({
102
- providers: [
103
- {
104
- provide: PROP_DATA_STREAM,
105
- useValue: value,
106
- },
107
- ],
108
- parent: this.#injector,
109
- });
110
- record[propKey].component = prop.value.component;
111
- }
112
- });
113
- return record;
114
- });
115
- }
116
- isVisibleActions(rowData) {
117
- const actions = this.actionList.toArray();
118
- const visibleActions = actions.filter(action => {
119
- const { visible, permission } = action;
120
- let isVisible = true;
121
- let hasPermission = true;
122
- if (visible) {
123
- isVisible = visible({ record: rowData, getInjected: this.getInjected });
124
- }
125
- if (permission) {
126
- hasPermission = this.permissionService.getGrantedPolicy(permission);
127
- }
128
- return isVisible && hasPermission;
129
- });
130
- return visibleActions.length > 0;
131
- }
132
- ngAfterViewInit() {
133
- this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => {
134
- this.data = [];
135
- this.cdr.markForCheck();
136
- });
137
- }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: ExtensibleTableComponent, isStandalone: true, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, outputs: { tableActivate: "tableActivate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal\"\r\n [list]=\"list\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n>\r\n @if (actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)) {\r\n <ngx-datatable-column\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n @if (isVisibleActions(row)) {\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n }\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @for (prop of propList; track prop.name; let i = $index) {\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template ngx-datatable-header-template let-column=\"column\">\r\n @if (prop.tooltip) {\r\n <span\r\n [ngbTooltip]=\"prop.tooltip.text | abpLocalization\"\r\n [placement]=\"prop.tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n } @else {\r\n {{ column.name }}\r\n }\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n @if (!row['_' + prop.name].component) {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async)\r\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [ngClass]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n } @else {\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n</ngx-datatable>\r\n", dependencies: [{ kind: "directive", type: AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "ngmodule", type: NgxDatatableModule }, { kind: "component", type: i1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i1.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"] }, { kind: "directive", type: i1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
- }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
142
- type: Component,
143
- args: [{ exportAs: 'abpExtensibleTable', selector: 'abp-extensible-table', standalone: true, imports: [
144
- AbpVisibleDirective,
145
- NgxDatatableModule,
146
- GridActionsComponent,
147
- NgbTooltip,
148
- NgxDatatableDefaultDirective,
149
- NgxDatatableListDirective,
150
- PermissionDirective,
151
- LocalizationModule,
152
- AsyncPipe,
153
- NgTemplateOutlet,
154
- NgComponentOutlet,
155
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ngx-datatable\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal\"\r\n [list]=\"list\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n>\r\n @if (actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)) {\r\n <ngx-datatable-column\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n @if (isVisibleActions(row)) {\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n }\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @for (prop of propList; track prop.name; let i = $index) {\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template ngx-datatable-header-template let-column=\"column\">\r\n @if (prop.tooltip) {\r\n <span\r\n [ngbTooltip]=\"prop.tooltip.text | abpLocalization\"\r\n [placement]=\"prop.tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n } @else {\r\n {{ column.name }}\r\n }\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n @if (!row['_' + prop.name].component) {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async)\r\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [ngClass]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n } @else {\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n</ngx-datatable>\r\n" }]
156
- }], ctorParameters: () => [], propDecorators: { actionsText: [{
157
- type: Input
158
- }], data: [{
159
- type: Input
160
- }], list: [{
161
- type: Input
162
- }], recordsTotal: [{
163
- type: Input
164
- }], actionsColumnWidth: [{
165
- type: Input
166
- }], actionsTemplate: [{
167
- type: Input
168
- }], tableActivate: [{
169
- type: Output
170
- }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0YsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLHNCQUFz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QUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIGZvcm1hdERhdGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFCUCxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxyXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcclxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUsXHJcbiAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFicFZpc2libGVEaXJlY3RpdmUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIE5nYlRvb2x0aXAsXHJcbiAgICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcmVhZG9ubHkgZ2V0SW5qZWN0ZWQgPSB0aGlzLiNpbmplY3Rvci5nZXQuYmluZCh0aGlzLiNpbmplY3Rvcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGlvbnNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRhdGEhOiBSW107XHJcbiAgQElucHV0KCkgbGlzdCE6IExpc3RTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbCE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2V0IGFjdGlvbnNDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHRhYmxlQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRocyE6IG51bWJlcltdO1xyXG5cclxuICByZWFkb25seSBwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eVByb3A8Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMoREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbHVtbldpZHRocyhhY3Rpb25zQ29sdW1uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGNvbnN0IHdpZHRocyA9IFthY3Rpb25zQ29sdW1uXTtcclxuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICAgIHdpZHRocy5wdXNoKHByb3AuY29sdW1uV2lkdGgpO1xyXG4gICAgfSk7XHJcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF0ZSh2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCwgZm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiB2YWx1ZSAmJiBmb3JtYXQgPyBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIHRoaXMubG9jYWxlKSA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgPyAnPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+J1xyXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2Pic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudW0ocm93VmFsdWU6IGFueSwgbGlzdDogQXJyYXk8QUJQLk9wdGlvbjxhbnk+Pikge1xyXG4gICAgaWYgKCFsaXN0IHx8IGxpc3QubGVuZ3RoIDwgMSkgcmV0dXJuIHJvd1ZhbHVlO1xyXG4gICAgY29uc3QgeyBrZXkgfSA9IGxpc3QuZmluZCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSA9PT0gcm93VmFsdWUpIHx8IHt9O1xyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHByb3AudmFsdWVSZXNvbHZlcihkYXRhKS5waXBlKFxyXG4gICAgICBtYXAodmFsdWUgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0RGF0ZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuVGltZTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5FbnVtOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbnVtKHZhbHVlLCBwcm9wLmVudW1MaXN0IHx8IFtdKTtcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgIC8vIE1vcmUgdHlwZXMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIGZ1dHVyZVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghZGF0YT8uY3VycmVudFZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgaWYgKGRhdGEuY3VycmVudFZhbHVlLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5saXN0LnRvdGFsQ291bnQgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhLmN1cnJlbnRWYWx1ZS5tYXAoKHJlY29yZDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaChwcm9wID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldENvbnRlbnQocHJvcC52YWx1ZSwgcHJvcERhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9wS2V5ID0gYF8ke3Byb3AudmFsdWUubmFtZX1gO1xyXG4gICAgICAgIHJlY29yZFtwcm9wS2V5XSA9IHtcclxuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChwcm9wLnZhbHVlLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPUF9EQVRBX1NUUkVBTSxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuI2luamVjdG9yLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZWNvcmRbcHJvcEtleV0uY29tcG9uZW50ID0gcHJvcC52YWx1ZS5jb21wb25lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiByZWNvcmQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzVmlzaWJsZUFjdGlvbnMocm93RGF0YTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25MaXN0LnRvQXJyYXkoKTtcclxuICAgIGNvbnN0IHZpc2libGVBY3Rpb25zID0gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IHtcclxuICAgICAgY29uc3QgeyB2aXNpYmxlLCBwZXJtaXNzaW9uIH0gPSBhY3Rpb247XHJcblxyXG4gICAgICBsZXQgaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGV0IGhhc1Blcm1pc3Npb24gPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKHZpc2libGUpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSB2aXNpYmxlKHsgcmVjb3JkOiByb3dEYXRhLCBnZXRJbmplY3RlZDogdGhpcy5nZXRJbmplY3RlZCB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICBoYXNQZXJtaXNzaW9uID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5KHBlcm1pc3Npb24pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXNWaXNpYmxlICYmIGhhc1Blcm1pc3Npb247XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdD8ucmVxdWVzdFN0YXR1cyQ/LnBpcGUoZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgPT09ICdsb2FkaW5nJykpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bmd4LWRhdGF0YWJsZVxyXG4gIGRlZmF1bHRcclxuICBbcm93c109XCJkYXRhXCJcclxuICBbY291bnRdPVwicmVjb3Jkc1RvdGFsXCJcclxuICBbbGlzdF09XCJsaXN0XCJcclxuICAoYWN0aXZhdGUpPVwidGFibGVBY3RpdmF0ZS5lbWl0KCRldmVudClcIlxyXG4+XHJcbiAgQGlmIChhY3Rpb25zVGVtcGxhdGUgfHwgKGFjdGlvbkxpc3QubGVuZ3RoICYmIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb24pKSB7XHJcbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgW25hbWVdPVwiYWN0aW9uc1RleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICBbbWF4V2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1swXVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZSB8fCBncmlkQWN0aW9uczsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JpZEFjdGlvbnM+XHJcbiAgICAgICAgICBAaWYgKGlzVmlzaWJsZUFjdGlvbnMocm93KSkge1xyXG4gICAgICAgICAgICA8YWJwLWdyaWQtYWN0aW9ucyBbaW5kZXhdPVwiaVwiIFtyZWNvcmRdPVwicm93XCIgdGV4dD1cIkFicFVpOjpBY3Rpb25zXCI+PC9hYnAtZ3JpZC1hY3Rpb25zPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAZm9yIChwcm9wIG9mIHByb3BMaXN0OyB0cmFjayBwcm9wLm5hbWU7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgKmFicFZpc2libGU9XCJwcm9wLmNvbHVtblZpc2libGUoZ2V0SW5qZWN0ZWQpXCJcclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1tpICsgMV0gfHwgMjAwXCJcclxuICAgICAgW25hbWVdPVwicHJvcC5kaXNwbGF5TmFtZSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICAgICAgICBAaWYgKHByb3AudG9vbHRpcCkge1xyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbcGxhY2VtZW50XT1cInByb3AudG9vbHRpcC5wbGFjZW1lbnQgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19IDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICB7eyBjb2x1bW4ubmFtZSB9fVxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKmFicFBlcm1pc3Npb249XCJwcm9wLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmFicFZpc2libGU9XCJyb3dbJ18nICsgcHJvcC5uYW1lXT8udmlzaWJsZVwiPlxyXG4gICAgICAgICAgICBAaWYgKCFyb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxyXG4gICAgICAgICAgICAgICAgICAhcHJvcC5pc0V4dHJhXHJcbiAgICAgICAgICAgICAgICAgICAgPyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoJzo6JyArIChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYykgfCBhYnBMb2NhbGl6YXRpb24pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbih7IGdldEluamVjdGVkOiBnZXRJbmplY3RlZCwgcmVjb3JkOiByb3csIGluZGV4OiBpIH0pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZW50aXR5UHJvcFR5cGVDbGFzc2VzW3Byb3AudHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgIHJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IHJvd1snXycgKyBwcm9wLm5hbWVdLmluamVjdG9yXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuPC9uZ3gtZGF0YXRhYmxlPlxyXG4iXX0=
@@ -1,49 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Injector, Input, } from '@angular/core';
2
- import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
3
- import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
4
- import { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
5
- import { LocalizationModule, PermissionDirective } from '@abp/ng.core';
6
- import { EllipsisDirective } from '@abp/ng.theme.shared';
7
- import { NgClass, NgTemplateOutlet } from '@angular/common';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ng-bootstrap/ng-bootstrap";
10
- import * as i2 from "@abp/ng.core";
11
- export class GridActionsComponent extends AbstractActionsComponent {
12
- constructor(injector) {
13
- super(injector);
14
- this.icon = 'fa fa-cog';
15
- this.text = '';
16
- this.trackByFn = (_, item) => item.text;
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: GridActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: GridActionsComponent, isStandalone: true, selector: "abp-grid-actions", inputs: { icon: "icon", index: "index", text: "text" }, providers: [
20
- {
21
- provide: EXTENSIONS_ACTION_TYPE,
22
- useValue: 'entityActions',
23
- },
24
- ], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "@if (actionList.length > 1) {\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n @for (action of actionList; track action.text) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (actionList.length === 1) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n ></ng-container>\r\n}\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n @if (action.visible(data)) {\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon && !action.showOnlyIcon\"></i>\r\n @if (!action.showOnlyIcon) {\r\n @if (action.icon) {\r\n <span>{{ action.text | abpLocalization }}</span>\r\n } @else {\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n @if (action.visible(data)) {\r\n @if (action.tooltip) {\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n [ngbTooltip]=\"action.tooltip.text | abpLocalization\"\r\n [placement]=\"action.tooltip.placement || 'auto'\"\r\n triggers=\"hover\"\r\n container=\"body\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n } @else {\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n }\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: GridActionsComponent, decorators: [{
27
- type: Component,
28
- args: [{ exportAs: 'abpGridActions', standalone: true, imports: [
29
- NgbDropdownModule,
30
- EllipsisDirective,
31
- PermissionDirective,
32
- NgClass,
33
- LocalizationModule,
34
- NgTemplateOutlet,
35
- NgbTooltipModule,
36
- ], selector: 'abp-grid-actions', providers: [
37
- {
38
- provide: EXTENSIONS_ACTION_TYPE,
39
- useValue: 'entityActions',
40
- },
41
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (actionList.length > 1) {\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n @for (action of actionList; track action.text) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (actionList.length === 1) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n ></ng-container>\r\n}\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n @if (action.visible(data)) {\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon && !action.showOnlyIcon\"></i>\r\n @if (!action.showOnlyIcon) {\r\n @if (action.icon) {\r\n <span>{{ action.text | abpLocalization }}</span>\r\n } @else {\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n @if (action.visible(data)) {\r\n @if (action.tooltip) {\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n [ngbTooltip]=\"action.tooltip.text | abpLocalization\"\r\n [placement]=\"action.tooltip.placement || 'auto'\"\r\n triggers=\"hover\"\r\n container=\"body\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n } @else {\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n }\r\n }\r\n</ng-template>\r\n" }]
42
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { icon: [{
43
- type: Input
44
- }], index: [{
45
- type: Input
46
- }], text: [{
47
- type: Input
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBd0I1RCxNQUFNLE9BQU8sb0JBQThCLFNBQVEsd0JBQTZDO0lBUzlGLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBVFQsU0FBSSxHQUFHLFdBQVcsQ0FBQztRQUluQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsY0FBUyxHQUFxQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFJOUUsQ0FBQzs4R0FYVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1SEFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixRQUFRLEVBQUUsZUFBZTthQUMxQjtTQUNGLCtFQ2xDSCw0ekZBd0ZBLDJDRHJFSSxpQkFBaUIsbW5CQUNqQixpQkFBaUIsa0hBQ2pCLG1CQUFtQiwwSEFDbkIsT0FBTyxtRkFDUCxrQkFBa0IscUdBQ2xCLGdCQUFnQixtSkFDaEIsZ0JBQWdCOzsyRkFZUCxvQkFBb0I7a0JBdEJoQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7cUJBQ2pCLFlBQ1Msa0JBQWtCLGFBRWpCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxlQUFlO3lCQUMxQjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs2RUFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUVZLEtBQUs7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24sIEVudGl0eUFjdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0FDVElPTl9UWVBFIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1hY3Rpb25zL2Fic3RyYWN0LWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUsIE5nYlRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSwgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEVsbGlwc2lzRGlyZWN0aXZlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwR3JpZEFjdGlvbnMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbiAgICBFbGxpcHNpc0RpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIE5nYlRvb2x0aXBNb2R1bGUsXHJcbiAgXSxcclxuICBzZWxlY3RvcjogJ2FicC1ncmlkLWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0FDVElPTl9UWVBFLFxyXG4gICAgICB1c2VWYWx1ZTogJ2VudGl0eUFjdGlvbnMnLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZEFjdGlvbnNDb21wb25lbnQ8UiA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQ8RW50aXR5QWN0aW9uTGlzdDxSPj4ge1xyXG4gIEBJbnB1dCgpIGljb24gPSAnZmEgZmEtY29nJztcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRleHQgPSAnJztcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5QWN0aW9uPFI+PiA9IChfLCBpdGVtKSA9PiBpdGVtLnRleHQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGFjdGlvbkxpc3QubGVuZ3RoID4gMSkge1xyXG4gIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICA+XHJcbiAgICAgIDxpIFtuZ0NsYXNzXT1cImljb25cIiBbY2xhc3MubWUtMV09XCJpY29uXCI+PC9pPnt7IHRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25MaXN0OyB0cmFjayBhY3Rpb24udGV4dCkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3BEb3duQnRuSXRlbVRtcFwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGFjdGlvbiB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcblxyXG5AaWYgKGFjdGlvbkxpc3QubGVuZ3RoID09PSAxKSB7XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnRuVG1wXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYWN0aW9uTGlzdC5nZXQoMCkudmFsdWUgfVwiXHJcbiAgPjwvbmctY29udGFpbmVyPlxyXG59XHJcblxyXG48bmctdGVtcGxhdGUgI2Ryb3BEb3duQnRuSXRlbVRtcCBsZXQtYWN0aW9uPlxyXG4gIEBpZiAoYWN0aW9uLnZpc2libGUoZGF0YSkpIHtcclxuICAgIDxidXR0b25cclxuICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIlxyXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbihkYXRhKVwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Db250ZW50VG1wOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aW9uIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvbkNvbnRlbnRUbXAgbGV0LWFjdGlvbj5cclxuICA8aSBbbmdDbGFzc109XCJhY3Rpb24uaWNvblwiIFtjbGFzcy5tZS0xXT1cImFjdGlvbi5pY29uICYmICFhY3Rpb24uc2hvd09ubHlJY29uXCI+PC9pPlxyXG4gIEBpZiAoIWFjdGlvbi5zaG93T25seUljb24pIHtcclxuICAgIEBpZiAoYWN0aW9uLmljb24pIHtcclxuICAgICAgPHNwYW4+e3sgYWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBhYnBFbGxpcHNpcz57eyBhY3Rpb24udGV4dCB8IGFicExvY2FsaXphdGlvbiB9fTwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnRuVG1wIGxldC1hY3Rpb24+XHJcbiAgQGlmIChhY3Rpb24udmlzaWJsZShkYXRhKSkge1xyXG4gICAgQGlmIChhY3Rpb24udG9vbHRpcCkge1xyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtjbGFzc109XCJhY3Rpb24uYnRuQ2xhc3NcIlxyXG4gICAgICAgIFtzdHlsZV09XCJhY3Rpb24uYnRuU3R5bGVcIlxyXG4gICAgICAgIFtuZ2JUb29sdGlwXT1cImFjdGlvbi50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtwbGFjZW1lbnRdPVwiYWN0aW9uLnRvb2x0aXAucGxhY2VtZW50IHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgdHJpZ2dlcnM9XCJob3ZlclwiXHJcbiAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkNvbnRlbnRUbXA7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhY3Rpb24gfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtjbGFzc109XCJhY3Rpb24uYnRuQ2xhc3NcIlxyXG4gICAgICAgIFtzdHlsZV09XCJhY3Rpb24uYnRuU3R5bGVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Db250ZW50VG1wOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aW9uIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,8 +0,0 @@
1
- export * from './abstract-actions/abstract-actions.component';
2
- export * from './extensible-form/extensible-form.component';
3
- export * from './extensible-form/extensible-form-prop.component';
4
- export * from './extensible-table/extensible-table.component';
5
- export * from './date-time-picker/extensible-date-time-picker.component';
6
- export * from './grid-actions/grid-actions.component';
7
- export * from './page-toolbar/page-toolbar.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9leHRlbnNpYmxlLXRhYmxlL2V4dGVuc2libGUtdGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyL2V4dGVuc2libGUtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdlLXRvb2xiYXIvcGFnZS10b29sYmFyLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
2
- import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
3
- import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
4
- import { CreateInjectorPipe } from '../../pipes/create-injector.pipe';
5
- import { LocalizationModule, PermissionDirective } from '@abp/ng.core';
6
- import { NgClass, NgComponentOutlet } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@abp/ng.core";
9
- export class PageToolbarComponent extends AbstractActionsComponent {
10
- constructor(injector) {
11
- super(injector);
12
- this.injector = injector;
13
- this.defaultBtnClass = 'btn btn-sm btn-primary';
14
- this.getData = () => this.data;
15
- this.trackByFn = (_, item) => item.action || item.component;
16
- }
17
- asToolbarAction(value) {
18
- return {
19
- value: value,
20
- };
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PageToolbarComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.5", type: PageToolbarComponent, isStandalone: true, selector: "abp-page-toolbar", providers: [
24
- {
25
- provide: EXTENSIONS_ACTION_TYPE,
26
- useValue: 'toolbarActions',
27
- },
28
- ], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-0 gap-2\" id=\"AbpContentToolbar\">\r\n @for (action of actionList; track action.component || action.action; let last = $last) {\r\n <div class=\"col-auto px-0 pt-0\" [class.pe-0]=\"last\">\r\n @if (action.visible(data)) {\r\n <ng-container *abpPermission=\"action.permission; runChangeDetection: false\">\r\n @if (action.component; as component) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"\r\n ></ng-container>\r\n\r\n }@else {\r\n @if (asToolbarAction(action).value; as toolbarAction ) {\r\n <button\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [ngClass]=\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\"\r\n class=\"d-inline-flex align-items-center gap-1\"\r\n >\r\n <i [ngClass]=\"toolbarAction?.icon\" [class.me-1]=\"toolbarAction?.icon\"></i>\r\n {{ toolbarAction?.text | abpLocalization }}\r\n </button>\r\n } \r\n }\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n", dependencies: [{ kind: "pipe", type: CreateInjectorPipe, name: "createInjector" }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PageToolbarComponent, decorators: [{
31
- type: Component,
32
- args: [{ exportAs: 'abpPageToolbar', selector: 'abp-page-toolbar', standalone: true, imports: [
33
- CreateInjectorPipe,
34
- PermissionDirective,
35
- LocalizationModule,
36
- NgClass,
37
- NgComponentOutlet,
38
- ], providers: [
39
- {
40
- provide: EXTENSIONS_ACTION_TYPE,
41
- useValue: 'toolbarActions',
42
- },
43
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row justify-content-end mx-0 gap-2\" id=\"AbpContentToolbar\">\r\n @for (action of actionList; track action.component || action.action; let last = $last) {\r\n <div class=\"col-auto px-0 pt-0\" [class.pe-0]=\"last\">\r\n @if (action.visible(data)) {\r\n <ng-container *abpPermission=\"action.permission; runChangeDetection: false\">\r\n @if (action.component; as component) {\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"\r\n ></ng-container>\r\n\r\n }@else {\r\n @if (asToolbarAction(action).value; as toolbarAction ) {\r\n <button\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [ngClass]=\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\"\r\n class=\"d-inline-flex align-items-center gap-1\"\r\n >\r\n <i [ngClass]=\"toolbarAction?.icon\" [class.me-1]=\"toolbarAction?.icon\"></i>\r\n {{ toolbarAction?.text | abpLocalization }}\r\n </button>\r\n } \r\n }\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n" }]
44
- }], ctorParameters: () => [{ type: i0.Injector }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS10b29sYmFyL3BhZ2UtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtdG9vbGJhci9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBUTlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXNCN0QsTUFBTSxPQUFPLG9CQUNYLFNBQVEsd0JBQThDO0lBVXRELFlBQTRCLFFBQWtCO1FBQzVDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFQOUMsb0JBQWUsR0FBRyx3QkFBd0IsQ0FBQztRQUUzQyxZQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQXlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3JFLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUloQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQTJCO1FBQ3pDLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBc0I7U0FDOUIsQ0FBQztJQUNKLENBQUM7OEdBbkJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7U0FDRiwrRUMvQkgsNHBDQTZCQSx1Q0RWSSxrQkFBa0IsdURBQ2xCLG1CQUFtQix5SEFDbkIsa0JBQWtCLHFHQUNsQixPQUFPLG9GQUNQLGlCQUFpQjs7MkZBV1Isb0JBQW9CO2tCQXBCaEMsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEIsa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGlCQUFpQjtxQkFDbEIsYUFFVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixRQUFRLEVBQUUsZ0JBQWdCO3lCQUMzQjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIYXNDcmVhdGVJbmplY3RvclBpcGUsXHJcbiAgVG9vbGJhckFjdGlvbixcclxuICBUb29sYmFyQWN0aW9uRGVmYXVsdCxcclxuICBUb29sYmFyQWN0aW9uTGlzdCxcclxuICBUb29sYmFyQ29tcG9uZW50LFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90b29sYmFyLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0FDVElPTl9UWVBFIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1hY3Rpb25zL2Fic3RyYWN0LWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlSW5qZWN0b3JQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY3JlYXRlLWluamVjdG9yLnBpcGUnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUsIFBlcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2FicFBhZ2VUb29sYmFyJyxcclxuICBzZWxlY3RvcjogJ2FicC1wYWdlLXRvb2xiYXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0FDVElPTl9UWVBFLFxyXG4gICAgICB1c2VWYWx1ZTogJ3Rvb2xiYXJBY3Rpb25zJyxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VUb29sYmFyQ29tcG9uZW50PFIgPSBhbnk+XHJcbiAgZXh0ZW5kcyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQ8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+XHJcbiAgaW1wbGVtZW50cyBIYXNDcmVhdGVJbmplY3RvclBpcGU8Uj5cclxue1xyXG4gIGRlZmF1bHRCdG5DbGFzcyA9ICdidG4gYnRuLXNtIGJ0bi1wcmltYXJ5JztcclxuXHJcbiAgZ2V0RGF0YSA9ICgpID0+IHRoaXMuZGF0YTtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248VG9vbGJhckNvbXBvbmVudDxSPj4gPSAoXywgaXRlbSkgPT5cclxuICAgIGl0ZW0uYWN0aW9uIHx8IGl0ZW0uY29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBhc1Rvb2xiYXJBY3Rpb24odmFsdWU6IFRvb2xiYXJBY3Rpb25EZWZhdWx0KTogeyB2YWx1ZTogVG9vbGJhckFjdGlvbiB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSBhcyBUb29sYmFyQWN0aW9uLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTAgZ2FwLTJcIiBpZD1cIkFicENvbnRlbnRUb29sYmFyXCI+XHJcbiAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbkxpc3Q7IHRyYWNrIGFjdGlvbi5jb21wb25lbnQgfHwgYWN0aW9uLmFjdGlvbjsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0wIHB0LTBcIiBbY2xhc3MucGUtMF09XCJsYXN0XCI+XHJcbiAgICBAaWYgKGFjdGlvbi52aXNpYmxlKGRhdGEpKSB7XHJcbiAgICA8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICAgICAgQGlmIChhY3Rpb24uY29tcG9uZW50OyBhcyBjb21wb25lbnQpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudDsgaW5qZWN0b3I6IHJlY29yZCB8IGNyZWF0ZUluamVjdG9yOiBhY3Rpb246dGhpc1wiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgIEBpZiAoYXNUb29sYmFyQWN0aW9uKGFjdGlvbikudmFsdWU7IGFzIHRvb2xiYXJBY3Rpb24gKSB7XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInRvb2xiYXJBY3Rpb24/LmJ0bkNsYXNzID8gdG9vbGJhckFjdGlvbj8uYnRuQ2xhc3MgOiBkZWZhdWx0QnRuQ2xhc3NcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwidG9vbGJhckFjdGlvbj8uaWNvblwiIFtjbGFzcy5tZS0xXT1cInRvb2xiYXJBY3Rpb24/Lmljb25cIj48L2k+XHJcbiAgICAgICAgICAgIHt7IHRvb2xiYXJBY3Rpb24/LnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH0gXHJcbiAgICAgIH1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export const EXTRA_PROPERTIES_KEY = 'extraProperties';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVYVFJBX1BST1BFUlRJRVNfS0VZID0gJ2V4dHJhUHJvcGVydGllcyc7XHJcbiJdfQ==
@@ -1,42 +0,0 @@
1
- /* eslint-disable @angular-eslint/no-input-rename */
2
- import { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
3
- import { PropData } from '../models/props';
4
- import * as i0 from "@angular/core";
5
- export class PropDataDirective extends PropData {
6
- constructor(tempRef, vcRef, injector) {
7
- super();
8
- this.tempRef = tempRef;
9
- this.vcRef = vcRef;
10
- this.getInjected = injector.get.bind(injector);
11
- }
12
- ngOnChanges() {
13
- this.vcRef.clear();
14
- this.vcRef.createEmbeddedView(this.tempRef, {
15
- $implicit: this.data,
16
- index: 0,
17
- });
18
- }
19
- ngOnDestroy() {
20
- this.vcRef.clear();
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PropDataDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.5", type: PropDataDirective, isStandalone: true, selector: "[abpPropData]", inputs: { propList: ["abpPropDataFromList", "propList"], record: ["abpPropDataWithRecord", "record"], index: ["abpPropDataAtIndex", "index"] }, exportAs: ["abpPropData"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: PropDataDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- exportAs: 'abpPropData',
29
- selector: '[abpPropData]',
30
- standalone: true,
31
- }]
32
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.Injector }], propDecorators: { propList: [{
33
- type: Input,
34
- args: ['abpPropDataFromList']
35
- }], record: [{
36
- type: Input,
37
- args: ['abpPropDataWithRecord']
38
- }], index: [{
39
- type: Input,
40
- args: ['abpPropDataAtIndex']
41
- }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDOztBQU9yRCxNQUFNLE9BQU8saUJBQ1gsU0FBUSxRQUF5QjtJQVdqQyxZQUNVLE9BQXlCLEVBQ3pCLEtBQXVCLEVBQy9CLFFBQWtCO1FBRWxCLEtBQUssRUFBRSxDQUFDO1FBSkEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFLL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWpDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzSUFLK0IsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBRUksTUFBTTtzQkFBckMsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBRUQsS0FBSztzQkFBakMsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvcERhdGEsIFByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIGV4cG9ydEFzOiAnYWJwUHJvcERhdGEnLFxyXG4gIHNlbGVjdG9yOiAnW2FicFByb3BEYXRhXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BEYXRhRGlyZWN0aXZlPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnk+PlxyXG4gIGV4dGVuZHMgUHJvcERhdGE8SW5mZXJyZWREYXRhPEw+PlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgnYWJwUHJvcERhdGFGcm9tTGlzdCcpIHByb3BMaXN0PzogTDtcclxuXHJcbiAgQElucHV0KCdhYnBQcm9wRGF0YVdpdGhSZWNvcmQnKSByZWNvcmQhOiBJbmZlcnJlZERhdGE8TD5bJ3JlY29yZCddO1xyXG5cclxuICBASW5wdXQoJ2FicFByb3BEYXRhQXRJbmRleCcpIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICByZWFkb25seSBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPEw+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBSZWYsIHtcclxuICAgICAgJGltcGxpY2l0OiB0aGlzLmRhdGEsXHJcbiAgICAgIGluZGV4OiAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWREYXRhPEw+ID0gUHJvcERhdGE8SW5mZXJyZWRSZWNvcmQ8TD4+O1xyXG50eXBlIEluZmVycmVkUmVjb3JkPEw+ID0gTCBleHRlbmRzIFByb3BMaXN0PGluZmVyIFI+ID8gUiA6IG5ldmVyO1xyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2VudW1zL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVFeHRlbnNpYmxlQ29tcG9uZW50cyB7XHJcbiAgUGFzc3dvcmRDb21wb25lbnQgPSAnVGhlbWVTaGFyZWQuRXh0ZW5zaW9ucy5QYXNzd29yZENvbXBvbmVudCcsXHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2VudW1zL3Byb3BzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVQcm9wVHlwZSB7XHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGV0aW1lJyxcclxuICBFbWFpbCA9ICdlbWFpbCcsXHJcbiAgRW51bSA9ICdlbnVtJyxcclxuICBIaWRkZW4gPSAnaGlkZGVuJyxcclxuICBNdWx0aVNlbGVjdCA9ICdtdWx0aXNlbGVjdCcsXHJcbiAgTnVtYmVyID0gJ251bWJlcicsXHJcbiAgUGFzc3dvcmQgPSAncGFzc3dvcmQnLFxyXG4gIFBhc3N3b3JkSW5wdXRHcm91cCA9ICdwYXNzd29yZGlucHV0Z3JvdXAnLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgVGltZSA9ICd0aW1lJyxcclxuICBUeXBlYWhlYWQgPSAndHlwZWFoZWFkJyxcclxufVxyXG4iXX0=
@@ -1,80 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CoreModule } from '@abp/ng.core';
3
- import { ThemeSharedModule } from '@abp/ng.theme.shared';
4
- import { NgxValidateCoreModule } from '@ngx-validate/core';
5
- import { NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';
6
- import { ExtensibleFormComponent, ExtensibleFormPropComponent, ExtensibleTableComponent, GridActionsComponent, PageToolbarComponent, ExtensibleDateTimePickerComponent, } from './components';
7
- import { PropDataDirective } from './directives/prop-data.directive';
8
- import { CreateInjectorPipe } from './pipes/create-injector.pipe';
9
- import { DisabledDirective } from '@abp/ng.theme.shared';
10
- import * as i0 from "@angular/core";
11
- const importWithExport = [
12
- DisabledDirective,
13
- ExtensibleDateTimePickerComponent,
14
- ExtensibleFormPropComponent,
15
- GridActionsComponent,
16
- PropDataDirective,
17
- PageToolbarComponent,
18
- CreateInjectorPipe,
19
- ExtensibleFormComponent,
20
- ExtensibleTableComponent,
21
- ];
22
- export class ExtensibleModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
25
- ThemeSharedModule,
26
- NgxValidateCoreModule,
27
- NgbDatepickerModule,
28
- NgbDropdownModule,
29
- NgbTimepickerModule,
30
- NgbTypeaheadModule,
31
- NgbTooltipModule, DisabledDirective,
32
- ExtensibleDateTimePickerComponent,
33
- ExtensibleFormPropComponent,
34
- GridActionsComponent,
35
- PropDataDirective,
36
- PageToolbarComponent,
37
- CreateInjectorPipe,
38
- ExtensibleFormComponent,
39
- ExtensibleTableComponent], exports: [DisabledDirective,
40
- ExtensibleDateTimePickerComponent,
41
- ExtensibleFormPropComponent,
42
- GridActionsComponent,
43
- PropDataDirective,
44
- PageToolbarComponent,
45
- CreateInjectorPipe,
46
- ExtensibleFormComponent,
47
- ExtensibleTableComponent] }); }
48
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
49
- ThemeSharedModule,
50
- NgxValidateCoreModule,
51
- NgbDatepickerModule,
52
- NgbDropdownModule,
53
- NgbTimepickerModule,
54
- NgbTypeaheadModule,
55
- NgbTooltipModule, ExtensibleDateTimePickerComponent,
56
- ExtensibleFormPropComponent,
57
- GridActionsComponent,
58
- PageToolbarComponent,
59
- ExtensibleFormComponent,
60
- ExtensibleTableComponent] }); }
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ExtensibleModule, decorators: [{
63
- type: NgModule,
64
- args: [{
65
- declarations: [],
66
- imports: [
67
- CoreModule,
68
- ThemeSharedModule,
69
- NgxValidateCoreModule,
70
- NgbDatepickerModule,
71
- NgbDropdownModule,
72
- NgbTimepickerModule,
73
- NgbTypeaheadModule,
74
- NgbTooltipModule,
75
- ...importWithExport,
76
- ],
77
- exports: [...importWithExport],
78
- }]
79
- }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9leHRlbnNpYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixpQ0FBaUMsR0FDbEMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXpELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsaUJBQWlCO0lBQ2pCLGlDQUFpQztJQUNqQywyQkFBMkI7SUFDM0Isb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2Qix3QkFBd0I7Q0FDekIsQ0FBQztBQWdCRixNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQVp6QixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZ0JBQWdCLEVBcEJsQixpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QixhQVJ4QixpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjsrR0FpQmIsZ0JBQWdCLFlBWnpCLFVBQVU7WUFDVixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixnQkFBZ0IsRUFuQmxCLGlDQUFpQztZQUNqQywyQkFBMkI7WUFDM0Isb0JBQW9CO1lBRXBCLG9CQUFvQjtZQUVwQix1QkFBdUI7WUFDdkIsd0JBQXdCOzsyRkFpQmIsZ0JBQWdCO2tCQWY1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLEdBQUcsZ0JBQWdCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiVG9vbHRpcE1vZHVsZSxcclxuICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFByb3BEYXRhRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Byb3AtZGF0YS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDcmVhdGVJbmplY3RvclBpcGUgfSBmcm9tICcuL3BpcGVzL2NyZWF0ZS1pbmplY3Rvci5waXBlJztcclxuaW1wb3J0IHsgRGlzYWJsZWREaXJlY3RpdmUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5jb25zdCBpbXBvcnRXaXRoRXhwb3J0ID0gW1xyXG4gIERpc2FibGVkRGlyZWN0aXZlLFxyXG4gIEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUHJvcERhdGFEaXJlY3RpdmUsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudCxcclxuXTtcclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxyXG4gICAgLi4uaW1wb3J0V2l0aEV4cG9ydCxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFsuLi5pbXBvcnRXaXRoRXhwb3J0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVNb2R1bGUge31cclxuIl19
@@ -1,48 +0,0 @@
1
- import { LinkedList } from '@abp/utils';
2
- export class ActionList extends LinkedList {
3
- }
4
- export class ActionData {
5
- get data() {
6
- return {
7
- getInjected: this.getInjected,
8
- index: this.index,
9
- record: this.record,
10
- };
11
- }
12
- }
13
- export class Action {
14
- constructor(permission, visible = () => true, action = () => { }, btnClass, btnStyle) {
15
- this.permission = permission;
16
- this.visible = visible;
17
- this.action = action;
18
- this.btnClass = btnClass;
19
- this.btnStyle = btnStyle;
20
- }
21
- }
22
- export class ActionsFactory {
23
- constructor() {
24
- this.contributorCallbacks = {};
25
- }
26
- get(name) {
27
- this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];
28
- return new this._ctor(this.contributorCallbacks[name]);
29
- }
30
- }
31
- export class Actions {
32
- get actions() {
33
- const actionList = new this._ctor();
34
- this.callbackList.forEach(callback => callback(actionList));
35
- return actionList;
36
- }
37
- constructor(callbackList) {
38
- this.callbackList = callbackList;
39
- }
40
- addContributor(contributeCallback) {
41
- this.callbackList.push(contributeCallback);
42
- }
43
- clearContributors() {
44
- while (this.callbackList.length)
45
- this.callbackList.pop();
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHeEMsTUFBTSxPQUFnQixVQUFtQyxTQUFRLFVBQWE7Q0FBRztBQUVqRixNQUFNLE9BQWdCLFVBQVU7SUFTOUIsSUFBSSxJQUFJO1FBQ04sT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFJRCxNQUFNLE9BQWdCLE1BQU07SUFDMUIsWUFDa0IsVUFBa0IsRUFDbEIsVUFBOEIsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUN4QyxTQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQ3BDLFFBQWlCLEVBQ2pCLFFBQWlCO1FBSmpCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFTO0lBQ2hDLENBQUM7Q0FDTDtBQUtELE1BQU0sT0FBZ0IsY0FBYztJQUFwQztRQUVVLHlCQUFvQixHQUFzRCxFQUFFLENBQUM7SUFPdkYsQ0FBQztJQUxDLEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixPQUFPO0lBRzNCLElBQUksT0FBTztRQUNULE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFNUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQTZCLFlBQTRDO1FBQTVDLGlCQUFZLEdBQVosWUFBWSxDQUFnQztJQUFHLENBQUM7SUFFN0UsY0FBYyxDQUFDLGtCQUFnRDtRQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJ0BhYnAvdXRpbHMnO1xyXG5pbXBvcnQgeyBJbmplY3RGbGFncywgSW5qZWN0aW9uVG9rZW4sIEluamVjdE9wdGlvbnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb25MaXN0PFIgPSBhbnksIEEgPSBBY3Rpb248Uj4+IGV4dGVuZHMgTGlua2VkTGlzdDxBPiB7fVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkRhdGE8UiA9IGFueT4ge1xyXG4gIGFic3RyYWN0IGdldEluamVjdGVkOiA8VD4oXHJcbiAgICB0b2tlbjogVHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+LFxyXG4gICAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgICBmbGFncz86IEluamVjdE9wdGlvbnMgfCBJbmplY3RGbGFncyxcclxuICApID0+IFQ7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgYWJzdHJhY3QgcmVjb3JkOiBSO1xyXG5cclxuICBnZXQgZGF0YSgpOiBSZWFkb25seUFjdGlvbkRhdGE8Uj4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsXHJcbiAgICAgIGluZGV4OiB0aGlzLmluZGV4LFxyXG4gICAgICByZWNvcmQ6IHRoaXMucmVjb3JkLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlYWRvbmx5QWN0aW9uRGF0YTxSID0gYW55PiA9IFJlYWRvbmx5PE9taXQ8QWN0aW9uRGF0YTxSPiwgJ2RhdGEnPj47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uPFIgPSBhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZTogQWN0aW9uUHJlZGljYXRlPFI+ID0gKCkgPT4gdHJ1ZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpb246IEFjdGlvbkNhbGxiYWNrPFI+ID0gKCkgPT4ge30sXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuU3R5bGU/OiBzdHJpbmcsXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25DYWxsYmFjazxULCBSID0gYW55PiA9IChkYXRhOiBPbWl0PEFjdGlvbkRhdGE8VD4sICdkYXRhJz4pID0+IFI7XHJcbmV4cG9ydCB0eXBlIEFjdGlvblByZWRpY2F0ZTxUPiA9IChkYXRhPzogT21pdDxBY3Rpb25EYXRhPFQ+LCAnZGF0YSc+KSA9PiBib29sZWFuO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbnNGYWN0b3J5PEMgZXh0ZW5kcyBBY3Rpb25zPGFueT4+IHtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2N0b3I6IFR5cGU8Qz47XHJcbiAgcHJpdmF0ZSBjb250cmlidXRvckNhbGxiYWNrczogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8SW5mZXJyZWRBY3Rpb25MaXN0PEM+PiA9IHt9O1xyXG5cclxuICBnZXQobmFtZTogc3RyaW5nKTogQyB7XHJcbiAgICB0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdID0gdGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSB8fCBbXTtcclxuXHJcbiAgICByZXR1cm4gbmV3IHRoaXMuX2N0b3IodGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uczxMIGV4dGVuZHMgQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPEw+Pj4ge1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfY3RvcjogVHlwZTxMPjtcclxuXHJcbiAgZ2V0IGFjdGlvbnMoKTogTCB7XHJcbiAgICBjb25zdCBhY3Rpb25MaXN0ID0gbmV3IHRoaXMuX2N0b3IoKTtcclxuXHJcbiAgICB0aGlzLmNhbGxiYWNrTGlzdC5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKGFjdGlvbkxpc3QpKTtcclxuXHJcbiAgICByZXR1cm4gYWN0aW9uTGlzdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FsbGJhY2tMaXN0OiBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEw+W10pIHt9XHJcblxyXG4gIGFkZENvbnRyaWJ1dG9yKGNvbnRyaWJ1dGVDYWxsYmFjazogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPikge1xyXG4gICAgdGhpcy5jYWxsYmFja0xpc3QucHVzaChjb250cmlidXRlQ2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDb250cmlidXRvcnMoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5jYWxsYmFja0xpc3QubGVuZ3RoKSB0aGlzLmNhbGxiYWNrTGlzdC5wb3AoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IFJlY29yZDxcclxuICBzdHJpbmcsXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPltdXHJcbj47XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IChcclxuICBhY3Rpb25MaXN0OiBMLFxyXG4pID0+IGFueTtcclxuXHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25MaXN0PEM+ID0gQyBleHRlbmRzIEFjdGlvbnM8aW5mZXIgTD4gPyBMIDogbmV2ZXI7XHJcbmV4cG9ydCB0eXBlIEluZmVycmVkQWN0aW9uPFQ+ID0gVCBleHRlbmRzIEFjdGlvbkxpc3Q8YW55LCBpbmZlciBVPiA/IFUgOiBUO1xyXG4iXX0=