@acorex/modules 20.0.11 → 20.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar-management/README.md +271 -0
- package/calendar-management/index.d.ts +156 -0
- package/contact-management/README.md +150 -0
- package/contact-management/index.d.ts +15 -4
- package/fesm2022/acorex-modules-calendar-management.mjs +1509 -0
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs +128 -0
- package/fesm2022/acorex-modules-common-search-popup.component-B_bJ0ZRM.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +2 -2
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs +2548 -0
- package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-DVjMlS0K.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs → acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs} +65 -38
- package/fesm2022/acorex-modules-contact-management-address-type.entity-CWIBwWfZ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs → acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs} +49 -95
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-DO6GizbS.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs → acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs} +67 -69
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-tEtMSV4f.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs → acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs} +34 -63
- package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-C-B5aOoq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs → acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs} +67 -40
- package/fesm2022/acorex-modules-contact-management-contact-source.entity-Dw8jwcox.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs +680 -0
- package/fesm2022/acorex-modules-contact-management-emergency-contact-category.entity-BJOOhcD1.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs +1062 -0
- package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-Cr7_5JKD.mjs.map +1 -0
- package/fesm2022/acorex-modules-contact-management.mjs +1 -2331
- package/fesm2022/acorex-modules-contact-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +23 -0
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-EsaVgkdd.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs} +29 -5
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-BLhzWiXM.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DQ3Gp9kl.mjs.map → acorex-modules-platform-management-list-version.component-CgF5pvTa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs → acorex-modules-platform-management-settings.provider-intHn3XI.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-FXMK1_44.mjs.map → acorex-modules-platform-management-settings.provider-intHn3XI.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs} +4 -4
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-CcNJIUk2.mjs.map → acorex-modules-report-management-report-create-root.component-DqrLa6vh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs → acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs} +41 -24
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-S8qyvs79.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +670 -8
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +4 -2
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/package.json +9 -5
- package/report-management/index.d.ts +303 -5
- package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs +0 -128
- package/fesm2022/acorex-modules-common-search-popup.component-CNh7TFpe.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-address-type.entity-QMEODkhx.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-address.entity-0f4Vaw_k.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-method.entity-ChEz1jW0.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-DLfiEEfk.mjs.map +0 -1
- package/fesm2022/acorex-modules-contact-management-contact-source.entity-hopVxiIT.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-TWTBqgn6.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CAxcD_pe.mjs.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-content-management.mjs","sources":["../tmp-esm2022/content-management/lib/const.js","../tmp-esm2022/content-management/lib/menu.provider.js","../tmp-esm2022/content-management/lib/entity.provider.js","../tmp-esm2022/content-management/lib/permission-definition.provider.js","../tmp-esm2022/content-management/lib/setting.provider.js","../tmp-esm2022/content-management/lib/search-command.provider.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.service.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.datasource.js","../tmp-esm2022/content-management/lib/features/promotion/components/promotion-slot/promotion-slot.component.js","../tmp-esm2022/content-management/lib/content-management.module.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.entity.js","../tmp-esm2022/content-management/acorex-modules-content-management.js"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `t('module-name', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `t(\"promotion\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"promotions\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-megaphone',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxNQUFNLEdBQUc7SUFDYixJQUFJLEVBQUUsb0JBQW9CO0NBQzNCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTTtJQUNOLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUUsNEJBQTRCLE1BQU0sQ0FBQyxJQUFJLEtBQUs7UUFDbkQsSUFBSSxFQUFFLDBCQUEwQjtLQUNqQztJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSw0QkFBNEIsTUFBTSxDQUFDLElBQUksTUFBTTtZQUNwRCxXQUFXLEVBQUUsNkJBQTZCLE1BQU0sQ0FBQyxJQUFJLE1BQU07WUFDM0QsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmZpZyA9IHtcbiAgaTE4bjogJ2NvbnRlbnQtbWFuYWdlbWVudCcsXG59O1xuZXhwb3J0IGNvbnN0IFJvb3RDb25maWcgPSB7XG4gIGNvbmZpZyxcbiAgbW9kdWxlOiB7XG4gICAgbW9kdWxlOiAnQ29udGVudE1hbmFnZW1lbnQnLFxuICAgIG5hbWU6ICdDb250ZW50TWFuYWdlbWVudCcsXG4gICAgdGl0bGU6IGB0KCdtb2R1bGUtbmFtZScsIHtzY29wZTpcIiR7Y29uZmlnLmkxOG59XCJ9KWAsXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZpbGUtaW52b2ljZScsXG4gIH0sXG4gIGVudGl0aWVzOiB7XG4gICAgcHJvbW90aW9uOiB7XG4gICAgICBuYW1lOiAnUHJvbW90aW9uJyxcbiAgICAgIHRpdGxlOiBgdChcInByb21vdGlvblwiLCB7IHNjb3BlOiBcIiR7Y29uZmlnLmkxOG59XCIgfSlgLFxuICAgICAgdGl0bGVQbHVyYWw6IGB0KFwicHJvbW90aW9uc1wiLCB7IHNjb3BlOiBcIiR7Y29uZmlnLmkxOG59XCIgfSlgLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLW1lZ2FwaG9uZScsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from './const';\nexport class AXMMenuProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n }\n async provide(context) {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n context.addItems([\n {\n priority: 9002,\n text: `t('module-name', {scope:\"${scope}\"})`,\n icon: module.icon,\n name: 'content-management-menu',\n children: [\n {\n text: RootConfig.entities.promotion.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n name: 'content-management-promotion-menu-item'\n }\n ],\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9tZW51LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUNVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUF3Qm5ELENBQUM7SUF0QkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUMzQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWpDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDZjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsNEJBQTRCLEtBQUssS0FBSztnQkFDNUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUs7d0JBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDcEYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7d0JBQ3hDLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSx3Q0FBd0M7cUJBQy9DO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBNZW51UHJvdmlkZXIsIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4vY29uc3QnO1xuXG5leHBvcnQgY2xhc3MgQVhNTWVudVByb3ZpZGVyIGltcGxlbWVudHMgQVhQTWVudVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuXG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQTWVudVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNjb3BlID0gUm9vdENvbmZpZy5jb25maWcuaTE4bjtcbiAgICBjb25zdCBtb2R1bGUgPSBSb290Q29uZmlnLm1vZHVsZTtcblxuICAgIGNvbnRleHQuYWRkSXRlbXMoW1xuICAgICAge1xuICAgICAgICBwcmlvcml0eTogOTAwMixcbiAgICAgICAgdGV4dDogYHQoJ21vZHVsZS1uYW1lJywge3Njb3BlOlwiJHtzY29wZX1cIn0pYCxcbiAgICAgICAgaWNvbjogbW9kdWxlLmljb24sXG4gICAgICAgIG5hbWU6ICdjb250ZW50LW1hbmFnZW1lbnQtbWVudScsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24udGl0bGUsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2UuY3JlYXRlUGF0aChtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSksXG4gICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5pY29uLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICAgICAgICBuYW1lOiAnY29udGVudC1tYW5hZ2VtZW50LXByb21vdGlvbi1tZW51LWl0ZW0nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19","import { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n preload() {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName, entityName) {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n // case RootConfig.entities.sample.name:\n // return (await import('./entities/sample/sample.entity')).factory(this.injector);\n case RootConfig.entities.promotion.name: {\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\n return entity(this.injector);\n }\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0eS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHckMsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0F1QnJDO0lBckJRLE9BQU87UUFDWixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzlDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsd0NBQXdDO2dCQUN4QyxxRkFBcUY7Z0JBQ3JGLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7b0JBQzlGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQXZCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsXG4gIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIsXG4gIEFYUEVudGl0eVByZWxvYWRFbnRpdHksXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1FbnRpdHlQcm92aWRlciBpbXBsZW1lbnRzIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIge1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgcHJlbG9hZCgpOiBBWFBFbnRpdHlQcmVsb2FkRW50aXR5W10ge1xuICAgIGNvbnN0IG1vZHVsZSA9IFJvb3RDb25maWcubW9kdWxlLm5hbWU7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oT2JqZWN0LnZhbHVlcyhSb290Q29uZmlnLmVudGl0aWVzKSkubWFwKChlbnRpdHk6IGFueSkgPT4gKHtcbiAgICAgIG1vZHVsZTogbW9kdWxlLFxuICAgICAgZW50aXR5OiBlbnRpdHkubmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBhc3luYyBnZXQobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgICBpZiAobW9kdWxlTmFtZSA9PSBSb290Q29uZmlnLm1vZHVsZS5uYW1lKSB7XG4gICAgICBzd2l0Y2ggKGVudGl0eU5hbWUpIHtcbiAgICAgICAgLy8gY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLnNhbXBsZS5uYW1lOlxuICAgICAgICAvLyAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL3NhbXBsZS9zYW1wbGUuZW50aXR5JykpLmZhY3RvcnkodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIGNhc2UgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZToge1xuICAgICAgICAgIGNvbnN0IGVudGl0eSA9IChhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5lbnRpdHknKSkucHJvbW90aW9uRW50aXR5RmFjdG9yeTtcbiAgICAgICAgICByZXR1cm4gZW50aXR5KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","export class AXMPermissionDefinitionProvider {\n async define(context) {\n // context.addPermissions([\n // {\n // name: 'view_templates',\n // title: 'Permission to view templates',\n // isArchived: false,\n // },\n // ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBK0M7UUFDMUQsMkJBQTJCO1FBQzNCLE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsNkNBQTZDO1FBQzdDLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsTUFBTTtJQUNSLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIsIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcblxuZXhwb3J0IGNsYXNzIEFYTVBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgYXN5bmMgZGVmaW5lKGNvbnRleHQ6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gY29udGV4dC5hZGRQZXJtaXNzaW9ucyhbXG4gICAgLy8gICB7XG4gICAgLy8gICAgIG5hbWU6ICd2aWV3X3RlbXBsYXRlcycsXG4gICAgLy8gICAgIHRpdGxlOiAnUGVybWlzc2lvbiB0byB2aWV3IHRlbXBsYXRlcycsXG4gICAgLy8gICAgIGlzQXJjaGl2ZWQ6IGZhbHNlLFxuICAgIC8vICAgfSxcbiAgICAvLyBdKTtcbiAgfVxufVxuIl19","export class AXMSettingProvider {\n async provide(context) {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9zZXR0aW5nLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUE0QztRQUN4RCxVQUFVO1FBQ1YsK0JBQStCO1FBQy9CLCtHQUErRztRQUMvRywrQkFBK0I7UUFDL0Isd0ZBQXdGO1FBQ3hGLGtCQUFrQjtRQUNsQiw0QkFBNEI7UUFDNUIsbUNBQW1DO1FBQ25DLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLGdCQUFnQjtRQUNoQix3Q0FBd0M7UUFDeEMsU0FBUztRQUNULHFFQUFxRTtRQUNyRSx5QkFBeUI7UUFDekIsVUFBVTtRQUNWLDRCQUE0QjtRQUM1QixXQUFXO1FBQ1gsU0FBUztRQUNULE9BQU87UUFDUCxrQkFBa0I7UUFDbEIsaUJBQWlCO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQVhNU2V0dGluZ1Byb3ZpZGVyIGltcGxlbWVudHMgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlciB7XG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBjb250ZXh0XG4gICAgLy8gICAvLyBBZGQgRm9ybSBUZW1wbGF0ZSBHcm91cFxuICAgIC8vICAgLmFkZEdyb3VwKCdmb3JtLXRlbXBsYXRlJywgJ0Zvcm0gVGVtcGxhdGUnLCAnU2V0dGluZ3MgcmVsYXRlZCB0byBmb3JtIHRlbXBsYXRlcy4nLCBSb290Q29uZmlnLm1vZHVsZS5pY29uKVxuICAgIC8vICAgLy8gU3RhcnQgSW50ZXJmYWNlIFNlY3Rpb25cbiAgICAvLyAgIC5hZGRTZWN0aW9uKCdpbnRlcmZhY2UnLCAnVUkgSW50ZXJmYWNlJywgJ0N1c3RvbWl6ZSB0aGUgdXNlciBpbnRlcmZhY2UgZm9yIGZvcm1zLicpXG4gICAgLy8gICAuYWRkU2V0dGluZyh7XG4gICAgLy8gICAgIGtleTogJ2hpc3RvcnktcGFuZWwnLFxuICAgIC8vICAgICB0aXRsZTogJ1Nob3cgSGlzdG9yeSBQYW5lbCcsXG4gICAgLy8gICAgIHNjb3BlOiAnVScsXG4gICAgLy8gICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgIC8vICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIC8vICAgICB3aWRnZXQ6IHtcbiAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICAgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIG9yIGRpc2FibGUgdGhlIGhpc3RvcnkgcGFuZWwgZm9yIGZvcm1zLicsXG4gICAgLy8gICAgIHZhbGlkYXRpb25SdWxlczogW1xuICAgIC8vICAgICAgIHtcbiAgICAvLyAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgXSxcbiAgICAvLyAgIH0pXG4gICAgLy8gICAuZW5kU2VjdGlvbigpXG4gICAgLy8gICAuZW5kR3JvdXAoKTtcbiAgfVxufVxuIl19","import { AXPSearchCommandProvider } from '@acorex/platform/common';\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n constructor() {\n super(...arguments);\n this.commands = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbW1hbmQucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvc2VhcmNoLWNvbW1hbmQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx3QkFBd0I7SUFBdEU7O1FBQ0UsYUFBUSxHQUFzQjtRQUM1QixJQUFJO1FBQ0osc0JBQXNCO1FBQ3RCLCtCQUErQjtRQUMvQiw0Q0FBNEM7UUFDNUMsaUdBQWlHO1FBQ2pHLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsaUZBQWlGO1FBQ2pGLFFBQVE7UUFDUixNQUFNO1FBQ04sSUFBSTtTQUNMLENBQUM7SUFDSixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZWFyY2hDb21tYW5kUHJvdmlkZXIsIEFYUFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEFYTVNlYXJjaENvbW1hbmRQcm92aWRlciBleHRlbmRzIEFYUFNlYXJjaENvbW1hbmRQcm92aWRlciB7XG4gIGNvbW1hbmRzOiBBWFBTZWFyY2hSZXN1bHRbXSA9IFtcbiAgICAvLyB7XG4gICAgLy8gICBncm91cDogJ2NvbW1hbmQnLFxuICAgIC8vICB0aXRsZTogJ05ldyBGb3JtIFRlbXBsYXRlJyxcbiAgICAvLyAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy50ZW1wbGF0ZS5pY29uLFxuICAgIC8vICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBmb3JtIHRlbXBsYXRlIGZvciBkZXNpZ25pbmcgcmV1c2FibGUgZm9ybXMuJywgLy8gQWRkZWQgZGVzY3JpcHRpb25cbiAgICAvLyAgY29tbWFuZHM6IHtcbiAgICAvLyAgICAnY3JlYXRlLWVudGl0eSc6IHtcbiAgICAvLyAgICAgIGVudGl0eTogYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnRlbXBsYXRlLm5hbWV9YCxcbiAgICAvLyAgICB9LFxuICAgIC8vICB9LFxuICAgIC8vIH1cbiAgXTtcbn1cbiJdfQ==","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMAppPromotionService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMPromotionServiceImpl extends AXMEntityCrudServiceImpl {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHekMsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSx3QkFBeUQ7Q0FBRztBQUdqSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXlEO0lBQ3BHO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDOzhHQUhVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Qcm9tb3Rpb25FbnRpdHlNb2RlbCB9IGZyb20gJy4vcHJvbW90aW9uLnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTUFwcFByb21vdGlvblNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8c3RyaW5nLCBBWE1Qcm9tb3Rpb25FbnRpdHlNb2RlbD4ge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVByb21vdGlvblNlcnZpY2VJbXBsIGV4dGVuZHMgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsPHN0cmluZywgQVhNUHJvbW90aW9uRW50aXR5TW9kZWw+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lfWApO1xuICB9XG59XG4iXX0=","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\nexport class AXMPromotionDataSourceDefinition {\n constructor() {\n this.promotionService = inject(AXMAppPromotionService);\n this.i18n = RootConfig.config.i18n;\n }\n items() {\n return Promise.resolve([\n {\n name: 'promotion',\n title: 'Promotion',\n source: () => {\n return new AXDataSource({\n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n }\n catch (e) {\n console.log(e);\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.number,\n },\n ],\n filters: [\n {\n field: 'title',\n title: 'Title',\n operator: {\n type: 'equal',\n },\n widget: {\n type: AXPWidgetsCatalog.text,\n },\n filterType: {\n advance: true,\n inline: true,\n },\n },\n ],\n textField: {\n name: 'title',\n title: 'Title',\n },\n valueField: {\n name: 'id',\n title: 'ID',\n },\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLmRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0QsTUFBTSxPQUFPLGdDQUFnQztJQUE3QztRQUNZLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQXdFMUMsQ0FBQztJQXRFQyxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3JCO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDWCxPQUFPLElBQUksWUFBWSxDQUFDO3dCQUN0QixJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUNoQixJQUFJLENBQUM7Z0NBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0NBQ2hELE9BQU87b0NBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29DQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7aUNBQ2pCLENBQUM7NEJBQ0osQ0FBQzs0QkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dDQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ2YsTUFBTSxDQUFDLENBQUM7NEJBQ1YsQ0FBQzt3QkFDSCxDQUFDO3dCQUNELFFBQVEsRUFBRSxHQUFHO3FCQUNkLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsSUFBSTt3QkFDWCxRQUFRLEVBQUUsTUFBTTt3QkFDaEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7cUJBQzdCO29CQUNEO3dCQUNFLElBQUksRUFBRSxPQUFPO3dCQUNiLGdCQUFnQjt3QkFDaEIsS0FBSyxFQUFFLE9BQU87d0JBQ2QsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO3FCQUM3QjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsTUFBTTt3QkFDWixLQUFLLEVBQUUsTUFBTTt3QkFDYixRQUFRLEVBQUUsUUFBUTt3QkFDbEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07cUJBQy9CO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxLQUFLLEVBQUUsT0FBTzt3QkFDZCxLQUFLLEVBQUUsT0FBTzt3QkFDZCxRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLE9BQU87eUJBQ2Q7d0JBQ0QsTUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO3lCQUM3Qjt3QkFDRCxVQUFVLEVBQUU7NEJBQ1YsT0FBTyxFQUFFLElBQUk7NEJBQ2IsTUFBTSxFQUFFLElBQUk7eUJBQ2I7cUJBQ3FCO2lCQUN6QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLE9BQU87aUJBQ2Y7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQRGF0YVNvdXJjZURlZmluaXRpb24sIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIsIEFYUEZpbHRlckRlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTUFwcFByb21vdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb21vdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uIGltcGxlbWVudHMgQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlciB7XG4gIHByb3RlY3RlZCBwcm9tb3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYTUFwcFByb21vdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaTE4biA9IFJvb3RDb25maWcuY29uZmlnLmkxOG47XG5cbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwcm9tb3Rpb24nLFxuICAgICAgICB0aXRsZTogJ1Byb21vdGlvbicsXG4gICAgICAgIHNvdXJjZTogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgQVhEYXRhU291cmNlKHsgXG4gICAgICAgICAgICBsb2FkOiBhc3luYyAoXykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvbW90aW9uU2VydmljZS5xdWVyeSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpdGVtczogcmVzLml0ZW1zLFxuICAgICAgICAgICAgICAgICAgdG90YWw6IHJlcy50b3RhbCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VTaXplOiAxMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgICAgdGl0bGU6ICdJRCcsXG4gICAgICAgICAgICBkYXRhdHlwZTogJ3V1aWQnLFxuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAvL1RPRE8gdHJhbnNsYXRlXG4gICAgICAgICAgICB0aXRsZTogYFRpdGxlYCxcbiAgICAgICAgICAgIGRhdGF0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgICAgICB0aXRsZTogYEJvZHlgLFxuICAgICAgICAgICAgZGF0YXR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiB7XG4gICAgICAgICAgICAgIGFkdmFuY2U6IHRydWUsXG4gICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSBhcyBBWFBGaWx0ZXJEZWZpbml0aW9uLFxuICAgICAgICBdLFxuICAgICAgICB0ZXh0RmllbGQ6IHtcbiAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZUZpZWxkOiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0aXRsZTogJ0lEJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn0gIl19","import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { Component, inject, signal } from '@angular/core';\nimport { AXMAppPromotionService } from '../../../../entities/promotion/promotion.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMPromotionSlotComponent {\n constructor() {\n this.notificationChannelService = inject(AXMAppPromotionService);\n this.listData = signal([]);\n this.fileStorage = inject(AXPFileStorageService);\n }\n async ngOnInit() {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n const mappedItems = await Promise.all(filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n return {\n ...item,\n image: image,\n };\n }\n else {\n return item;\n }\n }));\n this.listData.set(mappedItems);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: AXMPromotionSlotComponent, isStandalone: true, selector: \"acorex-platform-promotion-slot\", ngImport: i0, template: \"@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\\n<img [src]=\\\"item.image?.url ?? ''\\\" class=\\\"ax-w-full ax-p-3 ax-border {{\\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\\n }}\\\" />\\n} @if(item.contentType?.name == 'text'){\\n<div class=\\\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\\\">\\n <h1 class=\\\"ax-text-base/6\\\" [innerHTML]=\\\"item.body | safe : 'html'\\\"></h1>\\n</div>\\n\\n} } \", dependencies: [{ kind: \"pipe\", type: AXSafePipe, name: \"safe\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionSlotComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acorex-platform-promotion-slot', imports: [AXSafePipe], template: \"@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\\n<img [src]=\\\"item.image?.url ?? ''\\\" class=\\\"ax-w-full ax-p-3 ax-border {{\\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\\n }}\\\" />\\n} @if(item.contentType?.name == 'text'){\\n<div class=\\\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\\\">\\n <h1 class=\\\"ax-text-base/6\\\" [innerHTML]=\\\"item.body | safe : 'html'\\\"></h1>\\n</div>\\n\\n} } \" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3Byb21vdGlvbi9jb21wb25lbnRzL3Byb21vdGlvbi1zbG90L3Byb21vdGlvbi1zbG90LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9wcm9tb3Rpb24vY29tcG9uZW50cy9wcm9tb3Rpb24tc2xvdC9wcm9tb3Rpb24tc2xvdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFRMUYsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQVFFLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVELGFBQVEsR0FBOEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpELGdCQUFXLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FnQ3JEO0lBOUJDLEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDO1lBQzNELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGlDQUFpQztZQUNqQyx3QkFBd0I7WUFDeEIsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkYsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNuQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUzRCxPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXRDVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwwRkNadEMsK2NBU0ksdUNEQVEsVUFBVTs7MkZBR1QseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLGdDQUFnQyxXQUNqQyxDQUFDLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU2FmZVBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGlwZXMnO1xuaW1wb3J0IHsgQVhQRmlsZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1BcHBQcm9tb3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTVByb21vdGlvbkVudGl0eU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fjb3JleC1wbGF0Zm9ybS1wcm9tb3Rpb24tc2xvdCcsXG4gIGltcG9ydHM6IFtBWFNhZmVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21vdGlvbi1zbG90LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxvY2F0aW9uOiBzdHJpbmc7XG5cbiAgbm90aWZpY2F0aW9uQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQVhNQXBwUHJvbW90aW9uU2VydmljZSk7XG5cbiAgbGlzdERhdGE6IFdyaXRhYmxlU2lnbmFsPEFYTVByb21vdGlvbkVudGl0eU1vZGVsW10+ID0gc2lnbmFsKFtdKTtcblxuICBwcml2YXRlIGZpbGVTdG9yYWdlID0gaW5qZWN0KEFYUEZpbGVTdG9yYWdlU2VydmljZSk7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hhbm5lbHMgPSBhd2FpdCB0aGlzLm5vdGlmaWNhdGlvbkNoYW5uZWxTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwMCxcbiAgICAgIC8vIGZpbHRlcjoge1xuICAgICAgLy8gICBmaWVsZDogJ3R5cGUnLFxuICAgICAgLy8gICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAvLyAgIHZhbHVlOiAncHJvbW90aW9uJyxcbiAgICAgIC8vIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gY2hhbm5lbHMuaXRlbXMuZmlsdGVyKCh4KSA9PiB4LnBsYWNlbWVudD8ubmFtZSA9PSB0aGlzLmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IG1hcHBlZEl0ZW1zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBmaWx0ZXJlZEl0ZW1zLm1hcChhc3luYyAoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbWFnZUlkICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IHRoaXMuZmlsZVN0b3JhZ2UuZ2V0SW5mbyhpdGVtLmltYWdlSWQpO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5saXN0RGF0YS5zZXQobWFwcGVkSXRlbXMpO1xuICB9XG59ICIsIkBmb3IgKGl0ZW0gb2YgbGlzdERhdGEoKTsgdHJhY2sgaXRlbS5pZCkgeyBAaWYgKGl0ZW0uY29udGVudFR5cGU/Lm5hbWUgPT0gJ21lZGlhJykge1xuPGltZyBbc3JjXT1cIml0ZW0uaW1hZ2U/LnVybCA/PyAnJ1wiIGNsYXNzPVwiYXgtdy1mdWxsIGF4LXAtMyBheC1ib3JkZXIgIHt7XG4gICAgaXRlbS5zaGFwZT8ubmFtZSA9PSAnY2lyY2xlJyA/ICdheC1yb3VuZGVkLWZ1bGwnIDogJ2F4LXJvdW5kZWQtbm9uZSdcbiAgfX1cIiAvPlxufSBAaWYoaXRlbS5jb250ZW50VHlwZT8ubmFtZSA9PSAndGV4dCcpe1xuPGRpdiBjbGFzcz1cImF4LW0tMSBheC1weC02IGF4LXAtNCBheC1ib3JkZXIgYXgtYmctcHJpbWFyeSBheC1yb3VuZGVkLWxnXCI+XG4gIDxoMSBjbGFzcz1cImF4LXRleHQtYmFzZS82XCIgW2lubmVySFRNTF09XCJpdGVtLmJvZHkgfCBzYWZlIDogJ2h0bWwnXCI+PC9oMT5cbjwvZGl2PlxuXG59IH0gIl19","import { NgModule } from \"@angular/core\";\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';\n// Import promotion-related services and components\nimport { AXMAppPromotionService, AXMPromotionServiceImpl, } from './entities/promotion/promotion.service';\nimport { AXMPromotionDataSourceDefinition } from './entities/promotion/promotion.datasource';\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/components\";\nexport class AXMContentManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, imports: [i1.AXPComponentSlotModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, providers: [\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ], imports: [AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9jb250ZW50LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLCtCQUErQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNFLG1EQUFtRDtBQUNuRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUN4QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7QUFrRXBILE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBC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QUNEOzRCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7NEJBQzNDLFFBQVEsRUFBRSxnQ0FBZ0M7NEJBQzFDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNOO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQX1BFUk1JU1NJT05fREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBfTUVOVV9QUk9WSURFUiwgQVhQX1NFQVJDSF9QUk9WSURFUiwgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhNTWVudVByb3ZpZGVyIH0gZnJvbSAnLi9tZW51LnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTUVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi9lbnRpdHkucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhNUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlciB9IGZyb20gJy4vcGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyJzsgIFxuaW1wb3J0IHsgQVhNU2V0dGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9zZXR0aW5nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTVNlYXJjaENvbW1hbmRQcm92aWRlciB9IGZyb20gJy4vc2VhcmNoLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQX0RBVEFTT1VSQ0VfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbi8vIEltcG9ydCBwcm9tb3Rpb24tcmVsYXRlZCBzZXJ2aWNlcyBhbmQgY29tcG9uZW50c1xuaW1wb3J0IHtcbiAgQVhNQXBwUHJvbW90aW9uU2VydmljZSxcbiAgQVhNUHJvbW90aW9uU2VydmljZUltcGwsXG59IGZyb20gJy4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9lbnRpdGllcy9wcm9tb3Rpb24vcHJvbW90aW9uLmRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvbW90aW9uL2NvbXBvbmVudHMvcHJvbW90aW9uLXNsb3QvcHJvbW90aW9uLXNsb3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYUENvbXBvbmVudFNsb3RNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgJ3NpZGUtbWVudS1mb290ZXInOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc2lkZS1tZW51LWZvb3Rlci1wcm9tb3Rpb24nLFxuICAgICAgICAgIGNvbXBvbmVudDogQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBsb2NhdGlvbjogJ3NpZGUtbWVudS1mb290ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgJ3NpZGUtbWVudS1oZWFkZXInOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc2lkZS1tZW51LWhlYWRlci1wcm9tb3Rpb24nLFxuICAgICAgICAgIGNvbXBvbmVudDogQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCxcbiAgICAgICAgICBwcmlvcml0eTogMixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBsb2NhdGlvbjogJ3NpZGUtbWVudS1oZWFkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzIDogW1xuICAgIFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9NRU5VX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTU1lbnVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1FbnRpdHlQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9TRVRUSU5HX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVNldHRpbmdQcm92aWRlcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVNlYXJjaENvbW1hbmRQcm92aWRlcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBWE1BcHBQcm9tb3Rpb25TZXJ2aWNlLFxuICAgICAgICAgIHVzZUNsYXNzOiBBWE1Qcm9tb3Rpb25TZXJ2aWNlSW1wbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFYTUNvbnRlbnRNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0=","import { AXPEntityCommandScope, AXPEntityQueryType, AXPFileStorageService, createAllQueryView, createQueryView, } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\n/**\n * Deeply sanitizes an object for storage in IndexedDB by removing non-serializable content\n */\nfunction sanitizeForStorage(obj) {\n if (!obj) {\n return obj;\n }\n // Handle primitive values\n if (typeof obj !== 'object') {\n return obj;\n }\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map((item) => sanitizeForStorage(item));\n }\n // Handle Date objects\n if (obj instanceof Date) {\n return obj;\n }\n // Handle File objects specially\n if (obj instanceof File) {\n // File objects are handled separately, return as is\n return obj;\n }\n // Handle Blob objects\n if (obj instanceof Blob) {\n // Blob objects are handled separately\n return obj;\n }\n // Handle regular objects\n const cleanedObj = {};\n for (const [key, value] of Object.entries(obj)) {\n // Skip functions, symbols and other non-serializable types\n if (typeof value === 'function' || typeof value === 'symbol') {\n continue;\n }\n // Handle null values\n if (value === null) {\n cleanedObj[key] = null;\n continue;\n }\n // Recursively sanitize objects\n if (typeof value === 'object') {\n cleanedObj[key] = sanitizeForStorage(value);\n }\n else {\n cleanedObj[key] = value;\n }\n }\n return cleanedObj;\n}\n/**\n * Sanitizes a filename by:\n * 1. Removing special characters\n * 2. Replacing spaces with hyphens\n * 3. Ensuring unique timestamp\n */\nfunction sanitizeFileName(fileName) {\n if (!fileName)\n return '';\n // Get file extension\n const ext = fileName.split('.').pop() || '';\n // Get base name without extension\n let baseName = fileName.slice(0, -(ext.length + 1));\n // Remove special characters and replace spaces with hyphens\n baseName = baseName\n .replace(/[^\\w\\s-]/g, '') // Remove special chars except spaces and hyphens\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/-+/g, '-') // Replace multiple hyphens with single hyphen\n .trim();\n // Add timestamp to ensure uniqueness\n const timestamp = new Date().getTime();\n // Combine everything\n return `${baseName}-${timestamp}.${ext}`;\n}\nexport async function promotionEntityFactory(injector) {\n const dataService = injector.get(AXMAppPromotionService);\n const fileStorageService = injector.get(AXPFileStorageService);\n const i18n = RootConfig.config.i18n;\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.promotion.name,\n source: '',\n title: RootConfig.entities.promotion.title,\n formats: {\n individual: RootConfig.entities.promotion.title,\n plural: RootConfig.entities.promotion.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'promotion',\n title: 'Promotion',\n },\n {\n id: 'comments',\n title: 'Comments',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n hidden: true,\n nullable: false,\n readonly: true,\n unique: {\n enabled: true,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'title',\n title: `t(\"title\", { scope: \"common\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n inline: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'body',\n title: `t(\"body\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'imageId',\n title: `t(\"Gallery\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.fileUploader,\n options: {\n multiple: true,\n },\n },\n },\n },\n {\n name: 'contentType',\n title: `t(\"contentType\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n // {\n // name: 'shape',\n // title: `t(\"shape\", { scope: \"${i18n}\" })`,\n // groupId: 'promotion',\n // schema: {\n // dataType: 'string',\n // interface: {\n // type: AXPWidgetsCatalog.select,\n // options: {\n // valueField: 'name',\n // textField: 'title',\n // dataSource: [\n // { title: 'Circle', name: 'circle' },\n // { title: 'Square', name: 'square' },\n // ],\n // direction: 'horizontal',\n // multiple: false,\n // accept: '',\n // },\n // },\n // },\n // validations: [\n // {\n // rule: 'required',\n // },\n // ],\n // },\n {\n name: 'placement',\n title: `t(\"placement\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n {\n title: 'Side Menu Footer',\n name: 'side-menu-footer',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n {\n title: 'Side Menu Header',\n name: 'side-menu-header',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n // {\n // name: \"metadaata\",\n // title: \"Meta Data\",\n // groupId: 'promotion',\n // schema: {\n // dataType: 'object',\n // interface: {\n // type: AXPWidgetsCatalog.text,\n // // children: \"{{ context.eval('placement').options }}\" as any,\n // },\n // }\n //},\n {\n name: 'comments',\n title: `Comments`,\n groupId: 'comments',\n schema: {\n dataType: 'object',\n interface: {\n type: 'comment',\n options: {\n refrenceType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n refrenceId: '{{ context.eval(\"id\") }}',\n subject: '{{ context.eval(\"title\") }}',\n },\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'placement' }, { name: 'imageId' }],\n commands: {\n create: {\n execute: async (data) => {\n data = sanitizeForStorage(data);\n const entityPayload = { ...data };\n entityPayload.imageId = entityPayload.imageId || [];\n const filesToUploadAfterSave = [];\n if (Array.isArray(entityPayload.imageId)) {\n const processedImageIdForEntitySave = [];\n for (const fileItem of entityPayload.imageId) {\n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n // Sanitize the filename\n const sanitizedName = sanitizeFileName(fileItem.name);\n filesToUploadAfterSave.push({\n fileItem: { ...fileItem, name: sanitizedName },\n blob: fileItem.source.value,\n });\n processedImageIdForEntitySave.push({\n tempId: fileItem.id,\n name: sanitizedName,\n size: fileItem.size,\n type: fileItem.source.value.type,\n status: 'pending_upload',\n });\n }\n else if (fileItem.source?.kind === 'fileId' &&\n fileItem.id &&\n typeof fileItem.source.value === 'string') {\n // If it's a fileId, we assume it's already processed. We don't have type directly on AXPFileListItem.\n // We'll reconstruct it from fileStorageService or it should be part of what's saved if needed.\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: 'uploaded',\n source: { kind: 'fileId', value: fileItem.source.value },\n });\n }\n else if (fileItem.id && fileItem.name) {\n // Fallback for items that might be from a previous save\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: fileItem.status, // Preserve existing status\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined,\n });\n }\n }\n entityPayload.imageId = processedImageIdForEntitySave;\n }\n const savedEntityId = await dataService.insertOne(entityPayload);\n // const entityId = savedEntity.id; // Corrected based on typical service return\n const finalImageIdReferences = (entityPayload.imageId || []).filter((f) => f.status !== 'pending_upload');\n for (const { fileItem, blob } of filesToUploadAfterSave) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: savedEntityId,\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n category: '',\n name: blob.name,\n });\n await fileStorageService.commit(fileStorageInfo.fileId);\n finalImageIdReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || blob.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type,\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId },\n });\n }\n catch (err) {\n // Typed error\n console.error('Error uploading file to FileStorage for entityId:', savedEntityId, 'file:', fileItem.name, err);\n finalImageIdReferences.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: blob.type, // Correctly access type from Blob/File\n status: 'upload_failed',\n error: err.message,\n });\n }\n }\n if (filesToUploadAfterSave.length > 0) {\n let needsUpdate = true;\n if (entityPayload.imageId && entityPayload.imageId.length === finalImageIdReferences.length) {\n const oldIds = entityPayload.imageId\n .map((f) => f.id || f.tempId)\n .sort()\n .join(',');\n const newIds = finalImageIdReferences\n .map((f) => f.id || f.tempId)\n .sort()\n .join(',');\n if (oldIds === newIds && !finalImageIdReferences.some((f) => f.status === 'upload_failed')) {\n needsUpdate = false;\n }\n }\n if (needsUpdate) {\n // Assuming updateOne takes the ID and an object of fields to update\n console.log(finalImageIdReferences);\n await dataService.updateOne(savedEntityId, { imageId: finalImageIdReferences });\n }\n }\n return { id: savedEntityId };\n },\n },\n delete: {\n execute: async (id) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data) => {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n const entityId = data.id;\n const filesToUpload = [];\n const processedImageReferences = [];\n if (data.imageId && Array.isArray(data.imageId)) {\n for (const fileItem of data.imageId) {\n if (fileItem.status === 'deleted') {\n continue;\n }\n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n // Sanitize the filename for new uploads\n const sanitizedName = sanitizeFileName(fileItem.name);\n filesToUpload.push({\n fileItem: { ...fileItem, name: sanitizedName },\n blob: fileItem.source.value,\n });\n }\n else if (fileItem.source?.kind === 'fileId' &&\n fileItem.id &&\n typeof fileItem.source.value === 'string') {\n // This is an existing file, keep its reference.\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded',\n source: { kind: 'fileId', value: fileItem.source.value },\n });\n }\n else if (fileItem.id && fileItem.name) {\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded',\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined,\n });\n }\n }\n }\n // Upload new files and add their successful/failed info to processedImageReferences\n for (const { fileItem, blob } of filesToUpload) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: entityId,\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n category: '',\n name: fileItem.name, // Use the sanitized name from fileItem\n });\n await fileStorageService.commit(fileStorageInfo.fileId);\n processedImageReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || fileItem.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type,\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId },\n });\n }\n catch (err) {\n console.error('Error uploading file to FileStorage during update for entityId:', entityId, 'file:', fileItem.name, err);\n processedImageReferences.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: blob.type,\n status: 'upload_failed',\n error: err.message,\n });\n }\n }\n // Construct the final data payload for the update.\n const finalUpdatePayload = { ...data };\n finalUpdatePayload.imageId = processedImageReferences;\n const fullySanitizedPayload = sanitizeForStorage(finalUpdatePayload);\n return await dataService.updateOne(entityId, fullySanitizedPayload);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n try {\n // Ensure id is a valid key for IndexedDB - needs to be string or number\n let validId;\n // If id is an object (e.g., from router params or complex structure)\n if (typeof id === 'object' && id !== null) {\n if ('id' in id) {\n validId = String(id.id);\n }\n else {\n validId = String(id);\n }\n console.warn('Converted object id to string:', validId);\n }\n else if (id === undefined || id === null) {\n console.error('Invalid id parameter: null or undefined');\n return null;\n }\n else {\n // Convert to string to ensure consistency\n validId = String(id);\n }\n try {\n const data = await dataService.getOne(validId);\n // If no data was found\n if (!data) {\n console.warn(`No record found with id: ${validId}`);\n return null;\n }\n return data;\n }\n catch (error) {\n console.error(`Error fetching data with ID ${validId}:`, error);\n // Return null instead of throwing to avoid cascading errors\n return null;\n }\n }\n catch (error) {\n console.error('Critical error in byKey query:', error);\n return null; // Return null instead of throwing to avoid UI errors\n }\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n {\n name: 'metadata',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n // {\n // name: 'metadata',\n // layout: {\n // positions: {\n // lg: {\n // colSpan: 12,\n // order: 10,\n // },\n // },\n // },\n // },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'promotion',\n },\n {\n id: 'comments',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'comments',\n layout: {\n label: {\n visible: false,\n },\n positions: {\n lg: {\n colSpan: 12,\n order: 7,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n title: 't(\"promotionPlural\", { scope: \"content-management\" })',\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"entity.modify\", { scope: \"common\" })',\n command: 'quick-modify-entity',\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n disabled: `{{ lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\") }}`,\n },\n //TODO: add this to the entity\n {\n title: '@document-management:actions.upload-files',\n command: {\n name: 'show-file-uploader-popup',\n options: {\n id: '{{ context.eval(\"id\") }}',\n files: '{{ context.eval(\"imageId\") }}',\n multiple: true,\n accept: '.jpg,.jpeg,.png,.gif,.webp',\n key: 'imageId',\n },\n },\n priority: 'secondary',\n type: 'upload',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: '@activity-log:actions.view-history',\n command: {\n name: 'show-version-history-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: '@conversation:actions.show-comment-popup',\n command: {\n name: 'show-comment-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n subject: '{{ context.eval(\"title\") }}',\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 'Compare',\n command: {\n name: 'show-entity-records-compare',\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: '@common:actions.lock',\n name: 'lock-entity',\n command: {\n name: 'lock-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\") }}`,\n },\n {\n title: '@common:actions.unlock',\n name: 'unlock-entity',\n command: {\n name: 'unlock-confirm',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ (await lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\")) == false }}`,\n },\n ],\n views: [\n createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] }),\n createQueryView('media', `t(\"media\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'media',\n },\n ],\n }),\n createQueryView('text', `t(\"text\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'text',\n },\n ],\n }),\n ],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLmVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9wcm9tb3Rpb24vcHJvbW90aW9uLmVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUVsQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsR0FDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFRO0lBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUM7UUFD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TSxFQUFFLElBQUksRUFBRTs0QkFDakUsVUFBVSxFQUFFO2dDQUNWO29DQUNFLElBQUksRUFBRSxrQkFBa0I7b0NBQ3hCLFFBQVEsRUFBRTt3Q0FDUixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRCxLQUFLLEVBQUUsT0FBTztpQ0FDZjs2QkFDRjt5QkFDRixDQUFDO3dCQUNGLGVBQWUsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLElBQUksTUFBTSxFQUFFLElBQUksRUFBRTs0QkFDL0QsVUFBVSxFQUFFO2dDQUNWO29DQUNFLElBQUksRUFBRSxrQkFBa0I7b0NBQ3hCLFFBQVEsRUFBRTt3Q0FDUixJQUFJLEVBQUUsT0FBTztxQ0FDZDtvQ0FDRCxLQUFLLEVBQUUsTUFBTTtpQ0FDZDs2QkFDRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlDb21tYW5kU2NvcGUsXG4gIEFYUEVudGl0eVF1ZXJ5VHlwZSxcbiAgQVhQRmlsZVN0b3JhZ2VJbmZvLFxuICBBWFBGaWxlU3RvcmFnZVNlcnZpY2UsXG4gIGNyZWF0ZUFsbFF1ZXJ5VmlldyxcbiAgY3JlYXRlUXVlcnlWaWV3LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBGaWxlTGlzdEl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3QnO1xuaW1wb3J0IHsgQVhNQXBwUHJvbW90aW9uU2VydmljZSB9IGZyb20gJy4vcHJvbW90aW9uLnNlcnZpY2UnO1xuXG4vKipcbiAqIERlZXBseSBzYW5pdGl6ZXMgYW4gb2JqZWN0IGZvciBzdG9yYWdlIGluIEluZGV4ZWREQiBieSByZW1vdmluZyBub24tc2VyaWFsaXphYmxlIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gc2FuaXRpemVGb3JTdG9yYWdlKG9iajogYW55KTogYW55IHtcbiAgaWYgKCFvYmopIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gSGFuZGxlIHByaW1pdGl2ZSB2YWx1ZXNcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEhhbmRsZSBhcnJheXNcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmoubWFwKChpdGVtKSA9PiBzYW5pdGl6ZUZvclN0b3JhZ2UoaXRlbSkpO1xuICB9XG5cbiAgLy8gSGFuZGxlIERhdGUgb2JqZWN0c1xuICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvLyBIYW5kbGUgRmlsZSBvYmplY3RzIHNwZWNpYWxseVxuICBpZiAob2JqIGluc3RhbmNlb2YgRmlsZSkge1xuICAgIC8vIEZpbGUgb2JqZWN0cyBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5LCByZXR1cm4gYXMgaXNcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gSGFuZGxlIEJsb2Igb2JqZWN0c1xuICBpZiAob2JqIGluc3RhbmNlb2YgQmxvYikge1xuICAgIC8vIEJsb2Igb2JqZWN0cyBhcmUgaGFuZGxlZCBzZXBhcmF0ZWx5XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEhhbmRsZSByZWd1bGFyIG9iamVjdHNcbiAgY29uc3QgY2xlYW5lZE9iajogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIC8vIFNraXAgZnVuY3Rpb25zLCBzeW1ib2xzIGFuZCBvdGhlciBub24tc2VyaWFsaXphYmxlIHR5cGVzXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgbnVsbCB2YWx1ZXNcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGNsZWFuZWRPYmpba2V5XSA9IG51bGw7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBSZWN1cnNpdmVseSBzYW5pdGl6ZSBvYmplY3RzXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNsZWFuZWRPYmpba2V5XSA9IHNhbml0aXplRm9yU3RvcmFnZSh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFuZWRPYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjbGVhbmVkT2JqO1xufVxuXG4vKipcbiAqIFNhbml0aXplcyBhIGZpbGVuYW1lIGJ5OlxuICogMS4gUmVtb3Zpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gKiAyLiBSZXBsYWNpbmcgc3BhY2VzIHdpdGggaHlwaGVuc1xuICogMy4gRW5zdXJpbmcgdW5pcXVlIHRpbWVzdGFtcFxuICovXG5mdW5jdGlvbiBzYW5pdGl6ZUZpbGVOYW1lKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWZpbGVOYW1lKSByZXR1cm4gJyc7XG5cbiAgLy8gR2V0IGZpbGUgZXh0ZW5zaW9uXG4gIGNvbnN0IGV4dCA9IGZpbGVOYW1lLnNwbGl0KCcuJykucG9wKCkgfHwgJyc7XG5cbiAgLy8gR2V0IGJhc2UgbmFtZSB3aXRob3V0IGV4dGVuc2lvblxuICBsZXQgYmFzZU5hbWUgPSBmaWxlTmFtZS5zbGljZSgwLCAtKGV4dC5sZW5ndGggKyAxKSk7XG5cbiAgLy8gUmVtb3ZlIHNwZWNpYWwgY2hhcmFjdGVycyBhbmQgcmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBoZW5zXG4gIGJhc2VOYW1lID0gYmFzZU5hbWVcbiAgICAucmVwbGFjZSgvW15cXHdcXHMtXS9nLCAnJykgLy8gUmVtb3ZlIHNwZWNpYWwgY2hhcnMgZXhjZXB0IHNwYWNlcyBhbmQgaHlwaGVuc1xuICAgIC5yZXBsYWNlKC9cXHMrL2csICctJykgLy8gUmVwbGFjZSBzcGFjZXMgd2l0aCBoeXBoZW5zXG4gICAgLnJlcGxhY2UoLy0rL2csICctJykgLy8gUmVwbGFjZSBtdWx0aXBsZSBoeXBoZW5zIHdpdGggc2luZ2xlIGh5cGhlblxuICAgIC50cmltKCk7XG5cbiAgLy8gQWRkIHRpbWVzdGFtcCB0byBlbnN1cmUgdW5pcXVlbmVzc1xuICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAvLyBDb21iaW5lIGV2ZXJ5dGhpbmdcbiAgcmV0dXJuIGAke2Jhc2VOYW1lfS0ke3RpbWVzdGFtcH0uJHtleHR9YDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb21vdGlvbkVudGl0eUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPiB7XG4gIGNvbnN0IGRhdGFTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEFYTUFwcFByb21vdGlvblNlcnZpY2UpO1xuICBjb25zdCBmaWxlU3RvcmFnZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhQRmlsZVN0b3JhZ2VTZXJ2aWNlKTtcbiAgY29uc3QgaTE4biA9IFJvb3RDb25maWcuY29uZmlnLmkxOG47XG5cbiAgY29uc3QgZW50aXR5RGVmOiBBWFBFbnRpdHkgPSB7XG4gICAgbW9kdWxlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIG5hbWU6IFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgc291cmNlOiAnJyxcbiAgICB0aXRsZTogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24udGl0bGUsXG4gICAgZm9ybWF0czoge1xuICAgICAgaW5kaXZpZHVhbDogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24udGl0bGUsXG4gICAgICBwbHVyYWw6IFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLnRpdGxlUGx1cmFsLFxuICAgICAgc2VhcmNoUmVzdWx0OiB7XG4gICAgICAgIHRpdGxlOiAne3sgdGl0bGUgfX0nLFxuICAgICAgICBkZXNjcmlwdGlvbjogUm9vdENvbmZpZy5tb2R1bGUudGl0bGUsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVsYXRlZEVudGl0aWVzOiBbXSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgICB0aXRsZTogJ1Byb21vdGlvbicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NvbW1lbnRzJyxcbiAgICAgICAgdGl0bGU6ICdDb21tZW50cycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgcHJvcGVydGllczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICB0aXRsZTogJ0lEJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICd1dWlkJyxcbiAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICAgIHVuaXF1ZToge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdGl0bGU6IGB0KFwidGl0bGVcIiwgeyBzY29wZTogXCJjb21tb25cIiB9KWAsXG4gICAgICAgIGdyb3VwSWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICBhZHZhbmNlOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5saW5lOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2JvZHknLFxuICAgICAgICB0aXRsZTogYHQoXCJib2R5XCIsIHsgc2NvcGU6IFwiJHtpMThufVwiIH0pYCxcbiAgICAgICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnJpY2hUZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ltYWdlSWQnLFxuICAgICAgICB0aXRsZTogYHQoXCJHYWxsZXJ5XCIsIHsgc2NvcGU6IFwiJHtpMThufVwiIH0pYCxcbiAgICAgICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmZpbGVVcGxvYWRlcixcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29udGVudFR5cGUnLFxuICAgICAgICB0aXRsZTogYHQoXCJjb250ZW50VHlwZVwiLCB7IHNjb3BlOiBcIiR7aTE4bn1cIiB9KWAsXG4gICAgICAgIGdyb3VwSWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgICAgeyB0aXRsZTogJ01lZGlhJywgbmFtZTogJ21lZGlhJyB9LFxuICAgICAgICAgICAgICAgIHsgdGl0bGU6ICdUZXh0JywgbmFtZTogJ3RleHQnIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICBhZHZhbmNlOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ3NoYXBlJyxcbiAgICAgIC8vICAgdGl0bGU6IGB0KFwic2hhcGVcIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLFxuICAgICAgLy8gICBncm91cElkOiAncHJvbW90aW9uJyxcbiAgICAgIC8vICAgc2NoZW1hOiB7XG4gICAgICAvLyAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgIGludGVyZmFjZToge1xuICAgICAgLy8gICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgLy8gICAgICAgb3B0aW9uczoge1xuICAgICAgLy8gICAgICAgICB2YWx1ZUZpZWxkOiAnbmFtZScsXG4gICAgICAvLyAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgIC8vICAgICAgICAgZGF0YVNvdXJjZTogW1xuICAgICAgLy8gICAgICAgICAgIHsgdGl0bGU6ICdDaXJjbGUnLCBuYW1lOiAnY2lyY2xlJyB9LFxuICAgICAgLy8gICAgICAgICAgIHsgdGl0bGU6ICdTcXVhcmUnLCBuYW1lOiAnc3F1YXJlJyB9LFxuICAgICAgLy8gICAgICAgICBdLFxuICAgICAgLy8gICAgICAgICBkaXJlY3Rpb246ICdob3Jpem9udGFsJyxcbiAgICAgIC8vICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgLy8gICAgICAgICBhY2NlcHQ6ICcnLFxuICAgICAgLy8gICAgICAgfSxcbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICB9LFxuICAgICAgLy8gICB2YWxpZGF0aW9uczogW1xuICAgICAgLy8gICAgIHtcbiAgICAgIC8vICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgXSxcbiAgICAgIC8vIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwbGFjZW1lbnQnLFxuICAgICAgICB0aXRsZTogYHQoXCJwbGFjZW1lbnRcIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLFxuICAgICAgICBncm91cElkOiAncHJvbW90aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICB2YWx1ZUZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAnU2lkZSBNZW51IEZvb3RlcicsXG4gICAgICAgICAgICAgICAgICBuYW1lOiAnc2lkZS1tZW51LWZvb3RlcicsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dC1lZGl0b3InLFxuICAgICAgICAgICAgICAgICAgICAgIG1vZGU6ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ3Rlc3QnLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTaWRlIE1lbnUgSGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdzaWRlLW1lbnUtaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0LWVkaXRvcicsXG4gICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ05hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAndGVzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBydWxlOiAncmVxdWlyZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiBcIm1ldGFkYWF0YVwiLFxuICAgICAgLy8gICB0aXRsZTogXCJNZXRhIERhdGFcIixcbiAgICAgIC8vICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAvLyAgIHNjaGVtYToge1xuICAgICAgLy8gICAgIGRhdGFUeXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBpbnRlcmZhY2U6IHtcbiAgICAgIC8vICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAvLyAgICAgICAvLyBjaGlsZHJlbjogXCJ7eyBjb250ZXh0LmV2YWwoJ3BsYWNlbWVudCcpLm9wdGlvbnMgfX1cIiBhcyBhbnksXG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgfVxuICAgICAgLy99LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY29tbWVudHMnLFxuICAgICAgICB0aXRsZTogYENvbW1lbnRzYCxcbiAgICAgICAgZ3JvdXBJZDogJ2NvbW1lbnRzJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogJ2NvbW1lbnQnLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICByZWZyZW5jZVR5cGU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUgKyAnLicgKyBSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lLFxuICAgICAgICAgICAgICByZWZyZW5jZUlkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICBzdWJqZWN0OiAne3sgY29udGV4dC5ldmFsKFwidGl0bGVcIikgfX0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbHVtbnM6IFt7IG5hbWU6ICd0aXRsZScgfSwgeyBuYW1lOiAncGxhY2VtZW50JyB9LCB7IG5hbWU6ICdpbWFnZUlkJyB9XSxcbiAgICBjb21tYW5kczoge1xuICAgICAgY3JlYXRlOiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBkYXRhID0gc2FuaXRpemVGb3JTdG9yYWdlKGRhdGEpO1xuICAgICAgICAgIGNvbnN0IGVudGl0eVBheWxvYWQgPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgICBlbnRpdHlQYXlsb2FkLmltYWdlSWQgPSBlbnRpdHlQYXlsb2FkLmltYWdlSWQgfHwgW107XG4gICAgICAgICAgY29uc3QgZmlsZXNUb1VwbG9hZEFmdGVyU2F2ZTogQXJyYXk8eyBmaWxlSXRlbTogQVhQRmlsZUxpc3RJdGVtOyBibG9iOiBGaWxlIH0+ID0gW107XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbnRpdHlQYXlsb2FkLmltYWdlSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRJbWFnZUlkRm9yRW50aXR5U2F2ZTogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZUl0ZW0gb2YgZW50aXR5UGF5bG9hZC5pbWFnZUlkIGFzIEFYUEZpbGVMaXN0SXRlbVtdKSB7XG4gICAgICAgICAgICAgIGlmIChmaWxlSXRlbS5zb3VyY2U/LmtpbmQgPT09ICdibG9iJyAmJiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICAgICAgLy8gU2FuaXRpemUgdGhlIGZpbGVuYW1lXG4gICAgICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkTmFtZSA9IHNhbml0aXplRmlsZU5hbWUoZmlsZUl0ZW0ubmFtZSk7XG4gICAgICAgICAgICAgICAgZmlsZXNUb1VwbG9hZEFmdGVyU2F2ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGZpbGVJdGVtOiB7IC4uLmZpbGVJdGVtLCBuYW1lOiBzYW5pdGl6ZWROYW1lIH0sXG4gICAgICAgICAgICAgICAgICBibG9iOiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgYXMgRmlsZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbWFnZUlkRm9yRW50aXR5U2F2ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIHRlbXBJZDogZmlsZUl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBzYW5pdGl6ZWROYW1lLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IChmaWxlSXRlbS5zb3VyY2UudmFsdWUgYXMgRmlsZSkudHlwZSxcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogJ3BlbmRpbmdfdXBsb2FkJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBmaWxlSXRlbS5zb3VyY2U/LmtpbmQgPT09ICdmaWxlSWQnICYmXG4gICAgICAgICAgICAgICAgZmlsZUl0ZW0uaWQgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZmlsZUl0ZW0uc291cmNlLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBpdCdzIGEgZmlsZUlkLCB3ZSBhc3N1bWUgaXQncyBhbHJlYWR5IHByb2Nlc3NlZC4gV2UgZG9uJ3QgaGF2ZSB0eXBlIGRpcmVjdGx5IG9uIEFYUEZpbGVMaXN0SXRlbS5cbiAgICAgICAgICAgICAgICAvLyBXZSdsbCByZWNvbnN0cnVjdCBpdCBmcm9tIGZpbGVTdG9yYWdlU2VydmljZSBvciBpdCBzaG91bGQgYmUgcGFydCBvZiB3aGF0J3Mgc2F2ZWQgaWYgbmVlZGVkLlxuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlSWRGb3JFbnRpdHlTYXZlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgaWQ6IGZpbGVJdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGVJdGVtLnNpemUsXG4gICAgICAgICAgICAgICAgICAvLyB0eXBlOiBmaWxlSXRlbS50eXBlLCAvLyBSZW1vdmVkOiBBWFBGaWxlTGlzdEl0ZW0gZG9lcyBub3QgaGF2ZSAudHlwZVxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAndXBsb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgc291cmNlOiB7IGtpbmQ6ICdmaWxlSWQnLCB2YWx1ZTogZmlsZUl0ZW0uc291cmNlLnZhbHVlIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZUl0ZW0uaWQgJiYgZmlsZUl0ZW0ubmFtZSkge1xuICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGZvciBpdGVtcyB0aGF0IG1pZ2h0IGJlIGZyb20gYSBwcmV2aW91cyBzYXZlXG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkSW1hZ2VJZEZvckVudGl0eVNhdmUucHVzaCh7XG4gICAgICAgICAgICAgICAgICBpZDogZmlsZUl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICAgIC8vIHR5cGU6IGZpbGVJdGVtLnR5cGUsIC8vIFJlbW92ZWQ6IEFYUEZpbGVMaXN0SXRlbSBkb2VzIG5vdCBoYXZlIC50eXBlXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IGZpbGVJdGVtLnN0YXR1cywgLy8gUHJlc2VydmUgZXhpc3Rpbmcgc3RhdHVzXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IGZpbGVJdGVtLnNvdXJjZSA/IHsga2luZDogZmlsZUl0ZW0uc291cmNlLmtpbmQsIHZhbHVlOiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW50aXR5UGF5bG9hZC5pbWFnZUlkID0gcHJvY2Vzc2VkSW1hZ2VJZEZvckVudGl0eVNhdmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2F2ZWRFbnRpdHlJZCA9IGF3YWl0IGRhdGFTZXJ2aWNlLmluc2VydE9uZShlbnRpdHlQYXlsb2FkKTtcbiAgICAgICAgICAvLyBjb25zdCBlbnRpdHlJZCA9IHNhdmVkRW50aXR5LmlkOyAvLyBDb3JyZWN0ZWQgYmFzZWQgb24gdHlwaWNhbCBzZXJ2aWNlIHJldHVyblxuXG4gICAgICAgICAgY29uc3QgZmluYWxJbWFnZUlkUmVmZXJlbmNlczogYW55W10gPSAoZW50aXR5UGF5bG9hZC5pbWFnZUlkIHx8IFtdKS5maWx0ZXIoXG4gICAgICAgICAgICAoZjogYW55KSA9PiBmLnN0YXR1cyAhPT0gJ3BlbmRpbmdfdXBsb2FkJyxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgZm9yIChjb25zdCB7IGZpbGVJdGVtLCBibG9iIH0gb2YgZmlsZXNUb1VwbG9hZEFmdGVyU2F2ZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKCFmaWxlU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpbGVTdG9yYWdlU2VydmljZSBpcyBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVTdG9yYWdlSW5mbzogQVhQRmlsZVN0b3JhZ2VJbmZvID0gYXdhaXQgZmlsZVN0b3JhZ2VTZXJ2aWNlLnNhdmUoe1xuICAgICAgICAgICAgICAgIGZpbGU6IGJsb2IsXG4gICAgICAgICAgICAgICAgcmVmSWQ6IHNhdmVkRW50aXR5SWQsXG4gICAgICAgICAgICAgICAgcmVmVHlwZTogYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lfWAsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICcnLFxuICAgICAgICAgICAgICAgIG5hbWU6IGJsb2IubmFtZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGF3YWl0IGZpbGVTdG9yYWdlU2VydmljZS5jb21taXQoZmlsZVN0b3JhZ2VJbmZvLmZpbGVJZCk7XG5cbiAgICAgICAgICAgICAgZmluYWxJbWFnZUlkUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogZmlsZVN0b3JhZ2VJbmZvLmZpbGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlU3RvcmFnZUluZm8ubmFtZSB8fCBibG9iLm5hbWUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZVN0b3JhZ2VJbmZvLnNpemUgfHwgYmxvYi5zaXplLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGVTdG9yYWdlSW5mby5taW1lVHlwZSB8fCBibG9iLnR5cGUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAndXBsb2FkZWQnLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogeyBraW5kOiAnZmlsZUlkJywgdmFsdWU6IGZpbGVTdG9yYWdlSW5mby5maWxlSWQgfSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgICAvLyBUeXBlZCBlcnJvclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdFcnJvciB1cGxvYWRpbmcgZmlsZSB0byBGaWxlU3RvcmFnZSBmb3IgZW50aXR5SWQ6JyxcbiAgICAgICAgICAgICAgICBzYXZlZEVudGl0eUlkLFxuICAgICAgICAgICAgICAgICdmaWxlOicsXG4gICAgICAgICAgICAgICAgZmlsZUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGZpbmFsSW1hZ2VJZFJlZmVyZW5jZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdGVtcElkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGZpbGVJdGVtLnNpemUsXG4gICAgICAgICAgICAgICAgdHlwZTogKGJsb2IgYXMgRmlsZSkudHlwZSwgLy8gQ29ycmVjdGx5IGFjY2VzcyB0eXBlIGZyb20gQmxvYi9GaWxlXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAndXBsb2FkX2ZhaWxlZCcsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmlsZXNUb1VwbG9hZEFmdGVyU2F2ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgbmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGVudGl0eVBheWxvYWQuaW1hZ2VJZCAmJiBlbnRpdHlQYXlsb2FkLmltYWdlSWQubGVuZ3RoID09PSBmaW5hbEltYWdlSWRSZWZlcmVuY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBvbGRJZHMgPSBlbnRpdHlQYXlsb2FkLmltYWdlSWRcbiAgICAgICAgICAgICAgICAubWFwKChmOiBhbnkpID0+IGYuaWQgfHwgZi50ZW1wSWQpXG4gICAgICAgICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0lkcyA9IGZpbmFsSW1hZ2VJZFJlZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAubWFwKChmOiBhbnkpID0+IGYuaWQgfHwgZi50ZW1wSWQpXG4gICAgICAgICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgICAgICAgIC5qb2luKCcsJyk7XG4gICAgICAgICAgICAgIGlmIChvbGRJZHMgPT09IG5ld0lkcyAmJiAhZmluYWxJbWFnZUlkUmVmZXJlbmNlcy5zb21lKChmOiBhbnkpID0+IGYuc3RhdHVzID09PSAndXBsb2FkX2ZhaWxlZCcpKSB7XG4gICAgICAgICAgICAgICAgbmVlZHNVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmVlZHNVcGRhdGUpIHtcbiAgICAgICAgICAgICAgLy8gQXNzdW1pbmcgdXBkYXRlT25lIHRha2VzIHRoZSBJRCBhbmQgYW4gb2JqZWN0IG9mIGZpZWxkcyB0byB1cGRhdGVcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZmluYWxJbWFnZUlkUmVmZXJlbmNlcyk7XG5cbiAgICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlT25lKHNhdmVkRW50aXR5SWQsIHsgaW1hZ2VJZDogZmluYWxJbWFnZUlkUmVmZXJlbmNlcyBhcyBhbnkgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHNhdmVkRW50aXR5SWQgfTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWxldGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlT25lKGlkKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1cGRhdGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTtcblxuICAgICAgICAgIGNvbnN0IGVudGl0eUlkID0gZGF0YS5pZDtcbiAgICAgICAgICBjb25zdCBmaWxlc1RvVXBsb2FkOiBBcnJheTx7IGZpbGVJdGVtOiBBWFBGaWxlTGlzdEl0ZW07IGJsb2I6IEZpbGUgfT4gPSBbXTtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWRJbWFnZVJlZmVyZW5jZXM6IGFueVtdID0gW107XG5cbiAgICAgICAgICBpZiAoZGF0YS5pbWFnZUlkICYmIEFycmF5LmlzQXJyYXkoZGF0YS5pbWFnZUlkKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlSXRlbSBvZiBkYXRhLmltYWdlSWQgYXMgQVhQRmlsZUxpc3RJdGVtW10pIHtcbiAgICAgICAgICAgICAgaWYgKGZpbGVJdGVtLnN0YXR1cyA9PT0gJ2RlbGV0ZWQnKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoZmlsZUl0ZW0uc291cmNlPy5raW5kID09PSAnYmxvYicgJiYgZmlsZUl0ZW0uc291cmNlLnZhbHVlIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgICAgIC8vIFNhbml0aXplIHRoZSBmaWxlbmFtZSBmb3IgbmV3IHVwbG9hZHNcbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWROYW1lID0gc2FuaXRpemVGaWxlTmFtZShmaWxlSXRlbS5uYW1lKTtcbiAgICAgICAgICAgICAgICBmaWxlc1RvVXBsb2FkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZmlsZUl0ZW06IHsgLi4uZmlsZUl0ZW0sIG5hbWU6IHNhbml0aXplZE5hbWUgfSxcbiAgICAgICAgICAgICAgICAgIGJsb2I6IGZpbGVJdGVtLnNvdXJjZS52YWx1ZSBhcyBGaWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGVJdGVtLnNvdXJjZT8ua2luZCA9PT0gJ2ZpbGVJZCcgJiZcbiAgICAgICAgICAgICAgICBmaWxlSXRlbS5pZCAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYW4gZXhpc3RpbmcgZmlsZSwga2VlcCBpdHMgcmVmZXJlbmNlLlxuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGlkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzaXplOiBmaWxlSXRlbS5zaXplLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBmaWxlSXRlbS5zdGF0dXMgfHwgJ3VwbG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogeyBraW5kOiAnZmlsZUlkJywgdmFsdWU6IGZpbGVJdGVtLnNvdXJjZS52YWx1ZSB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVJdGVtLmlkICYmIGZpbGVJdGVtLm5hbWUpIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbWFnZVJlZmVyZW5jZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICBpZDogZmlsZUl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogZmlsZUl0ZW0uc3RhdHVzIHx8ICd1cGxvYWRlZCcsXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IGZpbGVJdGVtLnNvdXJjZSA/IHsga2luZDogZmlsZUl0ZW0uc291cmNlLmtpbmQsIHZhbHVlOiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwbG9hZCBuZXcgZmlsZXMgYW5kIGFkZCB0aGVpciBzdWNjZXNzZnVsL2ZhaWxlZCBpbmZvIHRvIHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlc1xuICAgICAgICAgIGZvciAoY29uc3QgeyBmaWxlSXRlbSwgYmxvYiB9IG9mIGZpbGVzVG9VcGxvYWQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICghZmlsZVN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdmaWxlU3RvcmFnZVNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBmaWxlU3RvcmFnZUluZm86IEFYUEZpbGVTdG9yYWdlSW5mbyA9IGF3YWl0IGZpbGVTdG9yYWdlU2VydmljZS5zYXZlKHtcbiAgICAgICAgICAgICAgICBmaWxlOiBibG9iLFxuICAgICAgICAgICAgICAgIHJlZklkOiBlbnRpdHlJZCxcbiAgICAgICAgICAgICAgICByZWZUeXBlOiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWV9YCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJycsXG4gICAgICAgICAgICAgICAgbmFtZTogZmlsZUl0ZW0ubmFtZSwgLy8gVXNlIHRoZSBzYW5pdGl6ZWQgbmFtZSBmcm9tIGZpbGVJdGVtXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBhd2FpdCBmaWxlU3RvcmFnZVNlcnZpY2UuY29tbWl0KGZpbGVTdG9yYWdlSW5mby5maWxlSWQpO1xuXG4gICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogZmlsZVN0b3JhZ2VJbmZvLmZpbGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlU3RvcmFnZUluZm8ubmFtZSB8fCBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGZpbGVTdG9yYWdlSW5mby5zaXplIHx8IGJsb2Iuc2l6ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBmaWxlU3RvcmFnZUluZm8ubWltZVR5cGUgfHwgYmxvYi50eXBlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3VwbG9hZGVkJyxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHsga2luZDogJ2ZpbGVJZCcsIHZhbHVlOiBmaWxlU3RvcmFnZUluZm8uZmlsZUlkIH0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnRXJyb3IgdXBsb2FkaW5nIGZpbGUgdG8gRmlsZVN0b3JhZ2UgZHVyaW5nIHVwZGF0ZSBmb3IgZW50aXR5SWQ6JyxcbiAgICAgICAgICAgICAgICBlbnRpdHlJZCxcbiAgICAgICAgICAgICAgICAnZmlsZTonLFxuICAgICAgICAgICAgICAgIGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgZXJyLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBwcm9jZXNzZWRJbWFnZVJlZmVyZW5jZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdGVtcElkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGZpbGVJdGVtLnNpemUsXG4gICAgICAgICAgICAgICAgdHlwZTogKGJsb2IgYXMgRmlsZSkudHlwZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICd1cGxvYWRfZmFpbGVkJyxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENvbnN0cnVjdCB0aGUgZmluYWwgZGF0YSBwYXlsb2FkIGZvciB0aGUgdXBkYXRlLlxuICAgICAgICAgIGNvbnN0IGZpbmFsVXBkYXRlUGF5bG9hZCA9IHsgLi4uZGF0YSB9O1xuICAgICAgICAgIGZpbmFsVXBkYXRlUGF5bG9hZC5pbWFnZUlkID0gcHJvY2Vzc2VkSW1hZ2VSZWZlcmVuY2VzO1xuXG4gICAgICAgICAgY29uc3QgZnVsbHlTYW5pdGl6ZWRQYXlsb2FkID0gc2FuaXRpemVGb3JTdG9yYWdlKGZpbmFsVXBkYXRlUGF5bG9hZCk7XG5cbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlT25lKGVudGl0eUlkLCBmdWxseVNhbml0aXplZFBheWxvYWQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgIGJ5S2V5OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEVuc3VyZSBpZCBpcyBhIHZhbGlkIGtleSBmb3IgSW5kZXhlZERCIC0gbmVlZHMgdG8gYmUgc3RyaW5nIG9yIG51bWJlclxuICAgICAgICAgICAgbGV0IHZhbGlkSWQ6IHN0cmluZztcblxuICAgICAgICAgICAgLy8gSWYgaWQgaXMgYW4gb2JqZWN0IChlLmcuLCBmcm9tIHJvdXRlciBwYXJhbXMgb3IgY29tcGxleCBzdHJ1Y3R1cmUpXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlkID09PSAnb2JqZWN0JyAmJiBpZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBpZiAoJ2lkJyBpbiBpZCkge1xuICAgICAgICAgICAgICAgIHZhbGlkSWQgPSBTdHJpbmcoKGlkIGFzIGFueSkuaWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbGlkSWQgPSBTdHJpbmcoaWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ29udmVydGVkIG9iamVjdCBpZCB0byBzdHJpbmc6JywgdmFsaWRJZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlkID09PSB1bmRlZmluZWQgfHwgaWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBpZCBwYXJhbWV0ZXI6IG51bGwgb3IgdW5kZWZpbmVkJyk7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBzdHJpbmcgdG8gZW5zdXJlIGNvbnNpc3RlbmN5XG4gICAgICAgICAgICAgIHZhbGlkSWQgPSBTdHJpbmcoaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZGF0YVNlcnZpY2UuZ2V0T25lKHZhbGlkSWQpO1xuXG4gICAgICAgICAgICAgIC8vIElmIG5vIGRhdGEgd2FzIGZvdW5kXG4gICAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgTm8gcmVjb3JkIGZvdW5kIHdpdGggaWQ6ICR7dmFsaWRJZH1gKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgZGF0YSB3aXRoIElEICR7dmFsaWRJZH06YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAvLyBSZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIHRocm93aW5nIHRvIGF2b2lkIGNhc2NhZGluZyBlcnJvcnNcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NyaXRpY2FsIGVycm9yIGluIGJ5S2V5IHF1ZXJ5OicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBSZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIHRocm93aW5nIHRvIGF2b2lkIFVJIGVycm9yc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLlNpbmdsZSxcbiAgICAgIH0sXG4gICAgICBsaXN0OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVNlcnZpY2UucXVlcnkoeyBza2lwOiBlLnNraXAsIHRha2U6IGUudGFrZSwgZmlsdGVyOiBlLmZpbHRlciB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QsXG4gICAgICB9LFxuICAgIH0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAncHJvbW90aW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnc2hhcGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbWV0YWRhdGEnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAncHJvbW90aW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnc2hhcGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICBuYW1lOiAnbWV0YWRhdGEnLFxuICAgICAgICAgICAgLy8gICBsYXlvdXQ6IHtcbiAgICAgICAgICAgIC8vICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgIC8vICAgICAgIGxnOiB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgLy8gICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgICAgICAvLyAgICAgICB9LFxuICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHNpbmdsZToge1xuICAgICAgICAgIHRpdGxlOiAne3t0aXRsZX19JyxcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3Byb21vdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2NvbW1lbnRzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdib2R5JyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnc2hhcGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDQsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnY29tbWVudHMnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgIHRpdGxlOiAndChcInByb21vdGlvblBsdXJhbFwiLCB7IHNjb3BlOiBcImNvbnRlbnQtbWFuYWdlbWVudFwiIH0pJyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiBgdChcImNyZWF0ZVwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pYCxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ3QoXCJkZWxldGVJdGVtc1wiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ2RlbGV0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAndChcImRldGFpbFwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ3QoXCJkZWxldGVcIiwgeyBzY29wZTogXCJjb21tb25cIiB9KScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAndChcImVudGl0eS5tb2RpZnlcIiwgeyBzY29wZTogXCJjb21tb25cIiB9KScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdxdWljay1tb2RpZnktZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogYHt7IGxvY2suY2hlY2soY29udGV4dC5ldmFsKFwiaWRcIiksIFwiJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWV9XCIpIH19YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvL1RPRE86IGFkZCB0aGlzIHRvIHRoZSBlbnRpdHlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdAZG9jdW1lbnQtbWFuYWdlbWVudDphY3Rpb25zLnVwbG9hZC1maWxlcycsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBpZDogJ3t7IGNvbnRleHQuZXZhbChcImlkXCIpIH19JyxcbiAgICAgICAgICAgICAgICAgIGZpbGVzOiAne3sgY29udGV4dC5ldmFsKFwiaW1hZ2VJZFwiKSB9fScsXG4gICAgICAgICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFjY2VwdDogJy5qcGcsLmpwZWcsLnBuZywuZ2lmLC53ZWJwJyxcbiAgICAgICAgICAgICAgICAgIGtleTogJ2ltYWdlSWQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3VwbG9hZCcsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQGFjdGl2aXR5LWxvZzphY3Rpb25zLnZpZXctaGlzdG9yeScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdy12ZXJzaW9uLWhpc3RvcnktcG9wdXAnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICAgICAgcmVmVHlwZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSArICcuJyArIFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndmVyc2lvbi1oaXN0b3J5JyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdAY29udmVyc2F0aW9uOmFjdGlvbnMuc2hvdy1jb21tZW50LXBvcHVwJyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdzaG93LWNvbW1lbnQtcG9wdXAnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICAgICAgcmVmVHlwZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSArICcuJyArIFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzdWJqZWN0OiAne3sgY29udGV4dC5ldmFsKFwidGl0bGVcIikgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZlcnNpb24taGlzdG9yeScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQ29tcGFyZScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdy1lbnRpdHktcmVjb3Jkcy1jb21wYXJlJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndmVyc2lvbi1oaXN0b3J5JyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQGNvbW1vbjphY3Rpb25zLmxvY2snLFxuICAgICAgICAgICAgICBuYW1lOiAnbG9jay1lbnRpdHknLFxuICAgICAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2xvY2stcG9wdXAnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICAgICAgcmVmVHlwZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSArICcuJyArIFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgICBoaWRkZW46IGB7eyBsb2NrLmNoZWNrKGNvbnRleHQuZXZhbChcImlkXCIpLCBcIiR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lfVwiKSB9fWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0Bjb21tb246YWN0aW9ucy51bmxvY2snLFxuICAgICAgICAgICAgICBuYW1lOiAndW5sb2NrLWVudGl0eScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndW5sb2NrLWNvbmZpcm0nLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICAgICAgcmVmVHlwZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSArICcuJyArIFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgICBoaWRkZW46IGB7eyAoYXdhaXQgbG9jay5jaGVjayhjb250ZXh0LmV2YWwoXCJpZFwiKSwgXCIke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZX1cIikpICA9PSBmYWxzZSB9fWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdmlld3M6IFtcbiAgICAgICAgICAgIGNyZWF0ZUFsbFF1ZXJ5Vmlldyh7IHNvcnRzOiBbeyBuYW1lOiAndGl0bGUnLCBkaXI6ICdhc2MnIH1dIH0pLFxuICAgICAgICAgICAgY3JlYXRlUXVlcnlWaWV3KCdtZWRpYScsIGB0KFwibWVkaWFcIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLCB0cnVlLCB7XG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnY29udGVudFR5cGUubmFtZScsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnbWVkaWEnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNyZWF0ZVF1ZXJ5VmlldygndGV4dCcsIGB0KFwidGV4dFwiLCB7IHNjb3BlOiBcIiR7aTE4bn1cIiB9KWAsIHRydWUsIHtcbiAgICAgICAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZS5uYW1lJyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gZW50aXR5RGVmO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtY29udGVudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvYWNvcmV4LW1vZHVsZXMtY29udGVudC1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-modules-content-management.mjs","sources":["../tmp-esm2022/content-management/lib/const.js","../tmp-esm2022/content-management/lib/menu.provider.js","../tmp-esm2022/content-management/lib/entity.provider.js","../tmp-esm2022/content-management/lib/permission-definition.provider.js","../tmp-esm2022/content-management/lib/setting.provider.js","../tmp-esm2022/content-management/lib/search-command.provider.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.service.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.datasource.js","../tmp-esm2022/content-management/lib/features/promotion/components/promotion-slot/promotion-slot.component.js","../tmp-esm2022/content-management/lib/content-management.module.js","../tmp-esm2022/content-management/lib/entities/promotion/promotion.entity.js","../tmp-esm2022/content-management/acorex-modules-content-management.js"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `t('module-name', {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `t(\"promotion\", { scope: \"${config.i18n}\" })`,\n titlePlural: `t(\"promotions\", { scope: \"${config.i18n}\" })`,\n icon: 'fa-light fa-megaphone',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxNQUFNLEdBQUc7SUFDYixJQUFJLEVBQUUsb0JBQW9CO0NBQzNCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTTtJQUNOLE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUUsNEJBQTRCLE1BQU0sQ0FBQyxJQUFJLEtBQUs7UUFDbkQsSUFBSSxFQUFFLDBCQUEwQjtLQUNqQztJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSw0QkFBNEIsTUFBTSxDQUFDLElBQUksTUFBTTtZQUNwRCxXQUFXLEVBQUUsNkJBQTZCLE1BQU0sQ0FBQyxJQUFJLE1BQU07WUFDM0QsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmZpZyA9IHtcbiAgaTE4bjogJ2NvbnRlbnQtbWFuYWdlbWVudCcsXG59O1xuZXhwb3J0IGNvbnN0IFJvb3RDb25maWcgPSB7XG4gIGNvbmZpZyxcbiAgbW9kdWxlOiB7XG4gICAgbW9kdWxlOiAnQ29udGVudE1hbmFnZW1lbnQnLFxuICAgIG5hbWU6ICdDb250ZW50TWFuYWdlbWVudCcsXG4gICAgdGl0bGU6IGB0KCdtb2R1bGUtbmFtZScsIHtzY29wZTpcIiR7Y29uZmlnLmkxOG59XCJ9KWAsXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZpbGUtaW52b2ljZScsXG4gIH0sXG4gIGVudGl0aWVzOiB7XG4gICAgcHJvbW90aW9uOiB7XG4gICAgICBuYW1lOiAnUHJvbW90aW9uJyxcbiAgICAgIHRpdGxlOiBgdChcInByb21vdGlvblwiLCB7IHNjb3BlOiBcIiR7Y29uZmlnLmkxOG59XCIgfSlgLFxuICAgICAgdGl0bGVQbHVyYWw6IGB0KFwicHJvbW90aW9uc1wiLCB7IHNjb3BlOiBcIiR7Y29uZmlnLmkxOG59XCIgfSlgLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLW1lZ2FwaG9uZScsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from './const';\nexport class AXMMenuProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n }\n async provide(context) {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n context.addItems([\n {\n priority: 9002,\n text: `t('module-name', {scope:\"${scope}\"})`,\n icon: module.icon,\n name: 'content-management-menu',\n children: [\n {\n text: RootConfig.entities.promotion.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.promotion.name),\n icon: RootConfig.entities.promotion.icon,\n priority: 1,\n name: 'content-management-promotion-menu-item'\n }\n ],\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9tZW51LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUNVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUF3Qm5ELENBQUM7SUF0QkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUMzQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWpDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDZjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsNEJBQTRCLEtBQUssS0FBSztnQkFDNUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUs7d0JBQ3pDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFDcEYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7d0JBQ3hDLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSx3Q0FBd0M7cUJBQy9DO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBNZW51UHJvdmlkZXIsIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4vY29uc3QnO1xuXG5leHBvcnQgY2xhc3MgQVhNTWVudVByb3ZpZGVyIGltcGxlbWVudHMgQVhQTWVudVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuXG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQTWVudVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNjb3BlID0gUm9vdENvbmZpZy5jb25maWcuaTE4bjtcbiAgICBjb25zdCBtb2R1bGUgPSBSb290Q29uZmlnLm1vZHVsZTtcblxuICAgIGNvbnRleHQuYWRkSXRlbXMoW1xuICAgICAge1xuICAgICAgICBwcmlvcml0eTogOTAwMixcbiAgICAgICAgdGV4dDogYHQoJ21vZHVsZS1uYW1lJywge3Njb3BlOlwiJHtzY29wZX1cIn0pYCxcbiAgICAgICAgaWNvbjogbW9kdWxlLmljb24sXG4gICAgICAgIG5hbWU6ICdjb250ZW50LW1hbmFnZW1lbnQtbWVudScsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24udGl0bGUsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2UuY3JlYXRlUGF0aChtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSksXG4gICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5pY29uLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICAgICAgICBuYW1lOiAnY29udGVudC1tYW5hZ2VtZW50LXByb21vdGlvbi1tZW51LWl0ZW0nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19","import { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n preload() {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName, entityName) {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n // case RootConfig.entities.sample.name:\n // return (await import('./entities/sample/sample.entity')).factory(this.injector);\n case RootConfig.entities.promotion.name: {\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\n return entity(this.injector);\n }\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMEntityProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0eS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHckMsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0F1QnJDO0lBckJRLE9BQU87UUFDWixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzlDLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsd0NBQXdDO2dCQUN4QyxxRkFBcUY7Z0JBQ3JGLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7b0JBQzlGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQXZCVSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsXG4gIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIsXG4gIEFYUEVudGl0eVByZWxvYWRFbnRpdHksXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1FbnRpdHlQcm92aWRlciBpbXBsZW1lbnRzIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIge1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgcHJlbG9hZCgpOiBBWFBFbnRpdHlQcmVsb2FkRW50aXR5W10ge1xuICAgIGNvbnN0IG1vZHVsZSA9IFJvb3RDb25maWcubW9kdWxlLm5hbWU7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oT2JqZWN0LnZhbHVlcyhSb290Q29uZmlnLmVudGl0aWVzKSkubWFwKChlbnRpdHk6IGFueSkgPT4gKHtcbiAgICAgIG1vZHVsZTogbW9kdWxlLFxuICAgICAgZW50aXR5OiBlbnRpdHkubmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBhc3luYyBnZXQobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgICBpZiAobW9kdWxlTmFtZSA9PSBSb290Q29uZmlnLm1vZHVsZS5uYW1lKSB7XG4gICAgICBzd2l0Y2ggKGVudGl0eU5hbWUpIHtcbiAgICAgICAgLy8gY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLnNhbXBsZS5uYW1lOlxuICAgICAgICAvLyAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL3NhbXBsZS9zYW1wbGUuZW50aXR5JykpLmZhY3RvcnkodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIGNhc2UgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZToge1xuICAgICAgICAgIGNvbnN0IGVudGl0eSA9IChhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5lbnRpdHknKSkucHJvbW90aW9uRW50aXR5RmFjdG9yeTtcbiAgICAgICAgICByZXR1cm4gZW50aXR5KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","export class AXMPermissionDefinitionProvider {\n async define(context) {\n // context.addPermissions([\n // {\n // name: 'view_templates',\n // title: 'Permission to view templates',\n // isArchived: false,\n // },\n // ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBK0M7UUFDMUQsMkJBQTJCO1FBQzNCLE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsNkNBQTZDO1FBQzdDLHlCQUF5QjtRQUN6QixPQUFPO1FBQ1AsTUFBTTtJQUNSLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIsIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcblxuZXhwb3J0IGNsYXNzIEFYTVBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgYXN5bmMgZGVmaW5lKGNvbnRleHQ6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gY29udGV4dC5hZGRQZXJtaXNzaW9ucyhbXG4gICAgLy8gICB7XG4gICAgLy8gICAgIG5hbWU6ICd2aWV3X3RlbXBsYXRlcycsXG4gICAgLy8gICAgIHRpdGxlOiAnUGVybWlzc2lvbiB0byB2aWV3IHRlbXBsYXRlcycsXG4gICAgLy8gICAgIGlzQXJjaGl2ZWQ6IGZhbHNlLFxuICAgIC8vICAgfSxcbiAgICAvLyBdKTtcbiAgfVxufVxuIl19","export class AXMSettingProvider {\n async provide(context) {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9zZXR0aW5nLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUE0QztRQUN4RCxVQUFVO1FBQ1YsK0JBQStCO1FBQy9CLCtHQUErRztRQUMvRywrQkFBK0I7UUFDL0Isd0ZBQXdGO1FBQ3hGLGtCQUFrQjtRQUNsQiw0QkFBNEI7UUFDNUIsbUNBQW1DO1FBQ25DLGtCQUFrQjtRQUNsQix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLGdCQUFnQjtRQUNoQix3Q0FBd0M7UUFDeEMsU0FBUztRQUNULHFFQUFxRTtRQUNyRSx5QkFBeUI7UUFDekIsVUFBVTtRQUNWLDRCQUE0QjtRQUM1QixXQUFXO1FBQ1gsU0FBUztRQUNULE9BQU87UUFDUCxrQkFBa0I7UUFDbEIsaUJBQWlCO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQVhNU2V0dGluZ1Byb3ZpZGVyIGltcGxlbWVudHMgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlciB7XG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBjb250ZXh0XG4gICAgLy8gICAvLyBBZGQgRm9ybSBUZW1wbGF0ZSBHcm91cFxuICAgIC8vICAgLmFkZEdyb3VwKCdmb3JtLXRlbXBsYXRlJywgJ0Zvcm0gVGVtcGxhdGUnLCAnU2V0dGluZ3MgcmVsYXRlZCB0byBmb3JtIHRlbXBsYXRlcy4nLCBSb290Q29uZmlnLm1vZHVsZS5pY29uKVxuICAgIC8vICAgLy8gU3RhcnQgSW50ZXJmYWNlIFNlY3Rpb25cbiAgICAvLyAgIC5hZGRTZWN0aW9uKCdpbnRlcmZhY2UnLCAnVUkgSW50ZXJmYWNlJywgJ0N1c3RvbWl6ZSB0aGUgdXNlciBpbnRlcmZhY2UgZm9yIGZvcm1zLicpXG4gICAgLy8gICAuYWRkU2V0dGluZyh7XG4gICAgLy8gICAgIGtleTogJ2hpc3RvcnktcGFuZWwnLFxuICAgIC8vICAgICB0aXRsZTogJ1Nob3cgSGlzdG9yeSBQYW5lbCcsXG4gICAgLy8gICAgIHNjb3BlOiAnVScsXG4gICAgLy8gICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgIC8vICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIC8vICAgICB3aWRnZXQ6IHtcbiAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICAgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIG9yIGRpc2FibGUgdGhlIGhpc3RvcnkgcGFuZWwgZm9yIGZvcm1zLicsXG4gICAgLy8gICAgIHZhbGlkYXRpb25SdWxlczogW1xuICAgIC8vICAgICAgIHtcbiAgICAvLyAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgXSxcbiAgICAvLyAgIH0pXG4gICAgLy8gICAuZW5kU2VjdGlvbigpXG4gICAgLy8gICAuZW5kR3JvdXAoKTtcbiAgfVxufVxuIl19","import { AXPSearchCommandProvider } from '@acorex/platform/common';\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n constructor() {\n super(...arguments);\n this.commands = [\n // {\n // group: 'command',\n // title: 'New Form Template',\n // icon: RootConfig.entities.template.icon,\n // description: 'Create a new form template for designing reusable forms.', // Added description\n // commands: {\n // 'create-entity': {\n // entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,\n // },\n // },\n // }\n ];\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbW1hbmQucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvc2VhcmNoLWNvbW1hbmQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx3QkFBd0I7SUFBdEU7O1FBQ0UsYUFBUSxHQUFzQjtRQUM1QixJQUFJO1FBQ0osc0JBQXNCO1FBQ3RCLCtCQUErQjtRQUMvQiw0Q0FBNEM7UUFDNUMsaUdBQWlHO1FBQ2pHLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsaUZBQWlGO1FBQ2pGLFFBQVE7UUFDUixNQUFNO1FBQ04sSUFBSTtTQUNMLENBQUM7SUFDSixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZWFyY2hDb21tYW5kUHJvdmlkZXIsIEFYUFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEFYTVNlYXJjaENvbW1hbmRQcm92aWRlciBleHRlbmRzIEFYUFNlYXJjaENvbW1hbmRQcm92aWRlciB7XG4gIGNvbW1hbmRzOiBBWFBTZWFyY2hSZXN1bHRbXSA9IFtcbiAgICAvLyB7XG4gICAgLy8gICBncm91cDogJ2NvbW1hbmQnLFxuICAgIC8vICB0aXRsZTogJ05ldyBGb3JtIFRlbXBsYXRlJyxcbiAgICAvLyAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy50ZW1wbGF0ZS5pY29uLFxuICAgIC8vICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBmb3JtIHRlbXBsYXRlIGZvciBkZXNpZ25pbmcgcmV1c2FibGUgZm9ybXMuJywgLy8gQWRkZWQgZGVzY3JpcHRpb25cbiAgICAvLyAgY29tbWFuZHM6IHtcbiAgICAvLyAgICAnY3JlYXRlLWVudGl0eSc6IHtcbiAgICAvLyAgICAgIGVudGl0eTogYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnRlbXBsYXRlLm5hbWV9YCxcbiAgICAvLyAgICB9LFxuICAgIC8vICB9LFxuICAgIC8vIH1cbiAgXTtcbn1cbiJdfQ==","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMAppPromotionService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMPromotionServiceImpl extends AXMEntityCrudServiceImpl {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.promotion.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHekMsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSx3QkFBeUQ7Q0FBRztBQUdqSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXlEO0lBQ3BHO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDOzhHQUhVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Qcm9tb3Rpb25FbnRpdHlNb2RlbCB9IGZyb20gJy4vcHJvbW90aW9uLnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTUFwcFByb21vdGlvblNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8c3RyaW5nLCBBWE1Qcm9tb3Rpb25FbnRpdHlNb2RlbD4ge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVByb21vdGlvblNlcnZpY2VJbXBsIGV4dGVuZHMgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsPHN0cmluZywgQVhNUHJvbW90aW9uRW50aXR5TW9kZWw+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lfWApO1xuICB9XG59XG4iXX0=","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\nexport class AXMPromotionDataSourceDefinition {\n constructor() {\n this.promotionService = inject(AXMAppPromotionService);\n this.i18n = RootConfig.config.i18n;\n }\n items() {\n return Promise.resolve([\n {\n name: 'promotion',\n title: 'Promotion',\n source: () => {\n return new AXDataSource({\n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n }\n catch (e) {\n console.log(e);\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.number,\n },\n ],\n filters: [\n {\n field: 'title',\n title: 'Title',\n operator: {\n type: 'equal',\n },\n widget: {\n type: AXPWidgetsCatalog.text,\n },\n filterType: {\n advance: true,\n inline: true,\n },\n },\n ],\n textField: {\n name: 'title',\n title: 'Title',\n },\n valueField: {\n name: 'id',\n title: 'ID',\n },\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLmRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvY29udGVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0QsTUFBTSxPQUFPLGdDQUFnQztJQUE3QztRQUNZLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQXdFMUMsQ0FBQztJQXRFQyxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3JCO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDWCxPQUFPLElBQUksWUFBWSxDQUFDO3dCQUN0QixJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUNoQixJQUFJLENBQUM7Z0NBQ0gsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0NBQ2hELE9BQU87b0NBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29DQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7aUNBQ2pCLENBQUM7NEJBQ0osQ0FBQzs0QkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dDQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ2YsTUFBTSxDQUFDLENBQUM7NEJBQ1YsQ0FBQzt3QkFDSCxDQUFDO3dCQUNELFFBQVEsRUFBRSxHQUFHO3FCQUNkLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsSUFBSTt3QkFDWCxRQUFRLEVBQUUsTUFBTTt3QkFDaEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7cUJBQzdCO29CQUNEO3dCQUNFLElBQUksRUFBRSxPQUFPO3dCQUNiLGdCQUFnQjt3QkFDaEIsS0FBSyxFQUFFLE9BQU87d0JBQ2QsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO3FCQUM3QjtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsTUFBTTt3QkFDWixLQUFLLEVBQUUsTUFBTTt3QkFDYixRQUFRLEVBQUUsUUFBUTt3QkFDbEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07cUJBQy9CO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxLQUFLLEVBQUUsT0FBTzt3QkFDZCxLQUFLLEVBQUUsT0FBTzt3QkFDZCxRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLE9BQU87eUJBQ2Q7d0JBQ0QsTUFBTSxFQUFFOzRCQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO3lCQUM3Qjt3QkFDRCxVQUFVLEVBQUU7NEJBQ1YsT0FBTyxFQUFFLElBQUk7NEJBQ2IsTUFBTSxFQUFFLElBQUk7eUJBQ2I7cUJBQ3FCO2lCQUN6QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLE9BQU87aUJBQ2Y7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQRGF0YVNvdXJjZURlZmluaXRpb24sIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIsIEFYUEZpbHRlckRlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTUFwcFByb21vdGlvblNlcnZpY2UgfSBmcm9tICcuL3Byb21vdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uIGltcGxlbWVudHMgQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlciB7XG4gIHByb3RlY3RlZCBwcm9tb3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYTUFwcFByb21vdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaTE4biA9IFJvb3RDb25maWcuY29uZmlnLmkxOG47XG5cbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwcm9tb3Rpb24nLFxuICAgICAgICB0aXRsZTogJ1Byb21vdGlvbicsXG4gICAgICAgIHNvdXJjZTogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgQVhEYXRhU291cmNlKHsgXG4gICAgICAgICAgICBsb2FkOiBhc3luYyAoXykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvbW90aW9uU2VydmljZS5xdWVyeSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBpdGVtczogcmVzLml0ZW1zLFxuICAgICAgICAgICAgICAgICAgdG90YWw6IHJlcy50b3RhbCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VTaXplOiAxMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgICAgdGl0bGU6ICdJRCcsXG4gICAgICAgICAgICBkYXRhdHlwZTogJ3V1aWQnLFxuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAvL1RPRE8gdHJhbnNsYXRlXG4gICAgICAgICAgICB0aXRsZTogYFRpdGxlYCxcbiAgICAgICAgICAgIGRhdGF0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgICAgICB0aXRsZTogYEJvZHlgLFxuICAgICAgICAgICAgZGF0YXR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiB7XG4gICAgICAgICAgICAgIGFkdmFuY2U6IHRydWUsXG4gICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSBhcyBBWFBGaWx0ZXJEZWZpbml0aW9uLFxuICAgICAgICBdLFxuICAgICAgICB0ZXh0RmllbGQ6IHtcbiAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZUZpZWxkOiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0aXRsZTogJ0lEJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn0gIl19","import { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { Component, inject, signal } from '@angular/core';\nimport { AXMAppPromotionService } from '../../../../entities/promotion/promotion.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMPromotionSlotComponent {\n constructor() {\n this.notificationChannelService = inject(AXMAppPromotionService);\n this.listData = signal([]);\n this.fileStorage = inject(AXPFileStorageService);\n }\n async ngOnInit() {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n const mappedItems = await Promise.all(filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n return {\n ...item,\n image: image,\n };\n }\n else {\n return item;\n }\n }));\n this.listData.set(mappedItems);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: AXMPromotionSlotComponent, isStandalone: true, selector: \"acorex-platform-promotion-slot\", ngImport: i0, template: \"@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\\n<img [src]=\\\"item.image?.url ?? ''\\\" class=\\\"ax-w-full ax-p-3 ax-border {{\\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\\n }}\\\" />\\n} @if(item.contentType?.name == 'text'){\\n<div class=\\\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\\\">\\n <h1 class=\\\"ax-text-base/6\\\" [innerHTML]=\\\"item.body | safe : 'html'\\\"></h1>\\n</div>\\n\\n} } \", dependencies: [{ kind: \"pipe\", type: AXSafePipe, name: \"safe\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMPromotionSlotComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acorex-platform-promotion-slot', imports: [AXSafePipe], template: \"@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\\n<img [src]=\\\"item.image?.url ?? ''\\\" class=\\\"ax-w-full ax-p-3 ax-border {{\\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\\n }}\\\" />\\n} @if(item.contentType?.name == 'text'){\\n<div class=\\\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\\\">\\n <h1 class=\\\"ax-text-base/6\\\" [innerHTML]=\\\"item.body | safe : 'html'\\\"></h1>\\n</div>\\n\\n} } \" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3Byb21vdGlvbi9jb21wb25lbnRzL3Byb21vdGlvbi1zbG90L3Byb21vdGlvbi1zbG90LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9wcm9tb3Rpb24vY29tcG9uZW50cy9wcm9tb3Rpb24tc2xvdC9wcm9tb3Rpb24tc2xvdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7QUFRMUYsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQVFFLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVELGFBQVEsR0FBOEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpELGdCQUFXLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FnQ3JEO0lBOUJDLEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDO1lBQzNELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGlDQUFpQztZQUNqQyx3QkFBd0I7WUFDeEIsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdkYsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNuQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUzRCxPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXRDVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwwRkNadEMsK2NBU0ksdUNEQVEsVUFBVTs7MkZBR1QseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLGdDQUFnQyxXQUNqQyxDQUFDLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU2FmZVBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGlwZXMnO1xuaW1wb3J0IHsgQVhQRmlsZVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1BcHBQcm9tb3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTVByb21vdGlvbkVudGl0eU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fjb3JleC1wbGF0Zm9ybS1wcm9tb3Rpb24tc2xvdCcsXG4gIGltcG9ydHM6IFtBWFNhZmVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21vdGlvbi1zbG90LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxvY2F0aW9uOiBzdHJpbmc7XG5cbiAgbm90aWZpY2F0aW9uQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQVhNQXBwUHJvbW90aW9uU2VydmljZSk7XG5cbiAgbGlzdERhdGE6IFdyaXRhYmxlU2lnbmFsPEFYTVByb21vdGlvbkVudGl0eU1vZGVsW10+ID0gc2lnbmFsKFtdKTtcblxuICBwcml2YXRlIGZpbGVTdG9yYWdlID0gaW5qZWN0KEFYUEZpbGVTdG9yYWdlU2VydmljZSk7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hhbm5lbHMgPSBhd2FpdCB0aGlzLm5vdGlmaWNhdGlvbkNoYW5uZWxTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwMCxcbiAgICAgIC8vIGZpbHRlcjoge1xuICAgICAgLy8gICBmaWVsZDogJ3R5cGUnLFxuICAgICAgLy8gICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAvLyAgIHZhbHVlOiAncHJvbW90aW9uJyxcbiAgICAgIC8vIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gY2hhbm5lbHMuaXRlbXMuZmlsdGVyKCh4KSA9PiB4LnBsYWNlbWVudD8ubmFtZSA9PSB0aGlzLmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IG1hcHBlZEl0ZW1zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBmaWx0ZXJlZEl0ZW1zLm1hcChhc3luYyAoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pbWFnZUlkICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IHRoaXMuZmlsZVN0b3JhZ2UuZ2V0SW5mbyhpdGVtLmltYWdlSWQpO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5saXN0RGF0YS5zZXQobWFwcGVkSXRlbXMpO1xuICB9XG59ICIsIkBmb3IgKGl0ZW0gb2YgbGlzdERhdGEoKTsgdHJhY2sgaXRlbS5pZCkgeyBAaWYgKGl0ZW0uY29udGVudFR5cGU/Lm5hbWUgPT0gJ21lZGlhJykge1xuPGltZyBbc3JjXT1cIml0ZW0uaW1hZ2U/LnVybCA/PyAnJ1wiIGNsYXNzPVwiYXgtdy1mdWxsIGF4LXAtMyBheC1ib3JkZXIgIHt7XG4gICAgaXRlbS5zaGFwZT8ubmFtZSA9PSAnY2lyY2xlJyA/ICdheC1yb3VuZGVkLWZ1bGwnIDogJ2F4LXJvdW5kZWQtbm9uZSdcbiAgfX1cIiAvPlxufSBAaWYoaXRlbS5jb250ZW50VHlwZT8ubmFtZSA9PSAndGV4dCcpe1xuPGRpdiBjbGFzcz1cImF4LW0tMSBheC1weC02IGF4LXAtNCBheC1ib3JkZXIgYXgtYmctcHJpbWFyeSBheC1yb3VuZGVkLWxnXCI+XG4gIDxoMSBjbGFzcz1cImF4LXRleHQtYmFzZS82XCIgW2lubmVySFRNTF09XCJpdGVtLmJvZHkgfCBzYWZlIDogJ2h0bWwnXCI+PC9oMT5cbjwvZGl2PlxuXG59IH0gIl19","import { NgModule } from \"@angular/core\";\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMSettingProvider } from './setting.provider';\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXP_DATASOURCE_DEFINITION_PROVIDER } from '@acorex/platform/core';\n// Import promotion-related services and components\nimport { AXMAppPromotionService, AXMPromotionServiceImpl, } from './entities/promotion/promotion.service';\nimport { AXMPromotionDataSourceDefinition } from './entities/promotion/promotion.datasource';\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/components\";\nexport class AXMContentManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, imports: [i1.AXPComponentSlotModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, providers: [\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ], imports: [AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXMContentManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXMAppPromotionService,\n useClass: AXMPromotionServiceImpl,\n },\n {\n provide: AXP_DATASOURCE_DEFINITION_PROVIDER,\n useClass: AXMPromotionDataSourceDefinition,\n multi: true,\n },\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9jb250ZW50LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLCtCQUErQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNFLG1EQUFtRDtBQUNuRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixHQUN4QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDOzs7QUFrRXBILE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBC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QUNEOzRCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7NEJBQzNDLFFBQVEsRUFBRSxnQ0FBZ0M7NEJBQzFDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNOO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQX1BFUk1JU1NJT05fREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBfTUVOVV9QUk9WSURFUiwgQVhQX1NFQVJDSF9QUk9WSURFUiwgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhNTWVudVByb3ZpZGVyIH0gZnJvbSAnLi9tZW51LnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTUVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi9lbnRpdHkucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhNUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlciB9IGZyb20gJy4vcGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyJzsgIFxuaW1wb3J0IHsgQVhNU2V0dGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9zZXR0aW5nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTVNlYXJjaENvbW1hbmRQcm92aWRlciB9IGZyb20gJy4vc2VhcmNoLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQX0RBVEFTT1VSQ0VfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbi8vIEltcG9ydCBwcm9tb3Rpb24tcmVsYXRlZCBzZXJ2aWNlcyBhbmQgY29tcG9uZW50c1xuaW1wb3J0IHtcbiAgQVhNQXBwUHJvbW90aW9uU2VydmljZSxcbiAgQVhNUHJvbW90aW9uU2VydmljZUltcGwsXG59IGZyb20gJy4vZW50aXRpZXMvcHJvbW90aW9uL3Byb21vdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9lbnRpdGllcy9wcm9tb3Rpb24vcHJvbW90aW9uLmRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvcHJvbW90aW9uL2NvbXBvbmVudHMvcHJvbW90aW9uLXNsb3QvcHJvbW90aW9uLXNsb3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYUENvbXBvbmVudFNsb3RNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgJ3NpZGUtbWVudS1mb290ZXInOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc2lkZS1tZW51LWZvb3Rlci1wcm9tb3Rpb24nLFxuICAgICAgICAgIGNvbXBvbmVudDogQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBsb2NhdGlvbjogJ3NpZGUtbWVudS1mb290ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgJ3NpZGUtbWVudS1oZWFkZXInOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc2lkZS1tZW51LWhlYWRlci1wcm9tb3Rpb24nLFxuICAgICAgICAgIGNvbXBvbmVudDogQVhNUHJvbW90aW9uU2xvdENvbXBvbmVudCxcbiAgICAgICAgICBwcmlvcml0eTogMixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBsb2NhdGlvbjogJ3NpZGUtbWVudS1oZWFkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzIDogW1xuICAgIFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9NRU5VX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTU1lbnVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1FbnRpdHlQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9TRVRUSU5HX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVNldHRpbmdQcm92aWRlcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVNlYXJjaENvbW1hbmRQcm92aWRlcixcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIsXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBWE1BcHBQcm9tb3Rpb25TZXJ2aWNlLFxuICAgICAgICAgIHVzZUNsYXNzOiBBWE1Qcm9tb3Rpb25TZXJ2aWNlSW1wbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgdXNlQ2xhc3M6IEFYTVByb21vdGlvbkRhdGFTb3VyY2VEZWZpbml0aW9uLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFYTUNvbnRlbnRNYW5hZ2VtZW50TW9kdWxlIHt9XG4iXX0=","import { AXPEntityCommandScope, AXPEntityQueryType, AXPFileStorageService, createAllQueryView, createQueryView, } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { RootConfig } from '../../const';\nimport { AXMAppPromotionService } from './promotion.service';\n/**\n * Deeply sanitizes an object for storage in IndexedDB by removing non-serializable content\n */\nfunction sanitizeForStorage(obj) {\n if (!obj) {\n return obj;\n }\n // Handle primitive values\n if (typeof obj !== 'object') {\n return obj;\n }\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map((item) => sanitizeForStorage(item));\n }\n // Handle Date objects\n if (obj instanceof Date) {\n return obj;\n }\n // Handle File objects specially\n if (obj instanceof File) {\n // File objects are handled separately, return as is\n return obj;\n }\n // Handle Blob objects\n if (obj instanceof Blob) {\n // Blob objects are handled separately\n return obj;\n }\n // Handle regular objects\n const cleanedObj = {};\n for (const [key, value] of Object.entries(obj)) {\n // Skip functions, symbols and other non-serializable types\n if (typeof value === 'function' || typeof value === 'symbol') {\n continue;\n }\n // Handle null values\n if (value === null) {\n cleanedObj[key] = null;\n continue;\n }\n // Recursively sanitize objects\n if (typeof value === 'object') {\n cleanedObj[key] = sanitizeForStorage(value);\n }\n else {\n cleanedObj[key] = value;\n }\n }\n return cleanedObj;\n}\n/**\n * Sanitizes a filename by:\n * 1. Removing special characters\n * 2. Replacing spaces with hyphens\n * 3. Ensuring unique timestamp\n */\nfunction sanitizeFileName(fileName) {\n if (!fileName)\n return '';\n // Get file extension\n const ext = fileName.split('.').pop() || '';\n // Get base name without extension\n let baseName = fileName.slice(0, -(ext.length + 1));\n // Remove special characters and replace spaces with hyphens\n baseName = baseName\n .replace(/[^\\w\\s-]/g, '') // Remove special chars except spaces and hyphens\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/-+/g, '-') // Replace multiple hyphens with single hyphen\n .trim();\n // Add timestamp to ensure uniqueness\n const timestamp = new Date().getTime();\n // Combine everything\n return `${baseName}-${timestamp}.${ext}`;\n}\nexport async function promotionEntityFactory(injector) {\n const dataService = injector.get(AXMAppPromotionService);\n const fileStorageService = injector.get(AXPFileStorageService);\n const i18n = RootConfig.config.i18n;\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.promotion.name,\n source: '',\n title: RootConfig.entities.promotion.title,\n formats: {\n individual: RootConfig.entities.promotion.title,\n plural: RootConfig.entities.promotion.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'promotion',\n title: 'Promotion',\n },\n {\n id: 'comments',\n title: 'Comments',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n hidden: true,\n nullable: false,\n readonly: true,\n unique: {\n enabled: true,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'title',\n title: `t(\"title\", { scope: \"common\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n inline: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'body',\n title: `t(\"body\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'imageId',\n title: `t(\"Gallery\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.fileUploader,\n options: {\n multiple: true,\n },\n },\n },\n },\n {\n name: 'contentType',\n title: `t(\"contentType\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'now',\n title: `t(\"now\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.textBlockLayout,\n options: {\n content: `{{ variables.execute(\"now\") }}`\n }\n },\n },\n },\n // {\n // name: 'shape',\n // title: `t(\"shape\", { scope: \"${i18n}\" })`,\n // groupId: 'promotion',\n // schema: {\n // dataType: 'string',\n // interface: {\n // type: AXPWidgetsCatalog.select,\n // options: {\n // valueField: 'name',\n // textField: 'title',\n // dataSource: [\n // { title: 'Circle', name: 'circle' },\n // { title: 'Square', name: 'square' },\n // ],\n // direction: 'horizontal',\n // multiple: false,\n // accept: '',\n // },\n // },\n // },\n // validations: [\n // {\n // rule: 'required',\n // },\n // ],\n // },\n {\n name: 'placement',\n title: `t(\"placement\", { scope: \"${i18n}\" })`,\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n {\n title: 'Side Menu Footer',\n name: 'side-menu-footer',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n {\n title: 'Side Menu Header',\n name: 'side-menu-header',\n options: [\n {\n type: 'text-editor',\n mode: 'edit',\n path: 'name',\n options: {\n placeholder: 'Name',\n defaultValue: 'test',\n },\n },\n ],\n },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n // {\n // name: \"metadaata\",\n // title: \"Meta Data\",\n // groupId: 'promotion',\n // schema: {\n // dataType: 'object',\n // interface: {\n // type: AXPWidgetsCatalog.text,\n // // children: \"{{ context.eval('placement').options }}\" as any,\n // },\n // }\n //},\n {\n name: 'comments',\n title: `Comments`,\n groupId: 'comments',\n schema: {\n dataType: 'object',\n interface: {\n type: 'comment',\n options: {\n refrenceType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n refrenceId: '{{ context.eval(\"id\") }}',\n subject: '{{ context.eval(\"title\") }}',\n },\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'placement' }, { name: 'imageId' }],\n commands: {\n create: {\n execute: async (data) => {\n data = sanitizeForStorage(data);\n const entityPayload = { ...data };\n entityPayload.imageId = entityPayload.imageId || [];\n const filesToUploadAfterSave = [];\n if (Array.isArray(entityPayload.imageId)) {\n const processedImageIdForEntitySave = [];\n for (const fileItem of entityPayload.imageId) {\n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n // Sanitize the filename\n const sanitizedName = sanitizeFileName(fileItem.name);\n filesToUploadAfterSave.push({\n fileItem: { ...fileItem, name: sanitizedName },\n blob: fileItem.source.value,\n });\n processedImageIdForEntitySave.push({\n tempId: fileItem.id,\n name: sanitizedName,\n size: fileItem.size,\n type: fileItem.source.value.type,\n status: 'pending_upload',\n });\n }\n else if (fileItem.source?.kind === 'fileId' &&\n fileItem.id &&\n typeof fileItem.source.value === 'string') {\n // If it's a fileId, we assume it's already processed. We don't have type directly on AXPFileListItem.\n // We'll reconstruct it from fileStorageService or it should be part of what's saved if needed.\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: 'uploaded',\n source: { kind: 'fileId', value: fileItem.source.value },\n });\n }\n else if (fileItem.id && fileItem.name) {\n // Fallback for items that might be from a previous save\n processedImageIdForEntitySave.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n // type: fileItem.type, // Removed: AXPFileListItem does not have .type\n status: fileItem.status, // Preserve existing status\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined,\n });\n }\n }\n entityPayload.imageId = processedImageIdForEntitySave;\n }\n const savedEntityId = await dataService.insertOne(entityPayload);\n // const entityId = savedEntity.id; // Corrected based on typical service return\n const finalImageIdReferences = (entityPayload.imageId || []).filter((f) => f.status !== 'pending_upload');\n for (const { fileItem, blob } of filesToUploadAfterSave) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: savedEntityId,\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n category: '',\n name: blob.name,\n });\n await fileStorageService.commit(fileStorageInfo.fileId);\n finalImageIdReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || blob.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type,\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId },\n });\n }\n catch (err) {\n // Typed error\n console.error('Error uploading file to FileStorage for entityId:', savedEntityId, 'file:', fileItem.name, err);\n finalImageIdReferences.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: blob.type, // Correctly access type from Blob/File\n status: 'upload_failed',\n error: err.message,\n });\n }\n }\n if (filesToUploadAfterSave.length > 0) {\n let needsUpdate = true;\n if (entityPayload.imageId && entityPayload.imageId.length === finalImageIdReferences.length) {\n const oldIds = entityPayload.imageId\n .map((f) => f.id || f.tempId)\n .sort()\n .join(',');\n const newIds = finalImageIdReferences\n .map((f) => f.id || f.tempId)\n .sort()\n .join(',');\n if (oldIds === newIds && !finalImageIdReferences.some((f) => f.status === 'upload_failed')) {\n needsUpdate = false;\n }\n }\n if (needsUpdate) {\n // Assuming updateOne takes the ID and an object of fields to update\n console.log(finalImageIdReferences);\n await dataService.updateOne(savedEntityId, { imageId: finalImageIdReferences });\n }\n }\n return { id: savedEntityId };\n },\n },\n delete: {\n execute: async (id) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data) => {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n const entityId = data.id;\n const filesToUpload = [];\n const processedImageReferences = [];\n if (data.imageId && Array.isArray(data.imageId)) {\n for (const fileItem of data.imageId) {\n if (fileItem.status === 'deleted') {\n continue;\n }\n if (fileItem.source?.kind === 'blob' && fileItem.source.value instanceof Blob) {\n // Sanitize the filename for new uploads\n const sanitizedName = sanitizeFileName(fileItem.name);\n filesToUpload.push({\n fileItem: { ...fileItem, name: sanitizedName },\n blob: fileItem.source.value,\n });\n }\n else if (fileItem.source?.kind === 'fileId' &&\n fileItem.id &&\n typeof fileItem.source.value === 'string') {\n // This is an existing file, keep its reference.\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded',\n source: { kind: 'fileId', value: fileItem.source.value },\n });\n }\n else if (fileItem.id && fileItem.name) {\n processedImageReferences.push({\n id: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n status: fileItem.status || 'uploaded',\n source: fileItem.source ? { kind: fileItem.source.kind, value: fileItem.source.value } : undefined,\n });\n }\n }\n }\n // Upload new files and add their successful/failed info to processedImageReferences\n for (const { fileItem, blob } of filesToUpload) {\n try {\n if (!fileStorageService) {\n throw new Error('fileStorageService is not available.');\n }\n const fileStorageInfo = await fileStorageService.save({\n file: blob,\n refId: entityId,\n refType: `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n category: '',\n name: fileItem.name, // Use the sanitized name from fileItem\n });\n await fileStorageService.commit(fileStorageInfo.fileId);\n processedImageReferences.push({\n id: fileStorageInfo.fileId,\n name: fileStorageInfo.name || fileItem.name,\n size: fileStorageInfo.size || blob.size,\n type: fileStorageInfo.mimeType || blob.type,\n status: 'uploaded',\n source: { kind: 'fileId', value: fileStorageInfo.fileId },\n });\n }\n catch (err) {\n console.error('Error uploading file to FileStorage during update for entityId:', entityId, 'file:', fileItem.name, err);\n processedImageReferences.push({\n tempId: fileItem.id,\n name: fileItem.name,\n size: fileItem.size,\n type: blob.type,\n status: 'upload_failed',\n error: err.message,\n });\n }\n }\n // Construct the final data payload for the update.\n const finalUpdatePayload = { ...data };\n finalUpdatePayload.imageId = processedImageReferences;\n const fullySanitizedPayload = sanitizeForStorage(finalUpdatePayload);\n return await dataService.updateOne(entityId, fullySanitizedPayload);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n try {\n // Ensure id is a valid key for IndexedDB - needs to be string or number\n let validId;\n // If id is an object (e.g., from router params or complex structure)\n if (typeof id === 'object' && id !== null) {\n if ('id' in id) {\n validId = String(id.id);\n }\n else {\n validId = String(id);\n }\n console.warn('Converted object id to string:', validId);\n }\n else if (id === undefined || id === null) {\n console.error('Invalid id parameter: null or undefined');\n return null;\n }\n else {\n // Convert to string to ensure consistency\n validId = String(id);\n }\n try {\n const data = await dataService.getOne(validId);\n // If no data was found\n if (!data) {\n console.warn(`No record found with id: ${validId}`);\n return null;\n }\n return data;\n }\n catch (error) {\n console.error(`Error fetching data with ID ${validId}:`, error);\n // Return null instead of throwing to avoid cascading errors\n return null;\n }\n }\n catch (error) {\n console.error('Critical error in byKey query:', error);\n return null; // Return null instead of throwing to avoid UI errors\n }\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'now',\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n {\n name: 'metadata',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'promotion',\n },\n ],\n properties: [\n {\n name: 'now',\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 5,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 6,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 3,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 4,\n },\n },\n },\n },\n // {\n // name: 'metadata',\n // layout: {\n // positions: {\n // lg: {\n // colSpan: 12,\n // order: 10,\n // },\n // },\n // },\n // },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'promotion',\n },\n {\n id: 'comments',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'now',\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'comments',\n layout: {\n label: {\n visible: false,\n },\n positions: {\n lg: {\n colSpan: 12,\n order: 7,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n title: 't(\"promotionPlural\", { scope: \"content-management\" })',\n actions: [\n {\n title: `t(\"create\", { scope: \"common\" })`,\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n title: 't(\"deleteItems\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: 't(\"detail\", { scope: \"common\" })',\n command: 'open-entity',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"delete\", { scope: \"common\" })',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 't(\"entity.modify\", { scope: \"common\" })',\n command: 'quick-modify-entity',\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n disabled: `{{ lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\") }}`,\n },\n //TODO: add this to the entity\n {\n title: '@document-management:actions.upload-files',\n command: {\n name: 'show-file-uploader-popup',\n options: {\n id: '{{ context.eval(\"id\") }}',\n files: '{{ context.eval(\"imageId\") }}',\n multiple: true,\n accept: '.jpg,.jpeg,.png,.gif,.webp',\n key: 'imageId',\n },\n },\n priority: 'secondary',\n type: 'upload',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: '@activity-log:actions.view-history',\n command: {\n name: 'show-version-history-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: '@conversation:actions.show-comment-popup',\n command: {\n name: 'show-comment-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n subject: '{{ context.eval(\"title\") }}',\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n title: 'Compare',\n command: {\n name: 'show-entity-records-compare',\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Selected,\n },\n {\n title: '@common:actions.lock',\n name: 'lock-entity',\n command: {\n name: 'lock-popup',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\") }}`,\n },\n {\n title: '@common:actions.unlock',\n name: 'unlock-entity',\n command: {\n name: 'unlock-confirm',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: RootConfig.module.name + '.' + RootConfig.entities.promotion.name,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ (await lock.check(context.eval(\"id\"), \"${RootConfig.module.name}.${RootConfig.entities.promotion.name}\")) == false }}`,\n },\n ],\n views: [\n createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] }),\n createQueryView('media', `t(\"media\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'media',\n },\n ],\n }),\n createQueryView('text', `t(\"text\", { scope: \"${i18n}\" })`, true, {\n conditions: [\n {\n name: 'contentType.name',\n operator: {\n type: 'equal',\n },\n value: 'text',\n },\n ],\n }),\n ],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90aW9uLmVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9jb250ZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9wcm9tb3Rpb24vcHJvbW90aW9uLmVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUVsQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLGVBQWUsR0FDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxHQUFRO0lBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN4QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUM7UUFD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USxFQUFFLFdBQVc7NEJBQ3JCLElBQUksRUFBRSxRQUFROzRCQUNkLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxVQUFVOzRCQUN2QyxNQUFNLEVBQUUsNkNBQTZDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksa0JBQWtCO3lCQUNwSTtxQkFDRjtvQkFDRCxLQUFLLEVBQUU7d0JBQ0wsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDOUQsZUFBZSxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFOzRCQUNqRSxVQUFVLEVBQUU7Z0NBQ1Y7b0NBQ0UsSUFBSSxFQUFFLGtCQUFrQjtvQ0FDeEIsUUFBUSxFQUFFO3dDQUNSLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNELEtBQUssRUFBRSxPQUFPO2lDQUNmOzZCQUNGO3lCQUNGLENBQUM7d0JBQ0YsZUFBZSxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFOzRCQUMvRCxVQUFVLEVBQUU7Z0NBQ1Y7b0NBQ0UsSUFBSSxFQUFFLGtCQUFrQjtvQ0FDeEIsUUFBUSxFQUFFO3dDQUNSLElBQUksRUFBRSxPQUFPO3FDQUNkO29DQUNELEtBQUssRUFBRSxNQUFNO2lDQUNkOzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRW50aXR5UXVlcnlUeXBlLFxuICBBWFBGaWxlU3RvcmFnZUluZm8sXG4gIEFYUEZpbGVTdG9yYWdlU2VydmljZSxcbiAgY3JlYXRlQWxsUXVlcnlWaWV3LFxuICBjcmVhdGVRdWVyeVZpZXcsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEZpbGVMaXN0SXRlbSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1BcHBQcm9tb3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm9tb3Rpb24uc2VydmljZSc7XG5cbi8qKlxuICogRGVlcGx5IHNhbml0aXplcyBhbiBvYmplY3QgZm9yIHN0b3JhZ2UgaW4gSW5kZXhlZERCIGJ5IHJlbW92aW5nIG5vbi1zZXJpYWxpemFibGUgY29udGVudFxuICovXG5mdW5jdGlvbiBzYW5pdGl6ZUZvclN0b3JhZ2Uob2JqOiBhbnkpOiBhbnkge1xuICBpZiAoIW9iaikge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvLyBIYW5kbGUgcHJpbWl0aXZlIHZhbHVlc1xuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gSGFuZGxlIGFycmF5c1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoKGl0ZW0pID0+IHNhbml0aXplRm9yU3RvcmFnZShpdGVtKSk7XG4gIH1cblxuICAvLyBIYW5kbGUgRGF0ZSBvYmplY3RzXG4gIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8vIEhhbmRsZSBGaWxlIG9iamVjdHMgc3BlY2lhbGx5XG4gIGlmIChvYmogaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgLy8gRmlsZSBvYmplY3RzIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHksIHJldHVybiBhcyBpc1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvLyBIYW5kbGUgQmxvYiBvYmplY3RzXG4gIGlmIChvYmogaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgLy8gQmxvYiBvYmplY3RzIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHlcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gSGFuZGxlIHJlZ3VsYXIgb2JqZWN0c1xuICBjb25zdCBjbGVhbmVkT2JqOiBhbnkgPSB7fTtcblxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgLy8gU2tpcCBmdW5jdGlvbnMsIHN5bWJvbHMgYW5kIG90aGVyIG5vbi1zZXJpYWxpemFibGUgdHlwZXNcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBudWxsIHZhbHVlc1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgY2xlYW5lZE9ialtrZXldID0gbnVsbDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIFJlY3Vyc2l2ZWx5IHNhbml0aXplIG9iamVjdHNcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgY2xlYW5lZE9ialtrZXldID0gc2FuaXRpemVGb3JTdG9yYWdlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYW5lZE9ialtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNsZWFuZWRPYmo7XG59XG5cbi8qKlxuICogU2FuaXRpemVzIGEgZmlsZW5hbWUgYnk6XG4gKiAxLiBSZW1vdmluZyBzcGVjaWFsIGNoYXJhY3RlcnNcbiAqIDIuIFJlcGxhY2luZyBzcGFjZXMgd2l0aCBoeXBoZW5zXG4gKiAzLiBFbnN1cmluZyB1bmlxdWUgdGltZXN0YW1wXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplRmlsZU5hbWUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghZmlsZU5hbWUpIHJldHVybiAnJztcblxuICAvLyBHZXQgZmlsZSBleHRlbnNpb25cbiAgY29uc3QgZXh0ID0gZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcblxuICAvLyBHZXQgYmFzZSBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uXG4gIGxldCBiYXNlTmFtZSA9IGZpbGVOYW1lLnNsaWNlKDAsIC0oZXh0Lmxlbmd0aCArIDEpKTtcblxuICAvLyBSZW1vdmUgc3BlY2lhbCBjaGFyYWN0ZXJzIGFuZCByZXBsYWNlIHNwYWNlcyB3aXRoIGh5cGhlbnNcbiAgYmFzZU5hbWUgPSBiYXNlTmFtZVxuICAgIC5yZXBsYWNlKC9bXlxcd1xccy1dL2csICcnKSAvLyBSZW1vdmUgc3BlY2lhbCBjaGFycyBleGNlcHQgc3BhY2VzIGFuZCBoeXBoZW5zXG4gICAgLnJlcGxhY2UoL1xccysvZywgJy0nKSAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIGh5cGhlbnNcbiAgICAucmVwbGFjZSgvLSsvZywgJy0nKSAvLyBSZXBsYWNlIG11bHRpcGxlIGh5cGhlbnMgd2l0aCBzaW5nbGUgaHlwaGVuXG4gICAgLnRyaW0oKTtcblxuICAvLyBBZGQgdGltZXN0YW1wIHRvIGVuc3VyZSB1bmlxdWVuZXNzXG4gIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gIC8vIENvbWJpbmUgZXZlcnl0aGluZ1xuICByZXR1cm4gYCR7YmFzZU5hbWV9LSR7dGltZXN0YW1wfS4ke2V4dH1gO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbW90aW9uRW50aXR5RmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgY29uc3QgZGF0YVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhNQXBwUHJvbW90aW9uU2VydmljZSk7XG4gIGNvbnN0IGZpbGVTdG9yYWdlU2VydmljZSA9IGluamVjdG9yLmdldChBWFBGaWxlU3RvcmFnZVNlcnZpY2UpO1xuICBjb25zdCBpMThuID0gUm9vdENvbmZpZy5jb25maWcuaTE4bjtcblxuICBjb25zdCBlbnRpdHlEZWY6IEFYUEVudGl0eSA9IHtcbiAgICBtb2R1bGU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgbmFtZTogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSxcbiAgICBzb3VyY2U6ICcnLFxuICAgIHRpdGxlOiBSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi50aXRsZSxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpbmRpdmlkdWFsOiBSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi50aXRsZSxcbiAgICAgIHBsdXJhbDogUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24udGl0bGVQbHVyYWwsXG4gICAgICBzZWFyY2hSZXN1bHQ6IHtcbiAgICAgICAgdGl0bGU6ICd7eyB0aXRsZSB9fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBSb290Q29uZmlnLm1vZHVsZS50aXRsZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZWxhdGVkRW50aXRpZXM6IFtdLFxuICAgIGdyb3VwczogW1xuICAgICAge1xuICAgICAgICBpZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHRpdGxlOiAnUHJvbW90aW9uJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY29tbWVudHMnLFxuICAgICAgICB0aXRsZTogJ0NvbW1lbnRzJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHRpdGxlOiAnSUQnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3V1aWQnLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgICAgdW5pcXVlOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICB0aXRsZTogYHQoXCJ0aXRsZVwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pYCxcbiAgICAgICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgIGFkdmFuY2U6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmxpbmU6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBydWxlOiAncmVxdWlyZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgIHRpdGxlOiBgdChcImJvZHlcIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLFxuICAgICAgICBncm91cElkOiAncHJvbW90aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cucmljaFRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBydWxlOiAncmVxdWlyZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaW1hZ2VJZCcsXG4gICAgICAgIHRpdGxlOiBgdChcIkdhbGxlcnlcIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLFxuICAgICAgICBncm91cElkOiAncHJvbW90aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZmlsZVVwbG9hZGVyLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb250ZW50VHlwZScsXG4gICAgICAgIHRpdGxlOiBgdChcImNvbnRlbnRUeXBlXCIsIHsgc2NvcGU6IFwiJHtpMThufVwiIH0pYCxcbiAgICAgICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICB0ZXh0RmllbGQ6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgICB7IHRpdGxlOiAnTWVkaWEnLCBuYW1lOiAnbWVkaWEnIH0sXG4gICAgICAgICAgICAgICAgeyB0aXRsZTogJ1RleHQnLCBuYW1lOiAndGV4dCcgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgIGFkdmFuY2U6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBydWxlOiAncmVxdWlyZWQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbm93JyxcbiAgICAgICAgdGl0bGU6IGB0KFwibm93XCIsIHsgc2NvcGU6IFwiJHtpMThufVwiIH0pYCxcbiAgICAgICAgZ3JvdXBJZDogJ3Byb21vdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHRCbG9ja0xheW91dCxcbiAgICAgICAgICAgIG9wdGlvbnM6e1xuICAgICAgICAgICAgICBjb250ZW50IDogYHt7IHZhcmlhYmxlcy5leGVjdXRlKFwibm93XCIpIH19YFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnc2hhcGUnLFxuICAgICAgLy8gICB0aXRsZTogYHQoXCJzaGFwZVwiLCB7IHNjb3BlOiBcIiR7aTE4bn1cIiB9KWAsXG4gICAgICAvLyAgIGdyb3VwSWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgLy8gICBzY2hlbWE6IHtcbiAgICAgIC8vICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAvLyAgICAgICBvcHRpb25zOiB7XG4gICAgICAvLyAgICAgICAgIHZhbHVlRmllbGQ6ICduYW1lJyxcbiAgICAgIC8vICAgICAgICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgICAgLy8gICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAvLyAgICAgICAgICAgeyB0aXRsZTogJ0NpcmNsZScsIG5hbWU6ICdjaXJjbGUnIH0sXG4gICAgICAvLyAgICAgICAgICAgeyB0aXRsZTogJ1NxdWFyZScsIG5hbWU6ICdzcXVhcmUnIH0sXG4gICAgICAvLyAgICAgICAgIF0sXG4gICAgICAvLyAgICAgICAgIGRpcmVjdGlvbjogJ2hvcml6b250YWwnLFxuICAgICAgLy8gICAgICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICAvLyAgICAgICAgIGFjY2VwdDogJycsXG4gICAgICAvLyAgICAgICB9LFxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgIH0sXG4gICAgICAvLyAgIHZhbGlkYXRpb25zOiBbXG4gICAgICAvLyAgICAge1xuICAgICAgLy8gICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICBdLFxuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICAgIHRpdGxlOiBgdChcInBsYWNlbWVudFwiLCB7IHNjb3BlOiBcIiR7aTE4bn1cIiB9KWAsXG4gICAgICAgIGdyb3VwSWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTaWRlIE1lbnUgRm9vdGVyJyxcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdzaWRlLW1lbnUtZm9vdGVyJyxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0LWVkaXRvcicsXG4gICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ05hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAndGVzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aXRsZTogJ1NpZGUgTWVudSBIZWFkZXInLFxuICAgICAgICAgICAgICAgICAgbmFtZTogJ3NpZGUtbWVudS1oZWFkZXInLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQtZWRpdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ25hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICd0ZXN0JyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBkaXJlY3Rpb246ICdob3Jpem9udGFsJyxcbiAgICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6IFwibWV0YWRhYXRhXCIsXG4gICAgICAvLyAgIHRpdGxlOiBcIk1ldGEgRGF0YVwiLFxuICAgICAgLy8gICBncm91cElkOiAncHJvbW90aW9uJyxcbiAgICAgIC8vICAgc2NoZW1hOiB7XG4gICAgICAvLyAgICAgZGF0YVR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIGludGVyZmFjZToge1xuICAgICAgLy8gICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgIC8vICAgICAgIC8vIGNoaWxkcmVuOiBcInt7IGNvbnRleHQuZXZhbCgncGxhY2VtZW50Jykub3B0aW9ucyB9fVwiIGFzIGFueSxcbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICB9XG4gICAgICAvL30sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjb21tZW50cycsXG4gICAgICAgIHRpdGxlOiBgQ29tbWVudHNgLFxuICAgICAgICBncm91cElkOiAnY29tbWVudHMnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiAnY29tbWVudCcsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHJlZnJlbmNlVHlwZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSArICcuJyArIFJvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWUsXG4gICAgICAgICAgICAgIHJlZnJlbmNlSWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJpZFwiKSB9fScsXG4gICAgICAgICAgICAgIHN1YmplY3Q6ICd7eyBjb250ZXh0LmV2YWwoXCJ0aXRsZVwiKSB9fScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29sdW1uczogW3sgbmFtZTogJ3RpdGxlJyB9LCB7IG5hbWU6ICdwbGFjZW1lbnQnIH0sIHsgbmFtZTogJ2ltYWdlSWQnIH1dLFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBjcmVhdGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGRhdGEgPSBzYW5pdGl6ZUZvclN0b3JhZ2UoZGF0YSk7XG4gICAgICAgICAgY29uc3QgZW50aXR5UGF5bG9hZCA9IHsgLi4uZGF0YSB9O1xuICAgICAgICAgIGVudGl0eVBheWxvYWQuaW1hZ2VJZCA9IGVudGl0eVBheWxvYWQuaW1hZ2VJZCB8fCBbXTtcbiAgICAgICAgICBjb25zdCBmaWxlc1RvVXBsb2FkQWZ0ZXJTYXZlOiBBcnJheTx7IGZpbGVJdGVtOiBBWFBGaWxlTGlzdEl0ZW07IGJsb2I6IEZpbGUgfT4gPSBbXTtcblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVudGl0eVBheWxvYWQuaW1hZ2VJZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEltYWdlSWRGb3JFbnRpdHlTYXZlOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlSXRlbSBvZiBlbnRpdHlQYXlsb2FkLmltYWdlSWQgYXMgQVhQRmlsZUxpc3RJdGVtW10pIHtcbiAgICAgICAgICAgICAgaWYgKGZpbGVJdGVtLnNvdXJjZT8ua2luZCA9PT0gJ2Jsb2InICYmIGZpbGVJdGVtLnNvdXJjZS52YWx1ZSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgICAgICAvLyBTYW5pdGl6ZSB0aGUgZmlsZW5hbWVcbiAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWROYW1lID0gc2FuaXRpemVGaWxlTmFtZShmaWxlSXRlbS5uYW1lKTtcbiAgICAgICAgICAgICAgICBmaWxlc1RvVXBsb2FkQWZ0ZXJTYXZlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZmlsZUl0ZW06IHsgLi4uZmlsZUl0ZW0sIG5hbWU6IHNhbml0aXplZE5hbWUgfSxcbiAgICAgICAgICAgICAgICAgIGJsb2I6IGZpbGVJdGVtLnNvdXJjZS52YWx1ZSBhcyBGaWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlSWRGb3JFbnRpdHlTYXZlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgdGVtcElkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHNhbml0aXplZE5hbWUsXG4gICAgICAgICAgICAgICAgICBzaXplOiBmaWxlSXRlbS5zaXplLFxuICAgICAgICAgICAgICAgICAgdHlwZTogKGZpbGVJdGVtLnNvdXJjZS52YWx1ZSBhcyBGaWxlKS50eXBlLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAncGVuZGluZ191cGxvYWQnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGZpbGVJdGVtLnNvdXJjZT8ua2luZCA9PT0gJ2ZpbGVJZCcgJiZcbiAgICAgICAgICAgICAgICBmaWxlSXRlbS5pZCAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgYSBmaWxlSWQsIHdlIGFzc3VtZSBpdCdzIGFscmVhZHkgcHJvY2Vzc2VkLiBXZSBkb24ndCBoYXZlIHR5cGUgZGlyZWN0bHkgb24gQVhQRmlsZUxpc3RJdGVtLlxuICAgICAgICAgICAgICAgIC8vIFdlJ2xsIHJlY29uc3RydWN0IGl0IGZyb20gZmlsZVN0b3JhZ2VTZXJ2aWNlIG9yIGl0IHNob3VsZCBiZSBwYXJ0IG9mIHdoYXQncyBzYXZlZCBpZiBuZWVkZWQuXG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkSW1hZ2VJZEZvckVudGl0eVNhdmUucHVzaCh7XG4gICAgICAgICAgICAgICAgICBpZDogZmlsZUl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICAgIC8vIHR5cGU6IGZpbGVJdGVtLnR5cGUsIC8vIFJlbW92ZWQ6IEFYUEZpbGVMaXN0SXRlbSBkb2VzIG5vdCBoYXZlIC50eXBlXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6ICd1cGxvYWRlZCcsXG4gICAgICAgICAgICAgICAgICBzb3VyY2U6IHsga2luZDogJ2ZpbGVJZCcsIHZhbHVlOiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlSXRlbS5pZCAmJiBmaWxlSXRlbS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgZm9yIGl0ZW1zIHRoYXQgbWlnaHQgYmUgZnJvbSBhIHByZXZpb3VzIHNhdmVcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWRJbWFnZUlkRm9yRW50aXR5U2F2ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGlkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzaXplOiBmaWxlSXRlbS5zaXplLFxuICAgICAgICAgICAgICAgICAgLy8gdHlwZTogZmlsZUl0ZW0udHlwZSwgLy8gUmVtb3ZlZDogQVhQRmlsZUxpc3RJdGVtIGRvZXMgbm90IGhhdmUgLnR5cGVcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogZmlsZUl0ZW0uc3RhdHVzLCAvLyBQcmVzZXJ2ZSBleGlzdGluZyBzdGF0dXNcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogZmlsZUl0ZW0uc291cmNlID8geyBraW5kOiBmaWxlSXRlbS5zb3VyY2Uua2luZCwgdmFsdWU6IGZpbGVJdGVtLnNvdXJjZS52YWx1ZSB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbnRpdHlQYXlsb2FkLmltYWdlSWQgPSBwcm9jZXNzZWRJbWFnZUlkRm9yRW50aXR5U2F2ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzYXZlZEVudGl0eUlkID0gYXdhaXQgZGF0YVNlcnZpY2UuaW5zZXJ0T25lKGVudGl0eVBheWxvYWQpO1xuICAgICAgICAgIC8vIGNvbnN0IGVudGl0eUlkID0gc2F2ZWRFbnRpdHkuaWQ7IC8vIENvcnJlY3RlZCBiYXNlZCBvbiB0eXBpY2FsIHNlcnZpY2UgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBmaW5hbEltYWdlSWRSZWZlcmVuY2VzOiBhbnlbXSA9IChlbnRpdHlQYXlsb2FkLmltYWdlSWQgfHwgW10pLmZpbHRlcihcbiAgICAgICAgICAgIChmOiBhbnkpID0+IGYuc3RhdHVzICE9PSAncGVuZGluZ191cGxvYWQnLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHsgZmlsZUl0ZW0sIGJsb2IgfSBvZiBmaWxlc1RvVXBsb2FkQWZ0ZXJTYXZlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIWZpbGVTdG9yYWdlU2VydmljZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZmlsZVN0b3JhZ2VTZXJ2aWNlIGlzIG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZmlsZVN0b3JhZ2VJbmZvOiBBWFBGaWxlU3RvcmFnZUluZm8gPSBhd2FpdCBmaWxlU3RvcmFnZVNlcnZpY2Uuc2F2ZSh7XG4gICAgICAgICAgICAgICAgZmlsZTogYmxvYixcbiAgICAgICAgICAgICAgICByZWZJZDogc2F2ZWRFbnRpdHlJZCxcbiAgICAgICAgICAgICAgICByZWZUeXBlOiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWV9YCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJycsXG4gICAgICAgICAgICAgICAgbmFtZTogYmxvYi5uYW1lLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYXdhaXQgZmlsZVN0b3JhZ2VTZXJ2aWNlLmNvbW1pdChmaWxlU3RvcmFnZUluZm8uZmlsZUlkKTtcblxuICAgICAgICAgICAgICBmaW5hbEltYWdlSWRSZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBmaWxlU3RvcmFnZUluZm8uZmlsZUlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVTdG9yYWdlSW5mby5uYW1lIHx8IGJsb2IubmFtZSxcbiAgICAgICAgICAgICAgICBzaXplOiBmaWxlU3RvcmFnZUluZm8uc2l6ZSB8fCBibG9iLnNpemUsXG4gICAgICAgICAgICAgICAgdHlwZTogZmlsZVN0b3JhZ2VJbmZvLm1pbWVUeXBlIHx8IGJsb2IudHlwZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICd1cGxvYWRlZCcsXG4gICAgICAgICAgICAgICAgc291cmNlOiB7IGtpbmQ6ICdmaWxlSWQnLCB2YWx1ZTogZmlsZVN0b3JhZ2VJbmZvLmZpbGVJZCB9LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgIC8vIFR5cGVkIGVycm9yXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ0Vycm9yIHVwbG9hZGluZyBmaWxlIHRvIEZpbGVTdG9yYWdlIGZvciBlbnRpdHlJZDonLFxuICAgICAgICAgICAgICAgIHNhdmVkRW50aXR5SWQsXG4gICAgICAgICAgICAgICAgJ2ZpbGU6JyxcbiAgICAgICAgICAgICAgICBmaWxlSXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZmluYWxJbWFnZUlkUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0ZW1wSWQ6IGZpbGVJdGVtLmlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAoYmxvYiBhcyBGaWxlKS50eXBlLCAvLyBDb3JyZWN0bHkgYWNjZXNzIHR5cGUgZnJvbSBCbG9iL0ZpbGVcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICd1cGxvYWRfZmFpbGVkJyxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWxlc1RvVXBsb2FkQWZ0ZXJTYXZlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBuZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZW50aXR5UGF5bG9hZC5pbWFnZUlkICYmIGVudGl0eVBheWxvYWQuaW1hZ2VJZC5sZW5ndGggPT09IGZpbmFsSW1hZ2VJZFJlZmVyZW5jZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG9sZElkcyA9IGVudGl0eVBheWxvYWQuaW1hZ2VJZFxuICAgICAgICAgICAgICAgIC5tYXAoKGY6IGFueSkgPT4gZi5pZCB8fCBmLnRlbXBJZClcbiAgICAgICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgICAgICAgICAgY29uc3QgbmV3SWRzID0gZmluYWxJbWFnZUlkUmVmZXJlbmNlc1xuICAgICAgICAgICAgICAgIC5tYXAoKGY6IGFueSkgPT4gZi5pZCB8fCBmLnRlbXBJZClcbiAgICAgICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgICAgICAgICAgaWYgKG9sZElkcyA9PT0gbmV3SWRzICYmICFmaW5hbEltYWdlSWRSZWZlcmVuY2VzLnNvbWUoKGY6IGFueSkgPT4gZi5zdGF0dXMgPT09ICd1cGxvYWRfZmFpbGVkJykpIHtcbiAgICAgICAgICAgICAgICBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZWVkc1VwZGF0ZSkge1xuICAgICAgICAgICAgICAvLyBBc3N1bWluZyB1cGRhdGVPbmUgdGFrZXMgdGhlIElEIGFuZCBhbiBvYmplY3Qgb2YgZmllbGRzIHRvIHVwZGF0ZVxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhmaW5hbEltYWdlSWRSZWZlcmVuY2VzKTtcblxuICAgICAgICAgICAgICBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVPbmUoc2F2ZWRFbnRpdHlJZCwgeyBpbWFnZUlkOiBmaW5hbEltYWdlSWRSZWZlcmVuY2VzIGFzIGFueSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4geyBpZDogc2F2ZWRFbnRpdHlJZCB9O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5kZWxldGVPbmUoaWQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpO1xuXG4gICAgICAgICAgY29uc3QgZW50aXR5SWQgPSBkYXRhLmlkO1xuICAgICAgICAgIGNvbnN0IGZpbGVzVG9VcGxvYWQ6IEFycmF5PHsgZmlsZUl0ZW06IEFYUEZpbGVMaXN0SXRlbTsgYmxvYjogRmlsZSB9PiA9IFtdO1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlczogYW55W10gPSBbXTtcblxuICAgICAgICAgIGlmIChkYXRhLmltYWdlSWQgJiYgQXJyYXkuaXNBcnJheShkYXRhLmltYWdlSWQpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVJdGVtIG9mIGRhdGEuaW1hZ2VJZCBhcyBBWFBGaWxlTGlzdEl0ZW1bXSkge1xuICAgICAgICAgICAgICBpZiAoZmlsZUl0ZW0uc3RhdHVzID09PSAnZGVsZXRlZCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChmaWxlSXRlbS5zb3VyY2U/LmtpbmQgPT09ICdibG9iJyAmJiBmaWxlSXRlbS5zb3VyY2UudmFsdWUgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICAgICAgLy8gU2FuaXRpemUgdGhlIGZpbGVuYW1lIGZvciBuZXcgdXBsb2Fkc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNhbml0aXplZE5hbWUgPSBzYW5pdGl6ZUZpbGVOYW1lKGZpbGVJdGVtLm5hbWUpO1xuICAgICAgICAgICAgICAgIGZpbGVzVG9VcGxvYWQucHVzaCh7XG4gICAgICAgICAgICAgICAgICBmaWxlSXRlbTogeyAuLi5maWxlSXRlbSwgbmFtZTogc2FuaXRpemVkTmFtZSB9LFxuICAgICAgICAgICAgICAgICAgYmxvYjogZmlsZUl0ZW0uc291cmNlLnZhbHVlIGFzIEZpbGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgZmlsZUl0ZW0uc291cmNlPy5raW5kID09PSAnZmlsZUlkJyAmJlxuICAgICAgICAgICAgICAgIGZpbGVJdGVtLmlkICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGZpbGVJdGVtLnNvdXJjZS52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhbiBleGlzdGluZyBmaWxlLCBrZWVwIGl0cyByZWZlcmVuY2UuXG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkSW1hZ2VSZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgaWQ6IGZpbGVJdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGVJdGVtLnNpemUsXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IGZpbGVJdGVtLnN0YXR1cyB8fCAndXBsb2FkZWQnLFxuICAgICAgICAgICAgICAgICAgc291cmNlOiB7IGtpbmQ6ICdmaWxlSWQnLCB2YWx1ZTogZmlsZUl0ZW0uc291cmNlLnZhbHVlIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZUl0ZW0uaWQgJiYgZmlsZUl0ZW0ubmFtZSkge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGlkOiBmaWxlSXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzaXplOiBmaWxlSXRlbS5zaXplLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBmaWxlSXRlbS5zdGF0dXMgfHwgJ3VwbG9hZGVkJyxcbiAgICAgICAgICAgICAgICAgIHNvdXJjZTogZmlsZUl0ZW0uc291cmNlID8geyBraW5kOiBmaWxlSXRlbS5zb3VyY2Uua2luZCwgdmFsdWU6IGZpbGVJdGVtLnNvdXJjZS52YWx1ZSB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVXBsb2FkIG5ldyBmaWxlcyBhbmQgYWRkIHRoZWlyIHN1Y2Nlc3NmdWwvZmFpbGVkIGluZm8gdG8gcHJvY2Vzc2VkSW1hZ2VSZWZlcmVuY2VzXG4gICAgICAgICAgZm9yIChjb25zdCB7IGZpbGVJdGVtLCBibG9iIH0gb2YgZmlsZXNUb1VwbG9hZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKCFmaWxlU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpbGVTdG9yYWdlU2VydmljZSBpcyBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVTdG9yYWdlSW5mbzogQVhQRmlsZVN0b3JhZ2VJbmZvID0gYXdhaXQgZmlsZVN0b3JhZ2VTZXJ2aWNlLnNhdmUoe1xuICAgICAgICAgICAgICAgIGZpbGU6IGJsb2IsXG4gICAgICAgICAgICAgICAgcmVmSWQ6IGVudGl0eUlkLFxuICAgICAgICAgICAgICAgIHJlZlR5cGU6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZX1gLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnJyxcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWxlSXRlbS5uYW1lLCAvLyBVc2UgdGhlIHNhbml0aXplZCBuYW1lIGZyb20gZmlsZUl0ZW1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGF3YWl0IGZpbGVTdG9yYWdlU2VydmljZS5jb21taXQoZmlsZVN0b3JhZ2VJbmZvLmZpbGVJZCk7XG5cbiAgICAgICAgICAgICAgcHJvY2Vzc2VkSW1hZ2VSZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBmaWxlU3RvcmFnZUluZm8uZmlsZUlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVTdG9yYWdlSW5mby5uYW1lIHx8IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZVN0b3JhZ2VJbmZvLnNpemUgfHwgYmxvYi5zaXplLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZpbGVTdG9yYWdlSW5mby5taW1lVHlwZSB8fCBibG9iLnR5cGUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAndXBsb2FkZWQnLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogeyBraW5kOiAnZmlsZUlkJywgdmFsdWU6IGZpbGVTdG9yYWdlSW5mby5maWxlSWQgfSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdFcnJvciB1cGxvYWRpbmcgZmlsZSB0byBGaWxlU3RvcmFnZSBkdXJpbmcgdXBkYXRlIGZvciBlbnRpdHlJZDonLFxuICAgICAgICAgICAgICAgIGVudGl0eUlkLFxuICAgICAgICAgICAgICAgICdmaWxlOicsXG4gICAgICAgICAgICAgICAgZmlsZUl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHByb2Nlc3NlZEltYWdlUmVmZXJlbmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0ZW1wSWQ6IGZpbGVJdGVtLmlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVJdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZmlsZUl0ZW0uc2l6ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAoYmxvYiBhcyBGaWxlKS50eXBlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3VwbG9hZF9mYWlsZWQnLFxuICAgICAgICAgICAgICAgIGVycm9yOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBmaW5hbCBkYXRhIHBheWxvYWQgZm9yIHRoZSB1cGRhdGUuXG4gICAgICAgICAgY29uc3QgZmluYWxVcGRhdGVQYXlsb2FkID0geyAuLi5kYXRhIH07XG4gICAgICAgICAgZmluYWxVcGRhdGVQYXlsb2FkLmltYWdlSWQgPSBwcm9jZXNzZWRJbWFnZVJlZmVyZW5jZXM7XG5cbiAgICAgICAgICBjb25zdCBmdWxseVNhbml0aXplZFBheWxvYWQgPSBzYW5pdGl6ZUZvclN0b3JhZ2UoZmluYWxVcGRhdGVQYXlsb2FkKTtcblxuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVPbmUoZW50aXR5SWQsIGZ1bGx5U2FuaXRpemVkUGF5bG9hZCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcXVlcmllczoge1xuICAgICAgYnlLZXk6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gRW5zdXJlIGlkIGlzIGEgdmFsaWQga2V5IGZvciBJbmRleGVkREIgLSBuZWVkcyB0byBiZSBzdHJpbmcgb3IgbnVtYmVyXG4gICAgICAgICAgICBsZXQgdmFsaWRJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAvLyBJZiBpZCBpcyBhbiBvYmplY3QgKGUuZy4sIGZyb20gcm91dGVyIHBhcmFtcyBvciBjb21wbGV4IHN0cnVjdHVyZSlcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaWQgPT09ICdvYmplY3QnICYmIGlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmICgnaWQnIGluIGlkKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRJZCA9IFN0cmluZygoaWQgYXMgYW55KS5pZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsaWRJZCA9IFN0cmluZyhpZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdDb252ZXJ0ZWQgb2JqZWN0IGlkIHRvIHN0cmluZzonLCB2YWxpZElkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWQgPT09IHVuZGVmaW5lZCB8fCBpZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGlkIHBhcmFtZXRlcjogbnVsbCBvciB1bmRlZmluZWQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIHN0cmluZyB0byBlbnN1cmUgY29uc2lzdGVuY3lcbiAgICAgICAgICAgICAgdmFsaWRJZCA9IFN0cmluZyhpZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBkYXRhU2VydmljZS5nZXRPbmUodmFsaWRJZCk7XG5cbiAgICAgICAgICAgICAgLy8gSWYgbm8gZGF0YSB3YXMgZm91bmRcbiAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBObyByZWNvcmQgZm91bmQgd2l0aCBpZDogJHt2YWxpZElkfWApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyBkYXRhIHdpdGggSUQgJHt2YWxpZElkfTpgLCBlcnJvcik7XG4gICAgICAgICAgICAgIC8vIFJldHVybiBudWxsIGluc3RlYWQgb2YgdGhyb3dpbmcgdG8gYXZvaWQgY2FzY2FkaW5nIGVycm9yc1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ3JpdGljYWwgZXJyb3IgaW4gYnlLZXkgcXVlcnk6JywgZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGluc3RlYWQgb2YgdGhyb3dpbmcgdG8gYXZvaWQgVUkgZXJyb3JzXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuU2luZ2xlLFxuICAgICAgfSxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5xdWVyeSh7IHNraXA6IGUuc2tpcCwgdGFrZTogZS50YWtlLCBmaWx0ZXI6IGUuZmlsdGVyIH0pO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuTGlzdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpbnRlcmZhY2VzOiB7XG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgY3JlYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdwcm9tb3Rpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdub3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2JvZHknLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdpbWFnZUlkJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnY29udGVudFR5cGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3NoYXBlJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdwbGFjZW1lbnQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ21ldGFkYXRhJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEwLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGU6IHtcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3Byb21vdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbm93JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnc2hhcGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3BsYWNlbWVudCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICBuYW1lOiAnbWV0YWRhdGEnLFxuICAgICAgICAgICAgLy8gICBsYXlvdXQ6IHtcbiAgICAgICAgICAgIC8vICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgIC8vICAgICAgIGxnOiB7XG4gICAgICAgICAgICAvLyAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgLy8gICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgICAgICAvLyAgICAgICB9LFxuICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHNpbmdsZToge1xuICAgICAgICAgIHRpdGxlOiAne3t0aXRsZX19JyxcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3Byb21vdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2NvbW1lbnRzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdub3cnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2JvZHknLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2VJZCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2NvbnRlbnRUeXBlJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA0LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdzaGFwZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNCxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAncGxhY2VtZW50JyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA0LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjb21tZW50cycsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA3LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGFjdGlvbnM6IFtdLFxuICAgICAgICB9LFxuICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgdGl0bGU6ICd0KFwicHJvbW90aW9uUGx1cmFsXCIsIHsgc2NvcGU6IFwiY29udGVudC1tYW5hZ2VtZW50XCIgfSknLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6IGB0KFwiY3JlYXRlXCIsIHsgc2NvcGU6IFwiY29tbW9uXCIgfSlgLFxuICAgICAgICAgICAgICBjb21tYW5kOiAnY3JlYXRlLWVudGl0eScsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAndChcImRlbGV0ZUl0ZW1zXCIsIHsgc2NvcGU6IFwiY29tbW9uXCIgfSknLFxuICAgICAgICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICd0KFwiZGV0YWlsXCIsIHsgc2NvcGU6IFwiY29tbW9uXCIgfSknLFxuICAgICAgICAgICAgICBjb21tYW5kOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndmlldycsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAndChcImRlbGV0ZVwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ2RlbGV0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICd0KFwiZW50aXR5Lm1vZGlmeVwiLCB7IHNjb3BlOiBcImNvbW1vblwiIH0pJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ3F1aWNrLW1vZGlmeS1lbnRpdHknLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBge3sgbG9jay5jaGVjayhjb250ZXh0LmV2YWwoXCJpZFwiKSwgXCIke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZX1cIikgfX1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vVE9ETzogYWRkIHRoaXMgdG8gdGhlIGVudGl0eVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0Bkb2N1bWVudC1tYW5hZ2VtZW50OmFjdGlvbnMudXBsb2FkLWZpbGVzJyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGlkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgICAgICAgICAgZmlsZXM6ICd7eyBjb250ZXh0LmV2YWwoXCJpbWFnZUlkXCIpIH19JyxcbiAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWNjZXB0OiAnLmpwZywuanBlZywucG5nLC5naWYsLndlYnAnLFxuICAgICAgICAgICAgICAgICAga2V5OiAnaW1hZ2VJZCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndXBsb2FkJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdAYWN0aXZpdHktbG9nOmFjdGlvbnMudmlldy1oaXN0b3J5JyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdzaG93LXZlcnNpb24taGlzdG9yeS1wb3B1cCcsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgcmVmSWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJpZFwiKSB9fScsXG4gICAgICAgICAgICAgICAgICByZWZUeXBlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lICsgJy4nICsgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICd2ZXJzaW9uLWhpc3RvcnknLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0Bjb252ZXJzYXRpb246YWN0aW9ucy5zaG93LWNvbW1lbnQtcG9wdXAnLFxuICAgICAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3Nob3ctY29tbWVudC1wb3B1cCcsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgcmVmSWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJpZFwiKSB9fScsXG4gICAgICAgICAgICAgICAgICByZWZUeXBlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lICsgJy4nICsgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgIHN1YmplY3Q6ICd7eyBjb250ZXh0LmV2YWwoXCJ0aXRsZVwiKSB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICB0eXBlOiAndmVyc2lvbi1oaXN0b3J5JyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdDb21wYXJlJyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdzaG93LWVudGl0eS1yZWNvcmRzLWNvbXBhcmUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICd2ZXJzaW9uLWhpc3RvcnknLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdAY29tbW9uOmFjdGlvbnMubG9jaycsXG4gICAgICAgICAgICAgIG5hbWU6ICdsb2NrLWVudGl0eScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnbG9jay1wb3B1cCcsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgcmVmSWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJpZFwiKSB9fScsXG4gICAgICAgICAgICAgICAgICByZWZUeXBlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lICsgJy4nICsgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICAgIGhpZGRlbjogYHt7IGxvY2suY2hlY2soY29udGV4dC5ldmFsKFwiaWRcIiksIFwiJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucHJvbW90aW9uLm5hbWV9XCIpIH19YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQGNvbW1vbjphY3Rpb25zLnVubG9jaycsXG4gICAgICAgICAgICAgIG5hbWU6ICd1bmxvY2stZW50aXR5JyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd1bmxvY2stY29uZmlybScsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgcmVmSWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJpZFwiKSB9fScsXG4gICAgICAgICAgICAgICAgICByZWZUeXBlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lICsgJy4nICsgUm9vdENvbmZpZy5lbnRpdGllcy5wcm9tb3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICAgIGhpZGRlbjogYHt7IChhd2FpdCBsb2NrLmNoZWNrKGNvbnRleHQuZXZhbChcImlkXCIpLCBcIiR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnByb21vdGlvbi5uYW1lfVwiKSkgID09IGZhbHNlIH19YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB2aWV3czogW1xuICAgICAgICAgICAgY3JlYXRlQWxsUXVlcnlWaWV3KHsgc29ydHM6IFt7IG5hbWU6ICd0aXRsZScsIGRpcjogJ2FzYycgfV0gfSksXG4gICAgICAgICAgICBjcmVhdGVRdWVyeVZpZXcoJ21lZGlhJywgYHQoXCJtZWRpYVwiLCB7IHNjb3BlOiBcIiR7aTE4bn1cIiB9KWAsIHRydWUsIHtcbiAgICAgICAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdjb250ZW50VHlwZS5uYW1lJyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdtZWRpYScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY3JlYXRlUXVlcnlWaWV3KCd0ZXh0JywgYHQoXCJ0ZXh0XCIsIHsgc2NvcGU6IFwiJHtpMThufVwiIH0pYCwgdHJ1ZSwge1xuICAgICAgICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbnRlbnRUeXBlLm5hbWUnLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBlbnRpdHlEZWY7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtY29udGVudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2NvbnRlbnQtbWFuYWdlbWVudC9zcmMvYWNvcmV4LW1vZHVsZXMtY29udGVudC1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|