@acorex-platform/module-application-management-client 0.0.53 → 0.0.56

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.
Files changed (22) hide show
  1. package/fesm2022/{acorex-platform-module-application-management-client-assign-features.command-CEuIYheD.mjs → acorex-platform-module-application-management-client-assign-features.command-CBdVp3GA.mjs} +5 -2
  2. package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-CBdVp3GA.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-application-management-client-contracts-entities-app-version.mjs +4 -4
  4. package/fesm2022/acorex-platform-module-application-management-client-contracts-entities-app-version.mjs.map +1 -1
  5. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-acorex-platform-module-application-management-client-contracts-entity-catalog-311tpDhr.mjs → acorex-platform-module-application-management-client-contracts-entity-catalog-acorex-platform-module-application-management-client-contracts-entity-catalog-Dr8fjXcZ.mjs} +5 -5
  6. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-acorex-platform-module-application-management-client-contracts-entity-catalog-311tpDhr.mjs.map → acorex-platform-module-application-management-client-contracts-entity-catalog-acorex-platform-module-application-management-client-contracts-entity-catalog-Dr8fjXcZ.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-app-term.entity-DDvm1sOg.mjs → acorex-platform-module-application-management-client-contracts-entity-catalog-app-term.entity-FefcoNUr.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-app-term.entity-DDvm1sOg.mjs.map → acorex-platform-module-application-management-client-contracts-entity-catalog-app-term.entity-FefcoNUr.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-app-version.entity-DjOMTlcp.mjs → acorex-platform-module-application-management-client-contracts-entity-catalog-app-version.entity-oor4LP3T.mjs} +6 -6
  10. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-app-version.entity-DjOMTlcp.mjs.map → acorex-platform-module-application-management-client-contracts-entity-catalog-app-version.entity-oor4LP3T.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-application.entity-BWOz1V1N.mjs → acorex-platform-module-application-management-client-contracts-entity-catalog-application.entity-BLE_zikL.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-application.entity-BWOz1V1N.mjs.map → acorex-platform-module-application-management-client-contracts-entity-catalog-application.entity-BLE_zikL.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-edition.entity-VjrQsh0t.mjs → acorex-platform-module-application-management-client-contracts-entity-catalog-edition.entity-Dl7Qhadj.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-application-management-client-contracts-entity-catalog-edition.entity-VjrQsh0t.mjs.map → acorex-platform-module-application-management-client-contracts-entity-catalog-edition.entity-Dl7Qhadj.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-module-application-management-client-contracts-entity-catalog.mjs +1 -1
  16. package/fesm2022/acorex-platform-module-application-management-client.mjs +8 -8
  17. package/fesm2022/acorex-platform-module-application-management-client.mjs.map +1 -1
  18. package/i18n/en-AU/application-management.json +370 -0
  19. package/i18n/en-US/application-management.json +370 -0
  20. package/i18n/fa-IR/application-management.json +370 -0
  21. package/package.json +1 -1
  22. package/fesm2022/acorex-platform-module-application-management-client-assign-features.command-CEuIYheD.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-application-management-client.mjs","sources":["../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-term/notify-app-term.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-term/notify-app-term.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/new-term.command.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/new-term.command.definition.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/show-release-notes.command.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/show-release-notes.command.definition.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-version/notify-app-version.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-version/notify-app-version.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/list-versions/list-version.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/list-versions/list-version.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/slots/application-info-slot.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/slots/copyright-footer-slot.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/pages/list/list-terms.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/pages/list/list-terms.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/settings.provider.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/check-terms.service.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/features-widget.config.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/widget-definition.provider.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/features.module.ts","../../../../libs/modules/application-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/application-management/client/src/lib/context-definition.provider.ts","../../../../libs/modules/application-management/client/src/lib/application-management.module.ts","../../../../libs/modules/application-management/client/src/lib/menu.provider.ts","../../../../libs/modules/application-management/client/src/acorex-platform-module-application-management-client.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMAppTermEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\n@Component({\n selector: 'axm-notify-app-term',\n imports: [\n CommonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXSafePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notify-app-term.component.html',\n})\nexport class AXMNotifyAppTermComponent extends AXBasePageComponent {\n data: AXMAppTermEntityModel[];\n safeData: SafeHtml | null;\n isConfirm: boolean = false;\n\n i18n = RootConfig.config.i18n;\n\n transformContent(content: string): string {\n return content.replace(/\\n/g, '<br>');\n }\n\n send(): void {\n this.close({ data: this.data });\n }\n}\n\n","@for (item of data; track $index) {\n <ax-content class=\"block px-4 py-4 font-bold\">{{ item.title }}</ax-content>\n <ax-content\n class=\"block px-4 pb-4 text-base/6\"\n [innerHTML]=\"transformContent(item.content) | safe: 'html'\"\n ></ax-content>\n}\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isConfirm\">\n <ax-label>{{ 'agreeTerm' | translate: { scope: i18n } | async }}</ax-label>\n </ax-check-box>\n <ax-button\n (click)=\"send()\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n [disabled]=\"!isConfirm\"\n color=\"primary\"\n ></ax-button>\n</ax-footer>\n\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { Injectable, inject } from '@angular/core';\nimport { AXMAppTermEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\nimport { AXMNotifyAppTermComponent } from '../components/notify-app-term/notify-app-term.component';\n\n//#region ---- Types ----\n\nexport type AXMNewTermCommandInput = AXMAppTermEntityModel[] | { terms?: AXMAppTermEntityModel[] };\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveTerms(input?: AXMNewTermCommandInput | null): AXMAppTermEntityModel[] {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n return input.terms ?? [];\n}\n\n//#endregion\n\n//#region ---- New term command ----\n\n/**\n * Shows the terms confirmation popup, then marks each term as confirmed in user settings.\n * Replaces the former `new-term` workflow (popup step + settings step).\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMNewTermCommand implements AXPCommand<AXMNewTermCommandInput> {\n private readonly popupService = inject(AXPopupService);\n private readonly settingsService = inject(AXPSettingsService);\n\n async execute(input: AXMNewTermCommandInput = []): AXPCommandExecuteResultPromise {\n const dataList = resolveTerms(input);\n if (dataList.length === 0) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n await this.popupService.open(AXMNotifyAppTermComponent, {\n title: 'New Terms And Conditions',\n data: { data: dataList },\n closeButton: false,\n });\n\n for (const term of dataList) {\n await this.settingsService.scope(AXPPlatformScope.User).set(`is-confirm-term-${term.id}`, true);\n }\n\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n","/**\n * Build-time only. Do not import from Angular modules.\n */\n\nimport { AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, defineCommand } from '@acorex-platform/framework-shared/runtime';\n\nexport const axmNewTermCommandDefinition = defineCommand({\n key: 'new-term',\n title: 'Confirm new terms and conditions',\n description:\n 'AXMNewTermCommand opens AXMNotifyAppTermComponent for unconfirmed terms, then sets is-confirm-term-{id} in user settings.',\n executionMode: 'frontend',\n inputs: [\n {\n name: 'terms',\n title: 'Terms',\n description: 'AXMAppTermEntityModel[] (or pass the array as root input from startup).',\n interface: { name: 'text-editor' },\n },\n ],\n outcomes: {\n mode: 'static',\n values: ['success', 'failure'],\n },\n ai: {\n tags: ['application-management', 'terms', 'popup'],\n },\n categories: [AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM],\n});\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\n\n//#region ---- Show release notes command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMShowReleaseNotesCommand implements AXPCommand<Record<string, never>> {\n private readonly popupService = inject(AXPopupService);\n private readonly translateService = inject(AXTranslationService);\n\n async execute(): AXPCommandExecuteResultPromise {\n const comp = (await import('../components/list-versions/list-version.component')).AXMListVersionComponent;\n await this.popupService.open(comp, {\n title: await this.translateService.translateAsync(\n '@application-management:application-info.menus.release-notes.title',\n ),\n size: 'md',\n closeButton: true,\n closeOnBackdropClick: true,\n draggable: false,\n });\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n","/**\n * Build-time only. Do not import from Angular modules.\n */\n\nimport { AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, defineCommand } from '@acorex-platform/framework-shared/runtime';\n\nexport const axmShowReleaseNotesCommandDefinition = defineCommand({\n key: 'show-release-notes',\n title: 'Show release notes',\n description: 'AXMShowReleaseNotesCommand opens AXMListVersionComponent in a popup (version timeline).',\n executionMode: 'frontend',\n inputs: [],\n outcomes: {\n mode: 'static',\n values: ['success', 'failure'],\n },\n ai: {\n tags: ['application-management', 'release-notes', 'popup'],\n },\n categories: [AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM],\n});\n","//#region ----- Imports -----\n\nimport { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { AXMAppVersionEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-notify-app-version',\n imports: [CommonModule, AXLabelModule, AXCheckBoxModule, AXDecoratorModule, AXButtonModule, AXTranslationModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notify-app-version.component.html',\n})\nexport class AXMNotifyAppVersionComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly translationService = inject(AXTranslationService);\n sanitize = inject(DomSanitizer);\n\n //#endregion\n\n //#region ----- State -----\n\n data: AXMAppVersionEntityModel;\n safeData: SafeHtml | null;\n isShowAgain: boolean = true;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n const html = resolveMultiLanguageString(this.data.changeLog, this.translationService.getActiveLang());\n this.safeData = this.sanitize.bypassSecurityTrustHtml(html);\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n send(): void {\n this.close({ data: this.data, isShowAgain: !this.isShowAgain });\n }\n\n //#endregion\n}\n\n//#endregion\n","<ax-content class=\"block px-4 py-4 text-base/6\" [innerHTML]=\"safeData\"></ax-content>\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isShowAgain\">\n <ax-label>Don't Show Again</ax-label>\n </ax-check-box>\n <ax-button color=\"primary\" (click)=\"send()\" [text]=\"'@general:actions.ok.title' | translate | async\"></ax-button>\n</ax-footer>\n\n","import { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTimeLineModule } from '@acorex/components/time-line';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule, AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, WritableSignal } from '@angular/core';\nimport { AXMAppVersionListComponentModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-list-version',\n imports: [\n CommonModule,\n AXTimeLineModule,\n AXDecoratorModule,\n AXFormatModule,\n AXDateTimeModule,\n AXButtonModule,\n AXTranslationModule,\n ],\n templateUrl: './list-version.component.html',\n styleUrl: './list-version.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMListVersionComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly appVersionService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.appVersion.name)\n .data<any, any>();\n private readonly formatService = inject(AXFormatService);\n private readonly translateService = inject(AXTranslationService);\n private readonly sanitizer = inject(DomSanitizer);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n readonly versions: WritableSignal<AXMAppVersionListComponentModel[]> = signal([]);\n readonly loading = signal(true);\n readonly loadFailed = signal(false);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n protected override async ngOnInit(): Promise<void> {\n await this.loadVersions();\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadVersions(): Promise<void> {\n this.loading.set(true);\n this.loadFailed.set(false);\n try {\n const result = await this.appVersionService.query({\n take: 1000,\n skip: 0,\n sort: [{ field: 'publishDate', dir: 'desc' }],\n });\n\n const versionLabelTemplate = await this.translateService.translateAsync(\n '@application-management:application-info.release-notes.version-label',\n );\n const latestBadge = await this.translateService.translateAsync(\n '@application-management:application-info.release-notes.latest-badge',\n );\n\n const items = [...(result.items ?? [])].sort((left, right) => {\n const leftTime = Date.parse(String(left.publishDate ?? '')) || 0;\n const rightTime = Date.parse(String(right.publishDate ?? '')) || 0;\n if (rightTime !== leftTime) {\n return rightTime - leftTime;\n }\n return String(right.versionNumber ?? '').localeCompare(String(left.versionNumber ?? ''), undefined, {\n numeric: true,\n });\n });\n\n const mappedItems = items.map<AXMAppVersionListComponentModel>((item, index) => {\n const versionNumber = String(item.versionNumber ?? '');\n const publishDateLabel = this.formatService.format(item.publishDate, 'datetime', {\n format: 'date',\n });\n const title = versionLabelTemplate.replace('{{version}}', versionNumber);\n\n return {\n id: item.id,\n title: index === 0 ? `${title} · ${latestBadge}` : title,\n versionNumber,\n publishDateLabel,\n isLatest: index === 0,\n content:\n this.sanitizer.bypassSecurityTrustHtml(\n resolveMultiLanguageString(item.changeLog, this.translateService.getActiveLang()),\n ) ?? '',\n };\n });\n\n this.versions.set(mappedItems);\n } catch {\n this.loadFailed.set(true);\n this.versions.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-release-notes\">\n <!-- ----- Loading state while versions are fetched ----- -->\n @if (loading()) {\n <div class=\"axm-release-notes__state\">\n {{ '@application-management:application-info.release-notes.loading' | translate | async }}\n </div>\n }\n <!-- ----- Error state when the query fails ----- -->\n @else if (loadFailed()) {\n <div class=\"axm-release-notes__state axm-release-notes__state--error\">\n {{ '@application-management:application-info.release-notes.load-failed' | translate | async }}\n </div>\n }\n <!-- ----- Empty state when no AppVersion rows exist ----- -->\n @else if (versions().length === 0) {\n <div class=\"axm-release-notes__state\">\n {{ '@application-management:application-info.release-notes.empty' | translate | async }}\n </div>\n }\n <!-- ----- Version timeline: header = version, body = publish date + changelog ----- -->\n @else {\n <ax-time-line mode=\"icon\" class=\"axm-release-notes__timeline\">\n @for (version of versions(); track version.id) {\n <ax-time-line-item\n [text]=\"version.title\"\n [isActive]=\"version.isLatest\"\n [isCollapsed]=\"!version.isLatest\"\n >\n <ax-icon class=\"fa-solid fa-rocket\"></ax-icon>\n <div class=\"axm-release-notes__item\">\n <div class=\"axm-release-notes__meta\">\n <span class=\"axm-release-notes__meta-label\">\n {{ '@application-management:application-info.release-notes.published-label' | translate | async }}\n </span>\n <time class=\"axm-release-notes__meta-date\">{{ version.publishDateLabel }}</time>\n </div>\n <div class=\"axm-release-notes__changelog\" [innerHTML]=\"version.content\"></div>\n </div>\n </ax-time-line-item>\n }\n </ax-time-line>\n }\n</div>\n\n<ax-footer class=\"axm-release-notes__footer\">\n <ax-button\n [text]=\"'@general:actions.ok.title' | translate | async\"\n color=\"primary\"\n (onClick)=\"this.close()\"\n ></ax-button>\n</ax-footer>\n","//#region ----- Imports -----\n\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_APP_VERSION_PROVIDER, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPPlatformScope, resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXMApplicationManagementApplicationEntityModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMApplicationManagementEditionEntityModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationInfoSettings } from '@acorex-platform/module-application-management-client/contracts';\nimport { merge } from 'rxjs';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n template: ` <small class=\"text-sm cursor-pointer\" (click)=\"openPopup()\">{{ displayText() }}</small> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMApplicationInfoSlotComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly versionProvider = inject(AXP_APP_VERSION_PROVIDER);\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly translationService = inject(AXTranslationService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly editionService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.edition.name)\n .data<any, any>();\n private readonly applicationService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.application.name)\n .data<any, any>();\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected displayText = signal<string>('');\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n merge(this.sessionService.application$, this.translationService.langChanges$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n void this.loadDisplayText();\n });\n\n void this.loadDisplayText();\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n openPopup(): void {\n void this.commandService.execute('show-release-notes', {});\n }\n\n //#endregion\n\n //#region ----- Private Helpers -----\n\n private async loadDisplayText(): Promise<void> {\n const application = this.sessionService.application;\n if (!application) {\n this.displayText.set('');\n return;\n }\n\n const versionInfo = await this.versionProvider.provider();\n const version = versionInfo.version;\n\n const locale = this.translationService.getActiveLang();\n const appTitle =\n resolveMultiLanguageString(application.title, locale).trim() || application.name || '';\n\n let editionName = '';\n const hasMultipleEditions = await this.checkMultipleEditions(application.id);\n if (hasMultipleEditions && application.edition?.title) {\n editionName = resolveMultiLanguageString(application.edition.title, locale).trim();\n }\n\n const pattern = await this.settingsService\n .scope(AXPPlatformScope.Platform)\n .get(AXPApplicationInfoSettings.DisplayPattern);\n\n const displayPattern = (pattern as string) || '{appTitle} v{version}';\n\n this.displayText.set(\n displayPattern\n .replace(/\\{appTitle\\}/g, appTitle)\n .replace(/\\{\\[editionName\\]\\}/g, editionName ? `[${editionName}]` : '')\n .replace(/\\{editionName\\}/g, editionName)\n .replace(/\\{version\\}/g, version)\n .trim(),\n );\n }\n\n private async checkMultipleEditions(applicationId: string): Promise<boolean> {\n try {\n const application = (await this.applicationService.byKey(\n applicationId,\n )) as AXMApplicationManagementApplicationEntityModel | null;\n if (!application || !application.editionIds || application.editionIds.length === 0) {\n return false;\n }\n\n const editionsResult = (await this.editionService.query({\n skip: 0,\n take: 2,\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'id',\n operator: { type: 'in' },\n value: application.editionIds,\n },\n ],\n },\n })) as { items: AXMApplicationManagementEditionEntityModel[] };\n\n return editionsResult.items.length > 1;\n } catch (error) {\n console.error('Error checking multiple editions:', error);\n return false;\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_PLATFORM_BRANDING_SETTING_KEYS,\n AXPPlatformBrandingService,\n AXPSettingsService,\n} from '@acorex-platform/framework-client/common';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, merge } from 'rxjs';\n\n//#endregion\n\n//#region ----- Component -----\n\n/**\n * Footer copyright text. Hidden on small (mobile) viewports. Re-resolves when language,\n * tenant, or copyright settings change (slot `options` factories only run once at mount).\n */\n@Component({\n template: ` <small class=\"text-sm\" [innerHTML]=\"text()\"></small> `,\n host: {\n class: 'hidden sm:inline',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMCopyrightFooterSlotComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly brandingService = inject(AXPPlatformBrandingService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly destroyRef = inject(DestroyRef);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly text = signal('');\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n const copyrightKey = AXP_PLATFORM_BRANDING_SETTING_KEYS.copyrightText;\n\n merge(\n this.translationService.langChanges$,\n this.sessionService.tenant$,\n this.settingsService.onLoaded,\n this.settingsService.onChanged.pipe(filter((event) => event.keys.includes(copyrightKey))),\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n void this.reload();\n });\n\n void this.reload();\n }\n\n //#endregion\n\n //#region ----- Private Helpers -----\n\n private async reload(): Promise<void> {\n this.text.set(await this.brandingService.resolveCopyright());\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXOutlineContainerDirective } from '@acorex/cdk/outline';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXOutlineSideMenuDirective, AXSideMenuModule } from '@acorex/components/side-menu';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPThemeLayoutBlockComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMAppTermViewModel } from '@acorex-platform/module-application-management-client/contracts';\n@Component({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXFormatModule,\n AXPThemeLayoutBlockComponent,\n AXTranslationModule,\n AXSideMenuModule,\n AXPPageLayoutComponent,\n AXSafePipe,\n AXOutlineContainerDirective,\n AXOutlineSideMenuDirective,\n ],\n templateUrl: './list-terms.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMListTermsComponent,\n },\n ],\n})\nexport class AXMListTermsComponent extends AXPPageLayoutBaseComponent {\n private readonly entityService = inject(AXPEntityService);\n private service = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name).data<any, any>();\n\n protected terms: AXMAppTermViewModel[] = [];\n protected loaded = signal(false);\n protected showScrollSide = signal(true);\n\n ngAfterViewInit() {\n this.checkScroll();\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkScroll();\n }\n\n checkScroll() {\n const contentElement = document.getElementById('contentDiv');\n if (contentElement != null) {\n this.showScrollSide.set(contentElement!.offsetHeight > window.innerHeight - 140);\n }\n }\n\n override async ngOnInit() {\n super.ngOnInit();\n const result = await this.service.query({\n skip: 0,\n take: 1000,\n });\n this.terms = result.items.map<AXMAppTermViewModel>((term) => {\n return {\n ...term,\n content: term.content.replace(/\\n/g, '<br>'),\n };\n });\n this.loaded.set(true);\n\n setTimeout(() => this.checkScroll(), 50);\n }\n\n protected override getPageTitle(): string | Promise<string> {\n return `t(\"app-term.page-title\", {scope:\"${RootConfig.config.i18n}\"})`;\n }\n\n protected override getPageDescription(): string | Promise<string> {\n return `t(\"app-term.page-description\", {scope:\"${RootConfig.config.i18n}\"})`;\n }\n}\n\n","<axp-page-layout *translate=\"let t\">\n @if (loaded()) {\n <axp-page-content id=\"contentDiv\" axOutlineContainer target=\"h2\" [scrollableElementId]=\"'axp-page-layout'\" [activationOffset]=\"120\" class=\"flex flex-row!\">\n <div class=\"flex flex-col\">\n @for (term of terms; track term.id) {\n <div class=\"flex flex-col\">\n <h2 class=\"px-4 font-semibold text-xl\">{{ term.title }}</h2>\n <p class=\"px-4 text-sm leading-5 opacity-65\">\n {{ term.effectiveDate | format: 'datetime' | async }}\n </p>\n <div class=\"pt-3 pb-6 px-4 text-base/6\" [innerHTML]=\"term.content | safe: 'html'\"></div>\n </div>\n }\n </div>\n @if (showScrollSide()) {\n <div class=\"hidden lg:block min-w-60\">\n <ax-side-menu axOutlineSideMenu look=\"with-line\" class=\"w-full sticky top-24\"></ax-side-menu>\n </div>\n }\n </axp-page-content>\n }\n</axp-page-layout>\n","//#region ---- Imports ----\n\nimport { AXPPlatformScope, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXP_EXPERIENCE_SETTINGS_GROUP,\n AXP_EXPERIENCE_SETTINGS_SECTIONS,\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\n\nimport { Injectable } from '@angular/core';\n\nimport { objectKeyValueTransforms } from '@acorex-platform/framework-client/core';\nimport { AXPApplicationInfoSettings } from '@acorex-platform/module-application-management-client/contracts';\n\n//#endregion\n\n//#region ---- Setting Provider ----\n\nconst I18N_APP = '@application-management:application-info.settings';\nconst I18N_GENERAL = '@general:settings';\n\n@Injectable()\nexport class AXPApplicationInfoSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Find the 'Experience' settings group\n const group = context.group(AXP_EXPERIENCE_SETTINGS_GROUP);\n if (!group) {\n return;\n }\n\n // Find the 'Startup' section\n const section = group.section(AXP_EXPERIENCE_SETTINGS_SECTIONS.Startup);\n if (!section) {\n return;\n }\n\n // Add the 'Application Info Display Pattern' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.DisplayPattern,\n title: `${I18N_APP}.display-pattern.title`,\n scope: AXPPlatformScope.Platform,\n overridableAt: [],\n isInherited: false,\n defaultValue: '{appTitle} v{version}',\n widget: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: `${I18N_APP}.display-pattern.placeholder`,\n },\n },\n description: `${I18N_APP}.display-pattern.description`,\n });\n\n // Add the 'Application Terms' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.ApplicationTerms,\n title: `${I18N_GENERAL}.experience.startup.application-terms.title`,\n scope: AXPPlatformScope.Platform,\n overridableAt: [],\n isInherited: false,\n defaultValue: false,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N_GENERAL}.experience.startup.application-terms.description`,\n });\n\n // Add the 'Release Notes' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.ReleaseNotes,\n title: `${I18N_GENERAL}.experience.startup.release-notes.title`,\n scope: AXPPlatformScope.User,\n overridableAt: [],\n isInherited: true,\n defaultValue: false,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N_GENERAL}.experience.startup.release-notes.description`,\n });\n\n section.endSection();\n }\n}\n\n//#endregion\n","import { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { AXPAppStartUpService, AXP_APP_STARTUP_PRIORITY } from '@acorex-platform/framework-client/core';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AXMAppTermEntityModel,\n AXPApplicationInfoSettings,\n} from '@acorex-platform/module-application-management-client/contracts';\nimport { combineLatest, distinctUntilChanged, EMPTY, from, switchMap } from 'rxjs';\n\n//#region ---- Terms check service ----\n\n@Injectable()\nexport class AXMAppTermsCheckService {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly commandService = inject(AXPCommandService);\n private readonly appInitService = inject(AXPAppStartUpService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly appTermService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name)\n .data<any, any>();\n\n //#endregion\n\n //#region ----- State -----\n\n private termsCheckGeneration = 0;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n this.appInitService.registerTask({\n name: 'Terms',\n statusText: '@application-management:app-startup.checking-terms',\n priority: AXP_APP_STARTUP_PRIORITY.terms,\n run: async () => {\n // Terms are evaluated reactively once the session is authorized with an application.\n },\n });\n\n combineLatest([this.sessionService.isAuthorized$, this.sessionService.application$])\n .pipe(\n distinctUntilChanged(\n ([authorized, app], [previousAuthorized, previousApp]) =>\n authorized === previousAuthorized && app?.id === previousApp?.id,\n ),\n switchMap(([authorized, app]) => {\n // Cookie sessions have no JS-readable access token — use credentials gate.\n if (!authorized || !app || !this.sessionService.hasSessionCredentials()) {\n this.termsCheckGeneration++;\n return EMPTY;\n }\n const generation = this.termsCheckGeneration;\n return from(this.evaluateUnconfirmedTerms(generation));\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n //#endregion\n\n //#region ----- Terms evaluation -----\n\n private async evaluateUnconfirmedTerms(generation: number): Promise<void> {\n if (!this.canCheckTerms() || generation !== this.termsCheckGeneration) {\n return;\n }\n\n const filterTerms: AXMAppTermEntityModel[] = [];\n const terms = await this.appTermService.query();\n\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n\n for (const term of terms.items) {\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n\n const isConfirm = await this.settingsService.scope(AXPPlatformScope.User).get(`is-confirm-term-${term.id}`);\n const isEnableToShow = await this.settingsService\n .scope(AXPPlatformScope.Platform)\n .get(AXPApplicationInfoSettings.ApplicationTerms);\n\n if (!isConfirm && isEnableToShow) {\n filterTerms.push(term);\n }\n }\n\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms() || filterTerms.length === 0) {\n return;\n }\n\n setTimeout(() => {\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n void this.commandService.execute('new-term', filterTerms);\n }, 500);\n }\n\n private canCheckTerms(): boolean {\n return this.sessionService.isReadyForAppScopedApi;\n }\n\n //#endregion\n}\n\n//#endregion\n","\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXPModuleFeatureEditorWidget: AXPWidgetConfig = {\n name: 'module-feature-editor',\n title: 'Module & Features Editor',\n description: 'Widget for managing module selection and their features with full editor interface',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-star',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./features-widget-view.component').then((c) => c.AXPFeaturesWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./features-widget-edit.component').then((c) => c.AXPModuleFeatureEditorWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./features-widget-column.component').then((c) => c.AXPFeaturesWidgetColumnComponent),\n },\n print: {\n component: () =>\n import('./features-widget-print.component').then((c) => c.AXPFeaturesWidgetPrintComponent),\n },\n designer: {\n component: () =>\n import('./features-widget-designer.component').then((c) => c.AXPFeaturesWidgetDesignerComponent),\n },\n },\n};\n\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPModuleFeatureEditorWidget } from './features-widget.config';\n\n//#endregion\n\n//#region ---- Features Widgets Provider ----\n\nconst WIDGETS = [AXPModuleFeatureEditorWidget];\n\n@Injectable()\nexport class AXPFeaturesWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return WIDGETS;\n }\n}\n\n//#endregion\n","import { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { NgModule } from '@angular/core';\nimport { AXPFeaturesWidgetsProvider } from './widget-definition.provider';\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n ],\n providers: [\n { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPFeaturesWidgetsProvider, multi: true },\n ],\n})\nexport class AXMFeaturesModule {}\n\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\n\n@Injectable()\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-application',\n group: 'command',\n title: RootConfig.entities.application.title,\n icon: RootConfig.entities.application.icon,\n description: RootConfig.entities.application.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.application.name}`,\n {\n name: RootConfig.entities.application.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.application.title,\n }\n ),\n },\n },\n ];\n}\n","import { Injectable } from '@angular/core';\nimport type { AXPContextDefinition, AXPContextDefinitionProvider } from '@acorex-platform/framework-client/core';\nimport { AXM_APPLICATION_CONTEXT_DEFINITIONS } from '@acorex-platform/module-application-management-client/contracts';\n\n//#region ---- Application context definitions ----\n\n@Injectable()\nexport class AXMApplicationManagementContextDefinitionProvider implements AXPContextDefinitionProvider {\n async items(): Promise<AXPContextDefinition[]> {\n return AXM_APPLICATION_CONTEXT_DEFINITIONS;\n }\n}\n\n//#endregion\n","import { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_STATUS_PROVIDERS, AXP_SEARCH_PROVIDER, AXPNavBarSlotComponent } from '@acorex-platform/framework-client/common';\nimport { AXP_CONTEXT_DEFINITION_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { inject, NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\nimport {\n AXMApplicationInfoSlotComponent,\n AXMCopyrightFooterSlotComponent,\n AXPApplicationInfoSettingProvider,\n AXMAppTermsCheckService,\n} from './features/application-info';\n// Entity Modules\n\n// Features Modules\nimport { AXMFeaturesModule } from './features/features-widget/features.module';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\n\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXMApplicationManagementContextDefinitionProvider } from './context-definition.provider';\n@NgModule({\n imports: [\n // Entity Modules\n // Features Modules\n AXMFeaturesModule,\n AXPComponentSlotModule.forRoot({\n 'root-footer-start': [\n {\n name: 'application-info',\n component: AXMApplicationInfoSlotComponent,\n priority: 1,\n },\n {\n name: 'copyright',\n component: AXMCopyrightFooterSlotComponent,\n priority: 2,\n },\n ],\n 'auth-footer-links': [\n {\n name: 'links',\n component: AXPNavBarSlotComponent,\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes: Routes = [\n {\n path: ':app/terms',\n loadComponent: () => {\n return config.viewers.root();\n },\n data: { rootLayout: true },\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/application-info/pages/list/list-terms.component').then((c) => c.AXMListTermsComponent),\n },\n ],\n },\n ];\n return routes;\n },\n },\n // Module-specific providers (not part of manifest system)\n // Provide edition service using interface token for platform/core to avoid circular dependency\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPApplicationInfoSettingProvider,\n multi: true,\n },\n AXMAppTermsCheckService,\n provideCommandSetups([\n {\n key: 'new-term',\n command: () => import('./features/application-info/commands/new-term.command').then((c) => c.AXMNewTermCommand),\n },\n {\n key: 'show-release-notes',\n command: () =>\n import('./features/application-info/commands/show-release-notes.command').then((c) => c.AXMShowReleaseNotesCommand),\n },\n {\n key: 'assign-features',\n command: () =>\n import('./features/features-widget/commands/assign-features.command').then((c) => c.AXMAssignFeaturesCommand),\n },\n ]),\n // Provider references (now using tokens)\n provideLazyProvider(\n AXP_STATUS_PROVIDERS,\n () => import('./features/application-status.provider').then(m => m.AXMApplicationStatusProvider)\n ),\n provideLazyProvider(\n AXP_FEATURE_DEFINITION_PROVIDER,\n () => import('./feature-definition.provider').then(m => m.AXPApplicationManagementFeatureDefinitionProvider)\n ),\n provideLazyProvider(\n AXP_PERMISSION_DEFINITION_PROVIDER,\n () => import('./permission-definition.provider').then(m => m.AXMPermissionDefinitionProvider)\n ),\n provideLazyProvider(\n AXP_MENU_PROVIDER,\n () => import('./menu.provider').then(m => m.AXMApplicationManagmentModuleMenuProvider)\n ),\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_CONTEXT_DEFINITION_PROVIDER,\n useClass: AXMApplicationManagementContextDefinitionProvider,\n multi: true,\n },\n ],\n})\nexport class AXMApplicationManagementModule {\n constructor(appTermsCheck: AXMAppTermsCheckService) { }\n}\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationManagementMenuKeys } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationsPlatformPermissionKeys } from '@acorex-platform/module-application-management-client/contracts';\n\n@Injectable()\nexport class AXMApplicationManagmentModuleMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n const maintainApps = AXPApplicationsPlatformPermissionKeys.MaintainApplications;\n\n context.find('Common:Menu:Platform').addItems([\n {\n name: AXPApplicationManagementMenuKeys.Applications,\n text: RootConfig.entities.application.title,\n path: this.entityService.withEntity(module.name, RootConfig.entities.application.name).createPath(),\n icon: RootConfig.entities.application.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [maintainApps],\n },\n },\n {\n name: AXPApplicationManagementMenuKeys.ReleaseNotes,\n priority: 2,\n text: `@${scope}:release-notes.menus.release-notes.title`,\n path: this.entityService.withEntity(module.name, RootConfig.entities.appVersion.name).createPath(),\n icon: RootConfig.entities.appVersion.icon,\n policy: {\n features: [module.name],\n permissions: [maintainApps],\n },\n },\n { name: `${AXPApplicationManagementMenuKeys.Root}:divider1`, text: '', type: 'break', priority: 3 },\n ]);\n\n //#region ---- Help Menu Extensions ----\n\n // Help menu is created by common module's menu provider\n context.find('Common:Menu:Help').addItems([\n {\n name: AXPApplicationManagementMenuKeys.HelpReleaseNotes,\n text: `@${scope}:help.menus.release-notes.title`,\n icon: 'fa-light fa-memo-pad',\n command: {\n name: 'show-release-notes',\n },\n priority: 900003,\n },\n {\n name: AXPApplicationManagementMenuKeys.HelpTerms,\n text: `@${scope}:module.menus.terms-page.title`,\n icon: 'fa-light fa-file-contract',\n path: `${appName}/terms`,\n priority: 900004,\n },\n ]);\n\n //#endregion\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i1","i2","i4","i1.AXMAppTermsCheckService"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-application-management-client.mjs","sources":["../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-term/notify-app-term.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-term/notify-app-term.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/new-term.command.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/new-term.command.definition.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/show-release-notes.command.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/commands/show-release-notes.command.definition.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-version/notify-app-version.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/notify-app-version/notify-app-version.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/list-versions/list-version.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/list-versions/list-version.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/slots/application-info-slot.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/components/slots/copyright-footer-slot.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/pages/list/list-terms.component.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/pages/list/list-terms.component.html","../../../../libs/modules/application-management/client/src/lib/features/application-info/settings.provider.ts","../../../../libs/modules/application-management/client/src/lib/features/application-info/check-terms.service.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/features-widget.config.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/widget-definition.provider.ts","../../../../libs/modules/application-management/client/src/lib/features/features-widget/features.module.ts","../../../../libs/modules/application-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/application-management/client/src/lib/context-definition.provider.ts","../../../../libs/modules/application-management/client/src/lib/application-management.module.ts","../../../../libs/modules/application-management/client/src/lib/menu.provider.ts","../../../../libs/modules/application-management/client/src/acorex-platform-module-application-management-client.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMAppTermEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\n@Component({\n selector: 'axm-notify-app-term',\n imports: [\n CommonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXSafePipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notify-app-term.component.html',\n})\nexport class AXMNotifyAppTermComponent extends AXBasePageComponent {\n data: AXMAppTermEntityModel[];\n safeData: SafeHtml | null;\n isConfirm: boolean = false;\n\n i18n = RootConfig.config.i18n;\n\n transformContent(content: string): string {\n return content.replace(/\\n/g, '<br>');\n }\n\n send(): void {\n this.close({ data: this.data });\n }\n}\n\n","@for (item of data; track $index) {\n <ax-content class=\"block px-4 py-4 font-bold\">{{ item.title }}</ax-content>\n <ax-content\n class=\"block px-4 pb-4 text-base/6\"\n [innerHTML]=\"transformContent(item.content) | safe: 'html'\"\n ></ax-content>\n}\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isConfirm\">\n <ax-label>{{ 'agreeTerm' | translate: { scope: i18n } | async }}</ax-label>\n </ax-check-box>\n <ax-button\n (click)=\"send()\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n [disabled]=\"!isConfirm\"\n color=\"primary\"\n ></ax-button>\n</ax-footer>\n\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { Injectable, inject } from '@angular/core';\nimport { AXMAppTermEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\nimport { AXMNotifyAppTermComponent } from '../components/notify-app-term/notify-app-term.component';\n\n//#region ---- Types ----\n\nexport type AXMNewTermCommandInput = AXMAppTermEntityModel[] | { terms?: AXMAppTermEntityModel[] };\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction resolveTerms(input?: AXMNewTermCommandInput | null): AXMAppTermEntityModel[] {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n return input.terms ?? [];\n}\n\n//#endregion\n\n//#region ---- New term command ----\n\n/**\n * Shows the terms confirmation popup, then marks each term as confirmed in user settings.\n * Replaces the former `new-term` workflow (popup step + settings step).\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMNewTermCommand implements AXPCommand<AXMNewTermCommandInput> {\n private readonly popupService = inject(AXPopupService);\n private readonly settingsService = inject(AXPSettingsService);\n\n async execute(input: AXMNewTermCommandInput = []): AXPCommandExecuteResultPromise {\n const dataList = resolveTerms(input);\n if (dataList.length === 0) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n await this.popupService.open(AXMNotifyAppTermComponent, {\n title: '@application-management:application-info.commands.new-term.dialog-title',\n data: { data: dataList },\n closeButton: false,\n });\n\n for (const term of dataList) {\n await this.settingsService.scope(AXPPlatformScope.User).set(`is-confirm-term-${term.id}`, true);\n }\n\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n","/**\n * Build-time only. Do not import from Angular modules.\n */\n\nimport { AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, defineCommand } from '@acorex-platform/framework-shared/runtime';\n\nexport const axmNewTermCommandDefinition = defineCommand({\n key: 'new-term',\n title: '@application-management:client-commands.new-term.title',\n description:\n 'AXMNewTermCommand opens AXMNotifyAppTermComponent for unconfirmed terms, then sets is-confirm-term-{id} in user settings.',\n executionMode: 'frontend',\n inputs: [\n {\n name: 'terms',\n title: '@application-management:client-commands.new-term.inputs.terms.title',\n description: 'AXMAppTermEntityModel[] (or pass the array as root input from startup).',\n interface: { name: 'text-editor' },\n },\n ],\n outcomes: {\n mode: 'static',\n values: ['success', 'failure'],\n },\n ai: {\n tags: ['application-management', 'terms', 'popup'],\n },\n categories: [AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM],\n});\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\n\n//#region ---- Show release notes command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMShowReleaseNotesCommand implements AXPCommand<Record<string, never>> {\n private readonly popupService = inject(AXPopupService);\n private readonly translateService = inject(AXTranslationService);\n\n async execute(): AXPCommandExecuteResultPromise {\n const comp = (await import('../components/list-versions/list-version.component')).AXMListVersionComponent;\n await this.popupService.open(comp, {\n title: await this.translateService.translateAsync(\n '@application-management:application-info.menus.release-notes.title',\n ),\n size: 'md',\n closeButton: true,\n closeOnBackdropClick: true,\n draggable: false,\n });\n return { success: true, kind: 'object', data: undefined };\n }\n}\n\n//#endregion\n","/**\n * Build-time only. Do not import from Angular modules.\n */\n\nimport { AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, defineCommand } from '@acorex-platform/framework-shared/runtime';\n\nexport const axmShowReleaseNotesCommandDefinition = defineCommand({\n key: 'show-release-notes',\n title: '@application-management:client-commands.show-release-notes.title',\n description: 'AXMShowReleaseNotesCommand opens AXMListVersionComponent in a popup (version timeline).',\n executionMode: 'frontend',\n inputs: [],\n outcomes: {\n mode: 'static',\n values: ['success', 'failure'],\n },\n ai: {\n tags: ['application-management', 'release-notes', 'popup'],\n },\n categories: [AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM],\n});\n","//#region ----- Imports -----\n\nimport { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { AXMAppVersionEntityModel } from '@acorex-platform/module-application-management-client/contracts';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-notify-app-version',\n imports: [CommonModule, AXLabelModule, AXCheckBoxModule, AXDecoratorModule, AXButtonModule, AXTranslationModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './notify-app-version.component.html',\n})\nexport class AXMNotifyAppVersionComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly translationService = inject(AXTranslationService);\n sanitize = inject(DomSanitizer);\n\n //#endregion\n\n //#region ----- State -----\n\n data: AXMAppVersionEntityModel;\n safeData: SafeHtml | null;\n isShowAgain: boolean = true;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n const html = resolveMultiLanguageString(this.data.changeLog, this.translationService.getActiveLang());\n this.safeData = this.sanitize.bypassSecurityTrustHtml(html);\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n send(): void {\n this.close({ data: this.data, isShowAgain: !this.isShowAgain });\n }\n\n //#endregion\n}\n\n//#endregion\n","<ax-content class=\"block px-4 py-4 text-base/6\" [innerHTML]=\"safeData\"></ax-content>\n<ax-footer class=\"flex items-center justify-between p-2\">\n <ax-check-box [(value)]=\"isShowAgain\">\n <ax-label>{{ '@application-management:application-info.notify-app-version.dont-show-again' | translate | async }}</ax-label>\n </ax-check-box>\n <ax-button color=\"primary\" (click)=\"send()\" [text]=\"'@general:actions.ok.title' | translate | async\"></ax-button>\n</ax-footer>\n\n","import { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTimeLineModule } from '@acorex/components/time-line';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule, AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, WritableSignal } from '@angular/core';\nimport { AXMAppVersionListComponentModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-list-version',\n imports: [\n CommonModule,\n AXTimeLineModule,\n AXDecoratorModule,\n AXFormatModule,\n AXDateTimeModule,\n AXButtonModule,\n AXTranslationModule,\n ],\n templateUrl: './list-version.component.html',\n styleUrl: './list-version.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMListVersionComponent extends AXBasePageComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly appVersionService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.appVersion.name)\n .data<any, any>();\n private readonly formatService = inject(AXFormatService);\n private readonly translateService = inject(AXTranslationService);\n private readonly sanitizer = inject(DomSanitizer);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n readonly versions: WritableSignal<AXMAppVersionListComponentModel[]> = signal([]);\n readonly loading = signal(true);\n readonly loadFailed = signal(false);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n protected override async ngOnInit(): Promise<void> {\n await this.loadVersions();\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadVersions(): Promise<void> {\n this.loading.set(true);\n this.loadFailed.set(false);\n try {\n const result = await this.appVersionService.query({\n take: 1000,\n skip: 0,\n sort: [{ field: 'publishDate', dir: 'desc' }],\n });\n\n const versionLabelTemplate = await this.translateService.translateAsync(\n '@application-management:application-info.release-notes.version-label',\n );\n const latestBadge = await this.translateService.translateAsync(\n '@application-management:application-info.release-notes.latest-badge',\n );\n\n const items = [...(result.items ?? [])].sort((left, right) => {\n const leftTime = Date.parse(String(left.publishDate ?? '')) || 0;\n const rightTime = Date.parse(String(right.publishDate ?? '')) || 0;\n if (rightTime !== leftTime) {\n return rightTime - leftTime;\n }\n return String(right.versionNumber ?? '').localeCompare(String(left.versionNumber ?? ''), undefined, {\n numeric: true,\n });\n });\n\n const mappedItems = items.map<AXMAppVersionListComponentModel>((item, index) => {\n const versionNumber = String(item.versionNumber ?? '');\n const publishDateLabel = this.formatService.format(item.publishDate, 'datetime', {\n format: 'date',\n });\n const title = versionLabelTemplate.replace('{{version}}', versionNumber);\n\n return {\n id: item.id,\n title: index === 0 ? `${title} · ${latestBadge}` : title,\n versionNumber,\n publishDateLabel,\n isLatest: index === 0,\n content:\n this.sanitizer.bypassSecurityTrustHtml(\n resolveMultiLanguageString(item.changeLog, this.translateService.getActiveLang()),\n ) ?? '',\n };\n });\n\n this.versions.set(mappedItems);\n } catch {\n this.loadFailed.set(true);\n this.versions.set([]);\n } finally {\n this.loading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-release-notes\">\n <!-- ----- Loading state while versions are fetched ----- -->\n @if (loading()) {\n <div class=\"axm-release-notes__state\">\n {{ '@application-management:application-info.release-notes.loading' | translate | async }}\n </div>\n }\n <!-- ----- Error state when the query fails ----- -->\n @else if (loadFailed()) {\n <div class=\"axm-release-notes__state axm-release-notes__state--error\">\n {{ '@application-management:application-info.release-notes.load-failed' | translate | async }}\n </div>\n }\n <!-- ----- Empty state when no AppVersion rows exist ----- -->\n @else if (versions().length === 0) {\n <div class=\"axm-release-notes__state\">\n {{ '@application-management:application-info.release-notes.empty' | translate | async }}\n </div>\n }\n <!-- ----- Version timeline: header = version, body = publish date + changelog ----- -->\n @else {\n <ax-time-line mode=\"icon\" class=\"axm-release-notes__timeline\">\n @for (version of versions(); track version.id) {\n <ax-time-line-item\n [text]=\"version.title\"\n [isActive]=\"version.isLatest\"\n [isCollapsed]=\"!version.isLatest\"\n >\n <ax-icon class=\"fa-solid fa-rocket\"></ax-icon>\n <div class=\"axm-release-notes__item\">\n <div class=\"axm-release-notes__meta\">\n <span class=\"axm-release-notes__meta-label\">\n {{ '@application-management:application-info.release-notes.published-label' | translate | async }}\n </span>\n <time class=\"axm-release-notes__meta-date\">{{ version.publishDateLabel }}</time>\n </div>\n <div class=\"axm-release-notes__changelog\" [innerHTML]=\"version.content\"></div>\n </div>\n </ax-time-line-item>\n }\n </ax-time-line>\n }\n</div>\n\n<ax-footer class=\"axm-release-notes__footer\">\n <ax-button\n [text]=\"'@general:actions.ok.title' | translate | async\"\n color=\"primary\"\n (onClick)=\"this.close()\"\n ></ax-button>\n</ax-footer>\n","//#region ----- Imports -----\n\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_APP_VERSION_PROVIDER, AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPPlatformScope, resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXMApplicationManagementApplicationEntityModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMApplicationManagementEditionEntityModel } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationInfoSettings } from '@acorex-platform/module-application-management-client/contracts';\nimport { merge } from 'rxjs';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n template: ` <small class=\"text-sm cursor-pointer\" (click)=\"openPopup()\">{{ displayText() }}</small> `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMApplicationInfoSlotComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly versionProvider = inject(AXP_APP_VERSION_PROVIDER);\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly translationService = inject(AXTranslationService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly editionService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.edition.name)\n .data<any, any>();\n private readonly applicationService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.application.name)\n .data<any, any>();\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected displayText = signal<string>('');\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n merge(this.sessionService.application$, this.translationService.langChanges$)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n void this.loadDisplayText();\n });\n\n void this.loadDisplayText();\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n openPopup(): void {\n void this.commandService.execute('show-release-notes', {});\n }\n\n //#endregion\n\n //#region ----- Private Helpers -----\n\n private async loadDisplayText(): Promise<void> {\n const application = this.sessionService.application;\n if (!application) {\n this.displayText.set('');\n return;\n }\n\n const versionInfo = await this.versionProvider.provider();\n const version = versionInfo.version;\n\n const locale = this.translationService.getActiveLang();\n const appTitle =\n resolveMultiLanguageString(application.title, locale).trim() || application.name || '';\n\n let editionName = '';\n const hasMultipleEditions = await this.checkMultipleEditions(application.id);\n if (hasMultipleEditions && application.edition?.title) {\n editionName = resolveMultiLanguageString(application.edition.title, locale).trim();\n }\n\n const pattern = await this.settingsService\n .scope(AXPPlatformScope.Platform)\n .get(AXPApplicationInfoSettings.DisplayPattern);\n\n const displayPattern = (pattern as string) || '{appTitle} v{version}';\n\n this.displayText.set(\n displayPattern\n .replace(/\\{appTitle\\}/g, appTitle)\n .replace(/\\{\\[editionName\\]\\}/g, editionName ? `[${editionName}]` : '')\n .replace(/\\{editionName\\}/g, editionName)\n .replace(/\\{version\\}/g, version)\n .trim(),\n );\n }\n\n private async checkMultipleEditions(applicationId: string): Promise<boolean> {\n try {\n const application = (await this.applicationService.byKey(\n applicationId,\n )) as AXMApplicationManagementApplicationEntityModel | null;\n if (!application || !application.editionIds || application.editionIds.length === 0) {\n return false;\n }\n\n const editionsResult = (await this.editionService.query({\n skip: 0,\n take: 2,\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'id',\n operator: { type: 'in' },\n value: application.editionIds,\n },\n ],\n },\n })) as { items: AXMApplicationManagementEditionEntityModel[] };\n\n return editionsResult.items.length > 1;\n } catch (error) {\n console.error('Error checking multiple editions:', error);\n return false;\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_PLATFORM_BRANDING_SETTING_KEYS,\n AXPPlatformBrandingService,\n AXPSettingsService,\n} from '@acorex-platform/framework-client/common';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter, merge } from 'rxjs';\n\n//#endregion\n\n//#region ----- Component -----\n\n/**\n * Footer copyright text. Hidden on small (mobile) viewports. Re-resolves when language,\n * tenant, or copyright settings change (slot `options` factories only run once at mount).\n */\n@Component({\n template: ` <small class=\"text-sm\" [innerHTML]=\"text()\"></small> `,\n host: {\n class: 'hidden sm:inline',\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMCopyrightFooterSlotComponent {\n //#region ----- Services & Dependencies -----\n\n private readonly brandingService = inject(AXPPlatformBrandingService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly destroyRef = inject(DestroyRef);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly text = signal('');\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n const copyrightKey = AXP_PLATFORM_BRANDING_SETTING_KEYS.copyrightText;\n\n merge(\n this.translationService.langChanges$,\n this.sessionService.tenant$,\n this.settingsService.onLoaded,\n this.settingsService.onChanged.pipe(filter((event) => event.keys.includes(copyrightKey))),\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n void this.reload();\n });\n\n void this.reload();\n }\n\n //#endregion\n\n //#region ----- Private Helpers -----\n\n private async reload(): Promise<void> {\n this.text.set(await this.brandingService.resolveCopyright());\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXOutlineContainerDirective } from '@acorex/cdk/outline';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXOutlineSideMenuDirective, AXSideMenuModule } from '@acorex/components/side-menu';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPThemeLayoutBlockComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXMAppTermViewModel } from '@acorex-platform/module-application-management-client/contracts';\n@Component({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXFormatModule,\n AXPThemeLayoutBlockComponent,\n AXTranslationModule,\n AXSideMenuModule,\n AXPPageLayoutComponent,\n AXSafePipe,\n AXOutlineContainerDirective,\n AXOutlineSideMenuDirective,\n ],\n templateUrl: './list-terms.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMListTermsComponent,\n },\n ],\n})\nexport class AXMListTermsComponent extends AXPPageLayoutBaseComponent {\n private readonly entityService = inject(AXPEntityService);\n private service = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name).data<any, any>();\n\n protected terms: AXMAppTermViewModel[] = [];\n protected loaded = signal(false);\n protected showScrollSide = signal(true);\n\n ngAfterViewInit() {\n this.checkScroll();\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkScroll();\n }\n\n checkScroll() {\n const contentElement = document.getElementById('contentDiv');\n if (contentElement != null) {\n this.showScrollSide.set(contentElement!.offsetHeight > window.innerHeight - 140);\n }\n }\n\n override async ngOnInit() {\n super.ngOnInit();\n const result = await this.service.query({\n skip: 0,\n take: 1000,\n });\n this.terms = result.items.map<AXMAppTermViewModel>((term) => {\n return {\n ...term,\n content: term.content.replace(/\\n/g, '<br>'),\n };\n });\n this.loaded.set(true);\n\n setTimeout(() => this.checkScroll(), 50);\n }\n\n protected override getPageTitle(): string | Promise<string> {\n return `t(\"app-term.page-title\", {scope:\"${RootConfig.config.i18n}\"})`;\n }\n\n protected override getPageDescription(): string | Promise<string> {\n return `t(\"app-term.page-description\", {scope:\"${RootConfig.config.i18n}\"})`;\n }\n}\n\n","<axp-page-layout *translate=\"let t\">\n @if (loaded()) {\n <axp-page-content id=\"contentDiv\" axOutlineContainer target=\"h2\" [scrollableElementId]=\"'axp-page-layout'\" [activationOffset]=\"120\" class=\"flex flex-row!\">\n <div class=\"flex flex-col\">\n @for (term of terms; track term.id) {\n <div class=\"flex flex-col\">\n <h2 class=\"px-4 font-semibold text-xl\">{{ term.title }}</h2>\n <p class=\"px-4 text-sm leading-5 opacity-65\">\n {{ term.effectiveDate | format: 'datetime' | async }}\n </p>\n <div class=\"pt-3 pb-6 px-4 text-base/6\" [innerHTML]=\"term.content | safe: 'html'\"></div>\n </div>\n }\n </div>\n @if (showScrollSide()) {\n <div class=\"hidden lg:block min-w-60\">\n <ax-side-menu axOutlineSideMenu look=\"with-line\" class=\"w-full sticky top-24\"></ax-side-menu>\n </div>\n }\n </axp-page-content>\n }\n</axp-page-layout>\n","//#region ---- Imports ----\n\nimport { AXPPlatformScope, AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport {\n AXP_EXPERIENCE_SETTINGS_GROUP,\n AXP_EXPERIENCE_SETTINGS_SECTIONS,\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\n\nimport { Injectable } from '@angular/core';\n\nimport { objectKeyValueTransforms } from '@acorex-platform/framework-client/core';\nimport { AXPApplicationInfoSettings } from '@acorex-platform/module-application-management-client/contracts';\n\n//#endregion\n\n//#region ---- Setting Provider ----\n\nconst I18N_APP = '@application-management:application-info.settings';\nconst I18N_GENERAL = '@general:settings';\n\n@Injectable()\nexport class AXPApplicationInfoSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Find the 'Experience' settings group\n const group = context.group(AXP_EXPERIENCE_SETTINGS_GROUP);\n if (!group) {\n return;\n }\n\n // Find the 'Startup' section\n const section = group.section(AXP_EXPERIENCE_SETTINGS_SECTIONS.Startup);\n if (!section) {\n return;\n }\n\n // Add the 'Application Info Display Pattern' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.DisplayPattern,\n title: `${I18N_APP}.display-pattern.title`,\n scope: AXPPlatformScope.Platform,\n overridableAt: [],\n isInherited: false,\n defaultValue: '{appTitle} v{version}',\n widget: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: `${I18N_APP}.display-pattern.placeholder`,\n },\n },\n description: `${I18N_APP}.display-pattern.description`,\n });\n\n // Add the 'Application Terms' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.ApplicationTerms,\n title: `${I18N_GENERAL}.experience.startup.application-terms.title`,\n scope: AXPPlatformScope.Platform,\n overridableAt: [],\n isInherited: false,\n defaultValue: false,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N_GENERAL}.experience.startup.application-terms.description`,\n });\n\n // Add the 'Release Notes' setting\n section.addSetting({\n key: AXPApplicationInfoSettings.ReleaseNotes,\n title: `${I18N_GENERAL}.experience.startup.release-notes.title`,\n scope: AXPPlatformScope.User,\n overridableAt: [],\n isInherited: true,\n defaultValue: false,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N_GENERAL}.experience.startup.release-notes.description`,\n });\n\n section.endSection();\n }\n}\n\n//#endregion\n","import { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPPlatformScope } from '@acorex-platform/framework-shared/core';\nimport { AXPAppStartUpService, AXP_APP_STARTUP_PRIORITY } from '@acorex-platform/framework-client/core';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AXMAppTermEntityModel,\n AXPApplicationInfoSettings,\n} from '@acorex-platform/module-application-management-client/contracts';\nimport { combineLatest, distinctUntilChanged, EMPTY, from, switchMap } from 'rxjs';\n\n//#region ---- Terms check service ----\n\n@Injectable()\nexport class AXMAppTermsCheckService {\n //#region ----- Services & Dependencies -----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly commandService = inject(AXPCommandService);\n private readonly appInitService = inject(AXPAppStartUpService);\n private readonly sessionService = inject(AXPSessionService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly appTermService = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.appTerm.name)\n .data<any, any>();\n\n //#endregion\n\n //#region ----- State -----\n\n private termsCheckGeneration = 0;\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n this.appInitService.registerTask({\n name: 'Terms',\n statusText: '@application-management:app-startup.checking-terms',\n priority: AXP_APP_STARTUP_PRIORITY.terms,\n run: async () => {\n // Terms are evaluated reactively once the session is authorized with an application.\n },\n });\n\n combineLatest([this.sessionService.isAuthorized$, this.sessionService.application$])\n .pipe(\n distinctUntilChanged(\n ([authorized, app], [previousAuthorized, previousApp]) =>\n authorized === previousAuthorized && app?.id === previousApp?.id,\n ),\n switchMap(([authorized, app]) => {\n // Cookie sessions have no JS-readable access token — use credentials gate.\n if (!authorized || !app || !this.sessionService.hasSessionCredentials()) {\n this.termsCheckGeneration++;\n return EMPTY;\n }\n const generation = this.termsCheckGeneration;\n return from(this.evaluateUnconfirmedTerms(generation));\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n //#endregion\n\n //#region ----- Terms evaluation -----\n\n private async evaluateUnconfirmedTerms(generation: number): Promise<void> {\n if (!this.canCheckTerms() || generation !== this.termsCheckGeneration) {\n return;\n }\n\n const filterTerms: AXMAppTermEntityModel[] = [];\n const terms = await this.appTermService.query();\n\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n\n for (const term of terms.items) {\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n\n const isConfirm = await this.settingsService.scope(AXPPlatformScope.User).get(`is-confirm-term-${term.id}`);\n const isEnableToShow = await this.settingsService\n .scope(AXPPlatformScope.Platform)\n .get(AXPApplicationInfoSettings.ApplicationTerms);\n\n if (!isConfirm && isEnableToShow) {\n filterTerms.push(term);\n }\n }\n\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms() || filterTerms.length === 0) {\n return;\n }\n\n setTimeout(() => {\n if (generation !== this.termsCheckGeneration || !this.canCheckTerms()) {\n return;\n }\n void this.commandService.execute('new-term', filterTerms);\n }, 500);\n }\n\n private canCheckTerms(): boolean {\n return this.sessionService.isReadyForAppScopedApi;\n }\n\n //#endregion\n}\n\n//#endregion\n","\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex-platform/framework-client/layout/widgets';\n\nexport const AXPModuleFeatureEditorWidget: AXPWidgetConfig = {\n name: 'module-feature-editor',\n title: 'Module & Features Editor',\n description: 'Widget for managing module selection and their features with full editor interface',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-star',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./features-widget-view.component').then((c) => c.AXPFeaturesWidgetViewComponent),\n },\n edit: {\n component: () =>\n import('./features-widget-edit.component').then((c) => c.AXPModuleFeatureEditorWidgetEditComponent),\n },\n column: {\n component: () =>\n import('./features-widget-column.component').then((c) => c.AXPFeaturesWidgetColumnComponent),\n },\n print: {\n component: () =>\n import('./features-widget-print.component').then((c) => c.AXPFeaturesWidgetPrintComponent),\n },\n designer: {\n component: () =>\n import('./features-widget-designer.component').then((c) => c.AXPFeaturesWidgetDesignerComponent),\n },\n },\n};\n\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPModuleFeatureEditorWidget } from './features-widget.config';\n\n//#endregion\n\n//#region ---- Features Widgets Provider ----\n\nconst WIDGETS = [AXPModuleFeatureEditorWidget];\n\n@Injectable()\nexport class AXPFeaturesWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return WIDGETS;\n }\n}\n\n//#endregion\n","import { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { NgModule } from '@angular/core';\nimport { AXPFeaturesWidgetsProvider } from './widget-definition.provider';\n\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n ],\n providers: [\n { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPFeaturesWidgetsProvider, multi: true },\n ],\n})\nexport class AXMFeaturesModule {}\n\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\n\n@Injectable()\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-application',\n group: 'command',\n title: RootConfig.entities.application.title,\n icon: RootConfig.entities.application.icon,\n description: RootConfig.entities.application.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.application.name}`,\n {\n name: RootConfig.entities.application.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.application.title,\n }\n ),\n },\n },\n ];\n}\n","import { Injectable } from '@angular/core';\nimport type { AXPContextDefinition, AXPContextDefinitionProvider } from '@acorex-platform/framework-client/core';\nimport { AXM_APPLICATION_CONTEXT_DEFINITIONS } from '@acorex-platform/module-application-management-client/contracts';\n\n//#region ---- Application context definitions ----\n\n@Injectable()\nexport class AXMApplicationManagementContextDefinitionProvider implements AXPContextDefinitionProvider {\n async items(): Promise<AXPContextDefinition[]> {\n return AXM_APPLICATION_CONTEXT_DEFINITIONS;\n }\n}\n\n//#endregion\n","import { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_STATUS_PROVIDERS, AXP_SEARCH_PROVIDER, AXPNavBarSlotComponent } from '@acorex-platform/framework-client/common';\nimport { AXP_CONTEXT_DEFINITION_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, provideLazyProvider } from '@acorex-platform/framework-client/core';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { inject, NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\nimport {\n AXMApplicationInfoSlotComponent,\n AXMCopyrightFooterSlotComponent,\n AXPApplicationInfoSettingProvider,\n AXMAppTermsCheckService,\n} from './features/application-info';\n// Entity Modules\n\n// Features Modules\nimport { AXMFeaturesModule } from './features/features-widget/features.module';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\n\nimport { AXMSearchCommandProvider } from './search-command.provider';\nimport { AXMApplicationManagementContextDefinitionProvider } from './context-definition.provider';\n@NgModule({\n imports: [\n // Entity Modules\n // Features Modules\n AXMFeaturesModule,\n AXPComponentSlotModule.forRoot({\n 'root-footer-start': [\n {\n name: 'application-info',\n component: AXMApplicationInfoSlotComponent,\n priority: 1,\n },\n {\n name: 'copyright',\n component: AXMCopyrightFooterSlotComponent,\n priority: 2,\n },\n ],\n 'auth-footer-links': [\n {\n name: 'links',\n component: AXPNavBarSlotComponent,\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes: Routes = [\n {\n path: ':app/terms',\n loadComponent: () => {\n return config.viewers.root();\n },\n data: { rootLayout: true },\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/application-info/pages/list/list-terms.component').then((c) => c.AXMListTermsComponent),\n },\n ],\n },\n ];\n return routes;\n },\n },\n // Module-specific providers (not part of manifest system)\n // Provide edition service using interface token for platform/core to avoid circular dependency\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPApplicationInfoSettingProvider,\n multi: true,\n },\n AXMAppTermsCheckService,\n provideCommandSetups([\n {\n key: 'new-term',\n command: () => import('./features/application-info/commands/new-term.command').then((c) => c.AXMNewTermCommand),\n },\n {\n key: 'show-release-notes',\n command: () =>\n import('./features/application-info/commands/show-release-notes.command').then((c) => c.AXMShowReleaseNotesCommand),\n },\n {\n key: 'assign-features',\n command: () =>\n import('./features/features-widget/commands/assign-features.command').then((c) => c.AXMAssignFeaturesCommand),\n },\n ]),\n // Provider references (now using tokens)\n provideLazyProvider(\n AXP_STATUS_PROVIDERS,\n () => import('./features/application-status.provider').then(m => m.AXMApplicationStatusProvider)\n ),\n provideLazyProvider(\n AXP_FEATURE_DEFINITION_PROVIDER,\n () => import('./feature-definition.provider').then(m => m.AXPApplicationManagementFeatureDefinitionProvider)\n ),\n provideLazyProvider(\n AXP_PERMISSION_DEFINITION_PROVIDER,\n () => import('./permission-definition.provider').then(m => m.AXMPermissionDefinitionProvider)\n ),\n provideLazyProvider(\n AXP_MENU_PROVIDER,\n () => import('./menu.provider').then(m => m.AXMApplicationManagmentModuleMenuProvider)\n ),\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_CONTEXT_DEFINITION_PROVIDER,\n useClass: AXMApplicationManagementContextDefinitionProvider,\n multi: true,\n },\n ],\n})\nexport class AXMApplicationManagementModule {\n constructor(appTermsCheck: AXMAppTermsCheckService) { }\n}\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationManagementMenuKeys } from '@acorex-platform/module-application-management-client/contracts';\nimport { AXPApplicationsPlatformPermissionKeys } from '@acorex-platform/module-application-management-client/contracts';\n\n@Injectable()\nexport class AXMApplicationManagmentModuleMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n const maintainApps = AXPApplicationsPlatformPermissionKeys.MaintainApplications;\n\n context.find('Common:Menu:Platform').addItems([\n {\n name: AXPApplicationManagementMenuKeys.Applications,\n text: RootConfig.entities.application.title,\n path: this.entityService.withEntity(module.name, RootConfig.entities.application.name).createPath(),\n icon: RootConfig.entities.application.icon,\n priority: 1,\n policy: {\n features: [module.name],\n permissions: [maintainApps],\n },\n },\n {\n name: AXPApplicationManagementMenuKeys.ReleaseNotes,\n priority: 2,\n text: `@${scope}:release-notes.menus.release-notes.title`,\n path: this.entityService.withEntity(module.name, RootConfig.entities.appVersion.name).createPath(),\n icon: RootConfig.entities.appVersion.icon,\n policy: {\n features: [module.name],\n permissions: [maintainApps],\n },\n },\n { name: `${AXPApplicationManagementMenuKeys.Root}:divider1`, text: '', type: 'break', priority: 3 },\n ]);\n\n //#region ---- Help Menu Extensions ----\n\n // Help menu is created by common module's menu provider\n context.find('Common:Menu:Help').addItems([\n {\n name: AXPApplicationManagementMenuKeys.HelpReleaseNotes,\n text: `@${scope}:help.menus.release-notes.title`,\n icon: 'fa-light fa-memo-pad',\n command: {\n name: 'show-release-notes',\n },\n priority: 900003,\n },\n {\n name: AXPApplicationManagementMenuKeys.HelpTerms,\n text: `@${scope}:module.menus.terms-page.title`,\n icon: 'fa-light fa-file-contract',\n path: `${appName}/terms`,\n priority: 900004,\n },\n ]);\n\n //#endregion\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5","i1","i2","i4","i1.AXMAppTermsCheckService"],"mappings":"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"}