@abp/ng.components 9.3.1 → 9.3.3
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/utils/linked-list.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==","/** @description This file is referenced from here npm/packs/utils/projects/utils/src/lib/linked-list.ts */\n/* eslint-disable prefer-spread */\n/* tslint:disable:no-non-null-assertion */\nimport compare from 'just-compare';\nexport class ListNode {\n constructor(value) {\n this.value = value;\n }\n}\nexport class LinkedList {\n constructor() {\n this.size = 0;\n }\n get head() {\n return this.first;\n }\n get tail() {\n return this.last;\n }\n get length() {\n return this.size;\n }\n attach(value, previousNode, nextNode) {\n if (!previousNode)\n return this.addHead(value);\n if (!nextNode)\n return this.addTail(value);\n const node = new ListNode(value);\n node.previous = previousNode;\n previousNode.next = node;\n node.next = nextNode;\n nextNode.previous = node;\n this.size++;\n return node;\n }\n attachMany(values, previousNode, nextNode) {\n if (!values.length)\n return [];\n if (!previousNode)\n return this.addManyHead(values);\n if (!nextNode)\n return this.addManyTail(values);\n const list = new LinkedList();\n list.addManyTail(values);\n list.first.previous = previousNode;\n previousNode.next = list.first;\n list.last.next = nextNode;\n nextNode.previous = list.last;\n this.size += values.length;\n return list.toNodeArray();\n }\n detach(node) {\n if (!node.previous)\n return this.dropHead();\n if (!node.next)\n return this.dropTail();\n node.previous.next = node.next;\n node.next.previous = node.previous;\n this.size--;\n return node;\n }\n add(value) {\n return {\n after: (...params) => this.addAfter.call(this, value, ...params),\n before: (...params) => this.addBefore.call(this, value, ...params),\n byIndex: (position) => this.addByIndex(value, position),\n head: () => this.addHead(value),\n tail: () => this.addTail(value),\n };\n }\n addMany(values) {\n return {\n after: (...params) => this.addManyAfter.call(this, values, ...params),\n before: (...params) => this.addManyBefore.call(this, values, ...params),\n byIndex: (position) => this.addManyByIndex(values, position),\n head: () => this.addManyHead(values),\n tail: () => this.addManyTail(values),\n };\n }\n addAfter(value, previousValue, compareFn = compare) {\n const previous = this.find(node => compareFn(node.value, previousValue));\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\n }\n addBefore(value, nextValue, compareFn = compare) {\n const next = this.find(node => compareFn(node.value, nextValue));\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\n }\n addByIndex(value, position) {\n if (position < 0)\n position += this.size;\n else if (position >= this.size)\n return this.addTail(value);\n if (position <= 0)\n return this.addHead(value);\n const next = this.get(position);\n return this.attach(value, next.previous, next);\n }\n addHead(value) {\n const node = new ListNode(value);\n node.next = this.first;\n if (this.first)\n this.first.previous = node;\n else\n this.last = node;\n this.first = node;\n this.size++;\n return node;\n }\n addTail(value) {\n const node = new ListNode(value);\n if (this.first) {\n node.previous = this.last;\n this.last.next = node;\n this.last = node;\n }\n else {\n this.first = node;\n this.last = node;\n }\n this.size++;\n return node;\n }\n addManyAfter(values, previousValue, compareFn = compare) {\n const previous = this.find(node => compareFn(node.value, previousValue));\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\n }\n addManyBefore(values, nextValue, compareFn = compare) {\n const next = this.find(node => compareFn(node.value, nextValue));\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\n }\n addManyByIndex(values, position) {\n if (position < 0)\n position += this.size;\n if (position <= 0)\n return this.addManyHead(values);\n if (position >= this.size)\n return this.addManyTail(values);\n const next = this.get(position);\n return this.attachMany(values, next.previous, next);\n }\n addManyHead(values) {\n return values.reduceRight((nodes, value) => {\n nodes.unshift(this.addHead(value));\n return nodes;\n }, []);\n }\n addManyTail(values) {\n return values.map(value => this.addTail(value));\n }\n drop() {\n return {\n byIndex: (position) => this.dropByIndex(position),\n byValue: (...params) => this.dropByValue.apply(this, params),\n byValueAll: (...params) => this.dropByValueAll.apply(this, params),\n head: () => this.dropHead(),\n tail: () => this.dropTail(),\n };\n }\n dropMany(count) {\n return {\n byIndex: (position) => this.dropManyByIndex(count, position),\n head: () => this.dropManyHead(count),\n tail: () => this.dropManyTail(count),\n };\n }\n dropByIndex(position) {\n if (position < 0)\n position += this.size;\n const current = this.get(position);\n return current ? this.detach(current) : undefined;\n }\n dropByValue(value, compareFn = compare) {\n const position = this.findIndex(node => compareFn(node.value, value));\n return position < 0 ? undefined : this.dropByIndex(position);\n }\n dropByValueAll(value, compareFn = compare) {\n const dropped = [];\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (compareFn(current.value, value)) {\n dropped.push(this.dropByIndex(position - dropped.length));\n }\n }\n return dropped;\n }\n dropHead() {\n const head = this.first;\n if (head) {\n this.first = head.next;\n if (this.first)\n this.first.previous = undefined;\n else\n this.last = undefined;\n this.size--;\n return head;\n }\n return undefined;\n }\n dropTail() {\n const tail = this.last;\n if (tail) {\n this.last = tail.previous;\n if (this.last)\n this.last.next = undefined;\n else\n this.first = undefined;\n this.size--;\n return tail;\n }\n return undefined;\n }\n dropManyByIndex(count, position) {\n if (count <= 0)\n return [];\n if (position < 0)\n position = Math.max(position + this.size, 0);\n else if (position >= this.size)\n return [];\n count = Math.min(count, this.size - position);\n const dropped = [];\n while (count--) {\n const current = this.get(position);\n dropped.push(this.detach(current));\n }\n return dropped;\n }\n dropManyHead(count) {\n if (count <= 0)\n return [];\n count = Math.min(count, this.size);\n const dropped = [];\n while (count--)\n dropped.unshift(this.dropHead());\n return dropped;\n }\n dropManyTail(count) {\n if (count <= 0)\n return [];\n count = Math.min(count, this.size);\n const dropped = [];\n while (count--)\n dropped.push(this.dropTail());\n return dropped;\n }\n find(predicate) {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this))\n return current;\n }\n return undefined;\n }\n findIndex(predicate) {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this))\n return position;\n }\n return -1;\n }\n forEach(iteratorFn) {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n iteratorFn(node, position, this);\n }\n }\n get(position) {\n return this.find((_, index) => position === index);\n }\n indexOf(value, compareFn = compare) {\n return this.findIndex(node => compareFn(node.value, value));\n }\n toArray() {\n const array = new Array(this.size);\n this.forEach((node, index) => (array[index] = node.value));\n return array;\n }\n toNodeArray() {\n const array = new Array(this.size);\n this.forEach((node, index) => (array[index] = node));\n return array;\n }\n toString(mapperFn = JSON.stringify) {\n return this.toArray()\n .map(value => mapperFn(value))\n .join(' <-> ');\n }\n // Cannot use Generator type because of ng-packagr\n *[Symbol.iterator]() {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n yield node.value;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi91dGlscy9saW5rZWQtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyR0FBMkc7QUFFM0csa0NBQWtDO0FBQ2xDLDBDQUEwQztBQUUxQyxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFbkMsTUFBTSxPQUFPLFFBQVE7SUFHbkIsWUFBNEIsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7SUFBRyxDQUFDO0NBQ3pDO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFHVSxTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBK1huQixDQUFDO0lBN1hDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVPLE1BQU0sQ0FDWixLQUFRLEVBQ1IsWUFBcUMsRUFDckMsUUFBaUM7UUFFakMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsUUFBUSxDQUFD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LENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQixLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3RSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZGVzY3JpcHRpb24gVGhpcyBmaWxlIGlzIHJlZmVyZW5jZWQgZnJvbSBoZXJlIG5wbS9wYWNrcy91dGlscy9wcm9qZWN0cy91dGlscy9zcmMvbGliL2xpbmtlZC1saXN0LnRzICovXHJcblxyXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItc3ByZWFkICovXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xyXG5cclxuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMaXN0Tm9kZTxUID0gYW55PiB7XHJcbiAgbmV4dDogTGlzdE5vZGUgfCB1bmRlZmluZWQ7XHJcbiAgcHJldmlvdXM6IExpc3ROb2RlIHwgdW5kZWZpbmVkO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExpbmtlZExpc3Q8VCA9IGFueT4ge1xyXG4gIHByaXZhdGUgZmlyc3Q6IExpc3ROb2RlPFQ+IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgbGFzdDogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBzaXplID0gMDtcclxuXHJcbiAgZ2V0IGhlYWQoKTogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlyc3Q7XHJcbiAgfVxyXG4gIGdldCB0YWlsKCk6IExpc3ROb2RlPFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmxhc3Q7XHJcbiAgfVxyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnNpemU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGF0dGFjaChcclxuICAgIHZhbHVlOiBULFxyXG4gICAgcHJldmlvdXNOb2RlOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZCxcclxuICAgIG5leHROb2RlOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZCxcclxuICApOiBMaXN0Tm9kZTxUPiB7XHJcbiAgICBpZiAoIXByZXZpb3VzTm9kZSkgcmV0dXJuIHRoaXMuYWRkSGVhZCh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKCFuZXh0Tm9kZSkgcmV0dXJuIHRoaXMuYWRkVGFpbCh2YWx1ZSk7XHJcblxyXG4gICAgY29uc3Qgbm9kZSA9IG5ldyBMaXN0Tm9kZSh2YWx1ZSk7XHJcbiAgICBub2RlLnByZXZpb3VzID0gcHJldmlvdXNOb2RlO1xyXG4gICAgcHJldmlvdXNOb2RlLm5leHQgPSBub2RlO1xyXG4gICAgbm9kZS5uZXh0ID0gbmV4dE5vZGU7XHJcbiAgICBuZXh0Tm9kZS5wcmV2aW91cyA9IG5vZGU7XHJcblxyXG4gICAgdGhpcy5zaXplKys7XHJcblxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGF0dGFjaE1hbnkoXHJcbiAgICB2YWx1ZXM6IFRbXSxcclxuICAgIHByZXZpb3VzTm9kZTogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQsXHJcbiAgICBuZXh0Tm9kZTogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQsXHJcbiAgKTogTGlzdE5vZGU8VD5bXSB7XHJcbiAgICBpZiAoIXZhbHVlcy5sZW5ndGgpIHJldHVybiBbXTtcclxuXHJcbiAgICBpZiAoIXByZXZpb3VzTm9kZSkgcmV0dXJuIHRoaXMuYWRkTWFueUhlYWQodmFsdWVzKTtcclxuXHJcbiAgICBpZiAoIW5leHROb2RlKSByZXR1cm4gdGhpcy5hZGRNYW55VGFpbCh2YWx1ZXMpO1xyXG5cclxuICAgIGNvbnN0IGxpc3QgPSBuZXcgTGlua2VkTGlzdDxUPigpO1xyXG4gICAgbGlzdC5hZGRNYW55VGFpbCh2YWx1ZXMpO1xyXG4gICAgbGlzdC5maXJzdCEucHJldmlvdXMgPSBwcmV2aW91c05vZGU7XHJcbiAgICBwcmV2aW91c05vZGUubmV4dCA9IGxpc3QuZmlyc3Q7XHJcbiAgICBsaXN0Lmxhc3QhLm5leHQgPSBuZXh0Tm9kZTtcclxuICAgIG5leHROb2RlLnByZXZpb3VzID0gbGlzdC5sYXN0O1xyXG5cclxuICAgIHRoaXMuc2l6ZSArPSB2YWx1ZXMubGVuZ3RoO1xyXG5cclxuICAgIHJldHVybiBsaXN0LnRvTm9kZUFycmF5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRldGFjaChub2RlOiBMaXN0Tm9kZTxUPikge1xyXG4gICAgaWYgKCFub2RlLnByZXZpb3VzKSByZXR1cm4gdGhpcy5kcm9wSGVhZCgpO1xyXG5cclxuICAgIGlmICghbm9kZS5uZXh0KSByZXR1cm4gdGhpcy5kcm9wVGFpbCgpO1xyXG5cclxuICAgIG5vZGUucHJldmlvdXMubmV4dCA9IG5vZGUubmV4dDtcclxuICAgIG5vZGUubmV4dC5wcmV2aW91cyA9IG5vZGUucHJldmlvdXM7XHJcblxyXG4gICAgdGhpcy5zaXplLS07XHJcblxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBhZGQodmFsdWU6IFQpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFmdGVyOiAoLi4ucGFyYW1zOiBbVF0gfCBbYW55LCBMaXN0Q29tcGFyaXNvbkZuPFQ+XSkgPT5cclxuICAgICAgICB0aGlzLmFkZEFmdGVyLmNhbGwodGhpcywgdmFsdWUsIC4uLnBhcmFtcyksXHJcbiAgICAgIGJlZm9yZTogKC4uLnBhcmFtczogW1RdIHwgW2FueSwgTGlzdENvbXBhcmlzb25GbjxUPl0pID0+XHJcbiAgICAgICAgdGhpcy5hZGRCZWZvcmUuY2FsbCh0aGlzLCB2YWx1ZSwgLi4ucGFyYW1zKSxcclxuICAgICAgYnlJbmRleDogKHBvc2l0aW9uOiBudW1iZXIpID0+IHRoaXMuYWRkQnlJbmRleCh2YWx1ZSwgcG9zaXRpb24pLFxyXG4gICAgICBoZWFkOiAoKSA9PiB0aGlzLmFkZEhlYWQodmFsdWUpLFxyXG4gICAgICB0YWlsOiAoKSA9PiB0aGlzLmFkZFRhaWwodmFsdWUpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGFkZE1hbnkodmFsdWVzOiBUW10pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFmdGVyOiAoLi4ucGFyYW1zOiBbVF0gfCBbYW55LCBMaXN0Q29tcGFyaXNvbkZuPFQ+XSkgPT5cclxuICAgICAgICB0aGlzLmFkZE1hbnlBZnRlci5jYWxsKHRoaXMsIHZhbHVlcywgLi4ucGFyYW1zKSxcclxuICAgICAgYmVmb3JlOiAoLi4ucGFyYW1zOiBbVF0gfCBbYW55LCBMaXN0Q29tcGFyaXNvbkZuPFQ+XSkgPT5cclxuICAgICAgICB0aGlzLmFkZE1hbnlCZWZvcmUuY2FsbCh0aGlzLCB2YWx1ZXMsIC4uLnBhcmFtcyksXHJcbiAgICAgIGJ5SW5kZXg6IChwb3NpdGlvbjogbnVtYmVyKSA9PiB0aGlzLmFkZE1hbnlCeUluZGV4KHZhbHVlcywgcG9zaXRpb24pLFxyXG4gICAgICBoZWFkOiAoKSA9PiB0aGlzLmFkZE1hbnlIZWFkKHZhbHVlcyksXHJcbiAgICAgIHRhaWw6ICgpID0+IHRoaXMuYWRkTWFueVRhaWwodmFsdWVzKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhZGRBZnRlcih2YWx1ZTogVCwgcHJldmlvdXNWYWx1ZTogVCk6IExpc3ROb2RlPFQ+O1xyXG4gIGFkZEFmdGVyKHZhbHVlOiBULCBwcmV2aW91c1ZhbHVlOiBhbnksIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPik6IExpc3ROb2RlPFQ+O1xyXG4gIGFkZEFmdGVyKHZhbHVlOiBULCBwcmV2aW91c1ZhbHVlOiBhbnksIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPiA9IGNvbXBhcmUpOiBMaXN0Tm9kZTxUPiB7XHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuZmluZChub2RlID0+IGNvbXBhcmVGbihub2RlLnZhbHVlLCBwcmV2aW91c1ZhbHVlKSk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzID8gdGhpcy5hdHRhY2godmFsdWUsIHByZXZpb3VzLCBwcmV2aW91cy5uZXh0KSA6IHRoaXMuYWRkVGFpbCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBhZGRCZWZvcmUodmFsdWU6IFQsIG5leHRWYWx1ZTogVCk6IExpc3ROb2RlPFQ+O1xyXG4gIGFkZEJlZm9yZSh2YWx1ZTogVCwgbmV4dFZhbHVlOiBhbnksIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPik6IExpc3ROb2RlPFQ+O1xyXG4gIGFkZEJlZm9yZSh2YWx1ZTogVCwgbmV4dFZhbHVlOiBhbnksIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPiA9IGNvbXBhcmUpOiBMaXN0Tm9kZTxUPiB7XHJcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5maW5kKG5vZGUgPT4gY29tcGFyZUZuKG5vZGUudmFsdWUsIG5leHRWYWx1ZSkpO1xyXG5cclxuICAgIHJldHVybiBuZXh0ID8gdGhpcy5hdHRhY2godmFsdWUsIG5leHQucHJldmlvdXMsIG5leHQpIDogdGhpcy5hZGRIZWFkKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGFkZEJ5SW5kZXgodmFsdWU6IFQsIHBvc2l0aW9uOiBudW1iZXIpOiBMaXN0Tm9kZTxUPiB7XHJcbiAgICBpZiAocG9zaXRpb24gPCAwKSBwb3NpdGlvbiArPSB0aGlzLnNpemU7XHJcbiAgICBlbHNlIGlmIChwb3NpdGlvbiA+PSB0aGlzLnNpemUpIHJldHVybiB0aGlzLmFkZFRhaWwodmFsdWUpO1xyXG5cclxuICAgIGlmIChwb3NpdGlvbiA8PSAwKSByZXR1cm4gdGhpcy5hZGRIZWFkKHZhbHVlKTtcclxuXHJcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5nZXQocG9zaXRpb24pITtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5hdHRhY2godmFsdWUsIG5leHQucHJldmlvdXMsIG5leHQpO1xyXG4gIH1cclxuXHJcbiAgYWRkSGVhZCh2YWx1ZTogVCk6IExpc3ROb2RlPFQ+IHtcclxuICAgIGNvbnN0IG5vZGUgPSBuZXcgTGlzdE5vZGUodmFsdWUpO1xyXG5cclxuICAgIG5vZGUubmV4dCA9IHRoaXMuZmlyc3Q7XHJcblxyXG4gICAgaWYgKHRoaXMuZmlyc3QpIHRoaXMuZmlyc3QucHJldmlvdXMgPSBub2RlO1xyXG4gICAgZWxzZSB0aGlzLmxhc3QgPSBub2RlO1xyXG5cclxuICAgIHRoaXMuZmlyc3QgPSBub2RlO1xyXG4gICAgdGhpcy5zaXplKys7XHJcblxyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBhZGRUYWlsKHZhbHVlOiBUKTogTGlzdE5vZGU8VD4ge1xyXG4gICAgY29uc3Qgbm9kZSA9IG5ldyBMaXN0Tm9kZSh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZmlyc3QpIHtcclxuICAgICAgbm9kZS5wcmV2aW91cyA9IHRoaXMubGFzdDtcclxuICAgICAgdGhpcy5sYXN0IS5uZXh0ID0gbm9kZTtcclxuICAgICAgdGhpcy5sYXN0ID0gbm9kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlyc3QgPSBub2RlO1xyXG4gICAgICB0aGlzLmxhc3QgPSBub2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2l6ZSsrO1xyXG5cclxuICAgIHJldHVybiBub2RlO1xyXG4gIH1cclxuXHJcbiAgYWRkTWFueUFmdGVyKHZhbHVlczogVFtdLCBwcmV2aW91c1ZhbHVlOiBUKTogTGlzdE5vZGU8VD5bXTtcclxuICBhZGRNYW55QWZ0ZXIodmFsdWVzOiBUW10sIHByZXZpb3VzVmFsdWU6IGFueSwgY29tcGFyZUZuOiBMaXN0Q29tcGFyaXNvbkZuPFQ+KTogTGlzdE5vZGU8VD5bXTtcclxuICBhZGRNYW55QWZ0ZXIoXHJcbiAgICB2YWx1ZXM6IFRbXSxcclxuICAgIHByZXZpb3VzVmFsdWU6IGFueSxcclxuICAgIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPiA9IGNvbXBhcmUsXHJcbiAgKTogTGlzdE5vZGU8VD5bXSB7XHJcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuZmluZChub2RlID0+IGNvbXBhcmVGbihub2RlLnZhbHVlLCBwcmV2aW91c1ZhbHVlKSk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzID8gdGhpcy5hdHRhY2hNYW55KHZhbHVlcywgcHJldmlvdXMsIHByZXZpb3VzLm5leHQpIDogdGhpcy5hZGRNYW55VGFpbCh2YWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgYWRkTWFueUJlZm9yZSh2YWx1ZXM6IFRbXSwgbmV4dFZhbHVlOiBUKTogTGlzdE5vZGU8VD5bXTtcclxuICBhZGRNYW55QmVmb3JlKHZhbHVlczogVFtdLCBuZXh0VmFsdWU6IGFueSwgY29tcGFyZUZuOiBMaXN0Q29tcGFyaXNvbkZuPFQ+KTogTGlzdE5vZGU8VD5bXTtcclxuICBhZGRNYW55QmVmb3JlKFxyXG4gICAgdmFsdWVzOiBUW10sXHJcbiAgICBuZXh0VmFsdWU6IGFueSxcclxuICAgIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPiA9IGNvbXBhcmUsXHJcbiAgKTogTGlzdE5vZGU8VD5bXSB7XHJcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5maW5kKG5vZGUgPT4gY29tcGFyZUZuKG5vZGUudmFsdWUsIG5leHRWYWx1ZSkpO1xyXG5cclxuICAgIHJldHVybiBuZXh0ID8gdGhpcy5hdHRhY2hNYW55KHZhbHVlcywgbmV4dC5wcmV2aW91cywgbmV4dCkgOiB0aGlzLmFkZE1hbnlIZWFkKHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBhZGRNYW55QnlJbmRleCh2YWx1ZXM6IFRbXSwgcG9zaXRpb246IG51bWJlcik6IExpc3ROb2RlPFQ+W10ge1xyXG4gICAgaWYgKHBvc2l0aW9uIDwgMCkgcG9zaXRpb24gKz0gdGhpcy5zaXplO1xyXG5cclxuICAgIGlmIChwb3NpdGlvbiA8PSAwKSByZXR1cm4gdGhpcy5hZGRNYW55SGVhZCh2YWx1ZXMpO1xyXG5cclxuICAgIGlmIChwb3NpdGlvbiA+PSB0aGlzLnNpemUpIHJldHVybiB0aGlzLmFkZE1hbnlUYWlsKHZhbHVlcyk7XHJcblxyXG4gICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0KHBvc2l0aW9uKSE7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoTWFueSh2YWx1ZXMsIG5leHQucHJldmlvdXMsIG5leHQpO1xyXG4gIH1cclxuXHJcbiAgYWRkTWFueUhlYWQodmFsdWVzOiBUW10pOiBMaXN0Tm9kZTxUPltdIHtcclxuICAgIHJldHVybiB2YWx1ZXMucmVkdWNlUmlnaHQ8TGlzdE5vZGU8VD5bXT4oKG5vZGVzLCB2YWx1ZSkgPT4ge1xyXG4gICAgICBub2Rlcy51bnNoaWZ0KHRoaXMuYWRkSGVhZCh2YWx1ZSkpO1xyXG4gICAgICByZXR1cm4gbm9kZXM7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBhZGRNYW55VGFpbCh2YWx1ZXM6IFRbXSk6IExpc3ROb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIHZhbHVlcy5tYXAodmFsdWUgPT4gdGhpcy5hZGRUYWlsKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBkcm9wKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnlJbmRleDogKHBvc2l0aW9uOiBudW1iZXIpID0+IHRoaXMuZHJvcEJ5SW5kZXgocG9zaXRpb24pLFxyXG4gICAgICBieVZhbHVlOiAoLi4ucGFyYW1zOiBbVF0gfCBbYW55LCBMaXN0Q29tcGFyaXNvbkZuPFQ+XSkgPT5cclxuICAgICAgICB0aGlzLmRyb3BCeVZhbHVlLmFwcGx5KHRoaXMsIHBhcmFtcyksXHJcbiAgICAgIGJ5VmFsdWVBbGw6ICguLi5wYXJhbXM6IFtUXSB8IFthbnksIExpc3RDb21wYXJpc29uRm48VD5dKSA9PlxyXG4gICAgICAgIHRoaXMuZHJvcEJ5VmFsdWVBbGwuYXBwbHkodGhpcywgcGFyYW1zKSxcclxuICAgICAgaGVhZDogKCkgPT4gdGhpcy5kcm9wSGVhZCgpLFxyXG4gICAgICB0YWlsOiAoKSA9PiB0aGlzLmRyb3BUYWlsKCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZHJvcE1hbnkoY291bnQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYnlJbmRleDogKHBvc2l0aW9uOiBudW1iZXIpID0+IHRoaXMuZHJvcE1hbnlCeUluZGV4KGNvdW50LCBwb3NpdGlvbiksXHJcbiAgICAgIGhlYWQ6ICgpID0+IHRoaXMuZHJvcE1hbnlIZWFkKGNvdW50KSxcclxuICAgICAgdGFpbDogKCkgPT4gdGhpcy5kcm9wTWFueVRhaWwoY291bnQpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGRyb3BCeUluZGV4KHBvc2l0aW9uOiBudW1iZXIpOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAocG9zaXRpb24gPCAwKSBwb3NpdGlvbiArPSB0aGlzLnNpemU7XHJcblxyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0KHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gY3VycmVudCA/IHRoaXMuZGV0YWNoKGN1cnJlbnQpIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZHJvcEJ5VmFsdWUodmFsdWU6IFQpOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZDtcclxuICBkcm9wQnlWYWx1ZSh2YWx1ZTogYW55LCBjb21wYXJlRm46IExpc3RDb21wYXJpc29uRm48VD4pOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZDtcclxuICBkcm9wQnlWYWx1ZSh2YWx1ZTogYW55LCBjb21wYXJlRm46IExpc3RDb21wYXJpc29uRm48VD4gPSBjb21wYXJlKTogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmZpbmRJbmRleChub2RlID0+IGNvbXBhcmVGbihub2RlLnZhbHVlLCB2YWx1ZSkpO1xyXG5cclxuICAgIHJldHVybiBwb3NpdGlvbiA8IDAgPyB1bmRlZmluZWQgOiB0aGlzLmRyb3BCeUluZGV4KHBvc2l0aW9uKTtcclxuICB9XHJcblxyXG4gIGRyb3BCeVZhbHVlQWxsKHZhbHVlOiBUKTogTGlzdE5vZGU8VD5bXTtcclxuICBkcm9wQnlWYWx1ZUFsbCh2YWx1ZTogYW55LCBjb21wYXJlRm46IExpc3RDb21wYXJpc29uRm48VD4pOiBMaXN0Tm9kZTxUPltdO1xyXG4gIGRyb3BCeVZhbHVlQWxsKHZhbHVlOiBhbnksIGNvbXBhcmVGbjogTGlzdENvbXBhcmlzb25GbjxUPiA9IGNvbXBhcmUpOiBMaXN0Tm9kZTxUPltdIHtcclxuICAgIGNvbnN0IGRyb3BwZWQ6IExpc3ROb2RlPFQ+W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBjdXJyZW50ID0gdGhpcy5maXJzdCwgcG9zaXRpb24gPSAwOyBjdXJyZW50OyBwb3NpdGlvbisrLCBjdXJyZW50ID0gY3VycmVudC5uZXh0KSB7XHJcbiAgICAgIGlmIChjb21wYXJlRm4oY3VycmVudC52YWx1ZSwgdmFsdWUpKSB7XHJcbiAgICAgICAgZHJvcHBlZC5wdXNoKHRoaXMuZHJvcEJ5SW5kZXgocG9zaXRpb24gLSBkcm9wcGVkLmxlbmd0aCkhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkcm9wcGVkO1xyXG4gIH1cclxuXHJcbiAgZHJvcEhlYWQoKTogTGlzdE5vZGU8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgaGVhZCA9IHRoaXMuZmlyc3Q7XHJcblxyXG4gICAgaWYgKGhlYWQpIHtcclxuICAgICAgdGhpcy5maXJzdCA9IGhlYWQubmV4dDtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZpcnN0KSB0aGlzLmZpcnN0LnByZXZpb3VzID0gdW5kZWZpbmVkO1xyXG4gICAgICBlbHNlIHRoaXMubGFzdCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIHRoaXMuc2l6ZS0tO1xyXG5cclxuICAgICAgcmV0dXJuIGhlYWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGRyb3BUYWlsKCk6IExpc3ROb2RlPFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHRhaWwgPSB0aGlzLmxhc3Q7XHJcblxyXG4gICAgaWYgKHRhaWwpIHtcclxuICAgICAgdGhpcy5sYXN0ID0gdGFpbC5wcmV2aW91cztcclxuXHJcbiAgICAgIGlmICh0aGlzLmxhc3QpIHRoaXMubGFzdC5uZXh0ID0gdW5kZWZpbmVkO1xyXG4gICAgICBlbHNlIHRoaXMuZmlyc3QgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICB0aGlzLnNpemUtLTtcclxuXHJcbiAgICAgIHJldHVybiB0YWlsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBkcm9wTWFueUJ5SW5kZXgoY291bnQ6IG51bWJlciwgcG9zaXRpb246IG51bWJlcik6IExpc3ROb2RlPFQ+W10ge1xyXG4gICAgaWYgKGNvdW50IDw9IDApIHJldHVybiBbXTtcclxuXHJcbiAgICBpZiAocG9zaXRpb24gPCAwKSBwb3NpdGlvbiA9IE1hdGgubWF4KHBvc2l0aW9uICsgdGhpcy5zaXplLCAwKTtcclxuICAgIGVsc2UgaWYgKHBvc2l0aW9uID49IHRoaXMuc2l6ZSkgcmV0dXJuIFtdO1xyXG5cclxuICAgIGNvdW50ID0gTWF0aC5taW4oY291bnQsIHRoaXMuc2l6ZSAtIHBvc2l0aW9uKTtcclxuXHJcbiAgICBjb25zdCBkcm9wcGVkOiBMaXN0Tm9kZTxUPltdID0gW107XHJcblxyXG4gICAgd2hpbGUgKGNvdW50LS0pIHtcclxuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0KHBvc2l0aW9uKTtcclxuICAgICAgZHJvcHBlZC5wdXNoKHRoaXMuZGV0YWNoKGN1cnJlbnQhKSEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkcm9wcGVkO1xyXG4gIH1cclxuXHJcbiAgZHJvcE1hbnlIZWFkKGNvdW50OiBFeGNsdWRlPG51bWJlciwgMD4pOiBMaXN0Tm9kZTxUPltdIHtcclxuICAgIGlmIChjb3VudCA8PSAwKSByZXR1cm4gW107XHJcblxyXG4gICAgY291bnQgPSBNYXRoLm1pbihjb3VudCwgdGhpcy5zaXplKTtcclxuXHJcbiAgICBjb25zdCBkcm9wcGVkOiBMaXN0Tm9kZTxUPltdID0gW107XHJcblxyXG4gICAgd2hpbGUgKGNvdW50LS0pIGRyb3BwZWQudW5zaGlmdCh0aGlzLmRyb3BIZWFkKCkhKTtcclxuXHJcbiAgICByZXR1cm4gZHJvcHBlZDtcclxuICB9XHJcblxyXG4gIGRyb3BNYW55VGFpbChjb3VudDogRXhjbHVkZTxudW1iZXIsIDA+KTogTGlzdE5vZGU8VD5bXSB7XHJcbiAgICBpZiAoY291bnQgPD0gMCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIGNvdW50ID0gTWF0aC5taW4oY291bnQsIHRoaXMuc2l6ZSk7XHJcblxyXG4gICAgY29uc3QgZHJvcHBlZDogTGlzdE5vZGU8VD5bXSA9IFtdO1xyXG5cclxuICAgIHdoaWxlIChjb3VudC0tKSBkcm9wcGVkLnB1c2godGhpcy5kcm9wVGFpbCgpISk7XHJcblxyXG4gICAgcmV0dXJuIGRyb3BwZWQ7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogTGlzdEl0ZXJhdG9yRm48VD4pOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZCB7XHJcbiAgICBmb3IgKGxldCBjdXJyZW50ID0gdGhpcy5maXJzdCwgcG9zaXRpb24gPSAwOyBjdXJyZW50OyBwb3NpdGlvbisrLCBjdXJyZW50ID0gY3VycmVudC5uZXh0KSB7XHJcbiAgICAgIGlmIChwcmVkaWNhdGUoY3VycmVudCwgcG9zaXRpb24sIHRoaXMpKSByZXR1cm4gY3VycmVudDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZmluZEluZGV4KHByZWRpY2F0ZTogTGlzdEl0ZXJhdG9yRm48VD4pOiBudW1iZXIge1xyXG4gICAgZm9yIChsZXQgY3VycmVudCA9IHRoaXMuZmlyc3QsIHBvc2l0aW9uID0gMDsgY3VycmVudDsgcG9zaXRpb24rKywgY3VycmVudCA9IGN1cnJlbnQubmV4dCkge1xyXG4gICAgICBpZiAocHJlZGljYXRlKGN1cnJlbnQsIHBvc2l0aW9uLCB0aGlzKSkgcmV0dXJuIHBvc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAtMTtcclxuICB9XHJcblxyXG4gIGZvckVhY2g8UiA9IGJvb2xlYW4+KGl0ZXJhdG9yRm46IExpc3RJdGVyYXRvckZuPFQsIFI+KSB7XHJcbiAgICBmb3IgKGxldCBub2RlID0gdGhpcy5maXJzdCwgcG9zaXRpb24gPSAwOyBub2RlOyBwb3NpdGlvbisrLCBub2RlID0gbm9kZS5uZXh0KSB7XHJcbiAgICAgIGl0ZXJhdG9yRm4obm9kZSwgcG9zaXRpb24sIHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0KHBvc2l0aW9uOiBudW1iZXIpOiBMaXN0Tm9kZTxUPiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kKChfLCBpbmRleCkgPT4gcG9zaXRpb24gPT09IGluZGV4KTtcclxuICB9XHJcblxyXG4gIGluZGV4T2YodmFsdWU6IFQpOiBudW1iZXI7XHJcbiAgaW5kZXhPZih2YWx1ZTogYW55LCBjb21wYXJlRm46IExpc3RDb21wYXJpc29uRm48VD4pOiBudW1iZXI7XHJcbiAgaW5kZXhPZih2YWx1ZTogYW55LCBjb21wYXJlRm46IExpc3RDb21wYXJpc29uRm48VD4gPSBjb21wYXJlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZpbmRJbmRleChub2RlID0+IGNvbXBhcmVGbihub2RlLnZhbHVlLCB2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgdG9BcnJheSgpOiBUW10ge1xyXG4gICAgY29uc3QgYXJyYXkgPSBuZXcgQXJyYXkodGhpcy5zaXplKTtcclxuXHJcbiAgICB0aGlzLmZvckVhY2goKG5vZGUsIGluZGV4KSA9PiAoYXJyYXlbaW5kZXghXSA9IG5vZGUudmFsdWUpKTtcclxuXHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICB0b05vZGVBcnJheSgpOiBMaXN0Tm9kZTxUPltdIHtcclxuICAgIGNvbnN0IGFycmF5ID0gbmV3IEFycmF5KHRoaXMuc2l6ZSk7XHJcblxyXG4gICAgdGhpcy5mb3JFYWNoKChub2RlLCBpbmRleCkgPT4gKGFycmF5W2luZGV4IV0gPSBub2RlKSk7XHJcblxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgdG9TdHJpbmcobWFwcGVyRm46IExpc3RNYXBwZXJGbjxUPiA9IEpTT04uc3RyaW5naWZ5KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRvQXJyYXkoKVxyXG4gICAgICAubWFwKHZhbHVlID0+IG1hcHBlckZuKHZhbHVlKSlcclxuICAgICAgLmpvaW4oJyA8LT4gJyk7XHJcbiAgfVxyXG5cclxuICAvLyBDYW5ub3QgdXNlIEdlbmVyYXRvciB0eXBlIGJlY2F1c2Ugb2YgbmctcGFja2FnclxyXG4gICpbU3ltYm9sLml0ZXJhdG9yXSgpOiBhbnkge1xyXG4gICAgZm9yIChsZXQgbm9kZSA9IHRoaXMuZmlyc3QsIHBvc2l0aW9uID0gMDsgbm9kZTsgcG9zaXRpb24rKywgbm9kZSA9IG5vZGUubmV4dCkge1xyXG4gICAgICB5aWVsZCBub2RlLnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGlzdE1hcHBlckZuPFQgPSBhbnk+ID0gKHZhbHVlOiBUKSA9PiBhbnk7XHJcblxyXG5leHBvcnQgdHlwZSBMaXN0Q29tcGFyaXNvbkZuPFQgPSBhbnk+ID0gKHZhbHVlMTogVCwgdmFsdWUyOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG5leHBvcnQgdHlwZSBMaXN0SXRlcmF0b3JGbjxUID0gYW55LCBSID0gYm9vbGVhbj4gPSAoXHJcbiAgbm9kZTogTGlzdE5vZGU8VD4sXHJcbiAgaW5kZXg/OiBudW1iZXIsXHJcbiAgbGlzdD86IExpbmtlZExpc3QsXHJcbikgPT4gUjtcclxuIl19","import { LinkedList } from '../utils/linked-list';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9tb2RlbHMvcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSWxELE1BQU0sT0FBZ0IsUUFBK0IsU0FBUSxVQUFhO0NBQUc7QUFFN0UsTUFBTSxPQUFnQixRQUFRO0lBUzVCLElBQUksSUFBSTtRQUNOLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBSUQsTUFBTSxPQUFnQixJQUFJO0lBQ3hCLFlBQ2tCLElBQWUsRUFDZixJQUFZLEVBQ1osV0FBbUIsRUFDbkIsVUFBa0IsRUFDbEIsVUFBNEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQ3JDLFVBQVUsS0FBSyxFQUNmLFFBQW9CLEVBQ3BCLFNBQWtCLEVBQ2xCLFFBQWlCLEVBQ2pCLE9BQXlCLEVBQ3pCLG1CQUFnRDtRQVZoRCxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ3pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7UUFFaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFnQixZQUFZO0lBQWxDO1FBRVUseUJBQW9CLEdBQWtELEVBQUUsQ0FBQztJQU9uRixDQUFDO0lBTEMsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4RSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLEtBQUs7SUFHekIsSUFBSSxLQUFLO1FBQ1AsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUUxRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBNkIsWUFBMEM7UUFBMUMsaUJBQVksR0FBWixZQUFZLENBQThCO0lBQUcsQ0FBQztJQUUzRSxjQUFjLENBQUMsa0JBQThDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0T3B0aW9ucywgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaW5rZWRMaXN0IH0gZnJvbSAnLi4vdXRpbHMvbGlua2VkLWxpc3QnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRm9ybVByb3BUb29sdGlwIH0gZnJvbSAnLi9mb3JtLXByb3BzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcm9wTGlzdDxSID0gYW55LCBBID0gUHJvcDxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+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 '../utils/linked-list';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL21vZGVscy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE9BQWdCLFVBQW1DLFNBQVEsVUFBYTtDQUFHO0FBRWpGLE1BQU0sT0FBZ0IsVUFBVTtJQVM5QixJQUFJLElBQUk7UUFDTixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUlELE1BQU0sT0FBZ0IsTUFBTTtJQUMxQixZQUNrQixVQUFrQixFQUNsQixVQUE4QixHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQ3hDLFNBQTRCLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFDcEMsUUFBaUIsRUFDakIsUUFBaUI7UUFKakIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFpQztRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUE4QjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVM7SUFDaEMsQ0FBQztDQUNMO0FBS0QsTUFBTSxPQUFnQixjQUFjO0lBQXBDO1FBRVUseUJBQW9CLEdBQXNELEVBQUUsQ0FBQztJQU92RixDQUFDO0lBTEMsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4RSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLE9BQU87SUFHM0IsSUFBSSxPQUFPO1FBQ1QsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUU1RCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBNkIsWUFBNEM7UUFBNUMsaUJBQVksR0FBWixZQUFZLENBQWdDO0lBQUcsQ0FBQztJQUU3RSxjQUFjLENBQUMsa0JBQWdEO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0T3B0aW9ucywgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaW5rZWRMaXN0IH0gZnJvbSAnLi4vdXRpbHMvbGlua2VkLWxpc3QnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkxpc3Q8UiA9IGFueSwgQSA9IEFjdGlvbjxSPj4gZXh0ZW5kcyBMaW5rZWRMaXN0PEE+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxp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QkFDM0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3FCQUNGOzhCQVVELFNBQVM7c0JBRFIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBSXJDLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCwgR3JvdXBlZEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcm9wRGF0YURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVGb3JtJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb3BEYXRhRGlyZWN0aXZlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybUNvbXBvbmVudDxSID0gYW55PiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhY2sgPSBpbmplY3QoVHJhY2tCeVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXh0ZW5zaW9ucyA9IGluamVjdChFeHRlbnNpb25zU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpZGVudGlmaWVyID0gaW5qZWN0KEVYVEVOU0lPTlNfSURFTlRJRklFUik7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50KVxyXG4gIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+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, EventEmitter, inject, Injector, Input, LOCALE_ID, Output, 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.setColumnWidths(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 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 this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);\n }\n setColumnWidths(actionsColumn) {\n const widths = [actionsColumn];\n this.propList.forEach(({ value: prop }) => {\n widths.push(prop.columnWidth);\n });\n this.columnWidths = widths;\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]=\\\"columnWidths[0]\\\"\\r\\n [width]=\\\"columnWidths[0]\\\"\\r\\n [sortable]=\\\"false\\\"\\r\\n >\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"rowIndex\\\" ngx-datatable-cell-template>\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i + 1] || 200\\\"\\r\\n [name]=\\\"(prop.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]=\\\"columnWidths[0]\\\"\\r\\n [width]=\\\"columnWidths[0]\\\"\\r\\n [sortable]=\\\"false\\\"\\r\\n >\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"rowIndex\\\" ngx-datatable-cell-template>\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i + 1] || 200\\\"\\r\\n [name]=\\\"(prop.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtdGFibGUvZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBRU4sV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRixPQUFPLEVBQWMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVFLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIseUJBQXlCLEdBQzFCLE1BQU0sc0JBQXNCLENBQUM7QUFNOUIsT0FBTyxF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NUIseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsaUJBQWlCO3FCQUNsQixtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTt3REFjM0MsV0FBVztzQkFEZCxLQUFLO2dCQVNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRU8sYUFBYTtzQkFBekIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgTE9DQUxFX0lELFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUcmFja0J5RnVuY3Rpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXQsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSwgU2VsZWN0aW9uVHlwZSB9IGZyb20gJ0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBMaXN0U2VydmljZSxcclxuICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICBQZXJtaXNzaW9uU2VydmljZSxcclxuICBUaW1lem9uZVNlcnZpY2UsXHJcbiAgVXRjVG9Mb2NhbFBpcGUsXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZURlZmF1bHREaXJlY3RpdmUsXHJcbiAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxufSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5QWN0aW9uTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktYWN0aW9ucyc7XHJcbmltcG9ydCB7IEVudGl0eVByb3AsIEVudGl0eVByb3BMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7IFByb3BEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyxcclxuICBFWFRFTlNJT05TX0lERU5USUZJRVIsXHJcbiAgUFJPUF9EQVRBX1NUUkVBTSxcclxuICBST1dfUkVDT1JELFxyXG59IGZyb20gJy4uLy4uL3Rva2Vucy9leHRlbnNpb25zLnRva2VuJztcclxuaW1wb3J0IHsgR3JpZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBERUZBVUxUX0FDVElPTlNfQ09MVU1OX1dJRFRIID0gMTUwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdhYnBFeHRlbnNpYmxlVGFibGUnLFxyXG4gIHNlbGVjdG9yOiAnYWJwLWV4dGVuc2libGUtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFicFZpc2libGVEaXJlY3RpdmUsXHJcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXHJcbiAgICBHcmlkQWN0aW9uc0NvbXBvbmVudCxcclxuICAgIE5nYlRvb2x0aXAsXHJcbiAgICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBVdGNUb0xvY2FsUGlwZSxcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVUYWJsZUNvbXBvbmVudDxSID0gYW55PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICByZWFkb25seSBnZXRJbmplY3RlZCA9IHRoaXMuI2luamVjdG9yLmdldC5iaW5kKHRoaXMuI2luamVjdG9yKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lWm9uZVNlcnZpY2UgPSBpbmplY3QoVGltZXpvbmVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UHJvcFR5cGVDbGFzc2VzID0gaW5qZWN0KEVOVElUWV9QUk9QX1RZUEVfQ0xBU1NFUyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIF9hY3Rpb25zVGV4dCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBhY3Rpb25zVGV4dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hY3Rpb25zVGV4dCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGlvbnNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1RleHQgPz8gKHRoaXMuYWN0aW9uTGlzdC5sZW5ndGggPiAxID8gJ0FicFVpOjpBY3Rpb25zJyA6ICcnKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRhdGEhOiBSW107XHJcbiAgQElucHV0KCkgbGlzdCE6IExpc3RTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIHJlY29yZHNUb3RhbCE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2V0IGFjdGlvbnNDb2x1bW5XaWR0aCh3aWR0aDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldENvbHVtbldpZHRocyh3aWR0aCA/IE51bWJlcih3aWR0aCkgOiB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgYWN0aW9uc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHRhYmxlQWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvblR5cGUodmFsdWU6IFNlbGVjdGlvblR5cGUgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvblR5cGUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gU2VsZWN0aW9uVHlwZVt2YWx1ZV0gOiB2YWx1ZTtcclxuICB9XHJcbiAgX3NlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25UeXBlLm11bHRpQ2xpY2s7XHJcbiAgXHJcbiAgXHJcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIGhhc0F0TGVhc3RPbmVQZXJtaXR0ZWRBY3Rpb246IGJvb2xlYW47XHJcblxyXG4gIHJlYWRvbmx5IGNvbHVtbldpZHRocyE6IG51bWJlcltdO1xyXG5cclxuICByZWFkb25seSBwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eVByb3A8Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5zZXRDb2x1bW5XaWR0aHMoREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbHVtbldpZHRocyhhY3Rpb25zQ29sdW1uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGNvbnN0IHdpZHRocyA9IFthY3Rpb25zQ29sdW1uXTtcclxuICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaCgoeyB2YWx1ZTogcHJvcCB9KSA9PiB7XHJcbiAgICAgIHdpZHRocy5wdXNoKHByb3AuY29sdW1uV2lkdGgpO1xyXG4gICAgfSk7XHJcbiAgICAodGhpcy5jb2x1bW5XaWR0aHMgYXMgYW55KSA9IHdpZHRocztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SWNvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgID8gJzxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj48aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PidcclxuICAgICAgOiAnPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+PGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj4nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnVtKHJvd1ZhbHVlOiBhbnksIGxpc3Q6IEFycmF5PEFCUC5PcHRpb248YW55Pj4pIHtcclxuICAgIGlmICghbGlzdCB8fCBsaXN0Lmxlbmd0aCA8IDEpIHJldHVybiByb3dWYWx1ZTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSBsaXN0LmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IHJvd1ZhbHVlKSB8fCB7fTtcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KHByb3A6IEVudGl0eVByb3A8Uj4sIGRhdGE6IFByb3BEYXRhKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBwcm9wLnZhbHVlUmVzb2x2ZXIoZGF0YSkucGlwZShcclxuICAgICAgbWFwKHZhbHVlID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBlUHJvcFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SWNvbih2YWx1ZSk7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5FbnVtOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbnVtKHZhbHVlLCBwcm9wLmVudW1MaXN0IHx8IFtdKTtcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgIC8vIE1vcmUgdHlwZXMgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIGZ1dHVyZVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoeyBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghZGF0YT8uY3VycmVudFZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgaWYgKGRhdGEuY3VycmVudFZhbHVlLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5saXN0LnRvdGFsQ291bnQgPSB0aGlzLnJlY29yZHNUb3RhbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhLmN1cnJlbnRWYWx1ZS5tYXAoKHJlY29yZDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHRoaXMucHJvcExpc3QuZm9yRWFjaChwcm9wID0+IHtcclxuICAgICAgICBjb25zdCBwcm9wRGF0YSA9IHsgZ2V0SW5qZWN0ZWQ6IHRoaXMuZ2V0SW5qZWN0ZWQsIHJlY29yZCwgaW5kZXggfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldENvbnRlbnQocHJvcC52YWx1ZSwgcHJvcERhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBwcm9wS2V5ID0gYF8ke3Byb3AudmFsdWUubmFtZX1gO1xyXG4gICAgICAgIHJlY29yZFtwcm9wS2V5XSA9IHtcclxuICAgICAgICAgIHZpc2libGU6IHByb3AudmFsdWUudmlzaWJsZShwcm9wRGF0YSksXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChwcm9wLnZhbHVlLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUFJPUF9EQVRBX1NUUkVBTSxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPV19SRUNPUkQsXHJcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogcmVjb3JkLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy4jaW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlY29yZFtwcm9wS2V5XS5jb21wb25lbnQgPSBwcm9wLnZhbHVlLmNvbXBvbmVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHJlY29yZDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlQWN0aW9ucyhyb3dEYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpO1xyXG4gICAgY29uc3QgdmlzaWJsZUFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4ge1xyXG4gICAgICBjb25zdCB7IHZpc2libGUsIHBlcm1pc3Npb24gfSA9IGFjdGlvbjtcclxuXHJcbiAgICAgIGxldCBpc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IHZpc2libGUoeyByZWNvcmQ6IHJvd0RhdGEsIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICAgIGhhc1Blcm1pc3Npb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocGVybWlzc2lvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpc1Zpc2libGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoeyBzZWxlY3RlZCB9KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3Q/LnJlcXVlc3RTdGF0dXMkPy5waXBlKGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSAnbG9hZGluZycpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5neC1kYXRhdGFibGVcclxuICBkZWZhdWx0XHJcbiAgW3Jvd3NdPVwiZGF0YVwiXHJcbiAgW2NvdW50XT1cInJlY29yZHNUb3RhbFwiXHJcbiAgW2xpc3RdPVwibGlzdFwiXHJcbiAgW3NlbGVjdGlvblR5cGVdPVwic2VsZWN0YWJsZSA/IF9zZWxlY3Rpb25UeXBlIDogdW5kZWZpbmVkXCJcclxuICAoYWN0aXZhdGUpPVwidGFibGVBY3RpdmF0ZS5lbWl0KCRldmVudClcIlxyXG4gIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuPlxyXG5AaWYoc2VsZWN0YWJsZSkge1xyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiNTBcIiBbc29ydGFibGVdPVwiZmFsc2VcIiBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXplYWJsZV09XCJmYWxzZVwiPlxyXG4gIFxyXG4gICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWFsbFJvd3NTZWxlY3RlZD1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCI+XHJcbiAgICAgIEBpZiAoX3NlbGVjdGlvblR5cGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCB0YWJsZS1jaGVja1wiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LXJvdz1cInJvd1wiIGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIj5cclxuICAgICAgQGlmKF9zZWxlY3Rpb25UeXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKF9zZWxlY3Rpb25UeXBlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAaWYgKGFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbikpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFttYXhXaWR0aF09XCJjb2x1bW5XaWR0aHNbMF1cIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzWzBdXCJcclxuICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlIHx8IGdyaWRBY3Rpb25zOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICAgIEBpZiAoaXNWaXNpYmxlQWN0aW9ucyhyb3cpKSB7XHJcbiAgICAgICAgICAgIDxhYnAtZ3JpZC1hY3Rpb25zIFtpbmRleF09XCJpXCIgW3JlY29yZF09XCJyb3dcIiB0ZXh0PVwiQWJwVWk6OkFjdGlvbnNcIj48L2FicC1ncmlkLWFjdGlvbnM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG4gIEBmb3IgKHByb3Agb2YgcHJvcExpc3Q7IHRyYWNrIHByb3AubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2kgKyAxXSB8fCAyMDBcIlxyXG4gICAgICBbbmFtZV09XCIocHJvcC5pc0V4dHJhID8gJzo6JyArIHByb3AuZGlzcGxheU5hbWUgOiBwcm9wLmRpc3BsYXlOYW1lKSB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFtwcm9wXT1cInByb3AubmFtZVwiXHJcbiAgICAgIFtzb3J0YWJsZV09XCJwcm9wLnNvcnRhYmxlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cclxuICAgICAgICBAaWYgKHByb3AudG9vbHRpcCkge1xyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgW25nYlRvb2x0aXBdPVwicHJvcC50b29sdGlwLnRleHQgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICBbcGxhY2VtZW50XT1cInByb3AudG9vbHRpcC5wbGFjZW1lbnQgfHwgJ2F1dG8nXCJcclxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICA+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 { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaWJsZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS1mb3JtL2V4dGVuc2libGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2V4dGVuc2libGUvc3JjL2xpYi9jb21wb25lbnRzL2V4dGVuc2libGUtZm9ybS9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxp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QkFDM0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEM7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLFdBQVc7NEJBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7eUJBQzNEO3FCQUNGOzhCQVVELFNBQVM7c0JBRFIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBSXJDLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPcHRpb25hbCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2tpcFNlbGYsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCwgR3JvdXBlZEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlbnNpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IHNlbGZGYWN0b3J5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZmFjdG9yeS51dGlsJztcclxuaW1wb3J0IHsgRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpYmxlLWZvcm0tcHJvcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcm9wRGF0YURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcHJvcC1kYXRhLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2FicEV4dGVuc2libGVGb3JtJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHRlbnNpYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByb3BEYXRhRGlyZWN0aXZlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcclxuICAgICAgdXNlRmFjdG9yeTogc2VsZkZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBDb250cm9sQ29udGFpbmVyXV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRm9ybUNvbXBvbmVudDxSID0gYW55PiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhY2sgPSBpbmplY3QoVHJhY2tCeVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXh0ZW5zaW9ucyA9IGluamVjdChFeHRlbnNpb25zU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpZGVudGlmaWVyID0gaW5qZWN0KEVYVEVOU0lPTlNfSURFTlRJRklFUik7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oRXh0ZW5zaWJsZUZvcm1Qcm9wQ29tcG9uZW50KVxyXG4gIGZvcm1Qcm9wcyE6IFF1ZXJ5TGlzdDxFeHRlbnNpYmxlRm9ybVByb3BDb21wb25lbnQ+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 const actionsColumn = this._actionsColumnWidth();\n const widths = [actionsColumn];\n this.propList.forEach(({ value: prop }) => {\n widths.push(prop.columnWidth);\n });\n return widths;\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]=\\\"columnWidths[0] ?? undefined\\\"\\r\\n [width]=\\\"columnWidths[0] ?? 200\\\"\\r\\n [canAutoResize]=\\\"!columnWidths[0]\\\"\\r\\n [sortable]=\\\"false\\\"\\r\\n >\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"rowIndex\\\" ngx-datatable-cell-template>\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i + 1] ?? 200\\\"\\r\\n [canAutoResize]=\\\"!columnWidths[i + 1]\\\"\\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]=\\\"columnWidths[0] ?? undefined\\\"\\r\\n [width]=\\\"columnWidths[0] ?? 200\\\"\\r\\n [canAutoResize]=\\\"!columnWidths[0]\\\"\\r\\n [sortable]=\\\"false\\\"\\r\\n >\\r\\n <ng-template let-row=\\\"row\\\" let-i=\\\"rowIndex\\\" ngx-datatable-cell-template>\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\\\"\\r\\n ></ng-container>\\r\\n <ng-template #gridActions>\\r\\n @if (isVisibleActions(row)) {\\r\\n <abp-grid-actions [index]=\\\"i\\\" [record]=\\\"row\\\" text=\\\"AbpUi::Actions\\\"></abp-grid-actions>\\r\\n }\\r\\n </ng-template>\\r\\n </ng-template>\\r\\n </ngx-datatable-column>\\r\\n }\\r\\n @for (prop of propList; track prop.name; let i = $index) {\\r\\n <ngx-datatable-column\\r\\n *abpVisible=\\\"prop.columnVisible(getInjected)\\\"\\r\\n [width]=\\\"columnWidths[i + 1] ?? 200\\\"\\r\\n [canAutoResize]=\\\"!columnWidths[i + 1]\\\"\\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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U0FBUzsrQkFDRSxvQkFBb0IsWUFDcEIsc0JBQXNCLFdBQ3ZCO3dCQUNQLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsNEJBQTRCO3dCQUM1Qix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7cUJBQ2xCLG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNO3dEQWMzQyxXQUFXO3NCQURkLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVPLGtCQUFrQjtzQkFBOUIsS0FBSztnQkFJRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkFFTyxhQUFhO3NCQUF6QixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBMT0NBTEVfSUQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUcmFja0J5RnVuY3Rpb24sXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hEYXRhdGFibGVNb2R1bGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICdAc3dpbWxhbmUvbmd4LWRhdGF0YWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFCUCxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgTGlzdFNlcnZpY2UsXHJcbiAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgVGltZXpvbmVTZXJ2aWNlLFxyXG4gIFV0Y1RvTG9jYWxQaXBlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJwVmlzaWJsZURpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVEZWZhdWx0RGlyZWN0aXZlLFxyXG4gIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgZVByb3BUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvcHJvcHMuZW51bSc7XHJcbmltcG9ydCB7IEVudGl0eUFjdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBQcm9wRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBFTlRJVFlfUFJPUF9UWVBFX0NMQVNTRVMsXHJcbiAgRVhURU5TSU9OU19JREVOVElGSUVSLFxyXG4gIFBST1BfREFUQV9TVFJFQU0sXHJcbiAgUk9XX1JFQ09SRCxcclxufSBmcm9tICcuLi8uLi90b2tlbnMvZXh0ZW5zaW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEdyaWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgREVGQVVMVF9BQ1RJT05TX0NPTFVNTl9XSURUSCA9IDE1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnYWJwRXh0ZW5zaWJsZVRhYmxlJyxcclxuICBzZWxlY3RvcjogJ2FicC1leHRlbnNpYmxlLXRhYmxlJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBYnBWaXNpYmxlRGlyZWN0aXZlLFxyXG4gICAgTmd4RGF0YXRhYmxlTW9kdWxlLFxyXG4gICAgR3JpZEFjdGlvbnNDb21wb25lbnQsXHJcbiAgICBOZ2JUb29sdGlwLFxyXG4gICAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICAgIE5neERhdGF0YWJsZUxpc3REaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgVXRjVG9Mb2NhbFBpcGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZW5zaWJsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlVGFibGVDb21wb25lbnQ8UiA9IGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcmVhZG9ubHkgZ2V0SW5qZWN0ZWQgPSB0aGlzLiNpbmplY3Rvci5nZXQuYmluZCh0aGlzLiNpbmplY3Rvcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZVpvbmVTZXJ2aWNlID0gaW5qZWN0KFRpbWV6b25lU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVByb3BUeXBlQ2xhc3NlcyA9IGluamVjdChFTlRJVFlfUFJPUF9UWVBFX0NMQVNTRVMpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uU2VydmljZSk7XHJcblxyXG4gIHByb3RlY3RlZCBfYWN0aW9uc1RleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBzZXQgYWN0aW9uc1RleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYWN0aW9uc1RleHQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpb25zVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNUZXh0ID8/ICh0aGlzLmFjdGlvbkxpc3QubGVuZ3RoID49IDEgPyAnQWJwVWk6OkFjdGlvbnMnIDogJycpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGF0YSE6IFJbXTtcclxuICBASW5wdXQoKSBsaXN0ITogTGlzdFNlcnZpY2U7XHJcbiAgQElucHV0KCkgcmVjb3Jkc1RvdGFsITogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBzZXQgYWN0aW9uc0NvbHVtbldpZHRoKHdpZHRoOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2FjdGlvbnNDb2x1bW5XaWR0aC5zZXQod2lkdGggPyBOdW1iZXIod2lkdGgpIDogdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGFjdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSB0YWJsZUFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzZWxlY3Rpb25UeXBlKHZhbHVlOiBTZWxlY3Rpb25UeXBlIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb25UeXBlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IFNlbGVjdGlvblR5cGVbdmFsdWVdIDogdmFsdWU7XHJcbiAgfVxyXG4gIF9zZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uVHlwZS5tdWx0aUNsaWNrO1xyXG4gIFxyXG4gIFxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBoYXNBdExlYXN0T25lUGVybWl0dGVkQWN0aW9uOiBib29sZWFuO1xyXG5cclxuICByZWFkb25seSBwcm9wTGlzdDogRW50aXR5UHJvcExpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IGFjdGlvbkxpc3Q6IEVudGl0eUFjdGlvbkxpc3Q8Uj47XHJcblxyXG4gIHJlYWRvbmx5IHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPEVudGl0eVByb3A8Uj4+ID0gKF8sIGl0ZW0pID0+IGl0ZW0ubmFtZTtcclxuXHJcbiAgLy8gU2lnbmFsIGZvciBhY3Rpb25zIGNvbHVtbiB3aWR0aFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGlvbnNDb2x1bW5XaWR0aCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KERFRkFVTFRfQUNUSU9OU19DT0xVTU5fV0lEVEgpO1xyXG5cclxuICByZWFkb25seSBjb2x1bW5XaWR0aHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBhY3Rpb25zQ29sdW1uID0gdGhpcy5fYWN0aW9uc0NvbHVtbldpZHRoKCk7XHJcbiAgICBjb25zdCB3aWR0aHMgPSBbYWN0aW9uc0NvbHVtbl07XHJcbiAgICB0aGlzLnByb3BMaXN0LmZvckVhY2goKHsgdmFsdWU6IHByb3AgfSkgPT4ge1xyXG4gICAgICB3aWR0aHMucHVzaChwcm9wLmNvbHVtbldpZHRoKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHdpZHRocztcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBjb25zdCBleHRlbnNpb25zID0gdGhpcy4jaW5qZWN0b3IuZ2V0KEV4dGVuc2lvbnNTZXJ2aWNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLiNpbmplY3Rvci5nZXQoRVhURU5TSU9OU19JREVOVElGSUVSKTtcclxuICAgIHRoaXMucHJvcExpc3QgPSBleHRlbnNpb25zLmVudGl0eVByb3BzLmdldChuYW1lKS5wcm9wcztcclxuICAgIHRoaXMuYWN0aW9uTGlzdCA9IGV4dGVuc2lvbnNbJ2VudGl0eUFjdGlvbnMnXS5nZXQobmFtZSlcclxuICAgICAgLmFjdGlvbnMgYXMgdW5rbm93biBhcyBFbnRpdHlBY3Rpb25MaXN0PFI+O1xyXG5cclxuICAgIHRoaXMuaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbiA9XHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZmlsdGVySXRlbXNCeVBvbGljeShcclxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpLm1hcChhY3Rpb24gPT4gKHsgcmVxdWlyZWRQb2xpY3k6IGFjdGlvbi5wZXJtaXNzaW9uIH0pKSxcclxuICAgICAgKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRJY29uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICByZXR1cm4gdmFsdWVcclxuICAgICAgPyAnPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPjxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9kaXY+J1xyXG4gICAgICA6ICc8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj48aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2Pic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudW0ocm93VmFsdWU6IGFueSwgbGlzdDogQXJyYXk8QUJQLk9wdGlvbjxhbnk+Pikge1xyXG4gICAgaWYgKCFsaXN0IHx8IGxpc3QubGVuZ3RoIDwgMSkgcmV0dXJuIHJvd1ZhbHVlO1xyXG4gICAgY29uc3QgeyBrZXkgfSA9IGxpc3QuZmluZCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSA9PT0gcm93VmFsdWUpIHx8IHt9O1xyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQocHJvcDogRW50aXR5UHJvcDxSPiwgZGF0YTogUHJvcERhdGEpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHByb3AudmFsdWVSZXNvbHZlcihkYXRhKS5waXBlKFxyXG4gICAgICBtYXAodmFsdWUgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocHJvcC50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIGVQcm9wVHlwZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJY29uKHZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgZVByb3BUeXBlLkVudW06XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVudW0odmFsdWUsIHByb3AuZW51bUxpc3QgfHwgW10pO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgICAgLy8gTW9yZSB0eXBlcyBjYW4gYmUgaGFuZGxlZCBpbiB0aGUgZnV0dXJlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyh7IGRhdGEgfTogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKCFkYXRhPy5jdXJyZW50VmFsdWUpIHJldHVybjtcclxuXHJcbiAgICBpZiAoZGF0YS5jdXJyZW50VmFsdWUubGVuZ3RoIDwgMSkge1xyXG4gICAgICB0aGlzLmxpc3QudG90YWxDb3VudCA9IHRoaXMucmVjb3Jkc1RvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YSA9IGRhdGEuY3VycmVudFZhbHVlLm1hcCgocmVjb3JkOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5wcm9wTGlzdC5mb3JFYWNoKHByb3AgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByb3BEYXRhID0geyBnZXRJbmplY3RlZDogdGhpcy5nZXRJbmplY3RlZCwgcmVjb3JkLCBpbmRleCB9IGFzIGFueTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0Q29udGVudChwcm9wLnZhbHVlLCBwcm9wRGF0YSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb3BLZXkgPSBgXyR7cHJvcC52YWx1ZS5uYW1lfWA7XHJcbiAgICAgICAgcmVjb3JkW3Byb3BLZXldID0ge1xyXG4gICAgICAgICAgdmlzaWJsZTogcHJvcC52YWx1ZS52aXNpYmxlKHByb3BEYXRhKSxcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHByb3AudmFsdWUuY29tcG9uZW50KSB7XHJcbiAgICAgICAgICByZWNvcmRbcHJvcEtleV0uaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBQUk9QX0RBVEFfU1RSRUFNLFxyXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IHZhbHVlLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUk9XX1JFQ09SRCxcclxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiByZWNvcmQsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLiNpbmplY3RvcixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVjb3JkW3Byb3BLZXldLmNvbXBvbmVudCA9IHByb3AudmFsdWUuY29tcG9uZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gcmVjb3JkO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaXNWaXNpYmxlQWN0aW9ucyhyb3dEYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbkxpc3QudG9BcnJheSgpO1xyXG4gICAgY29uc3QgdmlzaWJsZUFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4ge1xyXG4gICAgICBjb25zdCB7IHZpc2libGUsIHBlcm1pc3Npb24gfSA9IGFjdGlvbjtcclxuXHJcbiAgICAgIGxldCBpc1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICBsZXQgaGFzUGVybWlzc2lvbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IHZpc2libGUoeyByZWNvcmQ6IHJvd0RhdGEsIGdldEluamVjdGVkOiB0aGlzLmdldEluamVjdGVkIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICAgIGhhc1Blcm1pc3Npb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocGVybWlzc2lvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpc1Zpc2libGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB2aXNpYmxlQWN0aW9ucy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoeyBzZWxlY3RlZCB9KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3Q/LnJlcXVlc3RTdGF0dXMkPy5waXBlKGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSAnbG9hZGluZycpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5neC1kYXRhdGFibGVcclxuICBkZWZhdWx0XHJcbiAgW3Jvd3NdPVwiZGF0YVwiXHJcbiAgW2NvdW50XT1cInJlY29yZHNUb3RhbFwiXHJcbiAgW2xpc3RdPVwibGlzdFwiXHJcbiAgW3NlbGVjdGlvblR5cGVdPVwic2VsZWN0YWJsZSA/IF9zZWxlY3Rpb25UeXBlIDogdW5kZWZpbmVkXCJcclxuICAoYWN0aXZhdGUpPVwidGFibGVBY3RpdmF0ZS5lbWl0KCRldmVudClcIlxyXG4gIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuPlxyXG5AaWYoc2VsZWN0YWJsZSkge1xyXG4gIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbd2lkdGhdPVwiNTBcIiBbc29ydGFibGVdPVwiZmFsc2VcIiBbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXplYWJsZV09XCJmYWxzZVwiPlxyXG4gIFxyXG4gICAgPG5nLXRlbXBsYXRlIG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWFsbFJvd3NTZWxlY3RlZD1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCI+XHJcbiAgICAgIEBpZiAoX3NlbGVjdGlvblR5cGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCB0YWJsZS1jaGVja1wiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiXHJcbiAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEZuKCFhbGxSb3dzU2VsZWN0ZWQpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LXJvdz1cInJvd1wiIGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXHJcbiAgICAgIGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIj5cclxuICAgICAgQGlmKF9zZWxlY3Rpb25UeXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKF9zZWxlY3Rpb25UeXBlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgZm9ybS1jaGVjayBmb3JtLWNoZWNrLXNtIGZvcm0tY2hlY2stY3VzdG9tIGZvcm0tY2hlY2stc29saWRcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZUZuKCRldmVudClcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuICBAaWYgKGFjdGlvbnNUZW1wbGF0ZSB8fCAoYWN0aW9uTGlzdC5sZW5ndGggJiYgaGFzQXRMZWFzdE9uZVBlcm1pdHRlZEFjdGlvbikpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICBbbmFtZV09XCJhY3Rpb25zVGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgIFttYXhXaWR0aF09XCJjb2x1bW5XaWR0aHNbMF0gPz8gdW5kZWZpbmVkXCJcclxuICAgICAgW3dpZHRoXT1cImNvbHVtbldpZHRoc1swXSA/PyAyMDBcIlxyXG4gICAgICBbY2FuQXV0b1Jlc2l6ZV09XCIhY29sdW1uV2lkdGhzWzBdXCJcclxuICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtaT1cInJvd0luZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlIHx8IGdyaWRBY3Rpb25zOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNncmlkQWN0aW9ucz5cclxuICAgICAgICAgIEBpZiAoaXNWaXNpYmxlQWN0aW9ucyhyb3cpKSB7XHJcbiAgICAgICAgICAgIDxhYnAtZ3JpZC1hY3Rpb25zIFtpbmRleF09XCJpXCIgW3JlY29yZF09XCJyb3dcIiB0ZXh0PVwiQWJwVWk6OkFjdGlvbnNcIj48L2FicC1ncmlkLWFjdGlvbnM+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgfVxyXG4gIEBmb3IgKHByb3Agb2YgcHJvcExpc3Q7IHRyYWNrIHByb3AubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAqYWJwVmlzaWJsZT1cInByb3AuY29sdW1uVmlzaWJsZShnZXRJbmplY3RlZClcIlxyXG4gICAgICBbd2lkdGhdPVwiY29sdW1uV2lkdGhzW2kgKyAxXSA/PyAyMDBcIlxyXG4gICAgICBbY2FuQXV0b1Jlc2l6ZV09XCIhY29sdW1uV2lkdGhzW2kgKyAxXVwiXHJcbiAgICAgIFtuYW1lXT1cIihwcm9wLmlzRXh0cmEgPyAnOjonICsgcHJvcC5kaXNwbGF5TmFtZSA6IHByb3AuZGlzcGxheU5hbWUpIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgW3Byb3BdPVwicHJvcC5uYW1lXCJcclxuICAgICAgW3NvcnRhYmxlXT1cInByb3Auc29ydGFibGVcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmd4LWRhdGF0YWJsZS1oZWFkZXItdGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxyXG4gICAgICAgIEBpZiAocHJvcC50b29sdGlwKSB7XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBbbmdiVG9vbHRpcF09XCJwcm9wLnRvb2x0aXAudGV4dCB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwicHJvcC50b29sdGlwLnBsYWNlbWVudCB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY29sdW1uLm5hbWUgfX0gPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIHt7IGNvbHVtbi5uYW1lIH19XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwiaW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwUGVybWlzc2lvbj1cInByb3AucGVybWlzc2lvbjsgcnVuQ2hhbmdlRGV0ZWN0aW9uOiBmYWxzZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqYWJwVmlzaWJsZT1cInJvd1snXycgKyBwcm9wLm5hbWVdPy52aXNpYmxlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoIXJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgIEBpZiAocHJvcC50eXBlID09PSAnZGF0ZXRpbWUnIHx8IHByb3AudHlwZSA9PT0gJ2RhdGUnIHx8IHByb3AudHlwZSA9PT0gJ3RpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXHJcbiAgICAgICAgICAgICAgICAgICFwcm9wLmlzRXh0cmFcclxuICAgICAgICAgICAgICAgICAgICA/IChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYyB8IGFicFV0Y1RvTG9jYWw6cHJvcC50eXBlKVxyXG4gICAgICAgICAgICAgICAgICAgIDogKCc6OicgKyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMgfCBhYnBVdGNUb0xvY2FsOnByb3AudHlwZSkgfCBhYnBMb2NhbGl6YXRpb24pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKHsgZ2V0SW5qZWN0ZWQ6IGdldEluamVjdGVkLCByZWNvcmQ6IHJvdywgaW5kZXg6IGkgfSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVudGl0eVByb3BUeXBlQ2xhc3Nlc1twcm9wLnR5cGVdXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxyXG4gICAgICAgICAgICAgICAgICAhcHJvcC5pc0V4dHJhXHJcbiAgICAgICAgICAgICAgICAgICAgPyAocm93WydfJyArIHByb3AubmFtZV0/LnZhbHVlIHwgYXN5bmMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoJzo6JyArIChyb3dbJ18nICsgcHJvcC5uYW1lXT8udmFsdWUgfCBhc3luYykgfCBhYnBMb2NhbGl6YXRpb24pXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHByb3AuYWN0aW9uICYmIHByb3AuYWN0aW9uKHsgZ2V0SW5qZWN0ZWQ6IGdldEluamVjdGVkLCByZWNvcmQ6IHJvdywgaW5kZXg6IGkgfSlcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImVudGl0eVByb3BUeXBlQ2xhc3Nlc1twcm9wLnR5cGVdXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwicHJvcC5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXHJcbiAgICAgICAgICAgICAgICAgIHJvd1snXycgKyBwcm9wLm5hbWVdLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IHJvd1snXycgKyBwcm9wLm5hbWVdLmluamVjdG9yXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gIH1cclxuPC9uZ3gtZGF0YXRhYmxlPlxyXG4iXX0=","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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"}
|