@acorex/modules 21.0.0-next.73 → 21.0.0-next.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-modules-ai-management.mjs +48 -15
- package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-FKvCLWhj.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs} +24 -24
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-FKvCLWhj.mjs.map → acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B59NvUDv.mjs → acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-B59NvUDv.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-DY3kcvHv.mjs → acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-DY3kcvHv.mjs.map → acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-NZgnUnIg.mjs → acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-NZgnUnIg.mjs.map → acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-DTpp9nGB.mjs → acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-DTpp9nGB.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DLN9rq0h.mjs → acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DLN9rq0h.mjs.map → acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-D5RxnsfD.mjs → acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-D5RxnsfD.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-j6Pzk1UT.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-j6Pzk1UT.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-C8jxKIKe.mjs → acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-C8jxKIKe.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DYtzVNK8.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs} +5 -375
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-Ca-oiaZ5.mjs → acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-Ca-oiaZ5.mjs.map → acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-CXSelp7y.mjs → acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-CXSelp7y.mjs.map → acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQDyUTwa.mjs → acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQDyUTwa.mjs.map → acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-CVyrVwfU.mjs → acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs} +5 -5
- package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-CVyrVwfU.mjs.map → acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-permission-definition.provider-BnnCEroN.mjs → acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs} +2 -2
- package/fesm2022/{acorex-modules-content-management-permission-definition.provider-BnnCEroN.mjs.map → acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-B3Scw9SG.mjs → acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs} +3 -3
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-B3Scw9SG.mjs.map → acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-D7EBdcU9.mjs → acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs} +2 -2
- package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-D7EBdcU9.mjs.map → acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +1 -1
- package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-p9c5_MMk.mjs → acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs} +10 -9
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs.map +1 -0
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQiGLMAZ.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-DQiGLMAZ.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-comments-page.component-rY_6dZ3X.mjs → acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-comments-page.component-rY_6dZ3X.mjs.map → acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-Bi1MZ0AE.mjs → acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-Bi1MZ0AE.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-1Mro9mxs.mjs → acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs} +2 -2
- package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-1Mro9mxs.mjs.map → acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs.map} +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLOyCwM3.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs} +4 -4
- package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-DLOyCwM3.mjs.map → acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-dashboard-management-index-DlrkqIge.mjs → acorex-modules-dashboard-management-index-DAQNEq43.mjs} +2 -2
- package/fesm2022/{acorex-modules-dashboard-management-index-DlrkqIge.mjs.map → acorex-modules-dashboard-management-index-DAQNEq43.mjs.map} +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +2 -1
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-B8de7ifz.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-SYgMvrE2.mjs → acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs} +95 -4442
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CKiFNjU0.mjs → acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CKiFNjU0.mjs.map → acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-Dfx7mO_y.mjs → acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs} +2 -2
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-Dfx7mO_y.mjs.map → acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-eXpBudGO.mjs → acorex-modules-task-management-task-board.page-CfgeDnBx.mjs} +3 -3
- package/fesm2022/{acorex-modules-task-management-task-board.page-eXpBudGO.mjs.map → acorex-modules-task-management-task-board.page-CfgeDnBx.mjs.map} +1 -1
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-LJ8Bb-CT.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BW6kK9Av.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-index--D61tV-f.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-index-DXIQw3Ao.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-huamhFhc.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-activity-instance-rows.utils-L8W4ogSI.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-FLqOdI2t.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-workflow-run-history-visual-tab.component-3gnqTYdJ.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +2 -2
- package/types/acorex-modules-content-management.d.ts +2 -1
- package/types/acorex-modules-data-management.d.ts +2 -1
- package/types/acorex-modules-notification-management.d.ts +2 -1
- package/types/acorex-modules-platform-management.d.ts +3 -137
- package/types/acorex-modules-workflow-management.d.ts +2 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-DYtzVNK8.mjs.map +0 -1
- package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-p9c5_MMk.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-SYgMvrE2.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-assessment-management-view-session-answers.command-BQDyUTwa.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/commands/view-session-answers.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { defaultTo, first, get, isEmpty, isString, toString } from 'lodash-es';\nimport { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport type { AXMAssessmentManagementAssessmentCaseEntityModel } from '../../../entities/assessment-case/assessment-case.types';\nimport type { AXMAssessmentManagementAssessmentSessionEntityModel } from '../../../entities/assessment-session/assessment-session.types';\nimport { RootConfig } from '../../../const';\nimport { openAssessmentSessionAnswersView, type OpenAssessmentSessionAnswersInitialStep } from '../utils/assessment-session-answers-view.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for ViewSessionAnswers command.\n */\nexport interface ViewSessionAnswersCommandInput {\n /**\n * Assessment Case ID. Required when `sessionId` is omitted; used to resolve the latest session.\n */\n caseId?: string;\n\n /**\n * Assessment Session ID to view answers for. When omitted, the latest session for `caseId` is used.\n */\n sessionId?: string;\n\n /**\n * When `results`, opens the readonly viewer on the outcome results step (requires stored session outcomes).\n */\n initialStep?: OpenAssessmentSessionAnswersInitialStep;\n}\n\n/** Entity list passes evaluated action options on `__context__.options` / row `data`. */\ntype ViewSessionAnswersCommandInvocation = ViewSessionAnswersCommandInput & {\n options?: Partial<ViewSessionAnswersCommandInput>;\n __context__?: {\n options?: Partial<ViewSessionAnswersCommandInput>;\n data?: Record<string, unknown>;\n };\n};\n\n//#endregion\n\n//#region ---- View Session Answers Command ----\n\n/**\n * Command that opens a readonly view of assessment session answers in a dialog.\n */\n@Injectable()\nexport class ViewSessionAnswersCommand implements AXPCommand<ViewSessionAnswersCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n /**\n * Returns a non-empty string or undefined.\n */\n private asNonEmptyString(value: unknown): string | undefined {\n if (isString(value) && !isEmpty(value)) {\n return value;\n }\n if (value != null && !isString(value)) {\n const normalized = toString(value).trim();\n return isEmpty(normalized) ? undefined : normalized;\n }\n return undefined;\n }\n\n /**\n * Resolves session id from root input, action options, or related-list row data.\n */\n private resolveSessionId(input: ViewSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'sessionId'),\n get(input, 'options.sessionId'),\n get(input, '__context__.options.sessionId'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n if (row && this.asNonEmptyString(get(row, 'caseId'))) {\n return this.asNonEmptyString(get(row, 'id')) ?? null;\n }\n\n return null;\n }\n\n /**\n * Resolves case id from root input, action options, or list row data.\n */\n private resolveCaseId(input: ViewSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'caseId'),\n get(input, 'options.caseId'),\n get(input, '__context__.options.caseId'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n if (row && !this.asNonEmptyString(get(row, 'caseId'))) {\n return this.asNonEmptyString(get(row, 'id')) ?? null;\n }\n\n return null;\n }\n\n /**\n * Resolves initial viewer step from root input or action options.\n */\n private resolveInitialStep(input: ViewSessionAnswersCommandInvocation): OpenAssessmentSessionAnswersInitialStep {\n const candidates = [\n get(input, 'initialStep'),\n get(input, 'options.initialStep'),\n get(input, '__context__.options.initialStep'),\n ];\n\n for (const candidate of candidates) {\n const normalized = this.asNonEmptyString(candidate);\n if (normalized === 'results') {\n return 'results';\n }\n }\n\n return 'answers';\n }\n\n /**\n * Loads session from related-list row data, list query, or byKey (in that order).\n */\n private async loadSession(\n sessionId: string,\n input: ViewSessionAnswersCommandInvocation,\n ): Promise<AXMAssessmentManagementAssessmentSessionEntityModel | null> {\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n const rowCaseId = this.asNonEmptyString(get(row, 'caseId'));\n\n if (row && rowCaseId) {\n return {\n ...(row as unknown as AXMAssessmentManagementAssessmentSessionEntityModel),\n id: sessionId,\n answers: defaultTo(get(row, 'answers') as Record<string, unknown> | undefined, {}),\n };\n }\n\n const sessionAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>();\n\n const listMatch = await sessionAccessor.query({\n skip: 0,\n take: 1,\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: sessionId,\n },\n });\n\n const fromQuery = first(listMatch.items);\n if (fromQuery) {\n return fromQuery;\n }\n\n return defaultTo(await sessionAccessor.byKey(sessionId), null);\n }\n\n /**\n * Loads case by id using query first, then byKey.\n */\n private async loadCase(caseId: string): Promise<AXMAssessmentManagementAssessmentCaseEntityModel | null> {\n const caseAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentCase.name)\n .data<string, AXMAssessmentManagementAssessmentCaseEntityModel>();\n\n const listMatch = await caseAccessor.query({\n skip: 0,\n take: 1,\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: caseId,\n },\n });\n\n const fromQuery = first(listMatch.items);\n if (fromQuery) {\n return fromQuery;\n }\n\n return defaultTo(await caseAccessor.byKey(caseId), null);\n }\n\n /**\n * Finds the latest session record for a case (by lastSavedAt, then createdAt).\n */\n private async findLatestSession(\n caseId: string,\n ): Promise<AXMAssessmentManagementAssessmentSessionEntityModel | null> {\n const sessionAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>();\n\n const listMatch = await sessionAccessor.query({\n skip: 0,\n take: 1,\n sort: [\n { field: 'lastSavedAt', dir: 'desc' },\n { field: 'createdAt', dir: 'desc' },\n ],\n filter: {\n field: 'caseId',\n operator: { type: 'equal' },\n value: caseId,\n },\n });\n\n return first(listMatch.items) ?? null;\n }\n\n async execute(input: ViewSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const sessionId = this.resolveSessionId(input);\n const caseId = this.resolveCaseId(input);\n\n if (!sessionId && !caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment case ID or session ID is required',\n },\n };\n }\n\n let session: AXMAssessmentManagementAssessmentSessionEntityModel | null = null;\n let assessmentCase: AXMAssessmentManagementAssessmentCaseEntityModel | null = null;\n\n if (sessionId) {\n session = await this.loadSession(sessionId, input);\n if (!session) {\n return {\n success: false,\n message: {\n text: `Assessment session with ID ${sessionId} not found`,\n },\n };\n }\n\n const resolvedCaseId = this.asNonEmptyString(get(session, 'caseId')) ?? caseId;\n if (!resolvedCaseId) {\n return {\n success: false,\n message: {\n text: 'Assessment session is missing caseId',\n },\n };\n }\n\n assessmentCase = await this.loadCase(resolvedCaseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: {\n text: `Assessment case with ID ${resolvedCaseId} not found`,\n },\n };\n }\n } else if (caseId) {\n assessmentCase = await this.loadCase(caseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: {\n text: `Assessment case with ID ${caseId} not found`,\n },\n };\n }\n\n session = await this.findLatestSession(caseId);\n if (!session) {\n const messageKey = '@assessment-management:cases.actions.view-last-session-answers.no-session';\n const messageText =\n (await this.translationService.translateAsync(messageKey)) ||\n 'No assessment session found for this case';\n return {\n success: false,\n message: {\n text: messageText,\n },\n };\n }\n }\n\n if (!session || !assessmentCase) {\n return {\n success: false,\n message: {\n text: 'Unable to resolve assessment session answers',\n },\n };\n }\n\n const initialStep = this.resolveInitialStep(input);\n if (initialStep === 'results' && isEmpty(get(session, 'outcomes'))) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync(\n '@assessment-management:sessions.actions.view-outcomes.empty',\n ),\n },\n };\n }\n\n await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\n { initialStep },\n );\n\n return {\n success: true,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n return {\n success: false,\n message: {\n text: `Error viewing session answers: ${message}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;AA+CA;AAEA;AAEA;;AAEG;MAEU,yBAAyB,CAAA;AADtC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,0BAA0B,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAClE,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AA+SnE,IAAA;;;AAzSC;;AAEG;AACK,IAAA,gBAAgB,CAAC,KAAc,EAAA;QACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,KAAK;QACd;QACA,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AACzC,YAAA,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU;QACrD;AACA,QAAA,OAAO,SAAS;IAClB;AAEA;;AAEG;AACK,IAAA,gBAAgB,CAAC,KAA0C,EAAA;AACjE,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;AACvB,YAAA,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC;AAC/B,YAAA,GAAG,CAAC,KAAK,EAAE,+BAA+B,CAAC;SAC5C;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACjD,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,QAAQ;YACjB;QACF;QAEA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAwC;AACjF,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI;QACtD;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACK,IAAA,aAAa,CAAC,KAA0C,EAAA;AAC9D,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;AACpB,YAAA,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAC5B,YAAA,GAAG,CAAC,KAAK,EAAE,4BAA4B,CAAC;SACzC;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACjD,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,QAAQ;YACjB;QACF;QAEA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAwC;AACjF,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI;QACtD;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACK,IAAA,kBAAkB,CAAC,KAA0C,EAAA;AACnE,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC;AACzB,YAAA,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAAC;AACjC,YAAA,GAAG,CAAC,KAAK,EAAE,iCAAiC,CAAC;SAC9C;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACnD,YAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAC5B,gBAAA,OAAO,SAAS;YAClB;QACF;AAEA,QAAA,OAAO,SAAS;IAClB;AAEA;;AAEG;AACK,IAAA,MAAM,WAAW,CACvB,SAAiB,EACjB,KAA0C,EAAA;QAE1C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAwC;AACjF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE3D,QAAA,IAAI,GAAG,IAAI,SAAS,EAAE;YACpB,OAAO;AACL,gBAAA,GAAI,GAAsE;AAC1E,gBAAA,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAwC,EAAE,EAAE,CAAC;aACnF;QACH;AAEA,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;AAC1B,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI;AAC7E,aAAA,IAAI,EAA+D;AAEtE,QAAA,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,gBAAA,KAAK,EAAE,SAAS;AACjB,aAAA;AACF,SAAA,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QACxC,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,OAAO,SAAS,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAChE;AAEA;;AAEG;IACK,MAAM,QAAQ,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI;AAC1E,aAAA,IAAI,EAA4D;AAEnE,QAAA,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,gBAAA,KAAK,EAAE,MAAM;AACd,aAAA;AACF,SAAA,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;QACxC,IAAI,SAAS,EAAE;AACb,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,OAAO,SAAS,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAC1D;AAEA;;AAEG;IACK,MAAM,iBAAiB,CAC7B,MAAc,EAAA;AAEd,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;AAC1B,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI;AAC7E,aAAA,IAAI,EAA+D;AAEtE,QAAA,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC;AAC5C,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE;AACJ,gBAAA,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE;AACrC,gBAAA,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;AACpC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,gBAAA,KAAK,EAAE,MAAM;AACd,aAAA;AACF,SAAA,CAAC;QAEF,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI;IACvC;IAEA,MAAM,OAAO,CAAC,KAA0C,EAAA;AACtD,QAAA,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAExC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;gBACzB,OAAO;AACL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,8CAA8C;AACrD,qBAAA;iBACF;YACH;YAEA,IAAI,OAAO,GAA+D,IAAI;YAC9E,IAAI,cAAc,GAA4D,IAAI;YAElF,IAAI,SAAS,EAAE;gBACb,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC;gBAClD,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO;AACL,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE;4BACP,IAAI,EAAE,CAAA,2BAAA,EAA8B,SAAS,CAAA,UAAA,CAAY;AAC1D,yBAAA;qBACF;gBACH;AAEA,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,MAAM;gBAC9E,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO;AACL,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,sCAAsC;AAC7C,yBAAA;qBACF;gBACH;gBAEA,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACpD,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO;AACL,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE;4BACP,IAAI,EAAE,CAAA,wBAAA,EAA2B,cAAc,CAAA,UAAA,CAAY;AAC5D,yBAAA;qBACF;gBACH;YACF;iBAAO,IAAI,MAAM,EAAE;gBACjB,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO;AACL,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE;4BACP,IAAI,EAAE,CAAA,wBAAA,EAA2B,MAAM,CAAA,UAAA,CAAY;AACpD,yBAAA;qBACF;gBACH;gBAEA,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,UAAU,GAAG,2EAA2E;AAC9F,oBAAA,MAAM,WAAW,GACf,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,UAAU,CAAC;AACzD,wBAAA,2CAA2C;oBAC7C,OAAO;AACL,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,WAAW;AAClB,yBAAA;qBACF;gBACH;YACF;AAEA,YAAA,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE;gBAC/B,OAAO;AACL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,8CAA8C;AACrD,qBAAA;iBACF;YACH;YAEA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAClD,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE;gBAClE,OAAO;AACL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAChD,6DAA6D,CAC9D;AACF,qBAAA;iBACF;YACH;AAEA,YAAA,MAAM,gCAAgC,CACpC;gBACE,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;gBAC3D,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,EACD,OAAO,EACP,cAAc,EACd,EAAE,WAAW,EAAE,CAChB;YAED,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;aACd;QACH;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe;YACxE,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,EAAE,CAAA,+BAAA,EAAkC,OAAO,CAAA,CAAE;AAClD,iBAAA;aACF;QACH;IACF;8GAjTW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/commands/view-session-answers.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { defaultTo, first, get, isEmpty, isString, toString } from 'lodash-es';\nimport { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport type { AXMAssessmentManagementAssessmentCaseEntityModel } from '../../../entities/assessment-case/assessment-case.types';\nimport type { AXMAssessmentManagementAssessmentSessionEntityModel } from '../../../entities/assessment-session/assessment-session.types';\nimport { RootConfig } from '../../../const';\nimport { openAssessmentSessionAnswersView, type OpenAssessmentSessionAnswersInitialStep } from '../utils/assessment-session-answers-view.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for ViewSessionAnswers command.\n */\nexport interface ViewSessionAnswersCommandInput {\n /**\n * Assessment Case ID. Required when `sessionId` is omitted; used to resolve the latest session.\n */\n caseId?: string;\n\n /**\n * Assessment Session ID to view answers for. When omitted, the latest session for `caseId` is used.\n */\n sessionId?: string;\n\n /**\n * When `results`, opens the readonly viewer on the outcome results step (requires stored session outcomes).\n */\n initialStep?: OpenAssessmentSessionAnswersInitialStep;\n}\n\n/** Entity list passes evaluated action options on `__context__.options` / row `data`. */\ntype ViewSessionAnswersCommandInvocation = ViewSessionAnswersCommandInput & {\n options?: Partial<ViewSessionAnswersCommandInput>;\n __context__?: {\n options?: Partial<ViewSessionAnswersCommandInput>;\n data?: Record<string, unknown>;\n };\n};\n\n//#endregion\n\n//#region ---- View Session Answers Command ----\n\n/**\n * Command that opens a readonly view of assessment session answers in a dialog.\n */\n@Injectable()\nexport class ViewSessionAnswersCommand implements AXPCommand<ViewSessionAnswersCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n /**\n * Returns a non-empty string or undefined.\n */\n private asNonEmptyString(value: unknown): string | undefined {\n if (isString(value) && !isEmpty(value)) {\n return value;\n }\n if (value != null && !isString(value)) {\n const normalized = toString(value).trim();\n return isEmpty(normalized) ? undefined : normalized;\n }\n return undefined;\n }\n\n /**\n * Resolves session id from root input, action options, or related-list row data.\n */\n private resolveSessionId(input: ViewSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'sessionId'),\n get(input, 'options.sessionId'),\n get(input, '__context__.options.sessionId'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n if (row && this.asNonEmptyString(get(row, 'caseId'))) {\n return this.asNonEmptyString(get(row, 'id')) ?? null;\n }\n\n return null;\n }\n\n /**\n * Resolves case id from root input, action options, or list row data.\n */\n private resolveCaseId(input: ViewSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'caseId'),\n get(input, 'options.caseId'),\n get(input, '__context__.options.caseId'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n if (row && !this.asNonEmptyString(get(row, 'caseId'))) {\n return this.asNonEmptyString(get(row, 'id')) ?? null;\n }\n\n return null;\n }\n\n /**\n * Resolves initial viewer step from root input or action options.\n */\n private resolveInitialStep(input: ViewSessionAnswersCommandInvocation): OpenAssessmentSessionAnswersInitialStep {\n const candidates = [\n get(input, 'initialStep'),\n get(input, 'options.initialStep'),\n get(input, '__context__.options.initialStep'),\n ];\n\n for (const candidate of candidates) {\n const normalized = this.asNonEmptyString(candidate);\n if (normalized === 'results') {\n return 'results';\n }\n }\n\n return 'answers';\n }\n\n /**\n * Loads session from related-list row data, list query, or byKey (in that order).\n */\n private async loadSession(\n sessionId: string,\n input: ViewSessionAnswersCommandInvocation,\n ): Promise<AXMAssessmentManagementAssessmentSessionEntityModel | null> {\n const row = get(input, '__context__.data') as Record<string, unknown> | undefined;\n const rowCaseId = this.asNonEmptyString(get(row, 'caseId'));\n\n if (row && rowCaseId) {\n return {\n ...(row as unknown as AXMAssessmentManagementAssessmentSessionEntityModel),\n id: sessionId,\n answers: defaultTo(get(row, 'answers') as Record<string, unknown> | undefined, {}),\n };\n }\n\n const sessionAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>();\n\n const listMatch = await sessionAccessor.query({\n skip: 0,\n take: 1,\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: sessionId,\n },\n });\n\n const fromQuery = first(listMatch.items);\n if (fromQuery) {\n return fromQuery;\n }\n\n return defaultTo(await sessionAccessor.byKey(sessionId), null);\n }\n\n /**\n * Loads case by id using query first, then byKey.\n */\n private async loadCase(caseId: string): Promise<AXMAssessmentManagementAssessmentCaseEntityModel | null> {\n const caseAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentCase.name)\n .data<string, AXMAssessmentManagementAssessmentCaseEntityModel>();\n\n const listMatch = await caseAccessor.query({\n skip: 0,\n take: 1,\n filter: {\n field: 'id',\n operator: { type: 'equal' },\n value: caseId,\n },\n });\n\n const fromQuery = first(listMatch.items);\n if (fromQuery) {\n return fromQuery;\n }\n\n return defaultTo(await caseAccessor.byKey(caseId), null);\n }\n\n /**\n * Finds the latest session record for a case (by lastSavedAt, then createdAt).\n */\n private async findLatestSession(\n caseId: string,\n ): Promise<AXMAssessmentManagementAssessmentSessionEntityModel | null> {\n const sessionAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>();\n\n const listMatch = await sessionAccessor.query({\n skip: 0,\n take: 1,\n sort: [\n { field: 'lastSavedAt', dir: 'desc' },\n { field: 'createdAt', dir: 'desc' },\n ],\n filter: {\n field: 'caseId',\n operator: { type: 'equal' },\n value: caseId,\n },\n });\n\n return first(listMatch.items) ?? null;\n }\n\n async execute(input: ViewSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const sessionId = this.resolveSessionId(input);\n const caseId = this.resolveCaseId(input);\n\n if (!sessionId && !caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment case ID or session ID is required',\n },\n };\n }\n\n let session: AXMAssessmentManagementAssessmentSessionEntityModel | null = null;\n let assessmentCase: AXMAssessmentManagementAssessmentCaseEntityModel | null = null;\n\n if (sessionId) {\n session = await this.loadSession(sessionId, input);\n if (!session) {\n return {\n success: false,\n message: {\n text: `Assessment session with ID ${sessionId} not found`,\n },\n };\n }\n\n const resolvedCaseId = this.asNonEmptyString(get(session, 'caseId')) ?? caseId;\n if (!resolvedCaseId) {\n return {\n success: false,\n message: {\n text: 'Assessment session is missing caseId',\n },\n };\n }\n\n assessmentCase = await this.loadCase(resolvedCaseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: {\n text: `Assessment case with ID ${resolvedCaseId} not found`,\n },\n };\n }\n } else if (caseId) {\n assessmentCase = await this.loadCase(caseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: {\n text: `Assessment case with ID ${caseId} not found`,\n },\n };\n }\n\n session = await this.findLatestSession(caseId);\n if (!session) {\n const messageKey = '@assessment-management:cases.actions.view-last-session-answers.no-session';\n const messageText =\n (await this.translationService.translateAsync(messageKey)) ||\n 'No assessment session found for this case';\n return {\n success: false,\n message: {\n text: messageText,\n },\n };\n }\n }\n\n if (!session || !assessmentCase) {\n return {\n success: false,\n message: {\n text: 'Unable to resolve assessment session answers',\n },\n };\n }\n\n const initialStep = this.resolveInitialStep(input);\n if (initialStep === 'results' && isEmpty(get(session, 'outcomes'))) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync(\n '@assessment-management:sessions.actions.view-outcomes.empty',\n ),\n },\n };\n }\n\n await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\n { initialStep },\n );\n\n return {\n success: true,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n return {\n success: false,\n message: {\n text: `Error viewing session answers: ${message}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as AXMAssessmentManagementDataSourceKeys, i as AXMAssessmentManagementEntityProvider, j as AXMAssessmentManagementFeatureDefinitionProvider, k as AXMAssessmentManagementFeatureKeys, l as AXMAssessmentManagementMenuProvider, m as AXMAssessmentManagementModule, o as AXMAssessmentManagementPermissionDefinitionProvider, q as AXMAssessmentManagementPermissionKeys, u as AXMAssessmentManagementSearchCommandProvider, v as AXMQuestionnaireViewerPageComponent, b as AXMQuestionnaireViewerService, w as AXMQuestionnaireViewerStandalonePageComponent, x as AXPAssessmentManagementMenuKeys, D as DEFAULT_POST_QUESTIONNAIRE_CONFIG, y as DEFAULT_PRE_QUESTIONNAIRE_CONFIG, z as DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY, B as DEFAULT_QUESTIONNAIRE_OUTCOMES, C as DEFAULT_QUESTION_COMMENT_CONFIG, E as DEFAULT_QUESTION_HINT_CONFIG, R as RootConfig, F as diffQuestionCommentOverride, G as diffQuestionHintOverride, H as findDuplicateOutcomeNames, I as flattenQuestionnaireOutcomeItems, J as getQuestionAnswerCommentStoragePath, K as isQuestionnaireOutcomeDisplayColorHex, L as matchesQuestionnaireOutcomeDisplayRule, M as mergeQuestionCommentConfig, N as mergeQuestionHintForViewer, n as normalizeCompletionMode, O as normalizeQuestionCommentConfig, P as normalizeQuestionHintConfig, S as normalizeQuestionHintFromEntityRow, T as normalizeQuestionHintMode, U as normalizeQuestionnaireOutcomeDisplayRules, V as normalizeQuestionnaireOutcomesValue, W as normalizeValidationStrategy, X as normalizeViewMode, Y as parseQuestionHintPartialFromRecord, Z as parseQuestionnaireOutcomeDisplayColor, _ as readHintFieldsFromRecord, r as resolveWidgetNodeFromMetaDataDefinitionInterface, s as stripQuestionBankInterfaceMetadata, h as toDisplaySettings, t as toPrePostConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-
|
|
1
|
+
export { A as AXMAssessmentManagementDataSourceKeys, i as AXMAssessmentManagementEntityProvider, j as AXMAssessmentManagementFeatureDefinitionProvider, k as AXMAssessmentManagementFeatureKeys, l as AXMAssessmentManagementMenuProvider, m as AXMAssessmentManagementModule, o as AXMAssessmentManagementPermissionDefinitionProvider, q as AXMAssessmentManagementPermissionKeys, u as AXMAssessmentManagementSearchCommandProvider, v as AXMQuestionnaireViewerPageComponent, b as AXMQuestionnaireViewerService, w as AXMQuestionnaireViewerStandalonePageComponent, x as AXPAssessmentManagementMenuKeys, D as DEFAULT_POST_QUESTIONNAIRE_CONFIG, y as DEFAULT_PRE_QUESTIONNAIRE_CONFIG, z as DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY, B as DEFAULT_QUESTIONNAIRE_OUTCOMES, C as DEFAULT_QUESTION_COMMENT_CONFIG, E as DEFAULT_QUESTION_HINT_CONFIG, R as RootConfig, F as diffQuestionCommentOverride, G as diffQuestionHintOverride, H as findDuplicateOutcomeNames, I as flattenQuestionnaireOutcomeItems, J as getQuestionAnswerCommentStoragePath, K as isQuestionnaireOutcomeDisplayColorHex, L as matchesQuestionnaireOutcomeDisplayRule, M as mergeQuestionCommentConfig, N as mergeQuestionHintForViewer, n as normalizeCompletionMode, O as normalizeQuestionCommentConfig, P as normalizeQuestionHintConfig, S as normalizeQuestionHintFromEntityRow, T as normalizeQuestionHintMode, U as normalizeQuestionnaireOutcomeDisplayRules, V as normalizeQuestionnaireOutcomesValue, W as normalizeValidationStrategy, X as normalizeViewMode, Y as parseQuestionHintPartialFromRecord, Z as parseQuestionnaireOutcomeDisplayColor, _ as readHintFieldsFromRecord, r as resolveWidgetNodeFromMetaDataDefinitionInterface, s as stripQuestionBankInterfaceMetadata, h as toDisplaySettings, t as toPrePostConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-modules-assessment-management.mjs.map
|
|
@@ -110,10 +110,10 @@ const AXMTemplateContentEditorWidget = {
|
|
|
110
110
|
properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
111
111
|
components: {
|
|
112
112
|
view: {
|
|
113
|
-
component: () => import('./acorex-modules-content-management-template-content-editor-widget-view.component-
|
|
113
|
+
component: () => import('./acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs').then((c) => c.AXMTemplateContentEditorWidgetViewComponent),
|
|
114
114
|
},
|
|
115
115
|
edit: {
|
|
116
|
-
component: () => import('./acorex-modules-content-management-template-content-editor-widget-edit.component-
|
|
116
|
+
component: () => import('./acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs').then((c) => c.AXMTemplateContentEditorWidgetEditComponent),
|
|
117
117
|
},
|
|
118
118
|
},
|
|
119
119
|
};
|
|
@@ -211,7 +211,7 @@ class AXMContentManagementModule {
|
|
|
211
211
|
multi: true,
|
|
212
212
|
},
|
|
213
213
|
// Provider references (now using tokens)
|
|
214
|
-
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-modules-content-management-permission-definition.provider-
|
|
214
|
+
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs').then(m => m.AXMPermissionDefinitionProvider)),
|
|
215
215
|
provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then(m => m.AXMMenuProvider)),
|
|
216
216
|
provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => Promise.resolve().then(function () { return entity_provider; }).then(m => m.AXMEntityProvider)),
|
|
217
217
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return setting_provider; }).then(m => m.AXMSettingProvider)),
|
|
@@ -287,7 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
287
287
|
multi: true,
|
|
288
288
|
},
|
|
289
289
|
// Provider references (now using tokens)
|
|
290
|
-
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-modules-content-management-permission-definition.provider-
|
|
290
|
+
provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs').then(m => m.AXMPermissionDefinitionProvider)),
|
|
291
291
|
provideLazyProvider(AXP_MENU_PROVIDER, () => Promise.resolve().then(function () { return menu_provider; }).then(m => m.AXMMenuProvider)),
|
|
292
292
|
provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => Promise.resolve().then(function () { return entity_provider; }).then(m => m.AXMEntityProvider)),
|
|
293
293
|
provideLazyProvider(AXP_SETTING_DEFINITION_PROVIDER, () => Promise.resolve().then(function () { return setting_provider; }).then(m => m.AXMSettingProvider)),
|
|
@@ -1056,4 +1056,4 @@ var textTemplate_entity = /*#__PURE__*/Object.freeze({
|
|
|
1056
1056
|
*/
|
|
1057
1057
|
|
|
1058
1058
|
export { AXMPermissionsKeys as A, RootConfig as R, AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER as a, replaceTextTemplatePlaceholders as b, collectTextTemplatePlaceholderNames as c, AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY as d, AXMContentManagementDataSourceKeys as e, AXMContentManagementModule as f, AXMEntityProvider as g, AXMMenuProvider as h, AXMPromotionDataSourceDefinition as i, AXMPromotionSlotComponent as j, AXMSearchCommandProvider as k, AXMSettingProvider as l, AXPContentManagementMenuKeys as m, promotionEntityFactory as p, resolveTextTemplateLocalizedString as r, textTemplateEntityFactory as t };
|
|
1059
|
-
//# sourceMappingURL=acorex-modules-content-management-acorex-modules-content-management-
|
|
1059
|
+
//# sourceMappingURL=acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-content-management-acorex-modules-content-management-CVyrVwfU.mjs","sources":["../../../../libs/modules/content-management/src/lib/const.ts","../../../../libs/modules/content-management/src/lib/manifest.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/channel-definition.provider.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/channel-definition.types.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/template-content-editor-widget.config.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/text-template-placeholder.util.ts","../../../../libs/modules/content-management/src/lib/widget-definition.provider.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/src/lib/content-management.module.ts","../../../../libs/modules/content-management/src/lib/contracts/datasource.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/menu.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/permission.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/index.ts","../../../../libs/modules/content-management/src/lib/text-template-render.command.key.ts","../../../../libs/modules/content-management/src/lib/entity.provider.ts","../../../../libs/modules/content-management/src/lib/menu.provider.ts","../../../../libs/modules/content-management/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/src/lib/setting.provider.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.entity.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.datasource.ts","../../../../libs/modules/content-management/src/lib/entities/text-template/text-template.entity.ts","../../../../libs/modules/content-management/src/lib/entities/text-template/text-template.types.ts","../../../../libs/modules/content-management/src/lib/entities/index.ts","../../../../libs/modules/content-management/src/acorex-modules-content-management.ts"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `@${config.i18n}:promotions.entities.promotion.title`,\n titlePlural: `@${config.i18n}:promotions.entities.promotion.plural`,\n icon: 'fa-light fa-megaphone',\n },\n glossary: {\n name: 'Glossary', \n title: `@${config.i18n}:glossaries.entities.glossary.title`,\n titlePlural: `@${config.i18n}:glossaries.entities.glossary.plural`,\n icon: 'fa-light fa-file',\n },\n textTemplate: {\n name: 'TextTemplate',\n title: `@${config.i18n}:templates.entities.text-template.title`,\n titlePlural: `@${config.i18n}:templates.entities.text-template.plural`,\n icon: 'fa-light fa-envelope',\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Content Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const ContentManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { InjectionToken } from '@angular/core';\nimport { AXMTextTemplateChannelDefinition } from './channel-definition.types';\n\n//#region ---- Token ----\n\n/** Multi-provider token – all providers are merged for available channels */\nexport const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER = new InjectionToken<\n AXMTextTemplateChannelDefinitionProvider\n>('AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER');\n\n//#endregion\n\n//#region ---- Interface ----\n\nexport interface AXMTextTemplateChannelDefinitionProvider {\n getChannels(): AXMTextTemplateChannelDefinition[];\n}\n\n//#endregion\n\n//#region ---- Default Implementation ----\n\nexport class AXMDefaultTextTemplateChannelDefinitionProvider\n implements AXMTextTemplateChannelDefinitionProvider\n{\n getChannels(): AXMTextTemplateChannelDefinition[] {\n return [\n {\n name: 'email',\n title: '@content-management:templates.entities.text-template.fields.channel.options.email',\n type: 'rich',\n hasSubject: true,\n },\n {\n name: 'sms',\n title: '@content-management:templates.entities.text-template.fields.channel.options.sms',\n type: 'plain',\n },\n {\n name: 'whatsapp',\n title: '@content-management:templates.entities.text-template.fields.channel.options.whatsapp',\n type: 'plain',\n },\n {\n name: 'push',\n title: '@content-management:templates.entities.text-template.fields.channel.options.push',\n type: 'plain',\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Types ----\n\nimport type { AXMTextTemplateChannelsValue } from '../../entities/text-template/text-template.types';\n\n/**\n * Definition of a template channel (Email, SMS, WhatsApp, etc.)\n * Provided by AXPTextTemplateChannelDefinitionProvider\n */\nexport interface AXMTextTemplateChannelDefinition {\n /** Unique channel identifier, e.g. 'email', 'sms', 'whatsapp' */\n name: string;\n /** i18n key for display title */\n title: string;\n /** 'plain' = LargeTextBox, 'rich' = RichText */\n type: 'plain' | 'rich';\n /** If true, show subject field (e.g. for Email) */\n hasSubject?: boolean;\n}\n\nexport type { AXMTextTemplateChannelsValue };\n\n//#endregion\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n} from '@acorex/platform/layout/widgets';\n\nexport const AXMTemplateContentEditorWidget: AXPWidgetConfig = {\n name: 'template-content-editor',\n title: 'Template Content',\n icon: 'fa-light fa-envelope',\n description: 'Multi-channel template editor with tabs (Email, SMS, WhatsApp, etc.)',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./template-content-editor-widget-view.component').then(\n (c) => c.AXMTemplateContentEditorWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./template-content-editor-widget-edit.component').then(\n (c) => c.AXMTemplateContentEditorWidgetEditComponent\n ),\n },\n },\n};\n","import type { AXPMultiLanguageString } from '@acorex/platform/core';\nimport { resolveMultiLanguageString } from '@acorex/core/translation';\n\n//#region ---- Placeholder replacement ----\n\nconst TEXT_TEMPLATE_PLACEHOLDER_PATTERN = /\\{\\{([\\w-]+)\\}\\}/g;\n\n/**\n * Collects unique placeholder token names from text (`{{name}}`).\n */\nexport function collectTextTemplatePlaceholderNames(text: string): string[] {\n return [...new Set((text.match(TEXT_TEMPLATE_PLACEHOLDER_PATTERN) ?? []).map((m) => m.slice(2, -2)))];\n}\n\n/**\n * Replaces `{{token}}` when `merge[token]` is defined; otherwise leaves the token unchanged.\n * Same contract as mock `ContentManagement:TextTemplate:Render` merge step.\n */\nexport function replaceTextTemplatePlaceholders(text: string, merge: Record<string, string>): string {\n return text.replace(TEXT_TEMPLATE_PLACEHOLDER_PATTERN, (full, name: string) =>\n Object.prototype.hasOwnProperty.call(merge, name) ? merge[name]! : full,\n );\n}\n\n/**\n * Resolves a template channel field (plain string or per-locale map) for the active locale.\n */\nexport function resolveTextTemplateLocalizedString(\n value: AXPMultiLanguageString | string | undefined | null,\n locale: string,\n): string {\n if (value == null || value === '') {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n return resolveMultiLanguageString(value, locale);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMTemplateContentEditorWidget } from './features/template-content-editor';\n\n//#endregion\n\n//#region ---- Content Management Widgets Provider ----\n\n@Injectable()\nexport class AXMContentManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMTemplateContentEditorWidget];\n }\n}\n\n//#endregion\n","import { RootConfig } from '../../../../const';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { Component, inject, OnInit, signal, WritableSignal } from '@angular/core';\nimport { AXMPromotionEntityModel } from '../../../../entities/promotion/promotion.types';\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [AXSafePipe],\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n private readonly entityService = inject(AXPEntityService);\n location: string;\n\n notificationChannelService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n\n listData: WritableSignal<AXMPromotionEntityModel[]> = signal([]);\n\n private fileStorage = inject(AXPFileStorageService);\n\n async ngOnInit(): Promise<void> {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n\n const mappedItems = await Promise.all(\n filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n\n return {\n ...item,\n image: image,\n };\n } else {\n return item;\n }\n })\n );\n\n this.listData.set(mappedItems);\n }\n} ","@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex/platform/core';\nimport { ContentManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXMContentManagementWidgetsProvider } from './widget-definition.provider';\n// Entity Modules\n\nimport { AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER, AXMDefaultTextTemplateChannelDefinitionProvider } from './features/template-content-editor/channel-definition.provider';\n// Import promotion-related components\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\nimport { ROUTES, Routes } from '@angular/router';\nimport { AXPWorkflowModule } from \"@acorex/platform/workflow\";\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n // Entity Modules\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: ContentManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\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.AXMMenuProvider)\n ),\n provideLazyProvider(\n AXP_ENTITY_DEFINITION_LOADER,\n () => import('./entity.provider').then(m => m.AXMEntityProvider)\n ),\n provideLazyProvider(\n AXP_SETTING_DEFINITION_PROVIDER,\n () => import('./setting.provider').then(m => m.AXMSettingProvider)\n ),\n provideLazyProvider(\n AXP_SEARCH_PROVIDER,\n () => import('./search-command.provider').then(m => m.AXMSearchCommandProvider)\n ),\n {\n provide: AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER,\n useClass: AXMDefaultTextTemplateChannelDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMContentManagementWidgetsProvider,\n multi: true,\n },\n ]\n})\nexport class AXMContentManagementModule {\n\n}\n","//#region ---- Datasource keys ----\n\n/** Content Management datasource registry names. */\nexport const AXMContentManagementDataSourceKeys = {\n Promotion: 'promotion',\n} as const;\n\n//#endregion\n","export const AXPContentManagementMenuKeys = {\n Root: 'content-management:menu',\n HelpRoot: 'app:help',\n Promotions: 'content-management:menu:promotions',\n TextTemplates: 'content-management:menu:text-templates',\n Glossary: 'content-management:menu:glossary',\n HelpCenter: 'app:help:center',\n Tutorials: 'app:help:tutorials',\n About: 'app:about',\n} as const;\n\n","export const AXMPermissionsKeys = {\n ContentManagement: {\n Management: 'ContentManagement:Permission:Management',\n Promotion: {\n Management: 'ContentManagement:Permission:Promotion.Management',\n View: 'ContentManagement:Permission:Promotion.View',\n Edit: 'ContentManagement:Permission:Promotion.Edit',\n Delete: 'ContentManagement:Permission:Promotion.Delete',\n Create: 'ContentManagement:Permission:Promotion.Create',\n },\n TextTemplate: {\n Management: 'ContentManagement:Permission:TextTemplate.Management',\n View: 'ContentManagement:Permission:TextTemplate.View',\n Edit: 'ContentManagement:Permission:TextTemplate.Edit',\n Delete: 'ContentManagement:Permission:TextTemplate.Delete',\n Create: 'ContentManagement:Permission:TextTemplate.Create',\n },\n },\n};\n","//#region ---- Contracts barrel ----\n\nexport * from './datasource.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\n//#endregion\n","/** Registry key for {@link ContentManagementTextTemplateRenderCommand}. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = 'ContentManagement:TextTemplate:Render' as const;\n","import { AXPEntity } from '@acorex/platform/common';\r\nimport {\r\n AXPEntityDefinitionLoader,\r\n AXPEntityDefinitionPreloader,\r\n AXPEntityPreloadEntity,\r\n} from '@acorex/platform/layout/entity';\r\n\r\nimport { RootConfig } from './const';\r\n\r\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\r public preload(): AXPEntityPreloadEntity[] {\r\n const module = RootConfig.module.name;\r\n return Array.from(Object.values(RootConfig.entities)).map((entity: { name: string }) => ({\r\n module: module,\r\n entity: entity.name,\r\n }));\r\n }\r\n\r\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\r\n if (moduleName == RootConfig.module.name) {\r\n switch (entityName) {\r\n case RootConfig.entities.promotion.name: {\r\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\r\n return entity();\r\n }\r\n case RootConfig.entities.textTemplate.name: {\r\n const entity = (await import('./entities/text-template/text-template.entity')).textTemplateEntityFactory;\r\n return entity();\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n async list(): Promise<{ name: string; module: string }[]> {\r\n const m = RootConfig.module.name;\r\n return Promise.resolve(Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m })));\r\n }\r\n}\r\n","import { AXPCommonMenuKeys } from '@acorex/modules/common';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport { AXPContentManagementMenuKeys } from './contracts/menu.keys';\n\n@Injectable()\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n\n //#region ---- Administration > Content (Promotions, Page Builder) ----\n\n const contentMenu = context.find(AXPCommonMenuKeys.Content);\n if (!contentMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Content,\n priority: 10,\n text: '@general:menus.content.title',\n icon: 'fa-light fa-paint-brush',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Text Template under Configuration > Data and Content\n context.find(AXPCommonMenuKeys.DataAndContent).addItems([\n {\n name: AXPContentManagementMenuKeys.TextTemplates,\n text: RootConfig.entities.textTemplate.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.textTemplate.name),\n icon: RootConfig.entities.textTemplate.icon,\n priority: 2,\n policy: {\n features: [module.name],\n },\n },\n ]);\n\n //#endregion\n\n //#region ---- Help Menu Extensions ----\n\n context.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpRoot,\n priority: 900000,\n text: `@${scope}:help-center.menus.help.title`,\n icon: 'fa-light fa-circle-question',\n },\n ]);\n\n const helpMenu = context.find(AXPContentManagementMenuKeys.HelpRoot);\n\n if (helpMenu.exists) {\n helpMenu.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpCenter,\n text: `@${scope}:help-center.menus.help-center.title`,\n icon: 'fa-light fa-book-open',\n priority: 900001,\n },\n {\n name: AXPContentManagementMenuKeys.Tutorials,\n text: `@${scope}:help-center.menus.tutorials.title`,\n icon: 'fa-light fa-clapperboard-play',\n priority: 900002,\n },\n {\n name: AXPContentManagementMenuKeys.About,\n text: `@${scope}:help-center.menus.about.title`,\n icon: 'fa-light fa-circle-info',\n priority: 900011,\n },\n ]);\n }\n\n //#endregion\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex/platform/common';\nimport { RootConfig } from './const';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-promotion',\n group: 'command',\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n description: RootConfig.entities.promotion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n {\n name: RootConfig.entities.promotion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.promotion.title,\n }\n ),\n },\n },\n {\n id: 'create-text-template',\n group: 'command',\n title: `@content-management:templates.search.create-text-template.title`,\n icon: RootConfig.entities.textTemplate.icon,\n description: `@content-management:templates.search.create-text-template.description`,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.textTemplate.name}`,\n {\n name: RootConfig.entities.textTemplate.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.textTemplate.title,\n }\n ),\n },\n },\n ];\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityType,\n AXPEntityV2,\n createAllQueryView,\n createQueryView,\n} from '@acorex/platform/common';\nimport { AXPSystemActionType } from '@acorex/platform/core';\nimport {\n entityMasterCrudActions,\n entityMasterDeleteAction,\n entityMasterViewAction,\n} from '@acorex/platform/layout/entity';\n\nimport { RootConfig } from '../../const';\n\n//#endregion\n\n//#region ---- Entity definition factory ----\n\n/**\n * Builds the Promotion entity definition (mock/runtime parity with former module JSON seed).\n */\nexport async function promotionEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntityV2 = {\n version: 2,\n plugins: [\n { name: 'history' },\n { name: 'lock' },\n { name: 'compare' },\n { name: 'comments', options: { display: 'page' } },\n { name: 'distribution' },\n {\n name: 'status',\n options: {\n field: 'status',\n definition: 'common.status.task',\n defaultStatus: 'todo',\n showInCreate: false,\n },\n },\n { name: 'policy', options: { policy: 'test' } },\n { name: 'workflow-run' },\n { name: 'attachments', options: { } },\n ],\n module: RootConfig.module.name,\n aggregate: 'promotions',\n name: RootConfig.entities.promotion.name,\n type: AXPEntityType.AggregateRoot,\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n formats: {\n individual: RootConfig.entities.promotion.title,\n plural: RootConfig.entities.promotion.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n groups: [{ id: 'promotion', title: 'Promotion' }],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'promotion',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'createdAt',\n title: '@general:terms.datetime.created-at',\n groupId: 'promotion',\n schema: {\n dataType: 'dateTime',\n nullable: true,\n readonly: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { readonly: true },\n },\n },\n options: {\n sort: { enabled: true },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n description: 'Promotion title',\n groupId: 'promotion',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { maxLength: 100 },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'body',\n title: `@${i18n}:promotions.entities.promotion.fields.body.title`,\n description: 'Promotion body content',\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.RichText,\n },\n nullable: true,\n },\n },\n {\n name: 'contentType',\n title: `@${i18n}:promotions.entities.promotion.fields.content-type.title`,\n description: 'Type of content (Media or Text)',\n groupId: 'promotion',\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'shape',\n title: `@${i18n}:promotions.entities.promotion.fields.shape.title`,\n description: 'Display shape for media promotions',\n groupId: 'promotion',\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Rectangle', name: 'rectangle' },\n { title: 'Circle', name: 'circle' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'placement',\n title: `@${i18n}:promotions.entities.promotion.fields.placement.title`,\n description: 'Where the promotion is displayed',\n groupId: 'promotion',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Side Menu Footer', name: 'side-menu-footer', options: [] },\n { title: 'Side Menu Header', name: 'side-menu-header', options: [] },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'placement' }, { name: 'createdAt' }],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n ],\n },\n update: {\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 4, order: 4 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 4, order: 5 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 4, order: 6 } } } },\n ],\n actions: [\n { ...entityMasterViewAction(), default: true },\n entityMasterDeleteAction(),\n ],\n },\n list: {\n title: RootConfig.entities.promotion.titlePlural,\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [\n { name: 'title', dir: 'asc' },\n { name: 'createdAt', dir: 'desc' },\n ],\n }),\n createQueryView('media', `@${i18n}:promotions.terms.media`, true, {\n columns: [],\n conditions: [\n {\n name: 'contentType.name',\n operator: { type: 'equal' },\n value: 'media',\n },\n ],\n sorts: [],\n }),\n createQueryView('text', `@${i18n}:promotions.terms.text`, true, {\n columns: [],\n conditions: [\n {\n name: 'contentType.name',\n operator: { type: 'equal' },\n value: 'text',\n },\n ],\n sorts: [],\n }),\n ],\n },\n },\n },\n } as AXPEntityV2;\n\n return entityDef;\n}\n\n//#endregion\n","import { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPFilterDefinition } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMContentManagementDataSourceKeys } from '../../contracts/datasource.keys';\nexport class AXMPromotionDataSourceDefinition implements AXPDataSourceDefinitionProvider {\n private readonly entityService = inject(AXPEntityService);\n protected promotionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n protected i18n = RootConfig.config.i18n;\n\n items(): Promise<AXPDataSourceDefinition[]> {\n return Promise.resolve([\n {\n name: AXMContentManagementDataSourceKeys.Promotion,\n title: 'Promotion',\n source: () => {\n return new AXDataSource({\n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n } catch (e) {\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.number,\n },\n ],\n filters: [\n {\n field: 'title',\n title: 'Title',\n operator: {\n type: 'equal',\n },\n widget: {\n type: AXPWidgetsCatalog.text,\n },\n filterType: {\n advance: true,\n inline: true,\n },\n } as AXPFilterDefinition,\n ],\n textField: {\n name: 'title',\n title: 'Title',\n },\n valueField: {\n name: 'id',\n title: 'ID',\n },\n },\n ]);\n }\n} ","//#region ---- Imports ----\n\nimport { AXPEntity, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\n\nimport { RootConfig } from '../../const';\n\n//#endregion\n\nexport async function textTemplateEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n plugins: [\n { name: 'history' },\n { name: 'lock' },\n { name: 'compare' },\n { name: 'category' },\n { name: 'archive' },\n { name: 'unique-fields', options: { fields: 'name', scope: 'global' } },\n ],\n module: RootConfig.module.name,\n name: RootConfig.entities.textTemplate.name,\n title: RootConfig.entities.textTemplate.title,\n icon: RootConfig.entities.textTemplate.icon,\n formats: {\n individual: RootConfig.entities.textTemplate.title,\n plural: RootConfig.entities.textTemplate.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n {\n id: 'template-content',\n title: `@${i18n}:templates.entities.text-template.groups.template-content`,\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder: '@content-management:templates.entities.text-template.fields.name.placeholder',\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder: '@content-management:templates.entities.text-template.fields.title.placeholder',\n multiLanguage: true,\n },\n },\n },\n validations: [\n { rule: 'required' },\n { rule: 'minLength', options: { value: 3 } },\n { rule: 'maxLength', options: { value: 100 } },\n ],\n },\n {\n name: 'channels',\n title: '@content-management:templates.entities.text-template.fields.channels.title',\n groupId: 'template-content',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsList.Editors.TemplateContentEditor,\n },\n },\n validations: [{ rule: 'required' }],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n interfaces: {\n master: {\n create: {\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n },\n update: {\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n },\n single: {\n title: '{{ title }}',\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n title: RootConfig.entities.textTemplate.titlePlural,\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [\n { name: 'name', dir: 'asc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import type { AXPCategoryListItem, AXPMultiLanguageString } from '@acorex/platform/core';\nimport { AXPEntityModel } from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\n/** Stored value: { email: { subject?, body }, sms: { body }, ... } */\nexport interface AXMTextTemplateChannelsValue {\n [channelName: string]: {\n subject?: AXPMultiLanguageString;\n body: AXPMultiLanguageString;\n };\n}\n\nexport interface AXMTextTemplateEntityModel extends AXPEntityModel<string> {\n name?: string;\n title?: AXPMultiLanguageString;\n channels?: AXMTextTemplateChannelsValue;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n}\n\n//#endregion\n","// Entity Services\nexport * from './promotion';\nexport * from './text-template';\n\n// Entity Modules\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs","sources":["../../../../libs/modules/content-management/src/lib/const.ts","../../../../libs/modules/content-management/src/lib/manifest.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/channel-definition.provider.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/channel-definition.types.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/template-content-editor-widget.config.ts","../../../../libs/modules/content-management/src/lib/features/template-content-editor/text-template-placeholder.util.ts","../../../../libs/modules/content-management/src/lib/widget-definition.provider.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.ts","../../../../libs/modules/content-management/src/lib/features/promotion/components/promotion-slot/promotion-slot.component.html","../../../../libs/modules/content-management/src/lib/content-management.module.ts","../../../../libs/modules/content-management/src/lib/contracts/datasource.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/menu.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/permission.keys.ts","../../../../libs/modules/content-management/src/lib/contracts/index.ts","../../../../libs/modules/content-management/src/lib/text-template-render.command.key.ts","../../../../libs/modules/content-management/src/lib/entity.provider.ts","../../../../libs/modules/content-management/src/lib/menu.provider.ts","../../../../libs/modules/content-management/src/lib/search-command.provider.ts","../../../../libs/modules/content-management/src/lib/setting.provider.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.entity.ts","../../../../libs/modules/content-management/src/lib/entities/promotion/promotion.datasource.ts","../../../../libs/modules/content-management/src/lib/entities/text-template/text-template.entity.ts","../../../../libs/modules/content-management/src/lib/entities/text-template/text-template.types.ts","../../../../libs/modules/content-management/src/lib/entities/index.ts","../../../../libs/modules/content-management/src/acorex-modules-content-management.ts"],"sourcesContent":["const config = {\n i18n: 'content-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'ContentManagement',\n name: 'ContentManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-file-invoice',\n },\n entities: {\n promotion: {\n name: 'Promotion',\n title: `@${config.i18n}:promotions.entities.promotion.title`,\n titlePlural: `@${config.i18n}:promotions.entities.promotion.plural`,\n icon: 'fa-light fa-megaphone',\n },\n glossary: {\n name: 'Glossary', \n title: `@${config.i18n}:glossaries.entities.glossary.title`,\n titlePlural: `@${config.i18n}:glossaries.entities.glossary.plural`,\n icon: 'fa-light fa-file',\n },\n textTemplate: {\n name: 'TextTemplate',\n title: `@${config.i18n}:templates.entities.text-template.title`,\n titlePlural: `@${config.i18n}:templates.entities.text-template.plural`,\n icon: 'fa-light fa-envelope',\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Content Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const ContentManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { InjectionToken } from '@angular/core';\nimport { AXMTextTemplateChannelDefinition } from './channel-definition.types';\n\n//#region ---- Token ----\n\n/** Multi-provider token – all providers are merged for available channels */\nexport const AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER = new InjectionToken<\n AXMTextTemplateChannelDefinitionProvider\n>('AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER');\n\n//#endregion\n\n//#region ---- Interface ----\n\nexport interface AXMTextTemplateChannelDefinitionProvider {\n getChannels(): AXMTextTemplateChannelDefinition[];\n}\n\n//#endregion\n\n//#region ---- Default Implementation ----\n\nexport class AXMDefaultTextTemplateChannelDefinitionProvider\n implements AXMTextTemplateChannelDefinitionProvider\n{\n getChannels(): AXMTextTemplateChannelDefinition[] {\n return [\n {\n name: 'email',\n title: '@content-management:templates.entities.text-template.fields.channel.options.email',\n type: 'rich',\n hasSubject: true,\n },\n {\n name: 'sms',\n title: '@content-management:templates.entities.text-template.fields.channel.options.sms',\n type: 'plain',\n },\n {\n name: 'whatsapp',\n title: '@content-management:templates.entities.text-template.fields.channel.options.whatsapp',\n type: 'plain',\n },\n {\n name: 'push',\n title: '@content-management:templates.entities.text-template.fields.channel.options.push',\n type: 'plain',\n },\n ];\n }\n}\n\n//#endregion\n","//#region ---- Types ----\n\nimport type { AXMTextTemplateChannelsValue } from '../../entities/text-template/text-template.types';\n\n/**\n * Definition of a template channel (Email, SMS, WhatsApp, etc.)\n * Provided by AXPTextTemplateChannelDefinitionProvider\n */\nexport interface AXMTextTemplateChannelDefinition {\n /** Unique channel identifier, e.g. 'email', 'sms', 'whatsapp' */\n name: string;\n /** i18n key for display title */\n title: string;\n /** 'plain' = LargeTextBox, 'rich' = RichText */\n type: 'plain' | 'rich';\n /** If true, show subject field (e.g. for Email) */\n hasSubject?: boolean;\n}\n\nexport type { AXMTextTemplateChannelsValue };\n\n//#endregion\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n} from '@acorex/platform/layout/widgets';\n\nexport const AXMTemplateContentEditorWidget: AXPWidgetConfig = {\n name: 'template-content-editor',\n title: 'Template Content',\n icon: 'fa-light fa-envelope',\n description: 'Multi-channel template editor with tabs (Email, SMS, WhatsApp, etc.)',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () =>\n import('./template-content-editor-widget-view.component').then(\n (c) => c.AXMTemplateContentEditorWidgetViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./template-content-editor-widget-edit.component').then(\n (c) => c.AXMTemplateContentEditorWidgetEditComponent\n ),\n },\n },\n};\n","import type { AXPMultiLanguageString } from '@acorex/platform/core';\nimport { resolveMultiLanguageString } from '@acorex/core/translation';\n\n//#region ---- Placeholder replacement ----\n\nconst TEXT_TEMPLATE_PLACEHOLDER_PATTERN = /\\{\\{([\\w-]+)\\}\\}/g;\n\n/**\n * Collects unique placeholder token names from text (`{{name}}`).\n */\nexport function collectTextTemplatePlaceholderNames(text: string): string[] {\n return [...new Set((text.match(TEXT_TEMPLATE_PLACEHOLDER_PATTERN) ?? []).map((m) => m.slice(2, -2)))];\n}\n\n/**\n * Replaces `{{token}}` when `merge[token]` is defined; otherwise leaves the token unchanged.\n * Same contract as mock `ContentManagement:TextTemplate:Render` merge step.\n */\nexport function replaceTextTemplatePlaceholders(text: string, merge: Record<string, string>): string {\n return text.replace(TEXT_TEMPLATE_PLACEHOLDER_PATTERN, (full, name: string) =>\n Object.prototype.hasOwnProperty.call(merge, name) ? merge[name]! : full,\n );\n}\n\n/**\n * Resolves a template channel field (plain string or per-locale map) for the active locale.\n */\nexport function resolveTextTemplateLocalizedString(\n value: AXPMultiLanguageString | string | undefined | null,\n locale: string,\n): string {\n if (value == null || value === '') {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n return resolveMultiLanguageString(value, locale);\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMTemplateContentEditorWidget } from './features/template-content-editor';\n\n//#endregion\n\n//#region ---- Content Management Widgets Provider ----\n\n@Injectable()\nexport class AXMContentManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMTemplateContentEditorWidget];\n }\n}\n\n//#endregion\n","import { RootConfig } from '../../../../const';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXSafePipe } from '@acorex/core/pipes';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { Component, inject, OnInit, signal, WritableSignal } from '@angular/core';\nimport { AXMPromotionEntityModel } from '../../../../entities/promotion/promotion.types';\n@Component({\n selector: 'acorex-platform-promotion-slot',\n imports: [AXSafePipe],\n templateUrl: './promotion-slot.component.html',\n})\nexport class AXMPromotionSlotComponent implements OnInit {\n private readonly entityService = inject(AXPEntityService);\n location: string;\n\n notificationChannelService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n\n listData: WritableSignal<AXMPromotionEntityModel[]> = signal([]);\n\n private fileStorage = inject(AXPFileStorageService);\n\n async ngOnInit(): Promise<void> {\n const channels = await this.notificationChannelService.query({\n skip: 0,\n take: 10000,\n // filter: {\n // field: 'type',\n // operator: { type: 'equal' },\n // value: 'promotion',\n // },\n });\n\n const filteredItems = channels.items.filter((x) => x.placement?.name == this.location);\n\n const mappedItems = await Promise.all(\n filteredItems.map(async (item) => {\n if (item.imageId != null) {\n const image = await this.fileStorage.getInfo(item.imageId);\n\n return {\n ...item,\n image: image,\n };\n } else {\n return item;\n }\n })\n );\n\n this.listData.set(mappedItems);\n }\n} ","@for (item of listData(); track item.id) { @if (item.contentType?.name == 'media') {\n<img [src]=\"item.image?.url ?? ''\" class=\"ax-w-full ax-p-3 ax-border {{\n item.shape?.name == 'circle' ? 'ax-rounded-full' : 'ax-rounded-none'\n }}\" />\n} @if(item.contentType?.name == 'text'){\n<div class=\"ax-m-1 ax-px-6 ax-p-4 ax-border ax-bg-primary ax-rounded-lg\">\n <h1 class=\"ax-text-base/6\" [innerHTML]=\"item.body | safe : 'html'\"></h1>\n</div>\n\n} } ","import { NgModule } from \"@angular/core\";\nimport { AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider } from '@acorex/platform/core';\nimport { ContentManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXMContentManagementWidgetsProvider } from './widget-definition.provider';\n// Entity Modules\n\nimport { AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER, AXMDefaultTextTemplateChannelDefinitionProvider } from './features/template-content-editor/channel-definition.provider';\n// Import promotion-related components\nimport { AXMPromotionSlotComponent } from './features/promotion/components/promotion-slot/promotion-slot.component';\nimport { ROUTES, Routes } from '@angular/router';\nimport { AXPWorkflowModule } from \"@acorex/platform/workflow\";\n@NgModule({\n imports: [\n AXPWidgetCoreModule,\n AXPComponentSlotModule.forChild({\n 'side-menu-footer': [\n {\n name: 'side-menu-footer-promotion',\n component: AXMPromotionSlotComponent,\n options: {\n location: 'side-menu-footer',\n },\n },\n ],\n 'side-menu-header': [\n {\n name: 'side-menu-header-promotion',\n component: AXMPromotionSlotComponent,\n priority: 2,\n options: {\n location: 'side-menu-header',\n },\n },\n ],\n }),\n // Entity Modules\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: ContentManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\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.AXMMenuProvider)\n ),\n provideLazyProvider(\n AXP_ENTITY_DEFINITION_LOADER,\n () => import('./entity.provider').then(m => m.AXMEntityProvider)\n ),\n provideLazyProvider(\n AXP_SETTING_DEFINITION_PROVIDER,\n () => import('./setting.provider').then(m => m.AXMSettingProvider)\n ),\n provideLazyProvider(\n AXP_SEARCH_PROVIDER,\n () => import('./search-command.provider').then(m => m.AXMSearchCommandProvider)\n ),\n {\n provide: AXP_TEXT_TEMPLATE_CHANNEL_DEFINITION_PROVIDER,\n useClass: AXMDefaultTextTemplateChannelDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMContentManagementWidgetsProvider,\n multi: true,\n },\n ]\n})\nexport class AXMContentManagementModule {\n\n}\n","//#region ---- Datasource keys ----\n\n/** Content Management datasource registry names. */\nexport const AXMContentManagementDataSourceKeys = {\n Promotion: 'promotion',\n} as const;\n\n//#endregion\n","export const AXPContentManagementMenuKeys = {\n Root: 'content-management:menu',\n HelpRoot: 'app:help',\n Promotions: 'content-management:menu:promotions',\n TextTemplates: 'content-management:menu:text-templates',\n Glossary: 'content-management:menu:glossary',\n HelpCenter: 'app:help:center',\n Tutorials: 'app:help:tutorials',\n About: 'app:about',\n} as const;\n\n","export const AXMPermissionsKeys = {\n ContentManagement: {\n Management: 'ContentManagement:Permission:Management',\n Promotion: {\n Management: 'ContentManagement:Permission:Promotion.Management',\n View: 'ContentManagement:Permission:Promotion.View',\n Edit: 'ContentManagement:Permission:Promotion.Edit',\n Delete: 'ContentManagement:Permission:Promotion.Delete',\n Create: 'ContentManagement:Permission:Promotion.Create',\n },\n TextTemplate: {\n Management: 'ContentManagement:Permission:TextTemplate.Management',\n View: 'ContentManagement:Permission:TextTemplate.View',\n Edit: 'ContentManagement:Permission:TextTemplate.Edit',\n Delete: 'ContentManagement:Permission:TextTemplate.Delete',\n Create: 'ContentManagement:Permission:TextTemplate.Create',\n },\n },\n};\n","//#region ---- Contracts barrel ----\n\nexport * from './datasource.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\n//#endregion\n","/** Registry key for {@link ContentManagementTextTemplateRenderCommand}. */\nexport const AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY = 'ContentManagement:TextTemplate:Render' as const;\n","import { AXPEntity } from '@acorex/platform/common';\r\nimport {\r\n AXPEntityDefinitionLoader,\r\n AXPEntityDefinitionPreloader,\r\n AXPEntityPreloadEntity,\r\n} from '@acorex/platform/layout/entity';\r\n\r\nimport { RootConfig } from './const';\r\n\r\nexport class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\r public preload(): AXPEntityPreloadEntity[] {\r\n const module = RootConfig.module.name;\r\n return Array.from(Object.values(RootConfig.entities)).map((entity: { name: string }) => ({\r\n module: module,\r\n entity: entity.name,\r\n }));\r\n }\r\n\r\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\r\n if (moduleName == RootConfig.module.name) {\r\n switch (entityName) {\r\n case RootConfig.entities.promotion.name: {\r\n const entity = (await import('./entities/promotion/promotion.entity')).promotionEntityFactory;\r\n return entity();\r\n }\r\n case RootConfig.entities.textTemplate.name: {\r\n const entity = (await import('./entities/text-template/text-template.entity')).textTemplateEntityFactory;\r\n return entity();\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n async list(): Promise<{ name: string; module: string }[]> {\r\n const m = RootConfig.module.name;\r\n return Promise.resolve(Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m })));\r\n }\r\n}\r\n","import { AXPCommonMenuKeys } from '@acorex/modules/common';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport { AXPContentManagementMenuKeys } from './contracts/menu.keys';\n\n@Injectable()\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n\n //#region ---- Administration > Content (Promotions, Page Builder) ----\n\n const contentMenu = context.find(AXPCommonMenuKeys.Content);\n if (!contentMenu.exists) {\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXPCommonMenuKeys.Content,\n priority: 10,\n text: '@general:menus.content.title',\n icon: 'fa-light fa-paint-brush',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Text Template under Configuration > Data and Content\n context.find(AXPCommonMenuKeys.DataAndContent).addItems([\n {\n name: AXPContentManagementMenuKeys.TextTemplates,\n text: RootConfig.entities.textTemplate.title,\n path: this.entityService.createPath(module.name, RootConfig.entities.textTemplate.name),\n icon: RootConfig.entities.textTemplate.icon,\n priority: 2,\n policy: {\n features: [module.name],\n },\n },\n ]);\n\n //#endregion\n\n //#region ---- Help Menu Extensions ----\n\n context.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpRoot,\n priority: 900000,\n text: `@${scope}:help-center.menus.help.title`,\n icon: 'fa-light fa-circle-question',\n },\n ]);\n\n const helpMenu = context.find(AXPContentManagementMenuKeys.HelpRoot);\n\n if (helpMenu.exists) {\n helpMenu.addItems([\n {\n name: AXPContentManagementMenuKeys.HelpCenter,\n text: `@${scope}:help-center.menus.help-center.title`,\n icon: 'fa-light fa-book-open',\n priority: 900001,\n },\n {\n name: AXPContentManagementMenuKeys.Tutorials,\n text: `@${scope}:help-center.menus.tutorials.title`,\n icon: 'fa-light fa-clapperboard-play',\n priority: 900002,\n },\n {\n name: AXPContentManagementMenuKeys.About,\n text: `@${scope}:help-center.menus.about.title`,\n icon: 'fa-light fa-circle-info',\n priority: 900011,\n },\n ]);\n }\n\n //#endregion\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult, createEntityCommandOptions } from '@acorex/platform/common';\nimport { RootConfig } from './const';\n\nexport class AXMSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [\n {\n id: 'create-promotion',\n group: 'command',\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n description: RootConfig.entities.promotion.titlePlural,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.promotion.name}`,\n {\n name: RootConfig.entities.promotion.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.promotion.title,\n }\n ),\n },\n },\n {\n id: 'create-text-template',\n group: 'command',\n title: `@content-management:templates.search.create-text-template.title`,\n icon: RootConfig.entities.textTemplate.icon,\n description: `@content-management:templates.search.create-text-template.description`,\n command: {\n name: 'Entity:Create',\n options: createEntityCommandOptions(\n `${RootConfig.module.name}.${RootConfig.entities.textTemplate.name}`,\n {\n name: RootConfig.entities.textTemplate.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.textTemplate.title,\n }\n ),\n },\n },\n ];\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // context\n // // Add Form Template Group\n // .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)\n // // Start Interface Section\n // .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')\n // .addSetting({\n // key: 'history-panel',\n // title: 'Show History Panel',\n // scope: 'U',\n // isInherited: true,\n // defaultValue: false,\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // },\n // description: 'Enable or disable the history panel for forms.',\n // validationRules: [\n // {\n // rule: 'required',\n // },\n // ],\n // })\n // .endSection()\n // .endGroup();\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityType,\n AXPEntityV2,\n createAllQueryView,\n createQueryView,\n} from '@acorex/platform/common';\nimport { AXPSystemActionType } from '@acorex/platform/core';\nimport {\n entityMasterCrudActions,\n entityMasterDeleteAction,\n entityMasterViewAction,\n} from '@acorex/platform/layout/entity';\n\nimport { RootConfig } from '../../const';\n\n//#endregion\n\n//#region ---- Entity definition factory ----\n\n/**\n * Builds the Promotion entity definition (mock/runtime parity with former module JSON seed).\n */\nexport async function promotionEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntityV2 = {\n version: 2,\n plugins: [\n { name: 'history' },\n { name: 'lock' },\n { name: 'compare' },\n { name: 'comments', options: { display: 'page' } },\n { name: 'distribution' },\n {\n name: 'status',\n options: {\n field: 'status',\n definition: 'common.status.task',\n defaultStatus: 'todo',\n showInCreate: false,\n },\n },\n { name: 'policy', options: { policy: 'test' } },\n { name: 'workflow-run' },\n { name: 'attachments', options: { } },\n ],\n module: RootConfig.module.name,\n aggregate: 'promotions',\n name: RootConfig.entities.promotion.name,\n type: AXPEntityType.AggregateRoot,\n title: RootConfig.entities.promotion.title,\n icon: RootConfig.entities.promotion.icon,\n formats: {\n individual: RootConfig.entities.promotion.title,\n plural: RootConfig.entities.promotion.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n groups: [{ id: 'promotion', title: 'Promotion' }],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'promotion',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'createdAt',\n title: '@general:terms.datetime.created-at',\n groupId: 'promotion',\n schema: {\n dataType: 'dateTime',\n nullable: true,\n readonly: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { readonly: true },\n },\n },\n options: {\n sort: { enabled: true },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n description: 'Promotion title',\n groupId: 'promotion',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { maxLength: 100 },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'body',\n title: `@${i18n}:promotions.entities.promotion.fields.body.title`,\n description: 'Promotion body content',\n groupId: 'promotion',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.RichText,\n },\n nullable: true,\n },\n },\n {\n name: 'contentType',\n title: `@${i18n}:promotions.entities.promotion.fields.content-type.title`,\n description: 'Type of content (Media or Text)',\n groupId: 'promotion',\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'shape',\n title: `@${i18n}:promotions.entities.promotion.fields.shape.title`,\n description: 'Display shape for media promotions',\n groupId: 'promotion',\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Rectangle', name: 'rectangle' },\n { title: 'Circle', name: 'circle' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'placement',\n title: `@${i18n}:promotions.entities.promotion.fields.placement.title`,\n description: 'Where the promotion is displayed',\n groupId: 'promotion',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'object',\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Side Menu Footer', name: 'side-menu-footer', options: [] },\n { title: 'Side Menu Header', name: 'side-menu-header', options: [] },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'placement' }, { name: 'createdAt' }],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n ],\n },\n update: {\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'promotion' }],\n properties: [\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'body', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'contentType', layout: { positions: { lg: { colSpan: 4, order: 4 } } } },\n { name: 'shape', layout: { positions: { lg: { colSpan: 4, order: 5 } } } },\n { name: 'placement', layout: { positions: { lg: { colSpan: 4, order: 6 } } } },\n ],\n actions: [\n { ...entityMasterViewAction(), default: true },\n entityMasterDeleteAction(),\n ],\n },\n list: {\n title: RootConfig.entities.promotion.titlePlural,\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [\n { name: 'title', dir: 'asc' },\n { name: 'createdAt', dir: 'desc' },\n ],\n }),\n createQueryView('media', `@${i18n}:promotions.terms.media`, true, {\n columns: [],\n conditions: [\n {\n name: 'contentType.name',\n operator: { type: 'equal' },\n value: 'media',\n },\n ],\n sorts: [],\n }),\n createQueryView('text', `@${i18n}:promotions.terms.text`, true, {\n columns: [],\n conditions: [\n {\n name: 'contentType.name',\n operator: { type: 'equal' },\n value: 'text',\n },\n ],\n sorts: [],\n }),\n ],\n },\n },\n },\n } as AXPEntityV2;\n\n return entityDef;\n}\n\n//#endregion\n","import { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPFilterDefinition } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMContentManagementDataSourceKeys } from '../../contracts/datasource.keys';\nexport class AXMPromotionDataSourceDefinition implements AXPDataSourceDefinitionProvider {\n private readonly entityService = inject(AXPEntityService);\n protected promotionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.promotion.name).data<any, any>();\n protected i18n = RootConfig.config.i18n;\n\n items(): Promise<AXPDataSourceDefinition[]> {\n return Promise.resolve([\n {\n name: AXMContentManagementDataSourceKeys.Promotion,\n title: 'Promotion',\n source: () => {\n return new AXDataSource({\n load: async (_) => {\n try {\n const res = await this.promotionService.query();\n return {\n items: res.items,\n total: res.total,\n };\n } catch (e) {\n throw e;\n }\n },\n pageSize: 100,\n });\n },\n columns: [\n {\n name: 'id',\n title: 'ID',\n datatype: 'uuid',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'title',\n //TODO translate\n title: `Title`,\n datatype: 'string',\n type: AXPWidgetsCatalog.text,\n },\n {\n name: 'body',\n title: `Body`,\n datatype: 'string',\n type: AXPWidgetsCatalog.number,\n },\n ],\n filters: [\n {\n field: 'title',\n title: 'Title',\n operator: {\n type: 'equal',\n },\n widget: {\n type: AXPWidgetsCatalog.text,\n },\n filterType: {\n advance: true,\n inline: true,\n },\n } as AXPFilterDefinition,\n ],\n textField: {\n name: 'title',\n title: 'Title',\n },\n valueField: {\n name: 'id',\n title: 'ID',\n },\n },\n ]);\n }\n} ","//#region ---- Imports ----\n\nimport { AXPEntity, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\n\nimport { RootConfig } from '../../const';\n\n//#endregion\n\nexport async function textTemplateEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n plugins: [\n { name: 'history' },\n { name: 'lock' },\n { name: 'compare' },\n { name: 'category' },\n { name: 'archive' },\n { name: 'unique-fields', options: { fields: 'name', scope: 'global' } },\n ],\n module: RootConfig.module.name,\n name: RootConfig.entities.textTemplate.name,\n title: RootConfig.entities.textTemplate.title,\n icon: RootConfig.entities.textTemplate.icon,\n formats: {\n individual: RootConfig.entities.textTemplate.title,\n plural: RootConfig.entities.textTemplate.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n {\n id: 'template-content',\n title: `@${i18n}:templates.entities.text-template.groups.template-content`,\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder: '@content-management:templates.entities.text-template.fields.name.placeholder',\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n sort: { enabled: true },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder: '@content-management:templates.entities.text-template.fields.title.placeholder',\n multiLanguage: true,\n },\n },\n },\n validations: [\n { rule: 'required' },\n { rule: 'minLength', options: { value: 3 } },\n { rule: 'maxLength', options: { value: 100 } },\n ],\n },\n {\n name: 'channels',\n title: '@content-management:templates.entities.text-template.fields.channels.title',\n groupId: 'template-content',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsList.Editors.TemplateContentEditor,\n },\n },\n validations: [{ rule: 'required' }],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n interfaces: {\n master: {\n create: {\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n },\n update: {\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n },\n single: {\n title: '{{ title }}',\n sections: [\n { id: 'basic-info' },\n { id: 'template-content' },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'channels', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n title: RootConfig.entities.textTemplate.titlePlural,\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [\n { name: 'name', dir: 'asc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import type { AXPCategoryListItem, AXPMultiLanguageString } from '@acorex/platform/core';\nimport { AXPEntityModel } from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\n/** Stored value: { email: { subject?, body }, sms: { body }, ... } */\nexport interface AXMTextTemplateChannelsValue {\n [channelName: string]: {\n subject?: AXPMultiLanguageString;\n body: AXPMultiLanguageString;\n };\n}\n\nexport interface AXMTextTemplateEntityModel extends AXPEntityModel<string> {\n name?: string;\n title?: AXPMultiLanguageString;\n channels?: AXMTextTemplateChannelsValue;\n categoryIds?: string[];\n categories?: AXPCategoryListItem[];\n}\n\n//#endregion\n","// Entity Services\nexport * from './promotion';\nexport * from './text-template';\n\n// Entity Modules\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
2
2
|
import { inject } from '@angular/core';
|
|
3
|
-
import { A as AXMPermissionsKeys, R as RootConfig } from './acorex-modules-content-management-acorex-modules-content-management-
|
|
3
|
+
import { A as AXMPermissionsKeys, R as RootConfig } from './acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs';
|
|
4
4
|
|
|
5
5
|
class AXMPermissionDefinitionProvider {
|
|
6
6
|
constructor() {
|
|
@@ -27,4 +27,4 @@ class AXMPermissionDefinitionProvider {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export { AXMPermissionDefinitionProvider };
|
|
30
|
-
//# sourceMappingURL=acorex-modules-content-management-permission-definition.provider-
|
|
30
|
+
//# sourceMappingURL=acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-content-management-permission-definition.provider-
|
|
1
|
+
{"version":3,"file":"acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs","sources":["../../../../libs/modules/content-management/src/lib/permission-definition.provider.ts"],"sourcesContent":["import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\nimport { inject } from '@angular/core';\nimport { AXMPermissionsKeys } from './contracts/permission.keys';\nimport { RootConfig } from './const';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n private readonly translateService = inject(AXTranslationService);\n\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const trans = async (key: string) => await this.translateService.translateAsync(`@content-management:permissions.${key}`);\n\n const keys = AXMPermissionsKeys.ContentManagement;\n\n context.addGroup(RootConfig.module.name, await trans('manage.title'), await trans('manage.description'))\n .addPermission(keys.Promotion.Management, await trans('promotion.manage.title'), await trans('promotion.manage.description'))\n .addChild(keys.Promotion.View, await trans('promotion.view.title'), await trans('promotion.view.description'))\n .addChild(keys.Promotion.Create, await trans('promotion.create.title'), await trans('promotion.create.description'))\n .addChild(keys.Promotion.Edit, await trans('promotion.edit.title'), await trans('promotion.edit.description'))\n .addChild(keys.Promotion.Delete, await trans('promotion.delete.title'), await trans('promotion.delete.description'))\n .endPermission()\n .addPermission(keys.TextTemplate.Management, await trans('text-template.manage.title'), await trans('text-template.manage.description'))\n .addChild(keys.TextTemplate.View, await trans('text-template.view.title'), await trans('text-template.view.description'))\n .addChild(keys.TextTemplate.Create, await trans('text-template.create.title'), await trans('text-template.create.description'))\n .addChild(keys.TextTemplate.Edit, await trans('text-template.edit.title'), await trans('text-template.edit.description'))\n .addChild(keys.TextTemplate.Delete, await trans('text-template.delete.title'), await trans('text-template.delete.description'))\n .endPermission()\n .endGroup();\n }\n}\n"],"names":[],"mappings":";;;;MAMa,+BAA+B,CAAA;AAA5C,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAsBlE;IApBE,MAAM,MAAM,CAAC,OAA+C,EAAA;AAC1D,QAAA,MAAM,KAAK,GAAG,OAAO,GAAW,KAAK,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,mCAAmC,GAAG,CAAA,CAAE,CAAC;AAEzH,QAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,iBAAiB;QAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,cAAc,CAAC,EAAE,MAAM,KAAK,CAAC,oBAAoB,CAAC;AACpG,aAAA,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC;AAC3H,aAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC;AAC5G,aAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC;AAClH,aAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,sBAAsB,CAAC,EAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC;AAC5G,aAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC;AAClH,aAAA,aAAa;AACb,aAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC,EAAE,MAAM,KAAK,CAAC,kCAAkC,CAAC;AACtI,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,MAAM,KAAK,CAAC,gCAAgC,CAAC;AACvH,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC,EAAE,MAAM,KAAK,CAAC,kCAAkC,CAAC;AAC7H,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,0BAA0B,CAAC,EAAE,MAAM,KAAK,CAAC,gCAAgC,CAAC;AACvH,aAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC,EAAE,MAAM,KAAK,CAAC,kCAAkC,CAAC;AAC7H,aAAA,aAAa;AACb,aAAA,QAAQ,EAAE;IACf;AACD;;;;"}
|