@abp/ng.components 9.3.6 → 10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-extensible.mjs","sources":["../tmp-esm2022/extensible/lib/utils/factory.util.js","../tmp-esm2022/extensible/lib/components/date-time-picker/extensible-date-time-picker.component.js","../tmp-esm2022/extensible/lib/tokens/extensions.token.js","../tmp-esm2022/extensible/lib/constants/extra-properties.js","../tmp-esm2022/extensible/lib/models/props.js","../tmp-esm2022/extensible/lib/models/form-props.js","../tmp-esm2022/extensible/lib/utils/typeahead.util.js","../tmp-esm2022/extensible/lib/services/extensible-form-prop.service.js","../tmp-esm2022/extensible/lib/components/multi-select/extensible-form-multiselect.component.js","../tmp-esm2022/extensible/lib/components/extensible-form/extensible-form-prop.component.js","../tmp-esm2022/extensible/lib/models/actions.js","../tmp-esm2022/extensible/lib/models/entity-actions.js","../tmp-esm2022/extensible/lib/models/entity-props.js","../tmp-esm2022/extensible/lib/models/toolbar-actions.js","../tmp-esm2022/extensible/lib/services/extensions.service.js","../tmp-esm2022/extensible/lib/directives/prop-data.directive.js","../tmp-esm2022/extensible/lib/components/extensible-form/extensible-form.component.js","../tmp-esm2022/extensible/lib/components/abstract-actions/abstract-actions.component.js","../tmp-esm2022/extensible/lib/components/grid-actions/grid-actions.component.js","../tmp-esm2022/extensible/lib/components/extensible-table/extensible-table.component.js","../tmp-esm2022/extensible/lib/pipes/create-injector.pipe.js","../tmp-esm2022/extensible/lib/components/page-toolbar/page-toolbar.component.js","../tmp-esm2022/extensible/lib/tokens/extensible-form-view-provider.token.js","../tmp-esm2022/extensible/lib/utils/actions.util.js","../tmp-esm2022/extensible/lib/utils/form-props.util.js","../tmp-esm2022/extensible/lib/utils/props.util.js","../tmp-esm2022/extensible/lib/utils/enum.util.js","../tmp-esm2022/extensible/lib/utils/localization.util.js","../tmp-esm2022/extensible/lib/utils/validation.util.js","../tmp-esm2022/extensible/lib/utils/state.util.js","../tmp-esm2022/extensible/lib/extensible.module.js","../tmp-esm2022/extensible/abp-ng.components-extensible.js"],"sourcesContent":["export function selfFactory(dependency) {\n return dependency;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZmFjdG9yeS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsVUFBZ0I7SUFDMUMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZWxmRmFjdG9yeShkZXBlbmRlbmN5PzogYW55KSB7XHJcbiAgcmV0dXJuIGRlcGVuZGVuY3k7XHJcbn1cclxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input, Optional, SkipSelf, ViewChild, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlContainer, ReactiveFormsModule } from '@angular/forms';\nimport { NgbDateAdapter, NgbDatepickerModule, NgbInputDatepicker, NgbTimeAdapter, NgbTimepicker, NgbTimepickerModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { DateTimeAdapter } from '@abp/ng.theme.shared';\nimport { selfFactory } from '../../utils/factory.util';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ng-bootstrap/ng-bootstrap\";\nimport * as i3 from \"@ngx-validate/core\";\nexport class ExtensibleDateTimePickerComponent {\n constructor() {\n this.cdRef = inject(ChangeDetectorRef);\n this.prop = input();\n this.meridian = input(false);\n this.placement = input('bottom-left');\n }\n setDate(dateStr) {\n this.date.writeValue(dateStr);\n }\n setTime(dateStr) {\n this.time.writeValue(dateStr);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.7\", 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 }, { propertyName: \"time\", first: true, predicate: NgbTimepicker, descendants: true }], exportAs: [\"abpExtensibleDateTimePicker\"], ngImport: i0, template: `\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setTime($event)\"\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 [placement]=\"placement()\"\r\n />\r\n <ngb-timepicker\r\n #timepicker\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setDate($event)\"\r\n [meridian]=\"meridian()\"\r\n />\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.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: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: NgbDatepickerModule }, { kind: \"directive\", type: i2.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: i2.NgbTimepicker, selector: \"ngb-timepicker\", inputs: [\"meridian\", \"spinners\", \"seconds\", \"hourStep\", \"minuteStep\", \"secondStep\", \"readonlyInputs\", \"size\"], exportAs: [\"ngbTimepicker\"] }, { kind: \"ngmodule\", type: NgxValidateCoreModule }, { kind: \"directive\", type: i3.ValidationDirective, selector: \"[formControl],[formControlName]\", exportAs: [\"validationDirective\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n {\n provide: NgbDateAdapter,\n useClass: DateTimeAdapter,\n },\n {\n provide: NgbTimeAdapter,\n useClass: DateTimeAdapter,\n },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{\n exportAs: 'abpExtensibleDateTimePicker',\n imports: [\n CommonModule,\n ReactiveFormsModule,\n NgbDatepickerModule,\n NgbTimepickerModule,\n NgxValidateCoreModule,\n ],\n selector: 'abp-extensible-date-time-picker',\n template: `\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setTime($event)\"\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 [placement]=\"placement()\"\r\n />\r\n <ngb-timepicker\r\n #timepicker\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setDate($event)\"\r\n [meridian]=\"meridian()\"\r\n />\r\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n {\n provide: NgbDateAdapter,\n useClass: DateTimeAdapter,\n },\n {\n provide: NgbTimeAdapter,\n useClass: DateTimeAdapter,\n },\n ],\n }]\n }], propDecorators: { date: [{\n type: ViewChild,\n args: [NgbInputDatepicker]\n }], time: [{\n type: ViewChild,\n args: [NgbTimepicker]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9leHRlbnNpYmxlLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsR0FFcEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQWlEdkQsTUFBTSxPQUFPLGlDQUFpQztJQS9DOUM7UUFnRGtCLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVsRCxTQUFJLEdBQUcsS0FBSyxFQUFZLENBQUM7UUFDekIsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsS0FBSyxDQUFZLGFBQWEsQ0FBQyxDQUFDO0tBWTdDO0lBUEMsT0FBTyxDQUFDLE9BQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBaEJVLGlDQUFpQztrR0FBakMsaUNBQWlDLHVnQkFPakMsa0JBQWtCLHVFQUNsQixhQUFhLDJGQTdDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVCwyREExQkMsWUFBWSw4QkFDWixtQkFBbUIsc2pCQUNuQixtQkFBbUIsNGhCQUNuQixtQkFBbUIscVBBQ25CLHFCQUFxQix5SkF3QlI7WUFDYjtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixVQUFVLEVBQUUsV0FBVztnQkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUMzRDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixRQUFRLEVBQUUsZUFBZTthQUMxQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixRQUFRLEVBQUUsZUFBZTthQUMxQjtTQUNGOzsyRkFFVSxpQ0FBaUM7a0JBL0M3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHFCQUFxQjtxQkFDdEI7b0JBQ0QsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUU7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixRQUFRLEVBQUUsZUFBZTt5QkFDMUI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFFBQVEsRUFBRSxlQUFlO3lCQUMxQjtxQkFDRjtpQkFDRjs4QkFRZ0MsSUFBSTtzQkFBbEMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0gsSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlQWRhcHRlcixcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYklucHV0RGF0ZXBpY2tlcixcclxuICBOZ2JUaW1lQWRhcHRlcixcclxuICBOZ2JUaW1lcGlja2VyLFxyXG4gIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgUGxhY2VtZW50LFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgc2VsZkZhY3RvcnkgfSBmcm9tICcuLi8uLi91dGlscy9mYWN0b3J5LnV0aWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlRGF0ZVRpbWVQaWNrZXInLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTmdiVGltZXBpY2tlck1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICBdLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtZGF0ZS10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxpbnB1dFxyXG4gICAgICBbaWRdPVwicHJvcCgpLmlkXCJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wKCkubmFtZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFRpbWUoJGV2ZW50KVwiXHJcbiAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgIChrZXl1cC5zcGFjZSk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgI2RhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgIFtwbGFjZW1lbnRdPVwicGxhY2VtZW50KClcIlxyXG4gICAgLz5cclxuICAgIDxuZ2ItdGltZXBpY2tlclxyXG4gICAgICAjdGltZXBpY2tlclxyXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AoKS5uYW1lXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RGF0ZSgkZXZlbnQpXCJcclxuICAgICAgW21lcmlkaWFuXT1cIm1lcmlkaWFuKClcIlxyXG4gICAgLz5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlcixcclxuICAgICAgdXNlQ2xhc3M6IERhdGVUaW1lQWRhcHRlcixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5nYlRpbWVBZGFwdGVyLFxyXG4gICAgICB1c2VDbGFzczogRGF0ZVRpbWVBZGFwdGVyLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICBwcm9wID0gaW5wdXQ8Rm9ybVByb3A+KCk7XHJcbiAgbWVyaWRpYW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgcGxhY2VtZW50ID0gaW5wdXQ8UGxhY2VtZW50PignYm90dG9tLWxlZnQnKTtcclxuXHJcbiAgQFZpZXdDaGlsZChOZ2JJbnB1dERhdGVwaWNrZXIpIGRhdGUhOiBOZ2JJbnB1dERhdGVwaWNrZXI7XHJcbiAgQFZpZXdDaGlsZChOZ2JUaW1lcGlja2VyKSB0aW1lITogTmdiVGltZXBpY2tlcjtcclxuXHJcbiAgc2V0RGF0ZShkYXRlU3RyOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGF0ZS53cml0ZVZhbHVlKGRhdGVTdHIpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZShkYXRlU3RyOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGltZS53cml0ZVZhbHVlKGRhdGVTdHIpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER');\nexport const EXTENSIONS_ACTION_TYPE = new InjectionToken('EXTENSIONS_ACTION_TYPE');\nexport const EXTENSIONS_ACTION_DATA = new InjectionToken('EXTENSIONS_ACTION_DATA');\nexport const EXTENSIONS_ACTION_CALLBACK = new InjectionToken('EXTENSIONS_ACTION_DATA');\nexport const PROP_DATA_STREAM = new InjectionToken('PROP_DATA_STREAM');\nexport const ROW_RECORD = new InjectionToken('ROW_RECORD');\nexport const ENTITY_PROP_TYPE_CLASSES = new InjectionToken('ENTITY_PROP_TYPE_CLASSES', {\n factory: () => ({}),\n});\nexport const EXTENSIONS_FORM_PROP = new InjectionToken('EXTENSIONS_FORM_PROP');\nexport const EXTENSIONS_FORM_PROP_DATA = new InjectionToken('EXTENSIONS_FORM_PROP_DATA');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3Rva2Vucy9leHRlbnNpb25zLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQVMsdUJBQXVCLENBQUMsQ0FBQztBQUd6RixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBYSx3QkFBd0IsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFhLHdCQUF3QixDQUFDLENBQUM7QUFDL0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELHdCQUF3QixDQUN6QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLGtCQUFrQixDQUFDLENBQUM7QUFLeEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFNLFlBQVksQ0FBQyxDQUFDO0FBR2hFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsRUFDMUI7SUFDRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUEwQixDQUFBO0NBQzNDLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFXLHNCQUFzQixDQUFDLENBQUM7QUFDekYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQVUsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbkNhbGxiYWNrLCBSZWFkb25seUFjdGlvbkRhdGEgYXMgQWN0aW9uRGF0YSB9IGZyb20gJy4uL21vZGVscy9hY3Rpb25zJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0lERU5USUZJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRVhURU5TSU9OU19JREVOVElGSUVSJyk7XHJcbmV4cG9ydCB0eXBlIEFjdGlvbktleXMgPSBFeHRyYWN0PCdlbnRpdHlBY3Rpb25zJyB8ICd0b29sYmFyQWN0aW9ucycsIGtleW9mIEV4dGVuc2lvbnNTZXJ2aWNlPjtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0FDVElPTl9UWVBFID0gbmV3IEluamVjdGlvblRva2VuPEFjdGlvbktleXM+KCdFWFRFTlNJT05TX0FDVElPTl9UWVBFJyk7XHJcblxyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19BQ1RJT05fREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25EYXRhPignRVhURU5TSU9OU19BQ1RJT05fREFUQScpO1xyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19BQ1RJT05fQ0FMTEJBQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48QWN0aW9uQ2FsbGJhY2s8dW5rbm93bj4+KFxyXG4gICdFWFRFTlNJT05TX0FDVElPTl9EQVRBJyxcclxuKTtcclxuZXhwb3J0IGNvbnN0IFBST1BfREFUQV9TVFJFQU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxhbnk+PignUFJPUF9EQVRBX1NUUkVBTScpO1xyXG50eXBlIEVudGl0eVByb3BUeXBlQ2xhc3NNYXAgPSB7XHJcbiAgW2tleSBpbiBlUHJvcFR5cGVdOiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgUk9XX1JFQ09SRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdST1dfUkVDT1JEJyk7XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlQcm9wVHlwZUNsYXNzID0gUGFydGlhbDxFbnRpdHlQcm9wVHlwZUNsYXNzTWFwPjtcclxuZXhwb3J0IGNvbnN0IEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnRpdHlQcm9wVHlwZUNsYXNzPihcclxuICAnRU5USVRZX1BST1BfVFlQRV9DTEFTU0VTJyxcclxuICB7XHJcbiAgICBmYWN0b3J5OiAoKSA9PiAoe30gYXMgRW50aXR5UHJvcFR5cGVDbGFzcyksXHJcbiAgfSxcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtUHJvcD4oJ0VYVEVOU0lPTlNfRk9STV9QUk9QJyk7XHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPHVua25vd24+KCdFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBJyk7XHJcbiJdfQ==","export const EXTRA_PROPERTIES_KEY = 'extraProperties';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVYVFJBX1BST1BFUlRJRVNfS0VZID0gJ2V4dHJhUHJvcGVydGllcyc7XHJcbiJdfQ==","import { LinkedList } from '@abp/utils';\nexport class PropList extends LinkedList {\n}\nexport class PropData {\n get data() {\n return {\n getInjected: this.getInjected,\n index: this.index,\n record: this.record,\n };\n }\n}\nexport class Prop {\n constructor(type, name, displayName, permission, visible = _ => true, isExtra = false, template, className, formText, tooltip, displayTextResolver) {\n this.type = type;\n this.name = name;\n this.displayName = displayName;\n this.permission = permission;\n this.visible = visible;\n this.isExtra = isExtra;\n this.template = template;\n this.className = className;\n this.formText = formText;\n this.tooltip = tooltip;\n this.displayTextResolver = displayTextResolver;\n this.displayName = this.displayName || this.name;\n }\n}\nexport class PropsFactory {\n constructor() {\n this.contributorCallbacks = {};\n }\n get(name) {\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n return new this._ctor(this.contributorCallbacks[name]);\n }\n}\nexport class Props {\n get props() {\n const propList = new this._ctor();\n this.callbackList.forEach(callback => callback(propList));\n return propList;\n }\n constructor(callbackList) {\n this.callbackList = callbackList;\n }\n addContributor(contributeCallback) {\n this.callbackList.push(contributeCallback);\n }\n clearContributors() {\n while (this.callbackList.length)\n this.callbackList.pop();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4QyxNQUFNLE9BQWdCLFFBQStCLFNBQVEsVUFBYTtDQUFHO0FBRTdFLE1BQU0sT0FBZ0IsUUFBUTtJQVM1QixJQUFJLElBQUk7UUFDTixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUlELE1BQU0sT0FBZ0IsSUFBSTtJQUN4QixZQUNrQixJQUFlLEVBQ2YsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLFVBQWtCLEVBQ2xCLFVBQTRCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUNyQyxVQUFVLEtBQUssRUFDZixRQUFvQixFQUNwQixTQUFrQixFQUNsQixRQUFpQixFQUNqQixPQUF5QixFQUN6QixtQkFBZ0Q7UUFWaEQsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBRWhFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQUVVLHlCQUFvQixHQUFrRCxFQUFFLENBQUM7SUFPbkYsQ0FBQztJQUxDLEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixLQUFLO0lBR3pCLElBQUksS0FBSztRQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFMUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQTZCLFlBQTBDO1FBQTFDLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtJQUFHLENBQUM7SUFFM0UsY0FBYyxDQUFDLGtCQUE4QztRQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdE9wdGlvbnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJ0BhYnAvdXRpbHMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BUb29sdGlwIH0gZnJvbSAnLi9mb3JtLXByb3BzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wTGlzdDxSID0gYW55LCBBID0gUHJvcDxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+IHt9XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcERhdGE8UiA9IGFueT4ge1xyXG4gIGFic3RyYWN0IGdldEluamVjdGVkOiA8VD4oXHJcbiAgICB0b2tlbjogVHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+LFxyXG4gICAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgICBvcHRpb25zPzogSW5qZWN0T3B0aW9ucyxcclxuICApID0+IFQ7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgYWJzdHJhY3QgcmVjb3JkOiBSO1xyXG5cclxuICBnZXQgZGF0YSgpOiBSZWFkb25seVByb3BEYXRhPFI+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkLFxyXG4gICAgICBpbmRleDogdGhpcy5pbmRleCxcclxuICAgICAgcmVjb3JkOiB0aGlzLnJlY29yZCxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWFkb25seVByb3BEYXRhPFIgPSBhbnk+ID0gUmVhZG9ubHk8T21pdDxQcm9wRGF0YTxSPiwgJ2RhdGEnPj47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcDxSID0gYW55PiB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogZVByb3BUeXBlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb246IHN0cmluZyxcclxuICAgIHB1YmxpYyByZWFkb25seSB2aXNpYmxlOiBQcm9wUHJlZGljYXRlPFI+ID0gXyA9PiB0cnVlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGlzRXh0cmEgPSBmYWxzZSxcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZT86IFR5cGU8YW55PixcclxuICAgIHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybVRleHQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbHRpcD86IEZvcm1Qcm9wVG9vbHRpcCxcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dFJlc29sdmVyPzogUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8Uj4sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gdGhpcy5kaXNwbGF5TmFtZSB8fCB0aGlzLm5hbWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9wQ2FsbGJhY2s8VCwgUiA9IGFueT4gPSAoZGF0YTogT21pdDxQcm9wRGF0YTxUPiwgJ2RhdGEnPiwgYXV4RGF0YT86IGFueSkgPT4gUjtcclxuZXhwb3J0IHR5cGUgUHJvcFByZWRpY2F0ZTxUPiA9IChkYXRhPzogT21pdDxQcm9wRGF0YTxUPiwgJ2RhdGEnPiwgYXV4RGF0YT86IGFueSkgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8VD4gPSAoZGF0YT86IE9taXQ8UHJvcERhdGE8VD4sICdkYXRhJz4pID0+IHN0cmluZztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wc0ZhY3Rvcnk8QyBleHRlbmRzIFByb3BzPGFueT4+IHtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2N0b3I6IFR5cGU8Qz47XHJcbiAgcHJpdmF0ZSBjb250cmlidXRvckNhbGxiYWNrczogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEluZmVycmVkUHJvcExpc3Q8Qz4+ID0ge307XHJcblxyXG4gIGdldChuYW1lOiBzdHJpbmcpOiBDIHtcclxuICAgIHRoaXMuY29udHJpYnV0b3JDYWxsYmFja3NbbmFtZV0gPSB0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiBuZXcgdGhpcy5fY3Rvcih0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wczxMIGV4dGVuZHMgUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8TD4+PiB7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9jdG9yOiBUeXBlPEw+O1xyXG5cclxuICBnZXQgcHJvcHMoKTogTCB7XHJcbiAgICBjb25zdCBwcm9wTGlzdCA9IG5ldyB0aGlzLl9jdG9yKCk7XHJcblxyXG4gICAgdGhpcy5jYWxsYmFja0xpc3QuZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjayhwcm9wTGlzdCkpO1xyXG5cclxuICAgIHJldHVybiBwcm9wTGlzdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FsbGJhY2tMaXN0OiBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMPltdKSB7fVxyXG5cclxuICBhZGRDb250cmlidXRvcihjb250cmlidXRlQ2FsbGJhY2s6IFByb3BDb250cmlidXRvckNhbGxiYWNrPEw+KSB7XHJcbiAgICB0aGlzLmNhbGxiYWNrTGlzdC5wdXNoKGNvbnRyaWJ1dGVDYWxsYmFjayk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNvbnRyaWJ1dG9ycygpIHtcclxuICAgIHdoaWxlICh0aGlzLmNhbGxiYWNrTGlzdC5sZW5ndGgpIHRoaXMuY2FsbGJhY2tMaXN0LnBvcCgpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnksIEluZmVycmVkUHJvcDxMPj4+ID0gUmVjb3JkPFxyXG4gIHN0cmluZyxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMPltdXHJcbj47XHJcblxyXG5leHBvcnQgdHlwZSBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMIGV4dGVuZHMgUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8TD4+PiA9IChcclxuICBwcm9wTGlzdDogTCxcclxuKSA9PiBhbnk7XHJcblxyXG50eXBlIEluZmVycmVkUHJvcExpc3Q8Qz4gPSBDIGV4dGVuZHMgUHJvcHM8aW5mZXIgTD4gPyBMIDogbmV2ZXI7XHJcbmV4cG9ydCB0eXBlIEluZmVycmVkUHJvcDxUPiA9IFQgZXh0ZW5kcyBQcm9wTGlzdDxhbnksIGluZmVyIFU+ID8gVSA6IFQ7XHJcbiJdfQ==","import { Prop, PropData, PropList, Props, PropsFactory, } from './props';\nexport class FormPropList extends PropList {\n}\nexport class FormProps extends Props {\n constructor() {\n super(...arguments);\n this._ctor = FormPropList;\n }\n}\nexport class GroupedFormPropList {\n constructor() {\n this.items = [];\n this.count = 1;\n }\n addItem(item) {\n const groupName = item.group?.name;\n let group = this.items.find(i => i.group?.name === groupName);\n if (group) {\n group.formPropList.addTail(item);\n }\n else {\n group = {\n formPropList: new FormPropList(),\n group: item.group || { name: `default${this.count++}`, className: item.group?.className },\n };\n group.formPropList.addHead(item);\n this.items.push(group);\n }\n }\n}\nexport class CreateFormPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = FormProps;\n }\n}\nexport class EditFormPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = FormProps;\n }\n}\nexport class FormProp extends Prop {\n constructor(options) {\n super(options.type, options.name, options.displayName || '', options.permission || '', options.visible, options.isExtra, options.template, options.className, options.formText, options.tooltip);\n this.group = options.group;\n this.className = options.className;\n this.formText = options.formText;\n this.tooltip = options.tooltip;\n this.asyncValidators = options.asyncValidators || (_ => []);\n this.validators = options.validators || (_ => []);\n this.disabled = options.disabled || (_ => false);\n this.readonly = options.readonly || (_ => false);\n this.autocomplete = options.autocomplete || 'off';\n this.options = options.options;\n this.id = options.id || options.name;\n const defaultValue = options.defaultValue;\n this.defaultValue = isFalsyValue(defaultValue) ? defaultValue : defaultValue || '';\n this.displayTextResolver = options.displayTextResolver;\n }\n static create(options) {\n return new FormProp(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(FormProp.create);\n }\n}\nexport class FormPropData extends PropData {\n constructor(injector, record) {\n super();\n this.record = record;\n this.getInjected = injector.get.bind(injector);\n }\n}\nfunction isFalsyValue(defaultValue) {\n return [0, '', false].indexOf(defaultValue) > -1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9mb3JtLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDTCxJQUFJLEVBSUosUUFBUSxFQUVSLFFBQVEsRUFFUixLQUFLLEVBQ0wsWUFBWSxHQUNiLE1BQU0sU0FBUyxDQUFDO0FBR2pCLE1BQU0sT0FBTyxZQUFzQixTQUFRLFFBQXdCO0NBQUc7QUFFdEUsTUFBTSxPQUFPLFNBQW1CLFNBQVEsS0FBK0I7SUFBdkU7O1FBQ1ksVUFBSyxHQUEwQixZQUFZLENBQUM7SUFDeEQsQ0FBQztDQUFBO0FBWUQsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNrQixVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUNsRCxVQUFLLEdBQUcsQ0FBQyxDQUFDO0lBZVosQ0FBQztJQWRDLE9BQU8sQ0FBQyxJQUFpQjtRQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRztnQkFDTixZQUFZLEVBQUUsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxL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LENBQUc7UUFJekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUE0QkQsU0FBUyxZQUFZLENBQUMsWUFBdUM7SUFDM0QsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBQcm9wLFxyXG4gIFByb3BDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgUHJvcERhdGEsXHJcbiAgUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXIsXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcFByZWRpY2F0ZSxcclxuICBQcm9wcyxcclxuICBQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi9wcm9wcyc7XHJcbmltcG9ydCB7IEZpbHRlcmVkV2l0aE9wdGlvbnMsIFBhcnRpYWxXaXRoT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL21vZGVsLnV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcExpc3Q8UiA9IGFueT4gZXh0ZW5kcyBQcm9wTGlzdDxSLCBGb3JtUHJvcDxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcHM8UiA9IGFueT4gZXh0ZW5kcyBQcm9wczxQcm9wTGlzdDxSLCBGb3JtUHJvcDxSPj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8Rm9ybVByb3BMaXN0PFI+PiA9IEZvcm1Qcm9wTGlzdDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUHJvcEdyb3VwIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Qcm9wVG9vbHRpcCB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIHBsYWNlbWVudD86ICd0b3AnIHwgJ2VuZCcgfCAnYm90dG9tJyB8ICdzdGFydCc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHcm91cGVkRm9ybVByb3BMaXN0PFIgPSBhbnk+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXM6IEdyb3VwZWRGb3JtUHJvcEl0ZW1bXSA9IFtdO1xyXG4gIGNvdW50ID0gMTtcclxuICBhZGRJdGVtKGl0ZW06IEZvcm1Qcm9wPFI+KSB7XHJcbiAgICBjb25zdCBncm91cE5hbWUgPSBpdGVtLmdyb3VwPy5uYW1lO1xyXG4gICAgbGV0IGdyb3VwID0gdGhpcy5pdGVtcy5maW5kKGkgPT4gaS5ncm91cD8ubmFtZSA9PT0gZ3JvdXBOYW1lKTtcclxuICAgIGlmIChncm91cCkge1xyXG4gICAgICBncm91cC5mb3JtUHJvcExpc3QuYWRkVGFpbChpdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGdyb3VwID0ge1xyXG4gICAgICAgIGZvcm1Qcm9wTGlzdDogbmV3IEZvcm1Qcm9wTGlzdCgpLFxyXG4gICAgICAgIGdyb3VwOiBpdGVtLmdyb3VwIHx8IHsgbmFtZTogYGRlZmF1bHQke3RoaXMuY291bnQrK31gLCBjbGFzc05hbWU6IGl0ZW0uZ3JvdXA/LmNsYXNzTmFtZSB9LFxyXG4gICAgICB9O1xyXG4gICAgICBncm91cC5mb3JtUHJvcExpc3QuYWRkSGVhZChpdGVtKTtcclxuICAgICAgdGhpcy5pdGVtcy5wdXNoKGdyb3VwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlZEZvcm1Qcm9wSXRlbSB7XHJcbiAgZ3JvdXA/OiBGb3JtUHJvcEdyb3VwO1xyXG4gIGZvcm1Qcm9wTGlzdDogRm9ybVByb3BMaXN0O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeTxSID0gYW55PiBleHRlbmRzIFByb3BzRmFjdG9yeTxGb3JtUHJvcHM8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8Rm9ybVByb3BzPFI+PiA9IEZvcm1Qcm9wcztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRGb3JtUHJvcHNGYWN0b3J5PFIgPSBhbnk+IGV4dGVuZHMgUHJvcHNGYWN0b3J5PEZvcm1Qcm9wczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxGb3JtUHJvcHM8Uj4+ID0gRm9ybVByb3BzO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVByb3A8UiA9IGFueT4gZXh0ZW5kcyBQcm9wPFI+IHtcclxuICByZWFkb25seSB2YWxpZGF0b3JzOiBQcm9wQ2FsbGJhY2s8UiwgVmFsaWRhdG9yRm5bXT47XHJcbiAgcmVhZG9ubHkgYXN5bmNWYWxpZGF0b3JzOiBQcm9wQ2FsbGJhY2s8UiwgQXN5bmNWYWxpZGF0b3JGbltdPjtcclxuICByZWFkb25seSBkaXNhYmxlZDogUHJvcFByZWRpY2F0ZTxSPjtcclxuICByZWFkb25seSByZWFkb25seTogUHJvcFByZWRpY2F0ZTxSPjtcclxuICByZWFkb25seSBhdXRvY29tcGxldGU6IHN0cmluZztcclxuICByZWFkb25seSBkZWZhdWx0VmFsdWU6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBEYXRlIHwgQXJyYXk8c3RyaW5nPjtcclxuICByZWFkb25seSBvcHRpb25zOiBQcm9wQ2FsbGJhY2s8UiwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUeXBlPGFueT47XHJcbiAgcmVhZG9ubHkgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGdyb3VwPzogRm9ybVByb3BHcm91cCB8IHVuZGVmaW5lZDtcclxuICByZWFkb25seSBkaXNwbGF5VGV4dFJlc29sdmVyPzogUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8Uj47XHJcbiAgcmVhZG9ubHkgZm9ybVRleHQ/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcD86IEZvcm1Qcm9wVG9vbHRpcDtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uczogRm9ybVByb3BPcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgb3B0aW9ucy50eXBlLFxyXG4gICAgICBvcHRpb25zLm5hbWUsXHJcbiAgICAgIG9wdGlvbnMuZGlzcGxheU5hbWUgfHwgJycsXHJcbiAgICAgIG9wdGlvbnMucGVybWlzc2lvbiB8fCAnJyxcclxuICAgICAgb3B0aW9ucy52aXNpYmxlLFxyXG4gICAgICBvcHRpb25zLmlzRXh0cmEsXHJcbiAgICAgIG9wdGlvbnMudGVtcGxhdGUsXHJcbiAgICAgIG9wdGlvbnMuY2xhc3NOYW1lLFxyXG4gICAgICBvcHRpb25zLmZvcm1UZXh0LFxyXG4gICAgICBvcHRpb25zLnRvb2x0aXAsXHJcbiAgICApO1xyXG4gICAgdGhpcy5ncm91cCA9IG9wdGlvbnMuZ3JvdXA7XHJcbiAgICB0aGlzLmNsYXNzTmFtZSA9IG9wdGlvbnMuY2xhc3NOYW1lO1xyXG4gICAgdGhpcy5mb3JtVGV4dCA9IG9wdGlvbnMuZm9ybVRleHQ7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSBvcHRpb25zLnRvb2x0aXA7XHJcbiAgICB0aGlzLmFzeW5jVmFsaWRhdG9ycyA9IG9wdGlvbnMuYXN5bmNWYWxpZGF0b3JzIHx8IChfID0+IFtdKTtcclxuICAgIHRoaXMudmFsaWRhdG9ycyA9IG9wdGlvbnMudmFsaWRhdG9ycyB8fCAoXyA9PiBbXSk7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gb3B0aW9ucy5kaXNhYmxlZCB8fCAoXyA9PiBmYWxzZSk7XHJcbiAgICB0aGlzLnJlYWRvbmx5ID0gb3B0aW9ucy5yZWFkb25seSB8fCAoXyA9PiBmYWxzZSk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZSA9IG9wdGlvbnMuYXV0b2NvbXBsZXRlIHx8ICdvZmYnO1xyXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zO1xyXG4gICAgdGhpcy5pZCA9IG9wdGlvbnMuaWQgfHwgb3B0aW9ucy5uYW1lO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gb3B0aW9ucy5kZWZhdWx0VmFsdWU7XHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGlzRmFsc3lWYWx1ZShkZWZhdWx0VmFsdWUpID8gKGRlZmF1bHRWYWx1ZSBhcyBudW1iZXIpIDogZGVmYXVsdFZhbHVlIHx8ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dFJlc29sdmVyID0gb3B0aW9ucy5kaXNwbGF5VGV4dFJlc29sdmVyO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZTxSID0gYW55PihvcHRpb25zOiBGb3JtUHJvcE9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgRm9ybVByb3A8Uj4ob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlTWFueTxSID0gYW55PihhcnJheU9mT3B0aW9uczogRm9ybVByb3BPcHRpb25zPFI+W10pIHtcclxuICAgIHJldHVybiBhcnJheU9mT3B0aW9ucy5tYXAoRm9ybVByb3AuY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcERhdGE8UiA9IGFueT4gZXh0ZW5kcyBQcm9wRGF0YTxSPiB7XHJcbiAgZ2V0SW5qZWN0ZWQ6IFByb3BEYXRhPFI+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyByZWFkb25seSByZWNvcmQ6IFIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIE9wdGlvbmFsS2V5cyA9XHJcbiAgfCAncGVybWlzc2lvbidcclxuICB8ICd2aXNpYmxlJ1xyXG4gIHwgJ2Rpc3BsYXlOYW1lJ1xyXG4gIHwgJ2lzRXh0cmEnXHJcbiAgfCAndmFsaWRhdG9ycydcclxuICB8ICdhc3luY1ZhbGlkYXRvcnMnXHJcbiAgfCAnZGlzYWJsZWQnXHJcbiAgfCAncmVhZG9ubHknXHJcbiAgfCAnYXV0b2NvbXBsZXRlJ1xyXG4gIHwgJ2RlZmF1bHRWYWx1ZSdcclxuICB8ICdvcHRpb25zJ1xyXG4gIHwgJ2lkJ1xyXG4gIHwgJ2Rpc3BsYXlUZXh0UmVzb2x2ZXInXHJcbiAgfCAnZm9ybVRleHQnXHJcbiAgfCAndG9vbHRpcCc7XHJcbmV4cG9ydCB0eXBlIEZvcm1Qcm9wT3B0aW9uczxSID0gYW55PiA9IFBhcnRpYWxXaXRoT3B0aW9uczxGb3JtUHJvcDxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxGb3JtUHJvcDxSPiwgT3B0aW9uYWxLZXlzPjtcclxuXHJcbmV4cG9ydCB0eXBlIENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UiA9IGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBGb3JtUHJvcDxSPltdPjtcclxuZXhwb3J0IHR5cGUgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8Rm9ybVByb3BMaXN0PFI+PjtcclxuZXhwb3J0IHR5cGUgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IFByb3BDb250cmlidXRvckNhbGxiYWNrczxGb3JtUHJvcExpc3Q8Uj4+O1xyXG5leHBvcnQgdHlwZSBFZGl0Rm9ybVByb3BEZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEZvcm1Qcm9wPFI+W10+O1xyXG5leHBvcnQgdHlwZSBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8Rm9ybVByb3BMaXN0PFI+PjtcclxuZXhwb3J0IHR5cGUgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UiA9IGFueT4gPSBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rm9ybVByb3BMaXN0PFI+PjtcclxuXHJcbmZ1bmN0aW9uIGlzRmFsc3lWYWx1ZShkZWZhdWx0VmFsdWU/OiBGb3JtUHJvcFsnZGVmYXVsdFZhbHVlJ10pOiBib29sZWFuIHtcclxuICByZXR1cm4gWzAsICcnLCBmYWxzZV0uaW5kZXhPZihkZWZhdWx0VmFsdWUgYXMgYW55KSA+IC0xO1xyXG59XHJcbiJdfQ==","import { RestService } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nconst TYPEAHEAD_TEXT_SUFFIX = '_Text';\nconst TYPEAHEAD_TEXT_SUFFIX_REGEX = /_Text$/;\nexport function createTypeaheadOptions(lookup) {\n return (data, searchText) => searchText && data\n ? data\n .getInjected(RestService)\n .request({\n method: 'GET',\n url: lookup.url || '',\n params: {\n [lookup.filterParamName || '']: searchText,\n },\n }, { apiName: 'Default' })\n .pipe(map((response) => {\n const list = response[lookup.resultListPropertyName || ''];\n const mapToOption = (item) => ({\n key: item[lookup.displayPropertyName || ''],\n value: item[lookup.valuePropertyName || ''],\n });\n return list.map(mapToOption);\n }))\n : of([]);\n}\nexport function getTypeaheadType(lookup, name) {\n if (!lookup.url) {\n return name.endsWith(TYPEAHEAD_TEXT_SUFFIX) ? \"hidden\" /* ePropType.Hidden */ : undefined;\n }\n else {\n return \"typeahead\" /* ePropType.Typeahead */;\n }\n}\nexport function createTypeaheadDisplayNameGenerator(displayNameGeneratorFn, properties) {\n return (displayName, fallback) => {\n const name = removeTypeaheadTextSuffix(fallback.name || '');\n return displayNameGeneratorFn(displayName || properties[name].displayName, {\n name,\n resource: fallback.resource,\n });\n };\n}\nexport function addTypeaheadTextSuffix(name) {\n return name + TYPEAHEAD_TEXT_SUFFIX;\n}\nexport function hasTypeaheadTextSuffix(name) {\n return TYPEAHEAD_TEXT_SUFFIX_REGEX.test(name);\n}\nexport function removeTypeaheadTextSuffix(name) {\n return name.replace(TYPEAHEAD_TEXT_SUFFIX_REGEX, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi91dGlscy90eXBlYWhlYWQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUN0QyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBQztBQUU3QyxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE1BQW9DO0lBRXBDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsVUFBVSxJQUFJLElBQUk7UUFDaEIsQ0FBQyxDQUFDLElBQUk7YUFDRCxXQUFXLENBQUMsV0FBVyxDQUFDO2FBQ3hCLE9BQU8sQ0FDTjtZQUNFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRTtZQUNyQixNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVU7YUFDM0M7U0FDRixFQUNELEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUN2QjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7Z0JBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQzthQUM1QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQ0g7UUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFvQyxFQUFFLElBQVk7SUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGlDQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdFLENBQUM7U0FBTSxDQUFDO1FBQ04sNkNBQTJCO0lBQzdCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1DQUFtQyxDQUNqRCxzQkFBK0QsRUFDL0QsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sc0JBQXNCLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDekUsSUFBSTtZQUNKLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQVk7SUFDakQsT0FBTyxJQUFJLEdBQUcscUJBQXFCLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxJQUFZO0lBQ2pELE9BQU8sMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsSUFBWTtJQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0bywgUmVzdFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuXHJcbmNvbnN0IFRZUEVBSEVBRF9URVhUX1NVRkZJWCA9ICdfVGV4dCc7XHJcbmNvbnN0IFRZUEVBSEVBRF9URVhUX1NVRkZJWF9SRUdFWCA9IC9fVGV4dCQvO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMoXHJcbiAgbG9va3VwOiBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4pOiBQcm9wQ2FsbGJhY2s8YW55LCBPYnNlcnZhYmxlPEFCUC5PcHRpb248YW55PltdPj4ge1xyXG4gIHJldHVybiAoZGF0YSwgc2VhcmNoVGV4dCkgPT5cclxuICAgIHNlYXJjaFRleHQgJiYgZGF0YVxyXG4gICAgICA/IGRhdGFcclxuICAgICAgICAgIC5nZXRJbmplY3RlZChSZXN0U2VydmljZSlcclxuICAgICAgICAgIC5yZXF1ZXN0KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgICB1cmw6IGxvb2t1cC51cmwgfHwgJycsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICBbbG9va3VwLmZpbHRlclBhcmFtTmFtZSB8fCAnJ106IHNlYXJjaFRleHQsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiAnRGVmYXVsdCcgfSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gcmVzcG9uc2VbbG9va3VwLnJlc3VsdExpc3RQcm9wZXJ0eU5hbWUgfHwgJyddO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1hcFRvT3B0aW9uID0gKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGtleTogaXRlbVtsb29rdXAuZGlzcGxheVByb3BlcnR5TmFtZSB8fCAnJ10sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVtsb29rdXAudmFsdWVQcm9wZXJ0eU5hbWUgfHwgJyddLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybiBsaXN0Lm1hcChtYXBUb09wdGlvbik7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICA6IG9mKFtdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVhaGVhZFR5cGUobG9va3VwOiBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLCBuYW1lOiBzdHJpbmcpIHtcclxuICBpZiAoIWxvb2t1cC51cmwpIHtcclxuICAgIHJldHVybiBuYW1lLmVuZHNXaXRoKFRZUEVBSEVBRF9URVhUX1NVRkZJWCkgPyBlUHJvcFR5cGUuSGlkZGVuIDogdW5kZWZpbmVkO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZVByb3BUeXBlLlR5cGVhaGVhZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcihcclxuICBkaXNwbGF5TmFtZUdlbmVyYXRvckZuOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4sXHJcbiAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4pOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4ge1xyXG4gIHJldHVybiAoZGlzcGxheU5hbWUsIGZhbGxiYWNrKSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcmVtb3ZlVHlwZWFoZWFkVGV4dFN1ZmZpeChmYWxsYmFjay5uYW1lIHx8ICcnKTtcclxuICAgIHJldHVybiBkaXNwbGF5TmFtZUdlbmVyYXRvckZuKGRpc3BsYXlOYW1lIHx8IHByb3BlcnRpZXNbbmFtZV0uZGlzcGxheU5hbWUsIHtcclxuICAgICAgbmFtZSxcclxuICAgICAgcmVzb3VyY2U6IGZhbGxiYWNrLnJlc291cmNlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFR5cGVhaGVhZFRleHRTdWZmaXgobmFtZTogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIG5hbWUgKyBUWVBFQUhFQURfVEVYVF9TVUZGSVg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBUWVBFQUhFQURfVEVYVF9TVUZGSVhfUkVHRVgudGVzdChuYW1lKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVR5cGVhaGVhZFRleHRTdWZmaXgobmFtZTogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShUWVBFQUhFQURfVEVYVF9TVUZGSVhfUkVHRVgsICcnKTtcclxufVxyXG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AbpValidators, ConfigStateService } from '@abp/ng.core';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class ExtensibleFormPropService {\n constructor() {\n this.#configStateService = inject(ConfigStateService);\n this.meridian$ = this.#configStateService\n .getDeep$('localization.currentCulture.dateTimeFormat.shortTimePattern')\n .pipe(map((shortTimePattern) => (shortTimePattern || '').includes('tt')));\n }\n #configStateService;\n isRequired(validator) {\n return (validator === Validators.required ||\n validator === AbpValidators.required ||\n validator.name === 'required');\n }\n getComponent(prop) {\n if (prop.template) {\n return 'template';\n }\n switch (prop.type) {\n case \"boolean\" /* ePropType.Boolean */:\n return 'checkbox';\n case \"date\" /* ePropType.Date */:\n return 'date';\n case \"datetime\" /* ePropType.DateTime */:\n return 'dateTime';\n case \"hidden\" /* ePropType.Hidden */:\n return 'hidden';\n case \"multiselect\" /* ePropType.MultiSelect */:\n return 'multiselect';\n case \"text\" /* ePropType.Text */:\n return 'textarea';\n case \"time\" /* ePropType.Time */:\n return 'time';\n case \"typeahead\" /* ePropType.Typeahead */:\n return 'typeahead';\n case \"passwordinputgroup\" /* ePropType.PasswordInputGroup */:\n return 'passwordinputgroup';\n default:\n return prop.options ? 'select' : 'input';\n }\n }\n getType(prop) {\n switch (prop.type) {\n case \"date\" /* ePropType.Date */:\n case \"string\" /* ePropType.String */:\n return 'text';\n case \"boolean\" /* ePropType.Boolean */:\n return 'checkbox';\n case \"number\" /* ePropType.Number */:\n return 'number';\n case \"email\" /* ePropType.Email */:\n return 'email';\n case \"password\" /* ePropType.Password */:\n return 'password';\n case \"passwordinputgroup\" /* ePropType.PasswordInputGroup */:\n return 'passwordinputgroup';\n default:\n return 'hidden';\n }\n }\n calcAsterisks(validators) {\n if (!validators)\n return '';\n const required = validators.find(v => this.isRequired(v));\n return required ? '*' : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3Auc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2libGUtZm9ybS1wcm9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtyQyxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRVksd0JBQW1CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFM0QsY0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUI7YUFDakMsUUFBUSxDQUFDLDZEQUE2RCxDQUFDO2FBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBb0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBK0RqRztJQW5FVyxtQkFBbUIsQ0FBOEI7SUFNM0QsVUFBVSxDQUFDLFNBQXNCO1FBQy9CLE9BQU8sQ0FDTCxTQUFTLEtBQUssVUFBVSxDQUFDLFFBQVE7WUFDakMsU0FBUyxLQUFLLGFBQWEsQ0FBQyxRQUFRO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLFdBQVcsQ0FBQztZQUNyQjtnQkFDRSxPQUFPLG9CQUFvQixDQUFDO1lBQzlCO2dCQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYztRQUNwQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixpQ0FBb0I7WUFDcEI7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7WUFDcEI7Z0JBQ0UsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7WUFDakI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7WUFDcEI7Z0JBQ0UsT0FBTyxvQkFBb0IsQ0FBQztZQUM5QjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUF5QjtRQUNyQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBbkVVLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiBpbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWJwVmFsaWRhdG9ycywgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgZVByb3BUeXBlIH0gZnJvbSAnLi4vZW51bXMvcHJvcHMuZW51bSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybVByb3BTZXJ2aWNlIHtcclxuICByZWFkb25seSAgI2NvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG5cclxuICBtZXJpZGlhbiQgPSB0aGlzLiNjb25maWdTdGF0ZVNlcnZpY2VcclxuICAgIC5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmRhdGVUaW1lRm9ybWF0LnNob3J0VGltZVBhdHRlcm4nKVxyXG4gICAgLnBpcGUobWFwKChzaG9ydFRpbWVQYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IChzaG9ydFRpbWVQYXR0ZXJuIHx8ICcnKS5pbmNsdWRlcygndHQnKSkpO1xyXG5cclxuICBpc1JlcXVpcmVkKHZhbGlkYXRvcjogVmFsaWRhdG9yRm4pIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHZhbGlkYXRvciA9PT0gVmFsaWRhdG9ycy5yZXF1aXJlZCB8fFxyXG4gICAgICB2YWxpZGF0b3IgPT09IEFicFZhbGlkYXRvcnMucmVxdWlyZWQgfHxcclxuICAgICAgdmFsaWRhdG9yLm5hbWUgPT09ICdyZXF1aXJlZCdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnQocHJvcDogRm9ybVByb3ApIHtcclxuICAgIGlmIChwcm9wLnRlbXBsYXRlKSB7XHJcbiAgICAgIHJldHVybiAndGVtcGxhdGUnO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrYm94JztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGUnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGVUaW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuSGlkZGVuOlxyXG4gICAgICAgIHJldHVybiAnaGlkZGVuJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuTXVsdGlTZWxlY3Q6XHJcbiAgICAgICAgcmV0dXJuICdtdWx0aXNlbGVjdCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRleHQ6XHJcbiAgICAgICAgcmV0dXJuICd0ZXh0YXJlYSc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgcmV0dXJuICd0aW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuVHlwZWFoZWFkOlxyXG4gICAgICAgIHJldHVybiAndHlwZWFoZWFkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcHJvcC5vcHRpb25zID8gJ3NlbGVjdCcgOiAnaW5wdXQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZShwcm9wOiBGb3JtUHJvcCkge1xyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuU3RyaW5nOlxyXG4gICAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgcmV0dXJuICdjaGVja2JveCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLk51bWJlcjpcclxuICAgICAgICByZXR1cm4gJ251bWJlcic7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkVtYWlsOlxyXG4gICAgICAgIHJldHVybiAnZW1haWwnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5QYXNzd29yZDpcclxuICAgICAgICByZXR1cm4gJ3Bhc3N3b3JkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ2hpZGRlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjQXN0ZXJpc2tzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10pIHtcclxuICAgIGlmICghdmFsaWRhdG9ycykgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgcmVxdWlyZWQgPSB2YWxpZGF0b3JzLmZpbmQodiA9PiB0aGlzLmlzUmVxdWlyZWQodikpO1xyXG4gICAgcmV0dXJuIHJlcXVpcmVkID8gJyonIDogJyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Component, ChangeDetectionStrategy, forwardRef, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { LocalizationPipe } from '@abp/ng.core';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-validate/core\";\nconst EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ExtensibleFormMultiselectComponent),\n multi: true,\n};\nexport class ExtensibleFormMultiselectComponent {\n constructor() {\n this.prop = input.required();\n this.options = input.required();\n this.selectedValues = [];\n this.disabled = false;\n this.onChange = () => { };\n this.onTouched = () => { };\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n isChecked(value) {\n return this.selectedValues.includes(value);\n }\n onCheckboxChange(value, checked) {\n this.selectedValues = checked\n ? [...this.selectedValues, value]\n : this.selectedValues.filter(item => item !== value);\n this.onChange(this.selectedValues);\n this.onTouched();\n }\n writeValue(value) {\n this.selectedValues = Array.isArray(value) ? [...value] : [];\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: `\r\n <div [id]=\"prop().id\">\r\n @for (option of options(); track option.value) {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [id]=\"'checkbox_' + option.value\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"isChecked(option.value)\"\r\n (change)=\"onCheckboxChange(option.value, $event.target.checked)\"\r\n />\r\n <label [for]=\"'checkbox_' + option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </label>\r\n </div>\r\n }\r\n </div>\r\n `, isInline: true, dependencies: [{ kind: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: NgxValidateCoreModule }, { kind: \"directive\", type: i1.ValidationTargetDirective, selector: \"[validationTarget]\", exportAs: [\"validationTarget\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormMultiselectComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'abp-extensible-form-multi-select',\n template: `\r\n <div [id]=\"prop().id\">\r\n @for (option of options(); track option.value) {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [id]=\"'checkbox_' + option.value\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"isChecked(option.value)\"\r\n (change)=\"onCheckboxChange(option.value, $event.target.checked)\"\r\n />\r\n <label [for]=\"'checkbox_' + option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </label>\r\n </div>\r\n }\r\n </div>\r\n `,\n providers: [EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR],\n imports: [LocalizationPipe, CommonModule, ReactiveFormsModule, NgxValidateCoreModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L2V4dGVuc2libGUtZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFPLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFM0QsTUFBTSxtREFBbUQsR0FBRztJQUMxRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLENBQUM7SUFDakUsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBK0JGLE1BQU0sT0FBTyxrQ0FBa0M7SUE3Qi9DO1FBOEJFLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7UUFDbEMsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFFOUMsbUJBQWMsR0FBVSxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVULGFBQVEsR0FBeUIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0E4QjFDO0lBNUJDLGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVLEVBQUUsT0FBZ0I7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPO1lBQzNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUM7WUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVk7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQXJDVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyw0VUFKbEMsQ0FBQyxtREFBbUQsQ0FBQywwQkF2QnREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JULHVEQUVTLGdCQUFnQix1REFBRSxZQUFZLDhCQUFFLG1CQUFtQiw4QkFBRSxxQkFBcUI7OzJGQUd6RSxrQ0FBa0M7a0JBN0I5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxtREFBbUQsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDO29CQUNyRixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBmb3J3YXJkUmVmLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFCUCwgTG9jYWxpemF0aW9uUGlwZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5cclxuY29uc3QgRVhURU5TSUJMRV9GT1JNX01VTFRJX1NFTEVDVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtZXh0ZW5zaWJsZS1mb3JtLW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgW2lkXT1cInByb3AoKS5pZFwiPlxyXG4gICAgICBAZm9yIChvcHRpb24gb2Ygb3B0aW9ucygpOyB0cmFjayBvcHRpb24udmFsdWUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgW2lkXT1cIidjaGVja2JveF8nICsgb3B0aW9uLnZhbHVlXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKG9wdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2Uob3B0aW9uLnZhbHVlLCAkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCInY2hlY2tib3hfJyArIG9wdGlvbi52YWx1ZVwiPlxyXG4gICAgICAgICAgICBAaWYgKHByb3AoKS5pc0V4dHJhKSB7XHJcbiAgICAgICAgICAgICAge3sgJzo6JyArIG9wdGlvbi5rZXkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAge3sgb3B0aW9uLmtleSB9fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW0VYVEVOU0lCTEVfRk9STV9NVUxUSV9TRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgaW1wb3J0czogW0xvY2FsaXphdGlvblBpcGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmd4VmFsaWRhdGVDb3JlTW9kdWxlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJvcCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Qcm9wPigpO1xyXG4gIG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxBQlAuT3B0aW9uPGFueT5bXT4oKTtcclxuXHJcbiAgc2VsZWN0ZWRWYWx1ZXM6IGFueVtdID0gW107XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgaXNDaGVja2VkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tib3hDaGFuZ2UodmFsdWU6IGFueSwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IGNoZWNrZWRcclxuICAgICAgPyBbLi4udGhpcy5zZWxlY3RlZFZhbHVlcywgdmFsdWVdXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZFZhbHVlcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB2YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gWy4uLnZhbHVlXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxufVxyXG4iXX0=","import { EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA } from './../../tokens/extensions.token';\nimport { LocalizationModule, PermissionDirective, ShowPasswordDirective, TrackByService, } from '@abp/ng.core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Injector, Input, Optional, SkipSelf, ViewChild, } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, FormsModule, ReactiveFormsModule, } from '@angular/forms';\nimport { NgbDateAdapter, NgbDatepickerModule, NgbTimeAdapter, NgbTimepickerModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { DateAdapter, DisabledDirective, TimeAdapter } from '@abp/ng.theme.shared';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { FormProp } from '../../models/form-props';\nimport { PropData } from '../../models/props';\nimport { selfFactory } from '../../utils/factory.util';\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\nimport { ExtensibleDateTimePickerComponent } from '../date-time-picker/extensible-date-time-picker.component';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ExtensibleFormPropService } from '../../services/extensible-form-prop.service';\nimport { CommonModule } from '@angular/common';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { ExtensibleFormMultiselectComponent } from '../multi-select/extensible-form-multiselect.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ng-bootstrap/ng-bootstrap\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@ngx-validate/core\";\nimport * as i4 from \"@abp/ng.core\";\nimport * as i5 from \"@angular/common\";\nexport class ExtensibleFormPropComponent {\n constructor() {\n this.service = inject(ExtensibleFormPropService);\n this.cdRef = inject(ChangeDetectorRef);\n this.track = inject(TrackByService);\n this.#groupDirective = inject(FormGroupDirective);\n this.injector = inject(Injector);\n this.form = this.#groupDirective.form;\n this.asterisk = '';\n this.containerClassName = 'mb-2';\n this.showPassword = false;\n this.options$ = of([]);\n this.validators = [];\n this.passwordKey = \"ThemeShared.Extensions.PasswordComponent\" /* eExtensibleComponents.PasswordComponent */;\n this.disabledFn = (data) => false;\n this.search = (text$) => text$\n ? text$.pipe(debounceTime(300), distinctUntilChanged(), switchMap(text => this.prop?.options?.(this.data, text) || of([])))\n : of([]);\n this.typeaheadFormatter = (option) => option.key;\n this.meridian$ = this.service.meridian$;\n }\n #groupDirective;\n get disabled() {\n return this.disabledFn(this.data);\n }\n setTypeaheadValue(selectedOption) {\n this.typeaheadModel = selectedOption || { key: null, value: null };\n const { key, value } = this.typeaheadModel;\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (valueControl?.value && !value)\n valueControl.markAsDirty();\n keyControl?.setValue(key);\n valueControl?.setValue(value);\n }\n get isInvalid() {\n const control = this.form.get(this.prop.name);\n return control?.touched && control.invalid;\n }\n getTypeaheadControls() {\n const { name } = this.prop;\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n const keyControl = this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n this.form.get(addTypeaheadTextSuffix(name));\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\n return [keyControl, valueControl];\n }\n setAsterisk() {\n this.asterisk = this.service.calcAsterisks(this.validators);\n }\n ngAfterViewInit() {\n if (this.isFirstGroup && this.first && this.fieldRef) {\n this.fieldRef.nativeElement.focus();\n }\n }\n getComponent(prop) {\n return this.service.getComponent(prop);\n }\n getType(prop) {\n return this.service.getType(prop);\n }\n ngOnChanges({ prop, data }) {\n const currentProp = prop?.currentValue;\n const { options, readonly, disabled, validators, className, template } = currentProp || {};\n if (template) {\n this.injectorForCustomComponent = Injector.create({\n providers: [\n {\n provide: EXTENSIONS_FORM_PROP,\n useValue: currentProp,\n },\n {\n provide: EXTENSIONS_FORM_PROP_DATA,\n useValue: data?.currentValue?.record,\n },\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n parent: this.injector,\n });\n }\n if (options)\n this.options$ = options(this.data);\n if (readonly)\n this.readonly = readonly(this.data);\n if (disabled) {\n this.disabledFn = disabled;\n }\n if (validators) {\n this.validators = validators(this.data);\n this.setAsterisk();\n }\n if (className !== undefined) {\n this.containerClassName = className;\n }\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (keyControl && valueControl)\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleFormPropComponent, isStandalone: true, selector: \"abp-extensible-form-prop\", inputs: { data: \"data\", prop: \"prop\", first: \"first\", isFirstGroup: \"isFirstGroup\" }, providers: [ExtensibleFormPropService], viewQueries: [{ propertyName: \"fieldRef\", first: true, predicate: [\"field\"], descendants: true }], usesOnChanges: 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 [ngClass]=\\\"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 [ngClass]=\\\"{\\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\\\" [ngClass]=\\\"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: \"ngmodule\", type: LocalizationModule }, { kind: \"pipe\", type: i4.LocalizationPipe, name: \"abpLocalization\" }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i5.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i5.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"directive\", type: i5.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'abp-extensible-form-prop', imports: [\n ExtensibleDateTimePickerComponent,\n ExtensibleFormMultiselectComponent,\n NgbDatepickerModule,\n NgbTimepickerModule,\n ReactiveFormsModule,\n DisabledDirective,\n NgxValidateCoreModule,\n NgbTooltip,\n NgbTypeaheadModule,\n ShowPasswordDirective,\n PermissionDirective,\n LocalizationModule,\n CommonModule,\n FormsModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ExtensibleFormPropService], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ], 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 [ngClass]=\\\"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 [ngClass]=\\\"{\\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\\\" [ngClass]=\\\"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\" }]\n }], propDecorators: { data: [{\n type: Input\n }], prop: [{\n type: Input\n }], first: [{\n type: Input\n }], isFirstGroup: [{\n type: Input\n }], fieldRef: [{\n type: ViewChild,\n args: ['field']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEcsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUNuQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFB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T1JNX1BST1AsIEVYVEVOU0lPTlNfRk9STV9QUk9QX0RBVEEgfSBmcm9tICcuLy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHtcclxuICBBQlAsXHJcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlLFxyXG4gIFRyYWNrQnlTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xDb250YWluZXIsXHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkRhdGVBZGFwdGVyLFxyXG4gIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiVGltZUFkYXB0ZXIsXHJcbiAgTmdiVGltZXBpY2tlck1vZHVsZSxcclxuICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBEaXNhYmxlZERpcmVjdGl2ZSwgVGltZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEVYVFJBX1BST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgUHJvcERhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvcHMnO1xyXG5pbXBvcnQgeyBzZWxmRmFjdG9yeSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZhY3RvcnkudXRpbCc7XHJcbmltcG9ydCB7IGFkZFR5cGVhaGVhZFRleHRTdWZmaXggfSBmcm9tICcuLi8uLi91dGlscy90eXBlYWhlYWQudXRpbCc7XHJcbmltcG9ydCB7IGVFeHRlbnNpYmxlQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2VudW1zL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBFeHRlbnNpYmxlRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXRpbWUtcGlja2VyL2V4dGVuc2libGUtZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHRlbnNpYmxlRm9ybVByb3BTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaWJsZS1mb3JtLXByb3Auc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QvZXh0ZW5zaWJsZS1mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0tcHJvcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2libGUtZm9ybS1wcm9wLmNvbXBvbmVudC5odG1sJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBFeHRlbnNpYmxlRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBFeHRlbnNpYmxlRm9ybU11bHRpc2VsZWN0Q29tcG9uZW50LFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRGlzYWJsZWREaXJlY3RpdmUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JUb29sdGlwLFxyXG4gICAgTmdiVHlwZWFoZWFkTW9kdWxlLFxyXG4gICAgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbRXh0ZW5zaWJsZUZvcm1Qcm9wU2VydmljZV0sXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcclxuICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvbnRyb2xDb250YWluZXJdXSxcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiVGltZUFkYXB0ZXIsIHVzZUNsYXNzOiBUaW1lQWRhcHRlciB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEV4dGVuc2libGVGb3JtUHJvcFNlcnZpY2UpO1xyXG4gIHB1YmxpYyByZWFkb25seSBjZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYWNrID0gaW5qZWN0KFRyYWNrQnlTZXJ2aWNlKTtcclxuICAjZ3JvdXBEaXJlY3RpdmUgPSBpbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlKTtcclxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGZvcm0gPSB0aGlzLiNncm91cERpcmVjdGl2ZS5mb3JtO1xyXG5cclxuICBASW5wdXQoKSBkYXRhITogUHJvcERhdGE7XHJcbiAgQElucHV0KCkgcHJvcCE6IEZvcm1Qcm9wO1xyXG4gIEBJbnB1dCgpIGZpcnN0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0ZpcnN0R3JvdXA/OiBib29sZWFuO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpZWxkJykgcHJpdmF0ZSBmaWVsZFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG5cclxuICBpbmplY3RvckZvckN1c3RvbUNvbXBvbmVudD86IEluamVjdG9yO1xyXG4gIGFzdGVyaXNrID0gJyc7XHJcbiAgY29udGFpbmVyQ2xhc3NOYW1lID0gJ21iLTInO1xyXG4gIHNob3dQYXNzd29yZCA9IGZhbHNlO1xyXG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPEFCUC5PcHRpb248YW55PltdPiA9IG9mKFtdKTtcclxuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIHR5cGVhaGVhZE1vZGVsOiBhbnk7XHJcbiAgcGFzc3dvcmRLZXkgPSBlRXh0ZW5zaWJsZUNvbXBvbmVudHMuUGFzc3dvcmRDb21wb25lbnQ7XHJcblxyXG4gIGRpc2FibGVkRm4gPSAoZGF0YTogUHJvcERhdGEpID0+IGZhbHNlO1xyXG5cclxuICBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZEZuKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlYWhlYWRWYWx1ZShzZWxlY3RlZE9wdGlvbjogQUJQLk9wdGlvbjxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLnR5cGVhaGVhZE1vZGVsID0gc2VsZWN0ZWRPcHRpb24gfHwgeyBrZXk6IG51bGwsIHZhbHVlOiBudWxsIH07XHJcbiAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IHRoaXMudHlwZWFoZWFkTW9kZWw7XHJcbiAgICBjb25zdCBba2V5Q29udHJvbCwgdmFsdWVDb250cm9sXSA9IHRoaXMuZ2V0VHlwZWFoZWFkQ29udHJvbHMoKTtcclxuICAgIGlmICh2YWx1ZUNvbnRyb2w/LnZhbHVlICYmICF2YWx1ZSkgdmFsdWVDb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICBrZXlDb250cm9sPy5zZXRWYWx1ZShrZXkpO1xyXG4gICAgdmFsdWVDb250cm9sPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2ggPSAodGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPikgPT5cclxuICAgIHRleHQkXHJcbiAgICAgID8gdGV4dCQucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHN3aXRjaE1hcCh0ZXh0ID0+IHRoaXMucHJvcD8ub3B0aW9ucz8uKHRoaXMuZGF0YSwgdGV4dCkgfHwgb2YoW10pKSxcclxuICAgICAgICApXHJcbiAgICAgIDogb2YoW10pO1xyXG5cclxuICB0eXBlYWhlYWRGb3JtYXR0ZXIgPSAob3B0aW9uOiBBQlAuT3B0aW9uPGFueT4pID0+IG9wdGlvbi5rZXk7XHJcblxyXG4gIG1lcmlkaWFuJCA9IHRoaXMuc2VydmljZS5tZXJpZGlhbiQ7XHJcblxyXG4gIGdldCBpc0ludmFsaWQoKSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldCh0aGlzLnByb3AubmFtZSk7XHJcbiAgICByZXR1cm4gY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sLmludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFR5cGVhaGVhZENvbnRyb2xzKCkge1xyXG4gICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnByb3A7XHJcbiAgICBjb25zdCBleHRyYVByb3BOYW1lID0gYCR7RVhUUkFfUFJPUEVSVElFU19LRVl9LiR7bmFtZX1gO1xyXG4gICAgY29uc3Qga2V5Q29udHJvbCA9XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeChleHRyYVByb3BOYW1lKSkgfHxcclxuICAgICAgdGhpcy5mb3JtLmdldChhZGRUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpKTtcclxuICAgIGNvbnN0IHZhbHVlQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZXh0cmFQcm9wTmFtZSkgfHwgdGhpcy5mb3JtLmdldChuYW1lKTtcclxuICAgIHJldHVybiBba2V5Q29udHJvbCwgdmFsdWVDb250cm9sXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QXN0ZXJpc2soKSB7XHJcbiAgICB0aGlzLmFzdGVyaXNrID0gdGhpcy5zZXJ2aWNlLmNhbGNBc3Rlcmlza3ModGhpcy52YWxpZGF0b3JzKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmlzRmlyc3RHcm91cCAmJiB0aGlzLmZpcnN0ICYmIHRoaXMuZmllbGRSZWYpIHtcclxuICAgICAgdGhpcy5maWVsZFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnQocHJvcDogRm9ybVByb3ApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRDb21wb25lbnQocHJvcCk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlKHByb3A6IEZvcm1Qcm9wKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0VHlwZShwcm9wKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHsgcHJvcCwgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCBjdXJyZW50UHJvcCA9IHByb3A/LmN1cnJlbnRWYWx1ZSBhcyBGb3JtUHJvcDtcclxuICAgIGNvbnN0IHsgb3B0aW9ucywgcmVhZG9ubHksIGRpc2FibGVkLCB2YWxpZGF0b3JzLCBjbGFzc05hbWUsIHRlbXBsYXRlIH0gPSBjdXJyZW50UHJvcCB8fCB7fTtcclxuICAgIGlmICh0ZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmluamVjdG9yRm9yQ3VzdG9tQ29tcG9uZW50ID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19GT1JNX1BST1AsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjdXJyZW50UHJvcCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfRk9STV9QUk9QX0RBVEEsXHJcbiAgICAgICAgICAgIHVzZVZhbHVlOiAoZGF0YT8uY3VycmVudFZhbHVlIGFzIFByb3BEYXRhKT8ucmVjb3JkLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucykgdGhpcy5vcHRpb25zJCA9IG9wdGlvbnModGhpcy5kYXRhKTtcclxuICAgIGlmIChyZWFkb25seSkgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5KHRoaXMuZGF0YSk7XHJcblxyXG4gICAgaWYgKGRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRGbiA9IGRpc2FibGVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRvcnMpIHtcclxuICAgICAgdGhpcy52YWxpZGF0b3JzID0gdmFsaWRhdG9ycyh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEFzdGVyaXNrKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2xhc3NOYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb250YWluZXJDbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgW2tleUNvbnRyb2wsIHZhbHVlQ29udHJvbF0gPSB0aGlzLmdldFR5cGVhaGVhZENvbnRyb2xzKCk7XHJcbiAgICBpZiAoa2V5Q29udHJvbCAmJiB2YWx1ZUNvbnRyb2wpXHJcbiAgICAgIHRoaXMudHlwZWFoZWFkTW9kZWwgPSB7IGtleToga2V5Q29udHJvbC52YWx1ZSwgdmFsdWU6IHZhbHVlQ29udHJvbC52YWx1ZSB9O1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwicHJvcC5wZXJtaXNzaW9uOyBydW5DaGFuZ2VEZXRlY3Rpb246IGZhbHNlXCI+XHJcbiAgQHN3aXRjaCAoZ2V0Q29tcG9uZW50KHByb3ApKSB7XHJcbiAgICBAY2FzZSAoJ3RlbXBsYXRlJykge1xyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInByb3AudGVtcGxhdGU7IGluamVjdG9yOiBpbmplY3RvckZvckN1c3RvbUNvbXBvbmVudFwiIC8+XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzTmFtZVwiIGNsYXNzPVwibWItMlwiPlxyXG4gICAgQHN3aXRjaCAoZ2V0Q29tcG9uZW50KHByb3ApKSB7XHJcbiAgICAgIEBjYXNlICgnaW5wdXQnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCIgLz5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICNmaWVsZFxyXG4gICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJwcm9wLmF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJnZXRUeXBlKHByb3ApXCJcclxuICAgICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCdoaWRkZW4nKSB7XHJcbiAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCIgdHlwZT1cImhpZGRlblwiIC8+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCdjaGVja2JveCcpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogJ2Zvcm0tY2hlY2stbGFiZWwnIH1cIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ3NlbGVjdCcpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIiAvPlxyXG4gICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICNmaWVsZFxyXG4gICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBAZm9yIChvcHRpb24gb2Ygb3B0aW9ucyQgfCBhc3luYzsgdHJhY2sgb3B0aW9uLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgQGlmIChwcm9wLmlzRXh0cmEpIHtcclxuICAgICAgICAgICAgICAgIHt7ICc6OicgKyBvcHRpb24ua2V5IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB7eyBvcHRpb24ua2V5IH19XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ211bHRpc2VsZWN0Jykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0tbXVsdGktc2VsZWN0XHJcbiAgICAgICAgICBbcHJvcF09XCJwcm9wXCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgndHlwZWFoZWFkJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPGRpdiAjdHlwZWFoZWFkIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIiB2YWxpZGF0aW9uU3R5bGUgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjZmllbGRcclxuICAgICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInByb3AuYXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgW25nYlR5cGVhaGVhZF09XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICBbZWRpdGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaW5wdXRGb3JtYXR0ZXJdPVwidHlwZWFoZWFkRm9ybWF0dGVyXCJcclxuICAgICAgICAgICAgW3Jlc3VsdEZvcm1hdHRlcl09XCJ0eXBlYWhlYWRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInR5cGVhaGVhZE1vZGVsXCJcclxuICAgICAgICAgICAgKHNlbGVjdEl0ZW0pPVwic2V0VHlwZWFoZWFkVmFsdWUoJGV2ZW50Lml0ZW0pXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwic2V0VHlwZWFoZWFkVmFsdWUodHlwZWFoZWFkTW9kZWwpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwidHlwZWFoZWFkLmNsYXNzTGlzdC5jb250YWlucygnaXMtaW52YWxpZCcpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiIHR5cGU9XCJoaWRkZW5cIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnZGF0ZScpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIiAvPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJkYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAjZGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCd0aW1lJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPG5nYi10aW1lcGlja2VyIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCIgLz5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ2RhdGVUaW1lJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPGFicC1leHRlbnNpYmxlLWRhdGUtdGltZS1waWNrZXIgW3Byb3BdPVwicHJvcFwiIFttZXJpZGlhbl09XCJtZXJpZGlhbiQgfCBhc3luY1wiIC8+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCd0ZXh0YXJlYScpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIiAvPlxyXG4gICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ3Bhc3N3b3JkaW5wdXRncm91cCcpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIiAvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBmb3JtLWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIlxyXG4gICAgICAgICAgICBbYWJwU2hvd1Bhc3N3b3JkXT1cInNob3dQYXNzd29yZFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzaG93UGFzc3dvcmQgPSAhc2hvd1Bhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYVwiXHJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnZmEtZXllLXNsYXNoJzogIXNob3dQYXNzd29yZCxcclxuICAgICAgICAgICAgICAgICdmYS1leWUnOiBzaG93UGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAocHJvcC5mb3JtVGV4dCkge1xyXG4gICAgICA8c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkIGQtYmxvY2tcIj57eyBwcm9wLmZvcm1UZXh0IHwgYWJwTG9jYWxpemF0aW9uIH19PC9zbWFsbD5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2xhYmVsIGxldC1jbGFzc2VzPlxyXG4gIDxsYWJlbCBbaHRtbEZvcl09XCJwcm9wLmlkXCIgW25nQ2xhc3NdPVwiY2xhc3NlcyB8fCAnZm9ybS1sYWJlbCBkLWlubGluZS1ibG9jaydcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZC1pbmxpbmUtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgQGlmIChwcm9wLmRpc3BsYXlUZXh0UmVzb2x2ZXIpIHtcclxuICAgICAgICB7eyBwcm9wLmRpc3BsYXlUZXh0UmVzb2x2ZXIoZGF0YSkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgQGlmIChwcm9wLmlzRXh0cmEpIHtcclxuICAgICAgICAgIHt7ICc6OicgKyBwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICB7eyBwcm9wLmRpc3BsYXlOYW1lIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHt7IGFzdGVyaXNrIH19XHJcbiAgICAgIEBpZiAocHJvcC50b29sdGlwKSB7XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInByb3AudG9vbHRpcC50ZXh0IHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIFtwbGFjZW1lbnRdPVwicHJvcC50b29sdGlwLnBsYWNlbWVudCB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlXCJcclxuICAgICAgICA+PC9pPlxyXG4gICAgICB9XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19","import { LinkedList } from '@abp/utils';\nexport class ActionList extends LinkedList {\n}\nexport class ActionData {\n get data() {\n return {\n getInjected: this.getInjected,\n index: this.index,\n record: this.record,\n };\n }\n}\nexport class Action {\n constructor(permission, visible = () => true, action = () => { }, btnClass, btnStyle) {\n this.permission = permission;\n this.visible = visible;\n this.action = action;\n this.btnClass = btnClass;\n this.btnStyle = btnStyle;\n }\n}\nexport class ActionsFactory {\n constructor() {\n this.contributorCallbacks = {};\n }\n get(name) {\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n return new this._ctor(this.contributorCallbacks[name]);\n }\n}\nexport class Actions {\n get actions() {\n const actionList = new this._ctor();\n this.callbackList.forEach(callback => callback(actionList));\n return actionList;\n }\n constructor(callbackList) {\n this.callbackList = callbackList;\n }\n addContributor(contributeCallback) {\n this.callbackList.push(contributeCallback);\n }\n clearContributors() {\n while (this.callbackList.length)\n this.callbackList.pop();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFnQixVQUFtQyxTQUFRLFVBQWE7Q0FBRztBQUVqRixNQUFNLE9BQWdCLFVBQVU7SUFTOUIsSUFBSSxJQUFJO1FBQ04sT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFJRCxNQUFNLE9BQWdCLE1BQU07SUFDMUIsWUFDa0IsVUFBa0IsRUFDbEIsVUFBOEIsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUN4QyxTQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQ3BDLFFBQWlCLEVBQ2pCLFFBQWlCO1FBSmpCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFTO0lBQ2hDLENBQUM7Q0FDTDtBQUtELE1BQU0sT0FBZ0IsY0FBYztJQUFwQztRQUVVLHlCQUFvQixHQUFzRCxFQUFFLENBQUM7SUFPdkYsQ0FBQztJQUxDLEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixPQUFPO0lBRzNCLElBQUksT0FBTztRQUNULE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFNUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQTZCLFlBQTRDO1FBQTVDLGlCQUFZLEdBQVosWUFBWSxDQUFnQztJQUFHLENBQUM7SUFFN0UsY0FBYyxDQUFDLGtCQUFnRDtRQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdE9wdGlvbnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJ0BhYnAvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkxpc3Q8UiA9IGFueSwgQSA9IEFjdGlvbjxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+IHt9XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uRGF0YTxSID0gYW55PiB7XHJcbiAgYWJzdHJhY3QgZ2V0SW5qZWN0ZWQ6IDxUPihcclxuICAgIHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sXHJcbiAgICBub3RGb3VuZFZhbHVlPzogVCxcclxuICAgIGZsYWdzPzogSW5qZWN0T3B0aW9ucyxcclxuICApID0+IFQ7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgYWJzdHJhY3QgcmVjb3JkOiBSO1xyXG5cclxuICBnZXQgZGF0YSgpOiBSZWFkb25seUFjdGlvbkRhdGE8Uj4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsXHJcbiAgICAgIGluZGV4OiB0aGlzLmluZGV4LFxyXG4gICAgICByZWNvcmQ6IHRoaXMucmVjb3JkLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlYWRvbmx5QWN0aW9uRGF0YTxSID0gYW55PiA9IFJlYWRvbmx5PE9taXQ8QWN0aW9uRGF0YTxSPiwgJ2RhdGEnPj47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uPFIgPSBhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZTogQWN0aW9uUHJlZGljYXRlPFI+ID0gKCkgPT4gdHJ1ZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpb246IEFjdGlvbkNhbGxiYWNrPFI+ID0gKCkgPT4ge30sXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuU3R5bGU/OiBzdHJpbmcsXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25DYWxsYmFjazxULCBSID0gYW55PiA9IChkYXRhOiBPbWl0PEFjdGlvbkRhdGE8VD4sICdkYXRhJz4pID0+IFI7XHJcbmV4cG9ydCB0eXBlIEFjdGlvblByZWRpY2F0ZTxUPiA9IChkYXRhPzogT21pdDxBY3Rpb25EYXRhPFQ+LCAnZGF0YSc+KSA9PiBib29sZWFuO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbnNGYWN0b3J5PEMgZXh0ZW5kcyBBY3Rpb25zPGFueT4+IHtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2N0b3I6IFR5cGU8Qz47XHJcbiAgcHJpdmF0ZSBjb250cmlidXRvckNhbGxiYWNrczogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8SW5mZXJyZWRBY3Rpb25MaXN0PEM+PiA9IHt9O1xyXG5cclxuICBnZXQobmFtZTogc3RyaW5nKTogQyB7XHJcbiAgICB0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdID0gdGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSB8fCBbXTtcclxuXHJcbiAgICByZXR1cm4gbmV3IHRoaXMuX2N0b3IodGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uczxMIGV4dGVuZHMgQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPEw+Pj4ge1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfY3RvcjogVHlwZTxMPjtcclxuXHJcbiAgZ2V0IGFjdGlvbnMoKTogTCB7XHJcbiAgICBjb25zdCBhY3Rpb25MaXN0ID0gbmV3IHRoaXMuX2N0b3IoKTtcclxuXHJcbiAgICB0aGlzLmNhbGxiYWNrTGlzdC5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKGFjdGlvbkxpc3QpKTtcclxuXHJcbiAgICByZXR1cm4gYWN0aW9uTGlzdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FsbGJhY2tMaXN0OiBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEw+W10pIHt9XHJcblxyXG4gIGFkZENvbnRyaWJ1dG9yKGNvbnRyaWJ1dGVDYWxsYmFjazogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPikge1xyXG4gICAgdGhpcy5jYWxsYmFja0xpc3QucHVzaChjb250cmlidXRlQ2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDb250cmlidXRvcnMoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5jYWxsYmFja0xpc3QubGVuZ3RoKSB0aGlzLmNhbGxiYWNrTGlzdC5wb3AoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IFJlY29yZDxcclxuICBzdHJpbmcsXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPltdXHJcbj47XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IChcclxuICBhY3Rpb25MaXN0OiBMLFxyXG4pID0+IGFueTtcclxuXHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25MaXN0PEM+ID0gQyBleHRlbmRzIEFjdGlvbnM8aW5mZXIgTD4gPyBMIDogbmV2ZXI7XHJcbmV4cG9ydCB0eXBlIEluZmVycmVkQWN0aW9uPFQ+ID0gVCBleHRlbmRzIEFjdGlvbkxpc3Q8YW55LCBpbmZlciBVPiA/IFUgOiBUO1xyXG4iXX0=","import { Action, ActionList, Actions, ActionsFactory, } from './actions';\nexport class EntityActionList extends ActionList {\n}\nexport class EntityActions extends Actions {\n constructor() {\n super(...arguments);\n this._ctor = EntityActionList;\n }\n}\nexport class EntityActionsFactory extends ActionsFactory {\n constructor() {\n super(...arguments);\n this._ctor = EntityActions;\n }\n}\nexport class EntityAction extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.text = options.text;\n this.icon = options.icon || '';\n this.btnClass = options.btnClass || 'btn btn-primary text-center';\n this.btnStyle = options.btnStyle;\n this.showOnlyIcon = options.showOnlyIcon || false;\n this.tooltip = options.tooltip;\n }\n static create(options) {\n return new EntityAction(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(EntityAction.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvZW50aXR5LWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLE1BQU0sRUFHTixVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsR0FDZixNQUFNLFdBQVcsQ0FBQztBQUluQixNQUFNLE9BQU8sZ0JBQTBCLFNBQVEsVUFBOEI7Q0FBRztBQUVoRixNQUFNLE9BQU8sYUFBdUIsU0FBUSxPQUE0QjtJQUF4RTs7UUFDWSxVQUFLLEdBQThCLGdCQUFnQixDQUFDO0lBQ2hFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxvQkFBOEIsU0FBUSxjQUFnQztJQUFuRjs7UUFDWSxVQUFLLEdBQTJCLGFBQWEsQ0FBQztJQUMxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sWUFBc0IsU0FBUSxNQUFTO0lBUWxELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSw2QkFBNkIsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQVUsT0FBK0I7UUFDcEQsT0FBTyxJQUFJLFlBQVksQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBVSxjQUF3QztRQUNqRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBY3Rpb24sXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBBY3Rpb25MaXN0LFxyXG4gIEFjdGlvbnMsXHJcbiAgQWN0aW9uc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRm9ybVByb3BUb29sdGlwIH0gZnJvbSAnLi9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRmlsdGVyZWRXaXRoT3B0aW9ucywgUGFydGlhbFdpdGhPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eUFjdGlvbkxpc3Q8UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb25MaXN0PFIsIEVudGl0eUFjdGlvbjxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBY3Rpb25zPFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uczxFbnRpdHlBY3Rpb25MaXN0PFI+PiB7XHJcbiAgcHJvdGVjdGVkIF9jdG9yOiBUeXBlPEVudGl0eUFjdGlvbkxpc3Q8Uj4+ID0gRW50aXR5QWN0aW9uTGlzdDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eUFjdGlvbnNGYWN0b3J5PFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uc0ZhY3Rvcnk8RW50aXR5QWN0aW9uczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxFbnRpdHlBY3Rpb25zPFI+PiA9IEVudGl0eUFjdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBY3Rpb248UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb248Uj4ge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSBpY29uOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuU3R5bGU/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgc2hvd09ubHlJY29uPzogYm9vbGVhbjtcclxuICByZWFkb25seSB0b29sdGlwPzogRm9ybVByb3BUb29sdGlwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbnRpdHlBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy50ZXh0ID0gb3B0aW9ucy50ZXh0O1xyXG4gICAgdGhpcy5pY29uID0gb3B0aW9ucy5pY29uIHx8ICcnO1xyXG4gICAgdGhpcy5idG5DbGFzcyA9IG9wdGlvbnMuYnRuQ2xhc3MgfHwgJ2J0biBidG4tcHJpbWFyeSB0ZXh0LWNlbnRlcic7XHJcbiAgICB0aGlzLmJ0blN0eWxlID0gb3B0aW9ucy5idG5TdHlsZTtcclxuICAgIHRoaXMuc2hvd09ubHlJY29uID0gb3B0aW9ucy5zaG93T25seUljb24gfHwgZmFsc2U7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSBvcHRpb25zLnRvb2x0aXA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlPFIgPSBhbnk+KG9wdGlvbnM6IEVudGl0eUFjdGlvbk9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgRW50aXR5QWN0aW9uPFI+KG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZU1hbnk8UiA9IGFueT4oYXJyYXlPZk9wdGlvbnM6IEVudGl0eUFjdGlvbk9wdGlvbnM8Uj5bXSkge1xyXG4gICAgcmV0dXJuIGFycmF5T2ZPcHRpb25zLm1hcChFbnRpdHlBY3Rpb24uY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgT3B0aW9uYWxLZXlzID0gJ3Blcm1pc3Npb24nIHwgJ3Zpc2libGUnIHwgJ2ljb24nO1xyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25PcHRpb25zPFIgPSBhbnk+ID0gUGFydGlhbFdpdGhPcHRpb25zPEVudGl0eUFjdGlvbjxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxFbnRpdHlBY3Rpb248Uj4sIE9wdGlvbmFsS2V5cz47XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25EZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUFjdGlvbjxSPltdPjtcclxuZXhwb3J0IHR5cGUgRW50aXR5QWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxSID0gYW55PiA9IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2s8XHJcbiAgRW50aXR5QWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPFxyXG4gIEVudGl0eUFjdGlvbkxpc3Q8Uj5cclxuPjtcclxuIl19","import { escapeHtmlChars } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { Prop, PropList, Props, PropsFactory, } from './props';\nexport class EntityPropList extends PropList {\n}\nexport class EntityProps extends Props {\n constructor() {\n super(...arguments);\n this._ctor = EntityPropList;\n }\n}\nexport class EntityPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = EntityProps;\n }\n}\nexport class EntityProp extends Prop {\n constructor(options) {\n super(options.type, options.name, options.displayName || '', options.permission || '', options.visible, options.isExtra);\n this.columnVisible = options.columnVisible || (() => true);\n this.columnWidth = options.columnWidth;\n this.sortable = options.sortable || false;\n this.valueResolver =\n options.valueResolver ||\n (data => of(escapeHtmlChars(data.record[this.name])));\n if (options.action) {\n this.action = options.action;\n }\n if (options.component) {\n this.component = options.component;\n }\n if (options.enumList) {\n this.enumList = options.enumList;\n }\n this.tooltip = options.tooltip;\n }\n static create(options) {\n return new EntityProp(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(EntityProp.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvbW9kZWxzL2VudGl0eS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUNMLElBQUksRUFJSixRQUFRLEVBQ1IsS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLFNBQVMsQ0FBQztBQUlqQixNQUFNLE9BQU8sY0FBd0IsU0FBUSxRQUEwQjtDQUFHO0FBRTFFLE1BQU0sT0FBTyxXQUFxQixTQUFRLEtBQXdCO0lBQWxFOztRQUNZLFVBQUssR0FBNEIsY0FBYyxDQUFDO0lBQzVELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxrQkFBNEIsU0FBUSxZQUE0QjtJQUE3RTs7UUFDWSxVQUFLLEdBQXlCLFdBQVcsQ0FBQztJQUN0RCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sVUFBb0IsU0FBUSxJQUFPO0lBVTlDLFlBQVksT0FBNkI7UUFDdkMsS0FBSyxDQUNILE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFDekIsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhO1lBQ2hCLE9BQU8sQ0FBQyxhQUFhO2dCQUNyQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBRSxJQUFJLENBQUMsTUFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFVLE9BQTZCO1FBQ2xELE9BQU8sSUFBSSxVQUFVLENBQUksT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQVUsY0FBc0M7UUFDL0QsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVzY2FwZUh0bWxDaGFycyB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEluamVjdE9wdGlvbnMsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjdGlvbkNhbGxiYWNrIH0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICBQcm9wLFxyXG4gIFByb3BDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcHMsXHJcbiAgUHJvcHNGYWN0b3J5LFxyXG59IGZyb20gJy4vcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcFRvb2x0aXAgfSBmcm9tICcuL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJlZFdpdGhPcHRpb25zLCBQYXJ0aWFsV2l0aE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9tb2RlbC51dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UHJvcExpc3Q8UiA9IGFueT4gZXh0ZW5kcyBQcm9wTGlzdDxSLCBFbnRpdHlQcm9wPFI+PiB7fVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVByb3BzPFIgPSBhbnk+IGV4dGVuZHMgUHJvcHM8RW50aXR5UHJvcExpc3Q8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8RW50aXR5UHJvcExpc3Q8Uj4+ID0gRW50aXR5UHJvcExpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8UiA9IGFueT4gZXh0ZW5kcyBQcm9wc0ZhY3Rvcnk8RW50aXR5UHJvcHM8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8RW50aXR5UHJvcHM8Uj4+ID0gRW50aXR5UHJvcHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9wPFIgPSBhbnk+IGV4dGVuZHMgUHJvcDxSPiB7XHJcbiAgcmVhZG9ubHkgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICByZWFkb25seSBzb3J0YWJsZTogYm9vbGVhbjtcclxuICByZWFkb25seSB2YWx1ZVJlc29sdmVyOiBQcm9wQ2FsbGJhY2s8UiwgT2JzZXJ2YWJsZTxhbnk+PjtcclxuICByZWFkb25seSBhY3Rpb24/OiBBY3Rpb25DYWxsYmFjazxSPjtcclxuICByZWFkb25seSBjb21wb25lbnQ/OiBUeXBlPGFueT47XHJcbiAgcmVhZG9ubHkgZW51bUxpc3Q/OiBBcnJheTxBQlAuT3B0aW9uPGFueT4+O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA/OiBGb3JtUHJvcFRvb2x0aXA7XHJcbiAgcmVhZG9ubHkgY29sdW1uVmlzaWJsZTogQ29sdW1uUHJlZGljYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbnRpdHlQcm9wT3B0aW9uczxSPikge1xyXG4gICAgc3VwZXIoXHJcbiAgICAgIG9wdGlvbnMudHlwZSxcclxuICAgICAgb3B0aW9ucy5uYW1lLFxyXG4gICAgICBvcHRpb25zLmRpc3BsYXlOYW1lIHx8ICcnLFxyXG4gICAgICBvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsXHJcbiAgICAgIG9wdGlvbnMudmlzaWJsZSxcclxuICAgICAgb3B0aW9ucy5pc0V4dHJhLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbHVtblZpc2libGUgPSBvcHRpb25zLmNvbHVtblZpc2libGUgfHwgKCgpID0+IHRydWUpO1xyXG4gICAgdGhpcy5jb2x1bW5XaWR0aCA9IG9wdGlvbnMuY29sdW1uV2lkdGg7XHJcbiAgICB0aGlzLnNvcnRhYmxlID0gb3B0aW9ucy5zb3J0YWJsZSB8fCBmYWxzZTtcclxuICAgIHRoaXMudmFsdWVSZXNvbHZlciA9XHJcbiAgICAgIG9wdGlvbnMudmFsdWVSZXNvbHZlciB8fFxyXG4gICAgICAoZGF0YSA9PiBvZihlc2NhcGVIdG1sQ2hhcnMoKGRhdGEucmVjb3JkIGFzIFByb3BEYXRhT2JqZWN0KVt0aGlzLm5hbWVdKSkpO1xyXG4gICAgaWYgKG9wdGlvbnMuYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uID0gb3B0aW9ucy5hY3Rpb247XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9ucy5jb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQgPSBvcHRpb25zLmNvbXBvbmVudDtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLmVudW1MaXN0KSB7XHJcbiAgICAgIHRoaXMuZW51bUxpc3QgPSBvcHRpb25zLmVudW1MaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy50b29sdGlwID0gb3B0aW9ucy50b29sdGlwO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZTxSID0gYW55PihvcHRpb25zOiBFbnRpdHlQcm9wT3B0aW9uczxSPikge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlQcm9wPFI+KG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZU1hbnk8UiA9IGFueT4oYXJyYXlPZk9wdGlvbnM6IEVudGl0eVByb3BPcHRpb25zPFI+W10pIHtcclxuICAgIHJldHVybiBhcnJheU9mT3B0aW9ucy5tYXAoRW50aXR5UHJvcC5jcmVhdGUpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBPcHRpb25hbEtleXMgPVxyXG4gIHwgJ3Blcm1pc3Npb24nXHJcbiAgfCAndmlzaWJsZSdcclxuICB8ICdjb2x1bW5WaXNpYmxlJ1xyXG4gIHwgJ2Rpc3BsYXlOYW1lJ1xyXG4gIHwgJ2lzRXh0cmEnXHJcbiAgfCAnY29sdW1uV2lkdGgnXHJcbiAgfCAnc29ydGFibGUnXHJcbiAgfCAndmFsdWVSZXNvbHZlcidcclxuICB8ICdhY3Rpb24nXHJcbiAgfCAnY29tcG9uZW50J1xyXG4gIHwgJ2VudW1MaXN0JztcclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcE9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8RW50aXR5UHJvcDxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxFbnRpdHlQcm9wPFI+LCBPcHRpb25hbEtleXM+O1xyXG5cclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcERlZmF1bHRzPFIgPSBhbnk+ID0gUmVjb3JkPHN0cmluZywgRW50aXR5UHJvcDxSPltdPjtcclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8UiA9IGFueT4gPSBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxFbnRpdHlQcm9wTGlzdDxSPj47XHJcbmV4cG9ydCB0eXBlIEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IFByb3BDb250cmlidXRvckNhbGxiYWNrczxFbnRpdHlQcm9wTGlzdDxSPj47XHJcbmV4cG9ydCB0eXBlIENvbHVtblByZWRpY2F0ZSA9IChnZXRJbmplY3RlZDogR2V0SW5qZWN0ZWQsIGF1eERhdGE/OiBhbnkpID0+IGJvb2xlYW47XHJcbmV4cG9ydCB0eXBlIEdldEluamVjdGVkID0gPFQ+KFxyXG4gIHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sXHJcbiAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgb3B0aW9ucz86IEluamVjdE9wdGlvbnMsXHJcbikgPT4gVDtcclxudHlwZSBQcm9wRGF0YU9iamVjdCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiJdfQ==","import { Action, ActionList, Actions, ActionsFactory, } from './actions';\nexport class ToolbarActionList extends ActionList {\n}\nexport class ToolbarActions extends Actions {\n constructor() {\n super(...arguments);\n this._ctor = ToolbarActionList;\n }\n}\nexport class ToolbarActionsFactory extends ActionsFactory {\n constructor() {\n super(...arguments);\n this._ctor = ToolbarActions;\n }\n}\nexport class ToolbarAction extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.text = options.text;\n this.icon = options.icon || '';\n if (options.btnClass) {\n this.btnClass = options.btnClass;\n }\n }\n static create(options) {\n return new ToolbarAction(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(ToolbarAction.create);\n }\n}\nexport class ToolbarComponent extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.component = options.component;\n }\n static create(options) {\n return new ToolbarComponent(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(ToolbarComponent.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvbW9kZWxzL3Rvb2xiYXItYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixPQUFPLEVBQ1AsY0FBYyxHQUVmLE1BQU0sV0FBVyxDQUFDO0FBR25CLE1BQU0sT0FBTyxpQkFBMkIsU0FBUSxVQUFzQztDQUFHO0FBRXpGLE1BQU0sT0FBTyxjQUF3QixTQUFRLE9BQTZCO0lBQTFFOztRQUNZLFVBQUssR0FBK0IsaUJBQWlCLENBQUM7SUFDbEUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHFCQUErQixTQUFRLGNBQWlDO0lBQXJGOztRQUNZLFVBQUssR0FBNEIsY0FBYyxDQUFDO0lBQzVELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxhQUF1QixTQUFRLE1BQVM7SUFLbkQsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBVSxPQUFnQztRQUNyRCxPQUFPLElBQUksYUFBYSxDQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFVLGNBQXlDO1FBQ2xFLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUEwQixTQUFRLE1BQVM7SUFHdEQsWUFBWSxPQUFtQztRQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFVLE9BQW1DO1FBQ3hELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBVSxjQUE0QztRQUNyRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBY3Rpb24sXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBBY3Rpb25EYXRhLFxyXG4gIEFjdGlvbkxpc3QsXHJcbiAgQWN0aW9ucyxcclxuICBBY3Rpb25zRmFjdG9yeSxcclxuICBSZWFkb25seUFjdGlvbkRhdGEsXHJcbn0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRmlsdGVyZWRXaXRoT3B0aW9ucywgUGFydGlhbFdpdGhPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJBY3Rpb25MaXN0PFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uTGlzdDxSLCBUb29sYmFyQWN0aW9uRGVmYXVsdDxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyQWN0aW9uczxSID0gYW55PiBleHRlbmRzIEFjdGlvbnM8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+ID0gVG9vbGJhckFjdGlvbkxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb25zRmFjdG9yeTxUb29sYmFyQWN0aW9uczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxUb29sYmFyQWN0aW9uczxSPj4gPSBUb29sYmFyQWN0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJBY3Rpb248UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb248Uj4ge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSBpY29uOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRvb2xiYXJBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy50ZXh0ID0gb3B0aW9ucy50ZXh0O1xyXG4gICAgdGhpcy5pY29uID0gb3B0aW9ucy5pY29uIHx8ICcnO1xyXG4gICAgaWYgKG9wdGlvbnMuYnRuQ2xhc3MpIHtcclxuICAgICAgdGhpcy5idG5DbGFzcyA9IG9wdGlvbnMuYnRuQ2xhc3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlPFIgPSBhbnk+KG9wdGlvbnM6IFRvb2xiYXJBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICByZXR1cm4gbmV3IFRvb2xiYXJBY3Rpb248Uj4ob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlTWFueTxSID0gYW55PihhcnJheU9mT3B0aW9uczogVG9vbGJhckFjdGlvbk9wdGlvbnM8Uj5bXSkge1xyXG4gICAgcmV0dXJuIGFycmF5T2ZPcHRpb25zLm1hcChUb29sYmFyQWN0aW9uLmNyZWF0ZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudDxSID0gYW55PiBleHRlbmRzIEFjdGlvbjxSPiB7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRvb2xiYXJDb21wb25lbnRPcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBvcHRpb25zLmNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGU8UiA9IGFueT4ob3B0aW9uczogVG9vbGJhckNvbXBvbmVudE9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgVG9vbGJhckNvbXBvbmVudDxSPihvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVNYW55PFIgPSBhbnk+KGFycmF5T2ZPcHRpb25zOiBUb29sYmFyQ29tcG9uZW50T3B0aW9uczxSPltdKSB7XHJcbiAgICByZXR1cm4gYXJyYXlPZk9wdGlvbnMubWFwKFRvb2xiYXJDb21wb25lbnQuY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgT3B0aW9uYWxBY3Rpb25LZXlzID0gJ3Blcm1pc3Npb24nIHwgJ3Zpc2libGUnIHwgJ2ljb24nIHwgJ2J0bkNsYXNzJztcclxuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbk9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8XHJcbiAgVG9vbGJhckFjdGlvbjxSPixcclxuICBPcHRpb25hbEFjdGlvbktleXNcclxuPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxUb29sYmFyQWN0aW9uPFI+LCBPcHRpb25hbEFjdGlvbktleXM+O1xyXG5cclxudHlwZSBPcHRpb25hbENvbXBvbmVudEtleXMgPSAncGVybWlzc2lvbicgfCAndmlzaWJsZScgfCAnYWN0aW9uJztcclxuZXhwb3J0IHR5cGUgVG9vbGJhckNvbXBvbmVudE9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8XHJcbiAgVG9vbGJhckNvbXBvbmVudDxSPixcclxuICBPcHRpb25hbENvbXBvbmVudEtleXNcclxuPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxUb29sYmFyQ29tcG9uZW50PFI+LCBPcHRpb25hbENvbXBvbmVudEtleXM+O1xyXG5cclxuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbkRlZmF1bHQ8UiA9IGFueT4gPSBUb29sYmFyQWN0aW9uPFI+IHwgVG9vbGJhckNvbXBvbmVudDxSPjtcclxuXHJcbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb25EZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEFycmF5PFRvb2xiYXJBY3Rpb25EZWZhdWx0PFI+Pj47XHJcbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxcclxuICBUb29sYmFyQWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBUb29sYmFyQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8UiA9IGFueT4gPSBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxcclxuICBUb29sYmFyQWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBJbmZlcnJlZERhdGE8TD4gPSBBY3Rpb25EYXRhPEluZmVycmVkUmVjb3JkPEw+PjtcclxuZXhwb3J0IHR5cGUgSW5mZXJyZWRSZWNvcmQ8TD4gPSBMIGV4dGVuZHMgQWN0aW9uTGlzdDxpbmZlciBSPiA/IFIgOiBhbnk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhhc0NyZWF0ZUluamVjdG9yUGlwZTxSPiB7XHJcbiAgZ2V0RGF0YTogKCkgPT4gUmVhZG9ubHlBY3Rpb25EYXRhPFI+O1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPFRvb2xiYXJBY3Rpb25MaXN0PFI+PlsnZ2V0SW5qZWN0ZWQnXTtcclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { EntityActionsFactory } from '../models/entity-actions';\nimport { EntityPropsFactory } from '../models/entity-props';\nimport { CreateFormPropsFactory, EditFormPropsFactory } from '../models/form-props';\nimport { ToolbarActionsFactory } from '../models/toolbar-actions';\nimport * as i0 from \"@angular/core\";\nexport class ExtensionsService {\n constructor() {\n this.entityActions = new EntityActionsFactory();\n this.toolbarActions = new ToolbarActionsFactory();\n this.entityProps = new EntityPropsFactory();\n this.createFormProps = new CreateFormPropsFactory();\n this.editFormProps = new EditFormPropsFactory();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBS2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJVyxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztRQUM5QyxtQkFBYyxHQUFHLElBQUkscUJBQXFCLEVBQU8sQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksa0JBQWtCLEVBQUssQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksc0JBQXNCLEVBQUssQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztLQUN4RDs4R0FOWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25zRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3BzRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5LCBFZGl0Rm9ybVByb3BzRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgVG9vbGJhckFjdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uc1NlcnZpY2U8UiA9IGFueT4ge1xyXG4gIHJlYWRvbmx5IGVudGl0eUFjdGlvbnMgPSBuZXcgRW50aXR5QWN0aW9uc0ZhY3Rvcnk8Uj4oKTtcclxuICByZWFkb25seSB0b29sYmFyQWN0aW9ucyA9IG5ldyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8UltdPigpO1xyXG4gIHJlYWRvbmx5IGVudGl0eVByb3BzID0gbmV3IEVudGl0eVByb3BzRmFjdG9yeTxSPigpO1xyXG4gIHJlYWRvbmx5IGNyZWF0ZUZvcm1Qcm9wcyA9IG5ldyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PFI+KCk7XHJcbiAgcmVhZG9ubHkgZWRpdEZvcm1Qcm9wcyA9IG5ldyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxSPigpO1xyXG59XHJcbiJdfQ==","/* eslint-disable @angular-eslint/no-input-rename */\nimport { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { PropData } from '../models/props';\nimport * as i0 from \"@angular/core\";\nexport class PropDataDirective extends PropData {\n constructor(tempRef, vcRef, injector) {\n super();\n this.tempRef = tempRef;\n this.vcRef = vcRef;\n this.getInjected = injector.get.bind(injector);\n }\n ngOnChanges() {\n this.vcRef.clear();\n this.vcRef.createEmbeddedView(this.tempRef, {\n $implicit: this.data,\n index: 0,\n });\n }\n ngOnDestroy() {\n this.vcRef.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PropDataDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: PropDataDirective, isStandalone: true, selector: \"[abpPropData]\", inputs: { propList: [\"abpPropDataFromList\", \"propList\"], record: [\"abpPropDataWithRecord\", \"record\"], index: [\"abpPropDataAtIndex\", \"index\"] }, exportAs: [\"abpPropData\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PropDataDirective, decorators: [{\n type: Directive,\n args: [{\n exportAs: 'abpPropData',\n selector: '[abpPropData]',\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.Injector }], propDecorators: { propList: [{\n type: Input,\n args: ['abpPropDataFromList']\n }], record: [{\n type: Input,\n args: ['abpPropDataWithRecord']\n }], index: [{\n type: Input,\n args: ['abpPropDataAtIndex']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDOztBQU1yRCxNQUFNLE9BQU8saUJBQ1gsU0FBUSxRQUF5QjtJQVdqQyxZQUNVLE9BQXlCLEVBQ3pCLEtBQXVCLEVBQy9CLFFBQWtCO1FBRWxCLEtBQUssRUFBRSxDQUFDO1FBSkEsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFLL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWpDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO3NJQUsrQixRQUFRO3NCQUFyQyxLQUFLO3VCQUFDLHFCQUFxQjtnQkFFSSxNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLHVCQUF1QjtnQkFFRCxLQUFLO3NCQUFqQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cclxuaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSwgUHJvcExpc3QgfSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgZXhwb3J0QXM6ICdhYnBQcm9wRGF0YScsXHJcbiAgc2VsZWN0b3I6ICdbYWJwUHJvcERhdGFdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BEYXRhRGlyZWN0aXZlPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnk+PlxyXG4gIGV4dGVuZHMgUHJvcERhdGE8SW5mZXJyZWREYXRhPEw+PlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgnYWJwUHJvcERhdGFGcm9tTGlzdCcpIHByb3BMaXN0PzogTDtcclxuXHJcbiAgQElucHV0KCdhYnBQcm9wRGF0YVdpdGhSZWNvcmQnKSByZWNvcmQhOiBJbmZlcnJlZERhdGE8TD5bJ3JlY29yZCddO1xyXG5cclxuICBASW5wdXQoJ2FicFByb3BEYXRhQXRJbmRleCcpIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICByZWFkb25seSBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPEw+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBSZWYsIHtcclxuICAgICAgJGltcGxpY2l0OiB0aGlzLmRhdGEsXHJcbiAgICAgIGluZGV4OiAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWREYXRhPEw+ID0gUHJvcERhdGE8SW5mZXJyZWRSZWNvcmQ8TD4+O1xyXG50eXBlIEluZmVycmVkUmVjb3JkPEw+ID0gTCBleHRlbmRzIFByb3BMaXN0PGluZmVyIFI+ID8gUiA6IG5ldmVyO1xyXG4iXX0=","import { TrackByService } from '@abp/ng.core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';\nimport { ControlContainer, ReactiveFormsModule } from '@angular/forms';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { GroupedFormPropList } from '../../models/form-props';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\nimport { selfFactory } from '../../utils/factory.util';\nimport { ExtensibleFormPropComponent } from './extensible-form-prop.component';\nimport { CommonModule } from '@angular/common';\nimport { PropDataDirective } from '../../directives/prop-data.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nexport class ExtensibleFormComponent {\n constructor() {\n this.cdRef = inject(ChangeDetectorRef);\n this.track = inject(TrackByService);\n this.container = inject(ControlContainer);\n this.extensions = inject(ExtensionsService);\n this.identifier = inject(EXTENSIONS_IDENTIFIER);\n this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;\n }\n set selectedRecord(record) {\n const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';\n const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;\n this.groupedPropList = this.createGroupedList(propList);\n this.record = record;\n }\n get form() {\n return (this.container ? this.container.control : { controls: {} });\n }\n get extraProperties() {\n return (this.form.controls.extraProperties || { controls: {} });\n }\n createGroupedList(propList) {\n const groupedFormPropList = new GroupedFormPropList();\n propList.forEach(item => {\n groupedFormPropList.addItem(item.value);\n });\n return groupedFormPropList;\n }\n //TODO: Reactor this method\n isAnyGroupMemberVisible(index, data) {\n const { items } = this.groupedPropList;\n const formPropList = items[index].formPropList.toArray();\n return formPropList.some(prop => prop.visible(data));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleFormComponent, isStandalone: true, selector: \"abp-extensible-form\", inputs: { selectedRecord: \"selectedRecord\" }, viewQueries: [{ propertyName: \"formProps\", predicate: ExtensibleFormPropComponent, descendants: 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\\r\\n [ngClass]=\\\"groupedProp.group?.className\\\"\\r\\n [attr.data-name]=\\\"groupedProp.group?.name || groupedProp.group?.className\\\"\\r\\n >\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first}\\\"\\r\\n >\\r\\n </ng-container>\\r\\n </div>\\r\\n } @else {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first }\\\"\\r\\n >\\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\\r\\n [class]=\\\"prop.className\\\"\\r\\n [prop]=\\\"prop\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [isFirstGroup]=\\\"isFirstGroup\\\"\\r\\n />\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { 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\", \"isFirstGroup\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpExtensibleForm', selector: 'abp-extensible-form', imports: [CommonModule, PropDataDirective, ReactiveFormsModule, ExtensibleFormPropComponent], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n ], 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\\r\\n [ngClass]=\\\"groupedProp.group?.className\\\"\\r\\n [attr.data-name]=\\\"groupedProp.group?.name || groupedProp.group?.className\\\"\\r\\n >\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first}\\\"\\r\\n >\\r\\n </ng-container>\\r\\n </div>\\r\\n } @else {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first }\\\"\\r\\n >\\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\\r\\n [class]=\\\"prop.className\\\"\\r\\n [prop]=\\\"prop\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [isFirstGroup]=\\\"isFirstGroup\\\"\\r\\n />\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\" }]\n }], propDecorators: { formProps: [{\n type: ViewChildren,\n args: [ExtensibleFormPropComponent]\n }], selectedRecord: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBZ0J6RSxNQUFNLE9BQU8sdUJBQXVCO0lBZHBDO1FBZWtCLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyQyxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBYTVELHVCQUFrQixHQUFHLG9CQUFvQixDQUFDO0tBNEIzQztJQXBDQyxJQUNJLGNBQWMsQ0FBQyxNQUFTO1FBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBT0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBcUIsQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQXFCLENBQUM7SUFDdEYsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQXlCO1FBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELDJCQUEyQjtJQUMzQix1QkFBdUIsQ0FBQyxLQUFhLEVBQUUsSUFBSTtRQUN6QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQTdDVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwySkFPcEIsMkJBQTJCLGlGQzNDM0MsbTFEQThDQSwyQ0RwQlksWUFBWSxvU0FBRSxpQkFBaUIsb0tBQUUsbUJBQW1CLGtTQUFFLDJCQUEyQiw2R0FFNUU7WUFDYjtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixVQUFVLEVBQUUsV0FBVztnQkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUMzRDtTQUNGOzsyRkFFVSx1QkFBdUI7a0JBZG5DLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25CLHFCQUFxQixXQUV0QixDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsQ0FBQyxtQkFDM0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3FCQUNGOzhCQVVELFNBQVM7c0JBRFIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBSXJDLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCwgR3JvdXBlZEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcm9wRGF0YURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVGb3JtJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb3BEYXRhRGlyZWN0aXZlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybUNvbXBvbmVudDxSID0gYW55PiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhY2sgPSBpbmplY3QoVHJhY2tCeVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXh0ZW5zaW9ucyA9IGluamVjdChFeHRlbnNpb25zU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpZGVudGlmaWVyID0gaW5qZWN0KEVYVEVOU0lPTlNfSURFTlRJRklFUik7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50KVxyXG4gIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZFJlY29yZChyZWNvcmQ6IFIpIHtcclxuICAgIGNvbnN0IHR5cGUgPSAhcmVjb3JkIHx8IEpTT04uc3RyaW5naWZ5KHJlY29yZCkgPT09ICd7fScgPyAnY3JlYXRlJyA6ICdlZGl0JztcclxuICAgIGNvbnN0IHByb3BMaXN0ID0gdGhpcy5leHRlbnNpb25zW2Ake3R5cGV9Rm9ybVByb3BzYF0uZ2V0KHRoaXMuaWRlbnRpZmllcikucHJvcHM7XHJcbiAgICB0aGlzLmdyb3VwZWRQcm9wTGlzdCA9IHRoaXMuY3JlYXRlR3JvdXBlZExpc3QocHJvcExpc3QpO1xyXG4gICAgdGhpcy5yZWNvcmQgPSByZWNvcmQ7XHJcbiAgfVxyXG5cclxuICBleHRyYVByb3BlcnRpZXNLZXkgPSBFWFRSQV9QUk9QRVJUSUVTX0tFWTtcclxuICBncm91cGVkUHJvcExpc3QhOiBHcm91cGVkRm9ybVByb3BMaXN0O1xyXG4gIGdyb3VwZWRQcm9wTGlzdE9mQXJyYXk6IEZvcm1Qcm9wPGFueT5bXVtdO1xyXG4gIHJlY29yZCE6IFI7XHJcblxyXG4gIGdldCBmb3JtKCk6IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuICh0aGlzLmNvbnRhaW5lciA/IHRoaXMuY29udGFpbmVyLmNvbnRyb2wgOiB7IGNvbnRyb2xzOiB7fSB9KSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGV4dHJhUHJvcGVydGllcygpOiBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzLmV4dHJhUHJvcGVydGllcyB8fCB7IGNvbnRyb2xzOiB7fSB9KSBhcyBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlR3JvdXBlZExpc3QocHJvcExpc3Q6IEZvcm1Qcm9wTGlzdDxSPikge1xyXG4gICAgY29uc3QgZ3JvdXBlZEZvcm1Qcm9wTGlzdCA9IG5ldyBHcm91cGVkRm9ybVByb3BMaXN0KCk7XHJcbiAgICBwcm9wTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBncm91cGVkRm9ybVByb3BMaXN0LmFkZEl0ZW0oaXRlbS52YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXBlZEZvcm1Qcm9wTGlzdDtcclxuICB9XHJcblxyXG4gIC8vVE9ETzogUmVhY3RvciB0aGlzIG1ldGhvZFxyXG4gIGlzQW55R3JvdXBNZW1iZXJWaXNpYmxlKGluZGV4OiBudW1iZXIsIGRhdGEpIHtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IHRoaXMuZ3JvdXBlZFByb3BMaXN0O1xyXG4gICAgY29uc3QgZm9ybVByb3BMaXN0ID0gaXRlbXNbaW5kZXhdLmZvcm1Qcm9wTGlzdC50b0FycmF5KCk7XHJcbiAgICByZXR1cm4gZm9ybVByb3BMaXN0LnNvbWUocHJvcCA9PiBwcm9wLnZpc2libGUoZGF0YSkpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGZvcm0pIHtcclxuICBAZm9yIChncm91cGVkUHJvcCBvZiBncm91cGVkUHJvcExpc3QuaXRlbXM7IHRyYWNrIGk7IGxldCBpID0gJGluZGV4OyBsZXQgZmlyc3QgPSAkZmlyc3QpIHtcclxuICAgIDxuZy1jb250YWluZXIgKmFicFByb3BEYXRhPVwibGV0IGRhdGE7IGZyb21MaXN0OiBncm91cGVkUHJvcC5mb3JtUHJvcExpc3Q7IHdpdGhSZWNvcmQ6IHJlY29yZFwiPlxyXG4gICAgICBAaWYgKGlzQW55R3JvdXBNZW1iZXJWaXNpYmxlKGksIGRhdGEpICYmIGdyb3VwZWRQcm9wLmdyb3VwPy5jbGFzc05hbWUpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBbbmdDbGFzc109XCJncm91cGVkUHJvcC5ncm91cD8uY2xhc3NOYW1lXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJncm91cGVkUHJvcC5ncm91cD8ubmFtZSB8fCBncm91cGVkUHJvcC5ncm91cD8uY2xhc3NOYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb3BMaXN0VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBncm91cGVkUHJvcDogZ3JvdXBlZFByb3AsIGRhdGE6IGRhdGEsIGlzRmlyc3RHcm91cDogZmlyc3R9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9wTGlzdFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdyb3VwZWRQcm9wOiBncm91cGVkUHJvcCwgZGF0YTogZGF0YSwgaXNGaXJzdEdyb3VwOiBmaXJzdCB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIH1cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlIGxldC1ncm91cGVkUHJvcD1cImdyb3VwZWRQcm9wXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWlzRmlyc3RHcm91cD1cImlzRmlyc3RHcm91cFwiICNwcm9wTGlzdFRlbXBsYXRlPlxyXG4gIEBmb3IgKHByb3Agb2YgZ3JvdXBlZFByb3AuZm9ybVByb3BMaXN0OyBsZXQgaW5kZXggPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdDsgdHJhY2sgcHJvcC5uYW1lKSB7XHJcbiAgICBAaWYgKHByb3AudmlzaWJsZShkYXRhKSkge1xyXG4gICAgICBAaWYgKGV4dHJhUHJvcGVydGllcy5jb250cm9sc1twcm9wLm5hbWVdKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJleHRyYVByb3BlcnRpZXNLZXlcIj5cclxuICAgICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3AgW3Byb3BdPVwicHJvcFwiIFtkYXRhXT1cImRhdGFcIiBbY2xhc3NdPVwicHJvcC5jbGFzc05hbWVcIiAvPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAaWYgKGZvcm0uZ2V0KHByb3AubmFtZSkpIHtcclxuICAgICAgICAgIDxhYnAtZXh0ZW5zaWJsZS1mb3JtLXByb3BcclxuICAgICAgICAgICAgW2NsYXNzXT1cInByb3AuY2xhc3NOYW1lXCJcclxuICAgICAgICAgICAgW3Byb3BdPVwicHJvcFwiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgICAgICAgICBbaXNGaXJzdEdyb3VwXT1cImlzRmlyc3RHcm91cFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19","import { Directive, Injector, Input } from '@angular/core';\nimport { ActionData } from '../../models/actions';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_ACTION_TYPE, EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\nimport * as i0 from \"@angular/core\";\n// Fix for https://github.com/angular/angular/issues/23904\n// @dynamic\nexport class AbstractActionsComponent extends ActionData {\n constructor(injector) {\n super();\n this.getInjected = injector.get.bind(injector);\n const extensions = injector.get(ExtensionsService);\n const name = injector.get(EXTENSIONS_IDENTIFIER);\n const type = injector.get(EXTENSIONS_ACTION_TYPE);\n this.actionList = extensions[type].get(name).actions;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: AbstractActionsComponent, isStandalone: true, inputs: { record: \"record\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractActionsComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { record: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQThCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRzlGLDBEQUEwRDtBQUMxRCxXQUFXO0FBRVgsTUFBTSxPQUFnQix3QkFFcEIsU0FBUSxVQUE2QjtJQU9yQyxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQXVCLENBQUM7SUFDdkUsQ0FBQzs4R0FoQm1CLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxTQUFTOzZFQVFDLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0b3IsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbkRhdGEsIEFjdGlvbkxpc3QsIEluZmVycmVkQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUsIEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgSW5mZXJyZWREYXRhLCBJbmZlcnJlZFJlY29yZCB9IGZyb20gJy4uLy4uL21vZGVscy90b29sYmFyLWFjdGlvbnMnO1xyXG5cclxuLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMzkwNFxyXG4vLyBAZHluYW1pY1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudDxcclxuICBMIGV4dGVuZHMgQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPEw+PixcclxuPiBleHRlbmRzIEFjdGlvbkRhdGE8SW5mZXJyZWRSZWNvcmQ8TD4+IHtcclxuICByZWFkb25seSBhY3Rpb25MaXN0OiBMO1xyXG5cclxuICByZWFkb25seSBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPEw+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBASW5wdXQoKSByZWNvcmQhOiBJbmZlcnJlZERhdGE8TD5bJ3JlY29yZCddO1xyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5nZXRJbmplY3RlZCA9IGluamVjdG9yLmdldC5iaW5kKGluamVjdG9yKTtcclxuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSBpbmplY3Rvci5nZXQoRXh0ZW5zaW9uc1NlcnZpY2UpO1xyXG4gICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG4gICAgY29uc3QgdHlwZSA9IGluamVjdG9yLmdldChFWFRFTlNJT05TX0FDVElPTl9UWVBFKTtcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbdHlwZV0uZ2V0KG5hbWUpLmFjdGlvbnMgYXMgdW5rbm93biBhcyBMO1xyXG4gIH1cclxufVxyXG4iXX0=","import { ChangeDetectionStrategy, Component, Injector, Input, } from '@angular/core';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\nimport { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { LocalizationModule, PermissionDirective } from '@abp/ng.core';\nimport { EllipsisDirective } from '@abp/ng.theme.shared';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ng-bootstrap/ng-bootstrap\";\nimport * as i2 from \"@abp/ng.core\";\nexport class GridActionsComponent extends AbstractActionsComponent {\n constructor(injector) {\n super(injector);\n this.icon = 'fa fa-cog';\n this.text = '';\n this.trackByFn = (_, item) => item.text;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: GridActionsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: GridActionsComponent, isStandalone: true, selector: \"abp-grid-actions\", inputs: { icon: \"icon\", index: \"index\", text: \"text\" }, providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ], exportAs: [\"abpGridActions\"], usesInheritance: true, ngImport: i0, template: \"@if (actionList.length > 1) {\\r\\n <div ngbDropdown container=\\\"body\\\" class=\\\"d-inline-block\\\">\\r\\n <button\\r\\n class=\\\"btn btn-primary btn-sm dropdown-toggle\\\"\\r\\n data-toggle=\\\"dropdown\\\"\\r\\n aria-haspopup=\\\"true\\\"\\r\\n ngbDropdownToggle\\r\\n >\\r\\n <i [ngClass]=\\\"icon\\\" [class.me-1]=\\\"icon\\\"></i>{{ text | abpLocalization }}\\r\\n </button>\\r\\n <div ngbDropdownMenu>\\r\\n @for (action of actionList; track action.text) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"dropDownBtnItemTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: action }\\\"\\r\\n >\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n </div>\\r\\n}\\r\\n\\r\\n@if (actionList.length === 1) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"btnTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: actionList.get(0).value }\\\"\\r\\n ></ng-container>\\r\\n}\\r\\n\\r\\n<ng-template #dropDownBtnItemTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n <button\\r\\n ngbDropdownItem\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #buttonContentTmp let-action>\\r\\n <i [ngClass]=\\\"action.icon\\\" [class.me-1]=\\\"action.icon && !action.showOnlyIcon\\\"></i>\\r\\n @if (!action.showOnlyIcon) {\\r\\n @if (action.icon) {\\r\\n <span>{{ action.text | abpLocalization }}</span>\\r\\n } @else {\\r\\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #btnTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n @if (action.tooltip) {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n [ngbTooltip]=\\\"action.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"action.tooltip.placement || 'auto'\\\"\\r\\n triggers=\\\"hover\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n } @else {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: NgbDropdownModule }, { kind: \"directive\", type: i1.NgbDropdown, selector: \"[ngbDropdown]\", inputs: [\"autoClose\", \"dropdownClass\", \"open\", \"placement\", \"popperOptions\", \"container\", \"display\"], outputs: [\"openChange\"], exportAs: [\"ngbDropdown\"] }, { kind: \"directive\", type: i1.NgbDropdownToggle, selector: \"[ngbDropdownToggle]\" }, { kind: \"directive\", type: i1.NgbDropdownMenu, selector: \"[ngbDropdownMenu]\" }, { kind: \"directive\", type: i1.NgbDropdownItem, selector: \"[ngbDropdownItem]\", inputs: [\"tabindex\", \"disabled\"] }, { kind: \"directive\", type: i1.NgbDropdownButtonItem, selector: \"button[ngbDropdownItem]\" }, { kind: \"directive\", type: EllipsisDirective, selector: \"[abpEllipsis]\", inputs: [\"abpEllipsis\", \"title\", \"abpEllipsisEnabled\"] }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: LocalizationModule }, { kind: \"pipe\", type: i2.LocalizationPipe, name: \"abpLocalization\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: NgbTooltipModule }, { kind: \"directive\", type: i1.NgbTooltip, selector: \"[ngbTooltip]\", inputs: [\"animation\", \"autoClose\", \"placement\", \"popperOptions\", \"triggers\", \"positionTarget\", \"container\", \"disableTooltip\", \"tooltipClass\", \"tooltipContext\", \"openDelay\", \"closeDelay\", \"ngbTooltip\"], outputs: [\"shown\", \"hidden\"], exportAs: [\"ngbTooltip\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: GridActionsComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpGridActions', imports: [\n NgbDropdownModule,\n EllipsisDirective,\n PermissionDirective,\n NgClass,\n LocalizationModule,\n NgTemplateOutlet,\n NgbTooltipModule,\n ], selector: 'abp-grid-actions', providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (actionList.length > 1) {\\r\\n <div ngbDropdown container=\\\"body\\\" class=\\\"d-inline-block\\\">\\r\\n <button\\r\\n class=\\\"btn btn-primary btn-sm dropdown-toggle\\\"\\r\\n data-toggle=\\\"dropdown\\\"\\r\\n aria-haspopup=\\\"true\\\"\\r\\n ngbDropdownToggle\\r\\n >\\r\\n <i [ngClass]=\\\"icon\\\" [class.me-1]=\\\"icon\\\"></i>{{ text | abpLocalization }}\\r\\n </button>\\r\\n <div ngbDropdownMenu>\\r\\n @for (action of actionList; track action.text) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"dropDownBtnItemTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: action }\\\"\\r\\n >\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n </div>\\r\\n}\\r\\n\\r\\n@if (actionList.length === 1) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"btnTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: actionList.get(0).value }\\\"\\r\\n ></ng-container>\\r\\n}\\r\\n\\r\\n<ng-template #dropDownBtnItemTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n <button\\r\\n ngbDropdownItem\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #buttonContentTmp let-action>\\r\\n <i [ngClass]=\\\"action.icon\\\" [class.me-1]=\\\"action.icon && !action.showOnlyIcon\\\"></i>\\r\\n @if (!action.showOnlyIcon) {\\r\\n @if (action.icon) {\\r\\n <span>{{ action.text | abpLocalization }}</span>\\r\\n } @else {\\r\\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #btnTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n @if (action.tooltip) {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n [ngbTooltip]=\\\"action.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"action.tooltip.placement || 'auto'\\\"\\r\\n triggers=\\\"hover\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n } @else {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\" }]\n }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { icon: [{\n type: Input\n }], index: [{\n type: Input\n }], text: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBdUI1RCxNQUFNLE9BQU8sb0JBQThCLFNBQVEsd0JBQTZDO0lBUzlGLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBVFQsU0FBSSxHQUFHLFdBQVcsQ0FBQztRQUluQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsY0FBUyxHQUFxQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFJOUUsQ0FBQzs4R0FYVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1SEFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixRQUFRLEVBQUUsZUFBZTthQUMxQjtTQUNGLCtFQ2pDSCw0ekZBd0ZBLDJDRHRFSSxpQkFBaUIsbW5CQUNqQixpQkFBaUIsa0hBQ2pCLG1CQUFtQiwwSEFDbkIsT0FBTyxtRkFDUCxrQkFBa0IscUdBQ2xCLGdCQUFnQixtSkFDaEIsZ0JBQWdCOzsyRkFZUCxvQkFBb0I7a0JBckJoQyxTQUFTOytCQUNFLGdCQUFnQixXQUNqQjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7cUJBQ2pCLFlBQ1Msa0JBQWtCLGFBRWpCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxlQUFlO3lCQUMxQjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs2RUFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUVZLEtBQUs7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb24sIEVudGl0eUFjdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0FDVElPTl9UWVBFIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1hY3Rpb25zL2Fic3RyYWN0LWFjdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUsIE5nYlRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSwgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEVsbGlwc2lzRGlyZWN0aXZlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwR3JpZEFjdGlvbnMnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxyXG4gIF0sXHJcbiAgc2VsZWN0b3I6ICdhYnAtZ3JpZC1hY3Rpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19BQ1RJT05fVFlQRSxcclxuICAgICAgdXNlVmFsdWU6ICdlbnRpdHlBY3Rpb25zJyxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRBY3Rpb25zQ29tcG9uZW50PFIgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50PEVudGl0eUFjdGlvbkxpc3Q8Uj4+IHtcclxuICBASW5wdXQoKSBpY29uID0gJ2ZhIGZhLWNvZyc7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5IGluZGV4PzogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSB0ZXh0ID0gJyc7XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eUFjdGlvbjxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS50ZXh0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChhY3Rpb25MaXN0Lmxlbmd0aCA+IDEpIHtcclxuICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgPlxyXG4gICAgICA8aSBbbmdDbGFzc109XCJpY29uXCIgW2NsYXNzLm1lLTFdPVwiaWNvblwiPjwvaT57eyB0ZXh0IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9uTGlzdDsgdHJhY2sgYWN0aW9uLnRleHQpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkcm9wRG93bkJ0bkl0ZW1UbXBcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBhY3Rpb24gfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG5cclxuQGlmIChhY3Rpb25MaXN0Lmxlbmd0aCA9PT0gMSkge1xyXG4gIDxuZy1jb250YWluZXJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ0blRtcFwiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGFjdGlvbkxpc3QuZ2V0KDApLnZhbHVlIH1cIlxyXG4gID48L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNkcm9wRG93bkJ0bkl0ZW1UbXAgbGV0LWFjdGlvbj5cclxuICBAaWYgKGFjdGlvbi52aXNpYmxlKGRhdGEpKSB7XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAqYWJwUGVybWlzc2lvbj1cImFjdGlvbi5wZXJtaXNzaW9uOyBydW5DaGFuZ2VEZXRlY3Rpb246IGZhbHNlXCJcclxuICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uQ29udGVudFRtcDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGFjdGlvbiB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50VG1wIGxldC1hY3Rpb24+XHJcbiAgPGkgW25nQ2xhc3NdPVwiYWN0aW9uLmljb25cIiBbY2xhc3MubWUtMV09XCJhY3Rpb24uaWNvbiAmJiAhYWN0aW9uLnNob3dPbmx5SWNvblwiPjwvaT5cclxuICBAaWYgKCFhY3Rpb24uc2hvd09ubHlJY29uKSB7XHJcbiAgICBAaWYgKGFjdGlvbi5pY29uKSB7XHJcbiAgICAgIDxzcGFuPnt7IGFjdGlvbi50ZXh0IHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxkaXYgYWJwRWxsaXBzaXM+e3sgYWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L2Rpdj5cclxuICAgIH1cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J0blRtcCBsZXQtYWN0aW9uPlxyXG4gIEBpZiAoYWN0aW9uLnZpc2libGUoZGF0YSkpIHtcclxuICAgIEBpZiAoYWN0aW9uLnRvb2x0aXApIHtcclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmJ0bkNsYXNzXCJcclxuICAgICAgICBbc3R5bGVdPVwiYWN0aW9uLmJ0blN0eWxlXCJcclxuICAgICAgICBbbmdiVG9vbHRpcF09XCJhY3Rpb24udG9vbHRpcC50ZXh0IHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICBbcGxhY2VtZW50XT1cImFjdGlvbi50b29sdGlwLnBsYWNlbWVudCB8fCAnYXV0bydcIlxyXG4gICAgICAgIHRyaWdnZXJzPVwiaG92ZXJcIlxyXG4gICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Db250ZW50VG1wOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aW9uIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbY2xhc3NdPVwiYWN0aW9uLmJ0bkNsYXNzXCJcclxuICAgICAgICBbc3R5bGVdPVwiYWN0aW9uLmJ0blN0eWxlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uQ29udGVudFRtcDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGFjdGlvbiB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, signal, TemplateRef, } from '@angular/core';\nimport { AsyncPipe, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { filter, map } from 'rxjs';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxDatatableModule, SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfigStateService, ListService, LocalizationModule, PermissionDirective, PermissionService, TimezoneService, UtcToLocalPipe, } from '@abp/ng.core';\nimport { AbpVisibleDirective, NgxDatatableDefaultDirective, NgxDatatableListDirective, } from '@abp/ng.theme.shared';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { ENTITY_PROP_TYPE_CLASSES, EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM, ROW_RECORD, } from '../../tokens/extensions.token';\nimport { GridActionsComponent } from '../grid-actions/grid-actions.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@swimlane/ngx-datatable\";\nimport * as i2 from \"@abp/ng.core\";\nconst DEFAULT_ACTIONS_COLUMN_WIDTH = 150;\nexport class ExtensibleTableComponent {\n #injector;\n set actionsText(value) {\n this._actionsText = value;\n }\n get actionsText() {\n return this._actionsText ?? (this.actionList.length >= 1 ? 'AbpUi::Actions' : '');\n }\n set actionsColumnWidth(width) {\n this._actionsColumnWidth.set(width ? Number(width) : undefined);\n }\n set selectionType(value) {\n this._selectionType = typeof value === 'string' ? SelectionType[value] : value;\n }\n constructor() {\n this.#injector = inject(Injector);\n this.getInjected = this.#injector.get.bind(this.#injector);\n this.cdr = inject(ChangeDetectorRef);\n this.locale = inject(LOCALE_ID);\n this.config = inject(ConfigStateService);\n this.timeZoneService = inject(TimezoneService);\n this.entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);\n this.permissionService = inject(PermissionService);\n this.tableActivate = new EventEmitter();\n this.selectable = false;\n this._selectionType = SelectionType.multiClick;\n this.selected = [];\n this.selectionChange = new EventEmitter();\n this.trackByFn = (_, item) => item.name;\n // Signal for actions column width\n this._actionsColumnWidth = signal(DEFAULT_ACTIONS_COLUMN_WIDTH);\n this.columnWidths = computed(() => {\n return this.propList.toArray().map(prop => prop.columnWidth);\n });\n const extensions = this.#injector.get(ExtensionsService);\n const name = this.#injector.get(EXTENSIONS_IDENTIFIER);\n this.propList = extensions.entityProps.get(name).props;\n this.actionList = extensions['entityActions'].get(name)\n .actions;\n this.hasAtLeastOnePermittedAction =\n this.permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;\n }\n getIcon(value) {\n return value\n ? '<div class=\"text-success\"><i class=\"fa fa-check\" aria-hidden=\"true\"></i></div>'\n : '<div class=\"text-danger\"><i class=\"fa fa-times\" aria-hidden=\"true\"></i></div>';\n }\n getEnum(rowValue, list) {\n if (!list || list.length < 1)\n return rowValue;\n const { key } = list.find(({ value }) => value === rowValue) || {};\n return key;\n }\n getContent(prop, data) {\n return prop.valueResolver(data).pipe(map(value => {\n switch (prop.type) {\n case \"boolean\" /* ePropType.Boolean */:\n return this.getIcon(value);\n case \"enum\" /* ePropType.Enum */:\n return this.getEnum(value, prop.enumList || []);\n default:\n return value;\n // More types can be handled in the future\n }\n }));\n }\n ngOnChanges({ data }) {\n if (!data?.currentValue)\n return;\n if (data.currentValue.length < 1) {\n this.list.totalCount = this.recordsTotal;\n }\n this.data = data.currentValue.map((record, index) => {\n this.propList.forEach(prop => {\n const propData = { getInjected: this.getInjected, record, index };\n const value = this.getContent(prop.value, propData);\n const propKey = `_${prop.value.name}`;\n record[propKey] = {\n visible: prop.value.visible(propData),\n value,\n };\n if (prop.value.component) {\n record[propKey].injector = Injector.create({\n providers: [\n {\n provide: PROP_DATA_STREAM,\n useValue: value,\n },\n {\n provide: ROW_RECORD,\n useValue: record,\n },\n ],\n parent: this.#injector,\n });\n record[propKey].component = prop.value.component;\n }\n });\n return record;\n });\n }\n isVisibleActions(rowData) {\n const actions = this.actionList.toArray();\n const visibleActions = actions.filter(action => {\n const { visible, permission } = action;\n let isVisible = true;\n let hasPermission = true;\n if (visible) {\n isVisible = visible({ record: rowData, getInjected: this.getInjected });\n }\n if (permission) {\n hasPermission = this.permissionService.getGrantedPolicy(permission);\n }\n return isVisible && hasPermission;\n });\n return visibleActions.length > 0;\n }\n onSelect({ selected }) {\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n this.selectionChange.emit(selected);\n }\n ngAfterViewInit() {\n this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => {\n this.data = [];\n this.cdr.markForCheck();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleTableComponent, isStandalone: true, selector: \"abp-extensible-table\", inputs: { actionsText: \"actionsText\", data: \"data\", list: \"list\", recordsTotal: \"recordsTotal\", actionsColumnWidth: \"actionsColumnWidth\", actionsTemplate: \"actionsTemplate\", selectable: \"selectable\", selectionType: \"selectionType\", selected: \"selected\" }, outputs: { tableActivate: \"tableActivate\", selectionChange: \"selectionChange\" }, 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 [selectionType]=\\\"selectable ? _selectionType : undefined\\\"\\r\\n (activate)=\\\"tableActivate.emit($event)\\\"\\r\\n (select)=\\\"onSelect($event)\\\"\\r\\n [selected]=\\\"selected\\\"\\r\\n>\\r\\n@if(selectable) {\\r\\n <ngx-datatable-column [width]=\\\"50\\\" [sortable]=\\\"false\\\" [canAutoResize]=\\\"false\\\" [draggable]=\\\"false\\\" [resizeable]=\\\"false\\\">\\r\\n \\r\\n <ng-template ngx-datatable-header-template let-value=\\\"value\\\" let-allRowsSelected=\\\"allRowsSelected\\\"\\r\\n let-selectFn=\\\"selectFn\\\">\\r\\n @if (_selectionType !== 'single') {\\r\\n <div class=\\\"form-check\\\">\\r\\n <input class=\\\"form-check-input table-check\\\" type=\\\"checkbox\\\" [checked]=\\\"allRowsSelected\\\"\\r\\n (change)=\\\"selectFn(!allRowsSelected)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n \\r\\n <ng-template ngx-datatable-cell-template let-value=\\\"value\\\" let-row=\\\"row\\\" let-isSelected=\\\"isSelected\\\"\\r\\n let-onCheckboxChangeFn=\\\"onCheckboxChangeFn\\\">\\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 class=\\\"form-check-input\\\" type=\\\"radio\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\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 class=\\\"form-check-input\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n \\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 <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i] ?? 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\\\">\\r\\n @if (prop.tooltip) {\\r\\n <span\\r\\n [ngbTooltip]=\\\"prop.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"prop.tooltip.placement || 'auto'\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n {{ column.name }} <i class=\\\"fa fa-info-circle\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </span>\\r\\n } @else {\\r\\n {{ column.name }}\\r\\n }\\r\\n </ng-template>\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"index\\\" ngx-datatable-cell-template>\\r\\n <ng-container *abpPermission=\\\"prop.permission; runChangeDetection: false\\\">\\r\\n <ng-container *abpVisible=\\\"row['_' + prop.name]?.visible\\\">\\r\\n @if (!row['_' + prop.name].component) {\\r\\n @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) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n } @else {\\r\\n <div\\r\\n [innerHTML]=\\\"\\r\\n !prop.isExtra\\r\\n ? (row['_' + prop.name]?.value | async)\\r\\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n }\\r\\n } @else {\\r\\n <ng-container\\r\\n *ngComponentOutlet=\\\"\\r\\n row['_' + prop.name].component;\\r\\n injector: row['_' + prop.name].injector\\r\\n \\\"\\r\\n ></ng-container>\\r\\n }\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n</ngx-datatable>\\r\\n\", dependencies: [{ kind: \"directive\", type: AbpVisibleDirective, selector: \"[abpVisible]\", inputs: [\"abpVisible\"] }, { kind: \"ngmodule\", type: NgxDatatableModule }, { kind: \"component\", type: i1.DatatableComponent, selector: \"ngx-datatable\", inputs: [\"targetMarkerTemplate\", \"rows\", \"groupRowsBy\", \"groupedRows\", \"columns\", \"selected\", \"scrollbarV\", \"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.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.DataTableColumnHeaderDirective, selector: \"[ngx-datatable-header-template]\" }, { kind: \"directive\", type: i1.DataTableColumnCellDirective, selector: \"[ngx-datatable-cell-template]\" }, { kind: \"component\", type: GridActionsComponent, selector: \"abp-grid-actions\", inputs: [\"icon\", \"index\", \"text\"], exportAs: [\"abpGridActions\"] }, { kind: \"directive\", type: NgbTooltip, selector: \"[ngbTooltip]\", inputs: [\"animation\", \"autoClose\", \"placement\", \"popperOptions\", \"triggers\", \"positionTarget\", \"container\", \"disableTooltip\", \"tooltipClass\", \"tooltipContext\", \"openDelay\", \"closeDelay\", \"ngbTooltip\"], outputs: [\"shown\", \"hidden\"], exportAs: [\"ngbTooltip\"] }, { kind: \"directive\", type: NgxDatatableDefaultDirective, selector: \"ngx-datatable[default]\", inputs: [\"class\"], exportAs: [\"ngxDatatableDefault\"] }, { kind: \"directive\", type: NgxDatatableListDirective, selector: \"ngx-datatable[list]\", inputs: [\"list\"], exportAs: [\"ngxDatatableList\"] }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"ngmodule\", type: LocalizationModule }, { kind: \"pipe\", type: i2.LocalizationPipe, name: \"abpLocalization\" }, { kind: \"pipe\", type: UtcToLocalPipe, name: \"abpUtcToLocal\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleTableComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpExtensibleTable', selector: 'abp-extensible-table', imports: [\n AbpVisibleDirective,\n NgxDatatableModule,\n GridActionsComponent,\n NgbTooltip,\n NgxDatatableDefaultDirective,\n NgxDatatableListDirective,\n PermissionDirective,\n LocalizationModule,\n UtcToLocalPipe,\n AsyncPipe,\n NgTemplateOutlet,\n NgComponentOutlet,\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ngx-datatable\\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>\\r\\n@if(selectable) {\\r\\n <ngx-datatable-column [width]=\\\"50\\\" [sortable]=\\\"false\\\" [canAutoResize]=\\\"false\\\" [draggable]=\\\"false\\\" [resizeable]=\\\"false\\\">\\r\\n \\r\\n <ng-template ngx-datatable-header-template let-value=\\\"value\\\" let-allRowsSelected=\\\"allRowsSelected\\\"\\r\\n let-selectFn=\\\"selectFn\\\">\\r\\n @if (_selectionType !== 'single') {\\r\\n <div class=\\\"form-check\\\">\\r\\n <input class=\\\"form-check-input table-check\\\" type=\\\"checkbox\\\" [checked]=\\\"allRowsSelected\\\"\\r\\n (change)=\\\"selectFn(!allRowsSelected)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n \\r\\n <ng-template ngx-datatable-cell-template let-value=\\\"value\\\" let-row=\\\"row\\\" let-isSelected=\\\"isSelected\\\"\\r\\n let-onCheckboxChangeFn=\\\"onCheckboxChangeFn\\\">\\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 class=\\\"form-check-input\\\" type=\\\"radio\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\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 class=\\\"form-check-input\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n \\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 <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i] ?? 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\\\">\\r\\n @if (prop.tooltip) {\\r\\n <span\\r\\n [ngbTooltip]=\\\"prop.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"prop.tooltip.placement || 'auto'\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n {{ column.name }} <i class=\\\"fa fa-info-circle\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </span>\\r\\n } @else {\\r\\n {{ column.name }}\\r\\n }\\r\\n </ng-template>\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"index\\\" ngx-datatable-cell-template>\\r\\n <ng-container *abpPermission=\\\"prop.permission; runChangeDetection: false\\\">\\r\\n <ng-container *abpVisible=\\\"row['_' + prop.name]?.visible\\\">\\r\\n @if (!row['_' + prop.name].component) {\\r\\n @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) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n } @else {\\r\\n <div\\r\\n [innerHTML]=\\\"\\r\\n !prop.isExtra\\r\\n ? (row['_' + prop.name]?.value | async)\\r\\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n }\\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\" }]\n }], ctorParameters: () => [], propDecorators: { actionsText: [{\n type: Input\n }], data: [{\n type: Input\n }], list: [{\n type: Input\n }], recordsTotal: [{\n type: Input\n }], actionsColumnWidth: [{\n type: Input\n }], actionsTemplate: [{\n type: Input\n }], tableActivate: [{\n type: Output\n }], selectable: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], selected: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUNOLE1BQU0sRUFFTixXQUFXLEdBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpGLE9BQU8sRUFBYyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxzQkFB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d0JBQ2QsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjtxQkFDbEIsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07d0RBYzNDLFdBQVc7c0JBRGQsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRU8sa0JBQWtCO3NCQUE5QixLQUFLO2dCQUlHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFRyYWNrQnlGdW5jdGlvbixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSwgU2VsZWN0aW9uVHlwZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBMaXN0U2VydmljZSxcclxuICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICBQZXJtaXNzaW9uU2VydmljZSxcclxuICBUaW1lem9uZVNlcnZpY2UsXHJcbiAgVXRjVG9Mb2NhbFBpcGUsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUsXHJcbiAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxuICBST1dfUkVDT1JELFxyXG59IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgR3JpZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBERUZBVUxUX0FDVElPTlNfQ09MVU1OX1dJRFRIID0gMTUwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlVGFibGUnLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFicFZpc2libGVEaXJlY3RpdmUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIE5nYlRvb2x0aXAsXHJcbiAgICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBVdGNUb0xvY2FsUGlwZSxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudDxSID0gYW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICByZWFkb25seSBnZXRJbmplY3RlZCA9IHRoaXMuI2luamVjdG9yLmdldC5iaW5kKHRoaXMuI2luamVjdG9yKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lWm9uZVNlcnZpY2UgPSBpbmplY3QoVGltZXpvbmVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGlvbnNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPj0gMSA/ICdBYnBVaTo6QWN0aW9ucycgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkYXRhITogUltdO1xyXG4gIEBJbnB1dCgpIGxpc3QhOiBMaXN0U2VydmljZTtcclxuICBASW5wdXQoKSByZWNvcmRzVG90YWwhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zQ29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5fYWN0aW9uc0NvbHVtbldpZHRoLnNldCh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHRhYmxlQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvblR5cGUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gU2VsZWN0aW9uVHlwZVt2YWx1ZV0gOiB2YWx1ZTtcclxuICB9XHJcbiAgX3NlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlLm11bHRpQ2xpY2s7XHJcbiAgXHJcbiAgXHJcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgYWN0aW9uTGlzdDogRW50aXR5QWN0aW9uTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xyXG5cclxuICAvLyBTaWduYWwgZm9yIGFjdGlvbnMgY29sdW1uIHdpZHRoXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uc0NvbHVtbldpZHRoID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4oREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcblxyXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRocyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3BMaXN0LnRvQXJyYXkoKS5tYXAocHJvcCA9PiBwcm9wLmNvbHVtbldpZHRoKTtcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgPyAnPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+J1xyXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2Pic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudW0ocm93VmFsdWU6IGFueSwgbGlzdDogQXJyYXk8QUJQLk9wdGlvbjxhbnk+Pikge1xyXG4gICAgaWYgKCFsaXN0IHx8IGxpc3QubGVuZ3RoIDwgMSkgcmV0dXJuIHJvd1ZhbHVlO1xyXG4gICAgY29uc3QgeyBrZXkgfSA9IGxpc3QuZmluZCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSA9PT0gcm93VmFsdWUpIHx8IHt9O1xyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHByb3AudmFsdWVSZXNvbHZlcihkYXRhKS5waXBlKFxyXG4gICAgICBtYXAodmFsdWUgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkVudW06XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW0odmFsdWUsIHByb3AuZW51bUxpc3QgfHwgW10pO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgLy8gTW9yZSB0eXBlcyBjYW4gYmUgaGFuZGxlZCBpbiB0aGUgZnV0dXJlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyh7IGRhdGEgfTogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKCFkYXRhPy5jdXJyZW50VmFsdWUpIHJldHVybjtcclxuXHJcbiAgICBpZiAoZGF0YS5jdXJyZW50VmFsdWUubGVuZ3RoIDwgMSkge1xyXG4gICAgICB0aGlzLmxpc3QudG90YWxDb3VudCA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKHByb3AgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByb3BEYXRhID0geyBnZXRJbmplY3RlZDogdGhpcy5nZXRJbmplY3RlZCwgcmVjb3JkLCBpbmRleCB9IGFzIGFueTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0Q29udGVudChwcm9wLnZhbHVlLCBwcm9wRGF0YSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3BLZXkgPSBgXyR7cHJvcC52YWx1ZS5uYW1lfWA7XHJcbiAgICAgICAgcmVjb3JkW3Byb3BLZXldID0ge1xyXG4gICAgICAgICAgdmlzaWJsZTogcHJvcC52YWx1ZS52aXNpYmxlKHByb3BEYXRhKSxcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHByb3AudmFsdWUuY29tcG9uZW50KSB7XHJcbiAgICAgICAgICByZWNvcmRbcHJvcEtleV0uaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBQUk9QX0RBVEFfU1RSRUFNLFxyXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHZhbHVlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUk9XX1JFQ09SRCxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLiNpbmplY3RvcixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlQWN0aW9ucyhyb3dEYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpO1xyXG4gICAgY29uc3QgdmlzaWJsZUFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4ge1xyXG4gICAgICBjb25zdCB7IHZpc2libGUsIHBlcm1pc3Npb24gfSA9IGFjdGlvbjtcclxuXHJcbiAgICAgIGxldCBpc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IHZpc2libGUoeyByZWNvcmQ6IHJvd0RhdGEsIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICAgIGhhc1Blcm1pc3Npb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocGVybWlzc2lvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpc1Zpc2libGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoeyBzZWxlY3RlZCB9KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3Q/LnJlcXVlc3RTdGF0dXMkPy5waXBlKGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSAnbG9hZGluZycpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5neC1kYXRhdGFibGVcclxuICBkZWZhdWx0XHJcbiAgW3Jvd3NdPVwiZGF0YVwiXHJcbiAgW2NvdW50XT1cInJlY29yZHNUb3RhbFwiXHJcbiAgW2xpc3RdPVwibGlzdFwiXHJcbiAgW3NlbGVjdGlvblR5cGVdPVwic2VsZWN0YWJsZSA/IF9zZWxlY3Rpb25UeXBlIDogdW5kZWZpbmVkXCJcclxuICAoYWN0aXZhdGUpPVwidGFibGVBY3RpdmF0ZS5lbWl0KCRldmVudClcIlxyXG4gIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuPlxyXG5AaWYoc2VsZWN0YWJsZSkge1xyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiNTBcIiBbc29ydGFibGVdPVwiZmFsc2VcIiBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXplYWJsZV09XCJmYWxzZVwiPlxyXG4gIFxyXG4gICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWFsbFJvd3NTZWxlY3RlZD1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCI+XHJcbiAgICAgIEBpZiAoX3NlbGVjdGlvblR5cGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCB0YWJsZS1jaGVja1wiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LXJvdz1cInJvd1wiIGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIj5cclxuICAgICAgQGlmKF9zZWxlY3Rpb25UeXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKF9zZWxlY3Rpb25UeXBlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAaWYgKGFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbikpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFttYXhXaWR0aF09XCJfYWN0aW9uc0NvbHVtbldpZHRoKCkgPz8gdW5kZWZpbmVkXCJcclxuICAgICAgW3dpZHRoXT1cIl9hY3Rpb25zQ29sdW1uV2lkdGgoKSA/PyAyMDBcIlxyXG4gICAgICBbY2FuQXV0b1Jlc2l6ZV09XCIhX2FjdGlvbnNDb2x1bW5XaWR0aCgpXCJcclxuICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlIHx8IGdyaWRBY3Rpb25zOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICAgIEBpZiAoaXNWaXNpYmxlQWN0aW9ucyhyb3cpKSB7XHJcbiAgICAgICAgICAgIDxhYnAtZ3JpZC1hY3Rpb25zIFtpbmRleF09XCJpXCIgW3JlY29yZF09XCJyb3dcIiB0ZXh0PVwiQWJwVWk6OkFjdGlvbnNcIj48L2FicC1ncmlkLWFjdGlvbnM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG4gIEBmb3IgKHByb3Agb2YgcHJvcExpc3Q7IHRyYWNrIHByb3AubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2ldID8/IDIwMFwiXHJcbiAgICAgIFtjYW5BdXRvUmVzaXplXT1cIiFjb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICBbbmFtZV09XCIocHJvcC5pc0V4dHJhID8gJzo6JyArIHByb3AuZGlzcGxheU5hbWUgOiBwcm9wLmRpc3BsYXlOYW1lKSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICAgICAgICBAaWYgKHByb3AudG9vbHRpcCkge1xyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbcGxhY2VtZW50XT1cInByb3AudG9vbHRpcC5wbGFjZW1lbnQgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19IDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICB7eyBjb2x1bW4ubmFtZSB9fVxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKmFicFBlcm1pc3Npb249XCJwcm9wLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmFicFZpc2libGU9XCJyb3dbJ18nICsgcHJvcC5uYW1lXT8udmlzaWJsZVwiPlxyXG4gICAgICAgICAgICBAaWYgKCFyb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgICBAaWYgKHByb3AudHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBwcm9wLnR5cGUgPT09ICdkYXRlJyB8fCBwcm9wLnR5cGUgPT09ICd0aW1lJykge1xyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxyXG4gICAgICAgICAgICAgICAgICAhcHJvcC5pc0V4dHJhXHJcbiAgICAgICAgICAgICAgICAgICAgPyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMgfCBhYnBVdGNUb0xvY2FsOnByb3AudHlwZSlcclxuICAgICAgICAgICAgICAgICAgICA6ICgnOjonICsgKHJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jIHwgYWJwVXRjVG9Mb2NhbDpwcm9wLnR5cGUpIHwgYWJwTG9jYWxpemF0aW9uKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbih7IGdldEluamVjdGVkOiBnZXRJbmplY3RlZCwgcmVjb3JkOiByb3csIGluZGV4OiBpIH0pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJlbnRpdHlQcm9wVHlwZUNsYXNzZXNbcHJvcC50eXBlXVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5wb2ludGVyXT1cInByb3AuYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcclxuICAgICAgICAgICAgICAgICAgIXByb3AuaXNFeHRyYVxyXG4gICAgICAgICAgICAgICAgICAgID8gKHJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jKVxyXG4gICAgICAgICAgICAgICAgICAgIDogKCc6OicgKyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMpIHwgYWJwTG9jYWxpemF0aW9uKVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICBwcm9wLmFjdGlvbiAmJiBwcm9wLmFjdGlvbih7IGdldEluamVjdGVkOiBnZXRJbmplY3RlZCwgcmVjb3JkOiByb3csIGluZGV4OiBpIH0pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJlbnRpdHlQcm9wVHlwZUNsYXNzZXNbcHJvcC50eXBlXVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5wb2ludGVyXT1cInByb3AuYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICByb3dbJ18nICsgcHJvcC5uYW1lXS5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICAgIGluamVjdG9yOiByb3dbJ18nICsgcHJvcC5uYW1lXS5pbmplY3RvclxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICB9XHJcbjwvbmd4LWRhdGF0YWJsZT5cclxuIl19","import { Pipe } from '@angular/core';\nimport { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/extensions.token';\nimport * as i0 from \"@angular/core\";\nexport class CreateInjectorPipe {\n transform(_, action, context) {\n const get = (token, notFoundValue, options) => {\n const componentData = context.getData();\n const componentDataCallback = (data) => {\n data = data ?? context.getData();\n return action.action(data);\n };\n let extensionData;\n switch (token) {\n case EXTENSIONS_ACTION_DATA:\n extensionData = componentData;\n break;\n case EXTENSIONS_ACTION_CALLBACK:\n extensionData = componentDataCallback;\n break;\n default:\n extensionData = context.getInjected.call(context.injector, token, notFoundValue, options);\n }\n return extensionData;\n };\n return { get };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, isStandalone: true, name: \"createInjector\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'createInjector',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWluamVjdG9yLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9waXBlcy9jcmVhdGUtaW5qZWN0b3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJDLElBQUksRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBS2hHLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsU0FBUyxDQUNkLENBQU0sRUFDTixNQUEyQixFQUMzQixPQUFpQztRQUVqQyxNQUFNLEdBQUcsR0FBRyxDQUNWLEtBQWtDLEVBQ2xDLGFBQWlCLEVBQ2pCLE9BQXVCLEVBQ3ZCLEVBQUU7WUFDRixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLEdBQUcsSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQztZQUNGLElBQUksYUFBYSxDQUFDO1lBQ2xCLFFBQVEsS0FBSyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxzQkFBc0I7b0JBQ3pCLGFBQWEsR0FBRyxhQUFhLENBQUM7b0JBQzlCLE1BQU07Z0JBQ1IsS0FBSywwQkFBMEI7b0JBQzdCLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztvQkFDdEMsTUFBTTtnQkFDUjtvQkFDRSxhQUFhLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlGLENBQUM7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0E5QlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0T3B0aW9ucywgSW5qZWN0b3IsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGFzQ3JlYXRlSW5qZWN0b3JQaXBlLCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX0NBTExCQUNLLCBFWFRFTlNJT05TX0FDVElPTl9EQVRBIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjcmVhdGVJbmplY3RvcicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVJbmplY3RvclBpcGU8Uj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwdWJsaWMgdHJhbnNmb3JtKFxyXG4gICAgXzogYW55LFxyXG4gICAgYWN0aW9uOiBUb29sYmFyQ29tcG9uZW50PFI+LFxyXG4gICAgY29udGV4dDogSGFzQ3JlYXRlSW5qZWN0b3JQaXBlPFI+LFxyXG4gICk6IEluamVjdG9yIHtcclxuICAgIGNvbnN0IGdldCA9IDxUPihcclxuICAgICAgdG9rZW46IFR5cGU8VD4gfCBJbmplY3Rpb25Ub2tlbjxUPixcclxuICAgICAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgICAgIG9wdGlvbnM/OiBJbmplY3RPcHRpb25zLFxyXG4gICAgKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudERhdGEgPSBjb250ZXh0LmdldERhdGEoKTtcclxuICAgICAgY29uc3QgY29tcG9uZW50RGF0YUNhbGxiYWNrID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEgPSBkYXRhID8/IGNvbnRleHQuZ2V0RGF0YSgpO1xyXG4gICAgICAgIHJldHVybiBhY3Rpb24uYWN0aW9uKGRhdGEpO1xyXG4gICAgICB9O1xyXG4gICAgICBsZXQgZXh0ZW5zaW9uRGF0YTtcclxuICAgICAgc3dpdGNoICh0b2tlbikge1xyXG4gICAgICAgIGNhc2UgRVhURU5TSU9OU19BQ1RJT05fREFUQTpcclxuICAgICAgICAgIGV4dGVuc2lvbkRhdGEgPSBjb21wb25lbnREYXRhO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFWFRFTlNJT05TX0FDVElPTl9DQUxMQkFDSzpcclxuICAgICAgICAgIGV4dGVuc2lvbkRhdGEgPSBjb21wb25lbnREYXRhQ2FsbGJhY2s7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgZXh0ZW5zaW9uRGF0YSA9IGNvbnRleHQuZ2V0SW5qZWN0ZWQuY2FsbChjb250ZXh0LmluamVjdG9yLCB0b2tlbiwgbm90Rm91bmRWYWx1ZSwgb3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGV4dGVuc2lvbkRhdGE7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHsgZ2V0IH07XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\nimport { CreateInjectorPipe } from '../../pipes/create-injector.pipe';\nimport { LocalizationModule, PermissionDirective } from '@abp/ng.core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@abp/ng.core\";\nexport class PageToolbarComponent extends AbstractActionsComponent {\n constructor(injector) {\n super(injector);\n this.injector = injector;\n this.defaultBtnClass = 'btn btn-sm btn-primary';\n this.getData = () => this.data;\n this.trackByFn = (_, item) => item.action || item.component;\n }\n asToolbarAction(value) {\n return {\n value: value,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PageToolbarComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: PageToolbarComponent, isStandalone: true, selector: \"abp-page-toolbar\", providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ], exportAs: [\"abpPageToolbar\"], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"row justify-content-end mx-0 gap-2\\\" id=\\\"AbpContentToolbar\\\">\\r\\n @for (action of actionList; track action.component || action.action; let last = $last) {\\r\\n <div class=\\\"col-auto px-0 pt-0\\\" [class.pe-0]=\\\"last\\\">\\r\\n @if (action.visible(data)) {\\r\\n <ng-container *abpPermission=\\\"action.permission; runChangeDetection: false\\\">\\r\\n @if (action.component; as component) {\\r\\n <ng-container\\r\\n *ngComponentOutlet=\\\"component; injector: record | createInjector: action:this\\\"\\r\\n ></ng-container>\\r\\n\\r\\n }@else {\\r\\n @if (asToolbarAction(action).value; as toolbarAction ) {\\r\\n <button\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [ngClass]=\\\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\\\"\\r\\n class=\\\"d-inline-flex align-items-center gap-1\\\"\\r\\n >\\r\\n <i [ngClass]=\\\"toolbarAction?.icon\\\" [class.me-1]=\\\"toolbarAction?.icon\\\"></i>\\r\\n {{ toolbarAction?.text | abpLocalization }}\\r\\n </button>\\r\\n } \\r\\n }\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n }\\r\\n</div>\\r\\n\\r\\n\", dependencies: [{ kind: \"pipe\", type: CreateInjectorPipe, name: \"createInjector\" }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"ngmodule\", type: LocalizationModule }, { kind: \"pipe\", type: i1.LocalizationPipe, name: \"abpLocalization\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PageToolbarComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpPageToolbar', selector: 'abp-page-toolbar', imports: [\n CreateInjectorPipe,\n PermissionDirective,\n LocalizationModule,\n NgClass,\n NgComponentOutlet,\n ], providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"row justify-content-end mx-0 gap-2\\\" id=\\\"AbpContentToolbar\\\">\\r\\n @for (action of actionList; track action.component || action.action; let last = $last) {\\r\\n <div class=\\\"col-auto px-0 pt-0\\\" [class.pe-0]=\\\"last\\\">\\r\\n @if (action.visible(data)) {\\r\\n <ng-container *abpPermission=\\\"action.permission; runChangeDetection: false\\\">\\r\\n @if (action.component; as component) {\\r\\n <ng-container\\r\\n *ngComponentOutlet=\\\"component; injector: record | createInjector: action:this\\\"\\r\\n ></ng-container>\\r\\n\\r\\n }@else {\\r\\n @if (asToolbarAction(action).value; as toolbarAction ) {\\r\\n <button\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [ngClass]=\\\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\\\"\\r\\n class=\\\"d-inline-flex align-items-center gap-1\\\"\\r\\n >\\r\\n <i [ngClass]=\\\"toolbarAction?.icon\\\" [class.me-1]=\\\"toolbarAction?.icon\\\"></i>\\r\\n {{ toolbarAction?.text | abpLocalization }}\\r\\n </button>\\r\\n } \\r\\n }\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n }\\r\\n</div>\\r\\n\\r\\n\" }]\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS10b29sYmFyL3BhZ2UtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtdG9vbGJhci9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBUTlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXFCN0QsTUFBTSxPQUFPLG9CQUNYLFNBQVEsd0JBQThDO0lBVXRELFlBQTRCLFFBQWtCO1FBQzVDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFQOUMsb0JBQWUsR0FBRyx3QkFBd0IsQ0FBQztRQUUzQyxZQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQXlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3JFLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUloQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQTJCO1FBQ3pDLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBc0I7U0FDOUIsQ0FBQztJQUNKLENBQUM7OEdBbkJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7U0FDRiwrRUM5QkgsNHBDQTZCQSx1Q0RYSSxrQkFBa0IsdURBQ2xCLG1CQUFtQix5SEFDbkIsa0JBQWtCLHFHQUNsQixPQUFPLG9GQUNQLGlCQUFpQjs7MkZBV1Isb0JBQW9CO2tCQW5CaEMsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEIsa0JBQWtCLFdBQ25CO3dCQUNQLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLE9BQU87d0JBQ1AsaUJBQWlCO3FCQUNsQixhQUVVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7eUJBQzNCO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIFRyYWNrQnlGdW5jdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEhhc0NyZWF0ZUluamVjdG9yUGlwZSxcclxuICBUb29sYmFyQWN0aW9uLFxyXG4gIFRvb2xiYXJBY3Rpb25EZWZhdWx0LFxyXG4gIFRvb2xiYXJBY3Rpb25MaXN0LFxyXG4gIFRvb2xiYXJDb21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVJbmplY3RvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jcmVhdGUtaW5qZWN0b3IucGlwZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSwgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwUGFnZVRvb2xiYXInLFxyXG4gIHNlbGVjdG9yOiAnYWJwLXBhZ2UtdG9vbGJhcicsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0FDVElPTl9UWVBFLFxyXG4gICAgICB1c2VWYWx1ZTogJ3Rvb2xiYXJBY3Rpb25zJyxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VUb29sYmFyQ29tcG9uZW50PFIgPSBhbnk+XHJcbiAgZXh0ZW5kcyBBYnN0cmFjdEFjdGlvbnNDb21wb25lbnQ8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+XHJcbiAgaW1wbGVtZW50cyBIYXNDcmVhdGVJbmplY3RvclBpcGU8Uj5cclxue1xyXG4gIGRlZmF1bHRCdG5DbGFzcyA9ICdidG4gYnRuLXNtIGJ0bi1wcmltYXJ5JztcclxuXHJcbiAgZ2V0RGF0YSA9ICgpID0+IHRoaXMuZGF0YTtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248VG9vbGJhckNvbXBvbmVudDxSPj4gPSAoXywgaXRlbSkgPT5cclxuICAgIGl0ZW0uYWN0aW9uIHx8IGl0ZW0uY29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBhc1Rvb2xiYXJBY3Rpb24odmFsdWU6IFRvb2xiYXJBY3Rpb25EZWZhdWx0KTogeyB2YWx1ZTogVG9vbGJhckFjdGlvbiB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSBhcyBUb29sYmFyQWN0aW9uLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIG14LTAgZ2FwLTJcIiBpZD1cIkFicENvbnRlbnRUb29sYmFyXCI+XHJcbiAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbkxpc3Q7IHRyYWNrIGFjdGlvbi5jb21wb25lbnQgfHwgYWN0aW9uLmFjdGlvbjsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBweC0wIHB0LTBcIiBbY2xhc3MucGUtMF09XCJsYXN0XCI+XHJcbiAgICBAaWYgKGFjdGlvbi52aXNpYmxlKGRhdGEpKSB7XHJcbiAgICA8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICAgICAgQGlmIChhY3Rpb24uY29tcG9uZW50OyBhcyBjb21wb25lbnQpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudDsgaW5qZWN0b3I6IHJlY29yZCB8IGNyZWF0ZUluamVjdG9yOiBhY3Rpb246dGhpc1wiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgIEBpZiAoYXNUb29sYmFyQWN0aW9uKGFjdGlvbikudmFsdWU7IGFzIHRvb2xiYXJBY3Rpb24gKSB7XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKGRhdGEpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInRvb2xiYXJBY3Rpb24/LmJ0bkNsYXNzID8gdG9vbGJhckFjdGlvbj8uYnRuQ2xhc3MgOiBkZWZhdWx0QnRuQ2xhc3NcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwidG9vbGJhckFjdGlvbj8uaWNvblwiIFtjbGFzcy5tZS0xXT1cInRvb2xiYXJBY3Rpb24/Lmljb25cIj48L2k+XHJcbiAgICAgICAgICAgIHt7IHRvb2xiYXJBY3Rpb24/LnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH0gXHJcbiAgICAgIH1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG4iXX0=","import { ControlContainer, FormGroupDirective } from \"@angular/forms\";\nexport const EXTENSIBLE_FORM_VIEW_PROVIDER = { provide: ControlContainer, useExisting: FormGroupDirective };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXZpZXctcHJvdmlkZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi90b2tlbnMvZXh0ZW5zaWJsZS1mb3JtLXZpZXctcHJvdmlkZXIudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJQkxFX0ZPUk1fVklFV19QUk9WSURFUiA9IHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9XHJcbiJdfQ==","export function mergeWithDefaultActions(extension, defaultActions, ...contributors) {\n Object.keys(defaultActions).forEach((name) => {\n const actions = extension.get(name);\n actions.clearContributors();\n actions.addContributor((actionList) => actionList.addManyTail(defaultActions[name]));\n contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => actions.addContributor(callback)));\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvYWN0aW9ucy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsU0FBWSxFQUNaLGNBQXlDLEVBQ3pDLEdBQUcsWUFBcUQ7SUFFeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNuRCxNQUFNLE9BQU8sR0FBdUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBZ0QsRUFBRSxFQUFFLENBQzFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXdDLEVBQUUsRUFBRSxDQUM3RSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUNqQyxDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrLCBBY3Rpb25MaXN0LCBBY3Rpb25zRmFjdG9yeSwgSW5mZXJyZWRBY3Rpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2FjdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBFbnRpdHlBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBFbnRpdHlBY3Rpb25EZWZhdWx0cyxcclxuICBFbnRpdHlBY3Rpb25zLFxyXG4gIEVudGl0eUFjdGlvbnNGYWN0b3J5LFxyXG59IGZyb20gJy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgVG9vbGJhckFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIFRvb2xiYXJBY3Rpb25EZWZhdWx0cyxcclxuICBUb29sYmFyQWN0aW9ucyxcclxuICBUb29sYmFyQWN0aW9uc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoRGVmYXVsdEFjdGlvbnM8RiBleHRlbmRzIEFjdGlvbnNGYWN0b3J5PGFueT4+KFxyXG4gIGV4dGVuc2lvbjogRixcclxuICBkZWZhdWx0QWN0aW9uczogSW5mZXJyZWRBY3Rpb25EZWZhdWx0czxGPixcclxuICAuLi5jb250cmlidXRvcnM6IEluZmVycmVkQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8Rj5bXVxyXG4pIHtcclxuICBPYmplY3Qua2V5cyhkZWZhdWx0QWN0aW9ucykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBhY3Rpb25zOiBJbmZlcnJlZEFjdGlvbnM8Rj4gPSBleHRlbnNpb24uZ2V0KG5hbWUpO1xyXG4gICAgYWN0aW9ucy5jbGVhckNvbnRyaWJ1dG9ycygpO1xyXG4gICAgYWN0aW9ucy5hZGRDb250cmlidXRvcigoYWN0aW9uTGlzdDogQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPGFueT4+KSA9PlxyXG4gICAgICBhY3Rpb25MaXN0LmFkZE1hbnlUYWlsKGRlZmF1bHRBY3Rpb25zW25hbWVdKSxcclxuICAgICk7XHJcbiAgICBjb250cmlidXRvcnMuZm9yRWFjaChjb250cmlidXRvciA9PlxyXG4gICAgICAoY29udHJpYnV0b3JbbmFtZV0gfHwgW10pLmZvckVhY2goKGNhbGxiYWNrOiBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPGFueT4pID0+XHJcbiAgICAgICAgYWN0aW9ucy5hZGRDb250cmlidXRvcihjYWxsYmFjayksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25EZWZhdWx0czxGPiA9IEYgZXh0ZW5kcyBFbnRpdHlBY3Rpb25zRmFjdG9yeTxpbmZlciBSRT5cclxuICA/IEVudGl0eUFjdGlvbkRlZmF1bHRzPFJFPlxyXG4gIDogRiBleHRlbmRzIFRvb2xiYXJBY3Rpb25zRmFjdG9yeTxpbmZlciBSVD5cclxuICA/IFRvb2xiYXJBY3Rpb25EZWZhdWx0czxSVD5cclxuICA6IG5ldmVyO1xyXG5cclxudHlwZSBJbmZlcnJlZEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPEY+ID0gRiBleHRlbmRzIEVudGl0eUFjdGlvbnNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5QWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8UkU+XHJcbiAgOiBGIGV4dGVuZHMgVG9vbGJhckFjdGlvbnNGYWN0b3J5PGluZmVyIFJUPlxyXG4gID8gVG9vbGJhckFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPFJUPlxyXG4gIDogbmV2ZXI7XHJcblxyXG50eXBlIEluZmVycmVkQWN0aW9uczxGPiA9IEYgZXh0ZW5kcyBFbnRpdHlBY3Rpb25zRmFjdG9yeTxpbmZlciBSRT5cclxuICA/IEVudGl0eUFjdGlvbnM8UkU+XHJcbiAgOiBGIGV4dGVuZHMgVG9vbGJhckFjdGlvbnNGYWN0b3J5PGluZmVyIFJUPlxyXG4gID8gVG9vbGJhckFjdGlvbnM8UlQ+XHJcbiAgOiBuZXZlcjtcclxuIl19","import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { DateTimeAdapter, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nimport { ExtensionsService } from '../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token';\nexport function generateFormFromProps(data) {\n const extensions = data.getInjected((ExtensionsService));\n const identifier = data.getInjected(EXTENSIONS_IDENTIFIER);\n const form = new UntypedFormGroup({});\n const extraForm = new UntypedFormGroup({});\n form.addControl(EXTRA_PROPERTIES_KEY, extraForm);\n const record = data.record || {};\n const type = JSON.stringify(record) === '{}' ? 'create' : 'edit';\n const props = extensions[`${type}FormProps`].get(identifier).props;\n const extraProperties = record[EXTRA_PROPERTIES_KEY] || {};\n props.forEach(({ value: prop }) => {\n const name = prop.name;\n const isExtraProperty = prop.isExtra || name in extraProperties;\n let value = undefined;\n if (isExtraProperty) {\n value = extraProperties[name];\n }\n else if (name in record) {\n value = record[name];\n }\n if (typeof value === 'undefined')\n value = prop.defaultValue;\n if (value) {\n let adapter;\n switch (prop.type) {\n case \"date\" /* ePropType.Date */:\n adapter = new DateAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n case \"time\" /* ePropType.Time */:\n adapter = new TimeAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n case \"datetime\" /* ePropType.DateTime */:\n adapter = new DateTimeAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n default:\n break;\n }\n }\n const formControl = new UntypedFormControl(value, {\n asyncValidators: prop.asyncValidators(data),\n validators: prop.validators(data),\n });\n (isExtraProperty ? extraForm : form).addControl(name, formControl);\n });\n return form;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZm9ybS1wcm9wcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFpQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUEsaUJBQW9CLENBQUEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUzRCxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakUsTUFBTSxLQUFLLEdBQW9CLFVBQVUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxlQUFlLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXRCLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFNUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksT0FBb0QsQ0FBQztZQUN6RCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEI7b0JBQ0UsT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDNUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2dCQUNSO29CQUNFLE9BQU8sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNoQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBUSxDQUFDLENBQUM7b0JBQ3pELE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFFSCxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIsIERhdGVBZGFwdGVyLCBUaW1lQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IEVYVFJBX1BST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybUZyb21Qcm9wczxSID0gYW55PihkYXRhOiBQcm9wRGF0YTxSPikge1xyXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBkYXRhLmdldEluamVjdGVkKEV4dGVuc2lvbnNTZXJ2aWNlPFI+KTtcclxuICBjb25zdCBpZGVudGlmaWVyID0gZGF0YS5nZXRJbmplY3RlZChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG5cclxuICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gIGNvbnN0IGV4dHJhRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBmb3JtLmFkZENvbnRyb2woRVhUUkFfUFJPUEVSVElFU19LRVksIGV4dHJhRm9ybSk7XHJcblxyXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEucmVjb3JkIHx8IHt9O1xyXG4gIGNvbnN0IHR5cGUgPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpID09PSAne30nID8gJ2NyZWF0ZScgOiAnZWRpdCc7XHJcbiAgY29uc3QgcHJvcHM6IEZvcm1Qcm9wTGlzdDxSPiA9IGV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQoaWRlbnRpZmllcikucHJvcHM7XHJcbiAgY29uc3QgZXh0cmFQcm9wZXJ0aWVzID0gcmVjb3JkW0VYVFJBX1BST1BFUlRJRVNfS0VZXSB8fCB7fTtcclxuXHJcbiAgcHJvcHMuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvcC5uYW1lO1xyXG4gICAgY29uc3QgaXNFeHRyYVByb3BlcnR5ID0gcHJvcC5pc0V4dHJhIHx8IG5hbWUgaW4gZXh0cmFQcm9wZXJ0aWVzO1xyXG5cclxuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAoaXNFeHRyYVByb3BlcnR5KSB7XHJcbiAgICAgIHZhbHVlID0gZXh0cmFQcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgfSBlbHNlIGlmIChuYW1lIGluIHJlY29yZCkge1xyXG4gICAgICB2YWx1ZSA9IHJlY29yZFtuYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgdmFsdWUgPSBwcm9wLmRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgbGV0IGFkYXB0ZXI6IERhdGVBZGFwdGVyIHwgVGltZUFkYXB0ZXIgfCBEYXRlVGltZUFkYXB0ZXI7XHJcbiAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICAgIGFkYXB0ZXIgPSBuZXcgRGF0ZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBUaW1lQWRhcHRlcigpO1xyXG4gICAgICAgICAgdmFsdWUgPSBhZGFwdGVyLnRvTW9kZWwoYWRhcHRlci5mcm9tTW9kZWwodmFsdWUpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBEYXRlVGltZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSBhcyBhbnkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHZhbHVlLCB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9yczogcHJvcC5hc3luY1ZhbGlkYXRvcnMoZGF0YSksXHJcbiAgICAgIHZhbGlkYXRvcnM6IHByb3AudmFsaWRhdG9ycyhkYXRhKSxcclxuICAgIH0pO1xyXG5cclxuICAgIChpc0V4dHJhUHJvcGVydHkgPyBleHRyYUZvcm0gOiBmb3JtKS5hZGRDb250cm9sKG5hbWUsIGZvcm1Db250cm9sKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZvcm07XHJcbn1cclxuIl19","import { ConfigStateService, PermissionService } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nexport function createExtraPropertyValueResolver(name) {\n return (data) => of(data.record[EXTRA_PROPERTIES_KEY][name]);\n}\nexport function mergeWithDefaultProps(extension, defaultProps, ...contributors) {\n Object.keys(defaultProps).forEach((name) => {\n const props = extension.get(name);\n props.clearContributors();\n props.addContributor((propList) => propList.addManyTail(defaultProps[name]));\n contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));\n });\n}\nexport function checkPolicies(injector, properties) {\n const configState = injector.get(ConfigStateService);\n const permission = injector.get(PermissionService);\n const props = Object.entries(properties);\n const checkPolicy = (policy) => {\n const { permissions, globalFeatures, features } = policy || {};\n const checks = [\n {\n items: permissions?.permissionNames,\n requiresAll: permissions?.requiresAll,\n check: (item) => permission.getGrantedPolicy(item),\n },\n {\n items: globalFeatures?.features,\n requiresAll: globalFeatures?.requiresAll,\n check: (item) => configState.getGlobalFeatureIsEnabled(item),\n },\n {\n items: features?.features,\n requiresAll: features?.requiresAll,\n check: (item) => configState.getFeatureIsEnabled(item),\n },\n ];\n return checks.every(({ items, requiresAll, check }) => {\n if (!items?.length) {\n return true;\n }\n return requiresAll ? items.every(check) : items.some(check);\n });\n };\n props.forEach(([name, property]) => {\n if (property.policy && !checkPolicy(property.policy)) {\n delete properties[name];\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3Byb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUEwQnJFLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsSUFBWTtJQUVaLE9BQU8sQ0FBQyxJQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBaUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsU0FBWSxFQUNaLFlBQXFDLEVBQ3JDLEdBQUcsWUFBbUQ7SUFFdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNqRCxNQUFNLEtBQUssR0FBcUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBMEMsRUFBRSxFQUFFLENBQ2xFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXNDLEVBQUUsRUFBRSxDQUMzRSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUMvQixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUFrQixFQUNsQixVQUFzRDtJQUV0RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRTtRQUM5QyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBRS9ELE1BQU0sTUFBTSxHQUFHO1lBQ2I7Z0JBQ0UsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlO2dCQUNuQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVc7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRDtZQUNEO2dCQUNFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUTtnQkFDL0IsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXO2dCQUN4QyxLQUFLLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7YUFDckU7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVE7Z0JBQ3pCLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVztnQkFDbEMsS0FBSyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO2FBQy9EO1NBQ0YsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDakMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIEVudGl0eVByb3BEZWZhdWx0cyxcclxuICBFbnRpdHlQcm9wcyxcclxuICBFbnRpdHlQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBDcmVhdGVGb3JtUHJvcERlZmF1bHRzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRWRpdEZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgRWRpdEZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRm9ybVByb3BzLFxyXG59IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHtcclxuICBJbmZlcnJlZFByb3AsXHJcbiAgUHJvcENhbGxiYWNrLFxyXG4gIFByb3BDb250cmlidXRvckNhbGxiYWNrLFxyXG4gIFByb3BMaXN0LFxyXG4gIFByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5pbXBvcnQgeyBQb2xpY3kgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFeHRyYVByb3BlcnR5VmFsdWVSZXNvbHZlcjxUPihcclxuICBuYW1lOiBzdHJpbmcsXHJcbik6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+IHtcclxuICByZXR1cm4gKGRhdGE/KSA9PiBvZigoZGF0YS5yZWNvcmQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlbRVhUUkFfUFJPUEVSVElFU19LRVldW25hbWVdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlV2l0aERlZmF1bHRQcm9wczxGIGV4dGVuZHMgUHJvcHNGYWN0b3J5PGFueT4+KFxyXG4gIGV4dGVuc2lvbjogRixcclxuICBkZWZhdWx0UHJvcHM6IEluZmVycmVkUHJvcERlZmF1bHRzPEY+LFxyXG4gIC4uLmNvbnRyaWJ1dG9yczogSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj5bXVxyXG4pIHtcclxuICBPYmplY3Qua2V5cyhkZWZhdWx0UHJvcHMpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcHJvcHM6IEluZmVycmVkUHJvcHM8Rj4gPSBleHRlbnNpb24uZ2V0KG5hbWUpO1xyXG4gICAgcHJvcHMuY2xlYXJDb250cmlidXRvcnMoKTtcclxuICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKChwcm9wTGlzdDogUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8YW55Pj4pID0+XHJcbiAgICAgIHByb3BMaXN0LmFkZE1hbnlUYWlsKGRlZmF1bHRQcm9wc1tuYW1lXSksXHJcbiAgICApO1xyXG4gICAgY29udHJpYnV0b3JzLmZvckVhY2goY29udHJpYnV0b3IgPT5cclxuICAgICAgKGNvbnRyaWJ1dG9yW25hbWVdIHx8IFtdKS5mb3JFYWNoKChjYWxsYmFjazogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8YW55PikgPT5cclxuICAgICAgICBwcm9wcy5hZGRDb250cmlidXRvcihjYWxsYmFjayksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQb2xpY2llcyhcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4pIHtcclxuICBjb25zdCBjb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIGNvbnN0IHBlcm1pc3Npb24gPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gIGNvbnN0IHByb3BzID0gT2JqZWN0LmVudHJpZXMocHJvcGVydGllcyk7XHJcblxyXG4gIGNvbnN0IGNoZWNrUG9saWN5ID0gKHBvbGljeTogUG9saWN5KTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCB7IHBlcm1pc3Npb25zLCBnbG9iYWxGZWF0dXJlcywgZmVhdHVyZXMgfSA9IHBvbGljeSB8fCB7fTtcclxuXHJcbiAgICBjb25zdCBjaGVja3MgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogcGVybWlzc2lvbnM/LnBlcm1pc3Npb25OYW1lcyxcclxuICAgICAgICByZXF1aXJlc0FsbDogcGVybWlzc2lvbnM/LnJlcXVpcmVzQWxsLFxyXG4gICAgICAgIGNoZWNrOiAoaXRlbTogc3RyaW5nKSA9PiBwZXJtaXNzaW9uLmdldEdyYW50ZWRQb2xpY3koaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZ2xvYmFsRmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBnbG9iYWxGZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEdsb2JhbEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBmZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBjaGVja3MuZXZlcnkoKHsgaXRlbXMsIHJlcXVpcmVzQWxsLCBjaGVjayB9KSA9PiB7XHJcbiAgICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmVxdWlyZXNBbGwgPyBpdGVtcy5ldmVyeShjaGVjaykgOiBpdGVtcy5zb21lKGNoZWNrKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByb3BzLmZvckVhY2goKFtuYW1lLCBwcm9wZXJ0eV0pID0+IHtcclxuICAgIGlmIChwcm9wZXJ0eS5wb2xpY3kgJiYgIWNoZWNrUG9saWN5KHByb3BlcnR5LnBvbGljeSkpIHtcclxuICAgICAgZGVsZXRlIHByb3BlcnRpZXNbbmFtZV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BEZWZhdWx0czxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wczxGPiA9XHJcbiAgRiBleHRlbmRzIEVudGl0eVByb3BzRmFjdG9yeTxpbmZlciBSRT5cclxuICAgID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgICA6IEYgZXh0ZW5kcyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJDRj5cclxuICAgICAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBGb3JtUHJvcHM8UkVGPlxyXG4gICAgICAgIDogbmV2ZXI7XHJcbiJdfQ==","import { LocalizationService } from '@abp/ng.core';\nimport { merge, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nexport function createEnum(members) {\n const enumObject = {};\n members.forEach(({ name = '', value }) => {\n enumObject[(enumObject[name] = value)] = name;\n });\n return enumObject;\n}\nexport function createEnumValueResolver(enumType, lookupEnum, propName) {\n return data => {\n const value = data.record[EXTRA_PROPERTIES_KEY][propName];\n const key = lookupEnum.transformed[value];\n const l10n = data.getInjected(LocalizationService);\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n return createLocalizationStream(l10n, localizeEnum(key));\n };\n}\nexport function createEnumOptions(enumType, lookupEnum) {\n return data => {\n const l10n = data.getInjected(LocalizationService);\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n return createLocalizationStream(l10n, lookupEnum.fields.map(({ name = '', value }) => ({\n key: localizeEnum(name),\n value,\n })));\n };\n}\nfunction createLocalizationStream(l10n, mapTarget) {\n return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));\n}\nfunction createEnumLocalizer(l10n, enumType, lookupEnum) {\n const resource = lookupEnum.localizationResource;\n const shortType = getShortEnumType(enumType);\n return key => l10n.localizeWithFallbackSync([resource || ''], ['Enum:' + shortType + '.' + key, shortType + '.' + key, key], key);\n}\nfunction getShortEnumType(enumType) {\n return enumType.split('.').pop();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZW51bS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBOEIsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXJFLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZ0M7SUFDekQsTUFBTSxVQUFVLEdBQVEsRUFBRSxDQUFDO0lBRTNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2QyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBWSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxRQUFnQixFQUNoQixVQUE2QyxFQUM3QyxRQUFnQjtJQUVoQixPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ1osTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLE1BQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFckUsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsUUFBZ0IsRUFDaEIsVUFBNkM7SUFFN0MsT0FBTyxJQUFJLENBQUMsRUFBRTtRQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sd0JBQXdCLENBQzdCLElBQUksRUFDSixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QixLQUFLO1NBQ04sQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLElBQXlCLEVBQUUsU0FBYztJQUN6RSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsSUFBeUIsRUFDekIsUUFBZ0IsRUFDaEIsVUFBNkM7SUFFN0MsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FDWCxJQUFJLENBQUMsd0JBQXdCLENBQzNCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUNoQixDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDN0QsR0FBRyxDQUNKLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFnQjtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgRXh0ZW5zaW9uRW51bUZpZWxkRHRvLCBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBQcm9wQ2FsbGJhY2sgfSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW0obWVtYmVyczogRXh0ZW5zaW9uRW51bUZpZWxkRHRvW10pIHtcclxuICBjb25zdCBlbnVtT2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgbWVtYmVycy5mb3JFYWNoKCh7IG5hbWUgPSAnJywgdmFsdWUgfSkgPT4ge1xyXG4gICAgZW51bU9iamVjdFsoZW51bU9iamVjdFtuYW1lXSA9IHZhbHVlIGFzIGFueSldID0gbmFtZTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVudW1PYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlcjxUID0gYW55PihcclxuICBlbnVtVHlwZTogc3RyaW5nLFxyXG4gIGxvb2t1cEVudW06IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0byxcclxuICBwcm9wTmFtZTogc3RyaW5nLFxyXG4pOiBQcm9wQ2FsbGJhY2s8VCwgT2JzZXJ2YWJsZTxzdHJpbmc+PiB7XHJcbiAgcmV0dXJuIGRhdGEgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSAoZGF0YS5yZWNvcmQgYXMgYW55KVtFWFRSQV9QUk9QRVJUSUVTX0tFWV1bcHJvcE5hbWVdO1xyXG4gICAgY29uc3Qga2V5ID0gbG9va3VwRW51bS50cmFuc2Zvcm1lZFt2YWx1ZV07XHJcbiAgICBjb25zdCBsMTBuID0gZGF0YS5nZXRJbmplY3RlZChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgIGNvbnN0IGxvY2FsaXplRW51bSA9IGNyZWF0ZUVudW1Mb2NhbGl6ZXIobDEwbiwgZW51bVR5cGUsIGxvb2t1cEVudW0pO1xyXG5cclxuICAgIHJldHVybiBjcmVhdGVMb2NhbGl6YXRpb25TdHJlYW0obDEwbiwgbG9jYWxpemVFbnVtKGtleSkpO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtT3B0aW9uczxUID0gYW55PihcclxuICBlbnVtVHlwZTogc3RyaW5nLFxyXG4gIGxvb2t1cEVudW06IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0byxcclxuKTogUHJvcENhbGxiYWNrPFQsIE9ic2VydmFibGU8QUJQLk9wdGlvbjxhbnk+W10+PiB7XHJcbiAgcmV0dXJuIGRhdGEgPT4ge1xyXG4gICAgY29uc3QgbDEwbiA9IGRhdGEuZ2V0SW5qZWN0ZWQoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgICBjb25zdCBsb2NhbGl6ZUVudW0gPSBjcmVhdGVFbnVtTG9jYWxpemVyKGwxMG4sIGVudW1UeXBlLCBsb29rdXBFbnVtKTtcclxuXHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemF0aW9uU3RyZWFtKFxyXG4gICAgICBsMTBuLFxyXG4gICAgICBsb29rdXBFbnVtLmZpZWxkcy5tYXAoKHsgbmFtZSA9ICcnLCB2YWx1ZSB9KSA9PiAoe1xyXG4gICAgICAgIGtleTogbG9jYWxpemVFbnVtKG5hbWUpLFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICB9KSksXHJcbiAgICApO1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXphdGlvblN0cmVhbShsMTBuOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBtYXBUYXJnZXQ6IGFueSkge1xyXG4gIHJldHVybiBtZXJnZShvZihudWxsKSwgbDEwbi5sYW5ndWFnZUNoYW5nZSQpLnBpcGUobWFwKCgpID0+IG1hcFRhcmdldCkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVFbnVtTG9jYWxpemVyKFxyXG4gIGwxMG46IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgZW51bVR5cGU6IHN0cmluZyxcclxuICBsb29rdXBFbnVtOiBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8sXHJcbik6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nIHtcclxuICBjb25zdCByZXNvdXJjZSA9IGxvb2t1cEVudW0ubG9jYWxpemF0aW9uUmVzb3VyY2U7XHJcbiAgY29uc3Qgc2hvcnRUeXBlID0gZ2V0U2hvcnRFbnVtVHlwZShlbnVtVHlwZSk7XHJcblxyXG4gIHJldHVybiBrZXkgPT5cclxuICAgIGwxMG4ubG9jYWxpemVXaXRoRmFsbGJhY2tTeW5jKFxyXG4gICAgICBbcmVzb3VyY2UgfHwgJyddLFxyXG4gICAgICBbJ0VudW06JyArIHNob3J0VHlwZSArICcuJyArIGtleSwgc2hvcnRUeXBlICsgJy4nICsga2V5LCBrZXldLFxyXG4gICAgICBrZXksXHJcbiAgICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTaG9ydEVudW1UeXBlKGVudW1UeXBlOiBzdHJpbmcpIHtcclxuICByZXR1cm4gZW51bVR5cGUuc3BsaXQoJy4nKS5wb3AoKTtcclxufVxyXG4iXX0=","import { createLocalizationPipeKeyGenerator, } from '@abp/ng.core';\nexport function createDisplayNameLocalizationPipeKeyGenerator(localization) {\n const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);\n return (displayName, fallback) => {\n if (displayName && displayName.name)\n return generateLocalizationPipeKey([displayName.resource || ''], [displayName.name], displayName.name);\n const key = generateLocalizationPipeKey([fallback.resource || ''], ['DisplayName:' + fallback.name], undefined);\n if (key)\n return key;\n return generateLocalizationPipeKey([fallback.resource || ''], [fallback.name || ''], fallback.name);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi91dGlscy9sb2NhbGl6YXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0NBQWtDLEdBQ25DLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE1BQU0sVUFBVSw2Q0FBNkMsQ0FDM0QsWUFBcUQ7SUFFckQsTUFBTSwyQkFBMkIsR0FBRyxrQ0FBa0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVyRixPQUFPLENBQ0wsV0FBa0QsRUFDbEQsUUFBK0MsRUFDL0MsRUFBRTtRQUNGLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJO1lBQ2pDLE9BQU8sMkJBQTJCLENBQ2hDLENBQUMsV0FBVyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFDNUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQ2xCLFdBQVcsQ0FBQyxJQUFJLENBQ2pCLENBQUM7UUFFSixNQUFNLEdBQUcsR0FBRywyQkFBMkIsQ0FDckMsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUN6QixDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2hDLFNBQVMsQ0FDVixDQUFDO1FBRUYsSUFBSSxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFcEIsT0FBTywyQkFBMkIsQ0FDaEMsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUN6QixDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQ3JCLFFBQVEsQ0FBQyxJQUFJLENBQ2QsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpc3BsYXlOYW1lTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihcclxuICBsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuKSB7XHJcbiAgY29uc3QgZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5ID0gY3JlYXRlTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgZGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuTG9jYWxpemFibGVTdHJpbmdEdG8sXHJcbiAgICBmYWxsYmFjazogT2JqZWN0RXh0ZW5zaW9ucy5Mb2NhbGl6YWJsZVN0cmluZ0R0byxcclxuICApID0+IHtcclxuICAgIGlmIChkaXNwbGF5TmFtZSAmJiBkaXNwbGF5TmFtZS5uYW1lKVxyXG4gICAgICByZXR1cm4gZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5KFxyXG4gICAgICAgIFtkaXNwbGF5TmFtZS5yZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgICAgW2Rpc3BsYXlOYW1lLm5hbWVdLFxyXG4gICAgICAgIGRpc3BsYXlOYW1lLm5hbWUsXHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3Qga2V5ID0gZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5KFxyXG4gICAgICBbZmFsbGJhY2sucmVzb3VyY2UgfHwgJyddLFxyXG4gICAgICBbJ0Rpc3BsYXlOYW1lOicgKyBmYWxsYmFjay5uYW1lXSxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoa2V5KSByZXR1cm4ga2V5O1xyXG5cclxuICAgIHJldHVybiBnZW5lcmF0ZUxvY2FsaXphdGlvblBpcGVLZXkoXHJcbiAgICAgIFtmYWxsYmFjay5yZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgIFtmYWxsYmFjay5uYW1lIHx8ICcnXSxcclxuICAgICAgZmFsbGJhY2submFtZSxcclxuICAgICk7XHJcbiAgfTtcclxufVxyXG4iXX0=","import { AbpValidators } from '@abp/ng.core';\nexport function getValidatorsFromProperty(property) {\n const validators = [];\n property.attributes.forEach(attr => {\n if (attr.typeSimple && attr.typeSimple in AbpValidators) {\n validators.push(AbpValidators[attr.typeSimple](attr.config));\n }\n });\n return validators;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvdmFsaWRhdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0MsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxRQUErQztJQUUvQyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3hELFVBQVUsQ0FBQyxJQUFJLENBQUUsYUFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFicFZhbGlkYXRvcnMgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eShcclxuICBwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byxcclxuKTogVmFsaWRhdG9yRm5bXSB7XHJcbiAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG5cclxuICBwcm9wZXJ0eS5hdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XHJcbiAgICBpZiAoYXR0ci50eXBlU2ltcGxlICYmIGF0dHIudHlwZVNpbXBsZSBpbiBBYnBWYWxpZGF0b3JzKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaCgoQWJwVmFsaWRhdG9ycyBhcyBhbnkpW2F0dHIudHlwZVNpbXBsZV0oYXR0ci5jb25maWcpKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHZhbGlkYXRvcnM7XHJcbn1cclxuIl19","import { ConfigStateService, } from '@abp/ng.core';\nimport { pipe, zip } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\nimport { EntityProp } from '../models/entity-props';\nimport { FormProp } from '../models/form-props';\nimport { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';\nimport { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';\nimport { checkPolicies, createExtraPropertyValueResolver } from './props.util';\nimport { createTypeaheadDisplayNameGenerator, createTypeaheadOptions, getTypeaheadType, hasTypeaheadTextSuffix, } from './typeahead.util';\nimport { getValidatorsFromProperty } from './validation.util';\nfunction selectObjectExtensions(configState) {\n return configState.getOne$('objectExtensions');\n}\nfunction selectLocalization(configState) {\n return configState.getOne$('localization');\n}\nfunction selectEnums(configState) {\n return selectObjectExtensions(configState).pipe(map((extensions) => Object.keys(extensions.enums).reduce((acc, key) => {\n const { fields, localizationResource } = extensions.enums[key];\n acc[key] = {\n fields,\n localizationResource,\n transformed: createEnum(fields),\n };\n return acc;\n }, {})));\n}\nexport function getObjectExtensionEntitiesFromStore(injector, moduleKey) {\n const configState = injector.get(ConfigStateService);\n return selectObjectExtensions(configState).pipe(map(extensions => {\n if (!extensions)\n return null;\n return (extensions.modules[moduleKey] || {})\n .entities;\n }), map(entities => (isUndefined(entities) ? {} : entities)), filter(Boolean), take(1));\n}\nexport function mapEntitiesToContributors(injector, resource) {\n const configState = injector.get(ConfigStateService);\n return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {\n const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);\n return Object.keys(entities).reduce((acc, key) => {\n acc.prop[key] = [];\n acc.createForm[key] = [];\n acc.editForm[key] = [];\n const entity = entities[key];\n if (!entity) {\n return acc;\n }\n const properties = entity.properties;\n if (!properties) {\n return acc;\n }\n checkPolicies(injector, properties);\n const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);\n return mapPropertiesToContributors(properties, acc, key);\n }, {\n prop: {},\n createForm: {},\n editForm: {},\n });\n }))), take(1));\n}\nfunction createPropertiesToContributorsMapper(generateDisplayName, resource, enums) {\n return (properties, contributors, key) => {\n const isExtra = true;\n const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(generateDisplayName, properties);\n Object.keys(properties).forEach((name) => {\n const property = properties[name];\n const propName = name;\n const lookup = property.ui.lookup || {};\n const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);\n const generateDN = hasTypeaheadTextSuffix(name)\n ? generateTypeaheadDisplayName\n : generateDisplayName;\n const displayName = generateDN(property.displayName, { name, resource });\n if (property.ui.onTable.isVisible) {\n const sortable = Boolean(property.ui.onTable.isSortable);\n const columnWidth = type === \"boolean\" /* ePropType.Boolean */ ? 150 : 250;\n const valueResolver = type === \"enum\" /* ePropType.Enum */ &&\n property.type\n ? createEnumValueResolver(property.type, enums[property.type], propName)\n : createExtraPropertyValueResolver(propName);\n const entityProp = new EntityProp({\n type,\n name: propName,\n displayName,\n sortable,\n columnWidth,\n valueResolver,\n isExtra,\n });\n const contributor = (propList) => propList.addTail(entityProp);\n contributors.prop[key].push(contributor);\n }\n const isOnCreateForm = property.ui.onCreateForm.isVisible;\n const isOnEditForm = property.ui.onEditForm.isVisible;\n if (isOnCreateForm || isOnEditForm) {\n const defaultValue = property.defaultValue;\n const formText = property.formText;\n const validators = () => getValidatorsFromProperty(property);\n let options;\n if (type === \"enum\" /* ePropType.Enum */)\n options = createEnumOptions(propName, enums[property.type || '']);\n else if (type === \"typeahead\" /* ePropType.Typeahead */)\n options = createTypeaheadOptions(lookup);\n const formProp = new FormProp({\n type,\n name: propName,\n displayName,\n options,\n defaultValue,\n validators,\n isExtra,\n formText,\n });\n const formContributor = (propList) => propList.addTail(formProp);\n if (isOnCreateForm)\n contributors.createForm[key].push(formContributor);\n if (isOnEditForm)\n contributors.editForm[key].push(formContributor);\n }\n });\n return contributors;\n };\n}\nfunction getTypeFromProperty(property) {\n return property?.typeSimple?.replace(/\\?$/, '');\n}\nfunction isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGtCQUFrQixHQUluQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQWMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsU0FBUyxzQkFBc0IsQ0FBQyxXQUErQjtJQUM3RCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFT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RUFBRSxFQUFFLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgRXh0ZW5zaW9uRW51bUR0byxcclxuICBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4gIE9iamVjdEV4dGVuc2lvbnNEdG8sXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgY3JlYXRlRW51bSwgY3JlYXRlRW51bU9wdGlvbnMsIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9lbnVtLnV0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2xvY2FsaXphdGlvbi51dGlsJztcclxuaW1wb3J0IHsgY2hlY2tQb2xpY2llcywgY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXIgfSBmcm9tICcuL3Byb3BzLnV0aWwnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yLFxyXG4gIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMsXHJcbiAgZ2V0VHlwZWFoZWFkVHlwZSxcclxuICBoYXNUeXBlYWhlYWRUZXh0U3VmZml4LFxyXG59IGZyb20gJy4vdHlwZWFoZWFkLnV0aWwnO1xyXG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5IH0gZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5cclxuZnVuY3Rpb24gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKTogT2JzZXJ2YWJsZTxPYmplY3RFeHRlbnNpb25zRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ29iamVjdEV4dGVuc2lvbnMnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0TG9jYWxpemF0aW9uKFxyXG4gIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbik6IE9ic2VydmFibGU8QXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RFbnVtcyhcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkVudW1EdG8+PiB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoKGV4dGVuc2lvbnM6IE9iamVjdEV4dGVuc2lvbnNEdG8pID0+XHJcbiAgICAgIE9iamVjdC5rZXlzKGV4dGVuc2lvbnMuZW51bXMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgZmllbGRzLCBsb2NhbGl6YXRpb25SZXNvdXJjZSB9ID0gZXh0ZW5zaW9ucy5lbnVtc1trZXldO1xyXG4gICAgICAgICAgYWNjW2tleV0gPSB7XHJcbiAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgbG9jYWxpemF0aW9uUmVzb3VyY2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkOiBjcmVhdGVFbnVtKGZpZWxkcyksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LFxyXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0bz4sXHJcbiAgICAgICksXHJcbiAgICApLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RFeHRlbnNpb25FbnRpdGllc0Zyb21TdG9yZShpbmplY3RvcjogSW5qZWN0b3IsIG1vZHVsZUtleTogc3RyaW5nKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICByZXR1cm4gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZSkucGlwZShcclxuICAgIG1hcChleHRlbnNpb25zID0+IHtcclxuICAgICAgaWYgKCFleHRlbnNpb25zKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgIHJldHVybiAoZXh0ZW5zaW9ucy5tb2R1bGVzW21vZHVsZUtleV0gfHwgKHt9IGFzIE9iamVjdEV4dGVuc2lvbnMuTW9kdWxlRXh0ZW5zaW9uRHRvKSlcclxuICAgICAgICAuZW50aXRpZXM7XHJcbiAgICB9KSxcclxuICAgIG1hcChlbnRpdGllcyA9PiAoaXNVbmRlZmluZWQoZW50aXRpZXMpID8gKHt9IGFzIGFueSkgOiBlbnRpdGllcykpLFxyXG4gICAgZmlsdGVyPE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9ucz4oQm9vbGVhbiksXHJcbiAgICB0YWtlKDEpLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXBFbnRpdGllc1RvQ29udHJpYnV0b3JzPFQgPSBhbnk+KGluamVjdG9yOiBJbmplY3RvciwgcmVzb3VyY2U6IHN0cmluZykge1xyXG4gIGNvbnN0IGNvbmZpZ1N0YXRlID0gaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgcmV0dXJuIHBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKGVudGl0aWVzOiBhbnkpID0+XHJcbiAgICAgIHppcChzZWxlY3RMb2NhbGl6YXRpb24oY29uZmlnU3RhdGUpLCBzZWxlY3RFbnVtcyhjb25maWdTdGF0ZSkpLnBpcGUoXHJcbiAgICAgICAgbWFwKChbbG9jYWxpemF0aW9uLCBlbnVtc10pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGdlbmVyYXRlRGlzcGxheU5hbWUgPSBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW50aXRpZXMpLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywga2V5OiBrZXlvZiBPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnMpID0+IHtcclxuICAgICAgICAgICAgICBhY2MucHJvcFtrZXldID0gW107XHJcbiAgICAgICAgICAgICAgYWNjLmNyZWF0ZUZvcm1ba2V5XSA9IFtdO1xyXG4gICAgICAgICAgICAgIGFjYy5lZGl0Rm9ybVtrZXldID0gW107XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eTogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25EdG8gPSBlbnRpdGllc1trZXldO1xyXG4gICAgICAgICAgICAgIGlmICghZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNoZWNrUG9saWNpZXMoaW5qZWN0b3IsIHByb3BlcnRpZXMpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtYXBQcm9wZXJ0aWVzVG9Db250cmlidXRvcnMgPSBjcmVhdGVQcm9wZXJ0aWVzVG9Db250cmlidXRvcnNNYXBwZXI8VD4oXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtcyxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzKHByb3BlcnRpZXMsIGFjYywga2V5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb3A6IHt9LFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUZvcm06IHt9LFxyXG4gICAgICAgICAgICAgIGVkaXRGb3JtOiB7fSxcclxuICAgICAgICAgICAgfSBhcyBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICAgIHRha2UoMSksXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQgPSBhbnk+KFxyXG4gIGdlbmVyYXRlRGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuRGlzcGxheU5hbWVHZW5lcmF0b3JGbixcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4gIGVudW1zOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4gICAgY29udHJpYnV0b3JzOiBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnM8VD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICApID0+IHtcclxuICAgIGNvbnN0IGlzRXh0cmEgPSB0cnVlO1xyXG4gICAgY29uc3QgZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZSA9IGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yKFxyXG4gICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5hbWU7XHJcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHByb3BlcnR5LnVpLmxvb2t1cCB8fCAoe30gYXMgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byk7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlYWhlYWRUeXBlKGxvb2t1cCwgbmFtZSkgfHwgZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgIGNvbnN0IGdlbmVyYXRlRE4gPSBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpXHJcbiAgICAgICAgPyBnZW5lcmF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lXHJcbiAgICAgICAgOiBnZW5lcmF0ZURpc3BsYXlOYW1lO1xyXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdlbmVyYXRlRE4ocHJvcGVydHkuZGlzcGxheU5hbWUsIHsgbmFtZSwgcmVzb3VyY2UgfSk7XHJcblxyXG4gICAgICBpZiAocHJvcGVydHkudWkub25UYWJsZS5pc1Zpc2libGUpIHtcclxuICAgICAgICBjb25zdCBzb3J0YWJsZSA9IEJvb2xlYW4ocHJvcGVydHkudWkub25UYWJsZS5pc1NvcnRhYmxlKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHR5cGUgPT09IGVQcm9wVHlwZS5Cb29sZWFuID8gMTUwIDogMjUwO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlUmVzb2x2ZXI6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+ID0gdHlwZSA9PT0gZVByb3BUeXBlLkVudW0gJiZcclxuICAgICAgICBwcm9wZXJ0eS50eXBlXHJcbiAgICAgICAgICA/IGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyKHByb3BlcnR5LnR5cGUsIGVudW1zW3Byb3BlcnR5LnR5cGVdLCBwcm9wTmFtZSlcclxuICAgICAgICAgIDogY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXI8VD4ocHJvcE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBlbnRpdHlQcm9wID0gbmV3IEVudGl0eVByb3A8VD4oe1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIG5hbWU6IHByb3BOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBzb3J0YWJsZSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoLFxyXG4gICAgICAgICAgdmFsdWVSZXNvbHZlcixcclxuICAgICAgICAgIGlzRXh0cmEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yID0gKHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChlbnRpdHlQcm9wKTtcclxuICAgICAgICBjb250cmlidXRvcnMucHJvcFtrZXldLnB1c2goY29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc09uQ3JlYXRlRm9ybSA9IHByb3BlcnR5LnVpLm9uQ3JlYXRlRm9ybS5pc1Zpc2libGU7XHJcbiAgICAgIGNvbnN0IGlzT25FZGl0Rm9ybSA9IHByb3BlcnR5LnVpLm9uRWRpdEZvcm0uaXNWaXNpYmxlO1xyXG5cclxuICAgICAgaWYgKGlzT25DcmVhdGVGb3JtIHx8IGlzT25FZGl0Rm9ybSkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHByb3BlcnR5LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtVGV4dCA9IHByb3BlcnR5LmZvcm1UZXh0O1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAoKSA9PiBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgICAgICBsZXQgb3B0aW9uczogUHJvcENhbGxiYWNrPGFueSwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBlUHJvcFR5cGUuRW51bSlcclxuICAgICAgICAgIG9wdGlvbnMgPSBjcmVhdGVFbnVtT3B0aW9ucyhwcm9wTmFtZSwgZW51bXNbcHJvcGVydHkudHlwZSB8fCAnJ10pO1xyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IGVQcm9wVHlwZS5UeXBlYWhlYWQpIG9wdGlvbnMgPSBjcmVhdGVUeXBlYWhlYWRPcHRpb25zKGxvb2t1cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wID0gbmV3IEZvcm1Qcm9wKHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgICAgZm9ybVRleHQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cmlidXRvciA9IChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFQ+KSA9PiBwcm9wTGlzdC5hZGRUYWlsKGZvcm1Qcm9wKTtcclxuXHJcbiAgICAgICAgaWYgKGlzT25DcmVhdGVGb3JtKSBjb250cmlidXRvcnMuY3JlYXRlRm9ybVtrZXldLnB1c2goZm9ybUNvbnRyaWJ1dG9yKTtcclxuICAgICAgICBpZiAoaXNPbkVkaXRGb3JtKSBjb250cmlidXRvcnMuZWRpdEZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb250cmlidXRvcnM7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byk6IGVQcm9wVHlwZSB7XHJcbiAgcmV0dXJuIHByb3BlcnR5Py50eXBlU2ltcGxlPy5yZXBsYWNlKC9cXD8kLywgJycpIGFzIHN0cmluZyBhcyBlUHJvcFR5cGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xyXG59XHJcbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { ExtensibleFormComponent, ExtensibleFormPropComponent, ExtensibleTableComponent, GridActionsComponent, PageToolbarComponent, ExtensibleDateTimePickerComponent, ExtensibleFormMultiselectComponent, } from './components';\nimport { PropDataDirective } from './directives/prop-data.directive';\nimport { CreateInjectorPipe } from './pipes/create-injector.pipe';\nimport { DisabledDirective } from '@abp/ng.theme.shared';\nimport * as i0 from \"@angular/core\";\nconst importWithExport = [\n DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent,\n];\nexport class ExtensibleModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule, DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent], exports: [DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule, ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PageToolbarComponent,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule,\n ...importWithExport,\n ],\n exports: [...importWithExport],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9leHRlbnNpYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsa0NBQWtDLEdBQ25DLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV6RCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLGlCQUFpQjtJQUNqQixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLGtDQUFrQztDQUNuQyxDQUFDO0FBaUJGLE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLFlBWnpCLFVBQVU7WUFDVixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixnQkFBZ0IsRUF0QmxCLGlCQUFpQjtZQUNqQixpQ0FBaUM7WUFDakMsMkJBQTJCO1lBQzNCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLGtDQUFrQyxhQVRsQyxpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixrQ0FBa0M7K0dBa0J2QixnQkFBZ0IsWUFaekIsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQixFQXJCbEIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFFcEIsb0JBQW9CO1lBRXBCLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsa0NBQWtDOzsyRkFrQnZCLGdCQUFnQjtrQkFmNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixHQUFHLGdCQUFnQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICBOZ2JUaW1lcGlja2VyTW9kdWxlLFxyXG4gIE5nYlRvb2x0aXBNb2R1bGUsXHJcbiAgTmdiVHlwZWFoZWFkTW9kdWxlLFxyXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBFeHRlbnNpYmxlRm9ybUNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQsXHJcbiAgRXh0ZW5zaWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gIEdyaWRBY3Rpb25zQ29tcG9uZW50LFxyXG4gIFBhZ2VUb29sYmFyQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybU11bHRpc2VsZWN0Q29tcG9uZW50LFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFByb3BEYXRhRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Byb3AtZGF0YS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDcmVhdGVJbmplY3RvclBpcGUgfSBmcm9tICcuL3BpcGVzL2NyZWF0ZS1pbmplY3Rvci5waXBlJztcclxuaW1wb3J0IHsgRGlzYWJsZWREaXJlY3RpdmUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5jb25zdCBpbXBvcnRXaXRoRXhwb3J0ID0gW1xyXG4gIERpc2FibGVkRGlyZWN0aXZlLFxyXG4gIEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUHJvcERhdGFEaXJlY3RpdmUsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlRm9ybU11bHRpc2VsZWN0Q29tcG9uZW50LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbiAgICBOZ2JUb29sdGlwTW9kdWxlLFxyXG4gICAgLi4uaW1wb3J0V2l0aEV4cG9ydCxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFsuLi5pbXBvcnRXaXRoRXhwb3J0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVNb2R1bGUge31cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvbXBvbmVudHMtZXh0ZW5zaWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvYWJwLW5nLmNvbXBvbmVudHMtZXh0ZW5zaWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":["i1","i2","i4","map","filter"],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-extensible.mjs","sources":["../tmp-esm2022/extensible/lib/utils/factory.util.js","../tmp-esm2022/extensible/lib/components/date-time-picker/extensible-date-time-picker.component.js","../tmp-esm2022/extensible/lib/tokens/extensions.token.js","../tmp-esm2022/extensible/lib/constants/extra-properties.js","../tmp-esm2022/extensible/lib/models/props.js","../tmp-esm2022/extensible/lib/models/form-props.js","../tmp-esm2022/extensible/lib/utils/typeahead.util.js","../tmp-esm2022/extensible/lib/services/extensible-form-prop.service.js","../tmp-esm2022/extensible/lib/components/multi-select/extensible-form-multiselect.component.js","../tmp-esm2022/extensible/lib/components/extensible-form/extensible-form-prop.component.js","../tmp-esm2022/extensible/lib/models/actions.js","../tmp-esm2022/extensible/lib/models/entity-actions.js","../tmp-esm2022/extensible/lib/models/entity-props.js","../tmp-esm2022/extensible/lib/models/toolbar-actions.js","../tmp-esm2022/extensible/lib/services/extensions.service.js","../tmp-esm2022/extensible/lib/directives/prop-data.directive.js","../tmp-esm2022/extensible/lib/components/extensible-form/extensible-form.component.js","../tmp-esm2022/extensible/lib/components/abstract-actions/abstract-actions.component.js","../tmp-esm2022/extensible/lib/components/grid-actions/grid-actions.component.js","../tmp-esm2022/extensible/lib/components/extensible-table/extensible-table.component.js","../tmp-esm2022/extensible/lib/pipes/create-injector.pipe.js","../tmp-esm2022/extensible/lib/components/page-toolbar/page-toolbar.component.js","../tmp-esm2022/extensible/lib/tokens/extensible-form-view-provider.token.js","../tmp-esm2022/extensible/lib/utils/actions.util.js","../tmp-esm2022/extensible/lib/utils/form-props.util.js","../tmp-esm2022/extensible/lib/utils/props.util.js","../tmp-esm2022/extensible/lib/utils/enum.util.js","../tmp-esm2022/extensible/lib/utils/localization.util.js","../tmp-esm2022/extensible/lib/utils/validation.util.js","../tmp-esm2022/extensible/lib/utils/state.util.js","../tmp-esm2022/extensible/lib/extensible.module.js","../tmp-esm2022/extensible/abp-ng.components-extensible.js"],"sourcesContent":["export function selfFactory(dependency) {\n return dependency;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZmFjdG9yeS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxXQUFXLENBQUMsVUFBZ0I7SUFDMUMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZWxmRmFjdG9yeShkZXBlbmRlbmN5PzogYW55KSB7XHJcbiAgcmV0dXJuIGRlcGVuZGVuY3k7XHJcbn1cclxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input, Optional, SkipSelf, ViewChild, } from '@angular/core';\nimport { ControlContainer, ReactiveFormsModule } from '@angular/forms';\nimport { NgbDateAdapter, NgbDatepickerModule, NgbInputDatepicker, NgbTimeAdapter, NgbTimepicker, NgbTimepickerModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { DateTimeAdapter } from '@abp/ng.theme.shared';\nimport { selfFactory } from '../../utils/factory.util';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ng-bootstrap/ng-bootstrap\";\nimport * as i3 from \"@ngx-validate/core\";\nexport class ExtensibleDateTimePickerComponent {\n constructor() {\n this.cdRef = inject(ChangeDetectorRef);\n this.prop = input();\n this.meridian = input(false);\n this.placement = input('bottom-left');\n }\n setDate(dateStr) {\n this.date.writeValue(dateStr);\n }\n setTime(dateStr) {\n this.time.writeValue(dateStr);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.7\", 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 }, { propertyName: \"time\", first: true, predicate: NgbTimepicker, descendants: true }], exportAs: [\"abpExtensibleDateTimePicker\"], ngImport: i0, template: `\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setTime($event)\"\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 [placement]=\"placement()\"\r\n />\r\n <ngb-timepicker\r\n #timepicker\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setDate($event)\"\r\n [meridian]=\"meridian()\"\r\n />\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.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: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: NgbDatepickerModule }, { kind: \"directive\", type: i2.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: i2.NgbTimepicker, selector: \"ngb-timepicker\", inputs: [\"meridian\", \"spinners\", \"seconds\", \"hourStep\", \"minuteStep\", \"secondStep\", \"readonlyInputs\", \"size\"], exportAs: [\"ngbTimepicker\"] }, { kind: \"ngmodule\", type: NgxValidateCoreModule }, { kind: \"directive\", type: i3.ValidationDirective, selector: \"[formControl],[formControlName]\", exportAs: [\"validationDirective\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n {\n provide: NgbDateAdapter,\n useClass: DateTimeAdapter,\n },\n {\n provide: NgbTimeAdapter,\n useClass: DateTimeAdapter,\n },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{\n exportAs: 'abpExtensibleDateTimePicker',\n imports: [\n ReactiveFormsModule,\n NgbDatepickerModule,\n NgbTimepickerModule,\n NgxValidateCoreModule,\n ],\n selector: 'abp-extensible-date-time-picker',\n template: `\r\n <input\r\n [id]=\"prop().id\"\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setTime($event)\"\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 [placement]=\"placement()\"\r\n />\r\n <ngb-timepicker\r\n #timepicker\r\n [formControlName]=\"prop().name\"\r\n (ngModelChange)=\"setDate($event)\"\r\n [meridian]=\"meridian()\"\r\n />\r\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n {\n provide: NgbDateAdapter,\n useClass: DateTimeAdapter,\n },\n {\n provide: NgbTimeAdapter,\n useClass: DateTimeAdapter,\n },\n ],\n }]\n }], propDecorators: { date: [{\n type: ViewChild,\n args: [NgbInputDatepicker]\n }], time: [{\n type: ViewChild,\n args: [NgbTimepicker]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS10aW1lLXBpY2tlci9leHRlbnNpYmxlLWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsYUFBYSxFQUNiLG1CQUFtQixHQUVwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBZ0R2RCxNQUFNLE9BQU8saUNBQWlDO0lBOUM5QztRQStDa0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWxELFNBQUksR0FBRyxLQUFLLEVBQVksQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxLQUFLLENBQVksYUFBYSxDQUFDLENBQUM7S0FZN0M7SUFQQyxPQUFPLENBQUMsT0FBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FoQlUsaUNBQWlDO2tHQUFqQyxpQ0FBaUMsdWdCQU9qQyxrQkFBa0IsdUVBQ2xCLGFBQWEsMkZBN0NkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDJEQXpCQyxtQkFBbUIsc2pCQUNuQixtQkFBbUIsNGhCQUNuQixtQkFBbUIscVBBQ25CLHFCQUFxQix5SkF3QlI7WUFDYjtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixVQUFVLEVBQUUsV0FBVztnQkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzthQUMzRDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixRQUFRLEVBQUUsZUFBZTthQUMxQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixRQUFRLEVBQUUsZUFBZTthQUMxQjtTQUNGOzsyRkFFVSxpQ0FBaUM7a0JBOUM3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixxQkFBcUI7cUJBQ3RCO29CQUNELFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSxXQUFXOzRCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUMzRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsUUFBUSxFQUFFLGVBQWU7eUJBQzFCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixRQUFRLEVBQUUsZUFBZTt5QkFDMUI7cUJBQ0Y7aUJBQ0Y7OEJBUWdDLElBQUk7c0JBQWxDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNILElBQUk7c0JBQTdCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBTa2lwU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiRGF0ZUFkYXB0ZXIsXHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JJbnB1dERhdGVwaWNrZXIsXHJcbiAgTmdiVGltZUFkYXB0ZXIsXHJcbiAgTmdiVGltZXBpY2tlcixcclxuICBOZ2JUaW1lcGlja2VyTW9kdWxlLFxyXG4gIFBsYWNlbWVudCxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRm9ybVByb3AgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1wcm9wcyc7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgXSxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWRhdGUtdGltZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8aW5wdXRcclxuICAgICAgW2lkXT1cInByb3AoKS5pZFwiXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcCgpLm5hbWVcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRUaW1lKCRldmVudClcIlxyXG4gICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAoa2V5dXAuc3BhY2UpPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICNkYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICBbcGxhY2VtZW50XT1cInBsYWNlbWVudCgpXCJcclxuICAgIC8+XHJcbiAgICA8bmdiLXRpbWVwaWNrZXJcclxuICAgICAgI3RpbWVwaWNrZXJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wKCkubmFtZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldERhdGUoJGV2ZW50KVwiXHJcbiAgICAgIFttZXJpZGlhbl09XCJtZXJpZGlhbigpXCJcclxuICAgIC8+XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IHNlbGZGYWN0b3J5LFxyXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29udHJvbENvbnRhaW5lcl1dLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsXHJcbiAgICAgIHVzZUNsYXNzOiBEYXRlVGltZUFkYXB0ZXIsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOZ2JUaW1lQWRhcHRlcixcclxuICAgICAgdXNlQ2xhc3M6IERhdGVUaW1lQWRhcHRlcixcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcHJvcCA9IGlucHV0PEZvcm1Qcm9wPigpO1xyXG4gIG1lcmlkaWFuID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHBsYWNlbWVudCA9IGlucHV0PFBsYWNlbWVudD4oJ2JvdHRvbS1sZWZ0Jyk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTmdiSW5wdXREYXRlcGlja2VyKSBkYXRlITogTmdiSW5wdXREYXRlcGlja2VyO1xyXG4gIEBWaWV3Q2hpbGQoTmdiVGltZXBpY2tlcikgdGltZSE6IE5nYlRpbWVwaWNrZXI7XHJcblxyXG4gIHNldERhdGUoZGF0ZVN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRhdGUud3JpdGVWYWx1ZShkYXRlU3RyKTtcclxuICB9XHJcblxyXG4gIHNldFRpbWUoZGF0ZVN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRpbWUud3JpdGVWYWx1ZShkYXRlU3RyKTtcclxuICB9XHJcbn1cclxuIl19","import { InjectionToken } from '@angular/core';\nexport const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER');\nexport const EXTENSIONS_ACTION_TYPE = new InjectionToken('EXTENSIONS_ACTION_TYPE');\nexport const EXTENSIONS_ACTION_DATA = new InjectionToken('EXTENSIONS_ACTION_DATA');\nexport const EXTENSIONS_ACTION_CALLBACK = new InjectionToken('EXTENSIONS_ACTION_DATA');\nexport const PROP_DATA_STREAM = new InjectionToken('PROP_DATA_STREAM');\nexport const ROW_RECORD = new InjectionToken('ROW_RECORD');\nexport const ENTITY_PROP_TYPE_CLASSES = new InjectionToken('ENTITY_PROP_TYPE_CLASSES', {\n factory: () => ({}),\n});\nexport const EXTENSIONS_FORM_PROP = new InjectionToken('EXTENSIONS_FORM_PROP');\nexport const EXTENSIONS_FORM_PROP_DATA = new InjectionToken('EXTENSIONS_FORM_PROP_DATA');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3Rva2Vucy9leHRlbnNpb25zLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQVMsdUJBQXVCLENBQUMsQ0FBQztBQUd6RixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBYSx3QkFBd0IsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFhLHdCQUF3QixDQUFDLENBQUM7QUFDL0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELHdCQUF3QixDQUN6QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLGtCQUFrQixDQUFDLENBQUM7QUFLeEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFNLFlBQVksQ0FBQyxDQUFDO0FBR2hFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsRUFDMUI7SUFDRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUEwQixDQUFBO0NBQzNDLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFXLHNCQUFzQixDQUFDLENBQUM7QUFDekYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQVUsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbkNhbGxiYWNrLCBSZWFkb25seUFjdGlvbkRhdGEgYXMgQWN0aW9uRGF0YSB9IGZyb20gJy4uL21vZGVscy9hY3Rpb25zJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0lERU5USUZJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRVhURU5TSU9OU19JREVOVElGSUVSJyk7XHJcbmV4cG9ydCB0eXBlIEFjdGlvbktleXMgPSBFeHRyYWN0PCdlbnRpdHlBY3Rpb25zJyB8ICd0b29sYmFyQWN0aW9ucycsIGtleW9mIEV4dGVuc2lvbnNTZXJ2aWNlPjtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0FDVElPTl9UWVBFID0gbmV3IEluamVjdGlvblRva2VuPEFjdGlvbktleXM+KCdFWFRFTlNJT05TX0FDVElPTl9UWVBFJyk7XHJcblxyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19BQ1RJT05fREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25EYXRhPignRVhURU5TSU9OU19BQ1RJT05fREFUQScpO1xyXG5leHBvcnQgY29uc3QgRVhURU5TSU9OU19BQ1RJT05fQ0FMTEJBQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48QWN0aW9uQ2FsbGJhY2s8dW5rbm93bj4+KFxyXG4gICdFWFRFTlNJT05TX0FDVElPTl9EQVRBJyxcclxuKTtcclxuZXhwb3J0IGNvbnN0IFBST1BfREFUQV9TVFJFQU0gPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTxhbnk+PignUFJPUF9EQVRBX1NUUkVBTScpO1xyXG50eXBlIEVudGl0eVByb3BUeXBlQ2xhc3NNYXAgPSB7XHJcbiAgW2tleSBpbiBlUHJvcFR5cGVdOiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgUk9XX1JFQ09SRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdST1dfUkVDT1JEJyk7XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlQcm9wVHlwZUNsYXNzID0gUGFydGlhbDxFbnRpdHlQcm9wVHlwZUNsYXNzTWFwPjtcclxuZXhwb3J0IGNvbnN0IEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFbnRpdHlQcm9wVHlwZUNsYXNzPihcclxuICAnRU5USVRZX1BST1BfVFlQRV9DTEFTU0VTJyxcclxuICB7XHJcbiAgICBmYWN0b3J5OiAoKSA9PiAoe30gYXMgRW50aXR5UHJvcFR5cGVDbGFzcyksXHJcbiAgfSxcclxuKTtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtUHJvcD4oJ0VYVEVOU0lPTlNfRk9STV9QUk9QJyk7XHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPHVua25vd24+KCdFWFRFTlNJT05TX0ZPUk1fUFJPUF9EQVRBJyk7XHJcbiJdfQ==","export const EXTRA_PROPERTIES_KEY = 'extraProperties';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEVYVFJBX1BST1BFUlRJRVNfS0VZID0gJ2V4dHJhUHJvcGVydGllcyc7XHJcbiJdfQ==","import { LinkedList } from '@abp/utils';\nexport class PropList extends LinkedList {\n}\nexport class PropData {\n get data() {\n return {\n getInjected: this.getInjected,\n index: this.index,\n record: this.record,\n };\n }\n}\nexport class Prop {\n constructor(type, name, displayName, permission, visible = _ => true, isExtra = false, template, className, formText, tooltip, displayTextResolver) {\n this.type = type;\n this.name = name;\n this.displayName = displayName;\n this.permission = permission;\n this.visible = visible;\n this.isExtra = isExtra;\n this.template = template;\n this.className = className;\n this.formText = formText;\n this.tooltip = tooltip;\n this.displayTextResolver = displayTextResolver;\n this.displayName = this.displayName || this.name;\n }\n}\nexport class PropsFactory {\n constructor() {\n this.contributorCallbacks = {};\n }\n get(name) {\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n return new this._ctor(this.contributorCallbacks[name]);\n }\n}\nexport class Props {\n get props() {\n const propList = new this._ctor();\n this.callbackList.forEach(callback => callback(propList));\n return propList;\n }\n constructor(callbackList) {\n this.callbackList = callbackList;\n }\n addContributor(contributeCallback) {\n this.callbackList.push(contributeCallback);\n }\n clearContributors() {\n while (this.callbackList.length)\n this.callbackList.pop();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4QyxNQUFNLE9BQWdCLFFBQStCLFNBQVEsVUFBYTtDQUFHO0FBRTdFLE1BQU0sT0FBZ0IsUUFBUTtJQVM1QixJQUFJLElBQUk7UUFDTixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUlELE1BQU0sT0FBZ0IsSUFBSTtJQUN4QixZQUNrQixJQUFlLEVBQ2YsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLFVBQWtCLEVBQ2xCLFVBQTRCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUNyQyxVQUFVLEtBQUssRUFDZixRQUFvQixFQUNwQixTQUFrQixFQUNsQixRQUFpQixFQUNqQixPQUF5QixFQUN6QixtQkFBZ0Q7UUFWaEQsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBRWhFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQUVVLHlCQUFvQixHQUFrRCxFQUFFLENBQUM7SUFPbkYsQ0FBQztJQUxDLEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixLQUFLO0lBR3pCLElBQUksS0FBSztRQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFMUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQTZCLFlBQTBDO1FBQTFDLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtJQUFHLENBQUM7SUFFM0UsY0FBYyxDQUFDLGtCQUE4QztRQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdE9wdGlvbnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJ0BhYnAvdXRpbHMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BUb29sdGlwIH0gZnJvbSAnLi9mb3JtLXByb3BzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wTGlzdDxSID0gYW55LCBBID0gUHJvcDxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+IHt9XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcERhdGE8UiA9IGFueT4ge1xyXG4gIGFic3RyYWN0IGdldEluamVjdGVkOiA8VD4oXHJcbiAgICB0b2tlbjogVHlwZTxUPiB8IEluamVjdGlvblRva2VuPFQ+LFxyXG4gICAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgICBvcHRpb25zPzogSW5qZWN0T3B0aW9ucyxcclxuICApID0+IFQ7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgYWJzdHJhY3QgcmVjb3JkOiBSO1xyXG5cclxuICBnZXQgZGF0YSgpOiBSZWFkb25seVByb3BEYXRhPFI+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkLFxyXG4gICAgICBpbmRleDogdGhpcy5pbmRleCxcclxuICAgICAgcmVjb3JkOiB0aGlzLnJlY29yZCxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZWFkb25seVByb3BEYXRhPFIgPSBhbnk+ID0gUmVhZG9ubHk8T21pdDxQcm9wRGF0YTxSPiwgJ2RhdGEnPj47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcDxSID0gYW55PiB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogZVByb3BUeXBlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb246IHN0cmluZyxcclxuICAgIHB1YmxpYyByZWFkb25seSB2aXNpYmxlOiBQcm9wUHJlZGljYXRlPFI+ID0gXyA9PiB0cnVlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGlzRXh0cmEgPSBmYWxzZSxcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZT86IFR5cGU8YW55PixcclxuICAgIHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybVRleHQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbHRpcD86IEZvcm1Qcm9wVG9vbHRpcCxcclxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dFJlc29sdmVyPzogUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8Uj4sXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gdGhpcy5kaXNwbGF5TmFtZSB8fCB0aGlzLm5hbWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9wQ2FsbGJhY2s8VCwgUiA9IGFueT4gPSAoZGF0YTogT21pdDxQcm9wRGF0YTxUPiwgJ2RhdGEnPiwgYXV4RGF0YT86IGFueSkgPT4gUjtcclxuZXhwb3J0IHR5cGUgUHJvcFByZWRpY2F0ZTxUPiA9IChkYXRhPzogT21pdDxQcm9wRGF0YTxUPiwgJ2RhdGEnPiwgYXV4RGF0YT86IGFueSkgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8VD4gPSAoZGF0YT86IE9taXQ8UHJvcERhdGE8VD4sICdkYXRhJz4pID0+IHN0cmluZztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wc0ZhY3Rvcnk8QyBleHRlbmRzIFByb3BzPGFueT4+IHtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2N0b3I6IFR5cGU8Qz47XHJcbiAgcHJpdmF0ZSBjb250cmlidXRvckNhbGxiYWNrczogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEluZmVycmVkUHJvcExpc3Q8Qz4+ID0ge307XHJcblxyXG4gIGdldChuYW1lOiBzdHJpbmcpOiBDIHtcclxuICAgIHRoaXMuY29udHJpYnV0b3JDYWxsYmFja3NbbmFtZV0gPSB0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiBuZXcgdGhpcy5fY3Rvcih0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wczxMIGV4dGVuZHMgUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8TD4+PiB7XHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9jdG9yOiBUeXBlPEw+O1xyXG5cclxuICBnZXQgcHJvcHMoKTogTCB7XHJcbiAgICBjb25zdCBwcm9wTGlzdCA9IG5ldyB0aGlzLl9jdG9yKCk7XHJcblxyXG4gICAgdGhpcy5jYWxsYmFja0xpc3QuZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjayhwcm9wTGlzdCkpO1xyXG5cclxuICAgIHJldHVybiBwcm9wTGlzdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FsbGJhY2tMaXN0OiBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMPltdKSB7fVxyXG5cclxuICBhZGRDb250cmlidXRvcihjb250cmlidXRlQ2FsbGJhY2s6IFByb3BDb250cmlidXRvckNhbGxiYWNrPEw+KSB7XHJcbiAgICB0aGlzLmNhbGxiYWNrTGlzdC5wdXNoKGNvbnRyaWJ1dGVDYWxsYmFjayk7XHJcbiAgfVxyXG5cclxuICBjbGVhckNvbnRyaWJ1dG9ycygpIHtcclxuICAgIHdoaWxlICh0aGlzLmNhbGxiYWNrTGlzdC5sZW5ndGgpIHRoaXMuY2FsbGJhY2tMaXN0LnBvcCgpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnksIEluZmVycmVkUHJvcDxMPj4+ID0gUmVjb3JkPFxyXG4gIHN0cmluZyxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMPltdXHJcbj47XHJcblxyXG5leHBvcnQgdHlwZSBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxMIGV4dGVuZHMgUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8TD4+PiA9IChcclxuICBwcm9wTGlzdDogTCxcclxuKSA9PiBhbnk7XHJcblxyXG50eXBlIEluZmVycmVkUHJvcExpc3Q8Qz4gPSBDIGV4dGVuZHMgUHJvcHM8aW5mZXIgTD4gPyBMIDogbmV2ZXI7XHJcbmV4cG9ydCB0eXBlIEluZmVycmVkUHJvcDxUPiA9IFQgZXh0ZW5kcyBQcm9wTGlzdDxhbnksIGluZmVyIFU+ID8gVSA6IFQ7XHJcbiJdfQ==","import { Prop, PropData, PropList, Props, PropsFactory, } from './props';\nexport class FormPropList extends PropList {\n}\nexport class FormProps extends Props {\n constructor() {\n super(...arguments);\n this._ctor = FormPropList;\n }\n}\nexport class GroupedFormPropList {\n constructor() {\n this.items = [];\n this.count = 1;\n }\n addItem(item) {\n const groupName = item.group?.name;\n let group = this.items.find(i => i.group?.name === groupName);\n if (group) {\n group.formPropList.addTail(item);\n }\n else {\n group = {\n formPropList: new FormPropList(),\n group: item.group || { name: `default${this.count++}`, className: item.group?.className },\n };\n group.formPropList.addHead(item);\n this.items.push(group);\n }\n }\n}\nexport class CreateFormPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = FormProps;\n }\n}\nexport class EditFormPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = FormProps;\n }\n}\nexport class FormProp extends Prop {\n constructor(options) {\n super(options.type, options.name, options.displayName || '', options.permission || '', options.visible, options.isExtra, options.template, options.className, options.formText, options.tooltip);\n this.group = options.group;\n this.className = options.className;\n this.formText = options.formText;\n this.tooltip = options.tooltip;\n this.asyncValidators = options.asyncValidators || (_ => []);\n this.validators = options.validators || (_ => []);\n this.disabled = options.disabled || (_ => false);\n this.readonly = options.readonly || (_ => false);\n this.autocomplete = options.autocomplete || 'off';\n this.options = options.options;\n this.id = options.id || options.name;\n const defaultValue = options.defaultValue;\n this.defaultValue = isFalsyValue(defaultValue) ? defaultValue : defaultValue || '';\n this.displayTextResolver = options.displayTextResolver;\n }\n static create(options) {\n return new FormProp(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(FormProp.create);\n }\n}\nexport class FormPropData extends PropData {\n constructor(injector, record) {\n super();\n this.record = record;\n this.getInjected = injector.get.bind(injector);\n }\n}\nfunction isFalsyValue(defaultValue) {\n return [0, '', false].indexOf(defaultValue) > -1;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9mb3JtLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDTCxJQUFJLEVBSUosUUFBUSxFQUVSLFFBQVEsRUFFUixLQUFLLEVBQ0wsWUFBWSxHQUNiLE1BQU0sU0FBUyxDQUFDO0FBR2pCLE1BQU0sT0FBTyxZQUFzQixTQUFRLFFBQXdCO0NBQUc7QUFFdEUsTUFBTSxPQUFPLFNBQW1CLFNBQVEsS0FBK0I7SUFBdkU7O1FBQ1ksVUFBSyxHQUEwQixZQUFZLENBQUM7SUFDeEQsQ0FBQztDQUFBO0FBWUQsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNrQixVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUNsRCxVQUFLLEdBQUcsQ0FBQyxDQUFDO0lBZVosQ0FBQztJQWRDLE9BQU8sQ0FBQyxJQUFpQjtRQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRztnQkFDTixZQUFZLEVBQUUsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxL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LENBQUc7UUFJekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUE0QkQsU0FBUyxZQUFZLENBQUMsWUFBdUM7SUFDM0QsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBQcm9wLFxyXG4gIFByb3BDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgUHJvcERhdGEsXHJcbiAgUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXIsXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcFByZWRpY2F0ZSxcclxuICBQcm9wcyxcclxuICBQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi9wcm9wcyc7XHJcbmltcG9ydCB7IEZpbHRlcmVkV2l0aE9wdGlvbnMsIFBhcnRpYWxXaXRoT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL21vZGVsLnV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcExpc3Q8UiA9IGFueT4gZXh0ZW5kcyBQcm9wTGlzdDxSLCBGb3JtUHJvcDxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcHM8UiA9IGFueT4gZXh0ZW5kcyBQcm9wczxQcm9wTGlzdDxSLCBGb3JtUHJvcDxSPj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8Rm9ybVByb3BMaXN0PFI+PiA9IEZvcm1Qcm9wTGlzdDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUHJvcEdyb3VwIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Qcm9wVG9vbHRpcCB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIHBsYWNlbWVudD86ICd0b3AnIHwgJ2VuZCcgfCAnYm90dG9tJyB8ICdzdGFydCc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHcm91cGVkRm9ybVByb3BMaXN0PFIgPSBhbnk+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXM6IEdyb3VwZWRGb3JtUHJvcEl0ZW1bXSA9IFtdO1xyXG4gIGNvdW50ID0gMTtcclxuICBhZGRJdGVtKGl0ZW06IEZvcm1Qcm9wPFI+KSB7XHJcbiAgICBjb25zdCBncm91cE5hbWUgPSBpdGVtLmdyb3VwPy5uYW1lO1xyXG4gICAgbGV0IGdyb3VwID0gdGhpcy5pdGVtcy5maW5kKGkgPT4gaS5ncm91cD8ubmFtZSA9PT0gZ3JvdXBOYW1lKTtcclxuICAgIGlmIChncm91cCkge1xyXG4gICAgICBncm91cC5mb3JtUHJvcExpc3QuYWRkVGFpbChpdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGdyb3VwID0ge1xyXG4gICAgICAgIGZvcm1Qcm9wTGlzdDogbmV3IEZvcm1Qcm9wTGlzdCgpLFxyXG4gICAgICAgIGdyb3VwOiBpdGVtLmdyb3VwIHx8IHsgbmFtZTogYGRlZmF1bHQke3RoaXMuY291bnQrK31gLCBjbGFzc05hbWU6IGl0ZW0uZ3JvdXA/LmNsYXNzTmFtZSB9LFxyXG4gICAgICB9O1xyXG4gICAgICBncm91cC5mb3JtUHJvcExpc3QuYWRkSGVhZChpdGVtKTtcclxuICAgICAgdGhpcy5pdGVtcy5wdXNoKGdyb3VwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlZEZvcm1Qcm9wSXRlbSB7XHJcbiAgZ3JvdXA/OiBGb3JtUHJvcEdyb3VwO1xyXG4gIGZvcm1Qcm9wTGlzdDogRm9ybVByb3BMaXN0O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeTxSID0gYW55PiBleHRlbmRzIFByb3BzRmFjdG9yeTxGb3JtUHJvcHM8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8Rm9ybVByb3BzPFI+PiA9IEZvcm1Qcm9wcztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRGb3JtUHJvcHNGYWN0b3J5PFIgPSBhbnk+IGV4dGVuZHMgUHJvcHNGYWN0b3J5PEZvcm1Qcm9wczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxGb3JtUHJvcHM8Uj4+ID0gRm9ybVByb3BzO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybVByb3A8UiA9IGFueT4gZXh0ZW5kcyBQcm9wPFI+IHtcclxuICByZWFkb25seSB2YWxpZGF0b3JzOiBQcm9wQ2FsbGJhY2s8UiwgVmFsaWRhdG9yRm5bXT47XHJcbiAgcmVhZG9ubHkgYXN5bmNWYWxpZGF0b3JzOiBQcm9wQ2FsbGJhY2s8UiwgQXN5bmNWYWxpZGF0b3JGbltdPjtcclxuICByZWFkb25seSBkaXNhYmxlZDogUHJvcFByZWRpY2F0ZTxSPjtcclxuICByZWFkb25seSByZWFkb25seTogUHJvcFByZWRpY2F0ZTxSPjtcclxuICByZWFkb25seSBhdXRvY29tcGxldGU6IHN0cmluZztcclxuICByZWFkb25seSBkZWZhdWx0VmFsdWU6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCBEYXRlIHwgQXJyYXk8c3RyaW5nPjtcclxuICByZWFkb25seSBvcHRpb25zOiBQcm9wQ2FsbGJhY2s8UiwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcmVhZG9ubHkgdGVtcGxhdGU/OiBUeXBlPGFueT47XHJcbiAgcmVhZG9ubHkgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGdyb3VwPzogRm9ybVByb3BHcm91cCB8IHVuZGVmaW5lZDtcclxuICByZWFkb25seSBkaXNwbGF5VGV4dFJlc29sdmVyPzogUHJvcERpc3BsYXlUZXh0UmVzb2x2ZXI8Uj47XHJcbiAgcmVhZG9ubHkgZm9ybVRleHQ/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcD86IEZvcm1Qcm9wVG9vbHRpcDtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uczogRm9ybVByb3BPcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgb3B0aW9ucy50eXBlLFxyXG4gICAgICBvcHRpb25zLm5hbWUsXHJcbiAgICAgIG9wdGlvbnMuZGlzcGxheU5hbWUgfHwgJycsXHJcbiAgICAgIG9wdGlvbnMucGVybWlzc2lvbiB8fCAnJyxcclxuICAgICAgb3B0aW9ucy52aXNpYmxlLFxyXG4gICAgICBvcHRpb25zLmlzRXh0cmEsXHJcbiAgICAgIG9wdGlvbnMudGVtcGxhdGUsXHJcbiAgICAgIG9wdGlvbnMuY2xhc3NOYW1lLFxyXG4gICAgICBvcHRpb25zLmZvcm1UZXh0LFxyXG4gICAgICBvcHRpb25zLnRvb2x0aXAsXHJcbiAgICApO1xyXG4gICAgdGhpcy5ncm91cCA9IG9wdGlvbnMuZ3JvdXA7XHJcbiAgICB0aGlzLmNsYXNzTmFtZSA9IG9wdGlvbnMuY2xhc3NOYW1lO1xyXG4gICAgdGhpcy5mb3JtVGV4dCA9IG9wdGlvbnMuZm9ybVRleHQ7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSBvcHRpb25zLnRvb2x0aXA7XHJcbiAgICB0aGlzLmFzeW5jVmFsaWRhdG9ycyA9IG9wdGlvbnMuYXN5bmNWYWxpZGF0b3JzIHx8IChfID0+IFtdKTtcclxuICAgIHRoaXMudmFsaWRhdG9ycyA9IG9wdGlvbnMudmFsaWRhdG9ycyB8fCAoXyA9PiBbXSk7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gb3B0aW9ucy5kaXNhYmxlZCB8fCAoXyA9PiBmYWxzZSk7XHJcbiAgICB0aGlzLnJlYWRvbmx5ID0gb3B0aW9ucy5yZWFkb25seSB8fCAoXyA9PiBmYWxzZSk7XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZSA9IG9wdGlvbnMuYXV0b2NvbXBsZXRlIHx8ICdvZmYnO1xyXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zO1xyXG4gICAgdGhpcy5pZCA9IG9wdGlvbnMuaWQgfHwgb3B0aW9ucy5uYW1lO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gb3B0aW9ucy5kZWZhdWx0VmFsdWU7XHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGlzRmFsc3lWYWx1ZShkZWZhdWx0VmFsdWUpID8gKGRlZmF1bHRWYWx1ZSBhcyBudW1iZXIpIDogZGVmYXVsdFZhbHVlIHx8ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dFJlc29sdmVyID0gb3B0aW9ucy5kaXNwbGF5VGV4dFJlc29sdmVyO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZTxSID0gYW55PihvcHRpb25zOiBGb3JtUHJvcE9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgRm9ybVByb3A8Uj4ob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlTWFueTxSID0gYW55PihhcnJheU9mT3B0aW9uczogRm9ybVByb3BPcHRpb25zPFI+W10pIHtcclxuICAgIHJldHVybiBhcnJheU9mT3B0aW9ucy5tYXAoRm9ybVByb3AuY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtUHJvcERhdGE8UiA9IGFueT4gZXh0ZW5kcyBQcm9wRGF0YTxSPiB7XHJcbiAgZ2V0SW5qZWN0ZWQ6IFByb3BEYXRhPFI+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHB1YmxpYyByZWFkb25seSByZWNvcmQ6IFIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIE9wdGlvbmFsS2V5cyA9XHJcbiAgfCAncGVybWlzc2lvbidcclxuICB8ICd2aXNpYmxlJ1xyXG4gIHwgJ2Rpc3BsYXlOYW1lJ1xyXG4gIHwgJ2lzRXh0cmEnXHJcbiAgfCAndmFsaWRhdG9ycydcclxuICB8ICdhc3luY1ZhbGlkYXRvcnMnXHJcbiAgfCAnZGlzYWJsZWQnXHJcbiAgfCAncmVhZG9ubHknXHJcbiAgfCAnYXV0b2NvbXBsZXRlJ1xyXG4gIHwgJ2RlZmF1bHRWYWx1ZSdcclxuICB8ICdvcHRpb25zJ1xyXG4gIHwgJ2lkJ1xyXG4gIHwgJ2Rpc3BsYXlUZXh0UmVzb2x2ZXInXHJcbiAgfCAnZm9ybVRleHQnXHJcbiAgfCAndG9vbHRpcCc7XHJcbmV4cG9ydCB0eXBlIEZvcm1Qcm9wT3B0aW9uczxSID0gYW55PiA9IFBhcnRpYWxXaXRoT3B0aW9uczxGb3JtUHJvcDxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxGb3JtUHJvcDxSPiwgT3B0aW9uYWxLZXlzPjtcclxuXHJcbmV4cG9ydCB0eXBlIENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UiA9IGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBGb3JtUHJvcDxSPltdPjtcclxuZXhwb3J0IHR5cGUgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8Rm9ybVByb3BMaXN0PFI+PjtcclxuZXhwb3J0IHR5cGUgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IFByb3BDb250cmlidXRvckNhbGxiYWNrczxGb3JtUHJvcExpc3Q8Uj4+O1xyXG5leHBvcnQgdHlwZSBFZGl0Rm9ybVByb3BEZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEZvcm1Qcm9wPFI+W10+O1xyXG5leHBvcnQgdHlwZSBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8Rm9ybVByb3BMaXN0PFI+PjtcclxuZXhwb3J0IHR5cGUgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UiA9IGFueT4gPSBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rm9ybVByb3BMaXN0PFI+PjtcclxuXHJcbmZ1bmN0aW9uIGlzRmFsc3lWYWx1ZShkZWZhdWx0VmFsdWU/OiBGb3JtUHJvcFsnZGVmYXVsdFZhbHVlJ10pOiBib29sZWFuIHtcclxuICByZXR1cm4gWzAsICcnLCBmYWxzZV0uaW5kZXhPZihkZWZhdWx0VmFsdWUgYXMgYW55KSA+IC0xO1xyXG59XHJcbiJdfQ==","import { RestService } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nconst TYPEAHEAD_TEXT_SUFFIX = '_Text';\nconst TYPEAHEAD_TEXT_SUFFIX_REGEX = /_Text$/;\nexport function createTypeaheadOptions(lookup) {\n return (data, searchText) => searchText && data\n ? data\n .getInjected(RestService)\n .request({\n method: 'GET',\n url: lookup.url || '',\n params: {\n [lookup.filterParamName || '']: searchText,\n },\n }, { apiName: 'Default' })\n .pipe(map((response) => {\n const list = response[lookup.resultListPropertyName || ''];\n const mapToOption = (item) => ({\n key: item[lookup.displayPropertyName || ''],\n value: item[lookup.valuePropertyName || ''],\n });\n return list.map(mapToOption);\n }))\n : of([]);\n}\nexport function getTypeaheadType(lookup, name) {\n if (!lookup.url) {\n return name.endsWith(TYPEAHEAD_TEXT_SUFFIX) ? \"hidden\" /* ePropType.Hidden */ : undefined;\n }\n else {\n return \"typeahead\" /* ePropType.Typeahead */;\n }\n}\nexport function createTypeaheadDisplayNameGenerator(displayNameGeneratorFn, properties) {\n return (displayName, fallback) => {\n const name = removeTypeaheadTextSuffix(fallback.name || '');\n return displayNameGeneratorFn(displayName || properties[name].displayName, {\n name,\n resource: fallback.resource,\n });\n };\n}\nexport function addTypeaheadTextSuffix(name) {\n return name + TYPEAHEAD_TEXT_SUFFIX;\n}\nexport function hasTypeaheadTextSuffix(name) {\n return TYPEAHEAD_TEXT_SUFFIX_REGEX.test(name);\n}\nexport function removeTypeaheadTextSuffix(name) {\n return name.replace(TYPEAHEAD_TEXT_SUFFIX_REGEX, '');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi91dGlscy90eXBlYWhlYWQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFDLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQUN0QyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBQztBQUU3QyxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE1BQW9DO0lBRXBDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsVUFBVSxJQUFJLElBQUk7UUFDaEIsQ0FBQyxDQUFDLElBQUk7YUFDRCxXQUFXLENBQUMsV0FBVyxDQUFDO2FBQ3hCLE9BQU8sQ0FDTjtZQUNFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRTtZQUNyQixNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVU7YUFDM0M7U0FDRixFQUNELEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUN2QjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNELE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7Z0JBQzNDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQzthQUM1QyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQ0g7UUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFvQyxFQUFFLElBQVk7SUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGlDQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdFLENBQUM7U0FBTSxDQUFDO1FBQ04sNkNBQTJCO0lBQzdCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1DQUFtQyxDQUNqRCxzQkFBK0QsRUFDL0QsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUMvQixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sc0JBQXNCLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDekUsSUFBSTtZQUNKLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQVk7SUFDakQsT0FBTyxJQUFJLEdBQUcscUJBQXFCLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxJQUFZO0lBQ2pELE9BQU8sMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsSUFBWTtJQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0bywgUmVzdFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuXHJcbmNvbnN0IFRZUEVBSEVBRF9URVhUX1NVRkZJWCA9ICdfVGV4dCc7XHJcbmNvbnN0IFRZUEVBSEVBRF9URVhUX1NVRkZJWF9SRUdFWCA9IC9fVGV4dCQvO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMoXHJcbiAgbG9va3VwOiBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4pOiBQcm9wQ2FsbGJhY2s8YW55LCBPYnNlcnZhYmxlPEFCUC5PcHRpb248YW55PltdPj4ge1xyXG4gIHJldHVybiAoZGF0YSwgc2VhcmNoVGV4dCkgPT5cclxuICAgIHNlYXJjaFRleHQgJiYgZGF0YVxyXG4gICAgICA/IGRhdGFcclxuICAgICAgICAgIC5nZXRJbmplY3RlZChSZXN0U2VydmljZSlcclxuICAgICAgICAgIC5yZXF1ZXN0KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgICB1cmw6IGxvb2t1cC51cmwgfHwgJycsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICBbbG9va3VwLmZpbHRlclBhcmFtTmFtZSB8fCAnJ106IHNlYXJjaFRleHQsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiAnRGVmYXVsdCcgfSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gcmVzcG9uc2VbbG9va3VwLnJlc3VsdExpc3RQcm9wZXJ0eU5hbWUgfHwgJyddO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1hcFRvT3B0aW9uID0gKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGtleTogaXRlbVtsb29rdXAuZGlzcGxheVByb3BlcnR5TmFtZSB8fCAnJ10sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVtsb29rdXAudmFsdWVQcm9wZXJ0eU5hbWUgfHwgJyddLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybiBsaXN0Lm1hcChtYXBUb09wdGlvbik7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICA6IG9mKFtdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVhaGVhZFR5cGUobG9va3VwOiBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLCBuYW1lOiBzdHJpbmcpIHtcclxuICBpZiAoIWxvb2t1cC51cmwpIHtcclxuICAgIHJldHVybiBuYW1lLmVuZHNXaXRoKFRZUEVBSEVBRF9URVhUX1NVRkZJWCkgPyBlUHJvcFR5cGUuSGlkZGVuIDogdW5kZWZpbmVkO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZVByb3BUeXBlLlR5cGVhaGVhZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcihcclxuICBkaXNwbGF5TmFtZUdlbmVyYXRvckZuOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4sXHJcbiAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4pOiBPYmplY3RFeHRlbnNpb25zLkRpc3BsYXlOYW1lR2VuZXJhdG9yRm4ge1xyXG4gIHJldHVybiAoZGlzcGxheU5hbWUsIGZhbGxiYWNrKSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcmVtb3ZlVHlwZWFoZWFkVGV4dFN1ZmZpeChmYWxsYmFjay5uYW1lIHx8ICcnKTtcclxuICAgIHJldHVybiBkaXNwbGF5TmFtZUdlbmVyYXRvckZuKGRpc3BsYXlOYW1lIHx8IHByb3BlcnRpZXNbbmFtZV0uZGlzcGxheU5hbWUsIHtcclxuICAgICAgbmFtZSxcclxuICAgICAgcmVzb3VyY2U6IGZhbGxiYWNrLnJlc291cmNlLFxyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFR5cGVhaGVhZFRleHRTdWZmaXgobmFtZTogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIG5hbWUgKyBUWVBFQUhFQURfVEVYVF9TVUZGSVg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBUWVBFQUhFQURfVEVYVF9TVUZGSVhfUkVHRVgudGVzdChuYW1lKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVR5cGVhaGVhZFRleHRTdWZmaXgobmFtZTogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShUWVBFQUhFQURfVEVYVF9TVUZGSVhfUkVHRVgsICcnKTtcclxufVxyXG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { AbpValidators, ConfigStateService } from '@abp/ng.core';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class ExtensibleFormPropService {\n constructor() {\n this.#configStateService = inject(ConfigStateService);\n this.meridian$ = this.#configStateService\n .getDeep$('localization.currentCulture.dateTimeFormat.shortTimePattern')\n .pipe(map((shortTimePattern) => (shortTimePattern || '').includes('tt')));\n }\n #configStateService;\n isRequired(validator) {\n return (validator === Validators.required ||\n validator === AbpValidators.required ||\n validator.name === 'required');\n }\n getComponent(prop) {\n if (prop.template) {\n return 'template';\n }\n switch (prop.type) {\n case \"boolean\" /* ePropType.Boolean */:\n return 'checkbox';\n case \"date\" /* ePropType.Date */:\n return 'date';\n case \"datetime\" /* ePropType.DateTime */:\n return 'dateTime';\n case \"hidden\" /* ePropType.Hidden */:\n return 'hidden';\n case \"multiselect\" /* ePropType.MultiSelect */:\n return 'multiselect';\n case \"text\" /* ePropType.Text */:\n return 'textarea';\n case \"time\" /* ePropType.Time */:\n return 'time';\n case \"typeahead\" /* ePropType.Typeahead */:\n return 'typeahead';\n case \"passwordinputgroup\" /* ePropType.PasswordInputGroup */:\n return 'passwordinputgroup';\n default:\n return prop.options ? 'select' : 'input';\n }\n }\n getType(prop) {\n switch (prop.type) {\n case \"date\" /* ePropType.Date */:\n case \"string\" /* ePropType.String */:\n return 'text';\n case \"boolean\" /* ePropType.Boolean */:\n return 'checkbox';\n case \"number\" /* ePropType.Number */:\n return 'number';\n case \"email\" /* ePropType.Email */:\n return 'email';\n case \"password\" /* ePropType.Password */:\n return 'password';\n case \"passwordinputgroup\" /* ePropType.PasswordInputGroup */:\n return 'passwordinputgroup';\n default:\n return 'hidden';\n }\n }\n calcAsterisks(validators) {\n if (!validators)\n return '';\n const required = validators.find(v => this.isRequired(v));\n return required ? '*' : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3Auc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2libGUtZm9ybS1wcm9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtyQyxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRVksd0JBQW1CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFM0QsY0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUI7YUFDakMsUUFBUSxDQUFDLDZEQUE2RCxDQUFDO2FBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBb0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBK0RqRztJQW5FVyxtQkFBbUIsQ0FBOEI7SUFNM0QsVUFBVSxDQUFDLFNBQXNCO1FBQy9CLE9BQU8sQ0FDTCxTQUFTLEtBQUssVUFBVSxDQUFDLFFBQVE7WUFDakMsU0FBUyxLQUFLLGFBQWEsQ0FBQyxRQUFRO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFDRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLFdBQVcsQ0FBQztZQUNyQjtnQkFDRSxPQUFPLG9CQUFvQixDQUFDO1lBQzlCO2dCQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsSUFBYztRQUNwQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixpQ0FBb0I7WUFDcEI7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7WUFDcEI7Z0JBQ0UsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7WUFDakI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7WUFDcEI7Z0JBQ0UsT0FBTyxvQkFBb0IsQ0FBQztZQUM5QjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUF5QjtRQUNyQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBbkVVLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiBpbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWJwVmFsaWRhdG9ycywgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgZVByb3BUeXBlIH0gZnJvbSAnLi4vZW51bXMvcHJvcHMuZW51bSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybVByb3BTZXJ2aWNlIHtcclxuICByZWFkb25seSAgI2NvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG5cclxuICBtZXJpZGlhbiQgPSB0aGlzLiNjb25maWdTdGF0ZVNlcnZpY2VcclxuICAgIC5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmRhdGVUaW1lRm9ybWF0LnNob3J0VGltZVBhdHRlcm4nKVxyXG4gICAgLnBpcGUobWFwKChzaG9ydFRpbWVQYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IChzaG9ydFRpbWVQYXR0ZXJuIHx8ICcnKS5pbmNsdWRlcygndHQnKSkpO1xyXG5cclxuICBpc1JlcXVpcmVkKHZhbGlkYXRvcjogVmFsaWRhdG9yRm4pIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHZhbGlkYXRvciA9PT0gVmFsaWRhdG9ycy5yZXF1aXJlZCB8fFxyXG4gICAgICB2YWxpZGF0b3IgPT09IEFicFZhbGlkYXRvcnMucmVxdWlyZWQgfHxcclxuICAgICAgdmFsaWRhdG9yLm5hbWUgPT09ICdyZXF1aXJlZCdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wb25lbnQocHJvcDogRm9ybVByb3ApIHtcclxuICAgIGlmIChwcm9wLnRlbXBsYXRlKSB7XHJcbiAgICAgIHJldHVybiAndGVtcGxhdGUnO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrYm94JztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGUnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5EYXRlVGltZTpcclxuICAgICAgICByZXR1cm4gJ2RhdGVUaW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuSGlkZGVuOlxyXG4gICAgICAgIHJldHVybiAnaGlkZGVuJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuTXVsdGlTZWxlY3Q6XHJcbiAgICAgICAgcmV0dXJuICdtdWx0aXNlbGVjdCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRleHQ6XHJcbiAgICAgICAgcmV0dXJuICd0ZXh0YXJlYSc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLlRpbWU6XHJcbiAgICAgICAgcmV0dXJuICd0aW1lJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuVHlwZWFoZWFkOlxyXG4gICAgICAgIHJldHVybiAndHlwZWFoZWFkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcHJvcC5vcHRpb25zID8gJ3NlbGVjdCcgOiAnaW5wdXQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZShwcm9wOiBGb3JtUHJvcCkge1xyXG4gICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuU3RyaW5nOlxyXG4gICAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgcmV0dXJuICdjaGVja2JveCc7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLk51bWJlcjpcclxuICAgICAgICByZXR1cm4gJ251bWJlcic7XHJcbiAgICAgIGNhc2UgZVByb3BUeXBlLkVtYWlsOlxyXG4gICAgICAgIHJldHVybiAnZW1haWwnO1xyXG4gICAgICBjYXNlIGVQcm9wVHlwZS5QYXNzd29yZDpcclxuICAgICAgICByZXR1cm4gJ3Bhc3N3b3JkJztcclxuICAgICAgY2FzZSBlUHJvcFR5cGUuUGFzc3dvcmRJbnB1dEdyb3VwOlxyXG4gICAgICAgIHJldHVybiAncGFzc3dvcmRpbnB1dGdyb3VwJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ2hpZGRlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjQXN0ZXJpc2tzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10pIHtcclxuICAgIGlmICghdmFsaWRhdG9ycykgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgcmVxdWlyZWQgPSB2YWxpZGF0b3JzLmZpbmQodiA9PiB0aGlzLmlzUmVxdWlyZWQodikpO1xyXG4gICAgcmV0dXJuIHJlcXVpcmVkID8gJyonIDogJyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Component, ChangeDetectionStrategy, forwardRef, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LocalizationPipe } from '@abp/ng.core';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-validate/core\";\nconst EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ExtensibleFormMultiselectComponent),\n multi: true,\n};\nexport class ExtensibleFormMultiselectComponent {\n constructor() {\n this.prop = input.required();\n this.options = input.required();\n this.selectedValues = [];\n this.disabled = false;\n this.onChange = () => { };\n this.onTouched = () => { };\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n isChecked(value) {\n return this.selectedValues.includes(value);\n }\n onCheckboxChange(value, checked) {\n this.selectedValues = checked\n ? [...this.selectedValues, value]\n : this.selectedValues.filter(item => item !== value);\n this.onChange(this.selectedValues);\n this.onTouched();\n }\n writeValue(value) {\n this.selectedValues = Array.isArray(value) ? [...value] : [];\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: `\r\n <div [id]=\"prop().id\">\r\n @for (option of options(); track option.value) {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [id]=\"'checkbox_' + option.value\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"isChecked(option.value)\"\r\n (change)=\"onCheckboxChange(option.value, $event.target.checked)\"\r\n />\r\n <label [for]=\"'checkbox_' + option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </label>\r\n </div>\r\n }\r\n </div>\r\n `, isInline: true, dependencies: [{ kind: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"ngmodule\", type: NgxValidateCoreModule }, { kind: \"directive\", type: i1.ValidationTargetDirective, selector: \"[validationTarget]\", exportAs: [\"validationTarget\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormMultiselectComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'abp-extensible-form-multi-select',\n template: `\r\n <div [id]=\"prop().id\">\r\n @for (option of options(); track option.value) {\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [id]=\"'checkbox_' + option.value\"\r\n [disabled]=\"disabled\"\r\n [checked]=\"isChecked(option.value)\"\r\n (change)=\"onCheckboxChange(option.value, $event.target.checked)\"\r\n />\r\n <label [for]=\"'checkbox_' + option.value\">\r\n @if (prop().isExtra) {\r\n {{ '::' + option.key | abpLocalization }}\r\n } @else {\r\n {{ option.key }}\r\n }\r\n </label>\r\n </div>\r\n }\r\n </div>\r\n `,\n providers: [EXTENSIBLE_FORM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR],\n imports: [LocalizationPipe, NgxValidateCoreModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L2V4dGVuc2libGUtZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQU8sZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUzRCxNQUFNLG1EQUFtRCxHQUFHO0lBQzFELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztJQUNqRSxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUErQkYsTUFBTSxPQUFPLGtDQUFrQztJQTdCL0M7UUE4QkUsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVksQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBcUIsQ0FBQztRQUU5QyxtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVQsYUFBUSxHQUF5QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUMsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQThCMUM7SUE1QkMsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVUsRUFBRSxPQUFnQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU87WUFDM0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQztZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBckNVLGtDQUFrQztrR0FBbEMsa0NBQWtDLDRVQUpsQyxDQUFDLG1EQUFtRCxDQUFDLDBCQXZCdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQsdURBRVMsZ0JBQWdCLHVEQUFFLHFCQUFxQjs7MkZBR3RDLGtDQUFrQztrQkE3QjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO29CQUNELFNBQVMsRUFBRSxDQUFDLG1EQUFtRCxDQUFDO29CQUNoRSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQztvQkFDbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgZm9yd2FyZFJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBQlAsIExvY2FsaXphdGlvblBpcGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuXHJcbmNvbnN0IEVYVEVOU0lCTEVfRk9STV9NVUxUSV9TRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUiA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFeHRlbnNpYmxlRm9ybU11bHRpc2VsZWN0Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtZm9ybS1tdWx0aS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtpZF09XCJwcm9wKCkuaWRcIj5cclxuICAgICAgQGZvciAob3B0aW9uIG9mIG9wdGlvbnMoKTsgdHJhY2sgb3B0aW9uLnZhbHVlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgIFtpZF09XCInY2hlY2tib3hfJyArIG9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChvcHRpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKG9wdGlvbi52YWx1ZSwgJGV2ZW50LnRhcmdldC5jaGVja2VkKVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2NoZWNrYm94XycgKyBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgICAgQGlmIChwcm9wKCkuaXNFeHRyYSkge1xyXG4gICAgICAgICAgICAgIHt7ICc6OicgKyBvcHRpb24ua2V5IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIHt7IG9wdGlvbi5rZXkgfX1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtFWFRFTlNJQkxFX0ZPUk1fTVVMVElfU0VMRUNUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxyXG4gIGltcG9ydHM6IFtMb2NhbGl6YXRpb25QaXBlLCBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGVdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUZvcm1NdWx0aXNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcm9wID0gaW5wdXQucmVxdWlyZWQ8Rm9ybVByb3A+KCk7XHJcbiAgb3B0aW9ucyA9IGlucHV0LnJlcXVpcmVkPEFCUC5PcHRpb248YW55PltdPigpO1xyXG5cclxuICBzZWxlY3RlZFZhbHVlczogYW55W10gPSBbXTtcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBpc0NoZWNrZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25DaGVja2JveENoYW5nZSh2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gY2hlY2tlZFxyXG4gICAgICA/IFsuLi50aGlzLnNlbGVjdGVkVmFsdWVzLCB2YWx1ZV1cclxuICAgICAgOiB0aGlzLnNlbGVjdGVkVmFsdWVzLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW107XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { EXTENSIONS_FORM_PROP, EXTENSIONS_FORM_PROP_DATA } from './../../tokens/extensions.token';\nimport { LocalizationPipe, PermissionDirective, ShowPasswordDirective, TrackByService, } from '@abp/ng.core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Injector, Input, Optional, SkipSelf, ViewChild, signal, effect, } from '@angular/core';\nimport { ControlContainer, FormGroupDirective, FormsModule, ReactiveFormsModule, } from '@angular/forms';\nimport { NgbDateAdapter, NgbDatepickerModule, NgbTimeAdapter, NgbTimepickerModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\nimport { DateAdapter, DisabledDirective, TimeAdapter } from '@abp/ng.theme.shared';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { FormProp } from '../../models/form-props';\nimport { PropData } from '../../models/props';\nimport { selfFactory } from '../../utils/factory.util';\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\nimport { ExtensibleDateTimePickerComponent } from '../date-time-picker/extensible-date-time-picker.component';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { ExtensibleFormPropService } from '../../services/extensible-form-prop.service';\nimport { AsyncPipe, NgClass, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { ExtensibleFormMultiselectComponent } from '../multi-select/extensible-form-multiselect.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ng-bootstrap/ng-bootstrap\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@ngx-validate/core\";\nexport class ExtensibleFormPropComponent {\n #groupDirective;\n get disabled() {\n return this.disabledFn(this.data);\n }\n constructor() {\n this.service = inject(ExtensibleFormPropService);\n this.cdRef = inject(ChangeDetectorRef);\n this.track = inject(TrackByService);\n this.#groupDirective = inject(FormGroupDirective);\n this.injector = inject(Injector);\n this.form = this.#groupDirective.form;\n this.shouldFocus = signal(false);\n this.isViewReady = signal(false);\n this.asterisk = '';\n this.containerClassName = 'mb-2';\n this.showPassword = false;\n this.options$ = of([]);\n this.validators = [];\n this.passwordKey = \"ThemeShared.Extensions.PasswordComponent\" /* eExtensibleComponents.PasswordComponent */;\n this.disabledFn = (data) => false;\n this.search = (text$) => text$\n ? text$.pipe(debounceTime(300), distinctUntilChanged(), switchMap(text => this.prop?.options?.(this.data, text) || of([])))\n : of([]);\n this.typeaheadFormatter = (option) => option.key;\n this.meridian$ = this.service.meridian$;\n // Effect to handle focus when both conditions are met\n effect(() => {\n if (this.shouldFocus() && this.isViewReady() && this.fieldRef?.nativeElement) {\n this.focusElement();\n }\n });\n }\n setTypeaheadValue(selectedOption) {\n this.typeaheadModel = selectedOption || { key: null, value: null };\n const { key, value } = this.typeaheadModel;\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (valueControl?.value && !value)\n valueControl.markAsDirty();\n keyControl?.setValue(key);\n valueControl?.setValue(value);\n }\n get isInvalid() {\n const control = this.form.get(this.prop.name);\n return control?.touched && control.invalid;\n }\n getTypeaheadControls() {\n const { name } = this.prop;\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\n const keyControl = this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\n this.form.get(addTypeaheadTextSuffix(name));\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\n return [keyControl, valueControl];\n }\n setAsterisk() {\n this.asterisk = this.service.calcAsterisks(this.validators);\n }\n focusElement() {\n try {\n this.fieldRef.nativeElement.focus();\n this.shouldFocus.set(false);\n }\n catch (error) {\n console.error('Error focusing field:', error);\n }\n }\n ngAfterViewInit() {\n this.isViewReady.set(true);\n if (this.isFirstGroup && this.first) {\n this.shouldFocus.set(true);\n }\n }\n getComponent(prop) {\n return this.service.getComponent(prop);\n }\n getType(prop) {\n return this.service.getType(prop);\n }\n ngOnChanges({ prop, data }) {\n const currentProp = prop?.currentValue;\n const { options, readonly, disabled, validators, className, template } = currentProp || {};\n if (template) {\n this.injectorForCustomComponent = Injector.create({\n providers: [\n {\n provide: EXTENSIONS_FORM_PROP,\n useValue: currentProp,\n },\n {\n provide: EXTENSIONS_FORM_PROP_DATA,\n useValue: data?.currentValue?.record,\n },\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n parent: this.injector,\n });\n }\n if (options)\n this.options$ = options(this.data);\n if (readonly)\n this.readonly = readonly(this.data);\n if (disabled) {\n this.disabledFn = disabled;\n }\n if (validators) {\n this.validators = validators(this.data);\n this.setAsterisk();\n }\n if (className !== undefined) {\n this.containerClassName = className;\n }\n const [keyControl, valueControl] = this.getTypeaheadControls();\n if (keyControl && valueControl)\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleFormPropComponent, isStandalone: true, selector: \"abp-extensible-form-prop\", inputs: { data: \"data\", prop: \"prop\", first: \"first\", isFirstGroup: \"isFirstGroup\" }, providers: [ExtensibleFormPropService], viewQueries: [{ propertyName: \"fieldRef\", first: true, predicate: [\"field\"], descendants: true }], usesOnChanges: 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 [ngClass]=\\\"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 [ngClass]=\\\"{\\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\\\" [ngClass]=\\\"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: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], 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\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormPropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'abp-extensible-form-prop', imports: [\n ExtensibleDateTimePickerComponent,\n ExtensibleFormMultiselectComponent,\n NgbDatepickerModule,\n NgbTimepickerModule,\n ReactiveFormsModule,\n DisabledDirective,\n NgxValidateCoreModule,\n NgbTooltip,\n NgbTypeaheadModule,\n ShowPasswordDirective,\n PermissionDirective,\n LocalizationPipe,\n AsyncPipe,\n NgClass,\n NgComponentOutlet,\n NgTemplateOutlet,\n FormsModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ExtensibleFormPropService], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n { provide: NgbDateAdapter, useClass: DateAdapter },\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\n ], 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 [ngClass]=\\\"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 [ngClass]=\\\"{\\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\\\" [ngClass]=\\\"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\" }]\n }], ctorParameters: () => [], propDecorators: { data: [{\n type: Input\n }], prop: [{\n type: Input\n }], first: [{\n type: Input\n }], isFirstGroup: [{\n type: Input\n }], fieldRef: [{\n type: ViewChild,\n args: ['field']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvY29tcG9uZW50cy9leHRlbnNpYmxlLWZvcm0vZXh0ZW5zaWJsZS1mb3JtLXByb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEcsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLG1CQUFtQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFv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QWtDO3dCQUNsQyxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsV0FBVztxQkFDWixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHlCQUF5QixDQUFDLGlCQUN2Qjt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixVQUFVLEVBQUUsV0FBVzs0QkFDdkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQzt5QkFDM0Q7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7d0JBQ2xELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO3FCQUNuRDt3REFVUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNzQixRQUFRO3NCQUFuQyxTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFWFRFTlNJT05TX0ZPUk1fUFJPUCwgRVhURU5TSU9OU19GT1JNX1BST1BfREFUQSB9IGZyb20gJy4vLi4vLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5pbXBvcnQge1xyXG4gIEFCUCxcclxuICBMb2NhbGl6YXRpb25QaXBlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlLFxyXG4gIFRyYWNrQnlTZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIHNpZ25hbCxcclxuICBlZmZlY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbENvbnRhaW5lcixcclxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBWYWxpZGF0b3JGbixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiRGF0ZUFkYXB0ZXIsXHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JUaW1lQWRhcHRlcixcclxuICBOZ2JUaW1lcGlja2VyTW9kdWxlLFxyXG4gIE5nYlR5cGVhaGVhZE1vZHVsZSxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIERpc2FibGVkRGlyZWN0aXZlLCBUaW1lQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IEZvcm1Qcm9wIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeCB9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVhaGVhZC51dGlsJztcclxuaW1wb3J0IHsgZUV4dGVuc2libGVDb21wb25lbnRzIH0gZnJvbSAnLi4vLi4vZW51bXMvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEV4dGVuc2libGVEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtdGltZS1waWNrZXIvZXh0ZW5zaWJsZS1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IEV4dGVuc2libGVGb3JtUHJvcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpYmxlLWZvcm0tcHJvcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QvZXh0ZW5zaWJsZS1mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0tcHJvcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2libGUtZm9ybS1wcm9wLmNvbXBvbmVudC5odG1sJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBFeHRlbnNpYmxlRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXHJcbiAgICBFeHRlbnNpYmxlRm9ybU11bHRpc2VsZWN0Q29tcG9uZW50LFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRGlzYWJsZWREaXJlY3RpdmUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICBOZ2JUb29sdGlwLFxyXG4gICAgTmdiVHlwZWFoZWFkTW9kdWxlLFxyXG4gICAgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIExvY2FsaXphdGlvblBpcGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtFeHRlbnNpYmxlRm9ybVByb3BTZXJ2aWNlXSxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IHNlbGZGYWN0b3J5LFxyXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29udHJvbENvbnRhaW5lcl1dLFxyXG4gICAgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9LFxyXG4gICAgeyBwcm92aWRlOiBOZ2JUaW1lQWRhcHRlciwgdXNlQ2xhc3M6IFRpbWVBZGFwdGVyIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoRXh0ZW5zaWJsZUZvcm1Qcm9wU2VydmljZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhY2sgPSBpbmplY3QoVHJhY2tCeVNlcnZpY2UpO1xyXG4gICNncm91cERpcmVjdGl2ZSA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUpO1xyXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybSA9IHRoaXMuI2dyb3VwRGlyZWN0aXZlLmZvcm07XHJcblxyXG4gIEBJbnB1dCgpIGRhdGEhOiBQcm9wRGF0YTtcclxuICBASW5wdXQoKSBwcm9wITogRm9ybVByb3A7XHJcbiAgQElucHV0KCkgZmlyc3Q/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzRmlyc3RHcm91cD86IGJvb2xlYW47XHJcbiAgQFZpZXdDaGlsZCgnZmllbGQnKSBwcml2YXRlIGZpZWxkUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgc2hvdWxkRm9jdXMgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHByaXZhdGUgaXNWaWV3UmVhZHkgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBpbmplY3RvckZvckN1c3RvbUNvbXBvbmVudD86IEluamVjdG9yO1xyXG4gIGFzdGVyaXNrID0gJyc7XHJcbiAgY29udGFpbmVyQ2xhc3NOYW1lID0gJ21iLTInO1xyXG4gIHNob3dQYXNzd29yZCA9IGZhbHNlO1xyXG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPEFCUC5PcHRpb248YW55PltdPiA9IG9mKFtdKTtcclxuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIHR5cGVhaGVhZE1vZGVsOiBhbnk7XHJcbiAgcGFzc3dvcmRLZXkgPSBlRXh0ZW5zaWJsZUNvbXBvbmVudHMuUGFzc3dvcmRDb21wb25lbnQ7XHJcblxyXG4gIGRpc2FibGVkRm4gPSAoZGF0YTogUHJvcERhdGEpID0+IGZhbHNlO1xyXG5cclxuICBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZEZuKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIEVmZmVjdCB0byBoYW5kbGUgZm9jdXMgd2hlbiBib3RoIGNvbmRpdGlvbnMgYXJlIG1ldFxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2hvdWxkRm9jdXMoKSAmJiB0aGlzLmlzVmlld1JlYWR5KCkgJiYgdGhpcy5maWVsZFJlZj8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNFbGVtZW50KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0VHlwZWFoZWFkVmFsdWUoc2VsZWN0ZWRPcHRpb246IEFCUC5PcHRpb248c3RyaW5nPikge1xyXG4gICAgdGhpcy50eXBlYWhlYWRNb2RlbCA9IHNlbGVjdGVkT3B0aW9uIHx8IHsga2V5OiBudWxsLCB2YWx1ZTogbnVsbCB9O1xyXG4gICAgY29uc3QgeyBrZXksIHZhbHVlIH0gPSB0aGlzLnR5cGVhaGVhZE1vZGVsO1xyXG4gICAgY29uc3QgW2tleUNvbnRyb2wsIHZhbHVlQ29udHJvbF0gPSB0aGlzLmdldFR5cGVhaGVhZENvbnRyb2xzKCk7XHJcbiAgICBpZiAodmFsdWVDb250cm9sPy52YWx1ZSAmJiAhdmFsdWUpIHZhbHVlQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAga2V5Q29udHJvbD8uc2V0VmFsdWUoa2V5KTtcclxuICAgIHZhbHVlQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoID0gKHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+XHJcbiAgICB0ZXh0JFxyXG4gICAgICA/IHRleHQkLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAodGV4dCA9PiB0aGlzLnByb3A/Lm9wdGlvbnM/Lih0aGlzLmRhdGEsIHRleHQpIHx8IG9mKFtdKSksXHJcbiAgICAgICAgKVxyXG4gICAgICA6IG9mKFtdKTtcclxuXHJcbiAgdHlwZWFoZWFkRm9ybWF0dGVyID0gKG9wdGlvbjogQUJQLk9wdGlvbjxhbnk+KSA9PiBvcHRpb24ua2V5O1xyXG5cclxuICBtZXJpZGlhbiQgPSB0aGlzLnNlcnZpY2UubWVyaWRpYW4kO1xyXG5cclxuICBnZXQgaXNJbnZhbGlkKCkge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5wcm9wLm5hbWUpO1xyXG4gICAgcmV0dXJuIGNvbnRyb2w/LnRvdWNoZWQgJiYgY29udHJvbC5pbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUeXBlYWhlYWRDb250cm9scygpIHtcclxuICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5wcm9wO1xyXG4gICAgY29uc3QgZXh0cmFQcm9wTmFtZSA9IGAke0VYVFJBX1BST1BFUlRJRVNfS0VZfS4ke25hbWV9YDtcclxuICAgIGNvbnN0IGtleUNvbnRyb2wgPVxyXG4gICAgICB0aGlzLmZvcm0uZ2V0KGFkZFR5cGVhaGVhZFRleHRTdWZmaXgoZXh0cmFQcm9wTmFtZSkpIHx8XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoYWRkVHlwZWFoZWFkVGV4dFN1ZmZpeChuYW1lKSk7XHJcbiAgICBjb25zdCB2YWx1ZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGV4dHJhUHJvcE5hbWUpIHx8IHRoaXMuZm9ybS5nZXQobmFtZSk7XHJcbiAgICByZXR1cm4gW2tleUNvbnRyb2wsIHZhbHVlQ29udHJvbF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFzdGVyaXNrKCkge1xyXG4gICAgdGhpcy5hc3RlcmlzayA9IHRoaXMuc2VydmljZS5jYWxjQXN0ZXJpc2tzKHRoaXMudmFsaWRhdG9ycyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvY3VzRWxlbWVudCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZmllbGRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB0aGlzLnNob3VsZEZvY3VzLnNldChmYWxzZSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmb2N1c2luZyBmaWVsZDonLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmlzVmlld1JlYWR5LnNldCh0cnVlKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0ZpcnN0R3JvdXAgJiYgdGhpcy5maXJzdCkge1xyXG4gICAgICB0aGlzLnNob3VsZEZvY3VzLnNldCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudChwcm9wOiBGb3JtUHJvcCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldENvbXBvbmVudChwcm9wKTtcclxuICB9XHJcblxyXG4gIGdldFR5cGUocHJvcDogRm9ybVByb3ApOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRUeXBlKHByb3ApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBwcm9wLCBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRQcm9wID0gcHJvcD8uY3VycmVudFZhbHVlIGFzIEZvcm1Qcm9wO1xyXG4gICAgY29uc3QgeyBvcHRpb25zLCByZWFkb25seSwgZGlzYWJsZWQsIHZhbGlkYXRvcnMsIGNsYXNzTmFtZSwgdGVtcGxhdGUgfSA9IGN1cnJlbnRQcm9wIHx8IHt9O1xyXG4gICAgaWYgKHRlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuaW5qZWN0b3JGb3JDdXN0b21Db21wb25lbnQgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0ZPUk1fUFJPUCxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IGN1cnJlbnRQcm9wLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19GT1JNX1BST1BfREFUQSxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IChkYXRhPy5jdXJyZW50VmFsdWUgYXMgUHJvcERhdGEpPy5yZWNvcmQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogRm9ybUdyb3VwRGlyZWN0aXZlIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zKSB0aGlzLm9wdGlvbnMkID0gb3B0aW9ucyh0aGlzLmRhdGEpO1xyXG4gICAgaWYgKHJlYWRvbmx5KSB0aGlzLnJlYWRvbmx5ID0gcmVhZG9ubHkodGhpcy5kYXRhKTtcclxuXHJcbiAgICBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5kaXNhYmxlZEZuID0gZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdG9ycykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0QXN0ZXJpc2soKTtcclxuICAgIH1cclxuICAgIGlmIChjbGFzc05hbWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNvbnRhaW5lckNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBba2V5Q29udHJvbCwgdmFsdWVDb250cm9sXSA9IHRoaXMuZ2V0VHlwZWFoZWFkQ29udHJvbHMoKTtcclxuICAgIGlmIChrZXlDb250cm9sICYmIHZhbHVlQ29udHJvbClcclxuICAgICAgdGhpcy50eXBlYWhlYWRNb2RlbCA9IHsga2V5OiBrZXlDb250cm9sLnZhbHVlLCB2YWx1ZTogdmFsdWVDb250cm9sLnZhbHVlIH07XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKmFicFBlcm1pc3Npb249XCJwcm9wLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIj5cclxuICBAc3dpdGNoIChnZXRDb21wb25lbnQocHJvcCkpIHtcclxuICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwicHJvcC50ZW1wbGF0ZTsgaW5qZWN0b3I6IGluamVjdG9yRm9yQ3VzdG9tQ29tcG9uZW50XCIgLz5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NOYW1lXCIgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICBAc3dpdGNoIChnZXRDb21wb25lbnQocHJvcCkpIHtcclxuICAgICAgQGNhc2UgKCdpbnB1dCcpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIiAvPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInByb3AuYXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAgIFt0eXBlXT1cImdldFR5cGUocHJvcClcIlxyXG4gICAgICAgICAgW2FicERpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ2hpZGRlbicpIHtcclxuICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIiB0eXBlPVwiaGlkZGVuXCIgLz5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjZmllbGRcclxuICAgICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiAnZm9ybS1jaGVjay1sYWJlbCcgfVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnc2VsZWN0Jykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgI2ZpZWxkXHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zJCB8IGFzeW5jOyB0cmFjayBvcHRpb24udmFsdWUpIHtcclxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgICAgICBAaWYgKHByb3AuaXNFeHRyYSkge1xyXG4gICAgICAgICAgICAgICAge3sgJzo6JyArIG9wdGlvbi5rZXkgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5rZXkgfX1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnbXVsdGlzZWxlY3QnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8YWJwLWV4dGVuc2libGUtZm9ybS1tdWx0aS1zZWxlY3RcclxuICAgICAgICAgIFtwcm9wXT1cInByb3BcIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9ucyQgfCBhc3luY1wiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCd0eXBlYWhlYWQnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCIgLz5cclxuICAgICAgICA8ZGl2ICN0eXBlYWhlYWQgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIHZhbGlkYXRpb25TdHlsZSB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICNmaWVsZFxyXG4gICAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwicHJvcC5hdXRvY29tcGxldGVcIlxyXG4gICAgICAgICAgICBbYWJwRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBbbmdiVHlwZWFoZWFkXT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtpbnB1dEZvcm1hdHRlcl09XCJ0eXBlYWhlYWRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgICBbcmVzdWx0Rm9ybWF0dGVyXT1cInR5cGVhaGVhZEZvcm1hdHRlclwiXHJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidHlwZWFoZWFkTW9kZWxcIlxyXG4gICAgICAgICAgICAoc2VsZWN0SXRlbSk9XCJzZXRUeXBlYWhlYWRWYWx1ZSgkZXZlbnQuaXRlbSlcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJzZXRUeXBlYWhlYWRWYWx1ZSh0eXBlYWhlYWRNb2RlbClcIlxyXG4gICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJ0eXBlYWhlYWQuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1pbnZhbGlkJylcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCIgdHlwZT1cImhpZGRlblwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCdkYXRlJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBbaWRdPVwicHJvcC5pZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgKGtleXVwLnNwYWNlKT1cImRhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICNkYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ3RpbWUnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCIgLz5cclxuICAgICAgICA8bmdiLXRpbWVwaWNrZXIgW2Zvcm1Db250cm9sTmFtZV09XCJwcm9wLm5hbWVcIiAvPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgnZGF0ZVRpbWUnKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsXCIgLz5cclxuICAgICAgICA8YWJwLWV4dGVuc2libGUtZGF0ZS10aW1lLXBpY2tlciBbcHJvcF09XCJwcm9wXCIgW21lcmlkaWFuXT1cIm1lcmlkaWFuJCB8IGFzeW5jXCIgLz5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ3RleHRhcmVhJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAjZmllbGRcclxuICAgICAgICAgIFtpZF09XCJwcm9wLmlkXCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicHJvcC5uYW1lXCJcclxuICAgICAgICAgIFthYnBEaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICB9XHJcbiAgICAgIEBjYXNlICgncGFzc3dvcmRpbnB1dGdyb3VwJykge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGZvcm0tZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgW2lkXT1cInByb3AuaWRcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInByb3AubmFtZVwiXHJcbiAgICAgICAgICAgIFthYnBTaG93UGFzc3dvcmRdPVwic2hvd1Bhc3N3b3JkXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZCA9ICFzaG93UGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImZhXCJcclxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdmYS1leWUtc2xhc2gnOiAhc2hvd1Bhc3N3b3JkLFxyXG4gICAgICAgICAgICAgICAgJ2ZhLWV5ZSc6IHNob3dQYXNzd29yZCxcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChwcm9wLmZvcm1UZXh0KSB7XHJcbiAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWQgZC1ibG9ja1wiPnt7IHByb3AuZm9ybVRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NtYWxsPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbGFiZWwgbGV0LWNsYXNzZXM+XHJcbiAgPGxhYmVsIFtodG1sRm9yXT1cInByb3AuaWRcIiBbbmdDbGFzc109XCJjbGFzc2VzIHx8ICdmb3JtLWxhYmVsIGQtaW5saW5lLWJsb2NrJ1wiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICBAaWYgKHByb3AuZGlzcGxheVRleHRSZXNvbHZlcikge1xyXG4gICAgICAgIHt7IHByb3AuZGlzcGxheVRleHRSZXNvbHZlcihkYXRhKSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBAaWYgKHByb3AuaXNFeHRyYSkge1xyXG4gICAgICAgICAge3sgJzo6JyArIHByb3AuZGlzcGxheU5hbWUgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIHt7IHByb3AuZGlzcGxheU5hbWUgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAge3sgYXN0ZXJpc2sgfX1cclxuICAgICAgQGlmIChwcm9wLnRvb2x0aXApIHtcclxuICAgICAgICA8aVxyXG4gICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgW3BsYWNlbWVudF09XCJwcm9wLnRvb2x0aXAucGxhY2VtZW50IHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgIGNsYXNzPVwiYmkgYmktaW5mby1jaXJjbGVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIH1cclxuICAgIDwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=","import { LinkedList } from '@abp/utils';\nexport class ActionList extends LinkedList {\n}\nexport class ActionData {\n get data() {\n return {\n getInjected: this.getInjected,\n index: this.index,\n record: this.record,\n };\n }\n}\nexport class Action {\n constructor(permission, visible = () => true, action = () => { }, btnClass, btnStyle) {\n this.permission = permission;\n this.visible = visible;\n this.action = action;\n this.btnClass = btnClass;\n this.btnStyle = btnStyle;\n }\n}\nexport class ActionsFactory {\n constructor() {\n this.contributorCallbacks = {};\n }\n get(name) {\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\n return new this._ctor(this.contributorCallbacks[name]);\n }\n}\nexport class Actions {\n get actions() {\n const actionList = new this._ctor();\n this.callbackList.forEach(callback => callback(actionList));\n return actionList;\n }\n constructor(callbackList) {\n this.callbackList = callbackList;\n }\n addContributor(contributeCallback) {\n this.callbackList.push(contributeCallback);\n }\n clearContributors() {\n while (this.callbackList.length)\n this.callbackList.pop();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFnQixVQUFtQyxTQUFRLFVBQWE7Q0FBRztBQUVqRixNQUFNLE9BQWdCLFVBQVU7SUFTOUIsSUFBSSxJQUFJO1FBQ04sT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFJRCxNQUFNLE9BQWdCLE1BQU07SUFDMUIsWUFDa0IsVUFBa0IsRUFDbEIsVUFBOEIsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUN4QyxTQUE0QixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQ3BDLFFBQWlCLEVBQ2pCLFFBQWlCO1FBSmpCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFTO0lBQ2hDLENBQUM7Q0FDTDtBQUtELE1BQU0sT0FBZ0IsY0FBYztJQUFwQztRQUVVLHlCQUFvQixHQUFzRCxFQUFFLENBQUM7SUFPdkYsQ0FBQztJQUxDLEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixPQUFPO0lBRzNCLElBQUksT0FBTztRQUNULE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFNUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQTZCLFlBQTRDO1FBQTVDLGlCQUFZLEdBQVosWUFBWSxDQUFnQztJQUFHLENBQUM7SUFFN0UsY0FBYyxDQUFDLGtCQUFnRDtRQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdE9wdGlvbnMsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlua2VkTGlzdCB9IGZyb20gJ0BhYnAvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkxpc3Q8UiA9IGFueSwgQSA9IEFjdGlvbjxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+IHt9XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uRGF0YTxSID0gYW55PiB7XHJcbiAgYWJzdHJhY3QgZ2V0SW5qZWN0ZWQ6IDxUPihcclxuICAgIHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sXHJcbiAgICBub3RGb3VuZFZhbHVlPzogVCxcclxuICAgIGZsYWdzPzogSW5qZWN0T3B0aW9ucyxcclxuICApID0+IFQ7XHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgYWJzdHJhY3QgcmVjb3JkOiBSO1xyXG5cclxuICBnZXQgZGF0YSgpOiBSZWFkb25seUFjdGlvbkRhdGE8Uj4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsXHJcbiAgICAgIGluZGV4OiB0aGlzLmluZGV4LFxyXG4gICAgICByZWNvcmQ6IHRoaXMucmVjb3JkLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlYWRvbmx5QWN0aW9uRGF0YTxSID0gYW55PiA9IFJlYWRvbmx5PE9taXQ8QWN0aW9uRGF0YTxSPiwgJ2RhdGEnPj47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uPFIgPSBhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlzaWJsZTogQWN0aW9uUHJlZGljYXRlPFI+ID0gKCkgPT4gdHJ1ZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBhY3Rpb246IEFjdGlvbkNhbGxiYWNrPFI+ID0gKCkgPT4ge30sXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnRuU3R5bGU/OiBzdHJpbmcsXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25DYWxsYmFjazxULCBSID0gYW55PiA9IChkYXRhOiBPbWl0PEFjdGlvbkRhdGE8VD4sICdkYXRhJz4pID0+IFI7XHJcbmV4cG9ydCB0eXBlIEFjdGlvblByZWRpY2F0ZTxUPiA9IChkYXRhPzogT21pdDxBY3Rpb25EYXRhPFQ+LCAnZGF0YSc+KSA9PiBib29sZWFuO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbnNGYWN0b3J5PEMgZXh0ZW5kcyBBY3Rpb25zPGFueT4+IHtcclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2N0b3I6IFR5cGU8Qz47XHJcbiAgcHJpdmF0ZSBjb250cmlidXRvckNhbGxiYWNrczogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8SW5mZXJyZWRBY3Rpb25MaXN0PEM+PiA9IHt9O1xyXG5cclxuICBnZXQobmFtZTogc3RyaW5nKTogQyB7XHJcbiAgICB0aGlzLmNvbnRyaWJ1dG9yQ2FsbGJhY2tzW25hbWVdID0gdGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSB8fCBbXTtcclxuXHJcbiAgICByZXR1cm4gbmV3IHRoaXMuX2N0b3IodGhpcy5jb250cmlidXRvckNhbGxiYWNrc1tuYW1lXSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aW9uczxMIGV4dGVuZHMgQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPEw+Pj4ge1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfY3RvcjogVHlwZTxMPjtcclxuXHJcbiAgZ2V0IGFjdGlvbnMoKTogTCB7XHJcbiAgICBjb25zdCBhY3Rpb25MaXN0ID0gbmV3IHRoaXMuX2N0b3IoKTtcclxuXHJcbiAgICB0aGlzLmNhbGxiYWNrTGlzdC5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKGFjdGlvbkxpc3QpKTtcclxuXHJcbiAgICByZXR1cm4gYWN0aW9uTGlzdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FsbGJhY2tMaXN0OiBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEw+W10pIHt9XHJcblxyXG4gIGFkZENvbnRyaWJ1dG9yKGNvbnRyaWJ1dGVDYWxsYmFjazogQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPikge1xyXG4gICAgdGhpcy5jYWxsYmFja0xpc3QucHVzaChjb250cmlidXRlQ2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJDb250cmlidXRvcnMoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5jYWxsYmFja0xpc3QubGVuZ3RoKSB0aGlzLmNhbGxiYWNrTGlzdC5wb3AoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IFJlY29yZDxcclxuICBzdHJpbmcsXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxMPltdXHJcbj47XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPEwgZXh0ZW5kcyBBY3Rpb25MaXN0PGFueSwgSW5mZXJyZWRBY3Rpb248TD4+PiA9IChcclxuICBhY3Rpb25MaXN0OiBMLFxyXG4pID0+IGFueTtcclxuXHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25MaXN0PEM+ID0gQyBleHRlbmRzIEFjdGlvbnM8aW5mZXIgTD4gPyBMIDogbmV2ZXI7XHJcbmV4cG9ydCB0eXBlIEluZmVycmVkQWN0aW9uPFQ+ID0gVCBleHRlbmRzIEFjdGlvbkxpc3Q8YW55LCBpbmZlciBVPiA/IFUgOiBUO1xyXG4iXX0=","import { Action, ActionList, Actions, ActionsFactory, } from './actions';\nexport class EntityActionList extends ActionList {\n}\nexport class EntityActions extends Actions {\n constructor() {\n super(...arguments);\n this._ctor = EntityActionList;\n }\n}\nexport class EntityActionsFactory extends ActionsFactory {\n constructor() {\n super(...arguments);\n this._ctor = EntityActions;\n }\n}\nexport class EntityAction extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.text = options.text;\n this.icon = options.icon || '';\n this.btnClass = options.btnClass || 'btn btn-primary text-center';\n this.btnStyle = options.btnStyle;\n this.showOnlyIcon = options.showOnlyIcon || false;\n this.tooltip = options.tooltip;\n }\n static create(options) {\n return new EntityAction(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(EntityAction.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvZW50aXR5LWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLE1BQU0sRUFHTixVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsR0FDZixNQUFNLFdBQVcsQ0FBQztBQUluQixNQUFNLE9BQU8sZ0JBQTBCLFNBQVEsVUFBOEI7Q0FBRztBQUVoRixNQUFNLE9BQU8sYUFBdUIsU0FBUSxPQUE0QjtJQUF4RTs7UUFDWSxVQUFLLEdBQThCLGdCQUFnQixDQUFDO0lBQ2hFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxvQkFBOEIsU0FBUSxjQUFnQztJQUFuRjs7UUFDWSxVQUFLLEdBQTJCLGFBQWEsQ0FBQztJQUMxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sWUFBc0IsU0FBUSxNQUFTO0lBUWxELFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSw2QkFBNkIsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQVUsT0FBK0I7UUFDcEQsT0FBTyxJQUFJLFlBQVksQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBVSxjQUF3QztRQUNqRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBY3Rpb24sXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBBY3Rpb25MaXN0LFxyXG4gIEFjdGlvbnMsXHJcbiAgQWN0aW9uc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRm9ybVByb3BUb29sdGlwIH0gZnJvbSAnLi9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRmlsdGVyZWRXaXRoT3B0aW9ucywgUGFydGlhbFdpdGhPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eUFjdGlvbkxpc3Q8UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb25MaXN0PFIsIEVudGl0eUFjdGlvbjxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBY3Rpb25zPFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uczxFbnRpdHlBY3Rpb25MaXN0PFI+PiB7XHJcbiAgcHJvdGVjdGVkIF9jdG9yOiBUeXBlPEVudGl0eUFjdGlvbkxpc3Q8Uj4+ID0gRW50aXR5QWN0aW9uTGlzdDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eUFjdGlvbnNGYWN0b3J5PFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uc0ZhY3Rvcnk8RW50aXR5QWN0aW9uczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxFbnRpdHlBY3Rpb25zPFI+PiA9IEVudGl0eUFjdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlBY3Rpb248UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb248Uj4ge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSBpY29uOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuU3R5bGU/OiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgc2hvd09ubHlJY29uPzogYm9vbGVhbjtcclxuICByZWFkb25seSB0b29sdGlwPzogRm9ybVByb3BUb29sdGlwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbnRpdHlBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy50ZXh0ID0gb3B0aW9ucy50ZXh0O1xyXG4gICAgdGhpcy5pY29uID0gb3B0aW9ucy5pY29uIHx8ICcnO1xyXG4gICAgdGhpcy5idG5DbGFzcyA9IG9wdGlvbnMuYnRuQ2xhc3MgfHwgJ2J0biBidG4tcHJpbWFyeSB0ZXh0LWNlbnRlcic7XHJcbiAgICB0aGlzLmJ0blN0eWxlID0gb3B0aW9ucy5idG5TdHlsZTtcclxuICAgIHRoaXMuc2hvd09ubHlJY29uID0gb3B0aW9ucy5zaG93T25seUljb24gfHwgZmFsc2U7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSBvcHRpb25zLnRvb2x0aXA7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlPFIgPSBhbnk+KG9wdGlvbnM6IEVudGl0eUFjdGlvbk9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgRW50aXR5QWN0aW9uPFI+KG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZU1hbnk8UiA9IGFueT4oYXJyYXlPZk9wdGlvbnM6IEVudGl0eUFjdGlvbk9wdGlvbnM8Uj5bXSkge1xyXG4gICAgcmV0dXJuIGFycmF5T2ZPcHRpb25zLm1hcChFbnRpdHlBY3Rpb24uY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgT3B0aW9uYWxLZXlzID0gJ3Blcm1pc3Npb24nIHwgJ3Zpc2libGUnIHwgJ2ljb24nO1xyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25PcHRpb25zPFIgPSBhbnk+ID0gUGFydGlhbFdpdGhPcHRpb25zPEVudGl0eUFjdGlvbjxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxFbnRpdHlBY3Rpb248Uj4sIE9wdGlvbmFsS2V5cz47XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25EZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEVudGl0eUFjdGlvbjxSPltdPjtcclxuZXhwb3J0IHR5cGUgRW50aXR5QWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxSID0gYW55PiA9IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2s8XHJcbiAgRW50aXR5QWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBFbnRpdHlBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPFxyXG4gIEVudGl0eUFjdGlvbkxpc3Q8Uj5cclxuPjtcclxuIl19","import { escapeHtmlChars } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { Prop, PropList, Props, PropsFactory, } from './props';\nexport class EntityPropList extends PropList {\n}\nexport class EntityProps extends Props {\n constructor() {\n super(...arguments);\n this._ctor = EntityPropList;\n }\n}\nexport class EntityPropsFactory extends PropsFactory {\n constructor() {\n super(...arguments);\n this._ctor = EntityProps;\n }\n}\nexport class EntityProp extends Prop {\n constructor(options) {\n super(options.type, options.name, options.displayName || '', options.permission || '', options.visible, options.isExtra);\n this.columnVisible = options.columnVisible || (() => true);\n this.columnWidth = options.columnWidth;\n this.sortable = options.sortable || false;\n this.valueResolver =\n options.valueResolver ||\n (data => of(escapeHtmlChars(data.record[this.name])));\n if (options.action) {\n this.action = options.action;\n }\n if (options.component) {\n this.component = options.component;\n }\n if (options.enumList) {\n this.enumList = options.enumList;\n }\n this.tooltip = options.tooltip;\n }\n static create(options) {\n return new EntityProp(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(EntityProp.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvbW9kZWxzL2VudGl0eS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUNMLElBQUksRUFJSixRQUFRLEVBQ1IsS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLFNBQVMsQ0FBQztBQUlqQixNQUFNLE9BQU8sY0FBd0IsU0FBUSxRQUEwQjtDQUFHO0FBRTFFLE1BQU0sT0FBTyxXQUFxQixTQUFRLEtBQXdCO0lBQWxFOztRQUNZLFVBQUssR0FBNEIsY0FBYyxDQUFDO0lBQzVELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxrQkFBNEIsU0FBUSxZQUE0QjtJQUE3RTs7UUFDWSxVQUFLLEdBQXlCLFdBQVcsQ0FBQztJQUN0RCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sVUFBb0IsU0FBUSxJQUFPO0lBVTlDLFlBQVksT0FBNkI7UUFDdkMsS0FBSyxDQUNILE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLElBQUksRUFDWixPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFDekIsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhO1lBQ2hCLE9BQU8sQ0FBQyxhQUFhO2dCQUNyQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBRSxJQUFJLENBQUMsTUFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9CLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFVLE9BQTZCO1FBQ2xELE9BQU8sSUFBSSxVQUFVLENBQUksT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQVUsY0FBc0M7UUFDL0QsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGVzY2FwZUh0bWxDaGFycyB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEluamVjdE9wdGlvbnMsIEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFjdGlvbkNhbGxiYWNrIH0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICBQcm9wLFxyXG4gIFByb3BDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcHMsXHJcbiAgUHJvcHNGYWN0b3J5LFxyXG59IGZyb20gJy4vcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcFRvb2x0aXAgfSBmcm9tICcuL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJlZFdpdGhPcHRpb25zLCBQYXJ0aWFsV2l0aE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9tb2RlbC51dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UHJvcExpc3Q8UiA9IGFueT4gZXh0ZW5kcyBQcm9wTGlzdDxSLCBFbnRpdHlQcm9wPFI+PiB7fVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVByb3BzPFIgPSBhbnk+IGV4dGVuZHMgUHJvcHM8RW50aXR5UHJvcExpc3Q8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8RW50aXR5UHJvcExpc3Q8Uj4+ID0gRW50aXR5UHJvcExpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8UiA9IGFueT4gZXh0ZW5kcyBQcm9wc0ZhY3Rvcnk8RW50aXR5UHJvcHM8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8RW50aXR5UHJvcHM8Uj4+ID0gRW50aXR5UHJvcHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQcm9wPFIgPSBhbnk+IGV4dGVuZHMgUHJvcDxSPiB7XHJcbiAgcmVhZG9ubHkgY29sdW1uV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICByZWFkb25seSBzb3J0YWJsZTogYm9vbGVhbjtcclxuICByZWFkb25seSB2YWx1ZVJlc29sdmVyOiBQcm9wQ2FsbGJhY2s8UiwgT2JzZXJ2YWJsZTxhbnk+PjtcclxuICByZWFkb25seSBhY3Rpb24/OiBBY3Rpb25DYWxsYmFjazxSPjtcclxuICByZWFkb25seSBjb21wb25lbnQ/OiBUeXBlPGFueT47XHJcbiAgcmVhZG9ubHkgZW51bUxpc3Q/OiBBcnJheTxBQlAuT3B0aW9uPGFueT4+O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA/OiBGb3JtUHJvcFRvb2x0aXA7XHJcbiAgcmVhZG9ubHkgY29sdW1uVmlzaWJsZTogQ29sdW1uUHJlZGljYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbnRpdHlQcm9wT3B0aW9uczxSPikge1xyXG4gICAgc3VwZXIoXHJcbiAgICAgIG9wdGlvbnMudHlwZSxcclxuICAgICAgb3B0aW9ucy5uYW1lLFxyXG4gICAgICBvcHRpb25zLmRpc3BsYXlOYW1lIHx8ICcnLFxyXG4gICAgICBvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsXHJcbiAgICAgIG9wdGlvbnMudmlzaWJsZSxcclxuICAgICAgb3B0aW9ucy5pc0V4dHJhLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNvbHVtblZpc2libGUgPSBvcHRpb25zLmNvbHVtblZpc2libGUgfHwgKCgpID0+IHRydWUpO1xyXG4gICAgdGhpcy5jb2x1bW5XaWR0aCA9IG9wdGlvbnMuY29sdW1uV2lkdGg7XHJcbiAgICB0aGlzLnNvcnRhYmxlID0gb3B0aW9ucy5zb3J0YWJsZSB8fCBmYWxzZTtcclxuICAgIHRoaXMudmFsdWVSZXNvbHZlciA9XHJcbiAgICAgIG9wdGlvbnMudmFsdWVSZXNvbHZlciB8fFxyXG4gICAgICAoZGF0YSA9PiBvZihlc2NhcGVIdG1sQ2hhcnMoKGRhdGEucmVjb3JkIGFzIFByb3BEYXRhT2JqZWN0KVt0aGlzLm5hbWVdKSkpO1xyXG4gICAgaWYgKG9wdGlvbnMuYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uID0gb3B0aW9ucy5hY3Rpb247XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9ucy5jb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQgPSBvcHRpb25zLmNvbXBvbmVudDtcclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLmVudW1MaXN0KSB7XHJcbiAgICAgIHRoaXMuZW51bUxpc3QgPSBvcHRpb25zLmVudW1MaXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy50b29sdGlwID0gb3B0aW9ucy50b29sdGlwO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZTxSID0gYW55PihvcHRpb25zOiBFbnRpdHlQcm9wT3B0aW9uczxSPikge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlQcm9wPFI+KG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZU1hbnk8UiA9IGFueT4oYXJyYXlPZk9wdGlvbnM6IEVudGl0eVByb3BPcHRpb25zPFI+W10pIHtcclxuICAgIHJldHVybiBhcnJheU9mT3B0aW9ucy5tYXAoRW50aXR5UHJvcC5jcmVhdGUpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBPcHRpb25hbEtleXMgPVxyXG4gIHwgJ3Blcm1pc3Npb24nXHJcbiAgfCAndmlzaWJsZSdcclxuICB8ICdjb2x1bW5WaXNpYmxlJ1xyXG4gIHwgJ2Rpc3BsYXlOYW1lJ1xyXG4gIHwgJ2lzRXh0cmEnXHJcbiAgfCAnY29sdW1uV2lkdGgnXHJcbiAgfCAnc29ydGFibGUnXHJcbiAgfCAndmFsdWVSZXNvbHZlcidcclxuICB8ICdhY3Rpb24nXHJcbiAgfCAnY29tcG9uZW50J1xyXG4gIHwgJ2VudW1MaXN0JztcclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcE9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8RW50aXR5UHJvcDxSPiwgT3B0aW9uYWxLZXlzPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxFbnRpdHlQcm9wPFI+LCBPcHRpb25hbEtleXM+O1xyXG5cclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcERlZmF1bHRzPFIgPSBhbnk+ID0gUmVjb3JkPHN0cmluZywgRW50aXR5UHJvcDxSPltdPjtcclxuZXhwb3J0IHR5cGUgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8UiA9IGFueT4gPSBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxFbnRpdHlQcm9wTGlzdDxSPj47XHJcbmV4cG9ydCB0eXBlIEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSID0gYW55PiA9IFByb3BDb250cmlidXRvckNhbGxiYWNrczxFbnRpdHlQcm9wTGlzdDxSPj47XHJcbmV4cG9ydCB0eXBlIENvbHVtblByZWRpY2F0ZSA9IChnZXRJbmplY3RlZDogR2V0SW5qZWN0ZWQsIGF1eERhdGE/OiBhbnkpID0+IGJvb2xlYW47XHJcbmV4cG9ydCB0eXBlIEdldEluamVjdGVkID0gPFQ+KFxyXG4gIHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sXHJcbiAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgb3B0aW9ucz86IEluamVjdE9wdGlvbnMsXHJcbikgPT4gVDtcclxudHlwZSBQcm9wRGF0YU9iamVjdCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiJdfQ==","import { Action, ActionList, Actions, ActionsFactory, } from './actions';\nexport class ToolbarActionList extends ActionList {\n}\nexport class ToolbarActions extends Actions {\n constructor() {\n super(...arguments);\n this._ctor = ToolbarActionList;\n }\n}\nexport class ToolbarActionsFactory extends ActionsFactory {\n constructor() {\n super(...arguments);\n this._ctor = ToolbarActions;\n }\n}\nexport class ToolbarAction extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.text = options.text;\n this.icon = options.icon || '';\n if (options.btnClass) {\n this.btnClass = options.btnClass;\n }\n }\n static create(options) {\n return new ToolbarAction(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(ToolbarAction.create);\n }\n}\nexport class ToolbarComponent extends Action {\n constructor(options) {\n super(options.permission || '', options.visible, options.action);\n this.component = options.component;\n }\n static create(options) {\n return new ToolbarComponent(options);\n }\n static createMany(arrayOfOptions) {\n return arrayOfOptions.map(ToolbarComponent.create);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvbW9kZWxzL3Rvb2xiYXItYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsTUFBTSxFQUlOLFVBQVUsRUFDVixPQUFPLEVBQ1AsY0FBYyxHQUVmLE1BQU0sV0FBVyxDQUFDO0FBR25CLE1BQU0sT0FBTyxpQkFBMkIsU0FBUSxVQUFzQztDQUFHO0FBRXpGLE1BQU0sT0FBTyxjQUF3QixTQUFRLE9BQTZCO0lBQTFFOztRQUNZLFVBQUssR0FBK0IsaUJBQWlCLENBQUM7SUFDbEUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHFCQUErQixTQUFRLGNBQWlDO0lBQXJGOztRQUNZLFVBQUssR0FBNEIsY0FBYyxDQUFDO0lBQzVELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxhQUF1QixTQUFRLE1BQVM7SUFLbkQsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBVSxPQUFnQztRQUNyRCxPQUFPLElBQUksYUFBYSxDQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFVLGNBQXlDO1FBQ2xFLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUEwQixTQUFRLE1BQVM7SUFHdEQsWUFBWSxPQUFtQztRQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFVLE9BQW1DO1FBQ3hELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBVSxjQUE0QztRQUNyRSxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBY3Rpb24sXHJcbiAgQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjayxcclxuICBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBBY3Rpb25EYXRhLFxyXG4gIEFjdGlvbkxpc3QsXHJcbiAgQWN0aW9ucyxcclxuICBBY3Rpb25zRmFjdG9yeSxcclxuICBSZWFkb25seUFjdGlvbkRhdGEsXHJcbn0gZnJvbSAnLi9hY3Rpb25zJztcclxuaW1wb3J0IHsgRmlsdGVyZWRXaXRoT3B0aW9ucywgUGFydGlhbFdpdGhPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwudXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJBY3Rpb25MaXN0PFIgPSBhbnk+IGV4dGVuZHMgQWN0aW9uTGlzdDxSLCBUb29sYmFyQWN0aW9uRGVmYXVsdDxSPj4ge31cclxuXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyQWN0aW9uczxSID0gYW55PiBleHRlbmRzIEFjdGlvbnM8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+IHtcclxuICBwcm90ZWN0ZWQgX2N0b3I6IFR5cGU8VG9vbGJhckFjdGlvbkxpc3Q8Uj4+ID0gVG9vbGJhckFjdGlvbkxpc3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb25zRmFjdG9yeTxUb29sYmFyQWN0aW9uczxSPj4ge1xyXG4gIHByb3RlY3RlZCBfY3RvcjogVHlwZTxUb29sYmFyQWN0aW9uczxSPj4gPSBUb29sYmFyQWN0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJBY3Rpb248UiA9IGFueT4gZXh0ZW5kcyBBY3Rpb248Uj4ge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSBpY29uOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgYnRuQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRvb2xiYXJBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy50ZXh0ID0gb3B0aW9ucy50ZXh0O1xyXG4gICAgdGhpcy5pY29uID0gb3B0aW9ucy5pY29uIHx8ICcnO1xyXG4gICAgaWYgKG9wdGlvbnMuYnRuQ2xhc3MpIHtcclxuICAgICAgdGhpcy5idG5DbGFzcyA9IG9wdGlvbnMuYnRuQ2xhc3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlPFIgPSBhbnk+KG9wdGlvbnM6IFRvb2xiYXJBY3Rpb25PcHRpb25zPFI+KSB7XHJcbiAgICByZXR1cm4gbmV3IFRvb2xiYXJBY3Rpb248Uj4ob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlTWFueTxSID0gYW55PihhcnJheU9mT3B0aW9uczogVG9vbGJhckFjdGlvbk9wdGlvbnM8Uj5bXSkge1xyXG4gICAgcmV0dXJuIGFycmF5T2ZPcHRpb25zLm1hcChUb29sYmFyQWN0aW9uLmNyZWF0ZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudDxSID0gYW55PiBleHRlbmRzIEFjdGlvbjxSPiB7XHJcbiAgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRvb2xiYXJDb21wb25lbnRPcHRpb25zPFI+KSB7XHJcbiAgICBzdXBlcihvcHRpb25zLnBlcm1pc3Npb24gfHwgJycsIG9wdGlvbnMudmlzaWJsZSwgb3B0aW9ucy5hY3Rpb24pO1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBvcHRpb25zLmNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGU8UiA9IGFueT4ob3B0aW9uczogVG9vbGJhckNvbXBvbmVudE9wdGlvbnM8Uj4pIHtcclxuICAgIHJldHVybiBuZXcgVG9vbGJhckNvbXBvbmVudDxSPihvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVNYW55PFIgPSBhbnk+KGFycmF5T2ZPcHRpb25zOiBUb29sYmFyQ29tcG9uZW50T3B0aW9uczxSPltdKSB7XHJcbiAgICByZXR1cm4gYXJyYXlPZk9wdGlvbnMubWFwKFRvb2xiYXJDb21wb25lbnQuY3JlYXRlKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgT3B0aW9uYWxBY3Rpb25LZXlzID0gJ3Blcm1pc3Npb24nIHwgJ3Zpc2libGUnIHwgJ2ljb24nIHwgJ2J0bkNsYXNzJztcclxuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbk9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8XHJcbiAgVG9vbGJhckFjdGlvbjxSPixcclxuICBPcHRpb25hbEFjdGlvbktleXNcclxuPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxUb29sYmFyQWN0aW9uPFI+LCBPcHRpb25hbEFjdGlvbktleXM+O1xyXG5cclxudHlwZSBPcHRpb25hbENvbXBvbmVudEtleXMgPSAncGVybWlzc2lvbicgfCAndmlzaWJsZScgfCAnYWN0aW9uJztcclxuZXhwb3J0IHR5cGUgVG9vbGJhckNvbXBvbmVudE9wdGlvbnM8UiA9IGFueT4gPSBQYXJ0aWFsV2l0aE9wdGlvbnM8XHJcbiAgVG9vbGJhckNvbXBvbmVudDxSPixcclxuICBPcHRpb25hbENvbXBvbmVudEtleXNcclxuPiAmXHJcbiAgRmlsdGVyZWRXaXRoT3B0aW9uczxUb29sYmFyQ29tcG9uZW50PFI+LCBPcHRpb25hbENvbXBvbmVudEtleXM+O1xyXG5cclxuZXhwb3J0IHR5cGUgVG9vbGJhckFjdGlvbkRlZmF1bHQ8UiA9IGFueT4gPSBUb29sYmFyQWN0aW9uPFI+IHwgVG9vbGJhckNvbXBvbmVudDxSPjtcclxuXHJcbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb25EZWZhdWx0czxSID0gYW55PiA9IFJlY29yZDxzdHJpbmcsIEFycmF5PFRvb2xiYXJBY3Rpb25EZWZhdWx0PFI+Pj47XHJcbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPFIgPSBhbnk+ID0gQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFjazxcclxuICBUb29sYmFyQWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBUb29sYmFyQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8UiA9IGFueT4gPSBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrczxcclxuICBUb29sYmFyQWN0aW9uTGlzdDxSPlxyXG4+O1xyXG5leHBvcnQgdHlwZSBJbmZlcnJlZERhdGE8TD4gPSBBY3Rpb25EYXRhPEluZmVycmVkUmVjb3JkPEw+PjtcclxuZXhwb3J0IHR5cGUgSW5mZXJyZWRSZWNvcmQ8TD4gPSBMIGV4dGVuZHMgQWN0aW9uTGlzdDxpbmZlciBSPiA/IFIgOiBhbnk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhhc0NyZWF0ZUluamVjdG9yUGlwZTxSPiB7XHJcbiAgZ2V0RGF0YTogKCkgPT4gUmVhZG9ubHlBY3Rpb25EYXRhPFI+O1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPFRvb2xiYXJBY3Rpb25MaXN0PFI+PlsnZ2V0SW5qZWN0ZWQnXTtcclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { EntityActionsFactory } from '../models/entity-actions';\nimport { EntityPropsFactory } from '../models/entity-props';\nimport { CreateFormPropsFactory, EditFormPropsFactory } from '../models/form-props';\nimport { ToolbarActionsFactory } from '../models/toolbar-actions';\nimport * as i0 from \"@angular/core\";\nexport class ExtensionsService {\n constructor() {\n this.entityActions = new EntityActionsFactory();\n this.toolbarActions = new ToolbarActionsFactory();\n this.entityProps = new EntityPropsFactory();\n this.createFormProps = new CreateFormPropsFactory();\n this.editFormProps = new EditFormPropsFactory();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensionsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBS2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJVyxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztRQUM5QyxtQkFBYyxHQUFHLElBQUkscUJBQXFCLEVBQU8sQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksa0JBQWtCLEVBQUssQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksc0JBQXNCLEVBQUssQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksb0JBQW9CLEVBQUssQ0FBQztLQUN4RDs4R0FOWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25zRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3BzRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5LCBFZGl0Rm9ybVByb3BzRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgVG9vbGJhckFjdGlvbnNGYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uc1NlcnZpY2U8UiA9IGFueT4ge1xyXG4gIHJlYWRvbmx5IGVudGl0eUFjdGlvbnMgPSBuZXcgRW50aXR5QWN0aW9uc0ZhY3Rvcnk8Uj4oKTtcclxuICByZWFkb25seSB0b29sYmFyQWN0aW9ucyA9IG5ldyBUb29sYmFyQWN0aW9uc0ZhY3Rvcnk8UltdPigpO1xyXG4gIHJlYWRvbmx5IGVudGl0eVByb3BzID0gbmV3IEVudGl0eVByb3BzRmFjdG9yeTxSPigpO1xyXG4gIHJlYWRvbmx5IGNyZWF0ZUZvcm1Qcm9wcyA9IG5ldyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PFI+KCk7XHJcbiAgcmVhZG9ubHkgZWRpdEZvcm1Qcm9wcyA9IG5ldyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxSPigpO1xyXG59XHJcbiJdfQ==","/* eslint-disable @angular-eslint/no-input-rename */\nimport { Directive, Injector, Input, TemplateRef, ViewContainerRef, inject } from '@angular/core';\nimport { PropData } from '../models/props';\nimport * as i0 from \"@angular/core\";\nexport class PropDataDirective extends PropData {\n constructor() {\n const injector = inject(Injector);\n super();\n this.tempRef = inject(TemplateRef);\n this.vcRef = inject(ViewContainerRef);\n this.getInjected = injector.get.bind(injector);\n }\n ngOnChanges() {\n this.vcRef.clear();\n this.vcRef.createEmbeddedView(this.tempRef, {\n $implicit: this.data,\n index: 0,\n });\n }\n ngOnDestroy() {\n this.vcRef.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PropDataDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: PropDataDirective, isStandalone: true, selector: \"[abpPropData]\", inputs: { propList: [\"abpPropDataFromList\", \"propList\"], record: [\"abpPropDataWithRecord\", \"record\"], index: [\"abpPropDataAtIndex\", \"index\"] }, exportAs: [\"abpPropData\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PropDataDirective, decorators: [{\n type: Directive,\n args: [{\n exportAs: 'abpPropData',\n selector: '[abpPropData]',\n }]\n }], ctorParameters: () => [], propDecorators: { propList: [{\n type: Input,\n args: ['abpPropDataFromList']\n }], record: [{\n type: Input,\n args: ['abpPropDataWithRecord']\n }], index: [{\n type: Input,\n args: ['abpPropDataAtIndex']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQVksTUFBTSxpQkFBaUIsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLGlCQUNYLFNBQVEsUUFBeUI7SUFjakM7UUFDRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsS0FBSyxFQUFFLENBQUM7UUFkRixZQUFPLEdBQUcsTUFBTSxDQUFtQixXQUFXLENBQUMsQ0FBQztRQUNoRCxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFldkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWxDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO3dEQVErQixRQUFRO3NCQUFyQyxLQUFLO3VCQUFDLHFCQUFxQjtnQkFFSSxNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLHVCQUF1QjtnQkFFRCxLQUFLO3NCQUFqQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cclxuaW1wb3J0IHsgXHJcbiAgRGlyZWN0aXZlLCBcclxuICBJbmplY3RvciwgXHJcbiAgSW5wdXQsIFxyXG4gIE9uQ2hhbmdlcywgXHJcbiAgT25EZXN0cm95LCBcclxuICBUZW1wbGF0ZVJlZiwgXHJcbiAgVmlld0NvbnRhaW5lclJlZiwgXHJcbiAgaW5qZWN0IFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSwgUHJvcExpc3QgfSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgZXhwb3J0QXM6ICdhYnBQcm9wRGF0YScsXHJcbiAgc2VsZWN0b3I6ICdbYWJwUHJvcERhdGFdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb3BEYXRhRGlyZWN0aXZlPEwgZXh0ZW5kcyBQcm9wTGlzdDxhbnk+PlxyXG4gIGV4dGVuZHMgUHJvcERhdGE8SW5mZXJyZWREYXRhPEw+PlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcclxue1xyXG4gIHByaXZhdGUgdGVtcFJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihUZW1wbGF0ZVJlZik7XHJcbiAgcHJpdmF0ZSB2Y1JlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuXHJcbiAgQElucHV0KCdhYnBQcm9wRGF0YUZyb21MaXN0JykgcHJvcExpc3Q/OiBMO1xyXG5cclxuICBASW5wdXQoJ2FicFByb3BEYXRhV2l0aFJlY29yZCcpIHJlY29yZCE6IEluZmVycmVkRGF0YTxMPlsncmVjb3JkJ107XHJcblxyXG4gIEBJbnB1dCgnYWJwUHJvcERhdGFBdEluZGV4JykgaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIHJlYWRvbmx5IGdldEluamVjdGVkOiBJbmZlcnJlZERhdGE8TD5bJ2dldEluamVjdGVkJ107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgdGhpcy5nZXRJbmplY3RlZCA9IGluamVjdG9yLmdldC5iaW5kKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG5cclxuICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcFJlZiwge1xyXG4gICAgICAkaW1wbGljaXQ6IHRoaXMuZGF0YSxcclxuICAgICAgaW5kZXg6IDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBJbmZlcnJlZERhdGE8TD4gPSBQcm9wRGF0YTxJbmZlcnJlZFJlY29yZDxMPj47XHJcbnR5cGUgSW5mZXJyZWRSZWNvcmQ8TD4gPSBMIGV4dGVuZHMgUHJvcExpc3Q8aW5mZXIgUj4gPyBSIDogbmV2ZXI7XHJcbiJdfQ==","import { TrackByService } from '@abp/ng.core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, Optional, QueryList, SkipSelf, ViewChildren, } from '@angular/core';\nimport { ControlContainer, ReactiveFormsModule } from '@angular/forms';\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\nimport { GroupedFormPropList } from '../../models/form-props';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\nimport { selfFactory } from '../../utils/factory.util';\nimport { ExtensibleFormPropComponent } from './extensible-form-prop.component';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { PropDataDirective } from '../../directives/prop-data.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class ExtensibleFormComponent {\n constructor() {\n this.cdRef = inject(ChangeDetectorRef);\n this.track = inject(TrackByService);\n this.container = inject(ControlContainer);\n this.extensions = inject(ExtensionsService);\n this.identifier = inject(EXTENSIONS_IDENTIFIER);\n this.extraPropertiesKey = EXTRA_PROPERTIES_KEY;\n }\n set selectedRecord(record) {\n const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';\n const propList = this.extensions[`${type}FormProps`].get(this.identifier).props;\n this.groupedPropList = this.createGroupedList(propList);\n this.record = record;\n }\n get form() {\n return (this.container ? this.container.control : { controls: {} });\n }\n get extraProperties() {\n return (this.form.controls.extraProperties || { controls: {} });\n }\n createGroupedList(propList) {\n const groupedFormPropList = new GroupedFormPropList();\n propList.forEach(item => {\n groupedFormPropList.addItem(item.value);\n });\n return groupedFormPropList;\n }\n //TODO: Reactor this method\n isAnyGroupMemberVisible(index, data) {\n const { items } = this.groupedPropList;\n const formPropList = items[index].formPropList.toArray();\n return formPropList.some(prop => prop.visible(data));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleFormComponent, isStandalone: true, selector: \"abp-extensible-form\", inputs: { selectedRecord: \"selectedRecord\" }, viewQueries: [{ propertyName: \"formProps\", predicate: ExtensibleFormPropComponent, descendants: 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\\r\\n [ngClass]=\\\"groupedProp.group?.className\\\"\\r\\n [attr.data-name]=\\\"groupedProp.group?.name || groupedProp.group?.className\\\"\\r\\n >\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first}\\\"\\r\\n >\\r\\n </ng-container>\\r\\n </div>\\r\\n } @else {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first }\\\"\\r\\n >\\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\\r\\n [class]=\\\"prop.className\\\"\\r\\n [prop]=\\\"prop\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [isFirstGroup]=\\\"isFirstGroup\\\"\\r\\n />\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { 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: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.FormGroupName, selector: \"[formGroupName]\", inputs: [\"formGroupName\"] }, { kind: \"component\", type: ExtensibleFormPropComponent, selector: \"abp-extensible-form-prop\", inputs: [\"data\", \"prop\", \"first\", \"isFirstGroup\"] }], viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleFormComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpExtensibleForm', selector: 'abp-extensible-form', imports: [NgClass, NgTemplateOutlet, PropDataDirective, ReactiveFormsModule, ExtensibleFormPropComponent], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [\n {\n provide: ControlContainer,\n useFactory: selfFactory,\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\n },\n ], 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\\r\\n [ngClass]=\\\"groupedProp.group?.className\\\"\\r\\n [attr.data-name]=\\\"groupedProp.group?.name || groupedProp.group?.className\\\"\\r\\n >\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first}\\\"\\r\\n >\\r\\n </ng-container>\\r\\n </div>\\r\\n } @else {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"propListTemplate\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ groupedProp: groupedProp, data: data, isFirstGroup: first }\\\"\\r\\n >\\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\\r\\n [class]=\\\"prop.className\\\"\\r\\n [prop]=\\\"prop\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [isFirstGroup]=\\\"isFirstGroup\\\"\\r\\n />\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\" }]\n }], propDecorators: { formProps: [{\n type: ViewChildren,\n args: [ExtensibleFormPropComponent]\n }], selectedRecord: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVE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QkFBaUIsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsQ0FBQyxtQkFDeEYsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3FCQUNGOzhCQVVELFNBQVM7c0JBRFIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBSXJDLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCwgR3JvdXBlZEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUHJvcERhdGFEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Byb3AtZGF0YS5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlRm9ybScsXHJcbiAgc2VsZWN0b3I6ICdhYnAtZXh0ZW5zaWJsZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBpbXBvcnRzOiBbTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCwgUHJvcERhdGFEaXJlY3RpdmUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICB1c2VGYWN0b3J5OiBzZWxmRmFjdG9yeSxcclxuICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIENvbnRyb2xDb250YWluZXJdXSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGb3JtQ29tcG9uZW50PFIgPSBhbnk+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFjayA9IGluamVjdChUcmFja0J5U2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXIgPSBpbmplY3QoQ29udHJvbENvbnRhaW5lcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBleHRlbnNpb25zID0gaW5qZWN0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGlkZW50aWZpZXIgPSBpbmplY3QoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQpXHJcbiAgZm9ybVByb3BzITogUXVlcnlMaXN0PEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudD47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlbGVjdGVkUmVjb3JkKHJlY29yZDogUikge1xyXG4gICAgY29uc3QgdHlwZSA9ICFyZWNvcmQgfHwgSlNPTi5zdHJpbmdpZnkocmVjb3JkKSA9PT0gJ3t9JyA/ICdjcmVhdGUnIDogJ2VkaXQnO1xyXG4gICAgY29uc3QgcHJvcExpc3QgPSB0aGlzLmV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQodGhpcy5pZGVudGlmaWVyKS5wcm9wcztcclxuICAgIHRoaXMuZ3JvdXBlZFByb3BMaXN0ID0gdGhpcy5jcmVhdGVHcm91cGVkTGlzdChwcm9wTGlzdCk7XHJcbiAgICB0aGlzLnJlY29yZCA9IHJlY29yZDtcclxuICB9XHJcblxyXG4gIGV4dHJhUHJvcGVydGllc0tleSA9IEVYVFJBX1BST1BFUlRJRVNfS0VZO1xyXG4gIGdyb3VwZWRQcm9wTGlzdCE6IEdyb3VwZWRGb3JtUHJvcExpc3Q7XHJcbiAgZ3JvdXBlZFByb3BMaXN0T2ZBcnJheTogRm9ybVByb3A8YW55PltdW107XHJcbiAgcmVjb3JkITogUjtcclxuXHJcbiAgZ2V0IGZvcm0oKTogVW50eXBlZEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gKHRoaXMuY29udGFpbmVyID8gdGhpcy5jb250YWluZXIuY29udHJvbCA6IHsgY29udHJvbHM6IHt9IH0pIGFzIFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBnZXQgZXh0cmFQcm9wZXJ0aWVzKCk6IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMuZXh0cmFQcm9wZXJ0aWVzIHx8IHsgY29udHJvbHM6IHt9IH0pIGFzIFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVHcm91cGVkTGlzdChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFI+KSB7XHJcbiAgICBjb25zdCBncm91cGVkRm9ybVByb3BMaXN0ID0gbmV3IEdyb3VwZWRGb3JtUHJvcExpc3QoKTtcclxuICAgIHByb3BMaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGdyb3VwZWRGb3JtUHJvcExpc3QuYWRkSXRlbShpdGVtLnZhbHVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBncm91cGVkRm9ybVByb3BMaXN0O1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPOiBSZWFjdG9yIHRoaXMgbWV0aG9kXHJcbiAgaXNBbnlHcm91cE1lbWJlclZpc2libGUoaW5kZXg6IG51bWJlciwgZGF0YSkge1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gdGhpcy5ncm91cGVkUHJvcExpc3Q7XHJcbiAgICBjb25zdCBmb3JtUHJvcExpc3QgPSBpdGVtc1tpbmRleF0uZm9ybVByb3BMaXN0LnRvQXJyYXkoKTtcclxuICAgIHJldHVybiBmb3JtUHJvcExpc3Quc29tZShwcm9wID0+IHByb3AudmlzaWJsZShkYXRhKSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoZm9ybSkge1xyXG4gIEBmb3IgKGdyb3VwZWRQcm9wIG9mIGdyb3VwZWRQcm9wTGlzdC5pdGVtczsgdHJhY2sgaTsgbGV0IGkgPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdCkge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqYWJwUHJvcERhdGE9XCJsZXQgZGF0YTsgZnJvbUxpc3Q6IGdyb3VwZWRQcm9wLmZvcm1Qcm9wTGlzdDsgd2l0aFJlY29yZDogcmVjb3JkXCI+XHJcbiAgICAgIEBpZiAoaXNBbnlHcm91cE1lbWJlclZpc2libGUoaSwgZGF0YSkgJiYgZ3JvdXBlZFByb3AuZ3JvdXA/LmNsYXNzTmFtZSkge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImdyb3VwZWRQcm9wLmdyb3VwPy5jbGFzc05hbWVcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImdyb3VwZWRQcm9wLmdyb3VwPy5uYW1lIHx8IGdyb3VwZWRQcm9wLmdyb3VwPy5jbGFzc05hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJvcExpc3RUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdyb3VwZWRQcm9wOiBncm91cGVkUHJvcCwgZGF0YTogZGF0YSwgaXNGaXJzdEdyb3VwOiBmaXJzdH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb3BMaXN0VGVtcGxhdGVcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ3JvdXBlZFByb3A6IGdyb3VwZWRQcm9wLCBkYXRhOiBkYXRhLCBpc0ZpcnN0R3JvdXA6IGZpcnN0IH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG59XHJcblxyXG48bmctdGVtcGxhdGUgbGV0LWdyb3VwZWRQcm9wPVwiZ3JvdXBlZFByb3BcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtaXNGaXJzdEdyb3VwPVwiaXNGaXJzdEdyb3VwXCIgI3Byb3BMaXN0VGVtcGxhdGU+XHJcbiAgQGZvciAocHJvcCBvZiBncm91cGVkUHJvcC5mb3JtUHJvcExpc3Q7IGxldCBpbmRleCA9ICRpbmRleDsgbGV0IGZpcnN0ID0gJGZpcnN0OyB0cmFjayBwcm9wLm5hbWUpIHtcclxuICAgIEBpZiAocHJvcC52aXNpYmxlKGRhdGEpKSB7XHJcbiAgICAgIEBpZiAoZXh0cmFQcm9wZXJ0aWVzLmNvbnRyb2xzW3Byb3AubmFtZV0pIHtcclxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBOYW1lXT1cImV4dHJhUHJvcGVydGllc0tleVwiPlxyXG4gICAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0tcHJvcCBbcHJvcF09XCJwcm9wXCIgW2RhdGFdPVwiZGF0YVwiIFtjbGFzc109XCJwcm9wLmNsYXNzTmFtZVwiIC8+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIEBpZiAoZm9ybS5nZXQocHJvcC5uYW1lKSkge1xyXG4gICAgICAgICAgPGFicC1leHRlbnNpYmxlLWZvcm0tcHJvcFxyXG4gICAgICAgICAgICBbY2xhc3NdPVwicHJvcC5jbGFzc05hbWVcIlxyXG4gICAgICAgICAgICBbcHJvcF09XCJwcm9wXCJcclxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICAgICAgICAgIFtpc0ZpcnN0R3JvdXBdPVwiaXNGaXJzdEdyb3VwXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=","import { Directive, Injector, Input, inject } from '@angular/core';\nimport { ActionData } from '../../models/actions';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { EXTENSIONS_ACTION_TYPE, EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\nimport * as i0 from \"@angular/core\";\n// Fix for https://github.com/angular/angular/issues/23904\n// @dynamic\nexport class AbstractActionsComponent extends ActionData {\n constructor() {\n const injector = inject(Injector);\n super();\n this.getInjected = injector.get.bind(injector);\n const extensions = injector.get(ExtensionsService);\n const name = injector.get(EXTENSIONS_IDENTIFIER);\n const type = injector.get(EXTENSIONS_ACTION_TYPE);\n this.actionList = extensions[type].get(name).actions;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: AbstractActionsComponent, isStandalone: true, inputs: { record: \"record\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractActionsComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { record: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUE4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUc5RiwwREFBMEQ7QUFDMUQsV0FBVztBQUVYLE1BQU0sT0FBZ0Isd0JBRXBCLFNBQVEsVUFBNkI7SUFPckM7UUFDRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUF1QixDQUFDO0lBQ3ZFLENBQUM7OEdBbEJtQix3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEN0MsU0FBUzt3REFRQyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvbkRhdGEsIEFjdGlvbkxpc3QsIEluZmVycmVkQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUsIEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgSW5mZXJyZWREYXRhLCBJbmZlcnJlZFJlY29yZCB9IGZyb20gJy4uLy4uL21vZGVscy90b29sYmFyLWFjdGlvbnMnO1xyXG5cclxuLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMzkwNFxyXG4vLyBAZHluYW1pY1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudDxcclxuICBMIGV4dGVuZHMgQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPEw+PixcclxuPiBleHRlbmRzIEFjdGlvbkRhdGE8SW5mZXJyZWRSZWNvcmQ8TD4+IHtcclxuICByZWFkb25seSBhY3Rpb25MaXN0OiBMO1xyXG5cclxuICByZWFkb25seSBnZXRJbmplY3RlZDogSW5mZXJyZWREYXRhPEw+WydnZXRJbmplY3RlZCddO1xyXG5cclxuICBASW5wdXQoKSByZWNvcmQhOiBJbmZlcnJlZERhdGE8TD5bJ3JlY29yZCddO1xyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZ2V0SW5qZWN0ZWQgPSBpbmplY3Rvci5nZXQuYmluZChpbmplY3Rvcik7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIGNvbnN0IHR5cGUgPSBpbmplY3Rvci5nZXQoRVhURU5TSU9OU19BQ1RJT05fVFlQRSk7XHJcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zW3R5cGVdLmdldChuYW1lKS5hY3Rpb25zIGFzIHVua25vd24gYXMgTDtcclxuICB9XHJcbn1cclxuIl19","import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\nimport { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { LocalizationPipe, PermissionDirective } from '@abp/ng.core';\nimport { EllipsisDirective } from '@abp/ng.theme.shared';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ng-bootstrap/ng-bootstrap\";\nexport class GridActionsComponent extends AbstractActionsComponent {\n constructor() {\n super();\n this.icon = 'fa fa-cog';\n this.text = '';\n this.trackByFn = (_, item) => item.text;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: GridActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: GridActionsComponent, isStandalone: true, selector: \"abp-grid-actions\", inputs: { icon: \"icon\", index: \"index\", text: \"text\" }, providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ], exportAs: [\"abpGridActions\"], usesInheritance: true, ngImport: i0, template: \"@if (actionList.length > 1) {\\r\\n <div ngbDropdown container=\\\"body\\\" class=\\\"d-inline-block\\\">\\r\\n <button\\r\\n class=\\\"btn btn-primary btn-sm dropdown-toggle\\\"\\r\\n data-toggle=\\\"dropdown\\\"\\r\\n aria-haspopup=\\\"true\\\"\\r\\n ngbDropdownToggle\\r\\n >\\r\\n <i [ngClass]=\\\"icon\\\" [class.me-1]=\\\"icon\\\"></i>{{ text | abpLocalization }}\\r\\n </button>\\r\\n <div ngbDropdownMenu>\\r\\n @for (action of actionList; track action.text) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"dropDownBtnItemTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: action }\\\"\\r\\n >\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n </div>\\r\\n}\\r\\n\\r\\n@if (actionList.length === 1) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"btnTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: actionList.get(0).value }\\\"\\r\\n ></ng-container>\\r\\n}\\r\\n\\r\\n<ng-template #dropDownBtnItemTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n <button\\r\\n ngbDropdownItem\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #buttonContentTmp let-action>\\r\\n <i [ngClass]=\\\"action.icon\\\" [class.me-1]=\\\"action.icon && !action.showOnlyIcon\\\"></i>\\r\\n @if (!action.showOnlyIcon) {\\r\\n @if (action.icon) {\\r\\n <span>{{ action.text | abpLocalization }}</span>\\r\\n } @else {\\r\\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #btnTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n @if (action.tooltip) {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n [ngbTooltip]=\\\"action.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"action.tooltip.placement || 'auto'\\\"\\r\\n triggers=\\\"hover\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n } @else {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: NgbDropdownModule }, { kind: \"directive\", type: i1.NgbDropdown, selector: \"[ngbDropdown]\", inputs: [\"autoClose\", \"dropdownClass\", \"open\", \"placement\", \"popperOptions\", \"container\", \"display\"], outputs: [\"openChange\"], exportAs: [\"ngbDropdown\"] }, { kind: \"directive\", type: i1.NgbDropdownToggle, selector: \"[ngbDropdownToggle]\" }, { kind: \"directive\", type: i1.NgbDropdownMenu, selector: \"[ngbDropdownMenu]\" }, { kind: \"directive\", type: i1.NgbDropdownItem, selector: \"[ngbDropdownItem]\", inputs: [\"tabindex\", \"disabled\"] }, { kind: \"directive\", type: i1.NgbDropdownButtonItem, selector: \"button[ngbDropdownItem]\" }, { kind: \"directive\", type: EllipsisDirective, selector: \"[abpEllipsis]\", inputs: [\"abpEllipsis\", \"title\", \"abpEllipsisEnabled\"] }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: NgbTooltipModule }, { kind: \"directive\", type: i1.NgbTooltip, selector: \"[ngbTooltip]\", inputs: [\"animation\", \"autoClose\", \"placement\", \"popperOptions\", \"triggers\", \"positionTarget\", \"container\", \"disableTooltip\", \"tooltipClass\", \"tooltipContext\", \"openDelay\", \"closeDelay\", \"ngbTooltip\"], outputs: [\"shown\", \"hidden\"], exportAs: [\"ngbTooltip\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: GridActionsComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpGridActions', imports: [\n NgbDropdownModule,\n EllipsisDirective,\n PermissionDirective,\n NgClass,\n LocalizationPipe,\n NgTemplateOutlet,\n NgbTooltipModule,\n ], selector: 'abp-grid-actions', providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'entityActions',\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (actionList.length > 1) {\\r\\n <div ngbDropdown container=\\\"body\\\" class=\\\"d-inline-block\\\">\\r\\n <button\\r\\n class=\\\"btn btn-primary btn-sm dropdown-toggle\\\"\\r\\n data-toggle=\\\"dropdown\\\"\\r\\n aria-haspopup=\\\"true\\\"\\r\\n ngbDropdownToggle\\r\\n >\\r\\n <i [ngClass]=\\\"icon\\\" [class.me-1]=\\\"icon\\\"></i>{{ text | abpLocalization }}\\r\\n </button>\\r\\n <div ngbDropdownMenu>\\r\\n @for (action of actionList; track action.text) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"dropDownBtnItemTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: action }\\\"\\r\\n >\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n </div>\\r\\n}\\r\\n\\r\\n@if (actionList.length === 1) {\\r\\n <ng-container\\r\\n [ngTemplateOutlet]=\\\"btnTmp\\\"\\r\\n [ngTemplateOutletContext]=\\\"{ $implicit: actionList.get(0).value }\\\"\\r\\n ></ng-container>\\r\\n}\\r\\n\\r\\n<ng-template #dropDownBtnItemTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n <button\\r\\n ngbDropdownItem\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #buttonContentTmp let-action>\\r\\n <i [ngClass]=\\\"action.icon\\\" [class.me-1]=\\\"action.icon && !action.showOnlyIcon\\\"></i>\\r\\n @if (!action.showOnlyIcon) {\\r\\n @if (action.icon) {\\r\\n <span>{{ action.text | abpLocalization }}</span>\\r\\n } @else {\\r\\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\\r\\n<ng-template #btnTmp let-action>\\r\\n @if (action.visible(data)) {\\r\\n @if (action.tooltip) {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n [ngbTooltip]=\\\"action.tooltip.text | abpLocalization\\\"\\r\\n [placement]=\\\"action.tooltip.placement || 'auto'\\\"\\r\\n triggers=\\\"hover\\\"\\r\\n container=\\\"body\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n } @else {\\r\\n <button\\r\\n *abpPermission=\\\"action.permission; runChangeDetection: false\\\"\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [class]=\\\"action.btnClass\\\"\\r\\n [style]=\\\"action.btnStyle\\\"\\r\\n >\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"buttonContentTmp; context: { $implicit: action }\\\"\\r\\n ></ng-container>\\r\\n </button>\\r\\n }\\r\\n }\\r\\n</ng-template>\\r\\n\" }]\n }], ctorParameters: () => [], propDecorators: { icon: [{\n type: Input\n }], index: [{\n type: Input\n }], text: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXVCNUQsTUFBTSxPQUFPLG9CQUE4QixTQUFRLHdCQUE2QztJQVM5RjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBVEQsU0FBSSxHQUFHLFdBQVcsQ0FBQztRQUluQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsY0FBUyxHQUFxQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFJOUUsQ0FBQzs4R0FYVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1SEFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixRQUFRLEVBQUUsZUFBZTthQUMxQjtTQUNGLCtFQ2hDSCw0ekZBd0ZBLDJDRHZFSSxpQkFBaUIsbW5CQUNqQixpQkFBaUIsa0hBQ2pCLG1CQUFtQiwwSEFDbkIsT0FBTywrRUFDUCxnQkFBZ0Isd0RBQ2hCLGdCQUFnQixtSkFDaEIsZ0JBQWdCOzsyRkFZUCxvQkFBb0I7a0JBckJoQyxTQUFTOytCQUNFLGdCQUFnQixXQUNqQjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7cUJBQ2pCLFlBQ1Msa0JBQWtCLGFBRWpCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxlQUFlO3lCQUMxQjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTt3REFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUVZLEtBQUs7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFxyXG4gIENvbXBvbmVudCwgXHJcbiAgSW5wdXQsIFxyXG4gIFRyYWNrQnlGdW5jdGlvbiwgXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eUFjdGlvbiwgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWFjdGlvbnMvYWJzdHJhY3QtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSwgTmdiVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUGlwZSwgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEVsbGlwc2lzRGlyZWN0aXZlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwR3JpZEFjdGlvbnMnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgRWxsaXBzaXNEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgTmdDbGFzcyxcclxuICAgIExvY2FsaXphdGlvblBpcGUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdiVG9vbHRpcE1vZHVsZSxcclxuICBdLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWdyaWQtYWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfQUNUSU9OX1RZUEUsXHJcbiAgICAgIHVzZVZhbHVlOiAnZW50aXR5QWN0aW9ucycsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmlkQWN0aW9uc0NvbXBvbmVudDxSID0gYW55PiBleHRlbmRzIEFic3RyYWN0QWN0aW9uc0NvbXBvbmVudDxFbnRpdHlBY3Rpb25MaXN0PFI+PiB7XHJcbiAgQElucHV0KCkgaWNvbiA9ICdmYSBmYS1jb2cnO1xyXG5cclxuICBASW5wdXQoKSByZWFkb25seSBpbmRleD86IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgdGV4dCA9ICcnO1xyXG5cclxuICByZWFkb25seSB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxFbnRpdHlBY3Rpb248Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0udGV4dDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGFjdGlvbkxpc3QubGVuZ3RoID4gMSkge1xyXG4gIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICA+XHJcbiAgICAgIDxpIFtuZ0NsYXNzXT1cImljb25cIiBbY2xhc3MubWUtMV09XCJpY29uXCI+PC9pPnt7IHRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XHJcbiAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25MaXN0OyB0cmFjayBhY3Rpb24udGV4dCkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3BEb3duQnRuSXRlbVRtcFwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGFjdGlvbiB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcblxyXG5AaWYgKGFjdGlvbkxpc3QubGVuZ3RoID09PSAxKSB7XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnRuVG1wXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogYWN0aW9uTGlzdC5nZXQoMCkudmFsdWUgfVwiXHJcbiAgPjwvbmctY29udGFpbmVyPlxyXG59XHJcblxyXG48bmctdGVtcGxhdGUgI2Ryb3BEb3duQnRuSXRlbVRtcCBsZXQtYWN0aW9uPlxyXG4gIEBpZiAoYWN0aW9uLnZpc2libGUoZGF0YSkpIHtcclxuICAgIDxidXR0b25cclxuICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICphYnBQZXJtaXNzaW9uPVwiYWN0aW9uLnBlcm1pc3Npb247IHJ1bkNoYW5nZURldGVjdGlvbjogZmFsc2VcIlxyXG4gICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbihkYXRhKVwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Db250ZW50VG1wOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aW9uIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvbkNvbnRlbnRUbXAgbGV0LWFjdGlvbj5cclxuICA8aSBbbmdDbGFzc109XCJhY3Rpb24uaWNvblwiIFtjbGFzcy5tZS0xXT1cImFjdGlvbi5pY29uICYmICFhY3Rpb24uc2hvd09ubHlJY29uXCI+PC9pPlxyXG4gIEBpZiAoIWFjdGlvbi5zaG93T25seUljb24pIHtcclxuICAgIEBpZiAoYWN0aW9uLmljb24pIHtcclxuICAgICAgPHNwYW4+e3sgYWN0aW9uLnRleHQgfCBhYnBMb2NhbGl6YXRpb24gfX08L3NwYW4+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBhYnBFbGxpcHNpcz57eyBhY3Rpb24udGV4dCB8IGFicExvY2FsaXphdGlvbiB9fTwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnRuVG1wIGxldC1hY3Rpb24+XHJcbiAgQGlmIChhY3Rpb24udmlzaWJsZShkYXRhKSkge1xyXG4gICAgQGlmIChhY3Rpb24udG9vbHRpcCkge1xyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtjbGFzc109XCJhY3Rpb24uYnRuQ2xhc3NcIlxyXG4gICAgICAgIFtzdHlsZV09XCJhY3Rpb24uYnRuU3R5bGVcIlxyXG4gICAgICAgIFtuZ2JUb29sdGlwXT1cImFjdGlvbi50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgIFtwbGFjZW1lbnRdPVwiYWN0aW9uLnRvb2x0aXAucGxhY2VtZW50IHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgdHJpZ2dlcnM9XCJob3ZlclwiXHJcbiAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkNvbnRlbnRUbXA7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhY3Rpb24gfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKmFicFBlcm1pc3Npb249XCJhY3Rpb24ucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5hY3Rpb24oZGF0YSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtjbGFzc109XCJhY3Rpb24uYnRuQ2xhc3NcIlxyXG4gICAgICAgIFtzdHlsZV09XCJhY3Rpb24uYnRuU3R5bGVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25Db250ZW50VG1wOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aW9uIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, PLATFORM_ID, signal, TemplateRef, } from '@angular/core';\nimport { AsyncPipe, isPlatformBrowser, NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport { filter, map, Subject, debounceTime, distinctUntilChanged } from 'rxjs';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { NgxDatatableModule, SelectionType } from '@swimlane/ngx-datatable';\nimport { ConfigStateService, ListService, LocalizationPipe, PermissionDirective, PermissionService, TimezoneService, UtcToLocalPipe, } from '@abp/ng.core';\nimport { AbpVisibleDirective, NgxDatatableDefaultDirective, NgxDatatableListDirective, } from '@abp/ng.theme.shared';\nimport { ExtensionsService } from '../../services/extensions.service';\nimport { ENTITY_PROP_TYPE_CLASSES, EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM, ROW_RECORD, } from '../../tokens/extensions.token';\nimport { GridActionsComponent } from '../grid-actions/grid-actions.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@swimlane/ngx-datatable\";\nconst DEFAULT_ACTIONS_COLUMN_WIDTH = 150;\nexport class ExtensibleTableComponent {\n #injector;\n set actionsText(value) {\n this._actionsText = value;\n }\n get actionsText() {\n return this._actionsText ?? (this.actionList.length >= 1 ? 'AbpUi::Actions' : '');\n }\n set actionsColumnWidth(width) {\n this._actionsColumnWidth.set(width ? Number(width) : undefined);\n }\n set selectionType(value) {\n this._selectionType = typeof value === 'string' ? SelectionType[value] : value;\n }\n constructor() {\n this.#injector = inject(Injector);\n this.getInjected = this.#injector.get.bind(this.#injector);\n this.cdr = inject(ChangeDetectorRef);\n this.locale = inject(LOCALE_ID);\n this.config = inject(ConfigStateService);\n this.timeZoneService = inject(TimezoneService);\n this.entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES);\n this.permissionService = inject(PermissionService);\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n this.tableActivate = new EventEmitter();\n this.selectable = false;\n this._selectionType = SelectionType.multiClick;\n this.selected = [];\n this.selectionChange = new EventEmitter();\n // Infinite scroll configuration\n this.infiniteScroll = false;\n this.isLoading = false;\n this.scrollThreshold = 10;\n this.loadMore = new EventEmitter();\n this.trackByFn = (_, item) => item.name;\n // Signal for actions column width\n this._actionsColumnWidth = signal(DEFAULT_ACTIONS_COLUMN_WIDTH);\n // Infinite scroll: debounced load more subject\n this.loadMoreSubject = new Subject();\n this.loadMoreSubscription = this.loadMoreSubject\n .pipe(debounceTime(100), distinctUntilChanged())\n .subscribe(() => this.triggerLoadMore());\n this.columnWidths = computed(() => {\n return this.propList.toArray().map(prop => prop.columnWidth);\n });\n const extensions = this.#injector.get(ExtensionsService);\n const name = this.#injector.get(EXTENSIONS_IDENTIFIER);\n this.propList = extensions.entityProps.get(name).props;\n this.actionList = extensions['entityActions'].get(name)\n .actions;\n this.hasAtLeastOnePermittedAction =\n this.permissionService.filterItemsByPolicy(this.actionList.toArray().map(action => ({ requiredPolicy: action.permission }))).length > 0;\n }\n getIcon(value) {\n return value\n ? '<div class=\"text-success\"><i class=\"fa fa-check\" aria-hidden=\"true\"></i></div>'\n : '<div class=\"text-danger\"><i class=\"fa fa-times\" aria-hidden=\"true\"></i></div>';\n }\n getEnum(rowValue, list) {\n if (!list || list.length < 1)\n return rowValue;\n const { key } = list.find(({ value }) => value === rowValue) || {};\n return key;\n }\n getContent(prop, data) {\n return prop.valueResolver(data).pipe(map(value => {\n switch (prop.type) {\n case \"boolean\" /* ePropType.Boolean */:\n return this.getIcon(value);\n case \"enum\" /* ePropType.Enum */:\n return this.getEnum(value, prop.enumList || []);\n default:\n return value;\n // More types can be handled in the future\n }\n }));\n }\n ngOnChanges({ data }) {\n if (!data?.currentValue)\n return;\n if (data.currentValue.length < 1) {\n this.list.totalCount = this.recordsTotal;\n }\n this.data = data.currentValue.map((record, index) => {\n this.propList.forEach(prop => {\n const propData = { getInjected: this.getInjected, record, index };\n const value = this.getContent(prop.value, propData);\n const propKey = `_${prop.value.name}`;\n record[propKey] = {\n visible: prop.value.visible(propData),\n value,\n };\n if (prop.value.component) {\n record[propKey].injector = Injector.create({\n providers: [\n {\n provide: PROP_DATA_STREAM,\n useValue: value,\n },\n {\n provide: ROW_RECORD,\n useValue: record,\n },\n ],\n parent: this.#injector,\n });\n record[propKey].component = prop.value.component;\n }\n });\n return record;\n });\n }\n isVisibleActions(rowData) {\n const actions = this.actionList.toArray();\n const visibleActions = actions.filter(action => {\n const { visible, permission } = action;\n let isVisible = true;\n let hasPermission = true;\n if (visible) {\n isVisible = visible({ record: rowData, getInjected: this.getInjected });\n }\n if (permission) {\n hasPermission = this.permissionService.getGrantedPolicy(permission);\n }\n return isVisible && hasPermission;\n });\n return visibleActions.length > 0;\n }\n onSelect({ selected }) {\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n this.selectionChange.emit(selected);\n }\n onScroll(scrollEvent) {\n if (!this.shouldHandleScroll()) {\n return;\n }\n const target = scrollEvent.target;\n if (!target) {\n return;\n }\n if (this.isNearScrollBottom(target)) {\n this.loadMoreSubject.next();\n }\n }\n shouldHandleScroll() {\n return this.infiniteScroll && !this.isLoading;\n }\n isNearScrollBottom(element) {\n const { offsetHeight, scrollTop, scrollHeight } = element;\n return offsetHeight + scrollTop >= scrollHeight - this.scrollThreshold;\n }\n triggerLoadMore() {\n this.loadMore.emit();\n }\n getTableHeight() {\n if (!this.infiniteScroll)\n return 'auto';\n return this.tableHeight ? `${this.tableHeight}px` : 'auto';\n }\n ngAfterViewInit() {\n if (!this.infiniteScroll) {\n this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => {\n this.data = [];\n this.cdr.markForCheck();\n });\n }\n }\n ngOnDestroy() {\n this.loadMoreSubscription.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: ExtensibleTableComponent, isStandalone: true, selector: \"abp-extensible-table\", inputs: { actionsText: \"actionsText\", data: \"data\", list: \"list\", recordsTotal: \"recordsTotal\", actionsColumnWidth: \"actionsColumnWidth\", actionsTemplate: \"actionsTemplate\", selectable: \"selectable\", selectionType: \"selectionType\", selected: \"selected\", infiniteScroll: \"infiniteScroll\", isLoading: \"isLoading\", scrollThreshold: \"scrollThreshold\", tableHeight: \"tableHeight\" }, outputs: { tableActivate: \"tableActivate\", selectionChange: \"selectionChange\", loadMore: \"loadMore\" }, exportAs: [\"abpExtensibleTable\"], usesOnChanges: true, ngImport: i0, template: \"@if (isBrowser) {\\r\\n <ngx-datatable\\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(selectable) {\\r\\n <ngx-datatable-column [width]=\\\"50\\\" [sortable]=\\\"false\\\" [canAutoResize]=\\\"false\\\" [draggable]=\\\"false\\\" [resizeable]=\\\"false\\\">\\r\\n\\r\\n <ng-template ngx-datatable-header-template let-value=\\\"value\\\" let-allRowsSelected=\\\"allRowsSelected\\\"\\r\\n let-selectFn=\\\"selectFn\\\">\\r\\n @if (_selectionType !== 'single') {\\r\\n <div class=\\\"form-check\\\">\\r\\n <input class=\\\"form-check-input table-check\\\" type=\\\"checkbox\\\" [checked]=\\\"allRowsSelected\\\"\\r\\n (change)=\\\"selectFn(!allRowsSelected)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\r\\n <ng-template ngx-datatable-cell-template let-value=\\\"value\\\" let-row=\\\"row\\\" let-isSelected=\\\"isSelected\\\"\\r\\n let-onCheckboxChangeFn=\\\"onCheckboxChangeFn\\\">\\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 class=\\\"form-check-input\\\" type=\\\"radio\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\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 class=\\\"form-check-input\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\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 <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i] ?? 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\\r\\n [class.pointer]=\\\"prop.sortable\\\"\\r\\n (click)=\\\"prop.sortable && sortFn(column)\\\"\\r\\n >\\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) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n } @else {\\r\\n <div\\r\\n [innerHTML]=\\\"\\r\\n !prop.isExtra\\r\\n ? (row['_' + prop.name]?.value | async)\\r\\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n }\\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\", dependencies: [{ kind: \"directive\", type: AbpVisibleDirective, selector: \"[abpVisible]\", inputs: [\"abpVisible\"] }, { kind: \"ngmodule\", type: NgxDatatableModule }, { kind: \"component\", type: i1.DatatableComponent, selector: \"ngx-datatable\", inputs: [\"targetMarkerTemplate\", \"rows\", \"groupRowsBy\", \"groupedRows\", \"columns\", \"selected\", \"scrollbarV\", \"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.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.DataTableColumnHeaderDirective, selector: \"[ngx-datatable-header-template]\" }, { kind: \"directive\", type: i1.DataTableColumnCellDirective, selector: \"[ngx-datatable-cell-template]\" }, { kind: \"component\", type: GridActionsComponent, selector: \"abp-grid-actions\", inputs: [\"icon\", \"index\", \"text\"], exportAs: [\"abpGridActions\"] }, { kind: \"directive\", type: NgbTooltip, selector: \"[ngbTooltip]\", inputs: [\"animation\", \"autoClose\", \"placement\", \"popperOptions\", \"triggers\", \"positionTarget\", \"container\", \"disableTooltip\", \"tooltipClass\", \"tooltipContext\", \"openDelay\", \"closeDelay\", \"ngbTooltip\"], outputs: [\"shown\", \"hidden\"], exportAs: [\"ngbTooltip\"] }, { kind: \"directive\", type: NgxDatatableDefaultDirective, selector: \"ngx-datatable[default]\", inputs: [\"class\"], exportAs: [\"ngxDatatableDefault\"] }, { kind: \"directive\", type: NgxDatatableListDirective, selector: \"ngx-datatable[list]\", inputs: [\"list\"], exportAs: [\"ngxDatatableList\"] }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"pipe\", type: UtcToLocalPipe, name: \"abpUtcToLocal\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleTableComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpExtensibleTable', selector: 'abp-extensible-table', imports: [\n AbpVisibleDirective,\n NgxDatatableModule,\n GridActionsComponent,\n NgbTooltip,\n NgxDatatableDefaultDirective,\n NgxDatatableListDirective,\n PermissionDirective,\n LocalizationPipe,\n UtcToLocalPipe,\n AsyncPipe,\n NgTemplateOutlet,\n NgComponentOutlet,\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"@if (isBrowser) {\\r\\n <ngx-datatable\\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(selectable) {\\r\\n <ngx-datatable-column [width]=\\\"50\\\" [sortable]=\\\"false\\\" [canAutoResize]=\\\"false\\\" [draggable]=\\\"false\\\" [resizeable]=\\\"false\\\">\\r\\n\\r\\n <ng-template ngx-datatable-header-template let-value=\\\"value\\\" let-allRowsSelected=\\\"allRowsSelected\\\"\\r\\n let-selectFn=\\\"selectFn\\\">\\r\\n @if (_selectionType !== 'single') {\\r\\n <div class=\\\"form-check\\\">\\r\\n <input class=\\\"form-check-input table-check\\\" type=\\\"checkbox\\\" [checked]=\\\"allRowsSelected\\\"\\r\\n (change)=\\\"selectFn(!allRowsSelected)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\r\\n <ng-template ngx-datatable-cell-template let-value=\\\"value\\\" let-row=\\\"row\\\" let-isSelected=\\\"isSelected\\\"\\r\\n let-onCheckboxChangeFn=\\\"onCheckboxChangeFn\\\">\\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 class=\\\"form-check-input\\\" type=\\\"radio\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\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 class=\\\"form-check-input\\\" type=\\\"checkbox\\\" [checked]=\\\"isSelected\\\" (change)=\\\"onCheckboxChangeFn($event)\\\" />\\r\\n </div>\\r\\n }\\r\\n </ng-template>\\r\\n\\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 <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i] ?? 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\\r\\n [class.pointer]=\\\"prop.sortable\\\"\\r\\n (click)=\\\"prop.sortable && sortFn(column)\\\"\\r\\n >\\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) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n } @else {\\r\\n <div\\r\\n [innerHTML]=\\\"\\r\\n !prop.isExtra\\r\\n ? (row['_' + prop.name]?.value | async)\\r\\n : ('::' + (row['_' + prop.name]?.value | async) | abpLocalization)\\r\\n \\\"\\r\\n (click)=\\\"\\r\\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\\r\\n \\\"\\r\\n [ngClass]=\\\"entityPropTypeClasses[prop.type]\\\"\\r\\n [class.pointer]=\\\"prop.action\\\"\\r\\n ></div>\\r\\n }\\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\" }]\n }], ctorParameters: () => [], propDecorators: { actionsText: [{\n type: Input\n }], data: [{\n type: Input\n }], list: [{\n type: Input\n }], recordsTotal: [{\n type: Input\n }], actionsColumnWidth: [{\n type: Input\n }], actionsTemplate: [{\n type: Input\n }], tableActivate: [{\n type: Output\n }], selectable: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], selected: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], infiniteScroll: [{\n type: Input\n }], isLoading: [{\n type: Input\n }], scrollThreshold: [{\n type: Input\n }], loadMore: [{\n type: Output\n }], tableHeight: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBR1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBRU4sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRyxPQUFPLEVBQWMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUUsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFP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dGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgTE9DQUxFX0lELFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIHNpZ25hbCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFRyYWNrQnlGdW5jdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdDb21wb25lbnRPdXRsZXQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAsIFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSwgU2VsZWN0aW9uVHlwZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBMaXN0U2VydmljZSxcclxuICBMb2NhbGl6YXRpb25QaXBlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgVGltZXpvbmVTZXJ2aWNlLFxyXG4gIFV0Y1RvTG9jYWxQaXBlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJwVmlzaWJsZURpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgZVByb3BUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvcHJvcHMuZW51bSc7XHJcbmltcG9ydCB7IEVudGl0eUFjdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBFTlRJVFlfUFJPUF9UWVBFX0NMQVNTRVMsXHJcbiAgRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gIFBST1BfREFUQV9TVFJFQU0sXHJcbiAgUk9XX1JFQ09SRCxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTW9kdWxlLFxyXG4gICAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgICBOZ2JUb29sdGlwLFxyXG4gICAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICAgIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgTG9jYWxpemF0aW9uUGlwZSxcclxuICAgIFV0Y1RvTG9jYWxQaXBlLFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIE5nQ29tcG9uZW50T3V0bGV0LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2libGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZVRhYmxlQ29tcG9uZW50PFIgPSBhbnk+IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcmVhZG9ubHkgZ2V0SW5qZWN0ZWQgPSB0aGlzLiNpbmplY3Rvci5nZXQuYmluZCh0aGlzLiNpbmplY3Rvcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZVpvbmVTZXJ2aWNlID0gaW5qZWN0KFRpbWV6b25lU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVByb3BUeXBlQ2xhc3NlcyA9IGluamVjdChFTlRJVFlfUFJPUF9UWVBFX0NMQVNTRVMpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuICBwcm90ZWN0ZWQgaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGlvbnNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPj0gMSA/ICdBYnBVaTo6QWN0aW9ucycgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBkYXRhITogUltdO1xyXG4gIEBJbnB1dCgpIGxpc3QhOiBMaXN0U2VydmljZTtcclxuICBASW5wdXQoKSByZWNvcmRzVG90YWwhOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zQ29sdW1uV2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5fYWN0aW9uc0NvbHVtbldpZHRoLnNldCh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHRhYmxlQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvblR5cGUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gU2VsZWN0aW9uVHlwZVt2YWx1ZV0gOiB2YWx1ZTtcclxuICB9XHJcbiAgX3NlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlLm11bHRpQ2xpY2s7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICAvLyBJbmZpbml0ZSBzY3JvbGwgY29uZmlndXJhdGlvblxyXG4gIEBJbnB1dCgpIGluZmluaXRlU2Nyb2xsID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2Nyb2xsVGhyZXNob2xkID0gMTA7XHJcbiAgQE91dHB1dCgpIGxvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIHRhYmxlSGVpZ2h0OiBudW1iZXI7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgYWN0aW9uTGlzdDogRW50aXR5QWN0aW9uTGlzdDxSPjtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248RW50aXR5UHJvcDxSPj4gPSAoXywgaXRlbSkgPT4gaXRlbS5uYW1lO1xyXG5cclxuICAvLyBTaWduYWwgZm9yIGFjdGlvbnMgY29sdW1uIHdpZHRoXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uc0NvbHVtbldpZHRoID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4oREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcblxyXG4gIC8vIEluZmluaXRlIHNjcm9sbDogZGVib3VuY2VkIGxvYWQgbW9yZSBzdWJqZWN0XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkTW9yZVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZE1vcmVTdWJzY3JpcHRpb24gPSB0aGlzLmxvYWRNb3JlU3ViamVjdFxyXG4gICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlckxvYWRNb3JlKCkpO1xyXG5cclxuICByZWFkb25seSBjb2x1bW5XaWR0aHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9wTGlzdC50b0FycmF5KCkubWFwKHByb3AgPT4gcHJvcC5jb2x1bW5XaWR0aCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IHRoaXMuI2luamVjdG9yLmdldChFeHRlbnNpb25zU2VydmljZSk7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEVYVEVOU0lPTlNfSURFTlRJRklFUik7XHJcbiAgICB0aGlzLnByb3BMaXN0ID0gZXh0ZW5zaW9ucy5lbnRpdHlQcm9wcy5nZXQobmFtZSkucHJvcHM7XHJcbiAgICB0aGlzLmFjdGlvbkxpc3QgPSBleHRlbnNpb25zWydlbnRpdHlBY3Rpb25zJ10uZ2V0KG5hbWUpXHJcbiAgICAgIC5hY3Rpb25zIGFzIHVua25vd24gYXMgRW50aXR5QWN0aW9uTGlzdDxSPjtcclxuXHJcbiAgICB0aGlzLmhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb24gPVxyXG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlckl0ZW1zQnlQb2xpY3koXHJcbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0LnRvQXJyYXkoKS5tYXAoYWN0aW9uID0+ICh7IHJlcXVpcmVkUG9saWN5OiBhY3Rpb24ucGVybWlzc2lvbiB9KSksXHJcbiAgICAgICkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SWNvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgID8gJzxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PidcclxuICAgICAgOiAnPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj4nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnVtKHJvd1ZhbHVlOiBhbnksIGxpc3Q6IEFycmF5PEFCUC5PcHRpb248YW55Pj4pIHtcclxuICAgIGlmICghbGlzdCB8fCBsaXN0Lmxlbmd0aCA8IDEpIHJldHVybiByb3dWYWx1ZTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSBsaXN0LmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHJvd1ZhbHVlKSB8fCB7fTtcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWNvbih2YWx1ZSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5FbnVtOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbnVtKHZhbHVlLCBwcm9wLmVudW1MaXN0IHx8IFtdKTtcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgIC8vIE1vcmUgdHlwZXMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIGZ1dHVyZVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghZGF0YT8uY3VycmVudFZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgaWYgKGRhdGEuY3VycmVudFZhbHVlLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5saXN0LnRvdGFsQ291bnQgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhLmN1cnJlbnRWYWx1ZS5tYXAoKHJlY29yZDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaChwcm9wID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldENvbnRlbnQocHJvcC52YWx1ZSwgcHJvcERhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9wS2V5ID0gYF8ke3Byb3AudmFsdWUubmFtZX1gO1xyXG4gICAgICAgIHJlY29yZFtwcm9wS2V5XSA9IHtcclxuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChwcm9wLnZhbHVlLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPUF9EQVRBX1NUUkVBTSxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPV19SRUNPUkQsXHJcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogcmVjb3JkLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy4jaW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlY29yZFtwcm9wS2V5XS5jb21wb25lbnQgPSBwcm9wLnZhbHVlLmNvbXBvbmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlQWN0aW9ucyhyb3dEYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpO1xyXG4gICAgY29uc3QgdmlzaWJsZUFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4ge1xyXG4gICAgICBjb25zdCB7IHZpc2libGUsIHBlcm1pc3Npb24gfSA9IGFjdGlvbjtcclxuXHJcbiAgICAgIGxldCBpc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IHZpc2libGUoeyByZWNvcmQ6IHJvd0RhdGEsIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICAgIGhhc1Blcm1pc3Npb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocGVybWlzc2lvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpc1Zpc2libGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoeyBzZWxlY3RlZCB9KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChzY3JvbGxFdmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG91bGRIYW5kbGVTY3JvbGwoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0ID0gc2Nyb2xsRXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzTmVhclNjcm9sbEJvdHRvbSh0YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMubG9hZE1vcmVTdWJqZWN0Lm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdWxkSGFuZGxlU2Nyb2xsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5maW5pdGVTY3JvbGwgJiYgIXRoaXMuaXNMb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc05lYXJTY3JvbGxCb3R0b20oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCB9ID0gZWxlbWVudDtcclxuICAgIHJldHVybiBvZmZzZXRIZWlnaHQgKyBzY3JvbGxUb3AgPj0gc2Nyb2xsSGVpZ2h0IC0gdGhpcy5zY3JvbGxUaHJlc2hvbGQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyaWdnZXJMb2FkTW9yZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1vcmUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFibGVIZWlnaHQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5maW5pdGVTY3JvbGwpIHJldHVybiAnYXV0byc7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudGFibGVIZWlnaHQgPyBgJHt0aGlzLnRhYmxlSGVpZ2h0fXB4YCA6ICdhdXRvJztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pbmZpbml0ZVNjcm9sbCkge1xyXG4gICAgICB0aGlzLmxpc3Q/LnJlcXVlc3RTdGF0dXMkPy5waXBlKGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSAnbG9hZGluZycpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkTW9yZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGlzQnJvd3Nlcikge1xyXG4gIDxuZ3gtZGF0YXRhYmxlXHJcbiAgZGVmYXVsdFxyXG4gIFtyb3dzXT1cImRhdGFcIlxyXG4gIFtjb3VudF09XCJyZWNvcmRzVG90YWxcIlxyXG4gIFtsaXN0XT1cImxpc3RcIlxyXG4gIFtzZWxlY3Rpb25UeXBlXT1cInNlbGVjdGFibGUgPyBfc2VsZWN0aW9uVHlwZSA6IHVuZGVmaW5lZFwiXHJcbiAgKGFjdGl2YXRlKT1cInRhYmxlQWN0aXZhdGUuZW1pdCgkZXZlbnQpXCJcclxuICAoc2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxyXG4gIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCJcclxuICBbc2Nyb2xsYmFyVl09XCJpbmZpbml0ZVNjcm9sbFwiXHJcbiAgW3N0eWxlLmhlaWdodF09XCJnZXRUYWJsZUhlaWdodCgpXCJcclxuICBbbG9hZGluZ0luZGljYXRvcl09XCJpbmZpbml0ZVNjcm9sbCAmJiBpc0xvYWRpbmdcIlxyXG4gIFtmb290ZXJIZWlnaHRdPVwiaW5maW5pdGVTY3JvbGwgPyBmYWxzZSA6IDUwXCJcclxuPlxyXG5AaWYoc2VsZWN0YWJsZSkge1xyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiNTBcIiBbc29ydGFibGVdPVwiZmFsc2VcIiBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXplYWJsZV09XCJmYWxzZVwiPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ3gtZGF0YXRhYmxlLWhlYWRlci10ZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIlxyXG4gICAgICBsZXQtc2VsZWN0Rm49XCJzZWxlY3RGblwiPlxyXG4gICAgICBAaWYgKF9zZWxlY3Rpb25UeXBlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgdGFibGUtY2hlY2tcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhbGxSb3dzU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtcm93PVwicm93XCIgbGV0LWlzU2VsZWN0ZWQ9XCJpc1NlbGVjdGVkXCJcclxuICAgICAgbGV0LW9uQ2hlY2tib3hDaGFuZ2VGbj1cIm9uQ2hlY2tib3hDaGFuZ2VGblwiPlxyXG4gICAgICBAaWYoX3NlbGVjdGlvblR5cGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBmb3JtLWNoZWNrIGZvcm0tY2hlY2stc20gZm9ybS1jaGVjay1jdXN0b20gZm9ybS1jaGVjay1zb2xpZFwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oJGV2ZW50KVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoX3NlbGVjdGlvblR5cGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBmb3JtLWNoZWNrIGZvcm0tY2hlY2stc20gZm9ybS1jaGVjay1jdXN0b20gZm9ybS1jaGVjay1zb2xpZFwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oJGV2ZW50KVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAaWYgKGFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbikpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFttYXhXaWR0aF09XCJfYWN0aW9uc0NvbHVtbldpZHRoKCkgPz8gdW5kZWZpbmVkXCJcclxuICAgICAgW3dpZHRoXT1cIl9hY3Rpb25zQ29sdW1uV2lkdGgoKSA/PyAyMDBcIlxyXG4gICAgICBbY2FuQXV0b1Jlc2l6ZV09XCIhX2FjdGlvbnNDb2x1bW5XaWR0aCgpXCJcclxuICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlIHx8IGdyaWRBY3Rpb25zOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICAgIEBpZiAoaXNWaXNpYmxlQWN0aW9ucyhyb3cpKSB7XHJcbiAgICAgICAgICAgIDxhYnAtZ3JpZC1hY3Rpb25zIFtpbmRleF09XCJpXCIgW3JlY29yZF09XCJyb3dcIiB0ZXh0PVwiQWJwVWk6OkFjdGlvbnNcIj48L2FicC1ncmlkLWFjdGlvbnM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG4gIEBmb3IgKHByb3Agb2YgcHJvcExpc3Q7IHRyYWNrIHByb3AubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2ldID8/IDIwMFwiXHJcbiAgICAgIFtjYW5BdXRvUmVzaXplXT1cIiFjb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICBbbmFtZV09XCIocHJvcC5pc0V4dHJhID8gJzo6JyArIHByb3AuZGlzcGxheU5hbWUgOiBwcm9wLmRpc3BsYXlOYW1lKSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtc29ydEZuPVwic29ydEZuXCI+XHJcbiAgICAgICAgQGlmIChwcm9wLnRvb2x0aXApIHtcclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIFtuZ2JUb29sdGlwXT1cInByb3AudG9vbHRpcC50ZXh0IHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgW3BsYWNlbWVudF09XCJwcm9wLnRvb2x0aXAucGxhY2VtZW50IHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICBbY2xhc3MucG9pbnRlcl09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInByb3Auc29ydGFibGUgJiYgc29ydEZuKGNvbHVtbilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBjb2x1bW4ubmFtZSB9fSA8aSBjbGFzcz1cImZhIGZhLWluZm8tY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5zb3J0YWJsZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwcm9wLnNvcnRhYmxlICYmIHNvcnRGbihjb2x1bW4pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29sdW1uLm5hbWUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJpbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICphYnBQZXJtaXNzaW9uPVwicHJvcC5wZXJtaXNzaW9uOyBydW5DaGFuZ2VEZXRlY3Rpb246IGZhbHNlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICphYnBWaXNpYmxlPVwicm93WydfJyArIHByb3AubmFtZV0/LnZpc2libGVcIj5cclxuICAgICAgICAgICAgQGlmICghcm93WydfJyArIHByb3AubmFtZV0uY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgQGlmIChwcm9wLnR5cGUgPT09ICdkYXRldGltZScgfHwgcHJvcC50eXBlID09PSAnZGF0ZScgfHwgcHJvcC50eXBlID09PSAndGltZScpIHtcclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcclxuICAgICAgICAgICAgICAgICAgIXByb3AuaXNFeHRyYVxyXG4gICAgICAgICAgICAgICAgICAgID8gKHJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jIHwgYWJwVXRjVG9Mb2NhbDpwcm9wLnR5cGUpXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoJzo6JyArIChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYyB8IGFicFV0Y1RvTG9jYWw6cHJvcC50eXBlKSB8IGFicExvY2FsaXphdGlvbilcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgcHJvcC5hY3Rpb24gJiYgcHJvcC5hY3Rpb24oeyBnZXRJbmplY3RlZDogZ2V0SW5qZWN0ZWQsIHJlY29yZDogcm93LCBpbmRleDogaSB9KVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZW50aXR5UHJvcFR5cGVDbGFzc2VzW3Byb3AudHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MucG9pbnRlcl09XCJwcm9wLmFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXHJcbiAgICAgICAgICAgICAgICAgICFwcm9wLmlzRXh0cmFcclxuICAgICAgICAgICAgICAgICAgICA/IChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYylcclxuICAgICAgICAgICAgICAgICAgICA6ICgnOjonICsgKHJvd1snXycgKyBwcm9wLm5hbWVdPy52YWx1ZSB8IGFzeW5jKSB8IGFicExvY2FsaXphdGlvbilcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgcHJvcC5hY3Rpb24gJiYgcHJvcC5hY3Rpb24oeyBnZXRJbmplY3RlZDogZ2V0SW5qZWN0ZWQsIHJlY29yZDogcm93LCBpbmRleDogaSB9KVxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZW50aXR5UHJvcFR5cGVDbGFzc2VzW3Byb3AudHlwZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MucG9pbnRlcl09XCJwcm9wLmFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgcm93WydfJyArIHByb3AubmFtZV0uY29tcG9uZW50O1xyXG4gICAgICAgICAgICAgICAgICBpbmplY3Rvcjogcm93WydfJyArIHByb3AubmFtZV0uaW5qZWN0b3JcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG48L25neC1kYXRhdGFibGU+XHJcbn1cclxuIl19","import { Pipe } from '@angular/core';\nimport { EXTENSIONS_ACTION_CALLBACK, EXTENSIONS_ACTION_DATA } from '../tokens/extensions.token';\nimport * as i0 from \"@angular/core\";\nexport class CreateInjectorPipe {\n transform(_, action, context) {\n const get = (token, notFoundValue, options) => {\n const componentData = context.getData();\n const componentDataCallback = (data) => {\n data = data ?? context.getData();\n return action.action(data);\n };\n let extensionData;\n switch (token) {\n case EXTENSIONS_ACTION_DATA:\n extensionData = componentData;\n break;\n case EXTENSIONS_ACTION_CALLBACK:\n extensionData = componentDataCallback;\n break;\n default:\n extensionData = context.getInjected.call(context.injector, token, notFoundValue, options);\n }\n return extensionData;\n };\n return { get };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, isStandalone: true, name: \"createInjector\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CreateInjectorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'createInjector',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWluamVjdG9yLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9waXBlcy9jcmVhdGUtaW5qZWN0b3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJDLElBQUksRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBS2hHLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsU0FBUyxDQUNkLENBQU0sRUFDTixNQUEyQixFQUMzQixPQUFpQztRQUVqQyxNQUFNLEdBQUcsR0FBRyxDQUNWLEtBQWtDLEVBQ2xDLGFBQWlCLEVBQ2pCLE9BQXVCLEVBQ3ZCLEVBQUU7WUFDRixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLEdBQUcsSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQztZQUNGLElBQUksYUFBYSxDQUFDO1lBQ2xCLFFBQVEsS0FBSyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxzQkFBc0I7b0JBQ3pCLGFBQWEsR0FBRyxhQUFhLENBQUM7b0JBQzlCLE1BQU07Z0JBQ1IsS0FBSywwQkFBMEI7b0JBQzdCLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQztvQkFDdEMsTUFBTTtnQkFDUjtvQkFDRSxhQUFhLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlGLENBQUM7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0E5QlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0T3B0aW9ucywgSW5qZWN0b3IsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGFzQ3JlYXRlSW5qZWN0b3JQaXBlLCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVYVEVOU0lPTlNfQUNUSU9OX0NBTExCQUNLLCBFWFRFTlNJT05TX0FDVElPTl9EQVRBIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdjcmVhdGVJbmplY3RvcicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVJbmplY3RvclBpcGU8Uj4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwdWJsaWMgdHJhbnNmb3JtKFxyXG4gICAgXzogYW55LFxyXG4gICAgYWN0aW9uOiBUb29sYmFyQ29tcG9uZW50PFI+LFxyXG4gICAgY29udGV4dDogSGFzQ3JlYXRlSW5qZWN0b3JQaXBlPFI+LFxyXG4gICk6IEluamVjdG9yIHtcclxuICAgIGNvbnN0IGdldCA9IDxUPihcclxuICAgICAgdG9rZW46IFR5cGU8VD4gfCBJbmplY3Rpb25Ub2tlbjxUPixcclxuICAgICAgbm90Rm91bmRWYWx1ZT86IFQsXHJcbiAgICAgIG9wdGlvbnM/OiBJbmplY3RPcHRpb25zLFxyXG4gICAgKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudERhdGEgPSBjb250ZXh0LmdldERhdGEoKTtcclxuICAgICAgY29uc3QgY29tcG9uZW50RGF0YUNhbGxiYWNrID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEgPSBkYXRhID8/IGNvbnRleHQuZ2V0RGF0YSgpO1xyXG4gICAgICAgIHJldHVybiBhY3Rpb24uYWN0aW9uKGRhdGEpO1xyXG4gICAgICB9O1xyXG4gICAgICBsZXQgZXh0ZW5zaW9uRGF0YTtcclxuICAgICAgc3dpdGNoICh0b2tlbikge1xyXG4gICAgICAgIGNhc2UgRVhURU5TSU9OU19BQ1RJT05fREFUQTpcclxuICAgICAgICAgIGV4dGVuc2lvbkRhdGEgPSBjb21wb25lbnREYXRhO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBFWFRFTlNJT05TX0FDVElPTl9DQUxMQkFDSzpcclxuICAgICAgICAgIGV4dGVuc2lvbkRhdGEgPSBjb21wb25lbnREYXRhQ2FsbGJhY2s7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgZXh0ZW5zaW9uRGF0YSA9IGNvbnRleHQuZ2V0SW5qZWN0ZWQuY2FsbChjb250ZXh0LmluamVjdG9yLCB0b2tlbiwgbm90Rm91bmRWYWx1ZSwgb3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGV4dGVuc2lvbkRhdGE7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHsgZ2V0IH07XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { ChangeDetectionStrategy, Component, Injector, inject } from '@angular/core';\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\nimport { CreateInjectorPipe } from '../../pipes/create-injector.pipe';\nimport { LocalizationPipe, PermissionDirective } from '@abp/ng.core';\nimport { NgClass, NgComponentOutlet } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class PageToolbarComponent extends AbstractActionsComponent {\n constructor() {\n const injector = inject(Injector);\n super();\n this.defaultBtnClass = 'btn btn-sm btn-primary';\n this.getData = () => this.data;\n this.trackByFn = (_, item) => item.action || item.component;\n this.injector = injector;\n }\n asToolbarAction(value) {\n return {\n value: value,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PageToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: PageToolbarComponent, isStandalone: true, selector: \"abp-page-toolbar\", providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ], exportAs: [\"abpPageToolbar\"], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"row justify-content-end mx-0 gap-2\\\" id=\\\"AbpContentToolbar\\\">\\r\\n @for (action of actionList; track action.component || action.action; let last = $last) {\\r\\n <div class=\\\"col-auto px-0 pt-0\\\" [class.pe-0]=\\\"last\\\">\\r\\n @if (action.visible(data)) {\\r\\n <ng-container *abpPermission=\\\"action.permission; runChangeDetection: false\\\">\\r\\n @if (action.component; as component) {\\r\\n <ng-container\\r\\n *ngComponentOutlet=\\\"component; injector: record | createInjector: action:this\\\"\\r\\n ></ng-container>\\r\\n\\r\\n }@else {\\r\\n @if (asToolbarAction(action).value; as toolbarAction ) {\\r\\n <button\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [ngClass]=\\\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\\\"\\r\\n class=\\\"d-inline-flex align-items-center gap-1\\\"\\r\\n >\\r\\n <i [ngClass]=\\\"toolbarAction?.icon\\\" [class.me-1]=\\\"toolbarAction?.icon\\\"></i>\\r\\n {{ toolbarAction?.text | abpLocalization }}\\r\\n </button>\\r\\n } \\r\\n }\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n }\\r\\n</div>\\r\\n\\r\\n\", dependencies: [{ kind: \"pipe\", type: CreateInjectorPipe, name: \"createInjector\" }, { kind: \"directive\", type: PermissionDirective, selector: \"[abpPermission]\", inputs: [\"abpPermission\", \"abpPermissionRunChangeDetection\"] }, { kind: \"pipe\", type: LocalizationPipe, name: \"abpLocalization\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PageToolbarComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'abpPageToolbar', selector: 'abp-page-toolbar', imports: [\n CreateInjectorPipe,\n PermissionDirective,\n LocalizationPipe,\n NgClass,\n NgComponentOutlet,\n ], providers: [\n {\n provide: EXTENSIONS_ACTION_TYPE,\n useValue: 'toolbarActions',\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"row justify-content-end mx-0 gap-2\\\" id=\\\"AbpContentToolbar\\\">\\r\\n @for (action of actionList; track action.component || action.action; let last = $last) {\\r\\n <div class=\\\"col-auto px-0 pt-0\\\" [class.pe-0]=\\\"last\\\">\\r\\n @if (action.visible(data)) {\\r\\n <ng-container *abpPermission=\\\"action.permission; runChangeDetection: false\\\">\\r\\n @if (action.component; as component) {\\r\\n <ng-container\\r\\n *ngComponentOutlet=\\\"component; injector: record | createInjector: action:this\\\"\\r\\n ></ng-container>\\r\\n\\r\\n }@else {\\r\\n @if (asToolbarAction(action).value; as toolbarAction ) {\\r\\n <button\\r\\n (click)=\\\"action.action(data)\\\"\\r\\n type=\\\"button\\\"\\r\\n [ngClass]=\\\"toolbarAction?.btnClass ? toolbarAction?.btnClass : defaultBtnClass\\\"\\r\\n class=\\\"d-inline-flex align-items-center gap-1\\\"\\r\\n >\\r\\n <i [ngClass]=\\\"toolbarAction?.icon\\\" [class.me-1]=\\\"toolbarAction?.icon\\\"></i>\\r\\n {{ toolbarAction?.text | abpLocalization }}\\r\\n </button>\\r\\n } \\r\\n }\\r\\n </ng-container>\\r\\n }\\r\\n </div>\\r\\n }\\r\\n</div>\\r\\n\\r\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS10b29sYmFyL3BhZ2UtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtdG9vbGJhci9wYWdlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQXFCN0QsTUFBTSxPQUFPLG9CQUNYLFNBQVEsd0JBQThDO0lBWXREO1FBQ0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxDLEtBQUssRUFBRSxDQUFDO1FBVlYsb0JBQWUsR0FBRyx3QkFBd0IsQ0FBQztRQUUzQyxZQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQXlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3JFLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQU85QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQTJCO1FBQ3pDLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBc0I7U0FDOUIsQ0FBQztJQUNKLENBQUM7OEdBekJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7U0FDRiwrRUM5QkgsNHBDQTZCQSx1Q0RYSSxrQkFBa0IsdURBQ2xCLG1CQUFtQixxSEFDbkIsZ0JBQWdCLHdEQUNoQixPQUFPLG9GQUNQLGlCQUFpQjs7MkZBV1Isb0JBQW9CO2tCQW5CaEMsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEIsa0JBQWtCLFdBQ25CO3dCQUNQLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsaUJBQWlCO3FCQUNsQixhQUVVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFFBQVEsRUFBRSxnQkFBZ0I7eUJBQzNCO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIFRyYWNrQnlGdW5jdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSGFzQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gIFRvb2xiYXJBY3Rpb24sXHJcbiAgVG9vbGJhckFjdGlvbkRlZmF1bHQsXHJcbiAgVG9vbGJhckFjdGlvbkxpc3QsXHJcbiAgVG9vbGJhckNvbXBvbmVudCxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdG9vbGJhci1hY3Rpb25zJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19BQ1RJT05fVFlQRSB9IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtYWN0aW9ucy9hYnN0cmFjdC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyZWF0ZUluamVjdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NyZWF0ZS1pbmplY3Rvci5waXBlJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUGlwZSwgUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwUGFnZVRvb2xiYXInLFxyXG4gIHNlbGVjdG9yOiAnYWJwLXBhZ2UtdG9vbGJhcicsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ3JlYXRlSW5qZWN0b3JQaXBlLFxyXG4gICAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICAgIExvY2FsaXphdGlvblBpcGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19BQ1RJT05fVFlQRSxcclxuICAgICAgdXNlVmFsdWU6ICd0b29sYmFyQWN0aW9ucycsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlVG9vbGJhckNvbXBvbmVudDxSID0gYW55PlxyXG4gIGV4dGVuZHMgQWJzdHJhY3RBY3Rpb25zQ29tcG9uZW50PFRvb2xiYXJBY3Rpb25MaXN0PFI+PlxyXG4gIGltcGxlbWVudHMgSGFzQ3JlYXRlSW5qZWN0b3JQaXBlPFI+XHJcbntcclxuICByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG4gIGRlZmF1bHRCdG5DbGFzcyA9ICdidG4gYnRuLXNtIGJ0bi1wcmltYXJ5JztcclxuXHJcbiAgZ2V0RGF0YSA9ICgpID0+IHRoaXMuZGF0YTtcclxuXHJcbiAgcmVhZG9ubHkgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248VG9vbGJhckNvbXBvbmVudDxSPj4gPSAoXywgaXRlbSkgPT5cclxuICAgIGl0ZW0uYWN0aW9uIHx8IGl0ZW0uY29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgICBzdXBlcigpO1xyXG4gIFxyXG4gICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xyXG4gIH1cclxuXHJcbiAgYXNUb29sYmFyQWN0aW9uKHZhbHVlOiBUb29sYmFyQWN0aW9uRGVmYXVsdCk6IHsgdmFsdWU6IFRvb2xiYXJBY3Rpb24gfSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdmFsdWUgYXMgVG9vbGJhckFjdGlvbixcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWVuZCBteC0wIGdhcC0yXCIgaWQ9XCJBYnBDb250ZW50VG9vbGJhclwiPlxyXG4gIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25MaXN0OyB0cmFjayBhY3Rpb24uY29tcG9uZW50IHx8IGFjdGlvbi5hY3Rpb247IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gcHgtMCBwdC0wXCIgW2NsYXNzLnBlLTBdPVwibGFzdFwiPlxyXG4gICAgQGlmIChhY3Rpb24udmlzaWJsZShkYXRhKSkge1xyXG4gICAgPG5nLWNvbnRhaW5lciAqYWJwUGVybWlzc2lvbj1cImFjdGlvbi5wZXJtaXNzaW9uOyBydW5DaGFuZ2VEZXRlY3Rpb246IGZhbHNlXCI+XHJcbiAgICAgIEBpZiAoYWN0aW9uLmNvbXBvbmVudDsgYXMgY29tcG9uZW50KSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJjb21wb25lbnQ7IGluamVjdG9yOiByZWNvcmQgfCBjcmVhdGVJbmplY3RvcjogYWN0aW9uOnRoaXNcIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICB9QGVsc2Uge1xyXG4gICAgICAgICBAaWYgKGFzVG9vbGJhckFjdGlvbihhY3Rpb24pLnZhbHVlOyBhcyB0b29sYmFyQWN0aW9uICkge1xyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbihkYXRhKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ0b29sYmFyQWN0aW9uPy5idG5DbGFzcyA/IHRvb2xiYXJBY3Rpb24/LmJ0bkNsYXNzIDogZGVmYXVsdEJ0bkNsYXNzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJkLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInRvb2xiYXJBY3Rpb24/Lmljb25cIiBbY2xhc3MubWUtMV09XCJ0b29sYmFyQWN0aW9uPy5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICB7eyB0b29sYmFyQWN0aW9uPy50ZXh0IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9IFxyXG4gICAgICB9XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG5cclxuIl19","import { ControlContainer, FormGroupDirective } from \"@angular/forms\";\nexport const EXTENSIBLE_FORM_VIEW_PROVIDER = { provide: ControlContainer, useExisting: FormGroupDirective };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLXZpZXctcHJvdmlkZXIudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi90b2tlbnMvZXh0ZW5zaWJsZS1mb3JtLXZpZXctcHJvdmlkZXIudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBFWFRFTlNJQkxFX0ZPUk1fVklFV19QUk9WSURFUiA9IHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSB9XHJcbiJdfQ==","export function mergeWithDefaultActions(extension, defaultActions, ...contributors) {\n Object.keys(defaultActions).forEach((name) => {\n const actions = extension.get(name);\n actions.clearContributors();\n actions.addContributor((actionList) => actionList.addManyTail(defaultActions[name]));\n contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => actions.addContributor(callback)));\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvYWN0aW9ucy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsU0FBWSxFQUNaLGNBQXlDLEVBQ3pDLEdBQUcsWUFBcUQ7SUFFeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNuRCxNQUFNLE9BQU8sR0FBdUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM1QixPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBZ0QsRUFBRSxFQUFFLENBQzFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXdDLEVBQUUsRUFBRSxDQUM3RSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUNqQyxDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrLCBBY3Rpb25MaXN0LCBBY3Rpb25zRmFjdG9yeSwgSW5mZXJyZWRBY3Rpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2FjdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBFbnRpdHlBY3Rpb25Db250cmlidXRvckNhbGxiYWNrcyxcclxuICBFbnRpdHlBY3Rpb25EZWZhdWx0cyxcclxuICBFbnRpdHlBY3Rpb25zLFxyXG4gIEVudGl0eUFjdGlvbnNGYWN0b3J5LFxyXG59IGZyb20gJy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgVG9vbGJhckFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIFRvb2xiYXJBY3Rpb25EZWZhdWx0cyxcclxuICBUb29sYmFyQWN0aW9ucyxcclxuICBUb29sYmFyQWN0aW9uc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3Rvb2xiYXItYWN0aW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoRGVmYXVsdEFjdGlvbnM8RiBleHRlbmRzIEFjdGlvbnNGYWN0b3J5PGFueT4+KFxyXG4gIGV4dGVuc2lvbjogRixcclxuICBkZWZhdWx0QWN0aW9uczogSW5mZXJyZWRBY3Rpb25EZWZhdWx0czxGPixcclxuICAuLi5jb250cmlidXRvcnM6IEluZmVycmVkQWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8Rj5bXVxyXG4pIHtcclxuICBPYmplY3Qua2V5cyhkZWZhdWx0QWN0aW9ucykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBhY3Rpb25zOiBJbmZlcnJlZEFjdGlvbnM8Rj4gPSBleHRlbnNpb24uZ2V0KG5hbWUpO1xyXG4gICAgYWN0aW9ucy5jbGVhckNvbnRyaWJ1dG9ycygpO1xyXG4gICAgYWN0aW9ucy5hZGRDb250cmlidXRvcigoYWN0aW9uTGlzdDogQWN0aW9uTGlzdDxhbnksIEluZmVycmVkQWN0aW9uPGFueT4+KSA9PlxyXG4gICAgICBhY3Rpb25MaXN0LmFkZE1hbnlUYWlsKGRlZmF1bHRBY3Rpb25zW25hbWVdKSxcclxuICAgICk7XHJcbiAgICBjb250cmlidXRvcnMuZm9yRWFjaChjb250cmlidXRvciA9PlxyXG4gICAgICAoY29udHJpYnV0b3JbbmFtZV0gfHwgW10pLmZvckVhY2goKGNhbGxiYWNrOiBBY3Rpb25Db250cmlidXRvckNhbGxiYWNrPGFueT4pID0+XHJcbiAgICAgICAgYWN0aW9ucy5hZGRDb250cmlidXRvcihjYWxsYmFjayksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcbnR5cGUgSW5mZXJyZWRBY3Rpb25EZWZhdWx0czxGPiA9IEYgZXh0ZW5kcyBFbnRpdHlBY3Rpb25zRmFjdG9yeTxpbmZlciBSRT5cclxuICA/IEVudGl0eUFjdGlvbkRlZmF1bHRzPFJFPlxyXG4gIDogRiBleHRlbmRzIFRvb2xiYXJBY3Rpb25zRmFjdG9yeTxpbmZlciBSVD5cclxuICA/IFRvb2xiYXJBY3Rpb25EZWZhdWx0czxSVD5cclxuICA6IG5ldmVyO1xyXG5cclxudHlwZSBJbmZlcnJlZEFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPEY+ID0gRiBleHRlbmRzIEVudGl0eUFjdGlvbnNGYWN0b3J5PGluZmVyIFJFPlxyXG4gID8gRW50aXR5QWN0aW9uQ29udHJpYnV0b3JDYWxsYmFja3M8UkU+XHJcbiAgOiBGIGV4dGVuZHMgVG9vbGJhckFjdGlvbnNGYWN0b3J5PGluZmVyIFJUPlxyXG4gID8gVG9vbGJhckFjdGlvbkNvbnRyaWJ1dG9yQ2FsbGJhY2tzPFJUPlxyXG4gIDogbmV2ZXI7XHJcblxyXG50eXBlIEluZmVycmVkQWN0aW9uczxGPiA9IEYgZXh0ZW5kcyBFbnRpdHlBY3Rpb25zRmFjdG9yeTxpbmZlciBSRT5cclxuICA/IEVudGl0eUFjdGlvbnM8UkU+XHJcbiAgOiBGIGV4dGVuZHMgVG9vbGJhckFjdGlvbnNGYWN0b3J5PGluZmVyIFJUPlxyXG4gID8gVG9vbGJhckFjdGlvbnM8UlQ+XHJcbiAgOiBuZXZlcjtcclxuIl19","import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { DateTimeAdapter, DateAdapter, TimeAdapter } from '@abp/ng.theme.shared';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nimport { ExtensionsService } from '../services/extensions.service';\nimport { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token';\nexport function generateFormFromProps(data) {\n const extensions = data.getInjected((ExtensionsService));\n const identifier = data.getInjected(EXTENSIONS_IDENTIFIER);\n const form = new UntypedFormGroup({});\n const extraForm = new UntypedFormGroup({});\n form.addControl(EXTRA_PROPERTIES_KEY, extraForm);\n const record = data.record || {};\n const type = JSON.stringify(record) === '{}' ? 'create' : 'edit';\n const props = extensions[`${type}FormProps`].get(identifier).props;\n const extraProperties = record[EXTRA_PROPERTIES_KEY] || {};\n props.forEach(({ value: prop }) => {\n const name = prop.name;\n const isExtraProperty = prop.isExtra || name in extraProperties;\n let value = undefined;\n if (isExtraProperty) {\n value = extraProperties[name];\n }\n else if (name in record) {\n value = record[name];\n }\n if (typeof value === 'undefined')\n value = prop.defaultValue;\n if (value) {\n let adapter;\n switch (prop.type) {\n case \"date\" /* ePropType.Date */:\n adapter = new DateAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n case \"time\" /* ePropType.Time */:\n adapter = new TimeAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n case \"datetime\" /* ePropType.DateTime */:\n adapter = new DateTimeAdapter();\n value = adapter.toModel(adapter.fromModel(value));\n break;\n default:\n break;\n }\n }\n const formControl = new UntypedFormControl(value, {\n asyncValidators: prop.asyncValidators(data),\n validators: prop.validators(data),\n });\n (isExtraProperty ? extraForm : form).addControl(name, formControl);\n });\n return form;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wcm9wcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZm9ybS1wcm9wcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFpQjtJQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUEsaUJBQW9CLENBQUEsQ0FBQyxDQUFDO0lBQzFELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUzRCxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakUsTUFBTSxLQUFLLEdBQW9CLFVBQVUsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxlQUFlLENBQUM7UUFFaEUsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXRCLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFNUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksT0FBb0QsQ0FBQztZQUN6RCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEI7b0JBQ0UsT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDbEQsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDNUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxNQUFNO2dCQUNSO29CQUNFLE9BQU8sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUNoQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBUSxDQUFDLENBQUM7b0JBQ3pELE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFFSCxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUFkYXB0ZXIsIERhdGVBZGFwdGVyLCBUaW1lQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IEVYVFJBX1BST1BFUlRJRVNfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V4dHJhLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnLi4vdG9rZW5zL2V4dGVuc2lvbnMudG9rZW4nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybUZyb21Qcm9wczxSID0gYW55PihkYXRhOiBQcm9wRGF0YTxSPikge1xyXG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBkYXRhLmdldEluamVjdGVkKEV4dGVuc2lvbnNTZXJ2aWNlPFI+KTtcclxuICBjb25zdCBpZGVudGlmaWVyID0gZGF0YS5nZXRJbmplY3RlZChFWFRFTlNJT05TX0lERU5USUZJRVIpO1xyXG5cclxuICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gIGNvbnN0IGV4dHJhRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBmb3JtLmFkZENvbnRyb2woRVhUUkFfUFJPUEVSVElFU19LRVksIGV4dHJhRm9ybSk7XHJcblxyXG4gIGNvbnN0IHJlY29yZCA9IGRhdGEucmVjb3JkIHx8IHt9O1xyXG4gIGNvbnN0IHR5cGUgPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpID09PSAne30nID8gJ2NyZWF0ZScgOiAnZWRpdCc7XHJcbiAgY29uc3QgcHJvcHM6IEZvcm1Qcm9wTGlzdDxSPiA9IGV4dGVuc2lvbnNbYCR7dHlwZX1Gb3JtUHJvcHNgXS5nZXQoaWRlbnRpZmllcikucHJvcHM7XHJcbiAgY29uc3QgZXh0cmFQcm9wZXJ0aWVzID0gcmVjb3JkW0VYVFJBX1BST1BFUlRJRVNfS0VZXSB8fCB7fTtcclxuXHJcbiAgcHJvcHMuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvcC5uYW1lO1xyXG4gICAgY29uc3QgaXNFeHRyYVByb3BlcnR5ID0gcHJvcC5pc0V4dHJhIHx8IG5hbWUgaW4gZXh0cmFQcm9wZXJ0aWVzO1xyXG5cclxuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAoaXNFeHRyYVByb3BlcnR5KSB7XHJcbiAgICAgIHZhbHVlID0gZXh0cmFQcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgfSBlbHNlIGlmIChuYW1lIGluIHJlY29yZCkge1xyXG4gICAgICB2YWx1ZSA9IHJlY29yZFtuYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgdmFsdWUgPSBwcm9wLmRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgbGV0IGFkYXB0ZXI6IERhdGVBZGFwdGVyIHwgVGltZUFkYXB0ZXIgfCBEYXRlVGltZUFkYXB0ZXI7XHJcbiAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBlUHJvcFR5cGUuRGF0ZTpcclxuICAgICAgICAgIGFkYXB0ZXIgPSBuZXcgRGF0ZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIGVQcm9wVHlwZS5UaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBUaW1lQWRhcHRlcigpO1xyXG4gICAgICAgICAgdmFsdWUgPSBhZGFwdGVyLnRvTW9kZWwoYWRhcHRlci5mcm9tTW9kZWwodmFsdWUpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZVByb3BUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgYWRhcHRlciA9IG5ldyBEYXRlVGltZUFkYXB0ZXIoKTtcclxuICAgICAgICAgIHZhbHVlID0gYWRhcHRlci50b01vZGVsKGFkYXB0ZXIuZnJvbU1vZGVsKHZhbHVlKSBhcyBhbnkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHZhbHVlLCB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9yczogcHJvcC5hc3luY1ZhbGlkYXRvcnMoZGF0YSksXHJcbiAgICAgIHZhbGlkYXRvcnM6IHByb3AudmFsaWRhdG9ycyhkYXRhKSxcclxuICAgIH0pO1xyXG5cclxuICAgIChpc0V4dHJhUHJvcGVydHkgPyBleHRyYUZvcm0gOiBmb3JtKS5hZGRDb250cm9sKG5hbWUsIGZvcm1Db250cm9sKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZvcm07XHJcbn1cclxuIl19","import { ConfigStateService, PermissionService } from '@abp/ng.core';\nimport { of } from 'rxjs';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nexport function createExtraPropertyValueResolver(name) {\n return (data) => of(data.record[EXTRA_PROPERTIES_KEY][name]);\n}\nexport function mergeWithDefaultProps(extension, defaultProps, ...contributors) {\n Object.keys(defaultProps).forEach((name) => {\n const props = extension.get(name);\n props.clearContributors();\n props.addContributor((propList) => propList.addManyTail(defaultProps[name]));\n contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));\n });\n}\nexport function checkPolicies(injector, properties) {\n const configState = injector.get(ConfigStateService);\n const permission = injector.get(PermissionService);\n const props = Object.entries(properties);\n const checkPolicy = (policy) => {\n const { permissions, globalFeatures, features } = policy || {};\n const checks = [\n {\n items: permissions?.permissionNames,\n requiresAll: permissions?.requiresAll,\n check: (item) => permission.getGrantedPolicy(item),\n },\n {\n items: globalFeatures?.features,\n requiresAll: globalFeatures?.requiresAll,\n check: (item) => configState.getGlobalFeatureIsEnabled(item),\n },\n {\n items: features?.features,\n requiresAll: features?.requiresAll,\n check: (item) => configState.getFeatureIsEnabled(item),\n },\n ];\n return checks.every(({ items, requiresAll, check }) => {\n if (!items?.length) {\n return true;\n }\n return requiresAll ? items.every(check) : items.some(check);\n });\n };\n props.forEach(([name, property]) => {\n if (property.policy && !checkPolicy(property.policy)) {\n delete properties[name];\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3Byb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUEwQnJFLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsSUFBWTtJQUVaLE9BQU8sQ0FBQyxJQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBaUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsU0FBWSxFQUNaLFlBQXFDLEVBQ3JDLEdBQUcsWUFBbUQ7SUFFdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNqRCxNQUFNLEtBQUssR0FBcUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBMEMsRUFBRSxFQUFFLENBQ2xFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXNDLEVBQUUsRUFBRSxDQUMzRSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUMvQixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUFrQixFQUNsQixVQUFzRDtJQUV0RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRTtRQUM5QyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBRS9ELE1BQU0sTUFBTSxHQUFHO1lBQ2I7Z0JBQ0UsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlO2dCQUNuQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVc7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRDtZQUNEO2dCQUNFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUTtnQkFDL0IsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXO2dCQUN4QyxLQUFLLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7YUFDckU7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVE7Z0JBQ3pCLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVztnQkFDbEMsS0FBSyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO2FBQy9EO1NBQ0YsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDakMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIEVudGl0eVByb3BEZWZhdWx0cyxcclxuICBFbnRpdHlQcm9wcyxcclxuICBFbnRpdHlQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBDcmVhdGVGb3JtUHJvcERlZmF1bHRzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRWRpdEZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgRWRpdEZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRm9ybVByb3BzLFxyXG59IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHtcclxuICBJbmZlcnJlZFByb3AsXHJcbiAgUHJvcENhbGxiYWNrLFxyXG4gIFByb3BDb250cmlidXRvckNhbGxiYWNrLFxyXG4gIFByb3BMaXN0LFxyXG4gIFByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5pbXBvcnQgeyBQb2xpY3kgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFeHRyYVByb3BlcnR5VmFsdWVSZXNvbHZlcjxUPihcclxuICBuYW1lOiBzdHJpbmcsXHJcbik6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+IHtcclxuICByZXR1cm4gKGRhdGE/KSA9PiBvZigoZGF0YS5yZWNvcmQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlbRVhUUkFfUFJPUEVSVElFU19LRVldW25hbWVdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlV2l0aERlZmF1bHRQcm9wczxGIGV4dGVuZHMgUHJvcHNGYWN0b3J5PGFueT4+KFxyXG4gIGV4dGVuc2lvbjogRixcclxuICBkZWZhdWx0UHJvcHM6IEluZmVycmVkUHJvcERlZmF1bHRzPEY+LFxyXG4gIC4uLmNvbnRyaWJ1dG9yczogSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj5bXVxyXG4pIHtcclxuICBPYmplY3Qua2V5cyhkZWZhdWx0UHJvcHMpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcHJvcHM6IEluZmVycmVkUHJvcHM8Rj4gPSBleHRlbnNpb24uZ2V0KG5hbWUpO1xyXG4gICAgcHJvcHMuY2xlYXJDb250cmlidXRvcnMoKTtcclxuICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKChwcm9wTGlzdDogUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8YW55Pj4pID0+XHJcbiAgICAgIHByb3BMaXN0LmFkZE1hbnlUYWlsKGRlZmF1bHRQcm9wc1tuYW1lXSksXHJcbiAgICApO1xyXG4gICAgY29udHJpYnV0b3JzLmZvckVhY2goY29udHJpYnV0b3IgPT5cclxuICAgICAgKGNvbnRyaWJ1dG9yW25hbWVdIHx8IFtdKS5mb3JFYWNoKChjYWxsYmFjazogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8YW55PikgPT5cclxuICAgICAgICBwcm9wcy5hZGRDb250cmlidXRvcihjYWxsYmFjayksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQb2xpY2llcyhcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4pIHtcclxuICBjb25zdCBjb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIGNvbnN0IHBlcm1pc3Npb24gPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gIGNvbnN0IHByb3BzID0gT2JqZWN0LmVudHJpZXMocHJvcGVydGllcyk7XHJcblxyXG4gIGNvbnN0IGNoZWNrUG9saWN5ID0gKHBvbGljeTogUG9saWN5KTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCB7IHBlcm1pc3Npb25zLCBnbG9iYWxGZWF0dXJlcywgZmVhdHVyZXMgfSA9IHBvbGljeSB8fCB7fTtcclxuXHJcbiAgICBjb25zdCBjaGVja3MgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogcGVybWlzc2lvbnM/LnBlcm1pc3Npb25OYW1lcyxcclxuICAgICAgICByZXF1aXJlc0FsbDogcGVybWlzc2lvbnM/LnJlcXVpcmVzQWxsLFxyXG4gICAgICAgIGNoZWNrOiAoaXRlbTogc3RyaW5nKSA9PiBwZXJtaXNzaW9uLmdldEdyYW50ZWRQb2xpY3koaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZ2xvYmFsRmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBnbG9iYWxGZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEdsb2JhbEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBmZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBjaGVja3MuZXZlcnkoKHsgaXRlbXMsIHJlcXVpcmVzQWxsLCBjaGVjayB9KSA9PiB7XHJcbiAgICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmVxdWlyZXNBbGwgPyBpdGVtcy5ldmVyeShjaGVjaykgOiBpdGVtcy5zb21lKGNoZWNrKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByb3BzLmZvckVhY2goKFtuYW1lLCBwcm9wZXJ0eV0pID0+IHtcclxuICAgIGlmIChwcm9wZXJ0eS5wb2xpY3kgJiYgIWNoZWNrUG9saWN5KHByb3BlcnR5LnBvbGljeSkpIHtcclxuICAgICAgZGVsZXRlIHByb3BlcnRpZXNbbmFtZV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BEZWZhdWx0czxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wczxGPiA9XHJcbiAgRiBleHRlbmRzIEVudGl0eVByb3BzRmFjdG9yeTxpbmZlciBSRT5cclxuICAgID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgICA6IEYgZXh0ZW5kcyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJDRj5cclxuICAgICAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBGb3JtUHJvcHM8UkVGPlxyXG4gICAgICAgIDogbmV2ZXI7XHJcbiJdfQ==","import { LocalizationService } from '@abp/ng.core';\nimport { merge, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\nexport function createEnum(members) {\n const enumObject = {};\n members.forEach(({ name = '', value }) => {\n enumObject[(enumObject[name] = value)] = name;\n });\n return enumObject;\n}\nexport function createEnumValueResolver(enumType, lookupEnum, propName) {\n return data => {\n const value = data.record[EXTRA_PROPERTIES_KEY][propName];\n const key = lookupEnum.transformed[value];\n const l10n = data.getInjected(LocalizationService);\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n return createLocalizationStream(l10n, localizeEnum(key));\n };\n}\nexport function createEnumOptions(enumType, lookupEnum) {\n return data => {\n const l10n = data.getInjected(LocalizationService);\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\n return createLocalizationStream(l10n, lookupEnum.fields.map(({ name = '', value }) => ({\n key: localizeEnum(name),\n value,\n })));\n };\n}\nfunction createLocalizationStream(l10n, mapTarget) {\n return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));\n}\nfunction createEnumLocalizer(l10n, enumType, lookupEnum) {\n const resource = lookupEnum.localizationResource;\n const shortType = getShortEnumType(enumType);\n return key => l10n.localizeWithFallbackSync([resource || ''], ['Enum:' + shortType + '.' + key, shortType + '.' + key, key], key);\n}\nfunction getShortEnumType(enumType) {\n return enumType.split('.').pop();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvZW51bS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBOEIsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSXJFLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZ0M7SUFDekQsTUFBTSxVQUFVLEdBQVEsRUFBRSxDQUFDO0lBRTNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUN2QyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBWSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxRQUFnQixFQUNoQixVQUE2QyxFQUM3QyxRQUFnQjtJQUVoQixPQUFPLElBQUksQ0FBQyxFQUFFO1FBQ1osTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLE1BQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFckUsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsUUFBZ0IsRUFDaEIsVUFBNkM7SUFFN0MsT0FBTyxJQUFJLENBQUMsRUFBRTtRQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sd0JBQXdCLENBQzdCLElBQUksRUFDSixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QixLQUFLO1NBQ04sQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLElBQXlCLEVBQUUsU0FBYztJQUN6RSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsSUFBeUIsRUFDekIsUUFBZ0IsRUFDaEIsVUFBNkM7SUFFN0MsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FDWCxJQUFJLENBQUMsd0JBQXdCLENBQzNCLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUNoQixDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFDN0QsR0FBRyxDQUNKLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFnQjtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCwgRXh0ZW5zaW9uRW51bUZpZWxkRHRvLCBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBQcm9wQ2FsbGJhY2sgfSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudW0obWVtYmVyczogRXh0ZW5zaW9uRW51bUZpZWxkRHRvW10pIHtcclxuICBjb25zdCBlbnVtT2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgbWVtYmVycy5mb3JFYWNoKCh7IG5hbWUgPSAnJywgdmFsdWUgfSkgPT4ge1xyXG4gICAgZW51bU9iamVjdFsoZW51bU9iamVjdFtuYW1lXSA9IHZhbHVlIGFzIGFueSldID0gbmFtZTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVudW1PYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlcjxUID0gYW55PihcclxuICBlbnVtVHlwZTogc3RyaW5nLFxyXG4gIGxvb2t1cEVudW06IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0byxcclxuICBwcm9wTmFtZTogc3RyaW5nLFxyXG4pOiBQcm9wQ2FsbGJhY2s8VCwgT2JzZXJ2YWJsZTxzdHJpbmc+PiB7XHJcbiAgcmV0dXJuIGRhdGEgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSAoZGF0YS5yZWNvcmQgYXMgYW55KVtFWFRSQV9QUk9QRVJUSUVTX0tFWV1bcHJvcE5hbWVdO1xyXG4gICAgY29uc3Qga2V5ID0gbG9va3VwRW51bS50cmFuc2Zvcm1lZFt2YWx1ZV07XHJcbiAgICBjb25zdCBsMTBuID0gZGF0YS5nZXRJbmplY3RlZChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgIGNvbnN0IGxvY2FsaXplRW51bSA9IGNyZWF0ZUVudW1Mb2NhbGl6ZXIobDEwbiwgZW51bVR5cGUsIGxvb2t1cEVudW0pO1xyXG5cclxuICAgIHJldHVybiBjcmVhdGVMb2NhbGl6YXRpb25TdHJlYW0obDEwbiwgbG9jYWxpemVFbnVtKGtleSkpO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnVtT3B0aW9uczxUID0gYW55PihcclxuICBlbnVtVHlwZTogc3RyaW5nLFxyXG4gIGxvb2t1cEVudW06IE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0byxcclxuKTogUHJvcENhbGxiYWNrPFQsIE9ic2VydmFibGU8QUJQLk9wdGlvbjxhbnk+W10+PiB7XHJcbiAgcmV0dXJuIGRhdGEgPT4ge1xyXG4gICAgY29uc3QgbDEwbiA9IGRhdGEuZ2V0SW5qZWN0ZWQoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgICBjb25zdCBsb2NhbGl6ZUVudW0gPSBjcmVhdGVFbnVtTG9jYWxpemVyKGwxMG4sIGVudW1UeXBlLCBsb29rdXBFbnVtKTtcclxuXHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemF0aW9uU3RyZWFtKFxyXG4gICAgICBsMTBuLFxyXG4gICAgICBsb29rdXBFbnVtLmZpZWxkcy5tYXAoKHsgbmFtZSA9ICcnLCB2YWx1ZSB9KSA9PiAoe1xyXG4gICAgICAgIGtleTogbG9jYWxpemVFbnVtKG5hbWUpLFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICB9KSksXHJcbiAgICApO1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXphdGlvblN0cmVhbShsMTBuOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBtYXBUYXJnZXQ6IGFueSkge1xyXG4gIHJldHVybiBtZXJnZShvZihudWxsKSwgbDEwbi5sYW5ndWFnZUNoYW5nZSQpLnBpcGUobWFwKCgpID0+IG1hcFRhcmdldCkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVFbnVtTG9jYWxpemVyKFxyXG4gIGwxMG46IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgZW51bVR5cGU6IHN0cmluZyxcclxuICBsb29rdXBFbnVtOiBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8sXHJcbik6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nIHtcclxuICBjb25zdCByZXNvdXJjZSA9IGxvb2t1cEVudW0ubG9jYWxpemF0aW9uUmVzb3VyY2U7XHJcbiAgY29uc3Qgc2hvcnRUeXBlID0gZ2V0U2hvcnRFbnVtVHlwZShlbnVtVHlwZSk7XHJcblxyXG4gIHJldHVybiBrZXkgPT5cclxuICAgIGwxMG4ubG9jYWxpemVXaXRoRmFsbGJhY2tTeW5jKFxyXG4gICAgICBbcmVzb3VyY2UgfHwgJyddLFxyXG4gICAgICBbJ0VudW06JyArIHNob3J0VHlwZSArICcuJyArIGtleSwgc2hvcnRUeXBlICsgJy4nICsga2V5LCBrZXldLFxyXG4gICAgICBrZXksXHJcbiAgICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTaG9ydEVudW1UeXBlKGVudW1UeXBlOiBzdHJpbmcpIHtcclxuICByZXR1cm4gZW51bVR5cGUuc3BsaXQoJy4nKS5wb3AoKTtcclxufVxyXG4iXX0=","import { createLocalizationPipeKeyGenerator, } from '@abp/ng.core';\nexport function createDisplayNameLocalizationPipeKeyGenerator(localization) {\n const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);\n return (displayName, fallback) => {\n if (displayName && displayName.name)\n return generateLocalizationPipeKey([displayName.resource || ''], [displayName.name], displayName.name);\n const key = generateLocalizationPipeKey([fallback.resource || ''], ['DisplayName:' + fallback.name], undefined);\n if (key)\n return key;\n return generateLocalizationPipeKey([fallback.resource || ''], [fallback.name || ''], fallback.name);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi91dGlscy9sb2NhbGl6YXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsa0NBQWtDLEdBQ25DLE1BQU0sY0FBYyxDQUFDO0FBR3RCLE1BQU0sVUFBVSw2Q0FBNkMsQ0FDM0QsWUFBcUQ7SUFFckQsTUFBTSwyQkFBMkIsR0FBRyxrQ0FBa0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVyRixPQUFPLENBQ0wsV0FBa0QsRUFDbEQsUUFBK0MsRUFDL0MsRUFBRTtRQUNGLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJO1lBQ2pDLE9BQU8sMkJBQTJCLENBQ2hDLENBQUMsV0FBVyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFDNUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQ2xCLFdBQVcsQ0FBQyxJQUFJLENBQ2pCLENBQUM7UUFFSixNQUFNLEdBQUcsR0FBRywyQkFBMkIsQ0FDckMsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUN6QixDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2hDLFNBQVMsQ0FDVixDQUFDO1FBRUYsSUFBSSxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFcEIsT0FBTywyQkFBMkIsQ0FDaEMsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUN6QixDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQ3JCLFFBQVEsQ0FBQyxJQUFJLENBQ2QsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpc3BsYXlOYW1lTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihcclxuICBsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuKSB7XHJcbiAgY29uc3QgZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5ID0gY3JlYXRlTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgZGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuTG9jYWxpemFibGVTdHJpbmdEdG8sXHJcbiAgICBmYWxsYmFjazogT2JqZWN0RXh0ZW5zaW9ucy5Mb2NhbGl6YWJsZVN0cmluZ0R0byxcclxuICApID0+IHtcclxuICAgIGlmIChkaXNwbGF5TmFtZSAmJiBkaXNwbGF5TmFtZS5uYW1lKVxyXG4gICAgICByZXR1cm4gZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5KFxyXG4gICAgICAgIFtkaXNwbGF5TmFtZS5yZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgICAgW2Rpc3BsYXlOYW1lLm5hbWVdLFxyXG4gICAgICAgIGRpc3BsYXlOYW1lLm5hbWUsXHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3Qga2V5ID0gZ2VuZXJhdGVMb2NhbGl6YXRpb25QaXBlS2V5KFxyXG4gICAgICBbZmFsbGJhY2sucmVzb3VyY2UgfHwgJyddLFxyXG4gICAgICBbJ0Rpc3BsYXlOYW1lOicgKyBmYWxsYmFjay5uYW1lXSxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoa2V5KSByZXR1cm4ga2V5O1xyXG5cclxuICAgIHJldHVybiBnZW5lcmF0ZUxvY2FsaXphdGlvblBpcGVLZXkoXHJcbiAgICAgIFtmYWxsYmFjay5yZXNvdXJjZSB8fCAnJ10sXHJcbiAgICAgIFtmYWxsYmFjay5uYW1lIHx8ICcnXSxcclxuICAgICAgZmFsbGJhY2submFtZSxcclxuICAgICk7XHJcbiAgfTtcclxufVxyXG4iXX0=","import { AbpValidators } from '@abp/ng.core';\nexport function getValidatorsFromProperty(property) {\n const validators = [];\n property.attributes.forEach(attr => {\n if (attr.typeSimple && attr.typeSimple in AbpValidators) {\n validators.push(AbpValidators[attr.typeSimple](attr.config));\n }\n });\n return validators;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9leHRlbnNpYmxlL3NyYy9saWIvdXRpbHMvdmFsaWRhdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJN0MsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxRQUErQztJQUUvQyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3hELFVBQVUsQ0FBQyxJQUFJLENBQUUsYUFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFicFZhbGlkYXRvcnMgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eShcclxuICBwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byxcclxuKTogVmFsaWRhdG9yRm5bXSB7XHJcbiAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG5cclxuICBwcm9wZXJ0eS5hdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XHJcbiAgICBpZiAoYXR0ci50eXBlU2ltcGxlICYmIGF0dHIudHlwZVNpbXBsZSBpbiBBYnBWYWxpZGF0b3JzKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaCgoQWJwVmFsaWRhdG9ycyBhcyBhbnkpW2F0dHIudHlwZVNpbXBsZV0oYXR0ci5jb25maWcpKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHZhbGlkYXRvcnM7XHJcbn1cclxuIl19","import { ConfigStateService, } from '@abp/ng.core';\nimport { pipe, zip } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\nimport { EntityProp } from '../models/entity-props';\nimport { FormProp } from '../models/form-props';\nimport { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';\nimport { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';\nimport { checkPolicies, createExtraPropertyValueResolver } from './props.util';\nimport { createTypeaheadDisplayNameGenerator, createTypeaheadOptions, getTypeaheadType, hasTypeaheadTextSuffix, } from './typeahead.util';\nimport { getValidatorsFromProperty } from './validation.util';\nfunction selectObjectExtensions(configState) {\n return configState.getOne$('objectExtensions');\n}\nfunction selectLocalization(configState) {\n return configState.getOne$('localization');\n}\nfunction selectEnums(configState) {\n return selectObjectExtensions(configState).pipe(map((extensions) => Object.keys(extensions.enums).reduce((acc, key) => {\n const { fields, localizationResource } = extensions.enums[key];\n acc[key] = {\n fields,\n localizationResource,\n transformed: createEnum(fields),\n };\n return acc;\n }, {})));\n}\nexport function getObjectExtensionEntitiesFromStore(injector, moduleKey) {\n const configState = injector.get(ConfigStateService);\n return selectObjectExtensions(configState).pipe(map(extensions => {\n if (!extensions)\n return null;\n return (extensions.modules[moduleKey] || {})\n .entities;\n }), map(entities => (isUndefined(entities) ? {} : entities)), filter(Boolean), take(1));\n}\nexport function mapEntitiesToContributors(injector, resource) {\n const configState = injector.get(ConfigStateService);\n return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {\n const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);\n return Object.keys(entities).reduce((acc, key) => {\n acc.prop[key] = [];\n acc.createForm[key] = [];\n acc.editForm[key] = [];\n const entity = entities[key];\n if (!entity) {\n return acc;\n }\n const properties = entity.properties;\n if (!properties) {\n return acc;\n }\n checkPolicies(injector, properties);\n const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);\n return mapPropertiesToContributors(properties, acc, key);\n }, {\n prop: {},\n createForm: {},\n editForm: {},\n });\n }))), take(1));\n}\nfunction createPropertiesToContributorsMapper(generateDisplayName, resource, enums) {\n return (properties, contributors, key) => {\n const isExtra = true;\n const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(generateDisplayName, properties);\n Object.keys(properties).forEach((name) => {\n const property = properties[name];\n const propName = name;\n const lookup = property.ui.lookup || {};\n const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);\n const generateDN = hasTypeaheadTextSuffix(name)\n ? generateTypeaheadDisplayName\n : generateDisplayName;\n const displayName = generateDN(property.displayName, { name, resource });\n if (property.ui.onTable.isVisible) {\n const sortable = Boolean(property.ui.onTable.isSortable);\n const columnWidth = type === \"boolean\" /* ePropType.Boolean */ ? 150 : 250;\n const valueResolver = type === \"enum\" /* ePropType.Enum */ &&\n property.type\n ? createEnumValueResolver(property.type, enums[property.type], propName)\n : createExtraPropertyValueResolver(propName);\n const entityProp = new EntityProp({\n type,\n name: propName,\n displayName,\n sortable,\n columnWidth,\n valueResolver,\n isExtra,\n });\n const contributor = (propList) => propList.addTail(entityProp);\n contributors.prop[key].push(contributor);\n }\n const isOnCreateForm = property.ui.onCreateForm.isVisible;\n const isOnEditForm = property.ui.onEditForm.isVisible;\n if (isOnCreateForm || isOnEditForm) {\n const defaultValue = property.defaultValue;\n const formText = property.formText;\n const validators = () => getValidatorsFromProperty(property);\n let options;\n if (type === \"enum\" /* ePropType.Enum */)\n options = createEnumOptions(propName, enums[property.type || '']);\n else if (type === \"typeahead\" /* ePropType.Typeahead */)\n options = createTypeaheadOptions(lookup);\n const formProp = new FormProp({\n type,\n name: propName,\n displayName,\n options,\n defaultValue,\n validators,\n isExtra,\n formText,\n });\n const formContributor = (propList) => propList.addTail(formProp);\n if (isOnCreateForm)\n contributors.createForm[key].push(formContributor);\n if (isOnEditForm)\n contributors.editForm[key].push(formContributor);\n }\n });\n return contributors;\n };\n}\nfunction getTypeFromProperty(property) {\n return property?.typeSimple?.replace(/\\?$/, '');\n}\nfunction isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGtCQUFrQixHQUluQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQWMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsU0FBUyxzQkFBc0IsQ0FBQyxXQUErQjtJQUM3RCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbEIsV0FBK0I7SUFFL0IsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQ2xDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ1QsTUFBTTtZQUNOLG9CQUFvQjtZQUNwQixXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUNoQyxDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsRUFBdUQsQ0FDeEQsQ0FDRixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1DQUFtQyxDQUFDLFFBQWtCLEVBQUUsU0FBaUI7SUFDdkYsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTdCLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFLLEVBQTBDLENBQUM7YUFDbEYsUUFBUSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFFLEVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDakUsTUFBTSxDQUFvQyxPQUFPLENBQUMsRUFDbEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFVLFFBQWtCLEVBQUUsUUFBZ0I7SUFDckYsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sSUFBSSxDQUNULFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQzFCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pFLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDNUIsTUFBTSxtQkFBbUIsR0FBRyw2Q0FBNkMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUNqQyxDQUFDLEdBQUcsRUFBRSxHQUE0QyxFQUFFLEVBQUU7WUFDcEQsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFdkIsTUFBTSxNQUFNLEdBQXdDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztZQUVELGFBQWEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFcEMsTUFBTSwyQkFBMkIsR0FBRyxvQ0FBb0MsQ0FDdEUsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixLQUFLLENBQ04sQ0FBQztZQUVGLE9BQU8sMkJBQTJCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxDQUFDLEVBQ0Q7WUFDRSxJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEVBQUU7U0FDd0IsQ0FDdkMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILENBQ0YsRUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLG9DQUFvQyxDQUMzQyxtQkFBNEQsRUFDNUQsUUFBZ0IsRUFDaEIsS0FBd0Q7SUFFeEQsT0FBTyxDQUNMLFVBQXNELEVBQ3RELFlBQWtELEVBQ2xELEdBQVcsRUFDWCxFQUFFO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE1BQU0sNEJBQTRCLEdBQUcsbUNBQW1DLENBQ3RFLG1CQUFtQixFQUNuQixVQUFVLENBQ1gsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztZQUN0QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSyxFQUFtQyxDQUFDO1lBQzFFLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyw0QkFBNEI7Z0JBQzlCLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUN4QixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRXpFLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxzQ0FBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzNELE1BQU0sYUFBYSxHQUFxQyxJQUFJLGdDQUFtQjtvQkFDL0UsUUFBUSxDQUFDLElBQUk7b0JBQ1gsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7b0JBQ3hFLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBSSxRQUFRLENBQUMsQ0FBQztnQkFFbEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUk7b0JBQ25DLElBQUk7b0JBQ0osSUFBSSxFQUFFLFFBQVE7b0JBQ2QsV0FBVztvQkFDWCxRQUFRO29CQUNSLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixPQUFPO2lCQUNSLENBQUMsQ0FBQztnQkFFSCxNQUFNLFdBQVcsR0FBRyxDQUFDLFFBQTJCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xGLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDMUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1lBRXRELElBQUksY0FBYyxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNuQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2dCQUMzQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUNuQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxPQUFxRSxDQUFDO2dCQUMxRSxJQUFJLElBQUksZ0NBQW1CO29CQUN6QixPQUFPLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQy9ELElBQUksSUFBSSwwQ0FBd0I7b0JBQUUsT0FBTyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQztvQkFDNUIsSUFBSTtvQkFDSixJQUFJLEVBQUUsUUFBUTtvQkFDZCxXQUFXO29CQUNYLE9BQU87b0JBQ1AsWUFBWTtvQkFDWixVQUFVO29CQUNWLE9BQU87b0JBQ1AsUUFBUTtpQkFDVCxDQUFDLENBQUM7Z0JBRUgsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF5QixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUVsRixJQUFJLGNBQWM7b0JBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksWUFBWTtvQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUErQztJQUMxRSxPQUFPLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgRXh0ZW5zaW9uRW51bUR0byxcclxuICBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4gIE9iamVjdEV4dGVuc2lvbnNEdG8sXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgY3JlYXRlRW51bSwgY3JlYXRlRW51bU9wdGlvbnMsIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9lbnVtLnV0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2xvY2FsaXphdGlvbi51dGlsJztcclxuaW1wb3J0IHsgY2hlY2tQb2xpY2llcywgY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXIgfSBmcm9tICcuL3Byb3BzLnV0aWwnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yLFxyXG4gIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMsXHJcbiAgZ2V0VHlwZWFoZWFkVHlwZSxcclxuICBoYXNUeXBlYWhlYWRUZXh0U3VmZml4LFxyXG59IGZyb20gJy4vdHlwZWFoZWFkLnV0aWwnO1xyXG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5IH0gZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5cclxuZnVuY3Rpb24gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKTogT2JzZXJ2YWJsZTxPYmplY3RFeHRlbnNpb25zRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ29iamVjdEV4dGVuc2lvbnMnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0TG9jYWxpemF0aW9uKFxyXG4gIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbik6IE9ic2VydmFibGU8QXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RFbnVtcyhcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkVudW1EdG8+PiB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoKGV4dGVuc2lvbnM6IE9iamVjdEV4dGVuc2lvbnNEdG8pID0+XHJcbiAgICAgIE9iamVjdC5rZXlzKGV4dGVuc2lvbnMuZW51bXMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgZmllbGRzLCBsb2NhbGl6YXRpb25SZXNvdXJjZSB9ID0gZXh0ZW5zaW9ucy5lbnVtc1trZXldO1xyXG4gICAgICAgICAgYWNjW2tleV0gPSB7XHJcbiAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgbG9jYWxpemF0aW9uUmVzb3VyY2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkOiBjcmVhdGVFbnVtKGZpZWxkcyksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LFxyXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0bz4sXHJcbiAgICAgICksXHJcbiAgICApLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RFeHRlbnNpb25FbnRpdGllc0Zyb21TdG9yZShpbmplY3RvcjogSW5qZWN0b3IsIG1vZHVsZUtleTogc3RyaW5nKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICByZXR1cm4gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZSkucGlwZShcclxuICAgIG1hcChleHRlbnNpb25zID0+IHtcclxuICAgICAgaWYgKCFleHRlbnNpb25zKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgIHJldHVybiAoZXh0ZW5zaW9ucy5tb2R1bGVzW21vZHVsZUtleV0gfHwgKHt9IGFzIE9iamVjdEV4dGVuc2lvbnMuTW9kdWxlRXh0ZW5zaW9uRHRvKSlcclxuICAgICAgICAuZW50aXRpZXM7XHJcbiAgICB9KSxcclxuICAgIG1hcChlbnRpdGllcyA9PiAoaXNVbmRlZmluZWQoZW50aXRpZXMpID8gKHt9IGFzIGFueSkgOiBlbnRpdGllcykpLFxyXG4gICAgZmlsdGVyPE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9ucz4oQm9vbGVhbiksXHJcbiAgICB0YWtlKDEpLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXBFbnRpdGllc1RvQ29udHJpYnV0b3JzPFQgPSBhbnk+KGluamVjdG9yOiBJbmplY3RvciwgcmVzb3VyY2U6IHN0cmluZykge1xyXG4gIGNvbnN0IGNvbmZpZ1N0YXRlID0gaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgcmV0dXJuIHBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKGVudGl0aWVzOiBhbnkpID0+XHJcbiAgICAgIHppcChzZWxlY3RMb2NhbGl6YXRpb24oY29uZmlnU3RhdGUpLCBzZWxlY3RFbnVtcyhjb25maWdTdGF0ZSkpLnBpcGUoXHJcbiAgICAgICAgbWFwKChbbG9jYWxpemF0aW9uLCBlbnVtc10pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGdlbmVyYXRlRGlzcGxheU5hbWUgPSBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW50aXRpZXMpLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywga2V5OiBrZXlvZiBPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnMpID0+IHtcclxuICAgICAgICAgICAgICBhY2MucHJvcFtrZXldID0gW107XHJcbiAgICAgICAgICAgICAgYWNjLmNyZWF0ZUZvcm1ba2V5XSA9IFtdO1xyXG4gICAgICAgICAgICAgIGFjYy5lZGl0Rm9ybVtrZXldID0gW107XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eTogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25EdG8gPSBlbnRpdGllc1trZXldO1xyXG4gICAgICAgICAgICAgIGlmICghZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNoZWNrUG9saWNpZXMoaW5qZWN0b3IsIHByb3BlcnRpZXMpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtYXBQcm9wZXJ0aWVzVG9Db250cmlidXRvcnMgPSBjcmVhdGVQcm9wZXJ0aWVzVG9Db250cmlidXRvcnNNYXBwZXI8VD4oXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtcyxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzKHByb3BlcnRpZXMsIGFjYywga2V5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb3A6IHt9LFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUZvcm06IHt9LFxyXG4gICAgICAgICAgICAgIGVkaXRGb3JtOiB7fSxcclxuICAgICAgICAgICAgfSBhcyBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICAgIHRha2UoMSksXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQgPSBhbnk+KFxyXG4gIGdlbmVyYXRlRGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuRGlzcGxheU5hbWVHZW5lcmF0b3JGbixcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4gIGVudW1zOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4gICAgY29udHJpYnV0b3JzOiBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnM8VD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICApID0+IHtcclxuICAgIGNvbnN0IGlzRXh0cmEgPSB0cnVlO1xyXG4gICAgY29uc3QgZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZSA9IGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yKFxyXG4gICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5hbWU7XHJcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHByb3BlcnR5LnVpLmxvb2t1cCB8fCAoe30gYXMgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byk7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlYWhlYWRUeXBlKGxvb2t1cCwgbmFtZSkgfHwgZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgIGNvbnN0IGdlbmVyYXRlRE4gPSBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpXHJcbiAgICAgICAgPyBnZW5lcmF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lXHJcbiAgICAgICAgOiBnZW5lcmF0ZURpc3BsYXlOYW1lO1xyXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdlbmVyYXRlRE4ocHJvcGVydHkuZGlzcGxheU5hbWUsIHsgbmFtZSwgcmVzb3VyY2UgfSk7XHJcblxyXG4gICAgICBpZiAocHJvcGVydHkudWkub25UYWJsZS5pc1Zpc2libGUpIHtcclxuICAgICAgICBjb25zdCBzb3J0YWJsZSA9IEJvb2xlYW4ocHJvcGVydHkudWkub25UYWJsZS5pc1NvcnRhYmxlKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHR5cGUgPT09IGVQcm9wVHlwZS5Cb29sZWFuID8gMTUwIDogMjUwO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlUmVzb2x2ZXI6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+ID0gdHlwZSA9PT0gZVByb3BUeXBlLkVudW0gJiZcclxuICAgICAgICBwcm9wZXJ0eS50eXBlXHJcbiAgICAgICAgICA/IGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyKHByb3BlcnR5LnR5cGUsIGVudW1zW3Byb3BlcnR5LnR5cGVdLCBwcm9wTmFtZSlcclxuICAgICAgICAgIDogY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXI8VD4ocHJvcE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBlbnRpdHlQcm9wID0gbmV3IEVudGl0eVByb3A8VD4oe1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIG5hbWU6IHByb3BOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBzb3J0YWJsZSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoLFxyXG4gICAgICAgICAgdmFsdWVSZXNvbHZlcixcclxuICAgICAgICAgIGlzRXh0cmEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yID0gKHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChlbnRpdHlQcm9wKTtcclxuICAgICAgICBjb250cmlidXRvcnMucHJvcFtrZXldLnB1c2goY29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc09uQ3JlYXRlRm9ybSA9IHByb3BlcnR5LnVpLm9uQ3JlYXRlRm9ybS5pc1Zpc2libGU7XHJcbiAgICAgIGNvbnN0IGlzT25FZGl0Rm9ybSA9IHByb3BlcnR5LnVpLm9uRWRpdEZvcm0uaXNWaXNpYmxlO1xyXG5cclxuICAgICAgaWYgKGlzT25DcmVhdGVGb3JtIHx8IGlzT25FZGl0Rm9ybSkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHByb3BlcnR5LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtVGV4dCA9IHByb3BlcnR5LmZvcm1UZXh0O1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAoKSA9PiBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgICAgICBsZXQgb3B0aW9uczogUHJvcENhbGxiYWNrPGFueSwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBlUHJvcFR5cGUuRW51bSlcclxuICAgICAgICAgIG9wdGlvbnMgPSBjcmVhdGVFbnVtT3B0aW9ucyhwcm9wTmFtZSwgZW51bXNbcHJvcGVydHkudHlwZSB8fCAnJ10pO1xyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IGVQcm9wVHlwZS5UeXBlYWhlYWQpIG9wdGlvbnMgPSBjcmVhdGVUeXBlYWhlYWRPcHRpb25zKGxvb2t1cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wID0gbmV3IEZvcm1Qcm9wKHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgICAgZm9ybVRleHQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cmlidXRvciA9IChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFQ+KSA9PiBwcm9wTGlzdC5hZGRUYWlsKGZvcm1Qcm9wKTtcclxuXHJcbiAgICAgICAgaWYgKGlzT25DcmVhdGVGb3JtKSBjb250cmlidXRvcnMuY3JlYXRlRm9ybVtrZXldLnB1c2goZm9ybUNvbnRyaWJ1dG9yKTtcclxuICAgICAgICBpZiAoaXNPbkVkaXRGb3JtKSBjb250cmlidXRvcnMuZWRpdEZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb250cmlidXRvcnM7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byk6IGVQcm9wVHlwZSB7XHJcbiAgcmV0dXJuIHByb3BlcnR5Py50eXBlU2ltcGxlPy5yZXBsYWNlKC9cXD8kLywgJycpIGFzIHN0cmluZyBhcyBlUHJvcFR5cGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xyXG59XHJcbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { NgbDatepickerModule, NgbDropdownModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule, } from '@ng-bootstrap/ng-bootstrap';\nimport { ExtensibleFormComponent, ExtensibleFormPropComponent, ExtensibleTableComponent, GridActionsComponent, PageToolbarComponent, ExtensibleDateTimePickerComponent, ExtensibleFormMultiselectComponent, } from './components';\nimport { PropDataDirective } from './directives/prop-data.directive';\nimport { CreateInjectorPipe } from './pipes/create-injector.pipe';\nimport { DisabledDirective } from '@abp/ng.theme.shared';\nimport * as i0 from \"@angular/core\";\nconst importWithExport = [\n DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent,\n];\nexport class ExtensibleModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule, DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent], exports: [DisabledDirective,\n ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n PropDataDirective,\n PageToolbarComponent,\n CreateInjectorPipe,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, imports: [CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule, ExtensibleDateTimePickerComponent,\n ExtensibleFormPropComponent,\n GridActionsComponent,\n ExtensibleFormComponent,\n ExtensibleTableComponent,\n ExtensibleFormMultiselectComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExtensibleModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [\n CoreModule,\n ThemeSharedModule,\n NgxValidateCoreModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbTimepickerModule,\n NgbTypeaheadModule,\n NgbTooltipModule,\n ...importWithExport,\n ],\n exports: [...importWithExport],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9leHRlbnNpYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsa0NBQWtDLEdBQ25DLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV6RCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLGlCQUFpQjtJQUNqQixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG9CQUFvQjtJQUNwQixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLGtDQUFrQztDQUNuQyxDQUFDO0FBaUJGLE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLFlBWnpCLFVBQVU7WUFDVixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixnQkFBZ0IsRUF0QmxCLGlCQUFpQjtZQUNqQixpQ0FBaUM7WUFDakMsMkJBQTJCO1lBQzNCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLGtDQUFrQyxhQVRsQyxpQkFBaUI7WUFDakIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixrQkFBa0I7WUFDbEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixrQ0FBa0M7K0dBa0J2QixnQkFBZ0IsWUFaekIsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQixFQXJCbEIsaUNBQWlDO1lBQ2pDLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFJcEIsdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixrQ0FBa0M7OzJGQWtCdkIsZ0JBQWdCO2tCQWY1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLEdBQUcsZ0JBQWdCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gIE5nYlRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiVG9vbHRpcE1vZHVsZSxcclxuICBOZ2JUeXBlYWhlYWRNb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIEV4dGVuc2libGVGb3JtQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCxcclxuICBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQsXHJcbiAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgUGFnZVRvb2xiYXJDb21wb25lbnQsXHJcbiAgRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgUHJvcERhdGFEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENyZWF0ZUluamVjdG9yUGlwZSB9IGZyb20gJy4vcGlwZXMvY3JlYXRlLWluamVjdG9yLnBpcGUnO1xyXG5pbXBvcnQgeyBEaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuXHJcbmNvbnN0IGltcG9ydFdpdGhFeHBvcnQgPSBbXHJcbiAgRGlzYWJsZWREaXJlY3RpdmUsXHJcbiAgRXh0ZW5zaWJsZURhdGVUaW1lUGlja2VyQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtUHJvcENvbXBvbmVudCxcclxuICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICBQcm9wRGF0YURpcmVjdGl2ZSxcclxuICBQYWdlVG9vbGJhckNvbXBvbmVudCxcclxuICBDcmVhdGVJbmplY3RvclBpcGUsXHJcbiAgRXh0ZW5zaWJsZUZvcm1Db21wb25lbnQsXHJcbiAgRXh0ZW5zaWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gIEV4dGVuc2libGVGb3JtTXVsdGlzZWxlY3RDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgTmdiVGltZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYlR5cGVhaGVhZE1vZHVsZSxcclxuICAgIE5nYlRvb2x0aXBNb2R1bGUsXHJcbiAgICAuLi5pbXBvcnRXaXRoRXhwb3J0LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogWy4uLmltcG9ydFdpdGhFeHBvcnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZU1vZHVsZSB7fVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvbXBvbmVudHMtZXh0ZW5zaWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvYWJwLW5nLmNvbXBvbmVudHMtZXh0ZW5zaWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":["i1","i2","debounceTime","distinctUntilChanged","map","filter"],"mappings":"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"}