@acorex/modules 21.0.0-next.59 → 21.0.0-next.63
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/assessment-management/README.md +4 -4
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-o8aFazwA.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs} +3608 -367
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-yrc_Yybq.mjs → acorex-modules-assessment-management-assessment-case.entity-B6C2PRZw.mjs} +43 -28
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-B6C2PRZw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-BUQa_TSY.mjs → acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-BUQa_TSY.mjs.map → acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-Cwf30iuu.mjs → acorex-modules-assessment-management-assessment-session.entity-DquzZNaQ.mjs} +19 -3
- package/fesm2022/acorex-modules-assessment-management-assessment-session.entity-DquzZNaQ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-CJieLR5g.mjs → acorex-modules-assessment-management-fill-assessment-session.command-CRE8SxzC.mjs} +2 -2
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-CRE8SxzC.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-D0-FB1HH.mjs → acorex-modules-assessment-management-preview-question.command-Ce7yOnJY.mjs} +2 -2
- package/fesm2022/acorex-modules-assessment-management-preview-question.command-Ce7yOnJY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-wqPNgv7q.mjs → acorex-modules-assessment-management-preview-questionnaire.command-S-8MDeB7.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-wqPNgv7q.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-S-8MDeB7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DYyUhSWd.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-wdHMGBxi.mjs} +2 -2
- package/fesm2022/acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-wdHMGBxi.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-DUf2ceKY.mjs → acorex-modules-assessment-management-question-bank-item.entity-1Pm9O0kv.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-DUf2ceKY.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-1Pm9O0kv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cy5ElBmU.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Dwx0y7WY.mjs} +9 -121
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-Dwx0y7WY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-RWSkzNbA.mjs → acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs} +12 -36
- package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-view-case-last-session-answers.command-NTuDdoYk.mjs → acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-case-last-session-answers.command-NTuDdoYk.mjs.map → acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-0btGV66_.mjs → acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-0btGV66_.mjs.map → acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs +239 -0
- package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs.map +1 -0
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +1 -0
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-assessment-management.d.ts +383 -271
- package/types/acorex-modules-common.d.ts +1 -0
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-o8aFazwA.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-yrc_Yybq.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-assessment-session.entity-Cwf30iuu.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-CJieLR5g.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-index-D8KjfHAH.mjs +0 -1509
- package/fesm2022/acorex-modules-assessment-management-index-D8KjfHAH.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-preview-question.command-D0-FB1HH.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DYyUhSWd.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-calculation.entity-CYF0k42_.mjs +0 -236
- package/fesm2022/acorex-modules-assessment-management-questionnaire-calculation.entity-CYF0k42_.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cy5ElBmU.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-RWSkzNbA.mjs.map +0 -1
- package/fesm2022/acorex-modules-assessment-management-save-questionnaire-questions.command-koGmUbNE.mjs +0 -61
- package/fesm2022/acorex-modules-assessment-management-save-questionnaire-questions.command-koGmUbNE.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-assessment-management-questionnaire.entity-BI_jc4C6.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/entities/questionnaire/questionnaire.entity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport {\n AXPEntity,\n AXPEntityAction,\n AXPEntityCommandScope,\n createAllQueryView,\n createQueryView,\n} from '@acorex/platform/common';\nimport {\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex/platform/layout/entity';\nimport { QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY } from '../../features/questionnaire-builder/questions/pages/questionnaire-questions-page';\nimport { QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY } from '../../features/questionnaire-builder/outcomes/pages/questionnaire-outcomes-page';\nimport { RootConfig } from '../../const';\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\nexport async function factory(): Promise<AXPEntity | null> {\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.questionnaire.name,\n title: RootConfig.entities.questionnaire.title,\n icon: RootConfig.entities.questionnaire.icon,\n plugins: [\n { name: 'history' },\n { name: 'category' },\n { name: 'lock' },\n { name: 'archive' },\n { name: 'clone' },\n {\n name: 'automation',\n options: {\n title: '@assessment-management:questionnaires.entities.questionnaire.related-entities.automations.title',\n layoutType: 'page-list',\n position: 'after',\n order: 2,\n icon: 'fa-light fa-bolt',\n },\n },\n ],\n formats: {\n individual: RootConfig.entities.questionnaire.title,\n plural: RootConfig.entities.questionnaire.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: '{{ type }}',\n },\n },\n pages: [\n {\n componentKey: QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY,\n field: 'questions',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.questions.title',\n icon: 'fa-light fa-list-check',\n layout: { order: 1, position: 'after' },\n },\n {\n componentKey: QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY,\n field: 'outcomes',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.outcomes.title',\n icon: 'fa-light fa-calculator',\n layout: { order: 2, position: 'after' },\n },\n ],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'questions', title: '@assessment-management:questionnaires.entities.questionnaire.groups.questions' },\n {\n id: 'pre-questionnaire',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.pre-questionnaire',\n },\n {\n id: 'post-questionnaire',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.post-questionnaire',\n },\n {\n id: 'display',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.display',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'title',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.title.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: { placeholder: 'Questionnaire title...' },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'type',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.type.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n defaultValue: 'questionnaire',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'id',\n dataSource: [\n {\n id: 'questionnaire',\n title:\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.questionnaire',\n },\n {\n id: 'survey',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.survey',\n },\n {\n id: 'checklist',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.checklist',\n },\n {\n id: 'test',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.test',\n },\n {\n id: 'evaluation',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.evaluation',\n },\n ],\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'description',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.description.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: { rows: 3 },\n },\n },\n },\n\n {\n name: 'pre',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.pre-questionnaire',\n groupId: 'pre-questionnaire',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'object',\n nullable: true,\n defaultValue: { enabled: false },\n interface: {\n type: AXPWidgetsList.Layouts.GridLayout,\n mode: 'edit',\n options: {\n grid: {\n default: {\n columns: 12,\n gap: '1rem',\n },\n },\n },\n children: [\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 12 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.entities.questionnaire.fields.pre-enabled.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'pre.enabled',\n mode: 'edit',\n options: {\n description:\n '@assessment-management:questionnaires.entities.questionnaire.fields.pre-enabled.description',\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: {\n colSpan: 12,\n visible: `{{ context.eval('pre.enabled') === true }}`,\n },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.entities.questionnaire.fields.pre-content.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.RichText,\n path: 'pre.content',\n mode: 'edit',\n options: {\n placeholder:\n '@assessment-management:questionnaires.entities.questionnaire.fields.pre-content.placeholder',\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n },\n {\n name: 'post',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.post-questionnaire',\n groupId: 'post-questionnaire',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'object',\n nullable: true,\n defaultValue: { reviewEnabled: false, summaryEnabled: false, showOutcomeResults: false },\n interface: {\n type: AXPWidgetsList.Layouts.GridLayout,\n mode: 'edit',\n options: {\n grid: {\n default: {\n columns: 12,\n gap: '1rem',\n },\n },\n },\n children: [\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-review-enabled.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'post.reviewEnabled',\n mode: 'edit',\n options: {\n description:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-review-enabled.description',\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-summary-enabled.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'post.summaryEnabled',\n mode: 'edit',\n options: {\n description:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-summary-enabled.description',\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-show-outcome-results.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'post.showOutcomeResults',\n mode: 'edit',\n options: {\n description:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-show-outcome-results.description',\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: {\n colSpan: 12,\n visible: `{{ context.eval('post.summaryEnabled') === true }}`,\n },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-summary-content.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.RichText,\n path: 'post.summaryContent',\n mode: 'edit',\n options: {\n placeholder:\n '@assessment-management:questionnaires.entities.questionnaire.fields.post-summary-content.placeholder',\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n },\n {\n name: 'display',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.display',\n groupId: 'display',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: false }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'object',\n nullable: true,\n defaultValue: {\n viewMode: 'single-page',\n showProgressBar: true,\n showTimer: false,\n showQuestionNumbers: true,\n validationStrategy: 'step',\n completionMode: 'submit-only',\n },\n interface: {\n type: AXPWidgetsList.Layouts.GridLayout,\n mode: 'edit',\n options: {\n grid: {\n default: {\n columns: 12,\n gap: '1rem',\n },\n },\n },\n children: [\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 6 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.SelectBox,\n path: 'display.viewMode',\n mode: 'edit',\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'single-page',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.single-page',\n },\n {\n id: 'page-per-group',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.page-per-group',\n },\n {\n id: 'page-per-question',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.page-per-question',\n },\n {\n id: 'side-menu',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.side-menu',\n },\n ],\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 6 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.validation-strategy.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.SelectBox,\n path: 'display.validationStrategy',\n mode: 'edit',\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'step',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.validation-strategy.options.step',\n },\n {\n id: 'end',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.validation-strategy.options.end',\n },\n ],\n },\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-progress-bar.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'display.showProgressBar',\n mode: 'edit',\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-timer.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'display.showTimer',\n mode: 'edit',\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 4 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-question-numbers.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'display.showQuestionNumbers',\n mode: 'edit',\n },\n ],\n },\n ],\n },\n {\n type: AXPWidgetsList.Layouts.GridItemLayout,\n mode: 'edit',\n options: { colSpan: 6 },\n children: [\n {\n type: AXPWidgetsList.Layouts.FormField,\n mode: 'edit',\n options: {\n label:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.completion-mode.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.SelectBox,\n path: 'display.completionMode',\n mode: 'edit',\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'submit-only',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.completion-mode.options.submit-only',\n },\n {\n id: 'save-and-continue',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.completion-mode.options.save-and-continue',\n },\n ],\n },\n },\n ],\n },\n ],\n },\n ],\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'description' }, { name: 'type' }],\n\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info', order: 1, layout: { positions: { lg: { colSpan: 12 } } } }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n },\n update: {\n sections: [\n { id: 'basic-info', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'pre-questionnaire', order: 2, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'post-questionnaire', order: 3, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'display', order: 4, layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n { name: 'pre', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n { name: 'post', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'display', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n { id: 'basic-info', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'pre-questionnaire', order: 2, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'post-questionnaire', order: 3, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'display', order: 4, layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n { name: 'pre', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 4 } } } },\n { name: 'post', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'display', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n actions: [\n ...entityMasterRecordActions(),\n {\n title: '@assessment-management:questionnaires.entities.questionnaire.actions.preview.title',\n command: {\n name: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,\n options: {\n questionnaireId: '{{ context.eval(\"id\") }}',\n questionnaireTitle: '{{ context.eval(\"title\") }}',\n },\n },\n priority: 'primary',\n type: 'action',\n icon: 'fa-light fa-eye',\n scope: AXPEntityCommandScope.Individual,\n } as AXPEntityAction,\n ],\n },\n list: {\n actions: [\n ...entityMasterCrudActions(),\n {\n title: '@assessment-management:questionnaires.entities.questionnaire.actions.preview.title',\n command: {\n name: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,\n options: {\n questionnaireId: '{{ context.eval(\"id\") }}',\n questionnaireTitle: '{{ context.eval(\"title\") }}',\n },\n },\n priority: 'primary',\n type: 'action',\n icon: 'fa-light fa-eye',\n scope: AXPEntityCommandScope.Individual,\n } as AXPEntityAction,\n ],\n views: [\n createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] }),\n createQueryView(\n 'questionnaire',\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.questionnaire',\n true,\n {\n conditions: [{ name: 'type', operator: { type: 'equal' }, value: 'questionnaire' }],\n },\n ),\n createQueryView(\n 'survey',\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.survey',\n true,\n {\n conditions: [{ name: 'type', operator: { type: 'equal' }, value: 'survey' }],\n },\n ),\n createQueryView(\n 'checklist',\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.checklist',\n true,\n {\n conditions: [{ name: 'type', operator: { type: 'equal' }, value: 'checklist' }],\n },\n ),\n createQueryView(\n 'test',\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.test',\n true,\n {\n conditions: [{ name: 'type', operator: { type: 'equal' }, value: 'test' }],\n },\n ),\n createQueryView(\n 'evaluation',\n '@assessment-management:questionnaires.entities.questionnaire.fields.type.options.evaluation',\n true,\n {\n conditions: [{ name: 'type', operator: { type: 'equal' }, value: 'evaluation' }],\n },\n ),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
5
5
|
import { isString, isEmpty, toString, get, first, defaultTo } from 'lodash-es';
|
|
6
|
-
import { A as AXMQuestionnaireViewerService, R as RootConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-
|
|
7
|
-
import { o as openAssessmentSessionAnswersView } from './acorex-modules-assessment-management-assessment-session-answers-view.util-
|
|
6
|
+
import { A as AXMQuestionnaireViewerService, R as RootConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
|
|
7
|
+
import { o as openAssessmentSessionAnswersView } from './acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs';
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region ---- View Case Last Session Answers Command ----
|
|
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
154
154
|
}] });
|
|
155
155
|
|
|
156
156
|
export { ViewCaseLastSessionAnswersCommand };
|
|
157
|
-
//# sourceMappingURL=acorex-modules-assessment-management-view-case-last-session-answers.command-
|
|
157
|
+
//# sourceMappingURL=acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-assessment-management-view-case-last-session-answers.command-NTuDdoYk.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/commands/view-case-last-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 } from '../utils/assessment-session-answers-view.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for ViewCaseLastSessionAnswers command.\n */\nexport interface ViewCaseLastSessionAnswersCommandInput {\n /** Assessment Case ID to resolve the latest session for. */\n caseId: string;\n}\n\n/** Entity list passes evaluated action options on `__context__.options` / row `data`. */\ntype ViewCaseLastSessionAnswersCommandInvocation = ViewCaseLastSessionAnswersCommandInput & {\n options?: Partial<ViewCaseLastSessionAnswersCommandInput>;\n __context__?: {\n options?: Partial<ViewCaseLastSessionAnswersCommandInput>;\n data?: Record<string, unknown>;\n };\n};\n\n//#endregion\n\n//#region ---- View Case Last Session Answers Command ----\n\n/**\n * Opens a readonly view of the most recent assessment session answers for a case.\n */\n@Injectable()\nexport class ViewCaseLastSessionAnswersCommand implements AXPCommand<ViewCaseLastSessionAnswersCommandInput, 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 case id from root input, action options, or list row data.\n */\n private resolveCaseId(input: ViewCaseLastSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'caseId'),\n get(input, 'options.caseId'),\n get(input, '__context__.options.caseId'),\n get(input, '__context__.data.id'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n return 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: ViewCaseLastSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const caseId = this.resolveCaseId(input);\n if (!caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment case ID is required',\n },\n };\n }\n\n const 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 const 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 await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\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 last session answers: ${message}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-assessment-management-view-case-last-session-answers.command-Ds-QGMPy.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/commands/view-case-last-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 } from '../utils/assessment-session-answers-view.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for ViewCaseLastSessionAnswers command.\n */\nexport interface ViewCaseLastSessionAnswersCommandInput {\n /** Assessment Case ID to resolve the latest session for. */\n caseId: string;\n}\n\n/** Entity list passes evaluated action options on `__context__.options` / row `data`. */\ntype ViewCaseLastSessionAnswersCommandInvocation = ViewCaseLastSessionAnswersCommandInput & {\n options?: Partial<ViewCaseLastSessionAnswersCommandInput>;\n __context__?: {\n options?: Partial<ViewCaseLastSessionAnswersCommandInput>;\n data?: Record<string, unknown>;\n };\n};\n\n//#endregion\n\n//#region ---- View Case Last Session Answers Command ----\n\n/**\n * Opens a readonly view of the most recent assessment session answers for a case.\n */\n@Injectable()\nexport class ViewCaseLastSessionAnswersCommand implements AXPCommand<ViewCaseLastSessionAnswersCommandInput, 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 case id from root input, action options, or list row data.\n */\n private resolveCaseId(input: ViewCaseLastSessionAnswersCommandInvocation): string | null {\n const candidates = [\n get(input, 'caseId'),\n get(input, 'options.caseId'),\n get(input, '__context__.options.caseId'),\n get(input, '__context__.data.id'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n return 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: ViewCaseLastSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const caseId = this.resolveCaseId(input);\n if (!caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment case ID is required',\n },\n };\n }\n\n const 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 const 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 await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\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 last session answers: ${message}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
5
5
|
import { isString, isEmpty, toString, get, defaultTo, first } from 'lodash-es';
|
|
6
|
-
import { A as AXMQuestionnaireViewerService, R as RootConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-
|
|
7
|
-
import { o as openAssessmentSessionAnswersView } from './acorex-modules-assessment-management-assessment-session-answers-view.util-
|
|
6
|
+
import { A as AXMQuestionnaireViewerService, R as RootConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
|
|
7
|
+
import { o as openAssessmentSessionAnswersView } from './acorex-modules-assessment-management-assessment-session-answers-view.util-BRdwcIvw.mjs';
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region ---- View Session Answers Command ----
|
|
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
169
169
|
}] });
|
|
170
170
|
|
|
171
171
|
export { ViewSessionAnswersCommand };
|
|
172
|
-
//# sourceMappingURL=acorex-modules-assessment-management-view-session-answers.command-
|
|
172
|
+
//# sourceMappingURL=acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-assessment-management-view-session-answers.command-0btGV66_.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 } 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 Session ID to view answers for.\n */\n sessionId: string;\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 get(input, '__context__.data.id'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n return null;\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 async execute(input: ViewSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const sessionId = this.resolveSessionId(input);\n if (!sessionId) {\n return {\n success: false,\n message: {\n text: 'Assessment session ID is required',\n },\n };\n }\n\n const 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 caseId = this.asNonEmptyString(get(session, 'caseId'));\n if (!caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment session is missing caseId',\n },\n };\n }\n\n const 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 await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\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
|
+
{"version":3,"file":"acorex-modules-assessment-management-view-session-answers.command-COTVoRRG.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 } 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 Session ID to view answers for.\n */\n sessionId: string;\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 get(input, '__context__.data.id'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n return null;\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 async execute(input: ViewSessionAnswersCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const sessionId = this.resolveSessionId(input);\n if (!sessionId) {\n return {\n success: false,\n message: {\n text: 'Assessment session ID is required',\n },\n };\n }\n\n const 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 caseId = this.asNonEmptyString(get(session, 'caseId'));\n if (!caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment session is missing caseId',\n },\n };\n }\n\n const 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 await openAssessmentSessionAnswersView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n },\n session,\n assessmentCase,\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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"}
|
package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
2
|
+
import { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
|
|
3
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, Injectable } from '@angular/core';
|
|
6
|
+
import { defaultTo, get, isEmpty, isString, toString, first } from 'lodash-es';
|
|
7
|
+
import { m as mapToOutcomeResultsViewModel, A as AXMQuestionnaireViewerService, R as RootConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
|
|
8
|
+
|
|
9
|
+
//#region ---- Imports ----
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region ---- Viewer ----
|
|
12
|
+
/**
|
|
13
|
+
* Opens a dialog that shows stored session outcome snapshots (no re-evaluation).
|
|
14
|
+
*/
|
|
15
|
+
async function openAssessmentSessionOutcomesView(deps, session, assessmentCase) {
|
|
16
|
+
const questionnaireId = assessmentCase.questionnaireId;
|
|
17
|
+
if (!questionnaireId) {
|
|
18
|
+
throw new Error('Assessment case is missing questionnaireId');
|
|
19
|
+
}
|
|
20
|
+
const storedOutcomes = defaultTo(get(session, 'outcomes'), {});
|
|
21
|
+
if (isEmpty(storedOutcomes)) {
|
|
22
|
+
throw new Error('Assessment session has no stored outcome results');
|
|
23
|
+
}
|
|
24
|
+
const snapshot = await deps.questionnaireViewerService.buildOutcomeResultsFromStoredValues(storedOutcomes, {
|
|
25
|
+
questionnaireId,
|
|
26
|
+
});
|
|
27
|
+
const locale = deps.translationService.getActiveLang?.() ?? 'en-US';
|
|
28
|
+
const sectionTitle = await deps.translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.flow.outcomes-section-title');
|
|
29
|
+
const emptyMessage = await deps.translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.flow.no-outcomes');
|
|
30
|
+
const viewModel = {
|
|
31
|
+
...mapToOutcomeResultsViewModel(snapshot, { locale }),
|
|
32
|
+
title: sectionTitle,
|
|
33
|
+
emptyMessage,
|
|
34
|
+
};
|
|
35
|
+
const viewTitleKey = '@assessment-management:sessions.actions.view-outcomes.title';
|
|
36
|
+
const viewTitleBase = (await deps.translationService.translateAsync(viewTitleKey)) || 'View outcome results';
|
|
37
|
+
const responderName = defaultTo(get(session, 'responder.displayName'), get(session, 'responderId'));
|
|
38
|
+
const viewTitle = !isEmpty(responderName) ? `${viewTitleBase}: ${responderName}` : viewTitleBase;
|
|
39
|
+
const dialogRef = await deps.layoutBuilder
|
|
40
|
+
.create()
|
|
41
|
+
.dialog((dialog) => {
|
|
42
|
+
dialog
|
|
43
|
+
.setTitle(viewTitle)
|
|
44
|
+
.setSize('lg')
|
|
45
|
+
.content((content) => {
|
|
46
|
+
content.customWidget('outcome-results-viewer', (widget) => {
|
|
47
|
+
widget.path('outcomeResults');
|
|
48
|
+
});
|
|
49
|
+
})
|
|
50
|
+
.setContext({
|
|
51
|
+
outcomeResults: viewModel,
|
|
52
|
+
})
|
|
53
|
+
.setActions((actions) => {
|
|
54
|
+
actions.cancel('@general:actions.close.title');
|
|
55
|
+
});
|
|
56
|
+
})
|
|
57
|
+
.show();
|
|
58
|
+
if (dialogRef.action() === 'cancel') {
|
|
59
|
+
dialogRef.close();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
|
|
64
|
+
//#region ---- Imports ----
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region ---- View Session Outcomes Command ----
|
|
67
|
+
/**
|
|
68
|
+
* Command that opens a dialog showing stored outcome snapshots for an assessment session.
|
|
69
|
+
*/
|
|
70
|
+
class ViewSessionOutcomesCommand {
|
|
71
|
+
constructor() {
|
|
72
|
+
//#region ---- Services & Dependencies ----
|
|
73
|
+
this.entityService = inject(AXPEntityService);
|
|
74
|
+
this.questionnaireViewerService = inject(AXMQuestionnaireViewerService);
|
|
75
|
+
this.translationService = inject(AXTranslationService);
|
|
76
|
+
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region ---- Command Implementation ----
|
|
80
|
+
/**
|
|
81
|
+
* Returns a non-empty string or undefined.
|
|
82
|
+
*/
|
|
83
|
+
asNonEmptyString(value) {
|
|
84
|
+
if (isString(value) && !isEmpty(value)) {
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
if (value != null && !isString(value)) {
|
|
88
|
+
const normalized = toString(value).trim();
|
|
89
|
+
return isEmpty(normalized) ? undefined : normalized;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolves session id from root input, action options, or related-list row data.
|
|
95
|
+
*/
|
|
96
|
+
resolveSessionId(input) {
|
|
97
|
+
const candidates = [
|
|
98
|
+
get(input, 'sessionId'),
|
|
99
|
+
get(input, 'options.sessionId'),
|
|
100
|
+
get(input, '__context__.options.sessionId'),
|
|
101
|
+
get(input, '__context__.data.id'),
|
|
102
|
+
];
|
|
103
|
+
for (const candidate of candidates) {
|
|
104
|
+
const resolved = this.asNonEmptyString(candidate);
|
|
105
|
+
if (resolved) {
|
|
106
|
+
return resolved;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Loads session from related-list row data, list query, or byKey (in that order).
|
|
113
|
+
*/
|
|
114
|
+
async loadSession(sessionId, input) {
|
|
115
|
+
const row = get(input, '__context__.data');
|
|
116
|
+
const rowCaseId = this.asNonEmptyString(get(row, 'caseId'));
|
|
117
|
+
if (row && rowCaseId) {
|
|
118
|
+
return {
|
|
119
|
+
...row,
|
|
120
|
+
id: sessionId,
|
|
121
|
+
outcomes: defaultTo(get(row, 'outcomes'), {}),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const sessionAccessor = this.entityService
|
|
125
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)
|
|
126
|
+
.data();
|
|
127
|
+
const listMatch = await sessionAccessor.query({
|
|
128
|
+
skip: 0,
|
|
129
|
+
take: 1,
|
|
130
|
+
filter: {
|
|
131
|
+
field: 'id',
|
|
132
|
+
operator: { type: 'equal' },
|
|
133
|
+
value: sessionId,
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
const fromQuery = first(listMatch.items);
|
|
137
|
+
if (fromQuery) {
|
|
138
|
+
return fromQuery;
|
|
139
|
+
}
|
|
140
|
+
return defaultTo(await sessionAccessor.byKey(sessionId), null);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Loads case by id using query first, then byKey.
|
|
144
|
+
*/
|
|
145
|
+
async loadCase(caseId) {
|
|
146
|
+
const caseAccessor = this.entityService
|
|
147
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.assessmentCase.name)
|
|
148
|
+
.data();
|
|
149
|
+
const listMatch = await caseAccessor.query({
|
|
150
|
+
skip: 0,
|
|
151
|
+
take: 1,
|
|
152
|
+
filter: {
|
|
153
|
+
field: 'id',
|
|
154
|
+
operator: { type: 'equal' },
|
|
155
|
+
value: caseId,
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
const fromQuery = first(listMatch.items);
|
|
159
|
+
if (fromQuery) {
|
|
160
|
+
return fromQuery;
|
|
161
|
+
}
|
|
162
|
+
return defaultTo(await caseAccessor.byKey(caseId), null);
|
|
163
|
+
}
|
|
164
|
+
async execute(input) {
|
|
165
|
+
try {
|
|
166
|
+
const sessionId = this.resolveSessionId(input);
|
|
167
|
+
if (!sessionId) {
|
|
168
|
+
return {
|
|
169
|
+
success: false,
|
|
170
|
+
message: {
|
|
171
|
+
text: 'Assessment session ID is required',
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
const session = await this.loadSession(sessionId, input);
|
|
176
|
+
if (!session) {
|
|
177
|
+
return {
|
|
178
|
+
success: false,
|
|
179
|
+
message: {
|
|
180
|
+
text: `Assessment session with ID ${sessionId} not found`,
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
const storedOutcomes = get(session, 'outcomes');
|
|
185
|
+
if (isEmpty(storedOutcomes)) {
|
|
186
|
+
return {
|
|
187
|
+
success: false,
|
|
188
|
+
message: {
|
|
189
|
+
text: await this.translationService.translateAsync('@assessment-management:sessions.actions.view-outcomes.empty'),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
const caseId = this.asNonEmptyString(get(session, 'caseId'));
|
|
194
|
+
if (!caseId) {
|
|
195
|
+
return {
|
|
196
|
+
success: false,
|
|
197
|
+
message: {
|
|
198
|
+
text: 'Assessment session is missing caseId',
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
const assessmentCase = await this.loadCase(caseId);
|
|
203
|
+
if (!assessmentCase) {
|
|
204
|
+
return {
|
|
205
|
+
success: false,
|
|
206
|
+
message: {
|
|
207
|
+
text: `Assessment case with ID ${caseId} not found`,
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
await openAssessmentSessionOutcomesView({
|
|
212
|
+
entityService: this.entityService,
|
|
213
|
+
questionnaireViewerService: this.questionnaireViewerService,
|
|
214
|
+
translationService: this.translationService,
|
|
215
|
+
layoutBuilder: this.layoutBuilder,
|
|
216
|
+
}, session, assessmentCase);
|
|
217
|
+
return {
|
|
218
|
+
success: true,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
225
|
+
message: {
|
|
226
|
+
text: `Error viewing session outcomes: ${message}`,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ViewSessionOutcomesCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
232
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ViewSessionOutcomesCommand }); }
|
|
233
|
+
}
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ViewSessionOutcomesCommand, decorators: [{
|
|
235
|
+
type: Injectable
|
|
236
|
+
}] });
|
|
237
|
+
|
|
238
|
+
export { ViewSessionOutcomesCommand };
|
|
239
|
+
//# sourceMappingURL=acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs.map
|
package/fesm2022/acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-assessment-management-view-session-outcomes.command-2buH7ydV.mjs","sources":["../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/utils/assessment-session-outcomes-view.util.ts","../../../../libs/modules/assessment-management/src/lib/features/questionnaire-viewer/commands/view-session-outcomes.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport type { AXPOutcomeResultsViewModel } from '@acorex/platform/layout/components';\nimport { AXPLayoutBuilderService, type IWidgetBuilder } from '@acorex/platform/layout/builder';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { defaultTo, get, isEmpty } from 'lodash-es';\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 { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport { mapToOutcomeResultsViewModel } from './outcome-results-view.mapper';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface OpenAssessmentSessionOutcomesViewDeps {\n entityService: AXPEntityService;\n questionnaireViewerService: AXMQuestionnaireViewerService;\n translationService: AXTranslationService;\n layoutBuilder: AXPLayoutBuilderService;\n}\n\n//#endregion\n\n//#region ---- Viewer ----\n\n/**\n * Opens a dialog that shows stored session outcome snapshots (no re-evaluation).\n */\nexport async function openAssessmentSessionOutcomesView(\n deps: OpenAssessmentSessionOutcomesViewDeps,\n session: AXMAssessmentManagementAssessmentSessionEntityModel,\n assessmentCase: AXMAssessmentManagementAssessmentCaseEntityModel,\n): Promise<void> {\n const questionnaireId = assessmentCase.questionnaireId;\n if (!questionnaireId) {\n throw new Error('Assessment case is missing questionnaireId');\n }\n\n const storedOutcomes = defaultTo(get(session, 'outcomes') as Record<string, unknown> | undefined, {});\n if (isEmpty(storedOutcomes)) {\n throw new Error('Assessment session has no stored outcome results');\n }\n\n const snapshot = await deps.questionnaireViewerService.buildOutcomeResultsFromStoredValues(storedOutcomes, {\n questionnaireId,\n });\n\n const locale = deps.translationService.getActiveLang?.() ?? 'en-US';\n const sectionTitle = await deps.translationService.translateAsync(\n '@assessment-management:questionnaires.components.questionnaire-viewer.flow.outcomes-section-title',\n );\n const emptyMessage = await deps.translationService.translateAsync(\n '@assessment-management:questionnaires.components.questionnaire-viewer.flow.no-outcomes',\n );\n\n const viewModel: AXPOutcomeResultsViewModel = {\n ...mapToOutcomeResultsViewModel(snapshot, { locale }),\n title: sectionTitle,\n emptyMessage,\n };\n\n const viewTitleKey = '@assessment-management:sessions.actions.view-outcomes.title';\n const viewTitleBase = (await deps.translationService.translateAsync(viewTitleKey)) || 'View outcome results';\n const responderName = defaultTo(get(session, 'responder.displayName'), get(session, 'responderId'));\n const viewTitle = !isEmpty(responderName) ? `${viewTitleBase}: ${responderName}` : viewTitleBase;\n\n const dialogRef = await deps.layoutBuilder\n .create()\n .dialog((dialog) => {\n dialog\n .setTitle(viewTitle)\n .setSize('lg')\n .content((content) => {\n content.customWidget('outcome-results-viewer', (widget: IWidgetBuilder) => {\n widget.path('outcomeResults');\n });\n })\n .setContext({\n outcomeResults: viewModel,\n })\n .setActions((actions) => {\n actions.cancel('@general:actions.close.title');\n });\n })\n .show();\n\n if (dialogRef.action() === 'cancel') {\n dialogRef.close();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, first, get, isEmpty, isString, toString } from 'lodash-es';\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 { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport { openAssessmentSessionOutcomesView } from '../utils/assessment-session-outcomes-view.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for ViewSessionOutcomes command.\n */\nexport interface ViewSessionOutcomesCommandInput {\n /**\n * Assessment Session ID to view stored outcome results for.\n */\n sessionId: string;\n}\n\n/** Entity list passes evaluated action options on `__context__.options` / row `data`. */\ntype ViewSessionOutcomesCommandInvocation = ViewSessionOutcomesCommandInput & {\n options?: Partial<ViewSessionOutcomesCommandInput>;\n __context__?: {\n options?: Partial<ViewSessionOutcomesCommandInput>;\n data?: Record<string, unknown>;\n };\n};\n\n//#endregion\n\n//#region ---- View Session Outcomes Command ----\n\n/**\n * Command that opens a dialog showing stored outcome snapshots for an assessment session.\n */\n@Injectable()\nexport class ViewSessionOutcomesCommand implements AXPCommand<ViewSessionOutcomesCommandInput, 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 private readonly layoutBuilder = inject(AXPLayoutBuilderService);\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: ViewSessionOutcomesCommandInvocation): string | null {\n const candidates = [\n get(input, 'sessionId'),\n get(input, 'options.sessionId'),\n get(input, '__context__.options.sessionId'),\n get(input, '__context__.data.id'),\n ];\n\n for (const candidate of candidates) {\n const resolved = this.asNonEmptyString(candidate);\n if (resolved) {\n return resolved;\n }\n }\n\n return null;\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: ViewSessionOutcomesCommandInvocation,\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 outcomes: defaultTo(get(row, 'outcomes') 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 async execute(input: ViewSessionOutcomesCommandInvocation): Promise<AXPExecuteCommandResult<void>> {\n try {\n const sessionId = this.resolveSessionId(input);\n if (!sessionId) {\n return {\n success: false,\n message: {\n text: 'Assessment session ID is required',\n },\n };\n }\n\n const 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 storedOutcomes = get(session, 'outcomes') as Record<string, unknown> | undefined;\n if (isEmpty(storedOutcomes)) {\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 const caseId = this.asNonEmptyString(get(session, 'caseId'));\n if (!caseId) {\n return {\n success: false,\n message: {\n text: 'Assessment session is missing caseId',\n },\n };\n }\n\n const 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 await openAssessmentSessionOutcomesView(\n {\n entityService: this.entityService,\n questionnaireViewerService: this.questionnaireViewerService,\n translationService: this.translationService,\n layoutBuilder: this.layoutBuilder,\n },\n session,\n assessmentCase,\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 outcomes: ${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 {
|
|
1
|
+
export { f as AXMAssessmentManagementEntityProvider, g as AXMAssessmentManagementFeatureDefinitionProvider, h as AXMAssessmentManagementFeatureKeys, i as AXMAssessmentManagementMenuProvider, j as AXMAssessmentManagementModule, k as AXMAssessmentManagementPermissionDefinitionProvider, l as AXMAssessmentManagementPermissionKeys, o as AXMAssessmentManagementSearchCommandProvider, q as AXMQuestionnaireViewerPageComponent, A as AXMQuestionnaireViewerService, u as AXMQuestionnaireViewerStandalonePageComponent, v as AXPAssessmentManagementMenuKeys, D as DEFAULT_POST_QUESTIONNAIRE_CONFIG, w as DEFAULT_PRE_QUESTIONNAIRE_CONFIG, x as DEFAULT_QUESTIONNAIRE_ENTITY_DISPLAY, y as DEFAULT_QUESTIONNAIRE_OUTCOMES, z as DEFAULT_QUESTION_COMMENT_CONFIG, B as DEFAULT_QUESTION_HINT_CONFIG, R as RootConfig, C as diffQuestionCommentOverride, E as diffQuestionHintOverride, F as findDuplicateOutcomeNames, G as flattenQuestionnaireOutcomeItems, H as getQuestionAnswerCommentStoragePath, I as isQuestionnaireOutcomeDisplayColorHex, J as matchesQuestionnaireOutcomeDisplayRule, K as mergeQuestionCommentConfig, L as mergeQuestionHintForViewer, n as normalizeCompletionMode, M as normalizeQuestionCommentConfig, N as normalizeQuestionHintConfig, O as normalizeQuestionHintFromEntityRow, P as normalizeQuestionHintMode, S as normalizeQuestionnaireOutcomeDisplayRules, T as normalizeQuestionnaireOutcomesValue, U as normalizeValidationStrategy, V as normalizeViewMode, W as parseQuestionHintPartialFromRecord, X as parseQuestionnaireOutcomeDisplayColor, Y as readHintFieldsFromRecord, r as resolveWidgetNodeFromMetaDataDefinitionInterface, s as stripQuestionBankInterfaceMetadata, e as toDisplaySettings, t as toPrePostConfig } from './acorex-modules-assessment-management-acorex-modules-assessment-management-DlhSQ0cB.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-modules-assessment-management.mjs.map
|