@abp/ng.components 7.4.2 → 8.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/chart.js/chart.component.mjs +5 -5
- package/esm2022/chart.js/chart.module.mjs +5 -5
- package/esm2022/extensible/abp-ng.components-extensible.mjs +5 -0
- package/esm2022/extensible/lib/components/abstract-actions/abstract-actions.component.mjs +25 -0
- package/esm2022/extensible/lib/components/date-time-picker/extensible-date-time-picker.component.mjs +111 -0
- package/esm2022/extensible/lib/components/extensible-form/extensible-form-prop.component.mjs +164 -0
- package/esm2022/extensible/lib/components/extensible-form/extensible-form.component.mjs +67 -0
- package/esm2022/extensible/lib/components/extensible-table/extensible-table.component.mjs +145 -0
- package/esm2022/extensible/lib/components/grid-actions/grid-actions.component.mjs +41 -0
- package/esm2022/extensible/lib/components/index.mjs +8 -0
- package/esm2022/extensible/lib/components/page-toolbar/page-toolbar.component.mjs +39 -0
- package/esm2022/extensible/lib/constants/extra-properties.mjs +2 -0
- package/esm2022/extensible/lib/directives/prop-data.directive.mjs +42 -0
- package/esm2022/extensible/lib/enums/components.mjs +2 -0
- package/esm2022/extensible/lib/enums/props.enum.mjs +2 -0
- package/esm2022/extensible/lib/extensible.module.mjs +80 -0
- package/esm2022/extensible/lib/models/actions.mjs +48 -0
- package/esm2022/extensible/lib/models/entity-actions.mjs +31 -0
- package/esm2022/extensible/lib/models/entity-props.mjs +45 -0
- package/esm2022/extensible/lib/models/form-props.mjs +76 -0
- package/esm2022/extensible/lib/models/internal/object-extensions.mjs +2 -0
- package/esm2022/extensible/lib/models/object-extensions.mjs +3 -0
- package/esm2022/extensible/lib/models/props.mjs +54 -0
- package/esm2022/extensible/lib/models/toolbar-actions.mjs +44 -0
- package/esm2022/extensible/lib/pipes/create-injector.pipe.mjs +37 -0
- package/esm2022/extensible/lib/services/extensible-form-prop.service.mjs +77 -0
- package/esm2022/extensible/lib/services/extensions.service.mjs +24 -0
- package/esm2022/extensible/lib/tokens/extensible-form-view-provider.token.mjs +3 -0
- package/esm2022/extensible/lib/tokens/extensions.token.mjs +12 -0
- package/esm2022/extensible/lib/utils/actions.util.mjs +9 -0
- package/esm2022/extensible/lib/utils/enum.util.mjs +42 -0
- package/esm2022/extensible/lib/utils/factory.util.mjs +4 -0
- package/esm2022/extensible/lib/utils/form-props.util.mjs +49 -0
- package/esm2022/extensible/lib/utils/localization.util.mjs +13 -0
- package/esm2022/extensible/lib/utils/props.util.mjs +14 -0
- package/esm2022/extensible/lib/utils/state.util.mjs +126 -0
- package/esm2022/extensible/lib/utils/typeahead.util.mjs +53 -0
- package/esm2022/extensible/lib/utils/validation.util.mjs +11 -0
- package/esm2022/extensible/public-api.mjs +27 -0
- package/esm2022/page/page-part.directive.mjs +6 -6
- package/esm2022/page/page-parts.component.mjs +10 -10
- package/esm2022/page/page.component.mjs +6 -6
- package/esm2022/page/page.module.mjs +10 -11
- package/esm2022/tree/lib/components/tree.component.mjs +6 -6
- package/esm2022/tree/lib/templates/expanded-icon-template.directive.mjs +5 -5
- package/esm2022/tree/lib/templates/tree-node-template.directive.mjs +5 -5
- package/esm2022/tree/lib/tree.module.mjs +5 -5
- package/extensible/README.md +3 -0
- package/extensible/index.d.ts +5 -0
- package/extensible/lib/components/abstract-actions/abstract-actions.component.d.ts +12 -0
- package/extensible/lib/components/date-time-picker/extensible-date-time-picker.component.d.ts +16 -0
- package/extensible/lib/components/extensible-form/extensible-form-prop.component.d.ts +44 -0
- package/extensible/lib/components/extensible-form/extensible-form.component.d.ts +23 -0
- package/extensible/lib/components/extensible-table/extensible-table.component.d.ts +52 -0
- package/extensible/lib/components/grid-actions/grid-actions.component.d.ts +13 -0
- package/extensible/lib/components/index.d.ts +7 -0
- package/extensible/lib/components/page-toolbar/page-toolbar.component.d.ts +20 -0
- package/extensible/lib/constants/extra-properties.d.ts +1 -0
- package/extensible/lib/directives/prop-data.directive.d.ts +19 -0
- package/extensible/lib/enums/components.d.ts +3 -0
- package/extensible/lib/enums/props.enum.d.ts +16 -0
- package/extensible/lib/extensible.module.d.ts +18 -0
- package/extensible/lib/models/actions.d.ts +38 -0
- package/extensible/lib/models/entity-actions.d.ts +24 -0
- package/extensible/lib/models/entity-props.d.ts +33 -0
- package/extensible/lib/models/form-props.d.ts +59 -0
- package/extensible/lib/models/internal/object-extensions.d.ts +86 -0
- package/extensible/lib/models/object-extensions.d.ts +2 -0
- package/extensible/lib/models/props.d.ts +45 -0
- package/extensible/lib/models/toolbar-actions.d.ts +38 -0
- package/extensible/lib/pipes/create-injector.pipe.d.ts +8 -0
- package/extensible/lib/services/extensible-form-prop.service.d.ts +13 -0
- package/extensible/lib/services/extensions.service.d.ts +14 -0
- package/extensible/lib/tokens/extensible-form-view-provider.token.d.ts +5 -0
- package/extensible/lib/tokens/extensions.token.d.ts +20 -0
- package/extensible/lib/utils/actions.util.d.ts +7 -0
- package/extensible/lib/utils/enum.util.d.ts +7 -0
- package/extensible/lib/utils/factory.util.d.ts +1 -0
- package/extensible/lib/utils/form-props.util.d.ts +3 -0
- package/extensible/lib/utils/localization.util.d.ts +3 -0
- package/extensible/lib/utils/props.util.d.ts +9 -0
- package/extensible/lib/utils/state.util.d.ts +5 -0
- package/extensible/lib/utils/typeahead.util.d.ts +11 -0
- package/extensible/lib/utils/validation.util.d.ts +3 -0
- package/extensible/public-api.d.ts +26 -0
- package/fesm2022/abp-ng.components-chart.js.mjs +8 -8
- package/fesm2022/abp-ng.components-chart.js.mjs.map +1 -1
- package/fesm2022/abp-ng.components-extensible.mjs +1371 -0
- package/fesm2022/abp-ng.components-extensible.mjs.map +1 -0
- package/fesm2022/abp-ng.components-page.mjs +29 -30
- package/fesm2022/abp-ng.components-page.mjs.map +1 -1
- package/fesm2022/abp-ng.components-tree.mjs +17 -17
- package/fesm2022/abp-ng.components-tree.mjs.map +1 -1
- package/package.json +10 -4
- package/page/page.module.d.ts +4 -5
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { TrackByService } from '@abp/ng.core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';
|
|
3
|
+
import { ControlContainer, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';
|
|
5
|
+
import { GroupedFormPropList } from '../../models/form-props';
|
|
6
|
+
import { ExtensionsService } from '../../services/extensions.service';
|
|
7
|
+
import { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';
|
|
8
|
+
import { selfFactory } from '../../utils/factory.util';
|
|
9
|
+
import { ExtensibleFormPropComponent } from './extensible-form-prop.component';
|
|
10
|
+
import { CommonModule } from "@angular/common";
|
|
11
|
+
import { PropDataDirective } from "../../directives/prop-data.directive";
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@angular/common";
|
|
14
|
+
import * as i2 from "@angular/forms";
|
|
15
|
+
export class ExtensibleFormComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;
|
|
18
|
+
this.cdRef = inject(ChangeDetectorRef);
|
|
19
|
+
this.track = inject(TrackByService);
|
|
20
|
+
this.container = inject(ControlContainer);
|
|
21
|
+
this.extensions = inject(ExtensionsService);
|
|
22
|
+
this.identifier = inject(EXTENSIONS_IDENTIFIER);
|
|
23
|
+
}
|
|
24
|
+
set selectedRecord(record) {
|
|
25
|
+
const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';
|
|
26
|
+
const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;
|
|
27
|
+
this.groupedPropList = this.createGroupedList(propList);
|
|
28
|
+
this.record = record;
|
|
29
|
+
}
|
|
30
|
+
createGroupedList(propList) {
|
|
31
|
+
const groupedFormPropList = new GroupedFormPropList();
|
|
32
|
+
propList.forEach(item => {
|
|
33
|
+
groupedFormPropList.addItem(item.value);
|
|
34
|
+
});
|
|
35
|
+
return groupedFormPropList;
|
|
36
|
+
}
|
|
37
|
+
get form() {
|
|
38
|
+
return (this.container ? this.container.control : { controls: {} });
|
|
39
|
+
}
|
|
40
|
+
get extraProperties() {
|
|
41
|
+
return (this.form.controls.extraProperties || { controls: {} });
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ExtensibleFormComponent, isStandalone: true, selector: "abp-extensible-form", inputs: { selectedRecord: "selectedRecord" }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "<ng-container *ngIf=\"form\">\r\n\r\n <ng-container *ngFor=\"let groupedProp of groupedPropList.items\">\r\n <ng-container *abpPropData=\"let data; fromList: groupedProp.formPropList; withRecord: record\">\r\n\r\n <div *ngIf=\"groupedProp.group?.className; else withoutClassName\"\r\n [class]=\"groupedProp.group?.className\" [attr.data-name]=\"groupedProp.group?.className\">\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #withoutClassName>\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-container>\r\n\r\n\r\n<ng-template let-groupedProp=\"groupedProp\" let-data=\"data\" #propListTemplate>\r\n <ng-container *ngFor=\"let prop of groupedProp.formPropList; let first = first; trackBy: track.by('name')\">\r\n <ng-container *ngIf=\"prop.visible(data)\">\r\n <ng-container\r\n [formGroupName]=\"extraPropertiesKey\"\r\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\r\n >\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"\r\n [class]=\"prop.className\">\r\n </abp-extensible-form-prop>\r\n </ng-container>\r\n\r\n <ng-template #tempDefault>\r\n <abp-extensible-form-prop\r\n [class]=\"prop.className\"\r\n *ngIf=\"form.get(prop.name)\"\r\n [prop]=\"prop\"\r\n [data]=\"data\"\r\n [first]=\"first\"\r\n ></abp-extensible-form-prop>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PropDataDirective, selector: "[abpPropData]", inputs: ["abpPropDataFromList", "abpPropDataWithRecord", "abpPropDataAtIndex"], exportAs: ["abpPropData"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: ExtensibleFormPropComponent, selector: "abp-extensible-form-prop", inputs: ["data", "prop", "first"] }], viewProviders: [
|
|
45
|
+
{
|
|
46
|
+
provide: ControlContainer,
|
|
47
|
+
useFactory: selfFactory,
|
|
48
|
+
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
49
|
+
},
|
|
50
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ exportAs: 'abpExtensibleForm', selector: 'abp-extensible-form', standalone: true, imports: [CommonModule, PropDataDirective, ReactiveFormsModule, ExtensibleFormPropComponent], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
|
|
55
|
+
{
|
|
56
|
+
provide: ControlContainer,
|
|
57
|
+
useFactory: selfFactory,
|
|
58
|
+
deps: [[new Optional(), new SkipSelf(), ControlContainer]],
|
|
59
|
+
},
|
|
60
|
+
], template: "<ng-container *ngIf=\"form\">\r\n\r\n <ng-container *ngFor=\"let groupedProp of groupedPropList.items\">\r\n <ng-container *abpPropData=\"let data; fromList: groupedProp.formPropList; withRecord: record\">\r\n\r\n <div *ngIf=\"groupedProp.group?.className; else withoutClassName\"\r\n [class]=\"groupedProp.group?.className\" [attr.data-name]=\"groupedProp.group?.className\">\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #withoutClassName>\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\" [ngTemplateOutletContext]=\"{groupedProp:groupedProp,data:data}\">\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-container>\r\n\r\n\r\n<ng-template let-groupedProp=\"groupedProp\" let-data=\"data\" #propListTemplate>\r\n <ng-container *ngFor=\"let prop of groupedProp.formPropList; let first = first; trackBy: track.by('name')\">\r\n <ng-container *ngIf=\"prop.visible(data)\">\r\n <ng-container\r\n [formGroupName]=\"extraPropertiesKey\"\r\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\r\n >\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"\r\n [class]=\"prop.className\">\r\n </abp-extensible-form-prop>\r\n </ng-container>\r\n\r\n <ng-template #tempDefault>\r\n <abp-extensible-form-prop\r\n [class]=\"prop.className\"\r\n *ngIf=\"form.get(prop.name)\"\r\n [prop]=\"prop\"\r\n [data]=\"data\"\r\n [first]=\"first\"\r\n ></abp-extensible-form-prop>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n" }]
|
|
61
|
+
}], propDecorators: { formProps: [{
|
|
62
|
+
type: ViewChildren,
|
|
63
|
+
args: [ExtensibleFormPropComponent]
|
|
64
|
+
}], selectedRecord: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsTUFBTSxFQUNqQixLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQWUsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBaUJ2RSxNQUFNLE9BQU8sdUJBQXVCO0lBZnBDO1FBNEJJLHVCQUFrQixHQUFHLG9CQUFvQixDQUFDO1FBSTFCLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUNqQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3RDLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUNwQyxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0tBa0JyRDtJQWxDRyxJQUNJLGNBQWMsQ0FBQyxNQUFTO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBWUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDdkMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDdEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBcUIsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBcUIsQ0FBQztJQUN0RixDQUFDOzhHQXJDUSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwySkFFbEIsMkJBQTJCLGlGQ3RDN0MscTBEQTZDQSwyQ0RuQmEsWUFBWSx1YUFBRSxpQkFBaUIsb0tBQUMsbUJBQW1CLGtTQUFDLDJCQUEyQiw2RkFFekU7WUFDWDtnQkFDSSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixVQUFVLEVBQUUsV0FBVztnQkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUM3RDtTQUNKOzsyRkFFUSx1QkFBdUI7a0JBZm5DLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25CLHFCQUFxQixjQUVwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsbUJBQW1CLEVBQUMsMkJBQTJCLENBQUMsbUJBQ3hFLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDO3dCQUNYOzRCQUNJLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSxXQUFXOzRCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUM3RDtxQkFDSjs4QkFLRCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsMkJBQTJCO2dCQUlyQyxjQUFjO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFja0J5U2VydmljZX0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsIGluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIFZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb250cm9sQ29udGFpbmVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7RVhUUkFfUFJPUEVSVElFU19LRVl9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHtGb3JtUHJvcExpc3QsIEdyb3VwZWRGb3JtUHJvcExpc3R9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHtFeHRlbnNpb25zU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtFWFRFTlNJT05TX0lERU5USUZJRVJ9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHtzZWxmRmFjdG9yeX0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHtFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnR9IGZyb20gJy4vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtQcm9wRGF0YURpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBleHBvcnRBczogJ2FicEV4dGVuc2libGVGb3JtJyxcclxuICAgIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtZm9ybScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6dHJ1ZSxcclxuICAgIGltcG9ydHM6W0NvbW1vbk1vZHVsZSwgUHJvcERhdGFEaXJlY3RpdmUsUmVhY3RpdmVGb3Jtc01vZHVsZSxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnRdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcclxuICAgICAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvbnRyb2xDb250YWluZXJdXSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGb3JtQ29tcG9uZW50PFIgPSBhbnk+IHtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudClcclxuICAgIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgc2VsZWN0ZWRSZWNvcmQocmVjb3JkOiBSKSB7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9ICFyZWNvcmQgfHwgSlNPTi5zdHJpbmdpZnkocmVjb3JkKSA9PT0gJ3t9JyA/ICdjcmVhdGUnIDogJ2VkaXQnO1xyXG4gICAgICAgIGNvbnN0IHByb3BMaXN0ID0gdGhpcy5leHRlbnNpb25zW2Ake3R5cGV9Rm9ybVByb3BzYF0uZ2V0KHRoaXMuaWRlbnRpZmllcikucHJvcHM7XHJcbiAgICAgICAgdGhpcy5ncm91cGVkUHJvcExpc3QgPSB0aGlzLmNyZWF0ZUdyb3VwZWRMaXN0KHByb3BMaXN0KTtcclxuICAgICAgICB0aGlzLnJlY29yZCA9IHJlY29yZDtcclxuICAgIH1cclxuXHJcbiAgICBleHRyYVByb3BlcnRpZXNLZXkgPSBFWFRSQV9QUk9QRVJUSUVTX0tFWTtcclxuICAgIGdyb3VwZWRQcm9wTGlzdCE6IEdyb3VwZWRGb3JtUHJvcExpc3Q7XHJcbiAgICByZWNvcmQhOiBSO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHB1YmxpYyByZWFkb25seSB0cmFjayA9IGluamVjdChUcmFja0J5U2VydmljZSlcclxuICAgIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpXHJcbiAgICBwcml2YXRlIGV4dGVuc2lvbnMgPSBpbmplY3QoRXh0ZW5zaW9uc1NlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBpZGVudGlmaWVyID0gaW5qZWN0KEVYVEVOU0lPTlNfSURFTlRJRklFUilcclxuXHJcbiAgICBjcmVhdGVHcm91cGVkTGlzdChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFI+KSB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBlZEZvcm1Qcm9wTGlzdCA9IG5ldyBHcm91cGVkRm9ybVByb3BMaXN0KCk7XHJcbiAgICAgICAgcHJvcExpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgZ3JvdXBlZEZvcm1Qcm9wTGlzdC5hZGRJdGVtKGl0ZW0udmFsdWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBncm91cGVkRm9ybVByb3BMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5jb250YWluZXIgPyB0aGlzLmNvbnRhaW5lci5jb250cm9sIDoge2NvbnRyb2xzOiB7fX0pIGFzIFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGV4dHJhUHJvcGVydGllcygpOiBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scy5leHRyYVByb3BlcnRpZXMgfHwge2NvbnRyb2xzOiB7fX0pIGFzIFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtXCI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwZWRQcm9wIG9mIGdyb3VwZWRQcm9wTGlzdC5pdGVtc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqYWJwUHJvcERhdGE9XCJsZXQgZGF0YTsgZnJvbUxpc3Q6IGdyb3VwZWRQcm9wLmZvcm1Qcm9wTGlzdDsgd2l0aFJlY29yZDogcmVjb3JkXCI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXBlZFByb3AuZ3JvdXA/LmNsYXNzTmFtZTsgZWxzZSB3aXRob3V0Q2xhc3NOYW1lXCJcclxuICAgICAgICAgICBbY2xhc3NdPVwiZ3JvdXBlZFByb3AuZ3JvdXA/LmNsYXNzTmFtZVwiIFthdHRyLmRhdGEtbmFtZV09XCJncm91cGVkUHJvcC5ncm91cD8uY2xhc3NOYW1lXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9wTGlzdFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntncm91cGVkUHJvcDpncm91cGVkUHJvcCxkYXRhOmRhdGF9XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICN3aXRob3V0Q2xhc3NOYW1lPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJvcExpc3RUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7Z3JvdXBlZFByb3A6Z3JvdXBlZFByb3AsZGF0YTpkYXRhfVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgbGV0LWdyb3VwZWRQcm9wPVwiZ3JvdXBlZFByb3BcIiBsZXQtZGF0YT1cImRhdGFcIiAjcHJvcExpc3RUZW1wbGF0ZT5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIGdyb3VwZWRQcm9wLmZvcm1Qcm9wTGlzdDsgbGV0IGZpcnN0ID0gZmlyc3Q7IHRyYWNrQnk6IHRyYWNrLmJ5KCduYW1lJylcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wLnZpc2libGUoZGF0YSlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImV4dHJhUHJvcGVydGllc0tleVwiXHJcbiAgICAgICAgKm5nSWY9XCJleHRyYVByb3BlcnRpZXMuY29udHJvbHNbcHJvcC5uYW1lXTsgZWxzZSB0ZW1wRGVmYXVsdFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YWJwLWV4dGVuc2libGUtZm9ybS1wcm9wIFtwcm9wXT1cInByb3BcIiBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJwcm9wLmNsYXNzTmFtZVwiPlxyXG4gICAgICAgIDwvYWJwLWV4dGVuc2libGUtZm9ybS1wcm9wPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcERlZmF1bHQ+XHJcbiAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0tcHJvcFxyXG4gICAgICAgICAgW2NsYXNzXT1cInByb3AuY2xhc3NOYW1lXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQocHJvcC5uYW1lKVwiXHJcbiAgICAgICAgICBbcHJvcF09XCJwcm9wXCJcclxuICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICAgICAgICA+PC9hYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3A+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { ConfigStateService, CoreModule, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, ListService, PermissionService, } from '@abp/ng.core';
|
|
2
|
+
import { formatDate } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, TemplateRef, } from '@angular/core';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { ExtensionsService } from '../../services/extensions.service';
|
|
6
|
+
import { ENTITY_PROP_TYPE_CLASSES, EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM, } from '../../tokens/extensions.token';
|
|
7
|
+
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
|
8
|
+
import { GridActionsComponent } from '../grid-actions/grid-actions.component';
|
|
9
|
+
import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
|
|
10
|
+
import { AbpVisibleDirective, NgxDatatableDefaultDirective, NgxDatatableListDirective, } from '@abp/ng.theme.shared';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@abp/ng.core";
|
|
14
|
+
import * as i3 from "@swimlane/ngx-datatable";
|
|
15
|
+
const DEFAULT_ACTIONS_COLUMN_WIDTH = 150;
|
|
16
|
+
export class ExtensibleTableComponent {
|
|
17
|
+
set actionsText(value) {
|
|
18
|
+
this._actionsText = value;
|
|
19
|
+
}
|
|
20
|
+
get actionsText() {
|
|
21
|
+
return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');
|
|
22
|
+
}
|
|
23
|
+
set actionsColumnWidth(width) {
|
|
24
|
+
this.setColumnWidths(width ? Number(width) : undefined);
|
|
25
|
+
}
|
|
26
|
+
#injector;
|
|
27
|
+
constructor() {
|
|
28
|
+
this.tableActivate = new EventEmitter();
|
|
29
|
+
this.trackByFn = (_, item) => item.name;
|
|
30
|
+
this.locale = inject(LOCALE_ID);
|
|
31
|
+
this.config = inject(ConfigStateService);
|
|
32
|
+
this.entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);
|
|
33
|
+
this.#injector = inject(Injector);
|
|
34
|
+
this.getInjected = this.#injector.get.bind(this.#injector);
|
|
35
|
+
const extensions = this.#injector.get(ExtensionsService);
|
|
36
|
+
const name = this.#injector.get(EXTENSIONS_IDENTIFIER);
|
|
37
|
+
this.propList = extensions.entityProps.get(name).props;
|
|
38
|
+
this.actionList = extensions['entityActions'].get(name)
|
|
39
|
+
.actions;
|
|
40
|
+
const permissionService = this.#injector.get(PermissionService);
|
|
41
|
+
this.hasAtLeastOnePermittedAction =
|
|
42
|
+
permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;
|
|
43
|
+
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
|
|
44
|
+
}
|
|
45
|
+
setColumnWidths(actionsColumn) {
|
|
46
|
+
const widths = [actionsColumn];
|
|
47
|
+
this.propList.forEach(({ value: prop }) => {
|
|
48
|
+
widths.push(prop.columnWidth);
|
|
49
|
+
});
|
|
50
|
+
this.columnWidths = widths;
|
|
51
|
+
}
|
|
52
|
+
getDate(value, format) {
|
|
53
|
+
return value && format ? formatDate(value, format, this.locale) : '';
|
|
54
|
+
}
|
|
55
|
+
getIcon(value) {
|
|
56
|
+
return value
|
|
57
|
+
? '<div class="text-success"><i class="fa fa-check" aria-hidden="true"></i></div>'
|
|
58
|
+
: '<div class="text-danger"><i class="fa fa-times" aria-hidden="true"></i></div>';
|
|
59
|
+
}
|
|
60
|
+
getEnum(rowValue, list) {
|
|
61
|
+
if (!list || list.length < 1)
|
|
62
|
+
return rowValue;
|
|
63
|
+
const { key } = list.find(({ value }) => value === rowValue) || {};
|
|
64
|
+
return key;
|
|
65
|
+
}
|
|
66
|
+
getContent(prop, data) {
|
|
67
|
+
return prop.valueResolver(data).pipe(map(value => {
|
|
68
|
+
switch (prop.type) {
|
|
69
|
+
case "boolean" /* ePropType.Boolean */:
|
|
70
|
+
return this.getIcon(value);
|
|
71
|
+
case "date" /* ePropType.Date */:
|
|
72
|
+
return this.getDate(value, getShortDateFormat(this.config));
|
|
73
|
+
case "time" /* ePropType.Time */:
|
|
74
|
+
return this.getDate(value, getShortTimeFormat(this.config));
|
|
75
|
+
case "datetime" /* ePropType.DateTime */:
|
|
76
|
+
return this.getDate(value, getShortDateShortTimeFormat(this.config));
|
|
77
|
+
case "enum" /* ePropType.Enum */:
|
|
78
|
+
return this.getEnum(value, prop.enumList || []);
|
|
79
|
+
default:
|
|
80
|
+
return value;
|
|
81
|
+
// More types can be handled in the future
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
ngOnChanges({ data }) {
|
|
86
|
+
if (!data?.currentValue)
|
|
87
|
+
return;
|
|
88
|
+
if (data.currentValue.length < 1) {
|
|
89
|
+
this.list.totalCount = this.recordsTotal;
|
|
90
|
+
}
|
|
91
|
+
this.data = data.currentValue.map((record, index) => {
|
|
92
|
+
this.propList.forEach(prop => {
|
|
93
|
+
const propData = { getInjected: this.getInjected, record, index };
|
|
94
|
+
const value = this.getContent(prop.value, propData);
|
|
95
|
+
const propKey = `_${prop.value.name}`;
|
|
96
|
+
record[propKey] = {
|
|
97
|
+
visible: prop.value.visible(propData),
|
|
98
|
+
value,
|
|
99
|
+
};
|
|
100
|
+
if (prop.value.component) {
|
|
101
|
+
record[propKey].injector = Injector.create({
|
|
102
|
+
providers: [
|
|
103
|
+
{
|
|
104
|
+
provide: PROP_DATA_STREAM,
|
|
105
|
+
useValue: value,
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
parent: this.#injector,
|
|
109
|
+
});
|
|
110
|
+
record[propKey].component = prop.value.component;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return record;
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ExtensibleTableComponent, isStandalone: true, selector: "abp-extensible-table", inputs: { actionsText: "actionsText", data: "data", list: "list", recordsTotal: "recordsTotal", actionsColumnWidth: "actionsColumnWidth", actionsTemplate: "actionsTemplate" }, outputs: { tableActivate: "tableActivate" }, exportAs: ["abpExtensibleTable"], usesOnChanges: true, ngImport: i0, template: "<ngx-datatable\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal\"\r\n [list]=\"list\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n>\r\n <ngx-datatable-column\r\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template ngx-datatable-header-template let-column=\"column\">\r\n <span\r\n *ngIf=\"prop.tooltip; else elseBlock\"\r\n [ngbTooltip]=\"prop.tooltip | abpLocalization\"\r\n container=\"body\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n <ng-template #elseBlock>\r\n {{ column.name }}\r\n </ng-template>\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n <div\r\n *ngIf=\"!row['_' + prop.name].component; else component\"\r\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [ngClass]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n </ng-container>\r\n <ng-template #component>\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n</ngx-datatable>\r\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "ngmodule", type: NgxDatatableModule }, { kind: "component", type: i3.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i3.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i3.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i3.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
|
+
}
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
|
|
120
|
+
type: Component,
|
|
121
|
+
args: [{ exportAs: 'abpExtensibleTable', selector: 'abp-extensible-table', standalone: true, imports: [
|
|
122
|
+
CoreModule,
|
|
123
|
+
AbpVisibleDirective,
|
|
124
|
+
NgxDatatableModule,
|
|
125
|
+
GridActionsComponent,
|
|
126
|
+
NgbTooltip,
|
|
127
|
+
NgxDatatableDefaultDirective,
|
|
128
|
+
NgxDatatableListDirective,
|
|
129
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ngx-datatable\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal\"\r\n [list]=\"list\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n>\r\n <ngx-datatable-column\r\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template ngx-datatable-header-template let-column=\"column\">\r\n <span\r\n *ngIf=\"prop.tooltip; else elseBlock\"\r\n [ngbTooltip]=\"prop.tooltip | abpLocalization\"\r\n container=\"body\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n <ng-template #elseBlock>\r\n {{ column.name }}\r\n </ng-template>\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n <div\r\n *ngIf=\"!row['_' + prop.name].component; else component\"\r\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [ngClass]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n </ng-container>\r\n <ng-template #component>\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n</ngx-datatable>\r\n" }]
|
|
130
|
+
}], ctorParameters: () => [], propDecorators: { actionsText: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], data: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], list: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], recordsTotal: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], actionsColumnWidth: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], actionsTemplate: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], tableActivate: [{
|
|
143
|
+
type: Output
|
|
144
|
+
}] } });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBQzNCLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFFTixXQUFXLEdBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLGdCQUFnQixHQUNqQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxV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U3RhdGVTZXJ2aWNlLFxyXG4gIENvcmVNb2R1bGUsXHJcbiAgZ2V0U2hvcnREYXRlRm9ybWF0LFxyXG4gIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCxcclxuICBnZXRTaG9ydFRpbWVGb3JtYXQsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgTE9DQUxFX0lELFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUcmFja0J5RnVuY3Rpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuaW1wb3J0IHsgR3JpZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7XHJcbiAgQWJwVmlzaWJsZURpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTW9kdWxlLFxyXG4gICAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgICBOZ2JUb29sdGlwLFxyXG4gICAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICAgIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHByb3RlY3RlZCBfYWN0aW9uc1RleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBzZXQgYWN0aW9uc1RleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpb25zVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNUZXh0ID8/ICh0aGlzLmFjdGlvbkxpc3QubGVuZ3RoID4gMSA/ICdBYnBVaTo6QWN0aW9ucycgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkYXRhITogUltdO1xyXG4gIEBJbnB1dCgpIGxpc3QhOiBMaXN0U2VydmljZTtcclxuICBASW5wdXQoKSByZWNvcmRzVG90YWwhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zQ29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMod2lkdGggPyBOdW1iZXIod2lkdGgpIDogdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSB0YWJsZUFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBoYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uOiBib29sZWFuO1xyXG5cclxuICByZWFkb25seSBjb2x1bW5XaWR0aHMhOiBudW1iZXJbXTtcclxuXHJcbiAgcmVhZG9ubHkgcHJvcExpc3Q6IEVudGl0eVByb3BMaXN0PFI+O1xyXG5cclxuICByZWFkb25seSBhY3Rpb25MaXN0OiBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICByZWFkb25seSB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxFbnRpdHlQcm9wPFI+PiA9IChfLCBpdGVtKSA9PiBpdGVtLm5hbWU7XHJcblxyXG4gIGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBnZXRJbmplY3RlZCA9IHRoaXMuI2luamVjdG9yLmdldC5iaW5kKHRoaXMuI2luamVjdG9yKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25TZXJ2aWNlID0gdGhpcy4jaW5qZWN0b3IuZ2V0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlckl0ZW1zQnlQb2xpY3koXHJcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0LnRvQXJyYXkoKS5tYXAoYWN0aW9uID0+ICh7IHJlcXVpcmVkUG9saWN5OiBhY3Rpb24ucGVybWlzc2lvbiB9KSksXHJcbiAgICAgICkubGVuZ3RoID4gMDtcclxuICAgIHRoaXMuc2V0Q29sdW1uV2lkdGhzKERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb2x1bW5XaWR0aHMoYWN0aW9uc0NvbHVtbjogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBjb25zdCB3aWR0aHMgPSBbYWN0aW9uc0NvbHVtbl07XHJcbiAgICB0aGlzLnByb3BMaXN0LmZvckVhY2goKHsgdmFsdWU6IHByb3AgfSkgPT4ge1xyXG4gICAgICB3aWR0aHMucHVzaChwcm9wLmNvbHVtbldpZHRoKTtcclxuICAgIH0pO1xyXG4gICAgKHRoaXMuY29sdW1uV2lkdGhzIGFzIGFueSkgPSB3aWR0aHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERhdGUodmFsdWU6IERhdGUgfCB1bmRlZmluZWQsIGZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gdmFsdWUgJiYgZm9ybWF0ID8gZm9ybWF0RGF0ZSh2YWx1ZSwgZm9ybWF0LCB0aGlzLmxvY2FsZSkgOiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SWNvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgID8gJzxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PidcclxuICAgICAgOiAnPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj4nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnVtKHJvd1ZhbHVlOiBhbnksIGxpc3Q6IEFycmF5PEFCUC5PcHRpb248YW55Pj4pIHtcclxuICAgIGlmICghbGlzdCB8fCBsaXN0Lmxlbmd0aCA8IDEpIHJldHVybiByb3dWYWx1ZTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSBsaXN0LmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHJvd1ZhbHVlKSB8fCB7fTtcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWNvbih2YWx1ZSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlKHZhbHVlLCBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWcpKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGUodmFsdWUsIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZykpO1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuRW51bTpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW51bSh2YWx1ZSwgcHJvcC5lbnVtTGlzdCB8fCBbXSk7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAvLyBNb3JlIHR5cGVzIGNhbiBiZSBoYW5kbGVkIGluIHRoZSBmdXR1cmVcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHsgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoIWRhdGE/LmN1cnJlbnRWYWx1ZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChkYXRhLmN1cnJlbnRWYWx1ZS5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHRoaXMubGlzdC50b3RhbENvdW50ID0gdGhpcy5yZWNvcmRzVG90YWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhID0gZGF0YS5jdXJyZW50VmFsdWUubWFwKChyZWNvcmQ6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0aGlzLnByb3BMaXN0LmZvckVhY2gocHJvcCA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJvcERhdGEgPSB7IGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkLCByZWNvcmQsIGluZGV4IH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDb250ZW50KHByb3AudmFsdWUsIHByb3BEYXRhKTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJvcEtleSA9IGBfJHtwcm9wLnZhbHVlLm5hbWV9YDtcclxuICAgICAgICByZWNvcmRbcHJvcEtleV0gPSB7XHJcbiAgICAgICAgICB2aXNpYmxlOiBwcm9wLnZhbHVlLnZpc2libGUocHJvcERhdGEpLFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAocHJvcC52YWx1ZS5jb21wb25lbnQpIHtcclxuICAgICAgICAgIHJlY29yZFtwcm9wS2V5XS5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBST1BfREFUQV9TVFJFQU0sXHJcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLiNpbmplY3RvcixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZ3gtZGF0YXRhYmxlXHJcbiAgZGVmYXVsdFxyXG4gIFtyb3dzXT1cImRhdGFcIlxyXG4gIFtjb3VudF09XCJyZWNvcmRzVG90YWxcIlxyXG4gIFtsaXN0XT1cImxpc3RcIlxyXG4gIChhY3RpdmF0ZSk9XCJ0YWJsZUFjdGl2YXRlLmVtaXQoJGV2ZW50KVwiXHJcbj5cclxuICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICpuZ0lmPVwiYWN0aW9uc1RlbXBsYXRlIHx8IChhY3Rpb25MaXN0Lmxlbmd0aCAmJiBoYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uKVwiXHJcbiAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICBbbWF4V2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgIFt3aWR0aF09XCJjb2x1bW5XaWR0aHNbMF1cIlxyXG4gICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwicm93SW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZSB8fCBncmlkQWN0aW9uczsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICA8YWJwLWdyaWQtYWN0aW9ucyBbaW5kZXhdPVwiaVwiIFtyZWNvcmRdPVwicm93XCIgdGV4dD1cIkFicFVpOjpBY3Rpb25zXCI+PC9hYnAtZ3JpZC1hY3Rpb25zPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIHByb3BMaXN0OyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2kgKyAxXSB8fCAyMDBcIlxyXG4gICAgICBbbmFtZV09XCJwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgW3Byb3BdPVwicHJvcC5uYW1lXCJcclxuICAgICAgW3NvcnRhYmxlXT1cInByb3Auc29ydGFibGVcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAqbmdJZj1cInByb3AudG9vbHRpcDsgZWxzZSBlbHNlQmxvY2tcIlxyXG4gICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19IDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxyXG4gICAgICAgICAge3sgY29sdW1uLm5hbWUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwiaW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwUGVybWlzc2lvbj1cInByb3AucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwVmlzaWJsZT1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52aXNpYmxlXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFyb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQ7IGVsc2UgY29tcG9uZW50XCJcclxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbih7IGdldEluamVjdGVkOiBnZXRJbmplY3RlZCwgcmVjb3JkOiByb3csIGluZGV4OiBpIH0pXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJlbnRpdHlQcm9wVHlwZUNsYXNzZXNbcHJvcC50eXBlXVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICByb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICBpbmplY3Rvcjogcm93WydfJyArIHByb3AubmFtZV0uaW5qZWN0b3JcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZ3gtZGF0YXRhYmxlPlxyXG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Injector, Input, } from '@angular/core';
|
|
2
|
+
import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
|
|
3
|
+
import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
|
|
4
|
+
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
+
import { CoreModule } from '@abp/ng.core';
|
|
6
|
+
import { EllipsisDirective } from "@abp/ng.theme.shared";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@abp/ng.core";
|
|
10
|
+
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
11
|
+
export class GridActionsComponent extends AbstractActionsComponent {
|
|
12
|
+
constructor(injector) {
|
|
13
|
+
super(injector);
|
|
14
|
+
this.icon = 'fa fa-cog';
|
|
15
|
+
this.text = '';
|
|
16
|
+
this.trackByFn = (_, item) => item.text;
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GridActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: GridActionsComponent, isStandalone: true, selector: "abp-grid-actions", inputs: { icon: "icon", index: "index", text: "text" }, providers: [
|
|
20
|
+
{
|
|
21
|
+
provide: EXTENSIONS_ACTION_TYPE,
|
|
22
|
+
useValue: 'entityActions',
|
|
23
|
+
},
|
|
24
|
+
], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i3.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: GridActionsComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ exportAs: 'abpGridActions', standalone: true, imports: [CoreModule, NgbDropdownModule, EllipsisDirective], selector: 'abp-grid-actions', providers: [
|
|
29
|
+
{
|
|
30
|
+
provide: EXTENSIONS_ACTION_TYPE,
|
|
31
|
+
useValue: 'entityActions',
|
|
32
|
+
},
|
|
33
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission; runChangeDetection: false\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [class]=\"action.btnClass\"\r\n [style]=\"action.btnStyle\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n" }]
|
|
34
|
+
}], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { icon: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], index: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], text: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7OztBQWdCdkQsTUFBTSxPQUFPLG9CQUE4QixTQUFRLHdCQUE2QztJQVM5RixZQUFZLFFBQWtCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQVRULFNBQUksR0FBRyxXQUFXLENBQUM7UUFJbkIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVWLGNBQVMsR0FBcUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBSTlFLENBQUM7OEdBWFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsdUhBUnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHNCQUFzQjtnQkFDL0IsUUFBUSxFQUFFLGVBQWU7YUFDMUI7U0FDRiwrRUN6Qkgsb25FQStEQSwyQ0Q5Q2EsVUFBVSwwdEJBQUUsaUJBQWlCLG1uQkFBRSxpQkFBaUI7OzJGQVdoRCxvQkFBb0I7a0JBZGhDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLFlBQ2xELGtCQUFrQixhQUVqQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixRQUFRLEVBQUUsZUFBZTt5QkFDMUI7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07NkVBR3RDLElBQUk7c0JBQVosS0FBSztnQkFFWSxLQUFLO3NCQUF0QixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIFRyYWNrQnlGdW5jdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uLCBFbnRpdHlBY3Rpb25MaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1hY3Rpb25zJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19BQ1RJT05fVFlQRSB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtYWN0aW9ucy9hYnN0cmFjdC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYkRyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtFbGxpcHNpc0RpcmVjdGl2ZX0gZnJvbSBcIkBhYnAvbmcudGhlbWUuc2hhcmVkXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2FicEdyaWRBY3Rpb25zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgQ29yZU1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIEVsbGlwc2lzRGlyZWN0aXZlXSxcclxuICBzZWxlY3RvcjogJ2FicC1ncmlkLWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0FDVElPTl9UWVBFLFxyXG4gICAgICB1c2VWYWx1ZTogJ2VudGl0eUFjdGlvbnMnLFxyXG4gICAgfSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZEFjdGlvbnNDb21wb25lbnQ8UiA9IGFueT4gZXh0ZW5kcyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQ8RW50aXR5QWN0aW9uTGlzdDxSPj4ge1xyXG4gIEBJbnB1dCgpIGljb24gPSAnZmEgZmEtY29nJztcclxuXHJcbiAgQElucHV0KCkgcmVhZG9ubHkgaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRleHQgPSAnJztcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5QWN0aW9uPFI+PiA9IChfLCBpdGVtKSA9PiBpdGVtLnRleHQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiYWN0aW9uTGlzdC5sZW5ndGggPiAxXCIgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICA8YnV0dG9uXHJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICA+XHJcbiAgICA8aSBbbmdDbGFzc109XCJpY29uXCIgW2NsYXNzLm1lLTFdPVwiaWNvblwiPjwvaT57eyB0ZXh0IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uTGlzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcERvd25CdG5JdGVtVG1wXCJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3Rpb24gfVwiXHJcbiAgICA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctY29udGFpbmVyXHJcbiAgKm5nSWY9XCJhY3Rpb25MaXN0Lmxlbmd0aCA9PT0gMVwiXHJcbiAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnRuVG1wXCJcclxuICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGFjdGlvbkxpc3QuZ2V0KDApLnZhbHVlIH1cIlxyXG4+PC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2Ryb3BEb3duQnRuSXRlbVRtcCBsZXQtYWN0aW9uPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udmlzaWJsZShkYXRhKVwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkNvbnRlbnRUbXA7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhY3Rpb24gfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50VG1wIGxldC1hY3Rpb24+XHJcbiAgPGkgW25nQ2xhc3NdPVwiYWN0aW9uLmljb25cIiBbY2xhc3MubWUtMV09XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICA8c3BhbiAqbmdJZj1cImFjdGlvbi5pY29uOyBlbHNlIGVsbGlwc2lzXCI+e3sgYWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgPG5nLXRlbXBsYXRlICNlbGxpcHNpcz5cclxuICAgIDxkaXYgYWJwRWxsaXBzaXM+e3sgYWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidG5UbXAgbGV0LWFjdGlvbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aW9uLnZpc2libGUoZGF0YSlcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIFtjbGFzc109XCJhY3Rpb24uYnRuQ2xhc3NcIlxyXG4gICAgICBbc3R5bGVdPVwiYWN0aW9uLmJ0blN0eWxlXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uQ29udGVudFRtcDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGFjdGlvbiB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './abstract-actions/abstract-actions.component';
|
|
2
|
+
export * from './extensible-form/extensible-form.component';
|
|
3
|
+
export * from './extensible-form/extensible-form-prop.component';
|
|
4
|
+
export * from './extensible-table/extensible-table.component';
|
|
5
|
+
export * from './date-time-picker/extensible-date-time-picker.component';
|
|
6
|
+
export * from './grid-actions/grid-actions.component';
|
|
7
|
+
export * from './page-toolbar/page-toolbar.component';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9leHRlbnNpYmxlLXRhYmxlL2V4dGVuc2libGUtdGFibGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUtcGlja2VyL2V4dGVuc2libGUtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdlLXRvb2xiYXIvcGFnZS10b29sYmFyLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
|
2
|
+
import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
|
|
3
|
+
import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
|
|
4
|
+
import { CreateInjectorPipe } from '../../pipes/create-injector.pipe';
|
|
5
|
+
import { CoreModule } from '@abp/ng.core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@abp/ng.core";
|
|
9
|
+
export class PageToolbarComponent extends AbstractActionsComponent {
|
|
10
|
+
constructor(injector) {
|
|
11
|
+
super(injector);
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
this.defaultBtnClass = 'btn btn-sm btn-primary';
|
|
14
|
+
this.getData = () => this.data;
|
|
15
|
+
this.trackByFn = (_, item) => item.action || item.component;
|
|
16
|
+
}
|
|
17
|
+
asToolbarAction(value) {
|
|
18
|
+
return {
|
|
19
|
+
value: value,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PageToolbarComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: PageToolbarComponent, isStandalone: true, selector: "abp-page-toolbar", providers: [
|
|
24
|
+
{
|
|
25
|
+
provide: EXTENSIONS_ACTION_TYPE,
|
|
26
|
+
useValue: 'toolbarActions',
|
|
27
|
+
},
|
|
28
|
+
], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-0 gap-2\" id=\"AbpContentToolbar\">\r\n <div\r\n class=\"col-auto px-0 pt-0 \"\r\n [class.pe-0]=\"last\"\r\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\r\n >\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <ng-container *abpPermission=\"action.permission;runChangeDetection: false\">\r\n <ng-container *ngIf=\"action.component as component; else button\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #button>\r\n <ng-container *ngIf=\"asToolbarAction(action).value as toolbarAction\">\r\n <button\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [ngClass]=\"toolbarAction.btnClass ? toolbarAction.btnClass : defaultBtnClass\"\r\n class=\"d-inline-flex align-items-center gap-1\"\r\n >\r\n <i [ngClass]=\"toolbarAction.icon\" [class.me-1]=\"toolbarAction.icon\"></i>\r\n {{ toolbarAction.text | abpLocalization }}\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i2.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "pipe", type: CreateInjectorPipe, name: "createInjector" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PageToolbarComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ exportAs: 'abpPageToolbar', selector: 'abp-page-toolbar', standalone: true, imports: [CoreModule, CreateInjectorPipe], providers: [
|
|
33
|
+
{
|
|
34
|
+
provide: EXTENSIONS_ACTION_TYPE,
|
|
35
|
+
useValue: 'toolbarActions',
|
|
36
|
+
},
|
|
37
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row justify-content-end mx-0 gap-2\" id=\"AbpContentToolbar\">\r\n <div\r\n class=\"col-auto px-0 pt-0 \"\r\n [class.pe-0]=\"last\"\r\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\r\n >\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <ng-container *abpPermission=\"action.permission;runChangeDetection: false\">\r\n <ng-container *ngIf=\"action.component as component; else button\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #button>\r\n <ng-container *ngIf=\"asToolbarAction(action).value as toolbarAction\">\r\n <button\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n [ngClass]=\"toolbarAction.btnClass ? toolbarAction.btnClass : defaultBtnClass\"\r\n class=\"d-inline-flex align-items-center gap-1\"\r\n >\r\n <i [ngClass]=\"toolbarAction.icon\" [class.me-1]=\"toolbarAction.icon\"></i>\r\n {{ toolbarAction.text | abpLocalization }}\r\n </button>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n" }]
|
|
38
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS10b29sYmFyL3BhZ2UtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtdG9vbGJhci9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBUTlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFnQjFDLE1BQU0sT0FBTyxvQkFDWCxTQUFRLHdCQUE4QztJQVV0RCxZQUE0QixRQUFrQjtRQUM1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUDlDLG9CQUFlLEdBQUcsd0JBQXdCLENBQUM7UUFFM0MsWUFBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFakIsY0FBUyxHQUF5QyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNyRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFJaEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUEyQjtRQUN6QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQXNCO1NBQzlCLENBQUM7SUFDSixDQUFDOzhHQW5CVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwrREFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCO1NBQ0YsK0VDeEJILDAwQ0ErQkEsMkNEZGEsVUFBVSx1ekJBQUUsa0JBQWtCOzsyRkFVOUIsb0JBQW9CO2tCQWRoQyxTQUFTOytCQUNFLGdCQUFnQixZQUNoQixrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDLGFBRS9CO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7eUJBQzNCO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIFRyYWNrQnlGdW5jdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEhhc0NyZWF0ZUluamVjdG9yUGlwZSxcclxuICBUb29sYmFyQWN0aW9uLFxyXG4gIFRvb2xiYXJBY3Rpb25EZWZhdWx0LFxyXG4gIFRvb2xiYXJBY3Rpb25MaXN0LFxyXG4gIFRvb2xiYXJDb21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVJbmplY3RvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jcmVhdGUtaW5qZWN0b3IucGlwZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBQYWdlVG9vbGJhcicsXHJcbiAgc2VsZWN0b3I6ICdhYnAtcGFnZS10b29sYmFyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgQ29yZU1vZHVsZSwgQ3JlYXRlSW5qZWN0b3JQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19BQ1RJT05fVFlQRSxcclxuICAgICAgdXNlVmFsdWU6ICd0b29sYmFyQWN0aW9ucycsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlVG9vbGJhckNvbXBvbmVudDxSID0gYW55PlxyXG4gIGV4dGVuZHMgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50PFRvb2xiYXJBY3Rpb25MaXN0PFI+PlxyXG4gIGltcGxlbWVudHMgSGFzQ3JlYXRlSW5qZWN0b3JQaXBlPFI+XHJcbntcclxuICBkZWZhdWx0QnRuQ2xhc3MgPSAnYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSc7XHJcblxyXG4gIGdldERhdGEgPSAoKSA9PiB0aGlzLmRhdGE7XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPFRvb2xiYXJDb21wb25lbnQ8Uj4+ID0gKF8sIGl0ZW0pID0+XHJcbiAgICBpdGVtLmFjdGlvbiB8fCBpdGVtLmNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgYXNUb29sYmFyQWN0aW9uKHZhbHVlOiBUb29sYmFyQWN0aW9uRGVmYXVsdCk6IHsgdmFsdWU6IFRvb2xiYXJBY3Rpb24gfSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdmFsdWUgYXMgVG9vbGJhckFjdGlvbixcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWVuZCBteC0wIGdhcC0yXCIgaWQ9XCJBYnBDb250ZW50VG9vbGJhclwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLWF1dG8gcHgtMCBwdC0wIFwiXHJcbiAgICBbY2xhc3MucGUtMF09XCJsYXN0XCJcclxuICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uTGlzdDsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgbGFzdCA9IGxhc3RcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udmlzaWJsZShkYXRhKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247cnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24uY29tcG9uZW50IGFzIGNvbXBvbmVudDsgZWxzZSBidXR0b25cIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcG9uZW50OyBpbmplY3RvcjogcmVjb3JkIHwgY3JlYXRlSW5qZWN0b3I6IGFjdGlvbjp0aGlzXCJcclxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNidXR0b24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNUb29sYmFyQWN0aW9uKGFjdGlvbikudmFsdWUgYXMgdG9vbGJhckFjdGlvblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInRvb2xiYXJBY3Rpb24uYnRuQ2xhc3MgPyB0b29sYmFyQWN0aW9uLmJ0bkNsYXNzIDogZGVmYXVsdEJ0bkNsYXNzXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInRvb2xiYXJBY3Rpb24uaWNvblwiIFtjbGFzcy5tZS0xXT1cInRvb2xiYXJBY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICB7eyB0b29sYmFyQWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const EXTRA_PROPERTIES_KEY = 'extraProperties';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVYVFJBX1BST1BFUlRJRVNfS0VZID0gJ2V4dHJhUHJvcGVydGllcyc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* eslint-disable @angular-eslint/no-input-rename */
|
|
2
|
+
import { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
3
|
+
import { PropData } from '../models/props';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class PropDataDirective extends PropData {
|
|
6
|
+
constructor(tempRef, vcRef, injector) {
|
|
7
|
+
super();
|
|
8
|
+
this.tempRef = tempRef;
|
|
9
|
+
this.vcRef = vcRef;
|
|
10
|
+
this.getInjected = injector.get.bind(injector);
|
|
11
|
+
}
|
|
12
|
+
ngOnChanges() {
|
|
13
|
+
this.vcRef.clear();
|
|
14
|
+
this.vcRef.createEmbeddedView(this.tempRef, {
|
|
15
|
+
$implicit: this.data,
|
|
16
|
+
index: 0,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this.vcRef.clear();
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropDataDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: PropDataDirective, isStandalone: true, selector: "[abpPropData]", inputs: { propList: ["abpPropDataFromList", "propList"], record: ["abpPropDataWithRecord", "record"], index: ["abpPropDataAtIndex", "index"] }, exportAs: ["abpPropData"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PropDataDirective, decorators: [{
|
|
26
|
+
type: Directive,
|
|
27
|
+
args: [{
|
|
28
|
+
exportAs: 'abpPropData',
|
|
29
|
+
selector: '[abpPropData]',
|
|
30
|
+
standalone: true,
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.Injector }], propDecorators: { propList: [{
|
|
33
|
+
type: Input,
|
|
34
|
+
args: ['abpPropDataFromList']
|
|
35
|
+
}], record: [{
|
|
36
|
+
type: Input,
|
|
37
|
+
args: ['abpPropDataWithRecord']
|
|
38
|
+
}], index: [{
|
|
39
|
+
type: Input,
|
|
40
|
+
args: ['abpPropDataAtIndex']
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDOztBQU9yRCxNQUFNLE9BQU8saUJBQ1gsU0FBUSxRQUF5QjtJQVdqQyxZQUNVLE9BQXlCLEVBQ3pCLEtBQXVCLEVBQy9CLFFBQWtCO1FBRWxCLEtBQUssRUFBRSxDQUFDO1FBSkEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFLL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWpDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzSUFLK0IsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBRUksTUFBTTtzQkFBckMsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBRUQsS0FBSztzQkFBakMsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvcERhdGEsIFByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIGV4cG9ydEFzOiAnYWJwUHJvcERhdGEnLFxyXG4gIHNlbGVjdG9yOiAnW2FicFByb3BEYXRhXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BEYXRhRGlyZWN0aXZlPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnk+PlxyXG4gIGV4dGVuZHMgUHJvcERhdGE8SW5mZXJyZWREYXRhPEw+PlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgnYWJwUHJvcERhdGFGcm9tTGlzdCcpIHByb3BMaXN0PzogTDtcclxuXHJcbiAgQElucHV0KCdhYnBQcm9wRGF0YVdpdGhSZWNvcmQnKSByZWNvcmQhOiBJbmZlcnJlZERhdGE8TD5bJ3JlY29yZCddO1xyXG5cclxuICBASW5wdXQoJ2FicFByb3BEYXRhQXRJbmRleCcpIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICByZWFkb25seSBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPEw+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBSZWYsIHtcclxuICAgICAgJGltcGxpY2l0OiB0aGlzLmRhdGEsXHJcbiAgICAgIGluZGV4OiAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWREYXRhPEw+ID0gUHJvcERhdGE8SW5mZXJyZWRSZWNvcmQ8TD4+O1xyXG50eXBlIEluZmVycmVkUmVjb3JkPEw+ID0gTCBleHRlbmRzIFByb3BMaXN0PGluZmVyIFI+ID8gUiA6IG5ldmVyO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2VudW1zL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVUaGVtZVNoYXJlZENvbXBvbmVudHMge1xyXG4gIFBhc3N3b3JkQ29tcG9uZW50ID0gJ1RoZW1lU2hhcmVkLkV4dGVuc2lvbnMuUGFzc3dvcmRDb21wb25lbnQnLFxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2VudW1zL3Byb3BzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIGVQcm9wVHlwZSB7XHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGV0aW1lJyxcclxuICBFbWFpbCA9ICdlbWFpbCcsXHJcbiAgRW51bSA9ICdlbnVtJyxcclxuICBIaWRkZW4gPSAnaGlkZGVuJyxcclxuICBNdWx0aVNlbGVjdCA9ICdtdWx0aXNlbGVjdCcsXHJcbiAgTnVtYmVyID0gJ251bWJlcicsXHJcbiAgUGFzc3dvcmQgPSAncGFzc3dvcmQnLFxyXG4gIFBhc3N3b3JkSW5wdXRHcm91cCA9ICdwYXNzd29yZGlucHV0Z3JvdXAnLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgVGltZSA9ICd0aW1lJyxcclxuICBUeXBlYWhlYWQgPSAndHlwZWFoZWFkJyxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CoreModule } from '@abp/ng.core';
|
|
3
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
4
|
+
import { NgxValidateCoreModule } from '@ngx-validate/core';
|
|
5
|
+
import { NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';
|
|
6
|
+
import { ExtensibleFormComponent, ExtensibleFormPropComponent, ExtensibleTableComponent, GridActionsComponent, PageToolbarComponent, ExtensibleDateTimePickerComponent, } from './components';
|
|
7
|
+
import { PropDataDirective } from './directives/prop-data.directive';
|
|
8
|
+
import { CreateInjectorPipe } from './pipes/create-injector.pipe';
|
|
9
|
+
import { DisabledDirective } from '@abp/ng.theme.shared';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
const importWithExport = [
|
|
12
|
+
DisabledDirective,
|
|
13
|
+
ExtensibleDateTimePickerComponent,
|
|
14
|
+
ExtensibleFormPropComponent,
|
|
15
|
+
GridActionsComponent,
|
|
16
|
+
PropDataDirective,
|
|
17
|
+
PageToolbarComponent,
|
|
18
|
+
CreateInjectorPipe,
|
|
19
|
+
ExtensibleFormComponent,
|
|
20
|
+
ExtensibleTableComponent,
|
|
21
|
+
];
|
|
22
|
+
export class ExtensibleModule {
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
|
|
25
|
+
ThemeSharedModule,
|
|
26
|
+
NgxValidateCoreModule,
|
|
27
|
+
NgbDatepickerModule,
|
|
28
|
+
NgbDropdownModule,
|
|
29
|
+
NgbTimepickerModule,
|
|
30
|
+
NgbTypeaheadModule,
|
|
31
|
+
NgbTooltipModule, DisabledDirective,
|
|
32
|
+
ExtensibleDateTimePickerComponent,
|
|
33
|
+
ExtensibleFormPropComponent,
|
|
34
|
+
GridActionsComponent,
|
|
35
|
+
PropDataDirective,
|
|
36
|
+
PageToolbarComponent,
|
|
37
|
+
CreateInjectorPipe,
|
|
38
|
+
ExtensibleFormComponent,
|
|
39
|
+
ExtensibleTableComponent], exports: [DisabledDirective,
|
|
40
|
+
ExtensibleDateTimePickerComponent,
|
|
41
|
+
ExtensibleFormPropComponent,
|
|
42
|
+
GridActionsComponent,
|
|
43
|
+
PropDataDirective,
|
|
44
|
+
PageToolbarComponent,
|
|
45
|
+
CreateInjectorPipe,
|
|
46
|
+
ExtensibleFormComponent,
|
|
47
|
+
ExtensibleTableComponent] }); }
|
|
48
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
|
|
49
|
+
ThemeSharedModule,
|
|
50
|
+
NgxValidateCoreModule,
|
|
51
|
+
NgbDatepickerModule,
|
|
52
|
+
NgbDropdownModule,
|
|
53
|
+
NgbTimepickerModule,
|
|
54
|
+
NgbTypeaheadModule,
|
|
55
|
+
NgbTooltipModule, ExtensibleDateTimePickerComponent,
|
|
56
|
+
ExtensibleFormPropComponent,
|
|
57
|
+
GridActionsComponent,
|
|
58
|
+
PageToolbarComponent,
|
|
59
|
+
ExtensibleFormComponent,
|
|
60
|
+
ExtensibleTableComponent] }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ExtensibleModule, decorators: [{
|
|
63
|
+
type: NgModule,
|
|
64
|
+
args: [{
|
|
65
|
+
declarations: [],
|
|
66
|
+
imports: [
|
|
67
|
+
CoreModule,
|
|
68
|
+
ThemeSharedModule,
|
|
69
|
+
NgxValidateCoreModule,
|
|
70
|
+
NgbDatepickerModule,
|
|
71
|
+
NgbDropdownModule,
|
|
72
|
+
NgbTimepickerModule,
|
|
73
|
+
NgbTypeaheadModule,
|
|
74
|
+
NgbTooltipModule,
|
|
75
|
+
...importWithExport,
|
|
76
|
+
],
|
|
77
|
+
exports: [...importWithExport],
|
|
78
|
+
}]
|
|
79
|
+
}] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9leHRlbnNpYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixpQ0FBaUMsR0FDbEMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXpELE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsaUJBQWlCO0lBQ2pCLGlDQUFpQztJQUNqQywyQkFBMkI7SUFDM0Isb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLHVCQUF1QjtJQUN2Qix3QkFBd0I7Q0FDekIsQ0FBQztBQWdCRixNQUFNLE9BQU8sZ0JBQWdCOzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixZQVp6QixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZ0JBQWdCLEVBcEJsQixpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QixhQVJ4QixpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjsrR0FpQmIsZ0JBQWdCLFlBWnpCLFVBQVU7WUFDVixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixnQkFBZ0IsRUFuQmxCLGlDQUFpQztZQUNqQywyQkFBMkI7WUFDM0Isb0JBQW9CO1lBRXBCLG9CQUFvQjtZQUVwQix1QkFBdUI7WUFDdkIsd0JBQXdCOzsyRkFpQmIsZ0JBQWdCO2tCQWY1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLEdBQUcsZ0JBQWdCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiVG9vbHRpcE1vZHVsZSxcclxuICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFByb3BEYXRhRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Byb3AtZGF0YS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDcmVhdGVJbmplY3RvclBpcGUgfSBmcm9tICcuL3BpcGVzL2NyZWF0ZS1pbmplY3Rvci5waXBlJztcclxuaW1wb3J0IHsgRGlzYWJsZWREaXJlY3RpdmUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5jb25zdCBpbXBvcnRXaXRoRXhwb3J0ID0gW1xyXG4gIERpc2FibGVkRGlyZWN0aXZlLFxyXG4gIEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUHJvcERhdGFEaXJlY3RpdmUsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudCxcclxuXTtcclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxyXG4gICAgLi4uaW1wb3J0V2l0aEV4cG9ydCxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFsuLi5pbXBvcnRXaXRoRXhwb3J0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVNb2R1bGUge31cclxuIl19
|