@abp/ng.components 10.2.0 → 10.3.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/abp-ng.components-chart.js.mjs +14 -14
- package/fesm2022/abp-ng.components-chart.js.mjs.map +1 -1
- package/fesm2022/abp-ng.components-dynamic-form.mjs +33 -33
- package/fesm2022/abp-ng.components-dynamic-form.mjs.map +1 -1
- package/fesm2022/abp-ng.components-extensible.mjs +86 -86
- package/fesm2022/abp-ng.components-extensible.mjs.map +1 -1
- package/fesm2022/abp-ng.components-lookup.mjs +18 -18
- package/fesm2022/abp-ng.components-lookup.mjs.map +1 -1
- package/fesm2022/abp-ng.components-page.mjs +29 -29
- package/fesm2022/abp-ng.components-page.mjs.map +1 -1
- package/fesm2022/abp-ng.components-tree.mjs +31 -31
- package/fesm2022/abp-ng.components-tree.mjs.map +1 -1
- package/package.json +5 -4
|
@@ -22,9 +22,9 @@ function selfFactory(dependency) {
|
|
|
22
22
|
class ExtensibleDateTimePickerComponent {
|
|
23
23
|
constructor() {
|
|
24
24
|
this.cdRef = inject(ChangeDetectorRef);
|
|
25
|
-
this.prop = input(...(ngDevMode ? [undefined, { debugName: "prop" }] : []));
|
|
26
|
-
this.meridian = input(false, ...(ngDevMode ? [{ debugName: "meridian" }] : []));
|
|
27
|
-
this.placement = input('bottom-left', ...(ngDevMode ? [{ debugName: "placement" }] : []));
|
|
25
|
+
this.prop = input(...(ngDevMode ? [undefined, { debugName: "prop" }] : /* istanbul ignore next */ []));
|
|
26
|
+
this.meridian = input(false, ...(ngDevMode ? [{ debugName: "meridian" }] : /* istanbul ignore next */ []));
|
|
27
|
+
this.placement = input('bottom-left', ...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
|
|
28
28
|
this.date = viewChild.required(NgbInputDatepicker);
|
|
29
29
|
this.time = viewChild.required(NgbTimepicker);
|
|
30
30
|
}
|
|
@@ -34,8 +34,8 @@ class ExtensibleDateTimePickerComponent {
|
|
|
34
34
|
setTime(dateStr) {
|
|
35
35
|
this.time().writeValue(dateStr);
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.6", type: ExtensibleDateTimePickerComponent, isStandalone: true, selector: "abp-extensible-date-time-picker", inputs: { prop: { classPropertyName: "prop", publicName: "prop", isSignal: true, isRequired: false, transformFunction: null }, meridian: { classPropertyName: "meridian", publicName: "meridian", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "date", first: true, predicate: NgbInputDatepicker, descendants: true, isSignal: true }, { propertyName: "time", first: true, predicate: NgbTimepicker, descendants: true, isSignal: true }], exportAs: ["abpExtensibleDateTimePicker"], ngImport: i0, template: `
|
|
39
39
|
<input
|
|
40
40
|
[id]="prop().id"
|
|
41
41
|
[formControlName]="prop().name"
|
|
@@ -70,7 +70,7 @@ class ExtensibleDateTimePickerComponent {
|
|
|
70
70
|
},
|
|
71
71
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleDateTimePickerComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{
|
|
76
76
|
exportAs: 'abpExtensibleDateTimePicker',
|
|
@@ -249,10 +249,10 @@ class ExtensibleFormPropService {
|
|
|
249
249
|
const required = validators.find(v => this.isRequired(v));
|
|
250
250
|
return required ? '*' : '';
|
|
251
251
|
}
|
|
252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
253
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormPropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
253
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormPropService }); }
|
|
254
254
|
}
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormPropService, decorators: [{
|
|
256
256
|
type: Injectable
|
|
257
257
|
}] });
|
|
258
258
|
|
|
@@ -263,8 +263,8 @@ const EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR = {
|
|
|
263
263
|
};
|
|
264
264
|
class ExtensibleFormMultiselectComponent {
|
|
265
265
|
constructor() {
|
|
266
|
-
this.prop = input.required(...(ngDevMode ? [{ debugName: "prop" }] : []));
|
|
267
|
-
this.options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
266
|
+
this.prop = input.required(...(ngDevMode ? [{ debugName: "prop" }] : /* istanbul ignore next */ []));
|
|
267
|
+
this.options = input.required(...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
268
268
|
this.selectedValues = [];
|
|
269
269
|
this.disabled = false;
|
|
270
270
|
this.onChange = () => { };
|
|
@@ -292,8 +292,8 @@ class ExtensibleFormMultiselectComponent {
|
|
|
292
292
|
registerOnTouched(fn) {
|
|
293
293
|
this.onTouched = fn;
|
|
294
294
|
}
|
|
295
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
296
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
296
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ExtensibleFormMultiselectComponent, isStandalone: true, selector: "abp-extensible-form-multi-select", inputs: { prop: { classPropertyName: "prop", publicName: "prop", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, providers: [EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: `
|
|
297
297
|
<div [id]="prop().id">
|
|
298
298
|
@for (option of options(); track option.value) {
|
|
299
299
|
<div class="form-check" validationTarget>
|
|
@@ -317,7 +317,7 @@ class ExtensibleFormMultiselectComponent {
|
|
|
317
317
|
</div>
|
|
318
318
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
319
319
|
}
|
|
320
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormMultiselectComponent, decorators: [{
|
|
321
321
|
type: Component,
|
|
322
322
|
args: [{
|
|
323
323
|
selector: 'abp-extensible-form-multi-select',
|
|
@@ -365,10 +365,10 @@ class ExtensibleFormPropComponent {
|
|
|
365
365
|
this.#groupDirective = inject(FormGroupDirective);
|
|
366
366
|
this.injector = inject(Injector);
|
|
367
367
|
this.form = this.#groupDirective.form;
|
|
368
|
-
this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
|
|
369
|
-
this.prop = input.required(...(ngDevMode ? [{ debugName: "prop" }] : []));
|
|
370
|
-
this.first = input(undefined, ...(ngDevMode ? [{ debugName: "first" }] : []));
|
|
371
|
-
this.isFirstGroup = input(undefined, ...(ngDevMode ? [{ debugName: "isFirstGroup" }] : []));
|
|
368
|
+
this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
369
|
+
this.prop = input.required(...(ngDevMode ? [{ debugName: "prop" }] : /* istanbul ignore next */ []));
|
|
370
|
+
this.first = input(undefined, ...(ngDevMode ? [{ debugName: "first" }] : /* istanbul ignore next */ []));
|
|
371
|
+
this.isFirstGroup = input(undefined, ...(ngDevMode ? [{ debugName: "isFirstGroup" }] : /* istanbul ignore next */ []));
|
|
372
372
|
this.fieldRef = viewChild.required('field');
|
|
373
373
|
this.asterisk = '';
|
|
374
374
|
this.containerClassName = 'mb-2';
|
|
@@ -462,8 +462,8 @@ class ExtensibleFormPropComponent {
|
|
|
462
462
|
getType(prop) {
|
|
463
463
|
return this.service.getType(prop);
|
|
464
464
|
}
|
|
465
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
466
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ExtensibleFormPropComponent, isStandalone: true, selector: "abp-extensible-form-prop", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, prop: { classPropertyName: "prop", publicName: "prop", isSignal: true, isRequired: true, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isFirstGroup: { classPropertyName: "isFirstGroup", publicName: "isFirstGroup", isSignal: true, isRequired: false, transformFunction: null } }, providers: [ExtensibleFormPropService], viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *abpPermission=\"prop().permission; runChangeDetection: false\">\r\n @switch (getComponent(prop())) {\r\n @case ('template') {\r\n <ng-container *ngComponentOutlet=\"prop().template; injector: injectorForCustomComponent\" />\r\n }\r\n }\r\n\r\n <div [class]=\"containerClassName\" class=\"mb-2\">\r\n @switch (getComponent(prop())) {\r\n @case ('input') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [autocomplete]=\"prop().autocomplete\"\r\n [type]=\"getType(prop())\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n }\r\n @case ('hidden') {\r\n <input [formControlName]=\"prop().name\" type=\"hidden\" />\r\n }\r\n @case ('checkbox') {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n />\r\n </div>\r\n }\r\n @case ('select') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <select\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n @for (option of options$ | async; track option.value) {\r\n <option [ngValue]=\"option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </option>\r\n }\r\n </select>\r\n }\r\n @case ('multiselect') {\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-extensible-form-multi-select\r\n [prop]=\"prop()\"\r\n [options]=\"options$ | async\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n />\r\n }\r\n @case ('typeahead') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [autocomplete]=\"prop().autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop().name\" type=\"hidden\" />\r\n </div>\r\n }\r\n @case ('date') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n }\r\n @case ('time') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <ngb-timepicker [formControlName]=\"prop().name\" />\r\n }\r\n @case ('dateTime') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <abp-extensible-date-time-picker [prop]=\"prop()\" [meridian]=\"meridian$ | async\" />\r\n }\r\n @case ('textarea') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <textarea\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n }\r\n @case ('passwordinputgroup') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <div class=\"input-group form-group\" validationTarget>\r\n <input\r\n class=\"form-control\"\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpShowPassword]=\"showPassword\"\r\n />\r\n <button class=\"btn btn-secondary\" type=\"button\" (click)=\"showPassword = !showPassword\">\r\n <i\r\n class=\"fa\"\r\n aria-hidden=\"true\"\r\n [class]=\"{\r\n 'fa-eye-slash': !showPassword,\r\n 'fa-eye': showPassword,\r\n }\"\r\n ></i>\r\n </button>\r\n </div>\r\n }\r\n }\r\n\r\n @if (prop().formText) {\r\n <small class=\"text-muted d-block\">{{ prop().formText | abpLocalization }}</small>\r\n }\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop().id\" [class]=\"classes || 'form-label d-inline-block'\">\r\n <span class=\"d-inline-flex align-items-center gap-1 text-nowrap\">\r\n @if (prop().displayTextResolver) {\r\n {{ prop().displayTextResolver(data()) | abpLocalization }}\r\n } @else {\r\n @if (prop().isExtra) {\r\n {{ '::' + prop().displayName | abpLocalization }}\r\n } @else {\r\n {{ prop().displayName | abpLocalization }}\r\n }\r\n }\r\n {{ asterisk }}\r\n @if (prop().tooltip) {\r\n <i\r\n [ngbTooltip]=\"prop().tooltip.text | abpLocalization\"\r\n [placement]=\"prop().tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n class=\"bi bi-info-circle\"\r\n ></i>\r\n }\r\n </span>\r\n </label>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: ExtensibleDateTimePickerComponent, selector: "abp-extensible-date-time-picker", inputs: ["prop", "meridian", "placement"], exportAs: ["abpExtensibleDateTimePicker"] }, { kind: "component", type: ExtensibleFormMultiselectComponent, selector: "abp-extensible-form-multi-select", inputs: ["prop", "options"] }, { kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: NgbTimepickerModule }, { kind: "component", type: i1.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationStyleDirective, selector: "[validationStyle]", exportAs: ["validationStyle"] }, { kind: "directive", type: i3.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { 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: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i1.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "directive", type: ShowPasswordDirective, selector: "[abpShowPassword]", inputs: ["abpShowPassword"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: AsyncPipe, name: "async" }], viewProviders: [
|
|
465
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormPropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
466
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ExtensibleFormPropComponent, isStandalone: true, selector: "abp-extensible-form-prop", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, prop: { classPropertyName: "prop", publicName: "prop", isSignal: true, isRequired: true, transformFunction: null }, first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, isFirstGroup: { classPropertyName: "isFirstGroup", publicName: "isFirstGroup", isSignal: true, isRequired: false, transformFunction: null } }, providers: [ExtensibleFormPropService], viewQueries: [{ propertyName: "fieldRef", first: true, predicate: ["field"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *abpPermission=\"prop().permission; runChangeDetection: false\">\r\n @switch (getComponent(prop())) {\r\n @case ('template') {\r\n <ng-container *ngComponentOutlet=\"prop().template; injector: injectorForCustomComponent\" />\r\n }\r\n }\r\n\r\n <div [class]=\"containerClassName\" class=\"mb-2\">\r\n @switch (getComponent(prop())) {\r\n @case ('input') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [autocomplete]=\"prop().autocomplete\"\r\n [type]=\"getType(prop())\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n }\r\n @case ('hidden') {\r\n <input [formControlName]=\"prop().name\" type=\"hidden\" />\r\n }\r\n @case ('checkbox') {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n />\r\n </div>\r\n }\r\n @case ('select') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <select\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n @for (option of options$ | async; track option.value) {\r\n <option [ngValue]=\"option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </option>\r\n }\r\n </select>\r\n }\r\n @case ('multiselect') {\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-extensible-form-multi-select\r\n [prop]=\"prop()\"\r\n [options]=\"options$ | async\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n />\r\n }\r\n @case ('typeahead') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop().id\"\r\n [autocomplete]=\"prop().autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop().name\" type=\"hidden\" />\r\n </div>\r\n }\r\n @case ('date') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n }\r\n @case ('time') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <ngb-timepicker [formControlName]=\"prop().name\" />\r\n }\r\n @case ('dateTime') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <abp-extensible-date-time-picker [prop]=\"prop()\" [meridian]=\"meridian$ | async\" />\r\n }\r\n @case ('textarea') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <textarea\r\n #field\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n }\r\n @case ('passwordinputgroup') {\r\n <ng-template [ngTemplateOutlet]=\"label\" />\r\n <div class=\"input-group form-group\" validationTarget>\r\n <input\r\n class=\"form-control\"\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n [abpShowPassword]=\"showPassword\"\r\n />\r\n <button class=\"btn btn-secondary\" type=\"button\" (click)=\"showPassword = !showPassword\">\r\n <i\r\n class=\"fa\"\r\n aria-hidden=\"true\"\r\n [class]=\"{\r\n 'fa-eye-slash': !showPassword,\r\n 'fa-eye': showPassword,\r\n }\"\r\n ></i>\r\n </button>\r\n </div>\r\n }\r\n }\r\n\r\n @if (prop().formText) {\r\n <small class=\"text-muted d-block\">{{ prop().formText | abpLocalization }}</small>\r\n }\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop().id\" [class]=\"classes || 'form-label d-inline-block'\">\r\n <span class=\"d-inline-flex align-items-center gap-1 text-nowrap\">\r\n @if (prop().displayTextResolver) {\r\n {{ prop().displayTextResolver(data()) | abpLocalization }}\r\n } @else {\r\n @if (prop().isExtra) {\r\n {{ '::' + prop().displayName | abpLocalization }}\r\n } @else {\r\n {{ prop().displayName | abpLocalization }}\r\n }\r\n }\r\n {{ asterisk }}\r\n @if (prop().tooltip) {\r\n <i\r\n [ngbTooltip]=\"prop().tooltip.text | abpLocalization\"\r\n [placement]=\"prop().tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n class=\"bi bi-info-circle\"\r\n ></i>\r\n }\r\n </span>\r\n </label>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: ExtensibleDateTimePickerComponent, selector: "abp-extensible-date-time-picker", inputs: ["prop", "meridian", "placement"], exportAs: ["abpExtensibleDateTimePicker"] }, { kind: "component", type: ExtensibleFormMultiselectComponent, selector: "abp-extensible-form-multi-select", inputs: ["prop", "options"] }, { kind: "ngmodule", type: NgbDatepickerModule }, { kind: "directive", type: i1.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "contentTemplate", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "popperOptions", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "ngmodule", type: NgbTimepickerModule }, { kind: "component", type: i1.NgbTimepicker, selector: "ngb-timepicker", inputs: ["meridian", "spinners", "seconds", "hourStep", "minuteStep", "secondStep", "readonlyInputs", "size"], exportAs: ["ngbTimepicker"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: DisabledDirective, selector: "[abpDisabled]", inputs: ["abpDisabled"] }, { kind: "ngmodule", type: NgxValidateCoreModule }, { kind: "directive", type: i3.ValidationStyleDirective, selector: "[validationStyle]", exportAs: ["validationStyle"] }, { kind: "directive", type: i3.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { 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: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i1.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "directive", type: ShowPasswordDirective, selector: "[abpShowPassword]", inputs: ["abpShowPassword"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: AsyncPipe, name: "async" }], viewProviders: [
|
|
467
467
|
{
|
|
468
468
|
provide: ControlContainer,
|
|
469
469
|
useFactory: selfFactory,
|
|
@@ -473,7 +473,7 @@ class ExtensibleFormPropComponent {
|
|
|
473
473
|
{ provide: NgbTimeAdapter, useClass: TimeAdapter },
|
|
474
474
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
475
475
|
}
|
|
476
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormPropComponent, decorators: [{
|
|
477
477
|
type: Component,
|
|
478
478
|
args: [{ selector: 'abp-extensible-form-prop', imports: [
|
|
479
479
|
ExtensibleDateTimePickerComponent,
|
|
@@ -808,10 +808,10 @@ class ExtensionsService {
|
|
|
808
808
|
this.createFormProps = new CreateFormPropsFactory();
|
|
809
809
|
this.editFormProps = new EditFormPropsFactory();
|
|
810
810
|
}
|
|
811
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
812
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
811
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
812
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensionsService, providedIn: 'root' }); }
|
|
813
813
|
}
|
|
814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
814
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensionsService, decorators: [{
|
|
815
815
|
type: Injectable,
|
|
816
816
|
args: [{
|
|
817
817
|
providedIn: 'root',
|
|
@@ -825,9 +825,9 @@ class PropDataDirective extends PropData {
|
|
|
825
825
|
super();
|
|
826
826
|
this.tempRef = inject(TemplateRef);
|
|
827
827
|
this.vcRef = inject(ViewContainerRef);
|
|
828
|
-
this.propList = input(undefined, { ...(ngDevMode ? { debugName: "propList" } : {}), alias: 'abpPropDataFromList' });
|
|
829
|
-
this.record = input.required({ ...(ngDevMode ? { debugName: "record" } : {}), alias: 'abpPropDataWithRecord' });
|
|
830
|
-
this.index = input(undefined, { ...(ngDevMode ? { debugName: "index" } : {}), alias: 'abpPropDataAtIndex' });
|
|
828
|
+
this.propList = input(undefined, { ...(ngDevMode ? { debugName: "propList" } : /* istanbul ignore next */ {}), alias: 'abpPropDataFromList' });
|
|
829
|
+
this.record = input.required({ ...(ngDevMode ? { debugName: "record" } : /* istanbul ignore next */ {}), alias: 'abpPropDataWithRecord' });
|
|
830
|
+
this.index = input(undefined, { ...(ngDevMode ? { debugName: "index" } : /* istanbul ignore next */ {}), alias: 'abpPropDataAtIndex' });
|
|
831
831
|
this.getInjected = injector.get.bind(injector);
|
|
832
832
|
// Watch for input changes and re-render
|
|
833
833
|
effect(() => {
|
|
@@ -845,10 +845,10 @@ class PropDataDirective extends PropData {
|
|
|
845
845
|
ngOnDestroy() {
|
|
846
846
|
this.vcRef.clear();
|
|
847
847
|
}
|
|
848
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
849
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
848
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PropDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
849
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: PropDataDirective, isStandalone: true, selector: "[abpPropData]", inputs: { propList: { classPropertyName: "propList", publicName: "abpPropDataFromList", isSignal: true, isRequired: false, transformFunction: null }, record: { classPropertyName: "record", publicName: "abpPropDataWithRecord", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "abpPropDataAtIndex", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["abpPropData"], usesInheritance: true, ngImport: i0 }); }
|
|
850
850
|
}
|
|
851
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PropDataDirective, decorators: [{
|
|
852
852
|
type: Directive,
|
|
853
853
|
args: [{
|
|
854
854
|
exportAs: 'abpPropData',
|
|
@@ -863,11 +863,11 @@ class ExtensibleFormComponent {
|
|
|
863
863
|
this.container = inject(ControlContainer);
|
|
864
864
|
this.extensions = inject(ExtensionsService);
|
|
865
865
|
this.identifier = inject(EXTENSIONS_IDENTIFIER);
|
|
866
|
-
this.formProps = viewChildren(ExtensibleFormPropComponent, ...(ngDevMode ? [{ debugName: "formProps" }] : []));
|
|
867
|
-
this.selectedRecord = input(undefined, ...(ngDevMode ? [{ debugName: "selectedRecord" }] : []));
|
|
866
|
+
this.formProps = viewChildren(ExtensibleFormPropComponent, ...(ngDevMode ? [{ debugName: "formProps" }] : /* istanbul ignore next */ []));
|
|
867
|
+
this.selectedRecord = input(undefined, ...(ngDevMode ? [{ debugName: "selectedRecord" }] : /* istanbul ignore next */ []));
|
|
868
868
|
this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;
|
|
869
|
-
this.groupedPropList = signal(undefined, ...(ngDevMode ? [{ debugName: "groupedPropList" }] : []));
|
|
870
|
-
this.record = signal(undefined, ...(ngDevMode ? [{ debugName: "record" }] : []));
|
|
869
|
+
this.groupedPropList = signal(undefined, ...(ngDevMode ? [{ debugName: "groupedPropList" }] : /* istanbul ignore next */ []));
|
|
870
|
+
this.record = signal(undefined, ...(ngDevMode ? [{ debugName: "record" }] : /* istanbul ignore next */ []));
|
|
871
871
|
effect(() => {
|
|
872
872
|
const recordValue = this.selectedRecord();
|
|
873
873
|
const type = !recordValue || JSON.stringify(recordValue) === '{}' ? 'create' : 'edit';
|
|
@@ -898,8 +898,8 @@ class ExtensibleFormComponent {
|
|
|
898
898
|
const formPropList = items[index].formPropList.toArray();
|
|
899
899
|
return formPropList.some(prop => prop.visible(data));
|
|
900
900
|
}
|
|
901
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
902
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
902
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ExtensibleFormComponent, isStandalone: true, selector: "abp-extensible-form", inputs: { selectedRecord: { classPropertyName: "selectedRecord", publicName: "selectedRecord", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "formProps", predicate: ExtensibleFormPropComponent, descendants: true, isSignal: true }], exportAs: ["abpExtensibleForm"], ngImport: i0, template: "@if (form) {\r\n@for (groupedProp of groupedPropList()?.items; track i; let i = $index; let first = $first) {\r\n<ng-container *abpPropData=\"let data; fromList: groupedProp.formPropList; withRecord: record()\">\r\n @if (isAnyGroupMemberVisible(i, data) && groupedProp.group?.className) {\r\n <div [class]=\"groupedProp.group?.className\"\r\n [attr.data-name]=\"groupedProp.group?.name || groupedProp.group?.className\">\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\"\r\n [ngTemplateOutletContext]=\"{ groupedProp: groupedProp, data: data, isFirstGroup: first}\">\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"propListTemplate\"\r\n [ngTemplateOutletContext]=\"{ groupedProp: groupedProp, data: data, isFirstGroup: first }\">\r\n </ng-container>\r\n }\r\n</ng-container>\r\n}\r\n}\r\n\r\n<ng-template let-groupedProp=\"groupedProp\" let-data=\"data\" let-isFirstGroup=\"isFirstGroup\" #propListTemplate>\r\n @for (prop of groupedProp.formPropList; let index = $index; let first = $first; track prop.name) {\r\n @if (prop.visible(data)) {\r\n @if (extraProperties.controls[prop.name]) {\r\n <ng-container [formGroupName]=\"extraPropertiesKey\">\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\" [class]=\"prop.className\" />\r\n </ng-container>\r\n } @else {\r\n @if (form.get(prop.name)) {\r\n <abp-extensible-form-prop [class]=\"prop.className\" [prop]=\"prop\" [data]=\"data\" [first]=\"first\"\r\n [isFirstGroup]=\"isFirstGroup\" />\r\n }\r\n }\r\n }\r\n }\r\n</ng-template>", dependencies: [{ kind: "directive", type: 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],[formArray],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", "isFirstGroup"] }], viewProviders: [
|
|
903
903
|
{
|
|
904
904
|
provide: ControlContainer,
|
|
905
905
|
useFactory: selfFactory,
|
|
@@ -907,7 +907,7 @@ class ExtensibleFormComponent {
|
|
|
907
907
|
},
|
|
908
908
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
909
909
|
}
|
|
910
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
910
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleFormComponent, decorators: [{
|
|
911
911
|
type: Component,
|
|
912
912
|
args: [{ exportAs: 'abpExtensibleForm', selector: 'abp-extensible-form', imports: [NgTemplateOutlet, PropDataDirective, ReactiveFormsModule, ExtensibleFormPropComponent], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
|
|
913
913
|
{
|
|
@@ -924,37 +924,37 @@ class AbstractActionsComponent extends ActionData {
|
|
|
924
924
|
constructor() {
|
|
925
925
|
const injector = inject(Injector);
|
|
926
926
|
super();
|
|
927
|
-
this.record = input.required(...(ngDevMode ? [{ debugName: "record" }] : []));
|
|
927
|
+
this.record = input.required(...(ngDevMode ? [{ debugName: "record" }] : /* istanbul ignore next */ []));
|
|
928
928
|
this.getInjected = injector.get.bind(injector);
|
|
929
929
|
const extensions = injector.get(ExtensionsService);
|
|
930
930
|
const name = injector.get(EXTENSIONS_IDENTIFIER);
|
|
931
931
|
const type = injector.get(EXTENSIONS_ACTION_TYPE);
|
|
932
932
|
this.actionList = extensions[type].get(name).actions;
|
|
933
933
|
}
|
|
934
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
935
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
934
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: AbstractActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
935
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", type: AbstractActionsComponent, isStandalone: true, inputs: { record: { classPropertyName: "record", publicName: "record", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
936
936
|
}
|
|
937
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: AbstractActionsComponent, decorators: [{
|
|
938
938
|
type: Directive
|
|
939
939
|
}], ctorParameters: () => [], propDecorators: { record: [{ type: i0.Input, args: [{ isSignal: true, alias: "record", required: true }] }] } });
|
|
940
940
|
|
|
941
941
|
class GridActionsComponent extends AbstractActionsComponent {
|
|
942
942
|
constructor() {
|
|
943
943
|
super();
|
|
944
|
-
this.icon = input('fa fa-cog', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
945
|
-
this.index = input(undefined, ...(ngDevMode ? [{ debugName: "index" }] : []));
|
|
946
|
-
this.text = input('', ...(ngDevMode ? [{ debugName: "text" }] : []));
|
|
944
|
+
this.icon = input('fa fa-cog', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
945
|
+
this.index = input(undefined, ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
946
|
+
this.text = input('', ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
947
947
|
this.trackByFn = (_, item) => item.text;
|
|
948
948
|
}
|
|
949
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
950
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
949
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GridActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
950
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: GridActionsComponent, isStandalone: true, selector: "abp-grid-actions", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
951
951
|
{
|
|
952
952
|
provide: EXTENSIONS_ACTION_TYPE,
|
|
953
953
|
useValue: 'entityActions',
|
|
954
954
|
},
|
|
955
955
|
], exportAs: ["abpGridActions"], usesInheritance: true, ngImport: i0, template: "@if (actionList.length > 1) {\r\n<div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\" ngbDropdownToggle>\r\n <i [class]=\"icon()\" [class.me-1]=\"icon()\"></i>{{ text() | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n @for (action of actionList; track action.text) {\r\n <ng-container [ngTemplateOutlet]=\"dropDownBtnItemTmp\" [ngTemplateOutletContext]=\"{ $implicit: action }\">\r\n </ng-container>\r\n }\r\n </div>\r\n</div>\r\n}\r\n\r\n@if (actionList.length === 1) {\r\n<ng-container [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"></ng-container>\r\n}\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n @if (action.visible(data)) {\r\n <button ngbDropdownItem *abpPermission=\"action.permission; runChangeDetection: false\" (click)=\"action.action(data)\"\r\n type=\"button\">\r\n <ng-container *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"></ng-container>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [class]=\"action.icon\" [class.me-1]=\"action.icon && !action.showOnlyIcon\"></i>\r\n @if (!action.showOnlyIcon) {\r\n @if (action.icon) {\r\n <span>{{ action.text | abpLocalization }}</span>\r\n } @else {\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n }\r\n }\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n @if (action.visible(data)) {\r\n @if (action.tooltip) {\r\n <button *abpPermission=\"action.permission; runChangeDetection: false\" (click)=\"action.action(data)\" type=\"button\"\r\n [class]=\"action.btnClass\" [style]=\"action.btnStyle\" [ngbTooltip]=\"action.tooltip.text | abpLocalization\"\r\n [placement]=\"action.tooltip.placement || 'auto'\" triggers=\"hover\" container=\"body\">\r\n <ng-container *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"></ng-container>\r\n </button>\r\n } @else {\r\n <button *abpPermission=\"action.permission; runChangeDetection: false\" (click)=\"action.action(data)\" type=\"button\"\r\n [class]=\"action.btnClass\" [style]=\"action.btnStyle\">\r\n <ng-container *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"></ng-container>\r\n </button>\r\n }\r\n }\r\n</ng-template>", dependencies: [{ kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i1.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i1.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i1.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i1.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i1.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "directive", type: EllipsisDirective, selector: "[abpEllipsis]", inputs: ["abpEllipsis", "title", "abpEllipsisEnabled"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgbTooltipModule }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
956
956
|
}
|
|
957
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
957
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: GridActionsComponent, decorators: [{
|
|
958
958
|
type: Component,
|
|
959
959
|
args: [{ exportAs: 'abpGridActions', imports: [
|
|
960
960
|
NgbDropdownModule,
|
|
@@ -973,13 +973,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
973
973
|
|
|
974
974
|
class ExtensibleTableRowDetailComponent {
|
|
975
975
|
constructor() {
|
|
976
|
-
this.rowHeight = input('100%', ...(ngDevMode ? [{ debugName: "rowHeight" }] : []));
|
|
977
|
-
this.template = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "template" }] : []));
|
|
976
|
+
this.rowHeight = input('100%', ...(ngDevMode ? [{ debugName: "rowHeight" }] : /* istanbul ignore next */ []));
|
|
977
|
+
this.template = contentChild((TemplateRef), ...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
|
|
978
978
|
}
|
|
979
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
980
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
979
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleTableRowDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
980
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.6", type: ExtensibleTableRowDetailComponent, isStandalone: true, selector: "abp-extensible-table-row-detail", inputs: { rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true }); }
|
|
981
981
|
}
|
|
982
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
982
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleTableRowDetailComponent, decorators: [{
|
|
983
983
|
type: Component,
|
|
984
984
|
args: [{
|
|
985
985
|
selector: 'abp-extensible-table-row-detail',
|
|
@@ -1014,39 +1014,39 @@ class ExtensibleTableComponent {
|
|
|
1014
1014
|
this.platformId = inject(PLATFORM_ID);
|
|
1015
1015
|
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
1016
1016
|
// Input signals
|
|
1017
|
-
this.actionsTextInput = input(undefined, { ...(ngDevMode ? { debugName: "actionsTextInput" } : {}), alias: 'actionsText' });
|
|
1018
|
-
this.dataInput = input([], { ...(ngDevMode ? { debugName: "dataInput" } : {}), alias: 'data' });
|
|
1019
|
-
this.list = input.required(...(ngDevMode ? [{ debugName: "list" }] : []));
|
|
1020
|
-
this.recordsTotal = input.required(...(ngDevMode ? [{ debugName: "recordsTotal" }] : []));
|
|
1021
|
-
this.actionsColumnWidthInput = input(undefined, { ...(ngDevMode ? { debugName: "actionsColumnWidthInput" } : {}), alias: 'actionsColumnWidth' });
|
|
1022
|
-
this.actionsTemplate = input(undefined, ...(ngDevMode ? [{ debugName: "actionsTemplate" }] : []));
|
|
1023
|
-
this.selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable" }] : []));
|
|
1024
|
-
this.selectionTypeInput = input(SelectionType.multiClick, { ...(ngDevMode ? { debugName: "selectionTypeInput" } : {}), alias: 'selectionType' });
|
|
1025
|
-
this.selected = input([], ...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
1026
|
-
this.infiniteScroll = input(false, ...(ngDevMode ? [{ debugName: "infiniteScroll" }] : []));
|
|
1027
|
-
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
1028
|
-
this.scrollThreshold = input(10, ...(ngDevMode ? [{ debugName: "scrollThreshold" }] : []));
|
|
1029
|
-
this.tableHeight = input(undefined, ...(ngDevMode ? [{ debugName: "tableHeight" }] : []));
|
|
1030
|
-
this.rowDetailTemplate = input(undefined, ...(ngDevMode ? [{ debugName: "rowDetailTemplate" }] : []));
|
|
1031
|
-
this.rowDetailHeight = input('100%', ...(ngDevMode ? [{ debugName: "rowDetailHeight" }] : []));
|
|
1017
|
+
this.actionsTextInput = input(undefined, { ...(ngDevMode ? { debugName: "actionsTextInput" } : /* istanbul ignore next */ {}), alias: 'actionsText' });
|
|
1018
|
+
this.dataInput = input([], { ...(ngDevMode ? { debugName: "dataInput" } : /* istanbul ignore next */ {}), alias: 'data' });
|
|
1019
|
+
this.list = input.required(...(ngDevMode ? [{ debugName: "list" }] : /* istanbul ignore next */ []));
|
|
1020
|
+
this.recordsTotal = input.required(...(ngDevMode ? [{ debugName: "recordsTotal" }] : /* istanbul ignore next */ []));
|
|
1021
|
+
this.actionsColumnWidthInput = input(undefined, { ...(ngDevMode ? { debugName: "actionsColumnWidthInput" } : /* istanbul ignore next */ {}), alias: 'actionsColumnWidth' });
|
|
1022
|
+
this.actionsTemplate = input(undefined, ...(ngDevMode ? [{ debugName: "actionsTemplate" }] : /* istanbul ignore next */ []));
|
|
1023
|
+
this.selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable" }] : /* istanbul ignore next */ []));
|
|
1024
|
+
this.selectionTypeInput = input(SelectionType.multiClick, { ...(ngDevMode ? { debugName: "selectionTypeInput" } : /* istanbul ignore next */ {}), alias: 'selectionType' });
|
|
1025
|
+
this.selected = input([], ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
1026
|
+
this.infiniteScroll = input(false, ...(ngDevMode ? [{ debugName: "infiniteScroll" }] : /* istanbul ignore next */ []));
|
|
1027
|
+
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1028
|
+
this.scrollThreshold = input(10, ...(ngDevMode ? [{ debugName: "scrollThreshold" }] : /* istanbul ignore next */ []));
|
|
1029
|
+
this.tableHeight = input(undefined, ...(ngDevMode ? [{ debugName: "tableHeight" }] : /* istanbul ignore next */ []));
|
|
1030
|
+
this.rowDetailTemplate = input(undefined, ...(ngDevMode ? [{ debugName: "rowDetailTemplate" }] : /* istanbul ignore next */ []));
|
|
1031
|
+
this.rowDetailHeight = input('100%', ...(ngDevMode ? [{ debugName: "rowDetailHeight" }] : /* istanbul ignore next */ []));
|
|
1032
1032
|
// Output signals
|
|
1033
1033
|
this.tableActivate = output();
|
|
1034
1034
|
this.selectionChange = output();
|
|
1035
1035
|
this.loadMore = output();
|
|
1036
1036
|
this.rowDetailToggle = output();
|
|
1037
1037
|
// Internal signals
|
|
1038
|
-
this._data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : []));
|
|
1039
|
-
this._actionsColumnWidth = signal(DEFAULT_ACTIONS_COLUMN_WIDTH, ...(ngDevMode ? [{ debugName: "_actionsColumnWidth" }] : []));
|
|
1040
|
-
this.rowDetailComponent = contentChild(ExtensibleTableRowDetailComponent, ...(ngDevMode ? [{ debugName: "rowDetailComponent" }] : []));
|
|
1038
|
+
this._data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : /* istanbul ignore next */ []));
|
|
1039
|
+
this._actionsColumnWidth = signal(DEFAULT_ACTIONS_COLUMN_WIDTH, ...(ngDevMode ? [{ debugName: "_actionsColumnWidth" }] : /* istanbul ignore next */ []));
|
|
1040
|
+
this.rowDetailComponent = contentChild(ExtensibleTableRowDetailComponent, ...(ngDevMode ? [{ debugName: "rowDetailComponent" }] : /* istanbul ignore next */ []));
|
|
1041
1041
|
this.table = viewChild.required('table');
|
|
1042
1042
|
// Computed values
|
|
1043
1043
|
this.actionsText = computed(() => {
|
|
1044
1044
|
return this.actionsTextInput() ?? (this.actionList.length >= 1 ? 'AbpUi::Actions' : '');
|
|
1045
|
-
}, ...(ngDevMode ? [{ debugName: "actionsText" }] : []));
|
|
1045
|
+
}, ...(ngDevMode ? [{ debugName: "actionsText" }] : /* istanbul ignore next */ []));
|
|
1046
1046
|
this.selectionType = computed(() => {
|
|
1047
1047
|
const value = this.selectionTypeInput();
|
|
1048
1048
|
return typeof value === 'string' ? SelectionType[value] : value;
|
|
1049
|
-
}, ...(ngDevMode ? [{ debugName: "selectionType" }] : []));
|
|
1049
|
+
}, ...(ngDevMode ? [{ debugName: "selectionType" }] : /* istanbul ignore next */ []));
|
|
1050
1050
|
this.trackByFn = (_, item) => item.name;
|
|
1051
1051
|
// Infinite scroll: debounced load more subject
|
|
1052
1052
|
this.loadMoreSubject = new Subject();
|
|
@@ -1055,7 +1055,7 @@ class ExtensibleTableComponent {
|
|
|
1055
1055
|
.subscribe(() => this.triggerLoadMore());
|
|
1056
1056
|
this.columnWidths = computed(() => {
|
|
1057
1057
|
return this.propList.toArray().map(prop => prop.columnWidth);
|
|
1058
|
-
}, ...(ngDevMode ? [{ debugName: "columnWidths" }] : []));
|
|
1058
|
+
}, ...(ngDevMode ? [{ debugName: "columnWidths" }] : /* istanbul ignore next */ []));
|
|
1059
1059
|
const extensions = this.#injector.get(ExtensionsService);
|
|
1060
1060
|
const name = this.#injector.get(EXTENSIONS_IDENTIFIER);
|
|
1061
1061
|
this.propList = extensions.entityProps.get(name).props;
|
|
@@ -1201,10 +1201,10 @@ class ExtensibleTableComponent {
|
|
|
1201
1201
|
ngOnDestroy() {
|
|
1202
1202
|
this.loadMoreSubscription.unsubscribe();
|
|
1203
1203
|
}
|
|
1204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: ExtensibleTableComponent, isStandalone: true, selector: "abp-extensible-table", inputs: { actionsTextInput: { classPropertyName: "actionsTextInput", publicName: "actionsText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null }, recordsTotal: { classPropertyName: "recordsTotal", publicName: "recordsTotal", isSignal: true, isRequired: true, transformFunction: null }, actionsColumnWidthInput: { classPropertyName: "actionsColumnWidthInput", publicName: "actionsColumnWidth", isSignal: true, isRequired: false, transformFunction: null }, actionsTemplate: { classPropertyName: "actionsTemplate", publicName: "actionsTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selectionTypeInput: { classPropertyName: "selectionTypeInput", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "infiniteScroll", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, scrollThreshold: { classPropertyName: "scrollThreshold", publicName: "scrollThreshold", isSignal: true, isRequired: false, transformFunction: null }, tableHeight: { classPropertyName: "tableHeight", publicName: "tableHeight", isSignal: true, isRequired: false, transformFunction: null }, rowDetailTemplate: { classPropertyName: "rowDetailTemplate", publicName: "rowDetailTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowDetailHeight: { classPropertyName: "rowDetailHeight", publicName: "rowDetailHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableActivate: "tableActivate", selectionChange: "selectionChange", loadMore: "loadMore", rowDetailToggle: "rowDetailToggle" }, queries: [{ propertyName: "rowDetailComponent", first: true, predicate: ExtensibleTableRowDetailComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }], exportAs: ["abpExtensibleTable"], ngImport: i0, template: "@if (isBrowser) {\r\n <ngx-datatable\r\n #table\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal()\"\r\n [list]=\"list()\"\r\n [selectionType]=\"selectable() ? selectionType() : undefined\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n (select)=\"onSelect($event)\"\r\n [selected]=\"selected()\"\r\n (scroll)=\"onScroll($event)\"\r\n [scrollbarV]=\"infiniteScroll()\"\r\n [style.height]=\"getTableHeight()\"\r\n [loadingIndicator]=\"infiniteScroll() && isLoading()\"\r\n [footerHeight]=\"infiniteScroll() ? false : 50\"\r\n >\r\n @if (effectiveRowDetailTemplate) {\r\n <ngx-datatable-row-detail [rowHeight]=\"effectiveRowDetailHeight\">\r\n <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\r\n <ng-container\r\n [ngTemplateOutlet]=\"effectiveRowDetailTemplate\"\r\n [ngTemplateOutletContext]=\"{ row: row, expanded: expanded }\"\r\n ></ng-container>\r\n </ng-template>\r\n </ngx-datatable-row-detail>\r\n\r\n <ngx-datatable-column\r\n [width]=\"50\"\r\n [resizeable]=\"false\"\r\n [sortable]=\"false\"\r\n [draggable]=\"false\"\r\n [canAutoResize]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-link text-decoration-none text-muted p-0\"\r\n [attr.aria-label]=\"expanded ? 'Collapse' : 'Expand'\"\r\n (click)=\"toggleExpandRow(row)\"\r\n >\r\n <i class=\"fa\" [class.fa-chevron-down]=\"!expanded\" [class.fa-chevron-up]=\"expanded\"></i>\r\n </button>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @if (selectable()) {\r\n <ngx-datatable-column\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (selectionType() !== 'single') {\r\n <div class=\"form-check\">\r\n <input\r\n class=\"form-check-input table-check\"\r\n type=\"checkbox\"\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n />\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-value=\"value\"\r\n let-row=\"row\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (selectionType() === 'single') {\r\n <div class=\"h-100 form-check form-check-sm form-check-custom form-check-solid\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"radio\"\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n />\r\n </div>\r\n }\r\n @if (selectionType() !== 'single') {\r\n <div class=\"h-100 form-check form-check-sm form-check-custom form-check-solid\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n />\r\n </div>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @if (actionsTemplate() || (actionList.length && hasAtLeastOnePermittedAction)) {\r\n <ngx-datatable-column\r\n [name]=\"actionsText() | abpLocalization\"\r\n [maxWidth]=\"_actionsColumnWidth() ?? undefined\"\r\n [width]=\"_actionsColumnWidth() ?? 200\"\r\n [canAutoResize]=\"!_actionsColumnWidth()\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n @if (actionsTemplate(); as template) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\"\r\n ></ng-container>\r\n } @else if (isVisibleActions(row)) {\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @for (prop of propList; track prop.name; let i = $index) {\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths()[i] ?? 200\"\r\n [canAutoResize]=\"!columnWidths()[i]\"\r\n [name]=\"(prop.isExtra ? '::' + prop.displayName : 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\" let-sortFn=\"sortFn\">\r\n @if (prop.tooltip) {\r\n <span\r\n [ngbTooltip]=\"prop.tooltip.text | abpLocalization\"\r\n [placement]=\"prop.tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n [class.pointer]=\"prop.sortable\"\r\n (click)=\"prop.sortable && sortFn(column)\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n } @else {\r\n <span [class.pointer]=\"prop.sortable\" (click)=\"prop.sortable && sortFn(column)\">\r\n {{ column.name }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n @if (!row['_' + prop.name].component) {\r\n @if (prop.type === 'datetime' || prop.type === 'date' || prop.type === 'time') {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async | abpUtcToLocal: prop.type)\r\n : ('::' + (row['_' + prop.name]?.value | async | abpUtcToLocal: prop.type)\r\n | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action &&\r\n prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n } @else {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async)\r\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action &&\r\n prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n }\r\n } @else {\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n </ngx-datatable>\r\n}\r\n", styles: [":host ::ng-deep .ngx-datatable.material .datatable-body .datatable-row-detail{background:none;padding:0}\n"], dependencies: [{ kind: "directive", type: AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "ngmodule", type: NgxDatatableModule }, { kind: "component", type: i1$1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i1$1.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i1$1.DatatableRowDetailTemplateDirective, selector: "[ngx-datatable-row-detail-template]" }, { kind: "directive", type: i1$1.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "bindAsUnsafeHtml", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i1$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i1$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: UtcToLocalPipe, name: "abpUtcToLocal" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ExtensibleTableComponent, isStandalone: true, selector: "abp-extensible-table", inputs: { actionsTextInput: { classPropertyName: "actionsTextInput", publicName: "actionsText", isSignal: true, isRequired: false, transformFunction: null }, dataInput: { classPropertyName: "dataInput", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: true, transformFunction: null }, recordsTotal: { classPropertyName: "recordsTotal", publicName: "recordsTotal", isSignal: true, isRequired: true, transformFunction: null }, actionsColumnWidthInput: { classPropertyName: "actionsColumnWidthInput", publicName: "actionsColumnWidth", isSignal: true, isRequired: false, transformFunction: null }, actionsTemplate: { classPropertyName: "actionsTemplate", publicName: "actionsTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selectionTypeInput: { classPropertyName: "selectionTypeInput", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, infiniteScroll: { classPropertyName: "infiniteScroll", publicName: "infiniteScroll", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, scrollThreshold: { classPropertyName: "scrollThreshold", publicName: "scrollThreshold", isSignal: true, isRequired: false, transformFunction: null }, tableHeight: { classPropertyName: "tableHeight", publicName: "tableHeight", isSignal: true, isRequired: false, transformFunction: null }, rowDetailTemplate: { classPropertyName: "rowDetailTemplate", publicName: "rowDetailTemplate", isSignal: true, isRequired: false, transformFunction: null }, rowDetailHeight: { classPropertyName: "rowDetailHeight", publicName: "rowDetailHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableActivate: "tableActivate", selectionChange: "selectionChange", loadMore: "loadMore", rowDetailToggle: "rowDetailToggle" }, queries: [{ propertyName: "rowDetailComponent", first: true, predicate: ExtensibleTableRowDetailComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }], exportAs: ["abpExtensibleTable"], ngImport: i0, template: "@if (isBrowser) {\r\n <ngx-datatable\r\n #table\r\n default\r\n [rows]=\"data\"\r\n [count]=\"recordsTotal()\"\r\n [list]=\"list()\"\r\n [selectionType]=\"selectable() ? selectionType() : undefined\"\r\n (activate)=\"tableActivate.emit($event)\"\r\n (select)=\"onSelect($event)\"\r\n [selected]=\"selected()\"\r\n (scroll)=\"onScroll($event)\"\r\n [scrollbarV]=\"infiniteScroll()\"\r\n [style.height]=\"getTableHeight()\"\r\n [loadingIndicator]=\"infiniteScroll() && isLoading()\"\r\n [footerHeight]=\"infiniteScroll() ? false : 50\"\r\n >\r\n @if (effectiveRowDetailTemplate) {\r\n <ngx-datatable-row-detail [rowHeight]=\"effectiveRowDetailHeight\">\r\n <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-row-detail-template>\r\n <ng-container\r\n [ngTemplateOutlet]=\"effectiveRowDetailTemplate\"\r\n [ngTemplateOutletContext]=\"{ row: row, expanded: expanded }\"\r\n ></ng-container>\r\n </ng-template>\r\n </ngx-datatable-row-detail>\r\n\r\n <ngx-datatable-column\r\n [width]=\"50\"\r\n [resizeable]=\"false\"\r\n [sortable]=\"false\"\r\n [draggable]=\"false\"\r\n [canAutoResize]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-expanded=\"expanded\" ngx-datatable-cell-template>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-link text-decoration-none text-muted p-0\"\r\n [attr.aria-label]=\"expanded ? 'Collapse' : 'Expand'\"\r\n (click)=\"toggleExpandRow(row)\"\r\n >\r\n <i class=\"fa\" [class.fa-chevron-down]=\"!expanded\" [class.fa-chevron-up]=\"expanded\"></i>\r\n </button>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @if (selectable()) {\r\n <ngx-datatable-column\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (selectionType() !== 'single') {\r\n <div class=\"form-check\">\r\n <input\r\n class=\"form-check-input table-check\"\r\n type=\"checkbox\"\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n />\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-value=\"value\"\r\n let-row=\"row\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (selectionType() === 'single') {\r\n <div class=\"h-100 form-check form-check-sm form-check-custom form-check-solid\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"radio\"\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n />\r\n </div>\r\n }\r\n @if (selectionType() !== 'single') {\r\n <div class=\"h-100 form-check form-check-sm form-check-custom form-check-solid\">\r\n <input\r\n class=\"form-check-input\"\r\n type=\"checkbox\"\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n />\r\n </div>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @if (actionsTemplate() || (actionList.length && hasAtLeastOnePermittedAction)) {\r\n <ngx-datatable-column\r\n [name]=\"actionsText() | abpLocalization\"\r\n [maxWidth]=\"_actionsColumnWidth() ?? undefined\"\r\n [width]=\"_actionsColumnWidth() ?? 200\"\r\n [canAutoResize]=\"!_actionsColumnWidth()\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n @if (actionsTemplate(); as template) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\"\r\n ></ng-container>\r\n } @else if (isVisibleActions(row)) {\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n @for (prop of propList; track prop.name; let i = $index) {\r\n <ngx-datatable-column\r\n *abpVisible=\"prop.columnVisible(getInjected)\"\r\n [width]=\"columnWidths()[i] ?? 200\"\r\n [canAutoResize]=\"!columnWidths()[i]\"\r\n [name]=\"(prop.isExtra ? '::' + prop.displayName : 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\" let-sortFn=\"sortFn\">\r\n @if (prop.tooltip) {\r\n <span\r\n [ngbTooltip]=\"prop.tooltip.text | abpLocalization\"\r\n [placement]=\"prop.tooltip.placement || 'auto'\"\r\n container=\"body\"\r\n [class.pointer]=\"prop.sortable\"\r\n (click)=\"prop.sortable && sortFn(column)\"\r\n >\r\n {{ column.name }} <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\r\n </span>\r\n } @else {\r\n <span [class.pointer]=\"prop.sortable\" (click)=\"prop.sortable && sortFn(column)\">\r\n {{ column.name }}\r\n </span>\r\n }\r\n </ng-template>\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission; runChangeDetection: false\">\r\n <ng-container *abpVisible=\"row['_' + prop.name]?.visible\">\r\n @if (!row['_' + prop.name].component) {\r\n @if (prop.type === 'datetime' || prop.type === 'date' || prop.type === 'time') {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async | abpUtcToLocal: prop.type)\r\n : ('::' + (row['_' + prop.name]?.value | async | abpUtcToLocal: prop.type)\r\n | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action &&\r\n prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n } @else {\r\n <div\r\n [innerHTML]=\"\r\n !prop.isExtra\r\n ? (row['_' + prop.name]?.value | async)\r\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\r\n \"\r\n (click)=\"\r\n prop.action &&\r\n prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class]=\"entityPropTypeClasses[prop.type]\"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n }\r\n } @else {\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n }\r\n </ngx-datatable>\r\n}\r\n", styles: [":host ::ng-deep .ngx-datatable.material .datatable-body .datatable-row-detail{background:none;padding:0}\n"], dependencies: [{ kind: "directive", type: AbpVisibleDirective, selector: "[abpVisible]", inputs: ["abpVisible"] }, { kind: "ngmodule", type: NgxDatatableModule }, { kind: "component", type: i1$1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i1$1.DatatableRowDetailDirective, selector: "ngx-datatable-row-detail", inputs: ["rowHeight", "template"], outputs: ["toggle"] }, { kind: "directive", type: i1$1.DatatableRowDetailTemplateDirective, selector: "[ngx-datatable-row-detail-template]" }, { kind: "directive", type: i1$1.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "bindAsUnsafeHtml", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i1$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i1$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: GridActionsComponent, selector: "abp-grid-actions", inputs: ["icon", "index", "text"], exportAs: ["abpGridActions"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }, { kind: "pipe", type: UtcToLocalPipe, name: "abpUtcToLocal" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1206
1206
|
}
|
|
1207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1207
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleTableComponent, decorators: [{
|
|
1208
1208
|
type: Component,
|
|
1209
1209
|
args: [{ exportAs: 'abpExtensibleTable', selector: 'abp-extensible-table', imports: [
|
|
1210
1210
|
AbpVisibleDirective,
|
|
@@ -1245,10 +1245,10 @@ class CreateInjectorPipe {
|
|
|
1245
1245
|
};
|
|
1246
1246
|
return { get };
|
|
1247
1247
|
}
|
|
1248
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1249
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.
|
|
1248
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: CreateInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1249
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: CreateInjectorPipe, isStandalone: true, name: "createInjector" }); }
|
|
1250
1250
|
}
|
|
1251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: CreateInjectorPipe, decorators: [{
|
|
1252
1252
|
type: Pipe,
|
|
1253
1253
|
args: [{
|
|
1254
1254
|
name: 'createInjector',
|
|
@@ -1269,15 +1269,15 @@ class PageToolbarComponent extends AbstractActionsComponent {
|
|
|
1269
1269
|
value: value,
|
|
1270
1270
|
};
|
|
1271
1271
|
}
|
|
1272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1273
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
1272
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1273
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: PageToolbarComponent, isStandalone: true, selector: "abp-page-toolbar", providers: [
|
|
1274
1274
|
{
|
|
1275
1275
|
provide: EXTENSIONS_ACTION_TYPE,
|
|
1276
1276
|
useValue: 'toolbarActions',
|
|
1277
1277
|
},
|
|
1278
1278
|
], exportAs: ["abpPageToolbar"], usesInheritance: true, ngImport: i0, template: "<div class=\"row justify-content-end mx-0 gap-2\" id=\"AbpContentToolbar\">\r\n @for (action of actionList; track action.component || action.action; let last = $last) {\r\n <div class=\"col-auto px-0 pt-0\" [class.pe-0]=\"last\">\r\n @if (action.visible(data)) {\r\n <ng-container *abpPermission=\"action.permission; runChangeDetection: false\">\r\n @if (action.component; as component) {\r\n <ng-container *ngComponentOutlet=\"component; injector: record | createInjector: action:this\"></ng-container>\r\n\r\n }@else {\r\n @if (asToolbarAction(action).value; as toolbarAction ) {\r\n <button (click)=\"action.action(data)\" type=\"button\"\r\n [class]=\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\"\r\n class=\"d-inline-flex align-items-center gap-1\">\r\n <i [class]=\"toolbarAction?.icon\" [class.me-1]=\"toolbarAction?.icon\"></i>\r\n {{ toolbarAction?.text | abpLocalization }}\r\n </button>\r\n }\r\n }\r\n </ng-container>\r\n }\r\n </div>\r\n }\r\n</div>", dependencies: [{ kind: "directive", type: PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: CreateInjectorPipe, name: "createInjector" }, { kind: "pipe", type: LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1279
1279
|
}
|
|
1280
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PageToolbarComponent, decorators: [{
|
|
1281
1281
|
type: Component,
|
|
1282
1282
|
args: [{ exportAs: 'abpPageToolbar', selector: 'abp-page-toolbar', imports: [
|
|
1283
1283
|
CreateInjectorPipe,
|
|
@@ -1602,8 +1602,8 @@ const importWithExport = [
|
|
|
1602
1602
|
ExtensibleFormMultiselectComponent,
|
|
1603
1603
|
];
|
|
1604
1604
|
class ExtensibleModule {
|
|
1605
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
1606
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
1605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1606
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
|
|
1607
1607
|
ThemeSharedModule,
|
|
1608
1608
|
NgxValidateCoreModule,
|
|
1609
1609
|
NgbDatepickerModule,
|
|
@@ -1631,7 +1631,7 @@ class ExtensibleModule {
|
|
|
1631
1631
|
ExtensibleTableComponent,
|
|
1632
1632
|
ExtensibleTableRowDetailComponent,
|
|
1633
1633
|
ExtensibleFormMultiselectComponent] }); }
|
|
1634
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
1634
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,
|
|
1635
1635
|
ThemeSharedModule,
|
|
1636
1636
|
NgxValidateCoreModule,
|
|
1637
1637
|
NgbDatepickerModule,
|
|
@@ -1645,7 +1645,7 @@ class ExtensibleModule {
|
|
|
1645
1645
|
ExtensibleTableComponent,
|
|
1646
1646
|
ExtensibleFormMultiselectComponent] }); }
|
|
1647
1647
|
}
|
|
1648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
1648
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ExtensibleModule, decorators: [{
|
|
1649
1649
|
type: NgModule,
|
|
1650
1650
|
args: [{
|
|
1651
1651
|
declarations: [],
|