@acorex/modules 20.0.5 → 20.0.6
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/conversation/index.d.ts +157 -217
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CvFiEI1a.mjs → acorex-modules-application-management-module-designer.component-oGgCaUDu.mjs} +2 -2
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CvFiEI1a.mjs.map → acorex-modules-application-management-module-designer.component-oGgCaUDu.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-B10cRw3M.mjs → acorex-modules-auth-acorex-modules-auth-Cj4td3eM.mjs} +9 -9
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-B10cRw3M.mjs.map → acorex-modules-auth-acorex-modules-auth-Cj4td3eM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-C-HPf2jz.mjs → acorex-modules-auth-app-chooser.component-C60idNYx.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-C-HPf2jz.mjs.map → acorex-modules-auth-app-chooser.component-C60idNYx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-eC1_ukrb.mjs → acorex-modules-auth-login.module-siRdi16m.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-eC1_ukrb.mjs.map → acorex-modules-auth-login.module-siRdi16m.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-DpfqRgAl.mjs → acorex-modules-auth-master.layout-BJCAe5Ai.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-DpfqRgAl.mjs.map → acorex-modules-auth-master.layout-BJCAe5Ai.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DAB9dWB8.mjs → acorex-modules-auth-password.component-6-EEsfc2.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DAB9dWB8.mjs.map → acorex-modules-auth-password.component-6-EEsfc2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-rE9yrcGW.mjs → acorex-modules-auth-password.component-VhDUmkMc.mjs} +3 -3
- package/fesm2022/acorex-modules-auth-password.component-VhDUmkMc.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-EGvejNu9.mjs → acorex-modules-auth-routes-BwBn4o81.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-EGvejNu9.mjs.map → acorex-modules-auth-routes-BwBn4o81.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-DF3_fgzH.mjs → acorex-modules-auth-two-factor.module-D7NgZHmC.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-DF3_fgzH.mjs.map → acorex-modules-auth-two-factor.module-D7NgZHmC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-BPb-WS4k.mjs → acorex-modules-auth-user-sessions.component-DhlBCxly.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-BPb-WS4k.mjs.map → acorex-modules-auth-user-sessions.component-DhlBCxly.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1762 -1568
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +9 -9
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +3 -3
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DqpAYmHM.mjs → acorex-modules-platform-management-acorex-modules-platform-management-Dfux0tkB.mjs} +6 -6
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Dfux0tkB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DidjxkmH.mjs → acorex-modules-platform-management-list-version.component-CSNKxghv.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DidjxkmH.mjs.map → acorex-modules-platform-management-list-version.component-CSNKxghv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DcHKHrSK.mjs → acorex-modules-platform-management-settings.provider-C4RaOgkr.mjs} +35 -25
- package/fesm2022/acorex-modules-platform-management-settings.provider-C4RaOgkr.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CtEDcg_B.mjs +589 -0
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CtEDcg_B.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +208 -0
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-security-management.mjs +582 -72
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-R4x5Rq-D.mjs → acorex-modules-workflow-management-task-board.page-Bugxqd0W.mjs} +2 -2
- package/fesm2022/acorex-modules-workflow-management-task-board.page-Bugxqd0W.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +1 -1
- package/package.json +5 -1
- package/report-management/README.md +356 -0
- package/report-management/index.d.ts +39 -0
- package/security-management/index.d.ts +162 -2
- package/fesm2022/acorex-modules-auth-password.component-rE9yrcGW.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DqpAYmHM.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-settings.provider-DcHKHrSK.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs +0 -218
- package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs +0 -41
- package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-BJdbKpRQ.mjs +0 -20
- package/fesm2022/acorex-modules-security-management-permissions-widget-designer.component-BJdbKpRQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-GTmDlgWW.mjs +0 -51
- package/fesm2022/acorex-modules-security-management-permissions-widget-edit.component-GTmDlgWW.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-BZ75aI18.mjs +0 -21
- package/fesm2022/acorex-modules-security-management-permissions-widget-print.component-BZ75aI18.mjs.map +0 -1
- package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-CYQqerAX.mjs +0 -20
- package/fesm2022/acorex-modules-security-management-permissions-widget-view.component-CYQqerAX.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-R4x5Rq-D.mjs.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-platform-management-settings.provider-DcHKHrSK.mjs","sources":["../tmp-esm2022/platform-management/lib/features/common/regional/settings.provider.js"],"sourcesContent":["import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRegionalService, } from '@acorex/platform/common';\nimport { AXPRegionalSetting } from './settings.keys';\nimport { objectKeyValueTransforms } from '@acorex/platform/core';\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport { AXFormatService } from '@acorex/core/format';\nexport class AXMRegionalSettingProvider {\n constructor(injector) {\n this.injector = injector;\n this.regionalService = this.injector.get(AXPRegionalService);\n this.translateService = this.injector.get(AXTranslationService);\n this.formatService = this.injector.get(AXFormatService);\n }\n async provide(context) {\n const trans = async (key) => await this.translateService.translateAsync(`settings.regional.${key}`, { scope: 'regional' });\n const profiles = await this.regionalService.getLocaleProfiles();\n const defaultProfile = profiles.find(p => p.code === 'en-US');\n context\n .addGroup('regional-settings', await trans('title'), await trans('description'), 'fa-light fa-earth-americas')\n // Date & Time Section\n .addSection('date-time', await trans('datetime.title'), await trans('datetime.description'))\n .addSetting({\n key: AXPRegionalSetting.TimeZone,\n title: await trans('datetime.timezone.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: await this.regionalService.getBrowserTimeZoneCode(),\n valueTransforms: objectKeyValueTransforms('code'),\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'code',\n dataSource: await this.regionalService.getTimeZones(),\n },\n },\n description: await trans('datetime.timezone.description'),\n })\n .endSection()\n // Region Section\n .addSection('region', await trans('region.title'), await trans('region.description'))\n .addSetting({\n key: AXPRegionalSetting.LocaleProfile,\n title: await trans('region.format.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.code,\n valueTransforms: objectKeyValueTransforms('code'),\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'code',\n dataSource: profiles,\n },\n },\n description: await trans('region.format.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.Language,\n title: await trans('region.language.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: await this.translateService.getDefaultLang(),\n valueTransforms: objectKeyValueTransforms('code'),\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'code',\n dataSource: await this.regionalService.getAvailableLanguages(),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: `{{ widget.setValue(context.eval('${AXPRegionalSetting.LocaleProfile}')) }}`,\n },\n ],\n },\n description: await trans('region.language.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.Calendar,\n title: await trans('region.calendar.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.calendar.system,\n valueTransforms: objectKeyValueTransforms('value'),\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n {\n text: await trans('region.calendar.options.gregorian'),\n value: 'gregorian'\n },\n {\n text: await trans('region.calendar.options.hijri'),\n value: 'solar-hijri'\n }\n ],\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').calendar.system) }}`,\n ],\n },\n ],\n },\n description: await trans('region.calendar.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.FirstDayOfWeek,\n title: await trans('region.firstday.title'),\n scope: 'T',\n isInherited: false,\n defaultValue: defaultProfile.calendar.week.startsOn,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n {\n text: await trans('region.firstday.options.saturday'),\n value: 6\n },\n {\n text: await trans('region.firstday.options.sunday'),\n value: 0\n },\n {\n text: await trans('region.firstday.options.monday'),\n value: 1\n }\n ],\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').calendar.week.startsOn) }}`,\n ],\n },\n ],\n },\n },\n description: await trans('region.firstday.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.WeekendDays,\n title: await trans('region.workdays.title'),\n scope: 'T',\n isInherited: false,\n defaultValue: defaultProfile.calendar.week.weekends,\n widget: {\n type: AXPWidgetsList.Editors.SelectionList,\n options: {\n multiple: true,\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { text: await trans('region.workdays.options.monday'), value: 1 },\n { text: await trans('region.workdays.options.tuesday'), value: 2 },\n { text: await trans('region.workdays.options.wednesday'), value: 3 },\n { text: await trans('region.workdays.options.thursday'), value: 4 },\n { text: await trans('region.workdays.options.friday'), value: 5 },\n { text: await trans('region.workdays.options.saturday'), value: 6 },\n { text: await trans('region.workdays.options.sunday'), value: 0 }\n ],\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').calendar.week.weekends) }}`,\n ],\n },\n ],\n },\n description: await trans('region.workdays.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.ShortDate,\n title: await trans('region.shortdate.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.formats.date.short,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: `${c.formats.date.short} (${await this.formatService.format(new Date(), 'datetime', { format: c.formats.date.short })})`,\n value: c.formats.date.short\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').formats.date.short) }}`,\n ],\n },\n ],\n },\n description: await trans('region.shortdate.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.LongDate,\n title: await trans('region.longdate.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.formats.date.long,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: `${c.formats.date.long} (${await this.formatService.format(new Date(), 'datetime', { format: c.formats.date.long })})`,\n value: c.formats.date.long\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').formats.date.long) }}`,\n ],\n },\n ],\n },\n description: await trans('region.longdate.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.ShortTime,\n title: await trans('region.shorttime.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.formats.time.short,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: `${c.formats.time.short} (${await this.formatService.format(new Date(), 'datetime', { format: c.formats.time.short })})`,\n value: c.formats.time.short\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').formats.time.short) }}`,\n ],\n },\n ],\n },\n description: await trans('region.shorttime.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.LongTime,\n title: await trans('region.longtime.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.formats.time.long,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: `${c.formats.time.long} (${await this.formatService.format(new Date(), 'datetime', { format: c.formats.time.long })})`,\n value: c.formats.time.long\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').formats.time.long) }}`,\n ],\n },\n ],\n },\n description: await trans('region.longtime.description'),\n })\n .endSection()\n // Unit Settings Section\n .addSection('units', await trans('units.title'), await trans('units.description'))\n .addSetting({\n key: AXPRegionalSetting.TemperatureUnits,\n title: await trans('units.temperature.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.temperature,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: await trans(`units.temperature.options.${c.units.temperature}`),\n value: c.units.temperature\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.temperature) }}`,\n ],\n },\n ],\n },\n description: await trans('units.temperature.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.DistanceUnits,\n title: await trans('units.distance.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.distance,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: await trans(`units.distance.options.${c.units.distance}`),\n value: c.units.distance\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.distance) }}`,\n ],\n },\n ],\n },\n description: await trans('units.distance.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.WeightUnits,\n title: await trans('units.weight.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.weight,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: await trans(`units.weight.options.${c.units.weight}`),\n value: c.units.weight\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.weight) }}`,\n ],\n },\n ],\n },\n description: await trans('units.weight.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.VolumeUnits,\n title: await trans('units.volume.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.volume,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { text: await trans('units.volume.options.liters'), value: 'liters' },\n { text: await trans('units.volume.options.gallons'), value: 'gallons' }\n ],\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.volume) }}`,\n ],\n },\n ],\n },\n description: await trans('units.volume.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.SpeedUnits,\n title: await trans('units.speed.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.speed,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: await trans(`units.speed.options.${c.units.speed}`),\n value: c.units.speed\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.speed) }}`,\n ],\n },\n ],\n },\n description: await trans('units.speed.description'),\n })\n .addSetting({\n key: AXPRegionalSetting.AreaUnits,\n title: await trans('units.area.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: defaultProfile.units.area,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: await Promise.all(profiles.map(async (c) => ({\n text: await trans(`units.area.options.${c.units.area}`),\n value: c.units.area\n }))),\n },\n triggers: [\n {\n event: `{{ events.context('${AXPRegionalSetting.LocaleProfile}') }}`,\n action: [\n `{{ widget.setValue(widget.find('${AXPRegionalSetting.LocaleProfile}').output('item').units.area) }}`,\n ],\n },\n ],\n },\n description: await trans('units.area.description'),\n })\n .endSection()\n .endGroup();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcGxhdGZvcm0tbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2NvbW1vbi9yZWdpb25hbC9zZXR0aW5ncy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsa0JBQWtCLEdBR25CLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKOUIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9DLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUUxQixDQUFDO0lBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNEM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLHFCQUFxQixHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ25JLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBRSxDQUFDO1FBRS9ELE9BQU87YUFDSixRQUFRLENBQ1AsbUJBQW1CLEVBQ25CLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUNwQixNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFDMUIsNEJBQTRCLENBQzdCO1lBRUQsc0JBQXNCO2FBQ3JCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQzNGLFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2hDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQztZQUM3QyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUU7WUFDakUsZUFBZSxFQUFFLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztZQUNqRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRTtpQkFDdEQ7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztTQUMxRCxDQUFDO2FBQ0QsVUFBVSxFQUFFO1lBRWIsaUJBQWlCO2FBQ2hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNwRixVQUFVLENBQUM7WUFDVixHQUFHLEVBQUUsa0JBQWtCLENBQUMsYUFBYTtZQUNyQyxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMscUJBQXFCLENBQUM7WUFDekMsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsY0FBYyxDQUFDLElBQUk7WUFDakMsZUFBZSxFQUFFLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztZQUNqRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsUUFBUTtpQkFDckI7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztTQUN0RCxDQUFDO2FBQ0QsVUFBVSxDQUFDO1lBQ1YsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDaEMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDO1lBQzNDLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUMxRCxlQUFlLEVBQUUsd0JBQXdCLENBQUMsTUFBTSxDQUFDO1lBQ2pELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLEVBQUU7aUJBQy9EO2dCQUNELFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxLQUFLLEVBQUUsc0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsT0FBTzt3QkFDcEUsTUFBTSxFQUFFLG9DQUFvQyxrQkFBa0IsQ0FBQyxhQUFhLFFBQVE7cUJBQ3JGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDeEQsQ0FBQzthQUVELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2hDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztZQUMzQyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDNUMsZUFBZSxFQUFFLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztZQUNsRCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFVBQVUsRUFBRSxPQUFPO29CQUNuQixTQUFTLEVBQUUsTUFBTTtvQkFDakIsVUFBVSxFQUFFO3dCQUNWOzRCQUNFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLFdBQVc7eUJBQ25CO3dCQUNEOzRCQUNFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQywrQkFBK0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLGFBQWE7eUJBQ3JCO3FCQUNGO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxLQUFLLEVBQUUsc0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsT0FBTzt3QkFDcEUsTUFBTSxFQUFFOzRCQUNOLG1DQUFtQyxrQkFBa0IsQ0FBQyxhQUFhLHVDQUF1Qzt5QkFDM0c7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQztTQUN4RCxDQUFDO2FBQ0QsVUFBVSxDQUFDO1lBQ1YsR0FBRyxFQUFFLGtCQUFrQixDQUFDLGNBQWM7WUFDdEMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDO1lBQzNDLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDbkQsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVM7Z0JBQ3RDLE9BQU8sRUFBRTtvQkFDUCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsa0NBQWtDLENBQUM7NEJBQ3JELEtBQUssRUFBRSxDQUFDO3lCQUNUO3dCQUNEOzRCQUNFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLENBQUM7eUJBQ1Q7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDOzRCQUNuRCxLQUFLLEVBQUUsQ0FBQzt5QkFDVDtxQkFDRjtvQkFDRCxRQUFRLEVBQUU7d0JBQ1I7NEJBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87NEJBQ3BFLE1BQU0sRUFBRTtnQ0FDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSw4Q0FBOEM7NkJBQ2xIO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDeEQsQ0FBQzthQUNELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXO1lBQ25DLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztZQUMzQyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFlBQVksRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ25ELE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhO2dCQUMxQyxPQUFPLEVBQUU7b0JBQ1AsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUU7d0JBQ1YsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO3dCQUNqRSxFQUFFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7d0JBQ2xFLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTt3QkFDcEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsa0NBQWtDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO3dCQUNuRSxFQUFFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7d0JBQ2pFLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTt3QkFDbkUsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO3FCQUNsRTtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87d0JBQ3BFLE1BQU0sRUFBRTs0QkFDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSw4Q0FBOEM7eUJBQ2xIO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDeEQsQ0FBQzthQUNELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQ2pDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztZQUM1QyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUc7d0JBQzlILEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLO3FCQUM1QixDQUFDLENBQUMsQ0FDSjtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87d0JBQ3BFLE1BQU0sRUFBRTs0QkFDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSwwQ0FBMEM7eUJBQzlHO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsOEJBQThCLENBQUM7U0FDekQsQ0FBQzthQUNELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2hDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztZQUMzQyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQzlDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUc7d0JBQzVILEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJO3FCQUMzQixDQUFDLENBQUMsQ0FDSjtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87d0JBQ3BFLE1BQU0sRUFBRTs0QkFDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSx5Q0FBeUM7eUJBQzdHO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDeEQsQ0FBQzthQUNELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQ2pDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztZQUM1QyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUc7d0JBQzlILEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLO3FCQUM1QixDQUFDLENBQUMsQ0FDSjtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87d0JBQ3BFLE1BQU0sRUFBRTs0QkFDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSwwQ0FBMEM7eUJBQzlHO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsOEJBQThCLENBQUM7U0FDekQsQ0FBQzthQUNELFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2hDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztZQUMzQyxLQUFLLEVBQUUsR0FBRztZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQzlDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUc7d0JBQzVILEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJO3FCQUMzQixDQUFDLENBQUMsQ0FDSjtpQkFDRjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsS0FBSyxFQUFFLHNCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLE9BQU87d0JBQ3BFLE1BQU0sRUFBRTs0QkFDTixtQ0FBbUMsa0JBQWtCLENBQUMsYUFBYSx5Q0FBeUM7eUJBQzdHO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUM7U0FDeEQsQ0FBQzthQUNELFVBQVUsRUFBRTtZQUViLHdCQUF3QjthQUN2QixVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDakYsVUFBVSxDQUFDO1lBQ1YsR0FBRyxFQUFFLGtCQUFrQixDQUFDLGdCQUFnQjtZQUN4QyxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMseUJBQXlCLENBQUM7WUFDN0MsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsY0FBYyxDQUFDLEtBQU0sQ0FBQyxXQUFXO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDdEUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFNLENBQUMsV0FBVztxQkFDNUIsQ0FBQyxDQUFDLENBQ0o7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSO3dCQUNFLEtBQUssRUFBRSxzQkFBc0Isa0JBQWtCLENBQUMsYUFBYSxPQUFPO3dCQUNwRSxNQUFNLEVBQUU7NEJBQ04sbUNBQW1DLGtCQUFrQixDQUFDLGFBQWEseUNBQXlDO3lCQUM3RztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDLCtCQUErQixDQUFDO1NBQzFELENBQUM7YUFDRCxVQUFVLENBQUM7WUFDVixHQUFHLEVBQUUsa0JBQWtCLENBQUMsYUFBYTtZQUNyQyxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMsc0JBQXNCLENBQUM7WUFDMUMsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsY0FBYyxDQUFDLEtBQU0sQ0FBQyxRQUFRO1lBQzVDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDaEUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFNLENBQUMsUUFBUTtxQkFDekIsQ0FBQyxDQUFDLENBQ0o7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSO3dCQUNFLEtBQUssRUFBRSxzQkFBc0Isa0JBQWtCLENBQUMsYUFBYSxPQUFPO3dCQUNwRSxNQUFNLEVBQUU7NEJBQ04sbUNBQW1DLGtCQUFrQixDQUFDLGFBQWEsc0NBQXNDO3lCQUMxRztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDO1NBQ3ZELENBQUM7YUFDRCxVQUFVLENBQUM7WUFDVixHQUFHLEVBQUUsa0JBQWtCLENBQUMsV0FBVztZQUNuQyxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDeEMsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsY0FBYyxDQUFDLEtBQU0sQ0FBQyxNQUFNO1lBQzFDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMzQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDNUQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFNLENBQUMsTUFBTTtxQkFDdkIsQ0FBQyxDQUFDLENBQ0o7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSO3dCQUNFLEtBQUssRUFBRSxzQkFBc0Isa0JBQWtCLENBQUMsYUFBYSxPQUFPO3dCQUNwRSxNQUFNLEVBQUU7NEJBQ04sbUNBQW1DLGtCQUFrQixDQUFDLGFBQWEsb0NBQW9DO3lCQUN4RztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDO1NBQ3JELENBQUM7YUFDRCxVQUFVLENBQUM7WUFDVixHQUFHLEVBQUUsa0JBQWtCLENBQUMsV0FBVztZQUNuQyxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUM7WUFDeEMsS0FBSyxFQUFFLEdBQUc7WUFDVixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsY0FBYyxDQUFDLEtBQU0sQ0FBQyxNQUFNO1lBQzFDLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUN0QyxPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLE9BQU87b0JBQ25CLFNBQVMsRUFBRSxNQUFNO29CQUNqQixVQUFVLEVBQUU7d0JBQ1YsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO3dCQUNyRSxFQUFFLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7cUJBQ3hFO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxLQUFLLEVBQUUsc0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsT0FBTzt3QkFDcEUsTUFBTSxFQUFFOzRCQUNOLG1DQUFtQyxrQkFBa0IsQ0FBQyxhQUFhLG9DQUFvQzt5QkFDeEc7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztTQUNyRCxDQUFDO2FBQ0QsVUFBVSxDQUFDO1lBQ1YsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFVBQVU7WUFDbEMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixDQUFDO1lBQ3ZDLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLGNBQWMsQ0FBQyxLQUFNLENBQUMsS0FBSztZQUN6QyxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFVBQVUsRUFBRSxPQUFPO29CQUNuQixTQUFTLEVBQUUsTUFBTTtvQkFDakIsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QixJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxLQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzFELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBTSxDQUFDLEtBQUs7cUJBQ3RCLENBQUMsQ0FBQyxDQUNKO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxLQUFLLEVBQUUsc0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsT0FBTzt3QkFDcEUsTUFBTSxFQUFFOzRCQUNOLG1DQUFtQyxrQkFBa0IsQ0FBQyxhQUFhLG1DQUFtQzt5QkFDdkc7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQztTQUNwRCxDQUFDO2FBQ0QsVUFBVSxDQUFDO1lBQ1YsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7WUFDakMsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQ3RDLEtBQUssRUFBRSxHQUFHO1lBQ1YsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLGNBQWMsQ0FBQyxLQUFNLENBQUMsSUFBSTtZQUN4QyxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLFVBQVUsRUFBRSxPQUFPO29CQUNuQixTQUFTLEVBQUUsTUFBTTtvQkFDakIsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QixJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ3hELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBTSxDQUFDLElBQUk7cUJBQ3JCLENBQUMsQ0FBQyxDQUNKO2lCQUNGO2dCQUNELFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxLQUFLLEVBQUUsc0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsT0FBTzt3QkFDcEUsTUFBTSxFQUFFOzRCQUNOLG1DQUFtQyxrQkFBa0IsQ0FBQyxhQUFhLGtDQUFrQzt5QkFDdEc7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztTQUNuRCxDQUFDO2FBQ0QsVUFBVSxFQUFFO2FBQ1osUUFBUSxFQUFFLENBQUM7SUFFaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQVhQUmVnaW9uYWxTZXJ2aWNlLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFJlZ2lvbmFsU2V0dGluZyB9IGZyb20gJy4vc2V0dGluZ3Mua2V5cyc7XG5pbXBvcnQgeyBvYmplY3RLZXlWYWx1ZVRyYW5zZm9ybXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c0xpc3QgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvY29tbW9uJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuZXhwb3J0IGNsYXNzIEFYTVJlZ2lvbmFsU2V0dGluZ1Byb3ZpZGVyIGltcGxlbWVudHMgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlciB7XG4gIHByaXZhdGUgcmVnaW9uYWxTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQUmVnaW9uYWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdHJhbnMgPSBhc3luYyAoa2V5OiBzdHJpbmcpID0+IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyhgc2V0dGluZ3MucmVnaW9uYWwuJHtrZXl9YCwgeyBzY29wZTogJ3JlZ2lvbmFsJyB9KTtcbiAgICBjb25zdCBwcm9maWxlcyA9IGF3YWl0IHRoaXMucmVnaW9uYWxTZXJ2aWNlLmdldExvY2FsZVByb2ZpbGVzKCk7XG4gICAgY29uc3QgZGVmYXVsdFByb2ZpbGUgPSBwcm9maWxlcy5maW5kKHAgPT4gcC5jb2RlID09PSAnZW4tVVMnKSE7XG5cbiAgICBjb250ZXh0XG4gICAgICAuYWRkR3JvdXAoXG4gICAgICAgICdyZWdpb25hbC1zZXR0aW5ncycsXG4gICAgICAgIGF3YWl0IHRyYW5zKCd0aXRsZScpLFxuICAgICAgICBhd2FpdCB0cmFucygnZGVzY3JpcHRpb24nKSxcbiAgICAgICAgJ2ZhLWxpZ2h0IGZhLWVhcnRoLWFtZXJpY2FzJ1xuICAgICAgKVxuXG4gICAgICAvLyBEYXRlICYgVGltZSBTZWN0aW9uXG4gICAgICAuYWRkU2VjdGlvbignZGF0ZS10aW1lJywgYXdhaXQgdHJhbnMoJ2RhdGV0aW1lLnRpdGxlJyksIGF3YWl0IHRyYW5zKCdkYXRldGltZS5kZXNjcmlwdGlvbicpKVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5UaW1lWm9uZSxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdkYXRldGltZS50aW1lem9uZS50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1QnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBhd2FpdCB0aGlzLnJlZ2lvbmFsU2VydmljZS5nZXRCcm93c2VyVGltZVpvbmVDb2RlKCksXG4gICAgICAgIHZhbHVlVHJhbnNmb3Jtczogb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKCdjb2RlJyksXG4gICAgICAgIHdpZGdldDoge1xuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNMaXN0LkVkaXRvcnMuU2VsZWN0Qm94LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdjb2RlJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGF3YWl0IHRoaXMucmVnaW9uYWxTZXJ2aWNlLmdldFRpbWVab25lcygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhd2FpdCB0cmFucygnZGF0ZXRpbWUudGltZXpvbmUuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuZW5kU2VjdGlvbigpXG5cbiAgICAgIC8vIFJlZ2lvbiBTZWN0aW9uXG4gICAgICAuYWRkU2VjdGlvbigncmVnaW9uJywgYXdhaXQgdHJhbnMoJ3JlZ2lvbi50aXRsZScpLCBhd2FpdCB0cmFucygncmVnaW9uLmRlc2NyaXB0aW9uJykpXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGUsXG4gICAgICAgIHRpdGxlOiBhd2FpdCB0cmFucygncmVnaW9uLmZvcm1hdC50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS5jb2RlLFxuICAgICAgICB2YWx1ZVRyYW5zZm9ybXM6IG9iamVjdEtleVZhbHVlVHJhbnNmb3JtcygnY29kZScpLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzTGlzdC5FZGl0b3JzLlNlbGVjdEJveCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAnY29kZScsXG4gICAgICAgICAgICBkYXRhU291cmNlOiBwcm9maWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5mb3JtYXQuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLkxhbmd1YWdlLFxuICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5sYW5ndWFnZS50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0RGVmYXVsdExhbmcoKSxcbiAgICAgICAgdmFsdWVUcmFuc2Zvcm1zOiBvYmplY3RLZXlWYWx1ZVRyYW5zZm9ybXMoJ2NvZGUnKSxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2NvZGUnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYXdhaXQgdGhpcy5yZWdpb25hbFNlcnZpY2UuZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBge3sgd2lkZ2V0LnNldFZhbHVlKGNvbnRleHQuZXZhbCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKSkgfX1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5sYW5ndWFnZS5kZXNjcmlwdGlvbicpLFxuICAgICAgfSlcblxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5DYWxlbmRhcixcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24uY2FsZW5kYXIudGl0bGUnKSxcbiAgICAgICAgc2NvcGU6ICdVJyxcbiAgICAgICAgaXNJbmhlcml0ZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFByb2ZpbGUuY2FsZW5kYXIuc3lzdGVtLFxuICAgICAgICB2YWx1ZVRyYW5zZm9ybXM6IG9iamVjdEtleVZhbHVlVHJhbnNmb3JtcygndmFsdWUnKSxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5jYWxlbmRhci5vcHRpb25zLmdyZWdvcmlhbicpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZ3JlZ29yaWFuJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5jYWxlbmRhci5vcHRpb25zLmhpanJpJyksXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdzb2xhci1oaWpyaSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyaWdnZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGV2ZW50OiBge3sgZXZlbnRzLmNvbnRleHQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9JykgfX1gLFxuICAgICAgICAgICAgICBhY3Rpb246IFtcbiAgICAgICAgICAgICAgICBge3sgd2lkZ2V0LnNldFZhbHVlKHdpZGdldC5maW5kKCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpLm91dHB1dCgnaXRlbScpLmNhbGVuZGFyLnN5c3RlbSkgfX1gLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5jYWxlbmRhci5kZXNjcmlwdGlvbicpLFxuICAgICAgfSlcbiAgICAgIC5hZGRTZXR0aW5nKHtcbiAgICAgICAga2V5OiBBWFBSZWdpb25hbFNldHRpbmcuRmlyc3REYXlPZldlZWssXG4gICAgICAgIHRpdGxlOiBhd2FpdCB0cmFucygncmVnaW9uLmZpcnN0ZGF5LnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiAnVCcsXG4gICAgICAgIGlzSW5oZXJpdGVkOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS5jYWxlbmRhci53ZWVrLnN0YXJ0c09uLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzTGlzdC5FZGl0b3JzLlNlbGVjdEJveCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAndmFsdWUnLFxuICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBhd2FpdCB0cmFucygncmVnaW9uLmZpcnN0ZGF5Lm9wdGlvbnMuc2F0dXJkYXknKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogNlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi5maXJzdGRheS5vcHRpb25zLnN1bmRheScpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBhd2FpdCB0cmFucygncmVnaW9uLmZpcnN0ZGF5Lm9wdGlvbnMubW9uZGF5JyksXG4gICAgICAgICAgICAgICAgdmFsdWU6IDFcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRyaWdnZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgICBhY3Rpb246IFtcbiAgICAgICAgICAgICAgICAgIGB7eyB3aWRnZXQuc2V0VmFsdWUod2lkZ2V0LmZpbmQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9Jykub3V0cHV0KCdpdGVtJykuY2FsZW5kYXIud2Vlay5zdGFydHNPbikgfX1gLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhd2FpdCB0cmFucygncmVnaW9uLmZpcnN0ZGF5LmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5XZWVrZW5kRGF5cyxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24ud29ya2RheXMudGl0bGUnKSxcbiAgICAgICAgc2NvcGU6ICdUJyxcbiAgICAgICAgaXNJbmhlcml0ZWQ6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRQcm9maWxlLmNhbGVuZGFyLndlZWsud2Vla2VuZHMsXG4gICAgICAgIHdpZGdldDoge1xuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNMaXN0LkVkaXRvcnMuU2VsZWN0aW9uTGlzdCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgeyB0ZXh0OiBhd2FpdCB0cmFucygncmVnaW9uLndvcmtkYXlzLm9wdGlvbnMubW9uZGF5JyksIHZhbHVlOiAxIH0sXG4gICAgICAgICAgICAgIHsgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi53b3JrZGF5cy5vcHRpb25zLnR1ZXNkYXknKSwgdmFsdWU6IDIgfSxcbiAgICAgICAgICAgICAgeyB0ZXh0OiBhd2FpdCB0cmFucygncmVnaW9uLndvcmtkYXlzLm9wdGlvbnMud2VkbmVzZGF5JyksIHZhbHVlOiAzIH0sXG4gICAgICAgICAgICAgIHsgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi53b3JrZGF5cy5vcHRpb25zLnRodXJzZGF5JyksIHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAgIHsgdGV4dDogYXdhaXQgdHJhbnMoJ3JlZ2lvbi53b3JrZGF5cy5vcHRpb25zLmZyaWRheScpLCB2YWx1ZTogNSB9LFxuICAgICAgICAgICAgICB7IHRleHQ6IGF3YWl0IHRyYW5zKCdyZWdpb24ud29ya2RheXMub3B0aW9ucy5zYXR1cmRheScpLCB2YWx1ZTogNiB9LFxuICAgICAgICAgICAgICB7IHRleHQ6IGF3YWl0IHRyYW5zKCdyZWdpb24ud29ya2RheXMub3B0aW9ucy5zdW5kYXknKSwgdmFsdWU6IDAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyaWdnZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGV2ZW50OiBge3sgZXZlbnRzLmNvbnRleHQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9JykgfX1gLFxuICAgICAgICAgICAgICBhY3Rpb246IFtcbiAgICAgICAgICAgICAgICBge3sgd2lkZ2V0LnNldFZhbHVlKHdpZGdldC5maW5kKCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpLm91dHB1dCgnaXRlbScpLmNhbGVuZGFyLndlZWsud2Vla2VuZHMpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdyZWdpb24ud29ya2RheXMuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLlNob3J0RGF0ZSxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24uc2hvcnRkYXRlLnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiAnVScsXG4gICAgICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRQcm9maWxlLmZvcm1hdHMuZGF0ZS5zaG9ydCxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIHByb2ZpbGVzLm1hcChhc3luYyBjID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogYCR7Yy5mb3JtYXRzLmRhdGUuc2hvcnR9ICgke2F3YWl0IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQobmV3IERhdGUoKSwgJ2RhdGV0aW1lJywgeyBmb3JtYXQ6IGMuZm9ybWF0cy5kYXRlLnNob3J0IH0pfSlgLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBjLmZvcm1hdHMuZGF0ZS5zaG9ydFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgYHt7IHdpZGdldC5zZXRWYWx1ZSh3aWRnZXQuZmluZCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKS5vdXRwdXQoJ2l0ZW0nKS5mb3JtYXRzLmRhdGUuc2hvcnQpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdyZWdpb24uc2hvcnRkYXRlLmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5Mb25nRGF0ZSxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24ubG9uZ2RhdGUudGl0bGUnKSxcbiAgICAgICAgc2NvcGU6ICdVJyxcbiAgICAgICAgaXNJbmhlcml0ZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFByb2ZpbGUuZm9ybWF0cy5kYXRlLmxvbmcsXG4gICAgICAgIHdpZGdldDoge1xuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNMaXN0LkVkaXRvcnMuU2VsZWN0Qm94LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBwcm9maWxlcy5tYXAoYXN5bmMgYyA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IGAke2MuZm9ybWF0cy5kYXRlLmxvbmd9ICgke2F3YWl0IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQobmV3IERhdGUoKSwgJ2RhdGV0aW1lJywgeyBmb3JtYXQ6IGMuZm9ybWF0cy5kYXRlLmxvbmcgfSl9KWAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGMuZm9ybWF0cy5kYXRlLmxvbmdcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJpZ2dlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnQ6IGB7eyBldmVudHMuY29udGV4dCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKSB9fWAsXG4gICAgICAgICAgICAgIGFjdGlvbjogW1xuICAgICAgICAgICAgICAgIGB7eyB3aWRnZXQuc2V0VmFsdWUod2lkZ2V0LmZpbmQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9Jykub3V0cHV0KCdpdGVtJykuZm9ybWF0cy5kYXRlLmxvbmcpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdyZWdpb24ubG9uZ2RhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLlNob3J0VGltZSxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24uc2hvcnR0aW1lLnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiAnVScsXG4gICAgICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRQcm9maWxlLmZvcm1hdHMudGltZS5zaG9ydCxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIHByb2ZpbGVzLm1hcChhc3luYyBjID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogYCR7Yy5mb3JtYXRzLnRpbWUuc2hvcnR9ICgke2F3YWl0IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQobmV3IERhdGUoKSwgJ2RhdGV0aW1lJywgeyBmb3JtYXQ6IGMuZm9ybWF0cy50aW1lLnNob3J0IH0pfSlgLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBjLmZvcm1hdHMudGltZS5zaG9ydFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgYHt7IHdpZGdldC5zZXRWYWx1ZSh3aWRnZXQuZmluZCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKS5vdXRwdXQoJ2l0ZW0nKS5mb3JtYXRzLnRpbWUuc2hvcnQpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdyZWdpb24uc2hvcnR0aW1lLmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5Mb25nVGltZSxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdyZWdpb24ubG9uZ3RpbWUudGl0bGUnKSxcbiAgICAgICAgc2NvcGU6ICdVJyxcbiAgICAgICAgaXNJbmhlcml0ZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFByb2ZpbGUuZm9ybWF0cy50aW1lLmxvbmcsXG4gICAgICAgIHdpZGdldDoge1xuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNMaXN0LkVkaXRvcnMuU2VsZWN0Qm94LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBwcm9maWxlcy5tYXAoYXN5bmMgYyA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IGAke2MuZm9ybWF0cy50aW1lLmxvbmd9ICgke2F3YWl0IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQobmV3IERhdGUoKSwgJ2RhdGV0aW1lJywgeyBmb3JtYXQ6IGMuZm9ybWF0cy50aW1lLmxvbmcgfSl9KWAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGMuZm9ybWF0cy50aW1lLmxvbmdcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJpZ2dlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnQ6IGB7eyBldmVudHMuY29udGV4dCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKSB9fWAsXG4gICAgICAgICAgICAgIGFjdGlvbjogW1xuICAgICAgICAgICAgICAgIGB7eyB3aWRnZXQuc2V0VmFsdWUod2lkZ2V0LmZpbmQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9Jykub3V0cHV0KCdpdGVtJykuZm9ybWF0cy50aW1lLmxvbmcpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdyZWdpb24ubG9uZ3RpbWUuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuZW5kU2VjdGlvbigpXG5cbiAgICAgIC8vIFVuaXQgU2V0dGluZ3MgU2VjdGlvblxuICAgICAgLmFkZFNlY3Rpb24oJ3VuaXRzJywgYXdhaXQgdHJhbnMoJ3VuaXRzLnRpdGxlJyksIGF3YWl0IHRyYW5zKCd1bml0cy5kZXNjcmlwdGlvbicpKVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5UZW1wZXJhdHVyZVVuaXRzLFxuICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnMoJ3VuaXRzLnRlbXBlcmF0dXJlLnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiAnVScsXG4gICAgICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRQcm9maWxlLnVuaXRzIS50ZW1wZXJhdHVyZSxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIHByb2ZpbGVzLm1hcChhc3luYyBjID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogYXdhaXQgdHJhbnMoYHVuaXRzLnRlbXBlcmF0dXJlLm9wdGlvbnMuJHtjLnVuaXRzIS50ZW1wZXJhdHVyZX1gKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogYy51bml0cyEudGVtcGVyYXR1cmVcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJpZ2dlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnQ6IGB7eyBldmVudHMuY29udGV4dCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKSB9fWAsXG4gICAgICAgICAgICAgIGFjdGlvbjogW1xuICAgICAgICAgICAgICAgIGB7eyB3aWRnZXQuc2V0VmFsdWUod2lkZ2V0LmZpbmQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9Jykub3V0cHV0KCdpdGVtJykudW5pdHMudGVtcGVyYXR1cmUpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCd1bml0cy50ZW1wZXJhdHVyZS5kZXNjcmlwdGlvbicpLFxuICAgICAgfSlcbiAgICAgIC5hZGRTZXR0aW5nKHtcbiAgICAgICAga2V5OiBBWFBSZWdpb25hbFNldHRpbmcuRGlzdGFuY2VVbml0cyxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCd1bml0cy5kaXN0YW5jZS50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS51bml0cyEuZGlzdGFuY2UsXG4gICAgICAgIHdpZGdldDoge1xuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNMaXN0LkVkaXRvcnMuU2VsZWN0Qm94LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBwcm9maWxlcy5tYXAoYXN5bmMgYyA9PiAoe1xuICAgICAgICAgICAgICAgIHRleHQ6IGF3YWl0IHRyYW5zKGB1bml0cy5kaXN0YW5jZS5vcHRpb25zLiR7Yy51bml0cyEuZGlzdGFuY2V9YCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGMudW5pdHMhLmRpc3RhbmNlXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRyaWdnZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGV2ZW50OiBge3sgZXZlbnRzLmNvbnRleHQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9JykgfX1gLFxuICAgICAgICAgICAgICBhY3Rpb246IFtcbiAgICAgICAgICAgICAgICBge3sgd2lkZ2V0LnNldFZhbHVlKHdpZGdldC5maW5kKCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpLm91dHB1dCgnaXRlbScpLnVuaXRzLmRpc3RhbmNlKSB9fWAsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhd2FpdCB0cmFucygndW5pdHMuZGlzdGFuY2UuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLldlaWdodFVuaXRzLFxuICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnMoJ3VuaXRzLndlaWdodC50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS51bml0cyEud2VpZ2h0LFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzTGlzdC5FZGl0b3JzLlNlbGVjdEJveCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAndmFsdWUnLFxuICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICBkYXRhU291cmNlOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgcHJvZmlsZXMubWFwKGFzeW5jIGMgPT4gKHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBhd2FpdCB0cmFucyhgdW5pdHMud2VpZ2h0Lm9wdGlvbnMuJHtjLnVuaXRzIS53ZWlnaHR9YCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGMudW5pdHMhLndlaWdodFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgYHt7IHdpZGdldC5zZXRWYWx1ZSh3aWRnZXQuZmluZCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKS5vdXRwdXQoJ2l0ZW0nKS51bml0cy53ZWlnaHQpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCd1bml0cy53ZWlnaHQuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLlZvbHVtZVVuaXRzLFxuICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnMoJ3VuaXRzLnZvbHVtZS50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS51bml0cyEudm9sdW1lLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzTGlzdC5FZGl0b3JzLlNlbGVjdEJveCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAndmFsdWUnLFxuICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgIHsgdGV4dDogYXdhaXQgdHJhbnMoJ3VuaXRzLnZvbHVtZS5vcHRpb25zLmxpdGVycycpLCB2YWx1ZTogJ2xpdGVycycgfSxcbiAgICAgICAgICAgICAgeyB0ZXh0OiBhd2FpdCB0cmFucygndW5pdHMudm9sdW1lLm9wdGlvbnMuZ2FsbG9ucycpLCB2YWx1ZTogJ2dhbGxvbnMnIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgYHt7IHdpZGdldC5zZXRWYWx1ZSh3aWRnZXQuZmluZCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKS5vdXRwdXQoJ2l0ZW0nKS51bml0cy52b2x1bWUpIH19YCxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCd1bml0cy52b2x1bWUuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuYWRkU2V0dGluZyh7XG4gICAgICAgIGtleTogQVhQUmVnaW9uYWxTZXR0aW5nLlNwZWVkVW5pdHMsXG4gICAgICAgIHRpdGxlOiBhd2FpdCB0cmFucygndW5pdHMuc3BlZWQudGl0bGUnKSxcbiAgICAgICAgc2NvcGU6ICdVJyxcbiAgICAgICAgaXNJbmhlcml0ZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFByb2ZpbGUudW5pdHMhLnNwZWVkLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzTGlzdC5FZGl0b3JzLlNlbGVjdEJveCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAndmFsdWUnLFxuICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICBkYXRhU291cmNlOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgcHJvZmlsZXMubWFwKGFzeW5jIGMgPT4gKHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBhd2FpdCB0cmFucyhgdW5pdHMuc3BlZWQub3B0aW9ucy4ke2MudW5pdHMhLnNwZWVkfWApLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBjLnVuaXRzIS5zcGVlZFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmlnZ2VyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudDogYHt7IGV2ZW50cy5jb250ZXh0KCcke0FYUFJlZ2lvbmFsU2V0dGluZy5Mb2NhbGVQcm9maWxlfScpIH19YCxcbiAgICAgICAgICAgICAgYWN0aW9uOiBbXG4gICAgICAgICAgICAgICAgYHt7IHdpZGdldC5zZXRWYWx1ZSh3aWRnZXQuZmluZCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKS5vdXRwdXQoJ2l0ZW0nKS51bml0cy5zcGVlZCkgfX1gLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogYXdhaXQgdHJhbnMoJ3VuaXRzLnNwZWVkLmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuICAgICAgLmFkZFNldHRpbmcoe1xuICAgICAgICBrZXk6IEFYUFJlZ2lvbmFsU2V0dGluZy5BcmVhVW5pdHMsXG4gICAgICAgIHRpdGxlOiBhd2FpdCB0cmFucygndW5pdHMuYXJlYS50aXRsZScpLFxuICAgICAgICBzY29wZTogJ1UnLFxuICAgICAgICBpc0luaGVyaXRlZDogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0UHJvZmlsZS51bml0cyEuYXJlYSxcbiAgICAgICAgd2lkZ2V0OiB7XG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5TZWxlY3RCb3gsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgIHByb2ZpbGVzLm1hcChhc3luYyBjID0+ICh7XG4gICAgICAgICAgICAgICAgdGV4dDogYXdhaXQgdHJhbnMoYHVuaXRzLmFyZWEub3B0aW9ucy4ke2MudW5pdHMhLmFyZWF9YCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGMudW5pdHMhLmFyZWFcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJpZ2dlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXZlbnQ6IGB7eyBldmVudHMuY29udGV4dCgnJHtBWFBSZWdpb25hbFNldHRpbmcuTG9jYWxlUHJvZmlsZX0nKSB9fWAsXG4gICAgICAgICAgICAgIGFjdGlvbjogW1xuICAgICAgICAgICAgICAgIGB7eyB3aWRnZXQuc2V0VmFsdWUod2lkZ2V0LmZpbmQoJyR7QVhQUmVnaW9uYWxTZXR0aW5nLkxvY2FsZVByb2ZpbGV9Jykub3V0cHV0KCdpdGVtJykudW5pdHMuYXJlYSkgfX1gLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogYXdhaXQgdHJhbnMoJ3VuaXRzLmFyZWEuZGVzY3JpcHRpb24nKSxcbiAgICAgIH0pXG4gICAgICAuZW5kU2VjdGlvbigpXG4gICAgICAuZW5kR3JvdXAoKTtcblxuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
|
package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs
DELETED
@@ -1,218 +0,0 @@
|
|
1
|
-
import * as i0 from '@angular/core';
|
2
|
-
import { inject, signal, computed, ViewEncapsulation, Component } from '@angular/core';
|
3
|
-
import * as i1 from '@angular/common';
|
4
|
-
import { CommonModule } from '@angular/common';
|
5
|
-
import { AXFormModule } from '@acorex/components/form';
|
6
|
-
import { AXButtonModule } from '@acorex/components/button';
|
7
|
-
import { AXTextBoxModule } from '@acorex/components/text-box';
|
8
|
-
import * as i4 from '@acorex/components/check-box';
|
9
|
-
import { AXCheckBoxModule } from '@acorex/components/check-box';
|
10
|
-
import * as i3 from '@acorex/components/label';
|
11
|
-
import { AXLabelModule } from '@acorex/components/label';
|
12
|
-
import { AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent, AXPPopupLayoutBase } from '@acorex/platform/layout/views';
|
13
|
-
import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
|
14
|
-
import { AXPPermissionDefinitionService } from '@acorex/platform/auth';
|
15
|
-
import * as i6 from '@acorex/components/decorators';
|
16
|
-
import { AXDecoratorModule } from '@acorex/components/decorators';
|
17
|
-
import { AXTranslationModule } from '@acorex/core/translation';
|
18
|
-
import * as i5 from '@acorex/components/tabs';
|
19
|
-
import { AXTabsModule } from '@acorex/components/tabs';
|
20
|
-
import * as i7 from '@acorex/components/badge';
|
21
|
-
import { AXBadgeModule } from '@acorex/components/badge';
|
22
|
-
import * as i2 from '@angular/forms';
|
23
|
-
import { FormsModule } from '@angular/forms';
|
24
|
-
import { AXTooltipModule } from '@acorex/components/tooltip';
|
25
|
-
|
26
|
-
// #region ---------------- Imports ----------------
|
27
|
-
// #endregion
|
28
|
-
class AXPPermissionsEditorComponent extends AXPPopupLayoutBaseComponent {
|
29
|
-
constructor() {
|
30
|
-
super(...arguments);
|
31
|
-
// #region ---------------- Class Properties ----------------
|
32
|
-
/** Service for fetching permission groups and definitions */
|
33
|
-
this.permissionService = inject(AXPPermissionDefinitionService);
|
34
|
-
/** Currently selected permission group */
|
35
|
-
this.selectedGroup = signal(null);
|
36
|
-
/** All available permission groups */
|
37
|
-
this.groups = signal([]);
|
38
|
-
/** Initial permissions to be selected */
|
39
|
-
this.initialPermissions = [];
|
40
|
-
/** List of selected permission names */
|
41
|
-
this.selectedPermissions = signal([]);
|
42
|
-
/**
|
43
|
-
* Computed: Returns mapped permissions for the selected group.
|
44
|
-
*/
|
45
|
-
this.items = computed(() => {
|
46
|
-
const permissions = this.selectedGroup()?.permissions || [];
|
47
|
-
return this.mapPermissions(permissions);
|
48
|
-
});
|
49
|
-
/**
|
50
|
-
* Computed: Returns groups with badge counts.
|
51
|
-
*/
|
52
|
-
this.groupsWithBadge = computed(() => {
|
53
|
-
const groups = this.groups();
|
54
|
-
const result = groups.map(group => {
|
55
|
-
return {
|
56
|
-
...group,
|
57
|
-
badge: this.getBadge(group) || ''
|
58
|
-
};
|
59
|
-
});
|
60
|
-
return result;
|
61
|
-
});
|
62
|
-
}
|
63
|
-
// #endregion
|
64
|
-
// #region ---------------- Computed Properties ----------------
|
65
|
-
/**
|
66
|
-
* Recursively maps permissions to include selection state and children.
|
67
|
-
*/
|
68
|
-
mapPermissions(items) {
|
69
|
-
return (items || []).map(item => {
|
70
|
-
const hasChild = Array.isArray(item.children) && item.children.length > 0;
|
71
|
-
return {
|
72
|
-
...item,
|
73
|
-
isSelected: this.isSelected(item.name),
|
74
|
-
children: hasChild ? this.mapPermissions(item.children) : null
|
75
|
-
};
|
76
|
-
});
|
77
|
-
}
|
78
|
-
// #endregion
|
79
|
-
// #region ---------------- Utility Methods ----------------
|
80
|
-
/**
|
81
|
-
* Recursively collects all permission names (parents and children) from an array.
|
82
|
-
*/
|
83
|
-
collectAllPermissionNames(permissions) {
|
84
|
-
let names = [];
|
85
|
-
for (const item of permissions) {
|
86
|
-
names.push(item.name);
|
87
|
-
if (Array.isArray(item.children) && item.children.length > 0) {
|
88
|
-
names = names.concat(this.collectAllPermissionNames(item.children));
|
89
|
-
}
|
90
|
-
}
|
91
|
-
return names;
|
92
|
-
}
|
93
|
-
/**
|
94
|
-
* Returns the badge count for a group (all selected permissions, including parents).
|
95
|
-
*/
|
96
|
-
getBadge(group) {
|
97
|
-
const allNames = this.collectAllPermissionNames(group.permissions || []);
|
98
|
-
const selectedPermissions = this.selectedPermissions();
|
99
|
-
const count = allNames.filter(name => selectedPermissions.includes(name)).length;
|
100
|
-
return count.toString();
|
101
|
-
}
|
102
|
-
/**
|
103
|
-
* Checks if a permission is selected.
|
104
|
-
*/
|
105
|
-
isSelected(name) {
|
106
|
-
return this.selectedPermissions().includes(name);
|
107
|
-
}
|
108
|
-
/**
|
109
|
-
* Recursively collects all descendant permission names for a single item (including itself).
|
110
|
-
*/
|
111
|
-
collectPermissionNames(item) {
|
112
|
-
let names = [item.name];
|
113
|
-
if (Array.isArray(item.children) && item.children.length > 0) {
|
114
|
-
for (const child of item.children) {
|
115
|
-
names = names.concat(this.collectPermissionNames(child));
|
116
|
-
}
|
117
|
-
}
|
118
|
-
return names;
|
119
|
-
}
|
120
|
-
// #endregion
|
121
|
-
// #region ---------------- Lifecycle Methods ----------------
|
122
|
-
/**
|
123
|
-
* Initializes the component and loads permission groups.
|
124
|
-
*/
|
125
|
-
async ngOnInit() {
|
126
|
-
super.ngOnInit();
|
127
|
-
const groups = await this.permissionService.getGroups();
|
128
|
-
this.groups.set(groups);
|
129
|
-
this.selectedGroup.set(groups[0]);
|
130
|
-
this.selectedPermissions.set(this.initialPermissions);
|
131
|
-
}
|
132
|
-
// #endregion
|
133
|
-
// #region ---------------- UI Handlers ----------------
|
134
|
-
/**
|
135
|
-
* Handles group tab/menu item click.
|
136
|
-
*/
|
137
|
-
handleMenuItemClick(item) {
|
138
|
-
this.selectedGroup.set(item);
|
139
|
-
}
|
140
|
-
/**
|
141
|
-
* Returns the primary menu items for the popup layout.
|
142
|
-
*/
|
143
|
-
getPrimaryMenuItems() {
|
144
|
-
return [
|
145
|
-
{
|
146
|
-
title: 't("select")',
|
147
|
-
icon: 'fa-solid',
|
148
|
-
command: {
|
149
|
-
name: 'select'
|
150
|
-
}
|
151
|
-
}
|
152
|
-
];
|
153
|
-
}
|
154
|
-
/**
|
155
|
-
* Handles permission checkbox toggle (checks/unchecks all children recursively).
|
156
|
-
*/
|
157
|
-
onPermissionToggle(item, e) {
|
158
|
-
const names = this.collectPermissionNames(item);
|
159
|
-
if (e.value) {
|
160
|
-
// Add all names (parent + children), avoiding duplicates
|
161
|
-
const set = new Set([...this.selectedPermissions(), ...names]);
|
162
|
-
this.selectedPermissions.set(Array.from(set));
|
163
|
-
}
|
164
|
-
else {
|
165
|
-
// Remove all names (parent + children)
|
166
|
-
this.selectedPermissions.set(this.selectedPermissions().filter(name => !names.includes(name)));
|
167
|
-
}
|
168
|
-
}
|
169
|
-
execute(command) {
|
170
|
-
if (command.name === 'select') {
|
171
|
-
this.close(this.selectedPermissions());
|
172
|
-
}
|
173
|
-
}
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: AXPPermissionsEditorComponent, isStandalone: true, selector: "axm-permissions-editor", providers: [
|
176
|
-
{
|
177
|
-
provide: AXPPopupLayoutBase,
|
178
|
-
useExisting: AXPPermissionsEditorComponent
|
179
|
-
}
|
180
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-popup-layout>\n <axp-page-content>\n <div class=\"ax-flex ax-min-h-96\">\n <div class=\"ax-p-4 ax-min-h-full ax-overflow-auto ax-w-2/5\">\n <ax-tabs location=\"start\" look=\"with-line-color\" class=\"ax-h-full\">\n @for (group of groupsWithBadge(); track $index) {\n <ax-tab-item\n [active]=\"group.name === selectedGroup()?.name\"\n [text]=\"group.title\"\n (onClick)=\"handleMenuItemClick(group)\"\n >\n <ax-suffix>\n <ax-badge color=\"primary\" [text]=\"group.badge\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex ax-h-full ax-overflow-auto ax-flex-col ax-w-3/5 ax-border-s\">\n <div class=\"ax-p-4 ax-border-b ax-border-lightest\">\n <span class=\"ax-h6\">{{ selectedGroup()?.title! }}</span>\n </div>\n <div class=\"ax-flex ax-p-4\">\n <ul class=\"\">\n <ng-template #recursiveList let-items>\n @for (item of items; track $index) {\n <li class=\"ax-py-1\">\n <ax-check-box [ngModel]=\"item.isSelected\" (onValueChanged)=\"onPermissionToggle(item, $event)\">\n <ax-label>\n {{ item.title }}\n @if (item.description) {\n <i class=\"ax-ps-2 ax-text-xs fa-light fa-circle-info\" [title]=\"item.description\"></i>\n }\n </ax-label>\n </ax-check-box>\n @if (item.children && item.children.length > 0) {\n <ul class=\"ax-p-2 ax-mt-1 ax-ms-1\">\n <ng-container\n *ngTemplateOutlet=\"recursiveList; context: { $implicit: item.children }\"\n ></ng-container>\n </ul>\n }\n </li>\n }\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items() }\"></ng-container>\n </ul>\n </div>\n </div>\n </div>\n </axp-page-content>\n</axp-popup-layout>\n", styles: [""], dependencies: [{ kind: "ngmodule", type:
|
181
|
-
// Angular
|
182
|
-
CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type:
|
183
|
-
// ACoreX
|
184
|
-
AXFormModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i5.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i5.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i6.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i7.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "text", "look"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "component", type:
|
185
|
-
// Platform
|
186
|
-
AXPPopupLayoutComponent, selector: "axp-popup-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }], encapsulation: i0.ViewEncapsulation.None }); }
|
187
|
-
}
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsEditorComponent, decorators: [{
|
189
|
-
type: Component,
|
190
|
-
args: [{ selector: 'axm-permissions-editor', imports: [
|
191
|
-
// Angular
|
192
|
-
CommonModule,
|
193
|
-
FormsModule,
|
194
|
-
// ACoreX
|
195
|
-
AXFormModule,
|
196
|
-
AXTextBoxModule,
|
197
|
-
AXButtonModule,
|
198
|
-
AXLabelModule,
|
199
|
-
AXCheckBoxModule,
|
200
|
-
AXTabsModule,
|
201
|
-
AXDecoratorModule,
|
202
|
-
AXTranslationModule,
|
203
|
-
AXBadgeModule,
|
204
|
-
AXCheckBoxModule,
|
205
|
-
AXTooltipModule,
|
206
|
-
// Platform
|
207
|
-
AXPPopupLayoutComponent,
|
208
|
-
AXPThemeLayoutBlockComponent
|
209
|
-
], encapsulation: ViewEncapsulation.None, providers: [
|
210
|
-
{
|
211
|
-
provide: AXPPopupLayoutBase,
|
212
|
-
useExisting: AXPPermissionsEditorComponent
|
213
|
-
}
|
214
|
-
], template: "<axp-popup-layout>\n <axp-page-content>\n <div class=\"ax-flex ax-min-h-96\">\n <div class=\"ax-p-4 ax-min-h-full ax-overflow-auto ax-w-2/5\">\n <ax-tabs location=\"start\" look=\"with-line-color\" class=\"ax-h-full\">\n @for (group of groupsWithBadge(); track $index) {\n <ax-tab-item\n [active]=\"group.name === selectedGroup()?.name\"\n [text]=\"group.title\"\n (onClick)=\"handleMenuItemClick(group)\"\n >\n <ax-suffix>\n <ax-badge color=\"primary\" [text]=\"group.badge\"></ax-badge>\n </ax-suffix>\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-flex ax-h-full ax-overflow-auto ax-flex-col ax-w-3/5 ax-border-s\">\n <div class=\"ax-p-4 ax-border-b ax-border-lightest\">\n <span class=\"ax-h6\">{{ selectedGroup()?.title! }}</span>\n </div>\n <div class=\"ax-flex ax-p-4\">\n <ul class=\"\">\n <ng-template #recursiveList let-items>\n @for (item of items; track $index) {\n <li class=\"ax-py-1\">\n <ax-check-box [ngModel]=\"item.isSelected\" (onValueChanged)=\"onPermissionToggle(item, $event)\">\n <ax-label>\n {{ item.title }}\n @if (item.description) {\n <i class=\"ax-ps-2 ax-text-xs fa-light fa-circle-info\" [title]=\"item.description\"></i>\n }\n </ax-label>\n </ax-check-box>\n @if (item.children && item.children.length > 0) {\n <ul class=\"ax-p-2 ax-mt-1 ax-ms-1\">\n <ng-container\n *ngTemplateOutlet=\"recursiveList; context: { $implicit: item.children }\"\n ></ng-container>\n </ul>\n }\n </li>\n }\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items() }\"></ng-container>\n </ul>\n </div>\n </div>\n </div>\n </axp-page-content>\n</axp-popup-layout>\n" }]
|
215
|
-
}] });
|
216
|
-
|
217
|
-
export { AXPPermissionsEditorComponent };
|
218
|
-
//# sourceMappingURL=acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs.map
|
package/fesm2022/acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-security-management-permissions-editor.component-B4TdyHtv.mjs","sources":["../tmp-esm2022/security-management/lib/features/permissions/permissions-editor/permissions-editor.component.js"],"sourcesContent":["// #region ---------------- Imports ----------------\nimport { Component, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPPopupLayoutBase, AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPermissionDefinitionService } from '@acorex/platform/auth';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { FormsModule } from '@angular/forms';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/check-box\";\nimport * as i5 from \"@acorex/components/tabs\";\nimport * as i6 from \"@acorex/components/decorators\";\nimport * as i7 from \"@acorex/components/badge\";\n// #endregion\nexport class AXPPermissionsEditorComponent extends AXPPopupLayoutBaseComponent {\n constructor() {\n super(...arguments);\n // #region ---------------- Class Properties ----------------\n /** Service for fetching permission groups and definitions */\n this.permissionService = inject(AXPPermissionDefinitionService);\n /** Currently selected permission group */\n this.selectedGroup = signal(null);\n /** All available permission groups */\n this.groups = signal([]);\n /** Initial permissions to be selected */\n this.initialPermissions = [];\n /** List of selected permission names */\n this.selectedPermissions = signal([]);\n /**\n * Computed: Returns mapped permissions for the selected group.\n */\n this.items = computed(() => {\n const permissions = this.selectedGroup()?.permissions || [];\n return this.mapPermissions(permissions);\n });\n /**\n * Computed: Returns groups with badge counts.\n */\n this.groupsWithBadge = computed(() => {\n const groups = this.groups();\n const result = groups.map(group => {\n return {\n ...group,\n badge: this.getBadge(group) || ''\n };\n });\n return result;\n });\n }\n // #endregion\n // #region ---------------- Computed Properties ----------------\n /**\n * Recursively maps permissions to include selection state and children.\n */\n mapPermissions(items) {\n return (items || []).map(item => {\n const hasChild = Array.isArray(item.children) && item.children.length > 0;\n return {\n ...item,\n isSelected: this.isSelected(item.name),\n children: hasChild ? this.mapPermissions(item.children) : null\n };\n });\n }\n // #endregion\n // #region ---------------- Utility Methods ----------------\n /**\n * Recursively collects all permission names (parents and children) from an array.\n */\n collectAllPermissionNames(permissions) {\n let names = [];\n for (const item of permissions) {\n names.push(item.name);\n if (Array.isArray(item.children) && item.children.length > 0) {\n names = names.concat(this.collectAllPermissionNames(item.children));\n }\n }\n return names;\n }\n /**\n * Returns the badge count for a group (all selected permissions, including parents).\n */\n getBadge(group) {\n const allNames = this.collectAllPermissionNames(group.permissions || []);\n const selectedPermissions = this.selectedPermissions();\n const count = allNames.filter(name => selectedPermissions.includes(name)).length;\n return count.toString();\n }\n /**\n * Checks if a permission is selected.\n */\n isSelected(name) {\n return this.selectedPermissions().includes(name);\n }\n /**\n * Recursively collects all descendant permission names for a single item (including itself).\n */\n collectPermissionNames(item) {\n let names = [item.name];\n if (Array.isArray(item.children) && item.children.length > 0) {\n for (const child of item.children) {\n names = names.concat(this.collectPermissionNames(child));\n }\n }\n return names;\n }\n // #endregion\n // #region ---------------- Lifecycle Methods ----------------\n /**\n * Initializes the component and loads permission groups.\n */\n async ngOnInit() {\n super.ngOnInit();\n const groups = await this.permissionService.getGroups();\n this.groups.set(groups);\n this.selectedGroup.set(groups[0]);\n this.selectedPermissions.set(this.initialPermissions);\n }\n // #endregion\n // #region ---------------- UI Handlers ----------------\n /**\n * Handles group tab/menu item click.\n */\n handleMenuItemClick(item) {\n this.selectedGroup.set(item);\n }\n /**\n * Returns the primary menu items for the popup layout.\n */\n getPrimaryMenuItems() {\n return [\n {\n title: 't(\"select\")',\n icon: 'fa-solid',\n command: {\n name: 'select'\n }\n }\n ];\n }\n /**\n * Handles permission checkbox toggle (checks/unchecks all children recursively).\n */\n onPermissionToggle(item, e) {\n const names = this.collectPermissionNames(item);\n if (e.value) {\n // Add all names (parent + children), avoiding duplicates\n const set = new Set([...this.selectedPermissions(), ...names]);\n this.selectedPermissions.set(Array.from(set));\n }\n else {\n // Remove all names (parent + children)\n this.selectedPermissions.set(this.selectedPermissions().filter(name => !names.includes(name)));\n }\n }\n execute(command) {\n if (command.name === 'select') {\n this.close(this.selectedPermissions());\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionsEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", type: AXPPermissionsEditorComponent, isStandalone: true, selector: \"axm-permissions-editor\", providers: [\n {\n provide: AXPPopupLayoutBase,\n useExisting: AXPPermissionsEditorComponent\n }\n ], usesInheritance: true, ngImport: i0, template: \"<axp-popup-layout>\\n <axp-page-content>\\n <div class=\\\"ax-flex ax-min-h-96\\\">\\n <div class=\\\"ax-p-4 ax-min-h-full ax-overflow-auto ax-w-2/5\\\">\\n <ax-tabs location=\\\"start\\\" look=\\\"with-line-color\\\" class=\\\"ax-h-full\\\">\\n @for (group of groupsWithBadge(); track $index) {\\n <ax-tab-item\\n [active]=\\\"group.name === selectedGroup()?.name\\\"\\n [text]=\\\"group.title\\\"\\n (onClick)=\\\"handleMenuItemClick(group)\\\"\\n >\\n <ax-suffix>\\n <ax-badge color=\\\"primary\\\" [text]=\\\"group.badge\\\"></ax-badge>\\n </ax-suffix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-flex ax-h-full ax-overflow-auto ax-flex-col ax-w-3/5 ax-border-s\\\">\\n <div class=\\\"ax-p-4 ax-border-b ax-border-lightest\\\">\\n <span class=\\\"ax-h6\\\">{{ selectedGroup()?.title! }}</span>\\n </div>\\n <div class=\\\"ax-flex ax-p-4\\\">\\n <ul class=\\\"\\\">\\n <ng-template #recursiveList let-items>\\n @for (item of items; track $index) {\\n <li class=\\\"ax-py-1\\\">\\n <ax-check-box [ngModel]=\\\"item.isSelected\\\" (onValueChanged)=\\\"onPermissionToggle(item, $event)\\\">\\n <ax-label>\\n {{ item.title }}\\n @if (item.description) {\\n <i class=\\\"ax-ps-2 ax-text-xs fa-light fa-circle-info\\\" [title]=\\\"item.description\\\"></i>\\n }\\n </ax-label>\\n </ax-check-box>\\n @if (item.children && item.children.length > 0) {\\n <ul class=\\\"ax-p-2 ax-mt-1 ax-ms-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"recursiveList; context: { $implicit: item.children }\\\"\\n ></ng-container>\\n </ul>\\n }\\n </li>\\n }\\n </ng-template>\\n <ng-container *ngTemplateOutlet=\\\"recursiveList; context: { $implicit: items() }\\\"></ng-container>\\n </ul>\\n </div>\\n </div>\\n </div>\\n </axp-page-content>\\n</axp-popup-layout>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i4.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i5.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i5.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i6.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i7.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"component\", type: \n // Platform\n AXPPopupLayoutComponent, selector: \"axp-popup-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionsEditorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-permissions-editor', imports: [\n // Angular\n CommonModule,\n FormsModule,\n // ACoreX\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTabsModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXBadgeModule,\n AXCheckBoxModule,\n AXTooltipModule,\n // Platform\n AXPPopupLayoutComponent,\n AXPThemeLayoutBlockComponent\n ], encapsulation: ViewEncapsulation.None, providers: [\n {\n provide: AXPPopupLayoutBase,\n useExisting: AXPPermissionsEditorComponent\n }\n ], template: \"<axp-popup-layout>\\n <axp-page-content>\\n <div class=\\\"ax-flex ax-min-h-96\\\">\\n <div class=\\\"ax-p-4 ax-min-h-full ax-overflow-auto ax-w-2/5\\\">\\n <ax-tabs location=\\\"start\\\" look=\\\"with-line-color\\\" class=\\\"ax-h-full\\\">\\n @for (group of groupsWithBadge(); track $index) {\\n <ax-tab-item\\n [active]=\\\"group.name === selectedGroup()?.name\\\"\\n [text]=\\\"group.title\\\"\\n (onClick)=\\\"handleMenuItemClick(group)\\\"\\n >\\n <ax-suffix>\\n <ax-badge color=\\\"primary\\\" [text]=\\\"group.badge\\\"></ax-badge>\\n </ax-suffix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-flex ax-h-full ax-overflow-auto ax-flex-col ax-w-3/5 ax-border-s\\\">\\n <div class=\\\"ax-p-4 ax-border-b ax-border-lightest\\\">\\n <span class=\\\"ax-h6\\\">{{ selectedGroup()?.title! }}</span>\\n </div>\\n <div class=\\\"ax-flex ax-p-4\\\">\\n <ul class=\\\"\\\">\\n <ng-template #recursiveList let-items>\\n @for (item of items; track $index) {\\n <li class=\\\"ax-py-1\\\">\\n <ax-check-box [ngModel]=\\\"item.isSelected\\\" (onValueChanged)=\\\"onPermissionToggle(item, $event)\\\">\\n <ax-label>\\n {{ item.title }}\\n @if (item.description) {\\n <i class=\\\"ax-ps-2 ax-text-xs fa-light fa-circle-info\\\" [title]=\\\"item.description\\\"></i>\\n }\\n </ax-label>\\n </ax-check-box>\\n @if (item.children && item.children.length > 0) {\\n <ul class=\\\"ax-p-2 ax-mt-1 ax-ms-1\\\">\\n <ng-container\\n *ngTemplateOutlet=\\\"recursiveList; context: { $implicit: item.children }\\\"\\n ></ng-container>\\n </ul>\\n }\\n </li>\\n }\\n </ng-template>\\n <ng-container *ngTemplateOutlet=\\\"recursiveList; context: { $implicit: items() }\\\"></ng-container>\\n </ul>\\n </div>\\n </div>\\n </div>\\n </axp-page-content>\\n</axp-popup-layout>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9zZWN1cml0eS1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMtZWRpdG9yL3Blcm1pc3Npb25zLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2VjdXJpdHktbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLWVkaXRvci9wZXJtaXNzaW9ucy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRixPQUFPLEVBQTJCLDhCQUE4QixFQUFnQyxNQUFNLHVCQUF1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O3dCQUNiLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLDRCQUE0QjtxQkFDL0IsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLCtCQUErQjt5QkFDN0M7cUJBRUoiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBJbXBvcnRzICAgLS0tLS0tLS0tLS0tLS0tLVxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xuaW1wb3J0IHsgQVhQUG9wdXBMYXlvdXRCYXNlLCBBWFBQb3B1cExheW91dEJhc2VDb21wb25lbnQsIEFYUFBvcHVwTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvdmlld3MnO1xuaW1wb3J0IHsgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQUGVybWlzc2lvbkRlZmluaXRpb24sIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uU2VydmljZSwgQVhQUGVybWlzc2lvbkdyb3VwRGVmaW5pdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSBcIkBhY29yZXgvY2RrL2NvbW1vblwiO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuLy8gI2VuZHJlZ2lvblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4bS1wZXJtaXNzaW9ucy1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZXJtaXNzaW9ucy1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9wZXJtaXNzaW9ucy1lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gQW5ndWxhclxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRhYnNNb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICBBWEJhZGdlTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIC8vIFBsYXRmb3JtXG4gICAgICAgIEFYUFBvcHVwTGF5b3V0Q29tcG9uZW50LFxuICAgICAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBQb3B1cExheW91dEJhc2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQVhQUGVybWlzc2lvbnNFZGl0b3JDb21wb25lbnRcbiAgICAgICAgfVxuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUGVybWlzc2lvbnNFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBBWFBQb3B1cExheW91dEJhc2VDb21wb25lbnQge1xuXG4gICAgLy8gI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQ2xhc3MgUHJvcGVydGllcyAgIC0tLS0tLS0tLS0tLS0tLS1cbiAgICAvKiogU2VydmljZSBmb3IgZmV0Y2hpbmcgcGVybWlzc2lvbiBncm91cHMgYW5kIGRlZmluaXRpb25zICovXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZSA9IGluamVjdChBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblNlcnZpY2UpO1xuXG4gICAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBwZXJtaXNzaW9uIGdyb3VwICovXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkR3JvdXAgPSBzaWduYWw8QVhQUGVybWlzc2lvbkdyb3VwRGVmaW5pdGlvbiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEFsbCBhdmFpbGFibGUgcGVybWlzc2lvbiBncm91cHMgKi9cbiAgICBwcm90ZWN0ZWQgZ3JvdXBzID0gc2lnbmFsPEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb25bXT4oW10pO1xuXG4gICAgLyoqIEluaXRpYWwgcGVybWlzc2lvbnMgdG8gYmUgc2VsZWN0ZWQgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbFBlcm1pc3Npb25zID0gW107XG5cbiAgICAvKiogTGlzdCBvZiBzZWxlY3RlZCBwZXJtaXNzaW9uIG5hbWVzICovXG4gICAgcHJvdGVjdGVkIHNlbGVjdGVkUGVybWlzc2lvbnMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IG1hcHMgcGVybWlzc2lvbnMgdG8gaW5jbHVkZSBzZWxlY3Rpb24gc3RhdGUgYW5kIGNoaWxkcmVuLlxuICAgICAqL1xuICAgIHByaXZhdGUgbWFwUGVybWlzc2lvbnMoaXRlbXM6IGFueVtdKTogYW55W10ge1xuICAgICAgICByZXR1cm4gKGl0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoYXNDaGlsZCA9IEFycmF5LmlzQXJyYXkoaXRlbS5jaGlsZHJlbikgJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IHRoaXMuaXNTZWxlY3RlZChpdGVtLm5hbWUpLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBoYXNDaGlsZCA/IHRoaXMubWFwUGVybWlzc2lvbnMoaXRlbS5jaGlsZHJlbikgOiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlZDogUmV0dXJucyBtYXBwZWQgcGVybWlzc2lvbnMgZm9yIHRoZSBzZWxlY3RlZCBncm91cC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZEdyb3VwKCk/LnBlcm1pc3Npb25zIHx8IFtdO1xuICAgICAgICByZXR1cm4gdGhpcy5tYXBQZXJtaXNzaW9ucyhwZXJtaXNzaW9ucyk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlZDogUmV0dXJucyBncm91cHMgd2l0aCBiYWRnZSBjb3VudHMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdyb3Vwc1dpdGhCYWRnZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5ncm91cHMoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZ3JvdXBzLm1hcChncm91cCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgICAgICAgIGJhZGdlOiB0aGlzLmdldEJhZGdlKGdyb3VwKSB8fCAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgVXRpbGl0eSBNZXRob2RzICAgLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8qKlxuICAgICAqIFJlY3Vyc2l2ZWx5IGNvbGxlY3RzIGFsbCBwZXJtaXNzaW9uIG5hbWVzIChwYXJlbnRzIGFuZCBjaGlsZHJlbikgZnJvbSBhbiBhcnJheS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbGxlY3RBbGxQZXJtaXNzaW9uTmFtZXMocGVybWlzc2lvbnM6IGFueVtdKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgbmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgbmFtZXMucHVzaChpdGVtLm5hbWUpO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5jaGlsZHJlbikgJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5jb25jYXQodGhpcy5jb2xsZWN0QWxsUGVybWlzc2lvbk5hbWVzKGl0ZW0uY2hpbGRyZW4pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmFtZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYmFkZ2UgY291bnQgZm9yIGEgZ3JvdXAgKGFsbCBzZWxlY3RlZCBwZXJtaXNzaW9ucywgaW5jbHVkaW5nIHBhcmVudHMpLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0QmFkZ2UoZ3JvdXA6IEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBhbGxOYW1lcyA9IHRoaXMuY29sbGVjdEFsbFBlcm1pc3Npb25OYW1lcyhncm91cC5wZXJtaXNzaW9ucyB8fCBbXSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUGVybWlzc2lvbnMgPSB0aGlzLnNlbGVjdGVkUGVybWlzc2lvbnMoKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBhbGxOYW1lcy5maWx0ZXIobmFtZSA9PiBzZWxlY3RlZFBlcm1pc3Npb25zLmluY2x1ZGVzKG5hbWUpKS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBjb3VudC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhIHBlcm1pc3Npb24gaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFBlcm1pc3Npb25zKCkuaW5jbHVkZXMobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgY29sbGVjdHMgYWxsIGRlc2NlbmRhbnQgcGVybWlzc2lvbiBuYW1lcyBmb3IgYSBzaW5nbGUgaXRlbSAoaW5jbHVkaW5nIGl0c2VsZikuXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb2xsZWN0UGVybWlzc2lvbk5hbWVzKGl0ZW06IGFueSk6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IG5hbWVzID0gW2l0ZW0ubmFtZV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uY2hpbGRyZW4pICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5jb25jYXQodGhpcy5jb2xsZWN0UGVybWlzc2lvbk5hbWVzKGNoaWxkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5hbWVzO1xuICAgIH1cbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBMaWZlY3ljbGUgTWV0aG9kcyAgIC0tLS0tLS0tLS0tLS0tLS1cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IGFuZCBsb2FkcyBwZXJtaXNzaW9uIGdyb3Vwcy5cbiAgICAgKi9cbiAgICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gYXdhaXQgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcm91cHMoKTtcbiAgICAgICAgdGhpcy5ncm91cHMuc2V0KGdyb3Vwcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cC5zZXQoZ3JvdXBzWzBdKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBlcm1pc3Npb25zLnNldCh0aGlzLmluaXRpYWxQZXJtaXNzaW9ucyk7XG4gICAgfVxuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFVJIEhhbmRsZXJzICAgLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZ3JvdXAgdGFiL21lbnUgaXRlbSBjbGljay5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaGFuZGxlTWVudUl0ZW1DbGljayhpdGVtOiBBWFBQZXJtaXNzaW9uR3JvdXBEZWZpbml0aW9uKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cC5zZXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcHJpbWFyeSBtZW51IGl0ZW1zIGZvciB0aGUgcG9wdXAgbGF5b3V0LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXRQcmltYXJ5TWVudUl0ZW1zKCk6IEFYUEFjdGlvbk1lbnVJdGVtW10gfCBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ3QoXCJzZWxlY3RcIiknLFxuICAgICAgICAgICAgICAgIGljb246ICdmYS1zb2xpZCcsXG4gICAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2VsZWN0J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgcGVybWlzc2lvbiBjaGVja2JveCB0b2dnbGUgKGNoZWNrcy91bmNoZWNrcyBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkpLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblBlcm1pc3Npb25Ub2dnbGUoaXRlbTogYW55LCBlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hbWVzID0gdGhpcy5jb2xsZWN0UGVybWlzc2lvbk5hbWVzKGl0ZW0pO1xuICAgICAgICBpZiAoZS52YWx1ZSkge1xuICAgICAgICAgICAgLy8gQWRkIGFsbCBuYW1lcyAocGFyZW50ICsgY2hpbGRyZW4pLCBhdm9pZGluZyBkdXBsaWNhdGVzXG4gICAgICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KFsuLi50aGlzLnNlbGVjdGVkUGVybWlzc2lvbnMoKSwgLi4ubmFtZXNdKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQZXJtaXNzaW9ucy5zZXQoQXJyYXkuZnJvbShzZXQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSBhbGwgbmFtZXMgKHBhcmVudCArIGNoaWxkcmVuKVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBlcm1pc3Npb25zLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGVybWlzc2lvbnMoKS5maWx0ZXIobmFtZSA9PiAhbmFtZXMuaW5jbHVkZXMobmFtZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGNvbW1hbmQubmFtZSA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5zZWxlY3RlZFBlcm1pc3Npb25zKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvblxuXG59XG4iLCI8YXhwLXBvcHVwLWxheW91dD5cbiAgPGF4cC1wYWdlLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtbWluLWgtOTZcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtbWluLWgtZnVsbCBheC1vdmVyZmxvdy1hdXRvIGF4LXctMi81XCI+XG4gICAgICAgIDxheC10YWJzIGxvY2F0aW9uPVwic3RhcnRcIiBsb29rPVwid2l0aC1saW5lLWNvbG9yXCIgY2xhc3M9XCJheC1oLWZ1bGxcIj5cbiAgICAgICAgICBAZm9yIChncm91cCBvZiBncm91cHNXaXRoQmFkZ2UoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgICAgICAgW2FjdGl2ZV09XCJncm91cC5uYW1lID09PSBzZWxlY3RlZEdyb3VwKCk/Lm5hbWVcIlxuICAgICAgICAgICAgICBbdGV4dF09XCJncm91cC50aXRsZVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU1lbnVJdGVtQ2xpY2soZ3JvdXApXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgY29sb3I9XCJwcmltYXJ5XCIgW3RleHRdPVwiZ3JvdXAuYmFkZ2VcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LXRhYnM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWgtZnVsbCBheC1vdmVyZmxvdy1hdXRvIGF4LWZsZXgtY29sIGF4LXctMy81IGF4LWJvcmRlci1zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtYm9yZGVyLWIgYXgtYm9yZGVyLWxpZ2h0ZXN0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1oNlwiPnt7IHNlbGVjdGVkR3JvdXAoKT8udGl0bGUhIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtcC00XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3QgbGV0LWl0ZW1zPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJheC1weS0xXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IFtuZ01vZGVsXT1cIml0ZW0uaXNTZWxlY3RlZFwiIChvblZhbHVlQ2hhbmdlZCk9XCJvblBlcm1pc3Npb25Ub2dnbGUoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1wcy0yIGF4LXRleHQteHMgZmEtbGlnaHQgZmEtY2lyY2xlLWluZm9cIiBbdGl0bGVdPVwiaXRlbS5kZXNjcmlwdGlvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYXgtcC0yIGF4LW10LTEgYXgtbXMtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0uY2hpbGRyZW4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW1zKCkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXhwLXBhZ2UtY29udGVudD5cbjwvYXhwLXBvcHVwLWxheW91dD5cbiJdfQ=="],"names":[],"mappings":"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"}
|
package/fesm2022/acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
import * as i2 from '@acorex/core/translation';
|
2
|
-
import { AXTranslationModule } from '@acorex/core/translation';
|
3
|
-
import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';
|
4
|
-
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
5
|
-
import * as i1 from '@angular/common';
|
6
|
-
import { CommonModule } from '@angular/common';
|
7
|
-
import * as i0 from '@angular/core';
|
8
|
-
import { computed, inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
9
|
-
import { castArray } from 'lodash-es';
|
10
|
-
|
11
|
-
class AXPPermissionsWidgetColumnComponent extends AXPColumnWidgetComponent {
|
12
|
-
constructor() {
|
13
|
-
super(...arguments);
|
14
|
-
this.count = computed(() => castArray(this.rawValue).length);
|
15
|
-
this.workflowService = inject(AXPWorkflowService);
|
16
|
-
}
|
17
|
-
openPermissionsEditor() {
|
18
|
-
this.workflowService.execute('assign-permissions', {
|
19
|
-
data: this.rowData
|
20
|
-
});
|
21
|
-
}
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: AXPPermissionsWidgetColumnComponent, isStandalone: true, selector: "ng-component", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
24
|
-
<span class="ax-cursor-pointer ax-text-primary ax-underline" (click)="openPermissionsEditor()">{{count()}} {{'@security-management:features.permissions.terms.permissions' | translate | async}}</span>
|
25
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
26
|
-
}
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsWidgetColumnComponent, decorators: [{
|
28
|
-
type: Component,
|
29
|
-
args: [{
|
30
|
-
template: `
|
31
|
-
<span class="ax-cursor-pointer ax-text-primary ax-underline" (click)="openPermissionsEditor()">{{count()}} {{'@security-management:features.permissions.terms.permissions' | translate | async}}</span>
|
32
|
-
`,
|
33
|
-
standalone: true,
|
34
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
35
|
-
imports: [CommonModule, AXTranslationModule],
|
36
|
-
inputs: ['rawValue', 'rowData']
|
37
|
-
}]
|
38
|
-
}] });
|
39
|
-
|
40
|
-
export { AXPPermissionsWidgetColumnComponent };
|
41
|
-
//# sourceMappingURL=acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-security-management-permissions-widget-column.component-DTMj6gxb.mjs","sources":["../tmp-esm2022/security-management/lib/features/permissions/permissions-widget/permissions-widget-column.component.js"],"sourcesContent":["import { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXPPermissionsWidgetColumnComponent extends AXPColumnWidgetComponent {\n constructor() {\n super(...arguments);\n this.count = computed(() => castArray(this.rawValue).length);\n this.workflowService = inject(AXPWorkflowService);\n }\n openPermissionsEditor() {\n this.workflowService.execute('assign-permissions', {\n data: this.rowData\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionsWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPPermissionsWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\", rowData: \"rowData\" }, usesInheritance: true, ngImport: i0, template: `\n <span class=\"ax-cursor-pointer ax-text-primary ax-underline\" (click)=\"openPermissionsEditor()\">{{count()}} {{'@security-management:features.permissions.terms.permissions' | translate | async}}</span>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionsWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <span class=\"ax-cursor-pointer ax-text-primary ax-underline\" (click)=\"openPermissionsEditor()\">{{count()}} {{'@security-management:features.permissions.terms.permissions' | translate | async}}</span>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXTranslationModule],\n inputs: ['rawValue', 'rowData']\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2VjdXJpdHktbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLXdpZGdldC9wZXJtaXNzaW9ucy13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFVdEMsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLHdCQUE2QjtJQVR0Rjs7UUFXWSxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQU94RDtJQUxDLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtZQUNqRCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FUVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyxxSkFScEM7O0dBRVQsMkRBR1MsWUFBWSxtRkFBRSxtQkFBbUI7OzJGQUdoQyxtQ0FBbUM7a0JBVC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOztHQUVUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUM1QyxNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXN0QXJyYXkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlciBheC10ZXh0LXByaW1hcnkgYXgtdW5kZXJsaW5lXCIgKGNsaWNrKT1cIm9wZW5QZXJtaXNzaW9uc0VkaXRvcigpXCI+e3tjb3VudCgpfX0gIHt7J0BzZWN1cml0eS1tYW5hZ2VtZW50OmZlYXR1cmVzLnBlcm1pc3Npb25zLnRlcm1zLnBlcm1pc3Npb25zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jfX08L3NwYW4+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWFRyYW5zbGF0aW9uTW9kdWxlXSxcbiAgaW5wdXRzOiBbJ3Jhd1ZhbHVlJywgJ3Jvd0RhdGEnXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBQZXJtaXNzaW9uc1dpZGdldENvbHVtbkNvbXBvbmVudCBleHRlbmRzIEFYUENvbHVtbldpZGdldENvbXBvbmVudDxhbnk+IHtcblxuICBwcm90ZWN0ZWQgY291bnQgPSBjb21wdXRlZCgoKSA9PiBjYXN0QXJyYXkodGhpcy5yYXdWYWx1ZSkubGVuZ3RoKTtcbiAgcHJvdGVjdGVkIHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gIG9wZW5QZXJtaXNzaW9uc0VkaXRvcigpIHtcbiAgICB0aGlzLndvcmtmbG93U2VydmljZS5leGVjdXRlKCdhc3NpZ24tcGVybWlzc2lvbnMnLCB7XG4gICAgICBkYXRhOiB0aGlzLnJvd0RhdGFcbiAgICB9KTtcbiAgfVxufSJdfQ=="],"names":[],"mappings":";;;;;;;;;;AASO,MAAM,mCAAmC,SAAS,wBAAwB,CAAC;AAClF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACpE,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,oBAAoB,EAAE;AAC3D,YAAY,IAAI,EAAE,IAAI,CAAC;AACvB,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1R;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3S;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC;AAC7I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B;AACA,EAAE,CAAC;AACH,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAChE,oBAAoB,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS;AAClD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;"}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';
|
2
|
-
import * as i0 from '@angular/core';
|
3
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
4
|
-
|
5
|
-
class AXPPermissionsWidgetDesignerComponent extends AXPLayoutWidgetComponent {
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: AXPPermissionsWidgetDesignerComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
8
|
-
}
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXPPermissionsWidgetDesignerComponent, decorators: [{
|
10
|
-
type: Component,
|
11
|
-
args: [{
|
12
|
-
template: ``,
|
13
|
-
standalone: true,
|
14
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
15
|
-
imports: []
|
16
|
-
}]
|
17
|
-
}] });
|
18
|
-
|
19
|
-
export { AXPPermissionsWidgetDesignerComponent };
|
20
|
-
//# sourceMappingURL=acorex-modules-security-management-permissions-widget-designer.component-BJdbKpRQ.mjs.map
|