@abp/ng.theme.shared 4.4.0 → 4.4.4
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/bundles/abp-ng.theme.shared-extensions.umd.js +15 -2
- package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
- package/bundles/abp-ng.theme.shared-extensions.umd.min.js +1 -1
- package/bundles/abp-ng.theme.shared-extensions.umd.min.js.map +1 -1
- package/esm2015/extensions/lib/adapters/date.adapter.js +12 -2
- package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +6 -3
- package/extensions/abp-ng.theme.shared-extensions.metadata.json +1 -1
- package/extensions/lib/adapters/date.adapter.d.ts +1 -0
- package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +1 -0
- package/fesm2015/abp-ng.theme.shared-extensions.js +16 -3
- package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, } from '@abp/ng.core';
|
|
1
|
+
import { ConfigStateService, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, PermissionService, } from '@abp/ng.core';
|
|
2
2
|
import { formatDate } from '@angular/common';
|
|
3
3
|
import { ChangeDetectionStrategy, Component, Inject, Injector, Input, LOCALE_ID, } from '@angular/core';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
@@ -17,6 +17,9 @@ export class ExtensibleTableComponent {
|
|
|
17
17
|
this.propList = extensions.entityProps.get(name).props;
|
|
18
18
|
this.actionList = extensions['entityActions'].get(name)
|
|
19
19
|
.actions;
|
|
20
|
+
const permissionService = injector.get(PermissionService);
|
|
21
|
+
this.hasAtLeastOnePermittedAction =
|
|
22
|
+
permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
|
|
20
23
|
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
|
|
21
24
|
}
|
|
22
25
|
set actionsText(value) {
|
|
@@ -80,7 +83,7 @@ ExtensibleTableComponent.decorators = [
|
|
|
80
83
|
{ type: Component, args: [{
|
|
81
84
|
exportAs: 'abpExtensibleTable',
|
|
82
85
|
selector: 'abp-extensible-table',
|
|
83
|
-
template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || actionList.length\"\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 <div\n *ngIf=\"row['_' + prop.name]
|
|
86
|
+
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 <div\n *ngIf=\"row['_' + prop.name]?.visible\"\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>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n",
|
|
84
87
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
85
88
|
},] }
|
|
86
89
|
];
|
|
@@ -97,4 +100,4 @@ ExtensibleTableComponent.propDecorators = {
|
|
|
97
100
|
actionsColumnWidth: [{ type: Input }],
|
|
98
101
|
actionsTemplate: [{ type: Input }]
|
|
99
102
|
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEdBQ25CLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBUVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXRFLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0FBUXpDLE1BQU0sT0FBTyx3QkFBd0I7SUE0Qm5DLFlBQzZCLE1BQWMsRUFDakMsTUFBMEIsRUFDbEMsUUFBa0I7UUFGUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBSjNCLGNBQVMsR0FBbUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBTzFFLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxH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SSxDQUFFLFlBQVksQ0FBQTtZQUFFLE9BQU87UUFFaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxRQUFRLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFTLENBQUM7Z0JBQ3pFLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRztvQkFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztvQkFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7aUJBQzdDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBckdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxrbERBQWdEO2dCQUNoRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O3lDQThCSSxNQUFNLFNBQUMsU0FBUztZQWxFbkIsa0JBQWtCO1lBVWxCLFFBQVE7OzswQkE2QlAsS0FBSzttQkFRTCxLQUFLO21CQUNMLEtBQUs7MkJBQ0wsS0FBSztpQ0FDTCxLQUFLOzhCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMaXN0U2VydmljZSxcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICBnZXRTaG9ydERhdGVGb3JtYXQsXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcbiAgZ2V0U2hvcnRUaW1lRm9ybWF0LFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBUeXBlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0RmxhZ3MsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25MaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcbmNvbnN0IERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEggPSAxNTA7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVUYWJsZScsXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcm90ZWN0ZWQgX2FjdGlvbnNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgYWN0aW9uc1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRhdGE6IFJbXTtcbiAgQElucHV0KCkgbGlzdDogTGlzdFNlcnZpY2U7XG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbDogbnVtYmVyO1xuICBASW5wdXQoKSBzZXQgYWN0aW9uc0NvbHVtbldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xuICB9XG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXRJbmplY3RlZDogPFQ+KHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sIG5vdEZvdW5kVmFsdWU/OiBULCBmbGFncz86IEluamVjdEZsYWdzKSA9PiBUO1xuXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRoczogbnVtYmVyW107XG5cbiAgcmVhZG9ubHkgcHJvcExpc3Q6IEVudGl0eVByb3BMaXN0PFI+O1xuXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XG5cbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTdGF0ZVNlcnZpY2UsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICApIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB0aGlzLmdldEluamVjdGVkID0gaW5qZWN0b3IuZ2V0LmJpbmQoaW5qZWN0b3IpO1xuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBpbmplY3Rvci5nZXQoRXh0ZW5zaW9uc1NlcnZpY2UpO1xuICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcbiAgICB0aGlzLnByb3BMaXN0ID0gZXh0ZW5zaW9ucy5lbnRpdHlQcm9wcy5nZXQobmFtZSkucHJvcHM7XG4gICAgdGhpcy5hY3Rpb25MaXN0ID0gKGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcbiAgICAgIC5hY3Rpb25zIGFzIHVua25vd24pIGFzIEVudGl0eUFjdGlvbkxpc3Q8Uj47XG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMoREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbHVtbldpZHRocyhhY3Rpb25zQ29sdW1uOiBudW1iZXIpIHtcbiAgICBjb25zdCB3aWR0aHMgPSBbYWN0aW9uc0NvbHVtbl07XG4gICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKCh7IHZhbHVlOiBwcm9wIH0pID0+IHtcbiAgICAgIHdpZHRocy5wdXNoKHByb3AuY29sdW1uV2lkdGgpO1xuICAgIH0pO1xuICAgICh0aGlzLmNvbHVtbldpZHRocyBhcyBhbnkpID0gd2lkdGhzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRlKHZhbHVlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZSA/IGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdCwgdGhpcy5sb2NhbGUpIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGdldEljb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgID8gJzxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LXN1Y2Nlc3NcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPjwvZGl2PidcbiAgICAgIDogJzxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciB0ZXh0LWRhbmdlclwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9kaXY+JztcbiAgfVxuXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcbiAgICAgIG1hcCh2YWx1ZSA9PiB7XG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEljb24odmFsdWUpO1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGU6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWcpKTtcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVTaG9ydFRpbWVGb3JtYXQodGhpcy5jb25maWcpKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIC8vIE1vcmUgdHlwZXMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIGZ1dHVyZVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoIWRhdGE/LmN1cnJlbnRWYWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kYXRhID0gZGF0YS5jdXJyZW50VmFsdWUubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICB0aGlzLnByb3BMaXN0LmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BEYXRhID0geyBnZXRJbmplY3RlZDogdGhpcy5nZXRJbmplY3RlZCwgcmVjb3JkLCBpbmRleCB9IGFzIGFueTtcbiAgICAgICAgcmVjb3JkW2BfJHtwcm9wLnZhbHVlLm5hbWV9YF0gPSB7XG4gICAgICAgICAgdmlzaWJsZTogcHJvcC52YWx1ZS52aXNpYmxlKHByb3BEYXRhKSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRDb250ZW50KHByb3AudmFsdWUsIHByb3BEYXRhKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS10YWJsZS9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxHQVFWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQztBQVF6QyxNQUFNLE9BQU8sd0JBQXdCO0lBOEJuQyxZQUM2QixNQUFjLEVBQ2pDLE1BQTBCLEVBQ2xDLFFBQWtCO1FBRlMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQU4zQixjQUFTLEdBQW1DLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQVMxRSwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMv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O2FBQ2hEOzs7eUNBZ0NJLE1BQU0sU0FBQyxTQUFTO1lBckVuQixrQkFBa0I7WUFXbEIsUUFBUTs7OzBCQTZCUCxLQUFLO21CQVFMLEtBQUs7bUJBQ0wsS0FBSzsyQkFDTCxLQUFLO2lDQUNMLEtBQUs7OEJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExpc3RTZXJ2aWNlLFxuICBDb25maWdTdGF0ZVNlcnZpY2UsXG4gIGdldFNob3J0RGF0ZUZvcm1hdCxcbiAgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0LFxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXG4gIFBlcm1pc3Npb25TZXJ2aWNlLFxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTE9DQUxFX0lELFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBUeXBlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0RmxhZ3MsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25MaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcbmNvbnN0IERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEggPSAxNTA7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVUYWJsZScsXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcm90ZWN0ZWQgX2FjdGlvbnNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcbiAgfVxuICBnZXQgYWN0aW9uc1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGRhdGE6IFJbXTtcbiAgQElucHV0KCkgbGlzdDogTGlzdFNlcnZpY2U7XG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbDogbnVtYmVyO1xuICBASW5wdXQoKSBzZXQgYWN0aW9uc0NvbHVtbldpZHRoKHdpZHRoOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xuICB9XG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXRJbmplY3RlZDogPFQ+KHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sIG5vdEZvdW5kVmFsdWU/OiBULCBmbGFncz86IEluamVjdEZsYWdzKSA9PiBUO1xuXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRoczogbnVtYmVyW107XG5cbiAgcmVhZG9ubHkgcHJvcExpc3Q6IEVudGl0eVByb3BMaXN0PFI+O1xuXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XG5cbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xuXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1N0YXRlU2VydmljZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IGluamVjdG9yLmdldChFeHRlbnNpb25zU2VydmljZSk7XG4gICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zWydlbnRpdHlBY3Rpb25zJ10uZ2V0KG5hbWUpXG4gICAgICAuYWN0aW9ucyBhcyB1bmtub3duIGFzIEVudGl0eUFjdGlvbkxpc3Q8Uj47XG5cbiAgICBjb25zdCBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdG9yLmdldChQZXJtaXNzaW9uU2VydmljZSk7XG4gICAgdGhpcy5oYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uID1cbiAgICAgIHBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlckl0ZW1zQnlQb2xpY3koXG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdC50b0FycmF5KCkubWFwKGFjdGlvbiA9PiAoeyByZXF1aXJlZFBvbGljeTogYWN0aW9uLnBlcm1pc3Npb24gfSkpLFxuICAgICAgKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuc2V0Q29sdW1uV2lkdGhzKERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb2x1bW5XaWR0aHMoYWN0aW9uc0NvbHVtbjogbnVtYmVyKSB7XG4gICAgY29uc3Qgd2lkdGhzID0gW2FjdGlvbnNDb2x1bW5dO1xuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XG4gICAgICB3aWR0aHMucHVzaChwcm9wLmNvbHVtbldpZHRoKTtcbiAgICB9KTtcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0ZSh2YWx1ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUgPyBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIHRoaXMubG9jYWxlKSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICA/ICc8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1zdWNjZXNzXCI+PGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT48L2Rpdj4nXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPjwvZGl2Pic7XG4gIH1cblxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gcHJvcC52YWx1ZVJlc29sdmVyKGRhdGEpLnBpcGUoXG4gICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuVGltZTpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGVUaW1lOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh2YWx1ZSwgZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnKSk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFkYXRhPy5jdXJyZW50VmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XG4gICAgICAgIHJlY29yZFtgXyR7cHJvcC52YWx1ZS5uYW1lfWBdID0ge1xuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0Q29udGVudChwcm9wLnZhbHVlLCBwcm9wRGF0YSksXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"DateTimeAdapter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}]}},"DateAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":5,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}]}},"TimeAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":5,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}]}},"DateTimePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"exportAs":"abpDateTimePicker","selector":"abp-date-time-picker","template":"\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setTime($event)\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n <ngb-timepicker\n #timepicker\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setDate($event)\"\n [meridian]=\"meridian\"\n ></ngb-timepicker>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":45,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":47,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":47,"character":46}]]},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":50,"character":15},"useClass":{"__symbolic":"reference","name":"DateTimeAdapter"}},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":54,"character":15},"useClass":{"__symbolic":"reference","name":"DateTimeAdapter"}}]}]}],"members":{"prop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"meridian":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"date":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":63,"character":3},"arguments":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbInputDatepicker","line":63,"character":13}]}]}],"time":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":64,"character":3},"arguments":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimepicker","line":64,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":66,"character":37}]}],"setDate":[{"__symbolic":"method"}],"setTime":[{"__symbolic":"method"}]}},"ExtensibleFormPropComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"abp-extensible-form-prop","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":40,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":42,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":42,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":42,"character":46}]]},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":44,"character":15},"useClass":{"__symbolic":"reference","name":"DateAdapter"}},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":45,"character":15},"useClass":{"__symbolic":"reference","name":"TimeAdapter"}}],"template":"<div class=\"form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\n <ng-template ngSwitchCase=\"input\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [autocomplete]=\"prop.autocomplete\"\n [type]=\"getType(prop)\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"hidden\">\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </ng-template>\n\n <ng-template ngSwitchCase=\"checkbox\">\n <div class=\"custom-checkbox custom-control\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"custom-control-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'custom-control-label' }\"\n ></ng-template>\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"select\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"multiselect\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n multiple=\"multiple\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"typeahead\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [autocomplete]=\"prop.autocomplete\"\n [abpDisabled]=\"disabled\"\n [ngbTypeahead]=\"search\"\n [editable]=\"false\"\n [inputFormatter]=\"typeaheadFormatter\"\n [resultFormatter]=\"typeaheadFormatter\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"typeaheadModel\"\n (selectItem)=\"setTypeaheadValue($event.item)\"\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\n class=\"form-control\"\n />\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"date\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"time\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"dateTime\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"textarea\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <textarea\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n ></textarea>\n </ng-template>\n</div>\n\n<ng-template #label let-classes>\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"prop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"first":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"fieldRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["field"]}]}],"setTypeaheadValue":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"TrackByService","line":104,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigStateService","line":105,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":106,"character":20}]}],"getTypeaheadControls":[{"__symbolic":"method"}],"setAsterisk":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"getComponent":[{"__symbolic":"method"}],"getType":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ExtensibleFormComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"exportAs":"abpExtensibleForm","selector":"abp-extensible-form","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":24,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":27,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":29,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":29,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":29,"character":46}]]}],"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"}]}],"members":{"formProps":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ExtensibleFormPropComponent"}]}]}],"selectedRecord":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":61,"character":5},"arguments":[{"__symbolic":"reference","name":"EXTENSIONS_IDENTIFIER"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":57,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"TrackByService","line":58,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":59,"character":23},{"__symbolic":"reference","name":"ExtensionsService"},{"__symbolic":"reference","name":"string"}]}]}},"ExtensibleTableComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":33,"character":1},"arguments":[{"exportAs":"abpExtensibleTable","selector":"abp-extensible-table","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"template":"<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || actionList.length\"\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 <div\n *ngIf=\"row['_' + prop.name].visible\"\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>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n"}]}],"members":{"actionsText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"recordsTotal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"actionsColumnWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"actionsTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":68,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":68,"character":12}]}],null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigStateService","line":69,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":70,"character":14}]}],"setColumnWidths":[{"__symbolic":"method"}],"getDate":[{"__symbolic":"method"}],"getIcon":[{"__symbolic":"method"}],"getContent":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"GridActionsComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵj"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"exportAs":"abpGridActions","selector":"abp-grid-actions","providers":[{"provide":{"__symbolic":"reference","name":"EXTENSIONS_ACTION_TYPE"},"useValue":"entityActions"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":19},"member":"OnPush"},"template":"<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":32,"character":24}]}]}},"PageToolbarComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵj"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"exportAs":"abpPageToolbar","selector":"abp-page-toolbar","providers":[{"provide":{"__symbolic":"reference","name":"EXTENSIONS_ACTION_TYPE"},"useValue":"toolbarActions"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":27,"character":19},"member":"OnPush"},"template":"<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":33,"character":41}]}],"createInjector":[{"__symbolic":"method"}]}},"EXTRA_PROPERTIES_KEY":"extraProperties","DisabledDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[abpDisabled]"}]}],"members":{"abpDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":10,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":10,"character":41}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"PropDataDirective":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"exportAs":"abpPropData","selector":"[abpPropData]"}]}],"members":{"propList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["abpPropDataFromList"]}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3},"arguments":["abpPropDataWithRecord"]}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["abpPropDataAtIndex"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":29,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":30,"character":14}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ePropType":{"Boolean":"boolean","Date":"date","DateTime":"dateTime","Email":"email","Enum":"enum","Hidden":"hidden","MultiSelect":"multiselect","Number":"number","Password":"password","String":"string","Text":"text","Time":"time","Typeahead":"typeahead"},"ɵa":{"__symbolic":"class","arity":1,"members":{}},"ɵb":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":30,"character":29,"context":{"typeName":"ActionPredicate"},"module":"./lib/models/actions"},{"__symbolic":"error","message":"Could not resolve type","line":31,"character":28,"context":{"typeName":"ActionCallback"},"module":"./lib/models/actions"}]}]}},"ɵc":{"__symbolic":"class","arity":1,"members":{"get":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":60,"character":45,"context":{"typeName":"ActionContributorCallback"},"module":"./lib/models/actions"}]}]}],"addContributor":[{"__symbolic":"method"}],"clearContributors":[{"__symbolic":"method"}]}},"ActionCallback":{"__symbolic":"interface"},"ActionList":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@abp/utils","name":"LinkedList","line":5,"character":65},"members":{}},"ActionPredicate":{"__symbolic":"interface"},"ActionData":{"__symbolic":"interface"},"EntityAction":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":23,"context":{"typeName":"EntityActionOptions"},"module":"./lib/models/entity-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityAction"},"member":"create"}]}}}},"EntityActionContributorCallback":{"__symbolic":"interface"},"EntityActionList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ActionList"},"members":{}},"EntityActionOptions":{"__symbolic":"interface"},"EntityActions":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵd"},"members":{}},"EntityActionsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{}},"EntityProp":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵf"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":31,"character":23,"context":{"typeName":"EntityPropOptions"},"module":"./lib/models/entity-props"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityProp"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityProp"},"member":"create"}]}}}},"EntityPropContributorCallback":{"__symbolic":"interface"},"EntityPropList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"PropList"},"members":{}},"EntityPropOptions":{"__symbolic":"interface"},"EntityProps":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵh"},"members":{}},"EntityPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"CreateFormPropContributorCallback":{"__symbolic":"interface"},"CreateFormPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"EditFormPropContributorCallback":{"__symbolic":"interface"},"EditFormPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"FormProp":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵf"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":42,"character":23,"context":{"typeName":"FormPropOptions"},"module":"./lib/models/form-props"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FormProp"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormProp"},"member":"create"}]}}}},"FormPropData":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":75,"character":24},{"__symbolic":"error","message":"Could not resolve type","line":75,"character":58,"context":{"typeName":"R"},"module":"./lib/models/form-props"}]}]}},"FormPropList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"PropList"},"members":{}},"FormPropOptions":{"__symbolic":"interface"},"FormProps":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵh"},"members":{}},"ObjectExtensions":{"__symbolic":"error","message":"Unsupported bundled module reference","context":{"module":"./internal/object-extensions"}},"ɵe":{"__symbolic":"class","arity":1,"members":{}},"ɵf":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ePropType"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":34,"character":29,"context":{"typeName":"PropPredicate"},"module":"./lib/models/props"},null]}]}},"ɵg":{"__symbolic":"class","arity":1,"members":{"get":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":66,"character":45,"context":{"typeName":"PropContributorCallback"},"module":"./lib/models/props"}]}]}],"addContributor":[{"__symbolic":"method"}],"clearContributors":[{"__symbolic":"method"}]}},"PropCallback":{"__symbolic":"interface"},"PropList":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@abp/utils","name":"LinkedList","line":6,"character":61},"members":{}},"PropPredicate":{"__symbolic":"interface"},"PropData":{"__symbolic":"interface"},"ToolbarAction":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":29,"character":23,"context":{"typeName":"ToolbarActionOptions"},"module":"./lib/models/toolbar-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ToolbarAction"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ToolbarAction"},"member":"create"}]}}}},"ToolbarActionContributorCallback":{"__symbolic":"interface"},"ToolbarActionList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ActionList"},"members":{}},"ToolbarActionOptions":{"__symbolic":"interface"},"ToolbarActions":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵd"},"members":{}},"ToolbarActionsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{}},"ToolbarComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":47,"character":23,"context":{"typeName":"ToolbarComponentOptions"},"module":"./lib/models/toolbar-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ToolbarComponent"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ToolbarComponent"},"member":"create"}]}}}},"ToolbarComponentOptions":{"__symbolic":"interface"},"ExtensionsService":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ɵprov":{}}},"EXTENSIONS_IDENTIFIER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":41},"arguments":["EXTENSIONS_IDENTIFIER"]},"ActionKeys":{"__symbolic":"interface"},"EXTENSIONS_ACTION_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":7,"character":42},"arguments":["EXTENSIONS_ACTION_TYPE"]},"EXTENSIONS_ACTION_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":42},"arguments":["EXTENSIONS_ACTION_DATA"]},"EXTENSIONS_ACTION_CALLBACK":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":46},"arguments":["EXTENSIONS_ACTION_DATA"]},"BaseUiExtensionsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"PageToolbarComponent"},{"__symbolic":"reference","name":"GridActionsComponent"},{"__symbolic":"reference","name":"ExtensibleFormComponent"},{"__symbolic":"reference","name":"ExtensibleTableComponent"},{"__symbolic":"reference","name":"PropDataDirective"},{"__symbolic":"reference","name":"DisabledDirective"}],"declarations":[{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"PageToolbarComponent"},{"__symbolic":"reference","name":"GridActionsComponent"},{"__symbolic":"reference","name":"ExtensibleFormPropComponent"},{"__symbolic":"reference","name":"ExtensibleFormComponent"},{"__symbolic":"reference","name":"ExtensibleTableComponent"},{"__symbolic":"reference","name":"PropDataDirective"},{"__symbolic":"reference","name":"DisabledDirective"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":40,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":41,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":42,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDatepickerModule","line":43,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":44,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimepickerModule","line":45,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTypeaheadModule","line":46,"character":4}]}]}],"members":{}},"UiExtensionsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":51,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"BaseUiExtensionsModule"}],"imports":[{"__symbolic":"reference","name":"BaseUiExtensionsModule"}]}]}],"members":{}},"mergeWithDefaultActions":{"__symbolic":"function"},"generateFormFromProps":{"__symbolic":"function"},"createExtraPropertyValueResolver":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Lambda not supported","line":20,"character":9,"module":"./lib/utils/props.util"}},"mergeWithDefaultProps":{"__symbolic":"function"},"getObjectExtensionEntitiesFromStore":{"__symbolic":"function","parameters":["configState","moduleKey"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":24,"character":9,"context":{"name":"selectObjectExtensions"},"module":"./lib/utils/state.util"}},"mapEntitiesToContributors":{"__symbolic":"function","parameters":["configState","resource"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":75,"character":9},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":76,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":76,"character":14,"module":"./lib/utils/state.util"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"take","line":110,"character":4},"arguments":[1]}]}},"ɵi":{"__symbolic":"function","parameters":["dependency"],"value":{"__symbolic":"reference","name":"dependency"}},"ɵj":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":18,"character":24}]}]}}},"origins":{"DateTimeAdapter":"./lib/adapters/date-time.adapter","DateAdapter":"./lib/adapters/date.adapter","TimeAdapter":"./lib/adapters/time.adapter","DateTimePickerComponent":"./lib/components/date-time-picker/date-time-picker.component","ExtensibleFormPropComponent":"./lib/components/extensible-form/extensible-form-prop.component","ExtensibleFormComponent":"./lib/components/extensible-form/extensible-form.component","ExtensibleTableComponent":"./lib/components/extensible-table/extensible-table.component","GridActionsComponent":"./lib/components/grid-actions/grid-actions.component","PageToolbarComponent":"./lib/components/page-toolbar/page-toolbar.component","EXTRA_PROPERTIES_KEY":"./lib/constants/extra-properties","DisabledDirective":"./lib/directives/disabled.directive","PropDataDirective":"./lib/directives/prop-data.directive","ePropType":"./lib/enums/props.enum","ɵa":"./lib/models/actions","ɵb":"./lib/models/actions","ɵc":"./lib/models/actions","ɵd":"./lib/models/actions","ActionCallback":"./lib/models/actions","ActionList":"./lib/models/actions","ActionPredicate":"./lib/models/actions","ActionData":"./lib/models/actions","EntityAction":"./lib/models/entity-actions","EntityActionContributorCallback":"./lib/models/entity-actions","EntityActionList":"./lib/models/entity-actions","EntityActionOptions":"./lib/models/entity-actions","EntityActions":"./lib/models/entity-actions","EntityActionsFactory":"./lib/models/entity-actions","EntityProp":"./lib/models/entity-props","EntityPropContributorCallback":"./lib/models/entity-props","EntityPropList":"./lib/models/entity-props","EntityPropOptions":"./lib/models/entity-props","EntityProps":"./lib/models/entity-props","EntityPropsFactory":"./lib/models/entity-props","CreateFormPropContributorCallback":"./lib/models/form-props","CreateFormPropsFactory":"./lib/models/form-props","EditFormPropContributorCallback":"./lib/models/form-props","EditFormPropsFactory":"./lib/models/form-props","FormProp":"./lib/models/form-props","FormPropData":"./lib/models/form-props","FormPropList":"./lib/models/form-props","FormPropOptions":"./lib/models/form-props","FormProps":"./lib/models/form-props","ObjectExtensions":"./lib/models/object-extensions","ɵe":"./lib/models/props","ɵf":"./lib/models/props","ɵg":"./lib/models/props","ɵh":"./lib/models/props","PropCallback":"./lib/models/props","PropList":"./lib/models/props","PropPredicate":"./lib/models/props","PropData":"./lib/models/props","ToolbarAction":"./lib/models/toolbar-actions","ToolbarActionContributorCallback":"./lib/models/toolbar-actions","ToolbarActionList":"./lib/models/toolbar-actions","ToolbarActionOptions":"./lib/models/toolbar-actions","ToolbarActions":"./lib/models/toolbar-actions","ToolbarActionsFactory":"./lib/models/toolbar-actions","ToolbarComponent":"./lib/models/toolbar-actions","ToolbarComponentOptions":"./lib/models/toolbar-actions","ExtensionsService":"./lib/services/extensions.service","EXTENSIONS_IDENTIFIER":"./lib/tokens/extensions.token","ActionKeys":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_TYPE":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_DATA":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_CALLBACK":"./lib/tokens/extensions.token","BaseUiExtensionsModule":"./lib/ui-extensions.module","UiExtensionsModule":"./lib/ui-extensions.module","mergeWithDefaultActions":"./lib/utils/actions.util","generateFormFromProps":"./lib/utils/form-props.util","createExtraPropertyValueResolver":"./lib/utils/props.util","mergeWithDefaultProps":"./lib/utils/props.util","getObjectExtensionEntitiesFromStore":"./lib/utils/state.util","mapEntitiesToContributors":"./lib/utils/state.util","ɵi":"./lib/utils/factory.util","ɵj":"./lib/components/abstract-actions/abstract-actions.component"},"importAs":"@abp/ng.theme.shared/extensions"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"DateTimeAdapter":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}]}},"DateAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":5,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}],"dateOf":[{"__symbolic":"method"}]}},"TimeAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":5,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"fromModel":[{"__symbolic":"method"}],"toModel":[{"__symbolic":"method"}]}},"DateTimePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"exportAs":"abpDateTimePicker","selector":"abp-date-time-picker","template":"\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setTime($event)\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n <ngb-timepicker\n #timepicker\n [formControlName]=\"prop.name\"\n (ngModelChange)=\"setDate($event)\"\n [meridian]=\"meridian\"\n ></ngb-timepicker>\n ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":42,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":45,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":47,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":47,"character":46}]]},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":50,"character":15},"useClass":{"__symbolic":"reference","name":"DateTimeAdapter"}},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":54,"character":15},"useClass":{"__symbolic":"reference","name":"DateTimeAdapter"}}]}]}],"members":{"prop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"meridian":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"date":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":63,"character":3},"arguments":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbInputDatepicker","line":63,"character":13}]}]}],"time":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":64,"character":3},"arguments":[{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimepicker","line":64,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":66,"character":37}]}],"setDate":[{"__symbolic":"method"}],"setTime":[{"__symbolic":"method"}]}},"ExtensibleFormPropComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"abp-extensible-form-prop","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":37,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":40,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":42,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":42,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":42,"character":46}]]},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDateAdapter","line":44,"character":15},"useClass":{"__symbolic":"reference","name":"DateAdapter"}},{"provide":{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimeAdapter","line":45,"character":15},"useClass":{"__symbolic":"reference","name":"TimeAdapter"}}],"template":"<div class=\"form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\n <ng-template ngSwitchCase=\"input\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [autocomplete]=\"prop.autocomplete\"\n [type]=\"getType(prop)\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"hidden\">\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </ng-template>\n\n <ng-template ngSwitchCase=\"checkbox\">\n <div class=\"custom-checkbox custom-control\" validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n type=\"checkbox\"\n class=\"custom-control-input\"\n />\n <ng-template\n [ngTemplateOutlet]=\"label\"\n [ngTemplateOutletContext]=\"{ $implicit: 'custom-control-label' }\"\n ></ng-template>\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"select\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"multiselect\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <select\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n multiple=\"multiple\"\n class=\"custom-select form-control\"\n >\n <option\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\n [ngValue]=\"option.value\"\n >\n {{ option.key }}\n </option>\n </select>\n </ng-template>\n\n <ng-template ngSwitchCase=\"typeahead\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\n <input\n #field\n [id]=\"prop.id\"\n [autocomplete]=\"prop.autocomplete\"\n [abpDisabled]=\"disabled\"\n [ngbTypeahead]=\"search\"\n [editable]=\"false\"\n [inputFormatter]=\"typeaheadFormatter\"\n [resultFormatter]=\"typeaheadFormatter\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"typeaheadModel\"\n (selectItem)=\"setTypeaheadValue($event.item)\"\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\n class=\"form-control\"\n />\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\n </div>\n </ng-template>\n\n <ng-template ngSwitchCase=\"date\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <input\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n (click)=\"datepicker.open()\"\n (keyup.space)=\"datepicker.open()\"\n ngbDatepicker\n #datepicker=\"ngbDatepicker\"\n type=\"text\"\n class=\"form-control\"\n />\n </ng-template>\n\n <ng-template ngSwitchCase=\"time\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"dateTime\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\n </ng-template>\n\n <ng-template ngSwitchCase=\"textarea\">\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\n <textarea\n #field\n [id]=\"prop.id\"\n [formControlName]=\"prop.name\"\n [abpDisabled]=\"disabled\"\n [readonly]=\"readonly\"\n class=\"form-control\"\n ></textarea>\n </ng-template>\n</div>\n\n<ng-template #label let-classes>\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes\"\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\n >\n</ng-template>\n"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"prop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"first":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"fieldRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["field"]}]}],"setTypeaheadValue":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"TrackByService","line":104,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigStateService","line":105,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"FormGroupDirective","line":106,"character":20}]}],"getTypeaheadControls":[{"__symbolic":"method"}],"setAsterisk":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"getComponent":[{"__symbolic":"method"}],"getType":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ExtensibleFormComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"exportAs":"abpExtensibleForm","selector":"abp-extensible-form","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":24,"character":19},"member":"OnPush"},"viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":27,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵi"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":29,"character":18}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":29,"character":34}},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":29,"character":46}]]}],"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"}]}],"members":{"formProps":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ExtensibleFormPropComponent"}]}]}],"selectedRecord":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":61,"character":5},"arguments":[{"__symbolic":"reference","name":"EXTENSIONS_IDENTIFIER"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":57,"character":27},{"__symbolic":"reference","module":"@abp/ng.core","name":"TrackByService","line":58,"character":27},{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":59,"character":23},{"__symbolic":"reference","name":"ExtensionsService"},{"__symbolic":"reference","name":"string"}]}]}},"ExtensibleTableComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"exportAs":"abpExtensibleTable","selector":"abp-extensible-table","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":38,"character":19},"member":"OnPush"},"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 <div\n *ngIf=\"row['_' + prop.name]?.visible\"\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>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n"}]}],"members":{"actionsText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"recordsTotal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"actionsColumnWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"actionsTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":71,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":71,"character":12}]}],null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@abp/ng.core","name":"ConfigStateService","line":72,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":73,"character":14}]}],"setColumnWidths":[{"__symbolic":"method"}],"getDate":[{"__symbolic":"method"}],"getIcon":[{"__symbolic":"method"}],"getContent":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"GridActionsComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵj"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"exportAs":"abpGridActions","selector":"abp-grid-actions","providers":[{"provide":{"__symbolic":"reference","name":"EXTENSIONS_ACTION_TYPE"},"useValue":"entityActions"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":21,"character":19},"member":"OnPush"},"template":"<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\n <button\n class=\"btn btn-primary btn-sm dropdown-toggle\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n ngbDropdownToggle\n >\n <i [ngClass]=\"icon\" [class.mr-1]=\"icon\"></i>{{ text | abpLocalization }}\n </button>\n <div ngbDropdownMenu>\n <ng-container\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\n >\n </ng-container>\n </div>\n</div>\n\n<ng-container\n *ngIf=\"actionList.length === 1\"\n [ngTemplateOutlet]=\"btnItem\"\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\n></ng-container>\n\n<ng-template #btnItem let-action>\n <ng-container *ngIf=\"action.visible(data)\">\n <button\n ngbDropdownItem\n *abpPermission=\"action.permission\"\n (click)=\"action.action(data)\"\n type=\"button\"\n class=\"{{ actionList.length === 1 ? 'btn btn-primary' : '' }}\"\n [class.text-center]=\"actionList.length === 1\"\n >\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\n <ng-template #ellipsis>\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\n </ng-template>\n </button>\n </ng-container>\n</ng-template>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":32,"character":24}]}]}},"PageToolbarComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵj"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"exportAs":"abpPageToolbar","selector":"abp-page-toolbar","providers":[{"provide":{"__symbolic":"reference","name":"EXTENSIONS_ACTION_TYPE"},"useValue":"toolbarActions"}],"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":27,"character":19},"member":"OnPush"},"template":"<div class=\"row justify-content-end mx-n1\" id=\"AbpContentToolbar\">\n <div class=\"col-auto px-1 pt-0 pt-md-2\" *ngFor=\"let action of actionList; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.visible(data)\">\n <ng-container *abpPermission=\"action.permission\">\n <ng-container *ngIf=\"action.component as component; else button\">\n <ng-container\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\n ></ng-container>\n </ng-container>\n\n <ng-template #button>\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\n <i [ngClass]=\"action.icon\" [class.mr-1]=\"action.icon\"></i>\n {{ action.text | abpLocalization }}\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":33,"character":41}]}],"createInjector":[{"__symbolic":"method"}]}},"EXTRA_PROPERTIES_KEY":"extraProperties","DisabledDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[abpDisabled]"}]}],"members":{"abpDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":10,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":10,"character":41}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"PropDataDirective":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"exportAs":"abpPropData","selector":"[abpPropData]"}]}],"members":{"propList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["abpPropDataFromList"]}]}],"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3},"arguments":["abpPropDataWithRecord"]}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["abpPropDataAtIndex"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":29,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":30,"character":14}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ePropType":{"Boolean":"boolean","Date":"date","DateTime":"dateTime","Email":"email","Enum":"enum","Hidden":"hidden","MultiSelect":"multiselect","Number":"number","Password":"password","String":"string","Text":"text","Time":"time","Typeahead":"typeahead"},"ɵa":{"__symbolic":"class","arity":1,"members":{}},"ɵb":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":30,"character":29,"context":{"typeName":"ActionPredicate"},"module":"./lib/models/actions"},{"__symbolic":"error","message":"Could not resolve type","line":31,"character":28,"context":{"typeName":"ActionCallback"},"module":"./lib/models/actions"}]}]}},"ɵc":{"__symbolic":"class","arity":1,"members":{"get":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":60,"character":45,"context":{"typeName":"ActionContributorCallback"},"module":"./lib/models/actions"}]}]}],"addContributor":[{"__symbolic":"method"}],"clearContributors":[{"__symbolic":"method"}]}},"ActionCallback":{"__symbolic":"interface"},"ActionList":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@abp/utils","name":"LinkedList","line":5,"character":65},"members":{}},"ActionPredicate":{"__symbolic":"interface"},"ActionData":{"__symbolic":"interface"},"EntityAction":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":26,"character":23,"context":{"typeName":"EntityActionOptions"},"module":"./lib/models/entity-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityAction"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityAction"},"member":"create"}]}}}},"EntityActionContributorCallback":{"__symbolic":"interface"},"EntityActionList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ActionList"},"members":{}},"EntityActionOptions":{"__symbolic":"interface"},"EntityActions":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵd"},"members":{}},"EntityActionsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{}},"EntityProp":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵf"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":31,"character":23,"context":{"typeName":"EntityPropOptions"},"module":"./lib/models/entity-props"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"EntityProp"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"EntityProp"},"member":"create"}]}}}},"EntityPropContributorCallback":{"__symbolic":"interface"},"EntityPropList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"PropList"},"members":{}},"EntityPropOptions":{"__symbolic":"interface"},"EntityProps":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵh"},"members":{}},"EntityPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"CreateFormPropContributorCallback":{"__symbolic":"interface"},"CreateFormPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"EditFormPropContributorCallback":{"__symbolic":"interface"},"EditFormPropsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵg"},"members":{}},"FormProp":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵf"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":42,"character":23,"context":{"typeName":"FormPropOptions"},"module":"./lib/models/form-props"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FormProp"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"FormProp"},"member":"create"}]}}}},"FormPropData":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵe"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":75,"character":24},{"__symbolic":"error","message":"Could not resolve type","line":75,"character":58,"context":{"typeName":"R"},"module":"./lib/models/form-props"}]}]}},"FormPropList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"PropList"},"members":{}},"FormPropOptions":{"__symbolic":"interface"},"FormProps":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵh"},"members":{}},"ObjectExtensions":{"__symbolic":"error","message":"Unsupported bundled module reference","context":{"module":"./internal/object-extensions"}},"ɵe":{"__symbolic":"class","arity":1,"members":{}},"ɵf":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ePropType"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Could not resolve type","line":34,"character":29,"context":{"typeName":"PropPredicate"},"module":"./lib/models/props"},null]}]}},"ɵg":{"__symbolic":"class","arity":1,"members":{"get":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":66,"character":45,"context":{"typeName":"PropContributorCallback"},"module":"./lib/models/props"}]}]}],"addContributor":[{"__symbolic":"method"}],"clearContributors":[{"__symbolic":"method"}]}},"PropCallback":{"__symbolic":"interface"},"PropList":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","module":"@abp/utils","name":"LinkedList","line":6,"character":61},"members":{}},"PropPredicate":{"__symbolic":"interface"},"PropData":{"__symbolic":"interface"},"ToolbarAction":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":29,"character":23,"context":{"typeName":"ToolbarActionOptions"},"module":"./lib/models/toolbar-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ToolbarAction"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ToolbarAction"},"member":"create"}]}}}},"ToolbarActionContributorCallback":{"__symbolic":"interface"},"ToolbarActionList":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ActionList"},"members":{}},"ToolbarActionOptions":{"__symbolic":"interface"},"ToolbarActions":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵd"},"members":{}},"ToolbarActionsFactory":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵc"},"members":{}},"ToolbarComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵb"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":47,"character":23,"context":{"typeName":"ToolbarComponentOptions"},"module":"./lib/models/toolbar-actions"}]}]},"statics":{"create":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ToolbarComponent"},"arguments":[{"__symbolic":"reference","name":"options"}]}},"createMany":{"__symbolic":"function","parameters":["arrayOfOptions"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"arrayOfOptions"},"member":"map"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ToolbarComponent"},"member":"create"}]}}}},"ToolbarComponentOptions":{"__symbolic":"interface"},"ExtensionsService":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ɵprov":{}}},"EXTENSIONS_IDENTIFIER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":41},"arguments":["EXTENSIONS_IDENTIFIER"]},"ActionKeys":{"__symbolic":"interface"},"EXTENSIONS_ACTION_TYPE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":7,"character":42},"arguments":["EXTENSIONS_ACTION_TYPE"]},"EXTENSIONS_ACTION_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":42},"arguments":["EXTENSIONS_ACTION_DATA"]},"EXTENSIONS_ACTION_CALLBACK":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":46},"arguments":["EXTENSIONS_ACTION_DATA"]},"BaseUiExtensionsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"PageToolbarComponent"},{"__symbolic":"reference","name":"GridActionsComponent"},{"__symbolic":"reference","name":"ExtensibleFormComponent"},{"__symbolic":"reference","name":"ExtensibleTableComponent"},{"__symbolic":"reference","name":"PropDataDirective"},{"__symbolic":"reference","name":"DisabledDirective"}],"declarations":[{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"PageToolbarComponent"},{"__symbolic":"reference","name":"GridActionsComponent"},{"__symbolic":"reference","name":"ExtensibleFormPropComponent"},{"__symbolic":"reference","name":"ExtensibleFormComponent"},{"__symbolic":"reference","name":"ExtensibleTableComponent"},{"__symbolic":"reference","name":"PropDataDirective"},{"__symbolic":"reference","name":"DisabledDirective"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":40,"character":4},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":41,"character":4},{"__symbolic":"reference","module":"@ngx-validate/core","name":"NgxValidateCoreModule","line":42,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDatepickerModule","line":43,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbDropdownModule","line":44,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTimepickerModule","line":45,"character":4},{"__symbolic":"reference","module":"@ng-bootstrap/ng-bootstrap","name":"NgbTypeaheadModule","line":46,"character":4}]}]}],"members":{}},"UiExtensionsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":51,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"BaseUiExtensionsModule"}],"imports":[{"__symbolic":"reference","name":"BaseUiExtensionsModule"}]}]}],"members":{}},"mergeWithDefaultActions":{"__symbolic":"function"},"generateFormFromProps":{"__symbolic":"function"},"createExtraPropertyValueResolver":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Lambda not supported","line":20,"character":9,"module":"./lib/utils/props.util"}},"mergeWithDefaultProps":{"__symbolic":"function"},"getObjectExtensionEntitiesFromStore":{"__symbolic":"function","parameters":["configState","moduleKey"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":24,"character":9,"context":{"name":"selectObjectExtensions"},"module":"./lib/utils/state.util"}},"mapEntitiesToContributors":{"__symbolic":"function","parameters":["configState","resource"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"pipe","line":75,"character":9},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":76,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":76,"character":14,"module":"./lib/utils/state.util"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"take","line":110,"character":4},"arguments":[1]}]}},"ɵi":{"__symbolic":"function","parameters":["dependency"],"value":{"__symbolic":"reference","name":"dependency"}},"ɵj":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"record":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":18,"character":24}]}]}}},"origins":{"DateTimeAdapter":"./lib/adapters/date-time.adapter","DateAdapter":"./lib/adapters/date.adapter","TimeAdapter":"./lib/adapters/time.adapter","DateTimePickerComponent":"./lib/components/date-time-picker/date-time-picker.component","ExtensibleFormPropComponent":"./lib/components/extensible-form/extensible-form-prop.component","ExtensibleFormComponent":"./lib/components/extensible-form/extensible-form.component","ExtensibleTableComponent":"./lib/components/extensible-table/extensible-table.component","GridActionsComponent":"./lib/components/grid-actions/grid-actions.component","PageToolbarComponent":"./lib/components/page-toolbar/page-toolbar.component","EXTRA_PROPERTIES_KEY":"./lib/constants/extra-properties","DisabledDirective":"./lib/directives/disabled.directive","PropDataDirective":"./lib/directives/prop-data.directive","ePropType":"./lib/enums/props.enum","ɵa":"./lib/models/actions","ɵb":"./lib/models/actions","ɵc":"./lib/models/actions","ɵd":"./lib/models/actions","ActionCallback":"./lib/models/actions","ActionList":"./lib/models/actions","ActionPredicate":"./lib/models/actions","ActionData":"./lib/models/actions","EntityAction":"./lib/models/entity-actions","EntityActionContributorCallback":"./lib/models/entity-actions","EntityActionList":"./lib/models/entity-actions","EntityActionOptions":"./lib/models/entity-actions","EntityActions":"./lib/models/entity-actions","EntityActionsFactory":"./lib/models/entity-actions","EntityProp":"./lib/models/entity-props","EntityPropContributorCallback":"./lib/models/entity-props","EntityPropList":"./lib/models/entity-props","EntityPropOptions":"./lib/models/entity-props","EntityProps":"./lib/models/entity-props","EntityPropsFactory":"./lib/models/entity-props","CreateFormPropContributorCallback":"./lib/models/form-props","CreateFormPropsFactory":"./lib/models/form-props","EditFormPropContributorCallback":"./lib/models/form-props","EditFormPropsFactory":"./lib/models/form-props","FormProp":"./lib/models/form-props","FormPropData":"./lib/models/form-props","FormPropList":"./lib/models/form-props","FormPropOptions":"./lib/models/form-props","FormProps":"./lib/models/form-props","ObjectExtensions":"./lib/models/object-extensions","ɵe":"./lib/models/props","ɵf":"./lib/models/props","ɵg":"./lib/models/props","ɵh":"./lib/models/props","PropCallback":"./lib/models/props","PropList":"./lib/models/props","PropPredicate":"./lib/models/props","PropData":"./lib/models/props","ToolbarAction":"./lib/models/toolbar-actions","ToolbarActionContributorCallback":"./lib/models/toolbar-actions","ToolbarActionList":"./lib/models/toolbar-actions","ToolbarActionOptions":"./lib/models/toolbar-actions","ToolbarActions":"./lib/models/toolbar-actions","ToolbarActionsFactory":"./lib/models/toolbar-actions","ToolbarComponent":"./lib/models/toolbar-actions","ToolbarComponentOptions":"./lib/models/toolbar-actions","ExtensionsService":"./lib/services/extensions.service","EXTENSIONS_IDENTIFIER":"./lib/tokens/extensions.token","ActionKeys":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_TYPE":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_DATA":"./lib/tokens/extensions.token","EXTENSIONS_ACTION_CALLBACK":"./lib/tokens/extensions.token","BaseUiExtensionsModule":"./lib/ui-extensions.module","UiExtensionsModule":"./lib/ui-extensions.module","mergeWithDefaultActions":"./lib/utils/actions.util","generateFormFromProps":"./lib/utils/form-props.util","createExtraPropertyValueResolver":"./lib/utils/props.util","mergeWithDefaultProps":"./lib/utils/props.util","getObjectExtensionEntitiesFromStore":"./lib/utils/state.util","mapEntitiesToContributors":"./lib/utils/state.util","ɵi":"./lib/utils/factory.util","ɵj":"./lib/components/abstract-actions/abstract-actions.component"},"importAs":"@abp/ng.theme.shared/extensions"}
|
|
@@ -2,4 +2,5 @@ import { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
|
|
|
2
2
|
export declare class DateAdapter extends NgbDateAdapter<string> {
|
|
3
3
|
fromModel(value: string | Date): NgbDateStruct | null;
|
|
4
4
|
toModel(value: NgbDateStruct | null): string;
|
|
5
|
+
protected dateOf(value: string): Date;
|
|
5
6
|
}
|
|
@@ -20,6 +20,7 @@ export declare class ExtensibleTableComponent<R = any> implements OnChanges {
|
|
|
20
20
|
readonly propList: EntityPropList<R>;
|
|
21
21
|
readonly actionList: EntityActionList<R>;
|
|
22
22
|
readonly trackByFn: TrackByFunction<EntityProp<R>>;
|
|
23
|
+
hasAtLeastOnePermittedAction: boolean;
|
|
23
24
|
constructor(locale: string, config: ConfigStateService, injector: Injector);
|
|
24
25
|
private setColumnWidths;
|
|
25
26
|
private getDate;
|
|
@@ -3,7 +3,7 @@ import { Injectable, Component, ChangeDetectionStrategy, Optional, SkipSelf, Cha
|
|
|
3
3
|
import { formatDate } from '@angular/common';
|
|
4
4
|
import { NgbDateAdapter, NgbTimeAdapter, NgbInputDatepicker, NgbTimepicker, NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
5
|
import { ControlContainer, FormGroupDirective, Validators, NgControl, FormGroup, FormControl } from '@angular/forms';
|
|
6
|
-
import { RestService, TrackByService, ConfigStateService, AbpValidators, getShortDateShortTimeFormat, getShortTimeFormat, getShortDateFormat, CoreModule, LocalizationService, createLocalizationPipeKeyGenerator } from '@abp/ng.core';
|
|
6
|
+
import { RestService, TrackByService, ConfigStateService, AbpValidators, PermissionService, getShortDateShortTimeFormat, getShortTimeFormat, getShortDateFormat, CoreModule, LocalizationService, createLocalizationPipeKeyGenerator } from '@abp/ng.core';
|
|
7
7
|
import { of, merge, pipe, zip } from 'rxjs';
|
|
8
8
|
import { map, debounceTime, distinctUntilChanged, switchMap, filter, take } from 'rxjs/operators';
|
|
9
9
|
import snq from 'snq';
|
|
@@ -45,7 +45,13 @@ class DateAdapter extends NgbDateAdapter {
|
|
|
45
45
|
fromModel(value) {
|
|
46
46
|
if (!value)
|
|
47
47
|
return null;
|
|
48
|
-
|
|
48
|
+
let date;
|
|
49
|
+
if (typeof value === 'string') {
|
|
50
|
+
date = this.dateOf(value);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
date = new Date(value);
|
|
54
|
+
}
|
|
49
55
|
if (isNaN(date))
|
|
50
56
|
return null;
|
|
51
57
|
return {
|
|
@@ -61,6 +67,10 @@ class DateAdapter extends NgbDateAdapter {
|
|
|
61
67
|
const formattedDate = formatDate(date, 'yyyy-MM-dd', 'en');
|
|
62
68
|
return formattedDate;
|
|
63
69
|
}
|
|
70
|
+
dateOf(value) {
|
|
71
|
+
const dateUtc = new Date(Date.parse(value));
|
|
72
|
+
return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));
|
|
73
|
+
}
|
|
64
74
|
}
|
|
65
75
|
DateAdapter.decorators = [
|
|
66
76
|
{ type: Injectable }
|
|
@@ -680,6 +690,9 @@ class ExtensibleTableComponent {
|
|
|
680
690
|
this.propList = extensions.entityProps.get(name).props;
|
|
681
691
|
this.actionList = extensions['entityActions'].get(name)
|
|
682
692
|
.actions;
|
|
693
|
+
const permissionService = injector.get(PermissionService);
|
|
694
|
+
this.hasAtLeastOnePermittedAction =
|
|
695
|
+
permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
|
|
683
696
|
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
|
|
684
697
|
}
|
|
685
698
|
set actionsText(value) {
|
|
@@ -743,7 +756,7 @@ ExtensibleTableComponent.decorators = [
|
|
|
743
756
|
{ type: Component, args: [{
|
|
744
757
|
exportAs: 'abpExtensibleTable',
|
|
745
758
|
selector: 'abp-extensible-table',
|
|
746
|
-
template: "<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\n <ngx-datatable-column\n *ngIf=\"actionsTemplate || actionList.length\"\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 <div\n *ngIf=\"row['_' + prop.name]
|
|
759
|
+
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 <div\n *ngIf=\"row['_' + prop.name]?.visible\"\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>\n </ngx-datatable-column>\n </ng-container>\n</ngx-datatable>\n",
|
|
747
760
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
748
761
|
},] }
|
|
749
762
|
];
|