@acorex-platform/module-assessment-management-client 0.0.30 → 0.0.33
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-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-jljmsqNu.mjs → acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs} +37 -36
- package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-CduVfWQ-.mjs → acorex-platform-module-assessment-management-client-assessment-voice.commands-CZjFuIsF.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-CduVfWQ-.mjs.map → acorex-platform-module-assessment-management-client-assessment-voice.commands-CZjFuIsF.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-assessment-case.mjs +302 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-assessment-case.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-assessment-session.mjs +327 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-assessment-session.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-question-bank-item.mjs +531 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-question-bank-item.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs +1134 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-B8PJe3IJ.mjs +73 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-B8PJe3IJ.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-DcRzvfKO.mjs +251 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-DcRzvfKO.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-Y0FU8X-e.mjs +276 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-Y0FU8X-e.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-CT913OrX.mjs +480 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-CT913OrX.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-C4hxiPTX.mjs +1083 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-C4hxiPTX.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs +2 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-VF80DWQf.mjs → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DUo0Jy0W.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-VF80DWQf.mjs.map → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DUo0Jy0W.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-local-entities.mjs +32 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-local-entities.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-C1ODQxDn.mjs → acorex-platform-module-assessment-management-client-preview-question.command-BR3YNIEg.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-C1ODQxDn.mjs.map → acorex-platform-module-assessment-management-client-preview-question.command-BR3YNIEg.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-DBm7ve4w.mjs → acorex-platform-module-assessment-management-client-preview-questionnaire.command-D9Y57_r2.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-DBm7ve4w.mjs.map → acorex-platform-module-assessment-management-client-preview-questionnaire.command-D9Y57_r2.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-Bbl-efrl.mjs → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-BqIo3Zhp.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-Bbl-efrl.mjs.map → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-BqIo3Zhp.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-Djcfg0dv.mjs → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-EEBL0x9K.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-Djcfg0dv.mjs.map → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-EEBL0x9K.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CZ96KQ-l.mjs → acorex-platform-module-assessment-management-client-review-assessment-session.command-Bobavgnt.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CZ96KQ-l.mjs.map → acorex-platform-module-assessment-management-client-review-assessment-session.command-Bobavgnt.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-CCzJoJ4p.mjs → acorex-platform-module-assessment-management-client-view-session-answers.command-DPfg8ioy.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-CCzJoJ4p.mjs.map → acorex-platform-module-assessment-management-client-view-session-answers.command-DPfg8ioy.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client.mjs +1 -1
- package/package.json +27 -2
- package/types/acorex-platform-module-assessment-management-client-contracts-entities-assessment-case.d.ts +5 -0
- package/types/acorex-platform-module-assessment-management-client-contracts-entities-assessment-session.d.ts +5 -0
- package/types/acorex-platform-module-assessment-management-client-contracts-entities-question-bank-item.d.ts +5 -0
- package/types/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.d.ts +5 -0
- package/types/acorex-platform-module-assessment-management-client-contracts-entity-catalog.d.ts +10 -0
- package/types/acorex-platform-module-assessment-management-client-local-entities.d.ts +12 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-jljmsqNu.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-C4hxiPTX.mjs","sources":["../../../../libs/modules/assessment-management/contracts/src/QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/assessment-management/contracts/src/QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/assessment-management/contracts/src/entities/questionnaire/questionnaire.entity.ts"],"sourcesContent":["/** Component key for the questionnaire Outcomes page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY = 'questionnaire-outcomes-page';\n","/** Component key for the questionnaire Questions page tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY = 'questionnaire-questions-page';\n","import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, AXPEntityAction, AXPEntityCommandScope, createAllQueryView, createQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\nimport { QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY } from '../../QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY';\nimport { QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY } from '../../QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY';\nimport { RootConfig } from '../../root-config';\nimport {\n AXM_TEXT_TEMPLATE_IDS,\n AXM_TEXT_TEMPLATE_KIND,\n} from '@acorex-platform/module-content-management-client/contracts';\n\n//#endregion\n\n//#region ---- Entity Factory ----\n\nexport async function factoryQuestionnaire(): 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: 'catalog-scope' },\n { name: 'lock' },\n { name: 'archive' },\n { name: 'clone' },\n { name: 'attachments', options: { display: 'page' } },\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 appearOn: { create: true, update: true },\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 appearOn: { create: true, update: true },\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 id: 'print',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.print',\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 name: 'printTemplateId',\n title: '@assessment-management:questionnaires.entities.questionnaire.fields.print-template-id.title',\n groupId: 'print',\n options: {\n sort: { enabled: false },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n },\n schema: {\n dataType: 'string',\n nullable: true,\n defaultValue: AXM_TEXT_TEMPLATE_IDS.questionnairePrint,\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: 'ContentManagement.TextTemplate',\n textField: 'title',\n valueField: 'id',\n look: 'select',\n columns: ['title', 'kind'],\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'kind',\n operator: { type: 'equal' },\n value: AXM_TEXT_TEMPLATE_KIND.Content,\n },\n ],\n },\n },\n },\n },\n },\n {\n name: 'print',\n title: '@assessment-management:questionnaires.entities.questionnaire.groups.print',\n groupId: 'print',\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 paperSize: 'A4',\n orientation: 'portrait',\n watermark: '',\n showQuestionNumbers: true,\n showWelcomeScreen: false,\n showSummaryAfterSubmit: false,\n showOutcomeResults: false,\n showUnansweredQuestions: true,\n showComments: true,\n showAttachments: true,\n showHints: true,\n showNotes: true,\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.print-paper-size.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.SelectBox,\n path: 'print.paperSize',\n mode: 'edit',\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'A4',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-paper-size.options.a4',\n },\n {\n id: 'Letter',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-paper-size.options.letter',\n },\n {\n id: 'Legal',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-paper-size.options.legal',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-orientation.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.SelectBox,\n path: 'print.orientation',\n mode: 'edit',\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'portrait',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-orientation.options.portrait',\n },\n {\n id: 'landscape',\n title:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-orientation.options.landscape',\n },\n ],\n },\n },\n ],\n },\n ],\n },\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-watermark.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'print.watermark',\n mode: 'edit',\n options: {\n placeholder:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-watermark.placeholder',\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.components.questionnaire-viewer.fields.print-show-welcome-screen.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showWelcomeScreen',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-summary-after-submit.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showSummaryAfterSubmit',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-outcome-results.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showOutcomeResults',\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:\n '@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: 'print.showQuestionNumbers',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-unanswered-questions.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showUnansweredQuestions',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-comments.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showComments',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-attachments.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showAttachments',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-hints.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showHints',\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:\n '@assessment-management:questionnaires.components.questionnaire-viewer.fields.print-show-notes.title',\n showLabel: true,\n },\n children: [\n {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n path: 'print.showNotes',\n mode: 'edit',\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 { id: 'print', order: 5, 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 { name: 'printTemplateId', layout: { positions: { lg: { colSpan: 12, order: 7 } } } },\n { name: 'print', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 8 } } } },\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 { id: 'print', order: 5, 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 { name: 'printTemplateId', layout: { positions: { lg: { colSpan: 12, order: 7 } } } },\n { name: 'print', layout: { label: { visible: false }, positions: { lg: { colSpan: 12, order: 8 } } } },\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\", { pipes: [\"translate\"] }) }}',\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\", { pipes: [\"translate\"] }) }}',\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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"}
|
package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { a as assessmentManagementLocalEntityCatalog } from './acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-B8PJe3IJ.mjs';
|
|
2
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -6,7 +6,7 @@ import { inject, Injectable } from '@angular/core';
|
|
|
6
6
|
import { get, first, defaultTo, isString } from 'lodash';
|
|
7
7
|
import { Router } from '@angular/router';
|
|
8
8
|
import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
|
|
9
|
-
import { A as AXMQuestionnaireViewerService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
9
|
+
import { A as AXMQuestionnaireViewerService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs';
|
|
10
10
|
import { RootConfig, toPrintSettings, toDisplaySettings, normalizeCompletionMode, toPrePostConfig } from '@acorex-platform/module-assessment-management-client/contracts';
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
@@ -267,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
267
267
|
}] });
|
|
268
268
|
|
|
269
269
|
export { FillAssessmentSessionCommand };
|
|
270
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-fill-assessment-session.command-
|
|
270
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-fill-assessment-session.command-DUo0Jy0W.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-fill-assessment-session.command-VF80DWQf.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-viewer/commands/fill-assessment-session.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, type AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\n\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPDebugService } from '@acorex-platform/framework-client/core';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, first, get, isString } from 'lodash';\nimport { Router } from '@angular/router';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport type { AXMAssessmentManagementAssessmentCaseEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport type { AXMAssessmentManagementAssessmentSessionEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport type { AXMAssessmentManagementQuestionnaireEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport {\n normalizeCompletionMode,\n toDisplaySettings,\n toPrePostConfig,\n toPrintSettings,\n} from '@acorex-platform/module-assessment-management-client/contracts';\nimport {\n RootConfig,\n type QuestionnaireCompletionMode,\n type QuestionnaireBuilderValue,\n} from '@acorex-platform/module-assessment-management-client/contracts';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * How to show the questionnaire viewer when filling an assessment session.\n */\nexport type FillAssessmentSessionShowAs = 'popup' | 'page' | 'standalone';\n\nexport type FillAssessmentSessionOutcome = 'Submitted' | 'Saved' | 'Cancelled';\n\n/**\n * Input for FillAssessmentSession command.\n */\nexport interface FillAssessmentSessionCommandInput {\n caseId: string;\n sessionId?: string;\n /** Popup viewer title; falls back to assessment case title when omitted. */\n title?: AXPMultiLanguageString;\n showAs?: FillAssessmentSessionShowAs;\n responderId?: string;\n role?: 'responder' | 'supervisor' | 'reviewer';\n /** Overrides questionnaire display.completionMode when set. */\n completionMode?: QuestionnaireCompletionMode;\n /** Question answer keys that must stay readonly (e.g. asset prefill on work-order checklists). */\n readonlyAnswerKeys?: string[];\n}\n\n//#endregion\n\n//#region ---- Fill Assessment Session Command ----\n\n/**\n * Opens questionnaire viewer for filling/editing assessment session with draft save and workflow outcomes.\n */\n@Injectable()\nexport class FillAssessmentSessionCommand implements AXPCommand<FillAssessmentSessionCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly router = inject(Router);\n private readonly entityService = inject(AXPEntityService);\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly translationService = inject(AXTranslationService);\n private readonly debug = inject(AXPDebugService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: FillAssessmentSessionCommandInput): AXPCommandExecuteResultPromise<void> {\n try {\n const assessmentCase = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentCase.name)\n .data<string, AXMAssessmentManagementAssessmentCaseEntityModel>()\n .byKey(input.caseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: { text: `Assessment case with ID ${input.caseId} not found` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const questionnaire = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.questionnaire.name)\n .data<string, AXMAssessmentManagementQuestionnaireEntityModel>()\n .byKey(assessmentCase.questionnaireId);\n if (!questionnaire) {\n return {\n success: false,\n message: { text: `Questionnaire with ID ${assessmentCase.questionnaireId} not found` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const questions = questionnaire.questions ?? { sections: [] };\n const structure: QuestionnaireBuilderValue = {\n ...questions,\n sections: questions.sections ?? [],\n displaySettings: toDisplaySettings(questionnaire) ?? undefined,\n printSettings: toPrintSettings(questionnaire) ?? undefined,\n };\n if (!structure.sections.length) {\n return {\n success: false,\n message: { text: 'Questionnaire has no questions to display' },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const currentUser = this.sessionService.user;\n const responderId = input.responderId || currentUser?.id;\n if (!responderId) {\n return {\n success: false,\n message: { text: 'No responder ID provided and no current user found' },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const role = input.role || 'responder';\n const displaySettings = toDisplaySettings(questionnaire);\n const completionMode: QuestionnaireCompletionMode =\n input.completionMode ?? normalizeCompletionMode(displaySettings?.completionMode);\n\n let existingSession: AXMAssessmentManagementAssessmentSessionEntityModel | null = null;\n let sessionId = input.sessionId ?? null;\n let initialAnswers: Record<string, unknown> = {};\n\n if (sessionId) {\n existingSession = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .byKey(sessionId);\n if (existingSession) {\n initialAnswers = (existingSession.answers as Record<string, unknown>) || {};\n }\n }\n\n const sessionSubmitted = existingSession?.statusId === 'submitted';\n\n const showAs = input.showAs ?? 'popup';\n const appName = this.sessionService.application?.name ?? 'demo';\n const moduleRoute = (RootConfig.module as { route?: string }).route ?? 'assessment-management';\n\n if (showAs === 'page') {\n const path = `/${appName}/${moduleRoute}/questionnaire/fill/${input.caseId}`;\n const url = sessionId ? `${path}?sessionId=${encodeURIComponent(sessionId)}` : path;\n this.router.navigateByUrl(url);\n return { success: true, kind: 'object', data: undefined, metadata: { outcome: 'Cancelled' } };\n }\n\n if (showAs === 'standalone') {\n let sessionIdToOpen = sessionId;\n if (!sessionIdToOpen) {\n const now = new Date();\n sessionIdToOpen = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .create({\n caseId: input.caseId,\n responderId,\n role,\n answers: {},\n progressPercentage: 0,\n answeredQuestionsCount: 0,\n lastSavedAt: now,\n startedAt: now,\n statusId: 'not-started',\n } as Omit<AXMAssessmentManagementAssessmentSessionEntityModel, 'id'>);\n }\n if (sessionIdToOpen) {\n this.router.navigateByUrl(`/assessment/fill/${sessionIdToOpen}`);\n }\n return { success: true, kind: 'object', data: undefined, metadata: { outcome: 'Cancelled' } };\n }\n\n const viewerTitle = await this.resolveViewerTitle(input.title, assessmentCase.title);\n\n const viewerConfig = {\n readonly: sessionSubmitted,\n completionMode,\n validationStrategy: displaySettings?.validationStrategy,\n viewMode: displaySettings?.viewMode,\n showProgressBar: displaySettings?.showProgressBar,\n timer: { showTimer: displaySettings?.showTimer ?? false },\n showQuestionNumbers: displaySettings?.showQuestionNumbers,\n readonlyAnswerKeys: input.readonlyAnswerKeys,\n };\n\n const result = await this.questionnaireViewerService.open({\n title: viewerTitle,\n structure,\n prePostConfig: toPrePostConfig(questionnaire),\n config: viewerConfig,\n initialAnswers,\n questionnaireId: questionnaire.id,\n assessmentFillContext: sessionSubmitted\n ? undefined\n : {\n caseId: input.caseId,\n sessionId: sessionId ?? null,\n responderId,\n role,\n },\n });\n\n const outcome = await this.resolveFillOutcome(input.caseId, input.sessionId ?? sessionId, result);\n this.debug.trace(\n 'assessment-management',\n 'fill-assessment-session',\n 'Resolved fill workflow outcome',\n () => ({\n caseId: input.caseId,\n sessionId: input.sessionId ?? sessionId,\n popupResult: {\n saved: result?.saved === true,\n submitted: result?.submitted === true,\n hasPayload: result != null,\n },\n outcome,\n }),\n );\n return { success: true, kind: 'object', data: undefined, metadata: { outcome },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n console.error('Error filling assessment session:', error);\n return {\n success: false,\n message: { text: `Error filling assessment session: ${message}` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Resolves popup title: explicit input, then case title, then translated default.\n */\n private async resolveViewerTitle(\n inputTitle: AXPMultiLanguageString | undefined,\n caseTitle: string | undefined,\n ): Promise<string> {\n const explicit = this.normalizeTitle(inputTitle);\n if (explicit) {\n return explicit;\n }\n\n const fromCase = this.normalizeTitle(caseTitle);\n if (fromCase) {\n return fromCase;\n }\n\n const fillTitleKey = '@assessment-management:cases.actions.fill-assessment.title';\n const fillTitleBase = await this.translationService.translateAsync(fillTitleKey);\n return fillTitleBase || 'Fill Assessment';\n }\n\n /** Resolves a multi-language or plain string title for the active locale. */\n private normalizeTitle(value: AXPMultiLanguageString | string | undefined | null | false): string {\n if (value == null || value === false) {\n return '';\n }\n if (typeof value === 'string') {\n return value.trim();\n }\n const locale = this.translationService.getActiveLang();\n return resolveMultiLanguageString(value, locale).trim();\n }\n\n /**\n * Resolves workflow outcome from popup result, falling back to persisted session status only\n * when the popup is dismissed without an explicit close payload.\n * After submit the viewer may show a summary step; closing via X without \"Done\" still leaves\n * the session submitted and must advance the workflow. Save-as-draft always sends an explicit\n * payload ({ saved: true }); inferring Submitted from the DB when a payload exists can wrongly\n * advance the workflow if flags are missing or a stale submitted session is resolved.\n */\n private async resolveFillOutcome(\n caseId: string,\n sessionId: string | null | undefined,\n result: { submitted?: boolean; saved?: boolean } | null | undefined,\n ): Promise<FillAssessmentSessionOutcome> {\n if (result?.saved) {\n return 'Saved';\n }\n if (result?.submitted) {\n return 'Submitted';\n }\n\n if (result != null) {\n return 'Cancelled';\n }\n\n const sessionSubmitted = await this.isAssessmentSessionSubmitted(caseId, sessionId);\n if (sessionSubmitted) {\n return 'Submitted';\n }\n\n return 'Cancelled';\n }\n\n private async isAssessmentSessionSubmitted(\n caseId: string,\n sessionId: string | null | undefined,\n ): Promise<boolean> {\n const resolvedSessionId = this.resolveText(sessionId) || (await this.findLatestSessionIdForCase(caseId));\n if (!resolvedSessionId) {\n return false;\n }\n\n const session = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .byKey(resolvedSessionId);\n\n return get(session, 'statusId') === 'submitted';\n }\n\n private async findLatestSessionIdForCase(caseId: string): Promise<string> {\n const page = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .query({\n skip: 0,\n take: 1,\n sort: [{ field: 'lastSavedAt', direction: 'desc' }],\n filter: {\n logic: 'and',\n filters: [{ field: 'caseId', operator: { type: 'equal' }, value: caseId }],\n },\n } as never);\n\n const session = first(defaultTo(get(page, 'items'), []));\n return this.resolveText(get(session, 'id'));\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-fill-assessment-session.command-DUo0Jy0W.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-viewer/commands/fill-assessment-session.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, type AXPMultiLanguageString } from '@acorex-platform/framework-shared/core';\n\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPDebugService } from '@acorex-platform/framework-client/core';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, first, get, isString } from 'lodash';\nimport { Router } from '@angular/router';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\nimport type { AXMAssessmentManagementAssessmentCaseEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport type { AXMAssessmentManagementAssessmentSessionEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport type { AXMAssessmentManagementQuestionnaireEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport {\n normalizeCompletionMode,\n toDisplaySettings,\n toPrePostConfig,\n toPrintSettings,\n} from '@acorex-platform/module-assessment-management-client/contracts';\nimport {\n RootConfig,\n type QuestionnaireCompletionMode,\n type QuestionnaireBuilderValue,\n} from '@acorex-platform/module-assessment-management-client/contracts';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * How to show the questionnaire viewer when filling an assessment session.\n */\nexport type FillAssessmentSessionShowAs = 'popup' | 'page' | 'standalone';\n\nexport type FillAssessmentSessionOutcome = 'Submitted' | 'Saved' | 'Cancelled';\n\n/**\n * Input for FillAssessmentSession command.\n */\nexport interface FillAssessmentSessionCommandInput {\n caseId: string;\n sessionId?: string;\n /** Popup viewer title; falls back to assessment case title when omitted. */\n title?: AXPMultiLanguageString;\n showAs?: FillAssessmentSessionShowAs;\n responderId?: string;\n role?: 'responder' | 'supervisor' | 'reviewer';\n /** Overrides questionnaire display.completionMode when set. */\n completionMode?: QuestionnaireCompletionMode;\n /** Question answer keys that must stay readonly (e.g. asset prefill on work-order checklists). */\n readonlyAnswerKeys?: string[];\n}\n\n//#endregion\n\n//#region ---- Fill Assessment Session Command ----\n\n/**\n * Opens questionnaire viewer for filling/editing assessment session with draft save and workflow outcomes.\n */\n@Injectable()\nexport class FillAssessmentSessionCommand implements AXPCommand<FillAssessmentSessionCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly sessionService = inject(AXPSessionService);\n private readonly router = inject(Router);\n private readonly entityService = inject(AXPEntityService);\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly translationService = inject(AXTranslationService);\n private readonly debug = inject(AXPDebugService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: FillAssessmentSessionCommandInput): AXPCommandExecuteResultPromise<void> {\n try {\n const assessmentCase = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentCase.name)\n .data<string, AXMAssessmentManagementAssessmentCaseEntityModel>()\n .byKey(input.caseId);\n if (!assessmentCase) {\n return {\n success: false,\n message: { text: `Assessment case with ID ${input.caseId} not found` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const questionnaire = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.questionnaire.name)\n .data<string, AXMAssessmentManagementQuestionnaireEntityModel>()\n .byKey(assessmentCase.questionnaireId);\n if (!questionnaire) {\n return {\n success: false,\n message: { text: `Questionnaire with ID ${assessmentCase.questionnaireId} not found` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const questions = questionnaire.questions ?? { sections: [] };\n const structure: QuestionnaireBuilderValue = {\n ...questions,\n sections: questions.sections ?? [],\n displaySettings: toDisplaySettings(questionnaire) ?? undefined,\n printSettings: toPrintSettings(questionnaire) ?? undefined,\n };\n if (!structure.sections.length) {\n return {\n success: false,\n message: { text: 'Questionnaire has no questions to display' },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const currentUser = this.sessionService.user;\n const responderId = input.responderId || currentUser?.id;\n if (!responderId) {\n return {\n success: false,\n message: { text: 'No responder ID provided and no current user found' },\n metadata: { outcome: 'Cancelled' },\n };\n }\n\n const role = input.role || 'responder';\n const displaySettings = toDisplaySettings(questionnaire);\n const completionMode: QuestionnaireCompletionMode =\n input.completionMode ?? normalizeCompletionMode(displaySettings?.completionMode);\n\n let existingSession: AXMAssessmentManagementAssessmentSessionEntityModel | null = null;\n let sessionId = input.sessionId ?? null;\n let initialAnswers: Record<string, unknown> = {};\n\n if (sessionId) {\n existingSession = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .byKey(sessionId);\n if (existingSession) {\n initialAnswers = (existingSession.answers as Record<string, unknown>) || {};\n }\n }\n\n const sessionSubmitted = existingSession?.statusId === 'submitted';\n\n const showAs = input.showAs ?? 'popup';\n const appName = this.sessionService.application?.name ?? 'demo';\n const moduleRoute = (RootConfig.module as { route?: string }).route ?? 'assessment-management';\n\n if (showAs === 'page') {\n const path = `/${appName}/${moduleRoute}/questionnaire/fill/${input.caseId}`;\n const url = sessionId ? `${path}?sessionId=${encodeURIComponent(sessionId)}` : path;\n this.router.navigateByUrl(url);\n return { success: true, kind: 'object', data: undefined, metadata: { outcome: 'Cancelled' } };\n }\n\n if (showAs === 'standalone') {\n let sessionIdToOpen = sessionId;\n if (!sessionIdToOpen) {\n const now = new Date();\n sessionIdToOpen = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .create({\n caseId: input.caseId,\n responderId,\n role,\n answers: {},\n progressPercentage: 0,\n answeredQuestionsCount: 0,\n lastSavedAt: now,\n startedAt: now,\n statusId: 'not-started',\n } as Omit<AXMAssessmentManagementAssessmentSessionEntityModel, 'id'>);\n }\n if (sessionIdToOpen) {\n this.router.navigateByUrl(`/assessment/fill/${sessionIdToOpen}`);\n }\n return { success: true, kind: 'object', data: undefined, metadata: { outcome: 'Cancelled' } };\n }\n\n const viewerTitle = await this.resolveViewerTitle(input.title, assessmentCase.title);\n\n const viewerConfig = {\n readonly: sessionSubmitted,\n completionMode,\n validationStrategy: displaySettings?.validationStrategy,\n viewMode: displaySettings?.viewMode,\n showProgressBar: displaySettings?.showProgressBar,\n timer: { showTimer: displaySettings?.showTimer ?? false },\n showQuestionNumbers: displaySettings?.showQuestionNumbers,\n readonlyAnswerKeys: input.readonlyAnswerKeys,\n };\n\n const result = await this.questionnaireViewerService.open({\n title: viewerTitle,\n structure,\n prePostConfig: toPrePostConfig(questionnaire),\n config: viewerConfig,\n initialAnswers,\n questionnaireId: questionnaire.id,\n assessmentFillContext: sessionSubmitted\n ? undefined\n : {\n caseId: input.caseId,\n sessionId: sessionId ?? null,\n responderId,\n role,\n },\n });\n\n const outcome = await this.resolveFillOutcome(input.caseId, input.sessionId ?? sessionId, result);\n this.debug.trace(\n 'assessment-management',\n 'fill-assessment-session',\n 'Resolved fill workflow outcome',\n () => ({\n caseId: input.caseId,\n sessionId: input.sessionId ?? sessionId,\n popupResult: {\n saved: result?.saved === true,\n submitted: result?.submitted === true,\n hasPayload: result != null,\n },\n outcome,\n }),\n );\n return { success: true, kind: 'object', data: undefined, metadata: { outcome },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n console.error('Error filling assessment session:', error);\n return {\n success: false,\n message: { text: `Error filling assessment session: ${message}` },\n metadata: { outcome: 'Cancelled' },\n };\n }\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Resolves popup title: explicit input, then case title, then translated default.\n */\n private async resolveViewerTitle(\n inputTitle: AXPMultiLanguageString | undefined,\n caseTitle: string | undefined,\n ): Promise<string> {\n const explicit = this.normalizeTitle(inputTitle);\n if (explicit) {\n return explicit;\n }\n\n const fromCase = this.normalizeTitle(caseTitle);\n if (fromCase) {\n return fromCase;\n }\n\n const fillTitleKey = '@assessment-management:cases.actions.fill-assessment.title';\n const fillTitleBase = await this.translationService.translateAsync(fillTitleKey);\n return fillTitleBase || 'Fill Assessment';\n }\n\n /** Resolves a multi-language or plain string title for the active locale. */\n private normalizeTitle(value: AXPMultiLanguageString | string | undefined | null | false): string {\n if (value == null || value === false) {\n return '';\n }\n if (typeof value === 'string') {\n return value.trim();\n }\n const locale = this.translationService.getActiveLang();\n return resolveMultiLanguageString(value, locale).trim();\n }\n\n /**\n * Resolves workflow outcome from popup result, falling back to persisted session status only\n * when the popup is dismissed without an explicit close payload.\n * After submit the viewer may show a summary step; closing via X without \"Done\" still leaves\n * the session submitted and must advance the workflow. Save-as-draft always sends an explicit\n * payload ({ saved: true }); inferring Submitted from the DB when a payload exists can wrongly\n * advance the workflow if flags are missing or a stale submitted session is resolved.\n */\n private async resolveFillOutcome(\n caseId: string,\n sessionId: string | null | undefined,\n result: { submitted?: boolean; saved?: boolean } | null | undefined,\n ): Promise<FillAssessmentSessionOutcome> {\n if (result?.saved) {\n return 'Saved';\n }\n if (result?.submitted) {\n return 'Submitted';\n }\n\n if (result != null) {\n return 'Cancelled';\n }\n\n const sessionSubmitted = await this.isAssessmentSessionSubmitted(caseId, sessionId);\n if (sessionSubmitted) {\n return 'Submitted';\n }\n\n return 'Cancelled';\n }\n\n private async isAssessmentSessionSubmitted(\n caseId: string,\n sessionId: string | null | undefined,\n ): Promise<boolean> {\n const resolvedSessionId = this.resolveText(sessionId) || (await this.findLatestSessionIdForCase(caseId));\n if (!resolvedSessionId) {\n return false;\n }\n\n const session = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .byKey(resolvedSessionId);\n\n return get(session, 'statusId') === 'submitted';\n }\n\n private async findLatestSessionIdForCase(caseId: string): Promise<string> {\n const page = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)\n .data<string, AXMAssessmentManagementAssessmentSessionEntityModel>()\n .query({\n skip: 0,\n take: 1,\n sort: [{ field: 'lastSavedAt', direction: 'desc' }],\n filter: {\n logic: 'and',\n filters: [{ field: 'caseId', operator: { type: 'equal' }, value: caseId }],\n },\n } as never);\n\n const session = first(defaultTo(get(page, 'items'), []));\n return this.resolveText(get(session, 'id'));\n }\n\n private resolveText(value: unknown): string {\n if (!isString(value)) {\n return '';\n }\n return value.trim();\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';
|
|
2
|
+
import { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';
|
|
3
|
+
export { assessmentManagementLocalEntityCatalog } from '@acorex-platform/module-assessment-management-client/contracts/entity-catalog';
|
|
4
|
+
|
|
5
|
+
//#region ----- Imports -----
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region ----- Provide local entities -----
|
|
8
|
+
/**
|
|
9
|
+
* Registers assessment-management layouts on the client from packaged factories.
|
|
10
|
+
* Each `import()` targets a secondary entry so unused entities stay out of the
|
|
11
|
+
* bundle. Do not add this to the demo app; demo continues to load layouts via
|
|
12
|
+
* `Domain:GetEntityLayout`.
|
|
13
|
+
*/
|
|
14
|
+
function provideAssessmentManagementLocalEntities() {
|
|
15
|
+
return provideLocalEntityCatalog({
|
|
16
|
+
moduleName: RootConfig.module.name,
|
|
17
|
+
loaders: {
|
|
18
|
+
[RootConfig.entities.assessmentCase.name]: () => import('@acorex-platform/module-assessment-management-client/contracts/entities/assessment-case').then((m) => m.factoryAssessmentCase()),
|
|
19
|
+
[RootConfig.entities.assessmentSession.name]: () => import('@acorex-platform/module-assessment-management-client/contracts/entities/assessment-session').then((m) => m.factoryAssessmentSession()),
|
|
20
|
+
[RootConfig.entities.questionBankItem.name]: () => import('@acorex-platform/module-assessment-management-client/contracts/entities/question-bank-item').then((m) => m.factoryQuestionBankItem()),
|
|
21
|
+
[RootConfig.entities.questionnaire.name]: () => import('@acorex-platform/module-assessment-management-client/contracts/entities/questionnaire').then((m) => m.factoryQuestionnaire()),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Generated bundle index. Do not edit.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
export { provideAssessmentManagementLocalEntities };
|
|
32
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-local-entities.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-local-entities.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/provide-local-entities.ts","../../../../libs/modules/assessment-management/client/src/lib/acorex-platform-module-assessment-management-client-local-entities.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { provideLocalEntityCatalog } from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';\n\n//#endregion\n\n//#region ----- Provide local entities -----\n\n/**\n * Registers assessment-management layouts on the client from packaged factories.\n * Each `import()` targets a secondary entry so unused entities stay out of the\n * bundle. Do not add this to the demo app; demo continues to load layouts via\n * `Domain:GetEntityLayout`.\n */\nexport function provideAssessmentManagementLocalEntities() {\n return provideLocalEntityCatalog({\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.assessmentCase.name]: () =>\n import('@acorex-platform/module-assessment-management-client/contracts/entities/assessment-case').then((m) => m.factoryAssessmentCase()),\n [RootConfig.entities.assessmentSession.name]: () =>\n import('@acorex-platform/module-assessment-management-client/contracts/entities/assessment-session').then((m) => m.factoryAssessmentSession()),\n [RootConfig.entities.questionBankItem.name]: () =>\n import('@acorex-platform/module-assessment-management-client/contracts/entities/question-bank-item').then((m) => m.factoryQuestionBankItem()),\n [RootConfig.entities.questionnaire.name]: () =>\n import('@acorex-platform/module-assessment-management-client/contracts/entities/questionnaire').then((m) => m.factoryQuestionnaire()),\n },\n });\n}\n\nexport { assessmentManagementLocalEntityCatalog } from '@acorex-platform/module-assessment-management-client/contracts/entity-catalog';\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './provide-local-entities';\n"],"names":[],"mappings":";;;;AAAA;AAKA;AAEA;AAEA;;;;;AAKG;SACa,wCAAwC,GAAA;AACtD,IAAA,OAAO,yBAAyB,CAAC;AAC/B,QAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,QAAA,OAAO,EAAE;AACP,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,MACzC,OAAO,yFAAyF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAC1I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,MAC5C,OAAO,4FAA4F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,EAAE,CAAC;AAChJ,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,MAC3C,OAAO,4FAA4F,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,uBAAuB,EAAE,CAAC;AAC/I,YAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,MACxC,OAAO,uFAAuF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC;AACxI,SAAA;AACF,KAAA,CAAC;AACJ;AAIA;;ACjCA;;AAEG;;;;"}
|
|
@@ -3,7 +3,7 @@ import { AXPEntityService } from '@acorex-platform/framework-client/layout/entit
|
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { inject, Injectable } from '@angular/core';
|
|
5
5
|
import { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';
|
|
6
|
-
import { A as AXMQuestionnaireViewerService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
6
|
+
import { A as AXMQuestionnaireViewerService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs';
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
9
9
|
//#region ---- Preview Question Command ----
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
120
120
|
}] });
|
|
121
121
|
|
|
122
122
|
export { PreviewQuestionCommand };
|
|
123
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-preview-question.command-
|
|
123
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-preview-question.command-BR3YNIEg.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-preview-question.command-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-preview-question.command-BR3YNIEg.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-viewer/commands/preview-question.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';\nimport type { AXMAssessmentManagementQuestionBankItemEntityModel } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { QuestionnaireBuilderValue } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { AXMQuestionnaireViewerService } from '../questionnaire-viewer.service';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for PreviewQuestion command.\n * Pass id to load the question bank item (title and structure come from the item).\n * Or pass pre-built structure (e.g. from builder) with optional title.\n */\nexport interface PreviewQuestionCommandInput {\n /** Question bank item id. */\n id?: string;\n /** Pre-built structure; when set, id is not required. */\n structure?: QuestionnaireBuilderValue;\n /** Dialog title when using pre-built structure. */\n title?: string;\n data?: Record<string, unknown>;\n options?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Preview Question Command ----\n\n/**\n * Command that opens a preview of a single question in a dialog.\n * Used from the questionnaire builder per-question primary action.\n */\n@Injectable()\nexport class PreviewQuestionCommand implements AXPCommand<PreviewQuestionCommandInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly questionnaireViewerService = inject(AXMQuestionnaireViewerService);\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n private resolveId(input: PreviewQuestionCommandInput): string | undefined {\n const record = input as Record<string, unknown>;\n const ctxData = input.data as Record<string, unknown> | undefined;\n const ctxOptions = input.options as Record<string, unknown> | undefined;\n const asString = (v: unknown): string | undefined => (typeof v === 'string' && v.length > 0 ? v : undefined);\n return (\n asString(input.id) ??\n asString(record['questionBankItemId']) ??\n asString(ctxOptions?.['questionBankItemId']) ??\n asString(ctxData?.['id']) ??\n asString(record['id'])\n );\n }\n\n async execute(input: PreviewQuestionCommandInput): AXPCommandExecuteResultPromise<void> {\n try {\n const id = this.resolveId(input);\n let structure: QuestionnaireBuilderValue | undefined = input.structure;\n let title = input.title;\n\n if (id) {\n const item = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.questionBankItem.name)\n .data<string, AXMAssessmentManagementQuestionBankItemEntityModel>()\n .byKey(id);\n if (!item) {\n return {\n success: false,\n message: { text: 'Question not found' },\n };\n }\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n const resolvedListTitle = resolveMultiLanguageString(item.title, locale);\n structure = {\n sections: [\n {\n name: `preview-section-${item.id}`,\n title: resolvedListTitle || 'Question',\n description: undefined,\n order: 0,\n items: [\n {\n name: String(item.id),\n questionBankItemId: item.id,\n order: 0,\n isRequired: false,\n interfaceOverride: item.interface,\n } as QuestionnaireBuilderValue['sections'][0]['items'][0],\n ],\n },\n ],\n displaySettings: {\n viewMode: 'single-page',\n showProgressBar: false,\n showQuestionNumbers: false,\n },\n };\n title = resolvedListTitle || undefined;\n }\n\n if (!structure?.sections?.length) {\n return {\n success: false,\n message: { text: 'No question structure to preview' },\n };\n }\n\n const totalQuestions =\n structure.sections?.reduce((s: number, sec: { items?: unknown[] }) => s + (sec.items?.length ?? 0), 0) ?? 0;\n if (totalQuestions === 0) {\n return {\n success: false,\n message: { text: 'No question to preview' },\n };\n }\n\n const previewTitleKey = '@assessment-management:question-bank.entities.question-bank-item.actions.preview.title';\n const defaultTitle = (await this.translationService.translateAsync(previewTitleKey)) || 'Preview';\n const dialogTitle = title?.trim() || defaultTitle;\n\n await this.questionnaireViewerService.open({\n title: dialogTitle,\n structure,\n config: { previewMode: true },\n });\n\n return {\n success: true,\n kind: 'object',\n data: undefined,\n message: { text: '' },\n metadata: { refresh: false },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n return {\n success: false,\n message: { text: `Error previewing question: ${message}` },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/t
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
|
|
5
|
-
import { A as AXMQuestionnaireViewerService, g as formatQuestionnairePreviewDialogTitle } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
5
|
+
import { A as AXMQuestionnaireViewerService, g as formatQuestionnairePreviewDialogTitle } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs';
|
|
6
6
|
import { RootConfig, toPrePostConfig, toDisplaySettings, toPrintSettings } from '@acorex-platform/module-assessment-management-client/contracts';
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
@@ -162,4 +162,4 @@ function asEntityId(value) {
|
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
export { AXPPreviewQuestionnaireCommand };
|
|
165
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-preview-questionnaire.command-
|
|
165
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-preview-questionnaire.command-D9Y57_r2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-preview-questionnaire.command-DBm7ve4w.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-viewer/commands/preview-questionnaire.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXMQuestionnaireViewerService } from '../../../features/questionnaire-viewer/questionnaire-viewer.service';\nimport {\n type AXMAssessmentManagementQuestionnaireEntityModel,\n toDisplaySettings,\n toPrePostConfig,\n toPrintSettings,\n} from '@acorex-platform/module-assessment-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { formatQuestionnairePreviewDialogTitle } from '../utils/questionnaire-preview-title.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for PreviewQuestionnaire command.\n */\nexport interface AXPPreviewQuestionnaireCommandInput {\n /**\n * Questionnaire ID to preview.\n */\n questionnaireId: string;\n\n /**\n * Questionnaire title (for display).\n */\n questionnaireTitle?: string;\n}\n\n/** Entity list passes evaluated action options on `options` (see entity-master-list view model). */\ntype AXPPreviewQuestionnaireCommandInvocation = AXPPreviewQuestionnaireCommandInput & {\n data?: Record<string, unknown>;\n options?: Partial<AXPPreviewQuestionnaireCommandInput> & Record<string, unknown>;\n};\n\n//#endregion\n\n//#region ---- Preview Questionnaire Command ----\n\n/**\n * Command that opens a preview of a questionnaire in a dialog.\n */\n@Injectable()\nexport class AXPPreviewQuestionnaireCommand implements AXPCommand<AXPPreviewQuestionnaireCommandInput, 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 * Resolves questionnaire id/title from root input or from entity action payload (`options` / row `data`).\n */\n private resolvePayload(input: AXPPreviewQuestionnaireCommandInvocation): AXPPreviewQuestionnaireCommandInput | null {\n const ctxOpts = input.options;\n const ctxData = input.data;\n\n const asNonEmptyString = (v: unknown): string | undefined =>\n typeof v === 'string' && v.length > 0 ? v : undefined;\n\n const asDisplayTitle = (v: unknown): string | undefined => {\n const s = asNonEmptyString(v);\n if (s) return s;\n if (v && typeof v === 'object') {\n const o = v as Record<string, unknown>;\n const fromTitle = o['title'];\n if (typeof fromTitle === 'string' && fromTitle.trim()) return fromTitle.trim();\n const fromName = o['name'];\n if (typeof fromName === 'string' && fromName.trim()) return fromName.trim();\n }\n return undefined;\n };\n\n const questionnaireId =\n asNonEmptyString(input.questionnaireId) ??\n asNonEmptyString(ctxOpts?.questionnaireId) ??\n (ctxData?.['id'] != null ? String(ctxData['id']) : undefined);\n\n if (!questionnaireId) {\n return null;\n }\n\n const questionnaireTitle =\n asDisplayTitle(input.questionnaireTitle) ??\n asDisplayTitle(ctxOpts?.questionnaireTitle) ??\n asDisplayTitle(ctxData?.['title']) ??\n asDisplayTitle(ctxData?.['name']);\n\n return { questionnaireId, questionnaireTitle };\n }\n\n async execute(input: AXPPreviewQuestionnaireCommandInvocation): AXPCommandExecuteResultPromise<void> {\n try {\n const resolved = this.resolvePayload(input);\n if (!resolved) {\n return {\n success: false,\n message: {\n text: 'Questionnaire id is missing (could not resolve from command context).',\n },\n };\n }\n\n const { questionnaireId, questionnaireTitle } = resolved;\n\n // Get questionnaire data\n const questionnaire = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.questionnaire.name)\n .data<string, AXMAssessmentManagementQuestionnaireEntityModel>()\n .byKey(questionnaireId);\n\n if (!questionnaire) {\n return {\n success: false,\n message: {\n text: `Questionnaire with ID ${questionnaireId} not found`,\n },\n };\n }\n\n // Check if questionnaire has questions\n if (!questionnaire.questions || !questionnaire.questions.sections || questionnaire.questions.sections.length === 0) {\n return {\n success: false,\n message: {\n text: 'Questionnaire has no questions to preview',\n },\n };\n }\n\n // Get preview title\n const previewTitleKey = '@assessment-management:questionnaires.entities.questionnaire.actions.preview.title';\n const previewTitleBase = (await this.translationService.translateAsync(previewTitleKey)) || 'Preview';\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n const entityTitle = resolveMultiLanguageString(questionnaire.title, locale).trim();\n const displayTitle = questionnaireTitle?.trim() || entityTitle || undefined;\n const previewTitle = formatQuestionnairePreviewDialogTitle(previewTitleBase, displayTitle);\n\n const cfg = toPrePostConfig(questionnaire);\n const displaySettings = toDisplaySettings(questionnaire);\n const questions = questionnaire.questions;\n const structure = {\n sections: questions?.sections ?? [],\n displaySettings: displaySettings ?? undefined,\n printSettings: toPrintSettings(questionnaire) ?? undefined,\n };\n const result = await this.questionnaireViewerService.open({\n title: previewTitle,\n structure,\n prePostConfig: cfg,\n config: {\n previewMode: true,\n completionMode: 'submit-only',\n viewMode: displaySettings?.viewMode,\n showProgressBar: displaySettings?.showProgressBar,\n timer: { showTimer: displaySettings?.showTimer ?? false },\n showQuestionNumbers: displaySettings?.showQuestionNumbers,\n validationStrategy: displaySettings?.validationStrategy,\n },\n questionnaireId,\n printTemplateId: asEntityId(questionnaire.printTemplateId),\n submitHandler: async (answers: Record<string, any>) =>\n this.questionnaireViewerService.buildSummaryPlaceholderValues(structure, answers, {\n questionnaireId,\n }),\n });\n\n if (result?.submitted && result.answers) {\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { outcome: 'Previewed', refresh: false },\n };\n }\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { outcome: 'Cancelled', refresh: false },\n };\n } catch (error: any) {\n return {\n success: false,\n message: {\n text: `Error previewing questionnaire: ${error.message || 'Unknown error'}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\nfunction asEntityId(value: unknown): string | undefined {\n if (typeof value === 'string' && value.trim()) {\n return value.trim();\n }\n if (value && typeof value === 'object' && 'id' in value) {\n return asEntityId((value as { id: unknown }).id);\n }\n return undefined;\n}\n\n//#endregion\n\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-preview-questionnaire.command-D9Y57_r2.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-viewer/commands/preview-questionnaire.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\n\nimport { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXMQuestionnaireViewerService } from '../../../features/questionnaire-viewer/questionnaire-viewer.service';\nimport {\n type AXMAssessmentManagementQuestionnaireEntityModel,\n toDisplaySettings,\n toPrePostConfig,\n toPrintSettings,\n} from '@acorex-platform/module-assessment-management-client/contracts';\nimport { RootConfig } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { formatQuestionnairePreviewDialogTitle } from '../utils/questionnaire-preview-title.util';\n\n//#endregion\n\n//#region ---- Command Input/Output Types ----\n\n/**\n * Input for PreviewQuestionnaire command.\n */\nexport interface AXPPreviewQuestionnaireCommandInput {\n /**\n * Questionnaire ID to preview.\n */\n questionnaireId: string;\n\n /**\n * Questionnaire title (for display).\n */\n questionnaireTitle?: string;\n}\n\n/** Entity list passes evaluated action options on `options` (see entity-master-list view model). */\ntype AXPPreviewQuestionnaireCommandInvocation = AXPPreviewQuestionnaireCommandInput & {\n data?: Record<string, unknown>;\n options?: Partial<AXPPreviewQuestionnaireCommandInput> & Record<string, unknown>;\n};\n\n//#endregion\n\n//#region ---- Preview Questionnaire Command ----\n\n/**\n * Command that opens a preview of a questionnaire in a dialog.\n */\n@Injectable()\nexport class AXPPreviewQuestionnaireCommand implements AXPCommand<AXPPreviewQuestionnaireCommandInput, 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 * Resolves questionnaire id/title from root input or from entity action payload (`options` / row `data`).\n */\n private resolvePayload(input: AXPPreviewQuestionnaireCommandInvocation): AXPPreviewQuestionnaireCommandInput | null {\n const ctxOpts = input.options;\n const ctxData = input.data;\n\n const asNonEmptyString = (v: unknown): string | undefined =>\n typeof v === 'string' && v.length > 0 ? v : undefined;\n\n const asDisplayTitle = (v: unknown): string | undefined => {\n const s = asNonEmptyString(v);\n if (s) return s;\n if (v && typeof v === 'object') {\n const o = v as Record<string, unknown>;\n const fromTitle = o['title'];\n if (typeof fromTitle === 'string' && fromTitle.trim()) return fromTitle.trim();\n const fromName = o['name'];\n if (typeof fromName === 'string' && fromName.trim()) return fromName.trim();\n }\n return undefined;\n };\n\n const questionnaireId =\n asNonEmptyString(input.questionnaireId) ??\n asNonEmptyString(ctxOpts?.questionnaireId) ??\n (ctxData?.['id'] != null ? String(ctxData['id']) : undefined);\n\n if (!questionnaireId) {\n return null;\n }\n\n const questionnaireTitle =\n asDisplayTitle(input.questionnaireTitle) ??\n asDisplayTitle(ctxOpts?.questionnaireTitle) ??\n asDisplayTitle(ctxData?.['title']) ??\n asDisplayTitle(ctxData?.['name']);\n\n return { questionnaireId, questionnaireTitle };\n }\n\n async execute(input: AXPPreviewQuestionnaireCommandInvocation): AXPCommandExecuteResultPromise<void> {\n try {\n const resolved = this.resolvePayload(input);\n if (!resolved) {\n return {\n success: false,\n message: {\n text: 'Questionnaire id is missing (could not resolve from command context).',\n },\n };\n }\n\n const { questionnaireId, questionnaireTitle } = resolved;\n\n // Get questionnaire data\n const questionnaire = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.questionnaire.name)\n .data<string, AXMAssessmentManagementQuestionnaireEntityModel>()\n .byKey(questionnaireId);\n\n if (!questionnaire) {\n return {\n success: false,\n message: {\n text: `Questionnaire with ID ${questionnaireId} not found`,\n },\n };\n }\n\n // Check if questionnaire has questions\n if (!questionnaire.questions || !questionnaire.questions.sections || questionnaire.questions.sections.length === 0) {\n return {\n success: false,\n message: {\n text: 'Questionnaire has no questions to preview',\n },\n };\n }\n\n // Get preview title\n const previewTitleKey = '@assessment-management:questionnaires.entities.questionnaire.actions.preview.title';\n const previewTitleBase = (await this.translationService.translateAsync(previewTitleKey)) || 'Preview';\n const locale = this.translationService.getActiveLang?.() ?? 'en-US';\n const entityTitle = resolveMultiLanguageString(questionnaire.title, locale).trim();\n const displayTitle = questionnaireTitle?.trim() || entityTitle || undefined;\n const previewTitle = formatQuestionnairePreviewDialogTitle(previewTitleBase, displayTitle);\n\n const cfg = toPrePostConfig(questionnaire);\n const displaySettings = toDisplaySettings(questionnaire);\n const questions = questionnaire.questions;\n const structure = {\n sections: questions?.sections ?? [],\n displaySettings: displaySettings ?? undefined,\n printSettings: toPrintSettings(questionnaire) ?? undefined,\n };\n const result = await this.questionnaireViewerService.open({\n title: previewTitle,\n structure,\n prePostConfig: cfg,\n config: {\n previewMode: true,\n completionMode: 'submit-only',\n viewMode: displaySettings?.viewMode,\n showProgressBar: displaySettings?.showProgressBar,\n timer: { showTimer: displaySettings?.showTimer ?? false },\n showQuestionNumbers: displaySettings?.showQuestionNumbers,\n validationStrategy: displaySettings?.validationStrategy,\n },\n questionnaireId,\n printTemplateId: asEntityId(questionnaire.printTemplateId),\n submitHandler: async (answers: Record<string, any>) =>\n this.questionnaireViewerService.buildSummaryPlaceholderValues(structure, answers, {\n questionnaireId,\n }),\n });\n\n if (result?.submitted && result.answers) {\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { outcome: 'Previewed', refresh: false },\n };\n }\n return {\n success: true,\n kind: 'object',\n data: undefined,\n metadata: { outcome: 'Cancelled', refresh: false },\n };\n } catch (error: any) {\n return {\n success: false,\n message: {\n text: `Error previewing questionnaire: ${error.message || 'Unknown error'}`,\n },\n };\n }\n }\n\n //#endregion\n}\n\nfunction asEntityId(value: unknown): string | undefined {\n if (typeof value === 'string' && value.trim()) {\n return value.trim();\n }\n if (value && typeof value === 'object' && 'id' in value) {\n return asEntityId((value as { id: unknown }).id);\n }\n return undefined;\n}\n\n//#endregion\n\n"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { AsyncPipe } from '@angular/common';
|
|
|
12
12
|
import * as i0 from '@angular/core';
|
|
13
13
|
import { inject, computed, signal, model, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
14
14
|
import { isEqual } from 'lodash';
|
|
15
|
-
import { s as stripQuestionBankInterfaceMetadata, r as resolveWidgetNodeFromMetaDataDefinitionInterface } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
15
|
+
import { s as stripQuestionBankInterfaceMetadata, r as resolveWidgetNodeFromMetaDataDefinitionInterface } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-YfOwCCLz.mjs';
|
|
16
16
|
import * as i2 from '@acorex/components/decorators';
|
|
17
17
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
18
18
|
|
|
@@ -486,4 +486,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
486
486
|
}], propDecorators: { definitionIdModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "definitionIdModel", required: false }] }, { type: i0.Output, args: ["definitionIdModelChange"] }], widgetConfigModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "widgetConfigModel", required: false }] }, { type: i0.Output, args: ["widgetConfigModelChange"] }] } });
|
|
487
487
|
|
|
488
488
|
export { AXMQuestionBankInterfaceEditorWidgetEditComponent };
|
|
489
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-
|
|
489
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-BqIo3Zhp.mjs.map
|