@acorex-platform/module-assessment-management-client 2.0.0-next.20 → 2.0.0-next.22
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-clUYFK16.mjs → acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs} +326 -138
- package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-oKEAM8zA.mjs → acorex-platform-module-assessment-management-client-assessment-voice.commands-DGcCkudt.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-oKEAM8zA.mjs.map → acorex-platform-module-assessment-management-client-assessment-voice.commands-DGcCkudt.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-question-bank-item.mjs +58 -7
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-question-bank-item.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs +137 -8
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-CgUoWW8B.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-3F4p6ljC.mjs} +6 -6
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-CgUoWW8B.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-3F4p6ljC.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-GDJX71dY.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-CyWqUVBO.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-GDJX71dY.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-CyWqUVBO.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-tP9SU7u8.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-CnfnDCou.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-tP9SU7u8.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-CnfnDCou.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-BSXs6_z8.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-DTAhcFz1.mjs} +60 -9
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-DTAhcFz1.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-a63MvFoX.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-mSpjIACS.mjs} +139 -10
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-mSpjIACS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-DWRFJCah.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-DqChTI6T.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-DWRFJCah.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-DqChTI6T.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts.mjs +44 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-DRi6bK2i.mjs → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DPoL2WXF.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-DRi6bK2i.mjs.map → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DPoL2WXF.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-ByHoX67r.mjs → acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-DzLMXy9Y.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-ByHoX67r.mjs.map → acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-DzLMXy9Y.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer.service-BXa0_2G9.mjs → acorex-platform-module-assessment-management-client-form-template-viewer.service-0Fhk3cd6.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer.service-BXa0_2G9.mjs.map → acorex-platform-module-assessment-management-client-form-template-viewer.service-0Fhk3cd6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-index-BMB2Htf1.mjs → acorex-platform-module-assessment-management-client-index-xC4NiE8P.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-index-BMB2Htf1.mjs.map → acorex-platform-module-assessment-management-client-index-xC4NiE8P.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-open-form-template.command-Cd2K2-GM.mjs → acorex-platform-module-assessment-management-client-open-form-template.command-xaDs3wr5.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-open-form-template.command-Cd2K2-GM.mjs.map → acorex-platform-module-assessment-management-client-open-form-template.command-xaDs3wr5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-form-template.command-BJk6_haJ.mjs → acorex-platform-module-assessment-management-client-preview-form-template.command-CO_Z0X5u.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-form-template.command-BJk6_haJ.mjs.map → acorex-platform-module-assessment-management-client-preview-form-template.command-CO_Z0X5u.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-DWH4Nvo-.mjs → acorex-platform-module-assessment-management-client-preview-question.command-aNpcP2j-.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-DWH4Nvo-.mjs.map → acorex-platform-module-assessment-management-client-preview-question.command-aNpcP2j-.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-ZblqNQzw.mjs → acorex-platform-module-assessment-management-client-preview-questionnaire.command-CqAlLD06.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-ZblqNQzw.mjs.map → acorex-platform-module-assessment-management-client-preview-questionnaire.command-CqAlLD06.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-3eHfj_1n.mjs → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-j_TDGlON.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-3eHfj_1n.mjs.map → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-j_TDGlON.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-CctbSOfG.mjs → acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-LKydg7hM.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-CctbSOfG.mjs.map → acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-LKydg7hM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-DD431Nru.mjs → acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BKBBMXN9.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-DD431Nru.mjs.map → acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BKBBMXN9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-CjMCIExs.mjs → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-BLUdC219.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-CjMCIExs.mjs.map → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-BLUdC219.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-CebpEyUN.mjs → acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-CbmBo7Ve.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-CebpEyUN.mjs.map → acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-CbmBo7Ve.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CGaUOa7I.mjs → acorex-platform-module-assessment-management-client-review-assessment-session.command-D2MyU3wd.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CGaUOa7I.mjs.map → acorex-platform-module-assessment-management-client-review-assessment-session.command-D2MyU3wd.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-B58iMbgj.mjs → acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-CJ2EIOfz.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-B58iMbgj.mjs.map → acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-CJ2EIOfz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-PG2CAV-I.mjs → acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-BVzSq-rX.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-PG2CAV-I.mjs.map → acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-BVzSq-rX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command--e1ACDbF.mjs → acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-CEjI6ebC.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command--e1ACDbF.mjs.map → acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-CEjI6ebC.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-template-widget-edit.component-D7zOnGwK.mjs → acorex-platform-module-assessment-management-client-template-widget-edit.component-BSg5lWIS.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-template-widget-edit.component-D7zOnGwK.mjs.map → acorex-platform-module-assessment-management-client-template-widget-edit.component-BSg5lWIS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-CzT6Iw5l.mjs → acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-BKdMZDZd.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-CzT6Iw5l.mjs.map → acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-BKdMZDZd.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-grid.component-BqKikmM8.mjs → acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-grid.component-BqKikmM8.mjs.map → acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-10mrzzqk.mjs → acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-C9B-HU4h.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-10mrzzqk.mjs.map → acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-C9B-HU4h.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component--4ywmLk9.mjs → acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-DwB4tgSZ.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component--4ywmLk9.mjs.map → acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-DwB4tgSZ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-j-ClIxCR.mjs → acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-CbbpEr9W.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-j-ClIxCR.mjs.map → acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-CbbpEr9W.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet.util-DuWQlwcz.mjs → acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-test-sheet.util-DuWQlwcz.mjs.map → acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-EAfaZgB8.mjs → acorex-platform-module-assessment-management-client-view-session-answers.command-BCmla5AS.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-EAfaZgB8.mjs.map → acorex-platform-module-assessment-management-client-view-session-answers.command-BCmla5AS.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-assessment-management-client.mjs +1 -1
- package/i18n/en-AU/assessment-management.json +20 -1
- package/i18n/en-US/assessment-management.json +20 -1
- package/i18n/fa-IR/assessment-management.json +20 -1
- package/package.json +3 -3
- package/types/acorex-platform-module-assessment-management-client-contracts.d.ts +31 -3
- package/types/acorex-platform-module-assessment-management-client.d.ts +8 -0
- package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-clUYFK16.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-BSXs6_z8.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-a63MvFoX.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-CEjI6ebC.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/content-display/questionnaire-viewer/show-questionnaire-viewer-popup.command.ts"],"sourcesContent":["import { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPEntityEventsKeys } from '@acorex-platform/framework-shared/entity';\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport type { QuestionnaireBuilderValue } from '@acorex-platform/module-assessment-management-client/contracts';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\nimport { isPlainObject } from 'lodash-es';\nimport { AXMQuestionnaireViewerService } from '../../questionnaire-viewer/questionnaire-viewer.service';\nimport { QUESTIONNAIRE_VIEWER_FIELD, QUESTIONNAIRE_VIEWER_SOURCE_FIELD } from '../content-display.constants';\nimport { readRelatedRecordId } from '../content-display.util';\nimport { AXMRelatedContentRecordService } from '../related-content-record.service';\n\n//#region ----- Types -----\n\nexport interface ShowQuestionnaireViewerPopupInput {\n entity: string;\n id: string;\n field?: string;\n path: string;\n sourceField?: string;\n targetEntity: string;\n title?: string;\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n/**\n * Opens the questionnaire stored on the related record and saves answers on this record.\n */\n@Injectable({ providedIn: 'root' })\nexport class ShowQuestionnaireViewerPopupCommand implements AXPCommand<ShowQuestionnaireViewerPopupInput, unknown> {\n //#region ----- Services & Dependencies -----\n\n private readonly questionnaireViewer = inject(AXMQuestionnaireViewerService);\n private readonly records = inject(AXMRelatedContentRecordService);\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly eventService = inject(AXPBroadcastEventService);\n\n //#endregion\n\n //#region ----- Command Handling -----\n\n async execute(input: ShowQuestionnaireViewerPopupInput | undefined): AXPCommandExecuteResultPromise<unknown> {\n const evaluated = resolveInput(input);\n const entity = evaluated.entity?.trim() ?? '';\n const id = readRelatedRecordId(evaluated.id);\n const path = evaluated.path?.trim() ?? '';\n const targetEntity = evaluated.targetEntity?.trim() ?? '';\n const field = evaluated.field?.trim() || QUESTIONNAIRE_VIEWER_FIELD;\n const sourceField = evaluated.sourceField?.trim() || QUESTIONNAIRE_VIEWER_SOURCE_FIELD;\n\n if (!entity || !id || !path || !targetEntity) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n try {\n const host = await this.records.find(entity, id);\n if (!host) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.not-found'),\n },\n };\n }\n\n const relatedId = readRelatedRecordId(host[path]);\n const structure = relatedId\n ? ((await this.records.readQuestionnaireStructure(\n targetEntity,\n relatedId,\n sourceField,\n )) as QuestionnaireBuilderValue | null)\n : null;\n if (!structure?.sections?.length) {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync(\n '@assessment-management:questionnaires.components.questionnaire-viewer.empty.description',\n ),\n },\n };\n }\n\n const current = host[field];\n const title =\n evaluated.title?.trim() ||\n (await this.translationService.translateAsync(\n '@assessment-management:questionnaires.components.questionnaire-viewer.section-title',\n ));\n const opened = await this.questionnaireViewer.open({\n title,\n structure,\n initialAnswers: isPlainObject(current) ? (current as Record<string, any>) : {},\n });\n if (!opened || (!opened.submitted && !opened.saved)) {\n return { success: false };\n }\n\n await this.entityService.withEntity(entity).data().update(id, { [field]: opened.answers } as never);\n this.eventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, { name: entity });\n return {\n success: true,\n kind: 'object',\n data: { id, [field]: opened.answers },\n message: {\n text: await this.translationService.translateAsync('@general:messages.entity.updated'),\n },\n };\n } catch {\n return {\n success: false,\n message: {\n text: await this.translationService.translateAsync('@general:messages.generic.error.description'),\n },\n };\n }\n }\n\n //#endregion\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction resolveInput(input: ShowQuestionnaireViewerPopupInput | undefined): ShowQuestionnaireViewerPopupInput {\n const raw = (input ?? {}) as ShowQuestionnaireViewerPopupInput & {\n options?: Partial<ShowQuestionnaireViewerPopupInput>;\n data?: Partial<ShowQuestionnaireViewerPopupInput> & { id?: string };\n };\n const options = raw.options ?? {};\n const data = raw.data ?? {};\n return {\n entity: options.entity ?? raw.entity ?? '',\n id: options.id ?? raw.id ?? data.id ?? '',\n field: options.field ?? raw.field,\n path: options.path ?? raw.path ?? '',\n sourceField: options.sourceField ?? raw.sourceField,\n targetEntity: options.targetEntity ?? raw.targetEntity ?? '',\n title: options.title ?? raw.title,\n };\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
|
|
|
3
3
|
import { AXPValueWidgetComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { inject, computed, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
6
|
-
import { u as AXPTemplateWidgetProviderService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
6
|
+
import { u as AXPTemplateWidgetProviderService } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs';
|
|
7
7
|
|
|
8
8
|
class AXPTemplateWidgetEditComponent extends AXPValueWidgetComponent {
|
|
9
9
|
// protected allowRemove = computed<boolean>(() => this.options()['allowRemove'] as boolean ?? false);
|
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
104
104
|
}], ctorParameters: () => [] });
|
|
105
105
|
|
|
106
106
|
export { AXPTemplateWidgetEditComponent };
|
|
107
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-template-widget-edit.component-
|
|
107
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-template-widget-edit.component-BSg5lWIS.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-template-widget-edit.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-template-widget-edit.component-BSg5lWIS.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/form-template/designer/widgets/template/template-widget-edit.component.ts"],"sourcesContent":["import type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetCoreModule, AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\n\n\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\nimport { AXPTemplateWidgetProviderService } from '../../components/template-picker/template.provider';\n\n@Component({\n selector: 'axp-template-widget-edit',\n template: `\n @for (node of nodes(); track $index) {\n <ng-container axp-widget-renderer\n [node]=\"node\"\n [parentNode]=\"this\"\n [mode]=\"this.mode\">\n </ng-container>\n }\n <!-- @if(nodes().length>0) {\n <ng-container>\n \n </ng-container> -->\n <!-- @if(showRemove())\n {\n <div\n class=\"text-danger-500 hover:text-danger-800 mt-2 text-xs cursor-pointer\"\n (click)=\"handleRemoveClick()\"\n >\n {{ '@form-template-management:templates.terms.remove-template' | translate | async }}\n </div>\n }\n } \n @else {\n <span\n class=\"underline decoration-dotted underline-offset-8 hover:text-primary-500 cursor-pointer\"\n (click)=\"handleSelectClick()\"\n >\n {{ '@form-template-management:templates.terms.choose-template' | translate | async }}\n </span>\n } -->\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXPWidgetCoreModule, AXTranslationModule]\n})\nexport class AXPTemplateWidgetEditComponent extends AXPValueWidgetComponent {\n private metaKey = '__meta__';\n\n private templateProvider = inject(AXPTemplateWidgetProviderService);\n protected templateId = computed<string>(() => this.options()['templateId'] as string);\n protected nodes = signal<AXPWidgetNode[]>([]);\n // protected allowRemove = computed<boolean>(() => this.options()['allowRemove'] as boolean ?? false);\n\n\n // protected showRemove = computed(() => {\n // return this.allowRemove() && this.parent?.config.name != 'template';\n // });\n\n constructor() {\n super();\n //\n effect(\n async () => {\n this.nodes.set([]);\n const templateId = this.templateId();\n if (templateId) {\n const item = await this.templateProvider.get(templateId);\n if (item) {\n this.nodes.set(item.nodes);\n }\n }\n }\n );\n }\n\n //TODO: make a new widget to handle select widget in edit mode\n // protected async handleSelectClick() {\n // const result = await this.templateProvider.chooseTemplate();\n // if (result) {\n // this.setOptions({ templateId: result.id });\n // const value = this.getValue() ?? {};\n // set(value, this.metaKey, { templateId: result.id });\n // this.setValue(value);\n // }\n // }\n\n // protected async handleRemoveClick() {\n // this.setOptions({ templateId: null });\n // this.setValue(null);\n // }\n}\n"],"names":[],"mappings":";;;;;;;AA4CM,MAAO,8BAA+B,SAAQ,uBAAuB,CAAA;;;;;AAazE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAbD,IAAA,CAAA,OAAO,GAAG,UAAU;AAEpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gCAAgC,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAW;uFAAC;QAC3E,IAAA,CAAA,KAAK,GAAG,MAAM,CAAkB,EAAE;kFAAC;;QAW3C,MAAM,CACJ,YAAW;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;YACpC,IAAI,UAAU,EAAE;gBACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;gBACxD,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5B;YACF;AACF,QAAA,CAAC,CACF;IACH;8GA5BW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,mBAAmB,uQAAE,mBAAmB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEvC,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBApC1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB;AACnD,iBAAA;;;"}
|
|
@@ -10,7 +10,7 @@ import { AsyncPipe } from '@angular/common';
|
|
|
10
10
|
import * as i0 from '@angular/core';
|
|
11
11
|
import { computed, signal, model, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
12
12
|
import { isEqual } from 'lodash-es';
|
|
13
|
-
import { g as testSheetChoiceId } from './acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
13
|
+
import { g as testSheetChoiceId } from './acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs';
|
|
14
14
|
|
|
15
15
|
//#region ----- Imports -----
|
|
16
16
|
//#endregion
|
|
@@ -76,7 +76,7 @@ class AXMTestSheetCellTypeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
76
76
|
...(ngDevMode ? [{ debugName: "syncConfiguratorToValue" }] : /* istanbul ignore next */ []));
|
|
77
77
|
}
|
|
78
78
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMTestSheetCellTypeWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMTestSheetCellTypeWidgetEditComponent, isStandalone: true, selector: "axm-test-sheet-cell-type-widget-edit", inputs: { widgetConfigModel: { classPropertyName: "widgetConfigModel", publicName: "widgetConfigModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widgetConfigModel: "widgetConfigModelChange" }, host: { properties: { "class.hidden": "!showCellType()" }, classAttribute: "block w-full min-w-0" }, usesInheritance: true, ngImport: i0, template: "<!-- ----- Cell type only when the column is an input ----- -->\n@if (showCellType()) {\n <ax-form-field>\n <ax-label>{{ cellTypeLabel | translate | async }}</ax-label>\n <!-- --------------------------------------------------------------- -->\n <!-- ----- Widget picker after the current cell widget has loaded ----- -->\n @if (isInitialized()) {\n <axp-widget-field-configurator\n [(widget)]=\"widgetConfigModel\"\n [label]=\"cellTypeLabel\"\n [readonly]=\"isReadonly()\"\n ></axp-widget-field-configurator>\n }\n </ax-form-field>\n}\n", dependencies: [{ kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPWidgetFieldConfiguratorComponent, selector: "axp-widget-field-configurator", inputs: ["widget", "label", "fieldName", "fieldTitle", "readonly", "selectedItemIdModel", "valuesModel"], outputs: ["widgetChange", "selectedItemIdModelChange", "valuesModelChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMTestSheetCellTypeWidgetEditComponent, isStandalone: true, selector: "axm-test-sheet-cell-type-widget-edit", inputs: { widgetConfigModel: { classPropertyName: "widgetConfigModel", publicName: "widgetConfigModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widgetConfigModel: "widgetConfigModelChange" }, host: { properties: { "class.hidden": "!showCellType()" }, classAttribute: "block w-full min-w-0" }, usesInheritance: true, ngImport: i0, template: "<!-- ----- Cell type only when the column is an input ----- -->\n@if (showCellType()) {\n <ax-form-field>\n <ax-label>{{ cellTypeLabel | translate | async }}</ax-label>\n <!-- --------------------------------------------------------------- -->\n <!-- ----- Widget picker after the current cell widget has loaded ----- -->\n @if (isInitialized()) {\n <axp-widget-field-configurator\n [(widget)]=\"widgetConfigModel\"\n [label]=\"cellTypeLabel\"\n [readonly]=\"isReadonly()\"\n ></axp-widget-field-configurator>\n }\n </ax-form-field>\n}\n", dependencies: [{ kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPWidgetFieldConfiguratorComponent, selector: "axp-widget-field-configurator", inputs: ["widget", "label", "fieldName", "fieldTitle", "readonly", "selectedItemIdModel", "valuesModel", "nodeFieldsModel"], outputs: ["widgetChange", "selectedItemIdModelChange", "valuesModelChange", "nodeFieldsModelChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
80
80
|
}
|
|
81
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMTestSheetCellTypeWidgetEditComponent, decorators: [{
|
|
82
82
|
type: Component,
|
|
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
87
87
|
}], propDecorators: { widgetConfigModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "widgetConfigModel", required: false }] }, { type: i0.Output, args: ["widgetConfigModelChange"] }] } });
|
|
88
88
|
|
|
89
89
|
export { AXMTestSheetCellTypeWidgetEditComponent };
|
|
90
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-
|
|
90
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-BKdMZDZd.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-BKdMZDZd.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-cell-type-widget-edit.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-cell-type-widget-edit.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetFieldConfiguratorComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, model, signal, untracked } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport { testSheetChoiceId } from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-cell-type-widget-edit',\n templateUrl: './test-sheet-cell-type-widget-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXFormModule, AXLabelModule, AXTranslationModule, AXPWidgetFieldConfiguratorComponent],\n host: {\n class: 'block w-full min-w-0',\n '[class.hidden]': '!showCellType()',\n },\n})\nexport class AXMTestSheetCellTypeWidgetEditComponent extends AXPValueWidgetComponent<AXPWidgetNode> {\n //#region ----- Constants -----\n\n protected readonly cellTypeLabel = '@assessment-management:widgets.test-sheet.columns.widget';\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly isReadonly = computed(() => this.options()['readonly'] === true);\n\n /** Static columns are authored text. Only an input column picks a cell widget. */\n protected readonly showCellType = computed(() => {\n this.contextService.changeEvent();\n const parent = this.parentPath();\n if (!parent) {\n return false;\n }\n return testSheetChoiceId(this.contextService.getValue(`${parent}.role`)) !== 'static';\n });\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected readonly isInitialized = signal(false);\n\n protected readonly widgetConfigModel = model<AXPWidgetNode>({ type: '', options: {} });\n\n //#endregion\n\n //#region ----- Effects -----\n\n private readonly syncValueToConfigurator = effect(() => {\n const value = this.getValue();\n if (value && value.type) {\n const currentModel = untracked(() => this.widgetConfigModel());\n if (!isEqual(value, currentModel)) {\n untracked(() => {\n this.widgetConfigModel.set(value);\n this.isInitialized.set(true);\n });\n }\n return;\n }\n untracked(() => {\n if (!this.isInitialized()) {\n this.isInitialized.set(true);\n }\n });\n });\n\n private readonly syncConfiguratorToValue = effect(() => {\n const modelValue = this.widgetConfigModel();\n if (!untracked(() => this.isInitialized()) || !modelValue?.type) {\n return;\n }\n const currentValue = untracked(() => this.getValue());\n if (!isEqual(modelValue, currentValue)) {\n untracked(() => {\n this.setValue(modelValue);\n });\n }\n });\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Cell type only when the column is an input ----- -->\n@if (showCellType()) {\n <ax-form-field>\n <ax-label>{{ cellTypeLabel | translate | async }}</ax-label>\n <!-- --------------------------------------------------------------- -->\n <!-- ----- Widget picker after the current cell widget has loaded ----- -->\n @if (isInitialized()) {\n <axp-widget-field-configurator\n [(widget)]=\"widgetConfigModel\"\n [label]=\"cellTypeLabel\"\n [readonly]=\"isReadonly()\"\n ></axp-widget-field-configurator>\n }\n </ax-form-field>\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ import { AXPSpreadsheetComponent } from '@acorex-platform/framework-client/layou
|
|
|
4
4
|
import { AsyncPipe } from '@angular/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { input, model, output, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
7
|
-
import { x as AXM_TEST_SHEET_ROW_GROUP_PATH } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
8
|
-
import { t as toTestSheetSpreadsheetColumns, c as toTestSheetRowWidgets, d as testSheetHasRowGroups } from './acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
7
|
+
import { x as AXM_TEST_SHEET_ROW_GROUP_PATH } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs';
|
|
8
|
+
import { t as toTestSheetSpreadsheetColumns, c as toTestSheetRowWidgets, d as testSheetHasRowGroups } from './acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs';
|
|
9
9
|
|
|
10
10
|
//#region ----- Imports -----
|
|
11
11
|
//#endregion
|
|
@@ -74,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
74
74
|
}], propDecorators: { definition: [{ type: i0.Input, args: [{ isSignal: true, alias: "definition", required: true }] }], rowsInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsInput", required: false }] }], rowsModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowsModel", required: false }] }, { type: i0.Output, args: ["rowsModelChange"] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], sheetChange: [{ type: i0.Output, args: ["sheetChange"] }] } });
|
|
75
75
|
|
|
76
76
|
export { AXMTestSheetGridComponent as A };
|
|
77
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-grid.component-
|
|
77
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-grid.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-grid.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-grid.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSpreadsheetComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\n\nimport { AXM_TEST_SHEET_ROW_GROUP_PATH, type AXMTestSheetDefinition } from './test-sheet.types';\nimport { testSheetHasRowGroups, toTestSheetRowWidgets, toTestSheetSpreadsheetColumns } from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-grid',\n templateUrl: './test-sheet-grid.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXTranslationModule, AXPSpreadsheetComponent],\n})\nexport class AXMTestSheetGridComponent {\n //#region ----- Inputs -----\n\n definition = input.required<AXMTestSheetDefinition>();\n\n /** Fixed-mode rows. */\n rowsInput = input<Record<string, unknown>[]>([]);\n\n /** Repeated-mode rows. */\n rowsModel = model<Record<string, unknown>[]>([]);\n\n readonly = input(false);\n\n //#endregion\n\n //#region ----- Outputs -----\n\n sheetChange = output<Record<string, unknown>[]>();\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly rowInputs = computed(() => this.definition().layout === 'row-inputs');\n\n protected readonly sheetDir = computed(() => {\n const direction = this.definition().direction;\n if (direction) {\n return direction;\n }\n return this.rowInputs() ? 'rtl' : null;\n });\n\n protected readonly columns = computed(() => toTestSheetSpreadsheetColumns(this.definition()));\n\n protected readonly rowWidgets = computed(() => toTestSheetRowWidgets(this.definition()));\n\n protected readonly spreadsheetRowMode = computed(() =>\n this.definition().rowMode === 'repeated' ? 'dynamic' : 'fixed',\n );\n\n protected readonly rowGroupPath = computed(() =>\n testSheetHasRowGroups(this.definition()) ? AXM_TEST_SHEET_ROW_GROUP_PATH : null,\n );\n\n protected readonly sheetTitle = computed(() => {\n if (this.rowInputs()) {\n return this.definition().rowHeaderTitle ?? '';\n }\n return this.rowGroupPath() ? '@assessment-management:widgets.test-sheet.group-header' : '';\n });\n\n protected readonly showRowHeader = computed(\n () => this.rowInputs() || this.definition().rowMode === 'repeated',\n );\n\n protected readonly rowTitlePath = computed(() => (this.rowInputs() ? 'title' : null));\n\n protected readonly allowRowChanges = computed(\n () => this.definition().rowMode === 'repeated' && !this.readonly(),\n );\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onSheetChange(rows: Record<string, unknown>[]): void {\n this.sheetChange.emit(rows);\n }\n\n //#endregion\n}\n\n//#endregion\n","@if (columns().length === 0) {\n <!-- ----- Prompt when the question has no columns yet ----- -->\n <p class=\"text-sm text-neutral-500 py-2\">\n {{ '@assessment-management:widgets.test-sheet.empty-sheet' | translate | async }}\n </p>\n}\n<!-- ----- Spreadsheet bound to the authored columns and row mode ----- -->\n@else {\n <div [attr.dir]=\"sheetDir()\">\n <axp-spreadsheet\n [title]=\"sheetTitle()\"\n [columns]=\"columns()\"\n [rowWidgets]=\"rowWidgets()\"\n [rowMode]=\"spreadsheetRowMode()\"\n [rowsInput]=\"rowsInput()\"\n [(rowsModel)]=\"rowsModel\"\n [readonly]=\"readonly()\"\n [showRowHeader]=\"showRowHeader()\"\n [rowTitlePath]=\"rowTitlePath()\"\n [rowGroupPath]=\"rowGroupPath()\"\n [allowAddRows]=\"allowRowChanges()\"\n [allowRemoveRows]=\"allowRowChanges()\"\n [showCellActions]=\"false\"\n emptyCellPlaceholder=\"–\"\n (spreadsheetChange)=\"onSheetChange($event)\"\n />\n </div>\n}\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ import * as i0 from '@angular/core';
|
|
|
7
7
|
import { computed, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
8
8
|
import { isEqual } from 'lodash-es';
|
|
9
9
|
import { objectKeyValueTransforms } from '@acorex-platform/framework-client/core';
|
|
10
|
-
import { z as AXM_TEST_SHEET_CELL_TYPE_WIDGET } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
11
|
-
import { g as testSheetChoiceId, h as assignTestSheetItemNames, i as ensureTestSheetColumnWidgets } from './acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
10
|
+
import { z as AXM_TEST_SHEET_CELL_TYPE_WIDGET } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs';
|
|
11
|
+
import { g as testSheetChoiceId, h as assignTestSheetItemNames, i as ensureTestSheetColumnWidgets } from './acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs';
|
|
12
12
|
|
|
13
13
|
//#region ----- Constants -----
|
|
14
14
|
const ID_VALUE = objectKeyValueTransforms('id');
|
|
@@ -233,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
233
233
|
}], ctorParameters: () => [] });
|
|
234
234
|
|
|
235
235
|
export { AXMTestSheetSchemaWidgetEditComponent };
|
|
236
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-
|
|
236
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-C9B-HU4h.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-10mrzzqk.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema.layout.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema-widget-edit.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema-widget-edit.component.html"],"sourcesContent":["import { objectKeyValueTransforms } from '@acorex-platform/framework-client/core';\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\n\nimport { AXM_TEST_SHEET_CELL_TYPE_WIDGET } from './test-sheet.types';\n\n//#region ----- Constants -----\n\nconst ID_VALUE = objectKeyValueTransforms('id');\n\nconst ROW_MODE_ITEMS = [\n { id: 'fixed', title: '@assessment-management:widgets.test-sheet.row-mode.fixed' },\n { id: 'repeated', title: '@assessment-management:widgets.test-sheet.row-mode.repeated' },\n];\n\nconst COLUMN_ROLE_ITEMS = [\n { id: 'static', title: '@assessment-management:widgets.test-sheet.columns.static' },\n { id: 'input', title: '@assessment-management:widgets.test-sheet.columns.input' },\n];\n\nconst COLUMN_DEFAULT_ITEM = {\n name: '',\n title: '',\n groupTitle: '',\n role: 'input',\n widget: { type: 'text-editor', options: {} },\n};\n\nconst ROW_DEFAULT_ITEM = {\n name: '',\n groupTitle: '',\n cells: {},\n};\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface AXMTestSheetSchemaStaticColumn {\n name: string;\n title: string;\n}\n\n//#endregion\n\n//#region ----- Layout -----\n\nexport function buildTestSheetRowModeNode(disabled: boolean): AXPWidgetNode {\n return labeledField('@assessment-management:widgets.test-sheet.row-mode.title', {\n type: 'select-editor',\n name: 'rowMode',\n path: 'rowMode',\n valueTransforms: ID_VALUE,\n options: {\n disabled,\n valueField: 'id',\n textField: 'title',\n dataSource: ROW_MODE_ITEMS,\n },\n }, 'fill');\n}\n\nexport function buildTestSheetColumnsNode(disabled: boolean): AXPWidgetNode {\n return repeaterNode('columns', disabled, COLUMN_DEFAULT_ITEM, [\n cardLayout([\n fieldRow([\n labeledField('@assessment-management:widgets.test-sheet.columns.name', textField('title', disabled), 'half'),\n labeledField(\n '@assessment-management:widgets.test-sheet.columns.group-title',\n textField('groupTitle', disabled),\n 'half',\n ),\n ]),\n labeledField(\n '@assessment-management:widgets.test-sheet.columns.role',\n selectField('role', COLUMN_ROLE_ITEMS, disabled),\n 'fill',\n ),\n {\n type: AXM_TEST_SHEET_CELL_TYPE_WIDGET,\n name: 'widget',\n path: 'widget',\n options: { readonly: disabled },\n },\n ]),\n ]);\n}\n\nexport function buildTestSheetRowsNode(\n disabled: boolean,\n staticColumns: AXMTestSheetSchemaStaticColumn[],\n): AXPWidgetNode {\n return repeaterNode('rows', disabled, ROW_DEFAULT_ITEM, [\n cardLayout([\n labeledField(\n '@assessment-management:widgets.test-sheet.rows.group-title',\n textField('groupTitle', disabled),\n 'fill',\n ),\n ...staticColumns.map((column) =>\n labeledField(column.title, textField(`cells.${column.name}`, disabled), 'fill'),\n ),\n ]),\n ]);\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction repeaterNode(\n path: 'columns' | 'rows',\n disabled: boolean,\n defaultItem: Record<string, unknown>,\n children: AXPWidgetNode[],\n): AXPWidgetNode {\n return {\n type: 'repeater-layout',\n name: path,\n path,\n options: {\n hasControls: true,\n allowReorder: !disabled,\n disabled,\n defaultItem,\n },\n children,\n };\n}\n\n/** Rounded card. This is the repeater row root. */\nfunction cardLayout(children: AXPWidgetNode[]): AXPWidgetNode {\n return {\n type: 'flex-layout',\n options: {\n flexDirection: 'column',\n flexWrap: 'nowrap',\n alignItems: 'stretch',\n gap: '12px',\n width: '100%',\n spacing: { padding: '12px', margin: '0' },\n border: {\n width: '1px',\n style: 'solid',\n radius: '0.5rem',\n color: 'rgb(var(--ax-sys-color-border-lighter-surface))',\n },\n },\n children,\n };\n}\n\nfunction fieldRow(children: AXPWidgetNode[]): AXPWidgetNode {\n return {\n type: 'flex-layout',\n options: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n gap: '12px',\n width: '100%',\n },\n children,\n };\n}\n\nfunction labeledField(\n label: string,\n editor: AXPWidgetNode,\n size: 'half' | 'fill',\n): AXPWidgetNode {\n const box =\n size === 'half'\n ? { width: 'calc(50% - 6px)', minWidth: '12rem' }\n : { width: '100%', minWidth: '0' };\n return {\n type: 'form-field',\n options: {\n label,\n showLabel: true,\n ...box,\n },\n children: [editor],\n };\n}\n\nfunction textField(path: string, disabled: boolean): AXPWidgetNode {\n return {\n type: 'text-editor',\n name: path,\n path,\n options: { disabled },\n };\n}\n\nfunction selectField(\n path: string,\n dataSource: { id: string; title: string }[],\n disabled: boolean,\n): AXPWidgetNode {\n return {\n type: 'select-editor',\n name: path,\n path,\n valueTransforms: ID_VALUE,\n options: {\n disabled,\n valueField: 'id',\n textField: 'title',\n dataSource,\n },\n };\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPValueWidgetComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport {\n buildTestSheetColumnsNode,\n buildTestSheetRowModeNode,\n buildTestSheetRowsNode,\n type AXMTestSheetSchemaStaticColumn,\n} from './test-sheet-schema.layout';\nimport type { AXMTestSheetDefinition } from './test-sheet.types';\nimport { assignTestSheetItemNames, ensureTestSheetColumnWidgets, testSheetChoiceId } from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-schema-widget-edit',\n templateUrl: './test-sheet-schema-widget-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXTranslationModule, AXPWidgetCoreModule],\n})\nexport class AXMTestSheetSchemaWidgetEditComponent extends AXPValueWidgetComponent<AXMTestSheetDefinition | null> {\n //#region ----- Computed Properties -----\n\n protected readonly isReadonly = computed(() => this.options()['readonly'] === true);\n\n protected readonly rowModeNode = computed(() => buildTestSheetRowModeNode(this.isReadonly()));\n\n protected readonly columnsNode = computed(() => buildTestSheetColumnsNode(this.isReadonly()));\n\n protected readonly showFixedRows = computed(\n () => testSheetChoiceId(this.getValue()?.rowMode) !== 'repeated',\n );\n\n protected readonly staticColumns = computed(\n () => {\n const columns = this.getValue()?.columns;\n if (!Array.isArray(columns)) {\n return [] as AXMTestSheetSchemaStaticColumn[];\n }\n return columns\n .filter(\n (column) =>\n typeof column?.name === 'string' &&\n column.name.trim().length > 0 &&\n testSheetChoiceId(column.role) === 'static',\n )\n .map((column) => ({\n name: column.name.trim(),\n title: typeof column.title === 'string' && column.title.trim() ? column.title.trim() : column.name.trim(),\n }));\n },\n { equal: isEqual },\n );\n\n protected readonly rowsNode = computed(() => buildTestSheetRowsNode(this.isReadonly(), this.staticColumns()));\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n super();\n effect(() => {\n this.contextService.changeEvent();\n this.assignMissingNames();\n });\n }\n\n //#endregion\n\n //#region ----- Schema Updates -----\n\n /**\n * Repeater rows start without a column or row key.\n * Names are assigned once so static cells and answers keep a stable path.\n * Input columns that only have a legacy widget type get a widget node for the configurator.\n */\n private assignMissingNames(): void {\n const value = this.getValue();\n if (!value || typeof value !== 'object') {\n return;\n }\n const namedColumns = Array.isArray(value.columns) ? assignTestSheetItemNames(value.columns, 'col') : null;\n const columns = namedColumns ? ensureTestSheetColumnWidgets(namedColumns.items) : null;\n const rows = Array.isArray(value.rows) ? assignTestSheetItemNames(value.rows, 'row') : null;\n const columnsChanged = !!namedColumns?.changed || !!columns?.changed;\n if (!columnsChanged && !rows?.changed) {\n return;\n }\n this.setValue({\n ...value,\n ...(columnsChanged && columns ? { columns: columns.items } : {}),\n ...(rows?.changed ? { rows: rows.items } : {}),\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"flex flex-col gap-4\">\n <!-- ----- Row mode: fixed template or respondent-added rows ----- -->\n <ng-container axp-widget-renderer [node]=\"rowModeNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n\n <!-- ----- Columns: each repeater row is a bordered flex card ----- -->\n <section class=\"flex flex-col gap-2\">\n <h3 class=\"text-sm font-medium\">\n {{ '@assessment-management:widgets.test-sheet.columns.title' | translate | async }}\n </h3>\n <ng-container axp-widget-renderer [node]=\"columnsNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n </section>\n\n <!-- ----- Fixed rows and the merged title that can span them ----- -->\n @if (showFixedRows()) {\n <section class=\"flex flex-col gap-2\">\n <h3 class=\"text-sm font-medium\">\n {{ '@assessment-management:widgets.test-sheet.rows.title' | translate | async }}\n </h3>\n <ng-container axp-widget-renderer [node]=\"rowsNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n </section>\n }\n</div>\n"],"names":["i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-C9B-HU4h.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema.layout.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema-widget-edit.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-schema-widget-edit.component.html"],"sourcesContent":["import { objectKeyValueTransforms } from '@acorex-platform/framework-client/core';\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\n\nimport { AXM_TEST_SHEET_CELL_TYPE_WIDGET } from './test-sheet.types';\n\n//#region ----- Constants -----\n\nconst ID_VALUE = objectKeyValueTransforms('id');\n\nconst ROW_MODE_ITEMS = [\n { id: 'fixed', title: '@assessment-management:widgets.test-sheet.row-mode.fixed' },\n { id: 'repeated', title: '@assessment-management:widgets.test-sheet.row-mode.repeated' },\n];\n\nconst COLUMN_ROLE_ITEMS = [\n { id: 'static', title: '@assessment-management:widgets.test-sheet.columns.static' },\n { id: 'input', title: '@assessment-management:widgets.test-sheet.columns.input' },\n];\n\nconst COLUMN_DEFAULT_ITEM = {\n name: '',\n title: '',\n groupTitle: '',\n role: 'input',\n widget: { type: 'text-editor', options: {} },\n};\n\nconst ROW_DEFAULT_ITEM = {\n name: '',\n groupTitle: '',\n cells: {},\n};\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface AXMTestSheetSchemaStaticColumn {\n name: string;\n title: string;\n}\n\n//#endregion\n\n//#region ----- Layout -----\n\nexport function buildTestSheetRowModeNode(disabled: boolean): AXPWidgetNode {\n return labeledField('@assessment-management:widgets.test-sheet.row-mode.title', {\n type: 'select-editor',\n name: 'rowMode',\n path: 'rowMode',\n valueTransforms: ID_VALUE,\n options: {\n disabled,\n valueField: 'id',\n textField: 'title',\n dataSource: ROW_MODE_ITEMS,\n },\n }, 'fill');\n}\n\nexport function buildTestSheetColumnsNode(disabled: boolean): AXPWidgetNode {\n return repeaterNode('columns', disabled, COLUMN_DEFAULT_ITEM, [\n cardLayout([\n fieldRow([\n labeledField('@assessment-management:widgets.test-sheet.columns.name', textField('title', disabled), 'half'),\n labeledField(\n '@assessment-management:widgets.test-sheet.columns.group-title',\n textField('groupTitle', disabled),\n 'half',\n ),\n ]),\n labeledField(\n '@assessment-management:widgets.test-sheet.columns.role',\n selectField('role', COLUMN_ROLE_ITEMS, disabled),\n 'fill',\n ),\n {\n type: AXM_TEST_SHEET_CELL_TYPE_WIDGET,\n name: 'widget',\n path: 'widget',\n options: { readonly: disabled },\n },\n ]),\n ]);\n}\n\nexport function buildTestSheetRowsNode(\n disabled: boolean,\n staticColumns: AXMTestSheetSchemaStaticColumn[],\n): AXPWidgetNode {\n return repeaterNode('rows', disabled, ROW_DEFAULT_ITEM, [\n cardLayout([\n labeledField(\n '@assessment-management:widgets.test-sheet.rows.group-title',\n textField('groupTitle', disabled),\n 'fill',\n ),\n ...staticColumns.map((column) =>\n labeledField(column.title, textField(`cells.${column.name}`, disabled), 'fill'),\n ),\n ]),\n ]);\n}\n\n//#endregion\n\n//#region ----- Helpers -----\n\nfunction repeaterNode(\n path: 'columns' | 'rows',\n disabled: boolean,\n defaultItem: Record<string, unknown>,\n children: AXPWidgetNode[],\n): AXPWidgetNode {\n return {\n type: 'repeater-layout',\n name: path,\n path,\n options: {\n hasControls: true,\n allowReorder: !disabled,\n disabled,\n defaultItem,\n },\n children,\n };\n}\n\n/** Rounded card. This is the repeater row root. */\nfunction cardLayout(children: AXPWidgetNode[]): AXPWidgetNode {\n return {\n type: 'flex-layout',\n options: {\n flexDirection: 'column',\n flexWrap: 'nowrap',\n alignItems: 'stretch',\n gap: '12px',\n width: '100%',\n spacing: { padding: '12px', margin: '0' },\n border: {\n width: '1px',\n style: 'solid',\n radius: '0.5rem',\n color: 'rgb(var(--ax-sys-color-border-lighter-surface))',\n },\n },\n children,\n };\n}\n\nfunction fieldRow(children: AXPWidgetNode[]): AXPWidgetNode {\n return {\n type: 'flex-layout',\n options: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n gap: '12px',\n width: '100%',\n },\n children,\n };\n}\n\nfunction labeledField(\n label: string,\n editor: AXPWidgetNode,\n size: 'half' | 'fill',\n): AXPWidgetNode {\n const box =\n size === 'half'\n ? { width: 'calc(50% - 6px)', minWidth: '12rem' }\n : { width: '100%', minWidth: '0' };\n return {\n type: 'form-field',\n options: {\n label,\n showLabel: true,\n ...box,\n },\n children: [editor],\n };\n}\n\nfunction textField(path: string, disabled: boolean): AXPWidgetNode {\n return {\n type: 'text-editor',\n name: path,\n path,\n options: { disabled },\n };\n}\n\nfunction selectField(\n path: string,\n dataSource: { id: string; title: string }[],\n disabled: boolean,\n): AXPWidgetNode {\n return {\n type: 'select-editor',\n name: path,\n path,\n valueTransforms: ID_VALUE,\n options: {\n disabled,\n valueField: 'id',\n textField: 'title',\n dataSource,\n },\n };\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPValueWidgetComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport {\n buildTestSheetColumnsNode,\n buildTestSheetRowModeNode,\n buildTestSheetRowsNode,\n type AXMTestSheetSchemaStaticColumn,\n} from './test-sheet-schema.layout';\nimport type { AXMTestSheetDefinition } from './test-sheet.types';\nimport { assignTestSheetItemNames, ensureTestSheetColumnWidgets, testSheetChoiceId } from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-schema-widget-edit',\n templateUrl: './test-sheet-schema-widget-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXTranslationModule, AXPWidgetCoreModule],\n})\nexport class AXMTestSheetSchemaWidgetEditComponent extends AXPValueWidgetComponent<AXMTestSheetDefinition | null> {\n //#region ----- Computed Properties -----\n\n protected readonly isReadonly = computed(() => this.options()['readonly'] === true);\n\n protected readonly rowModeNode = computed(() => buildTestSheetRowModeNode(this.isReadonly()));\n\n protected readonly columnsNode = computed(() => buildTestSheetColumnsNode(this.isReadonly()));\n\n protected readonly showFixedRows = computed(\n () => testSheetChoiceId(this.getValue()?.rowMode) !== 'repeated',\n );\n\n protected readonly staticColumns = computed(\n () => {\n const columns = this.getValue()?.columns;\n if (!Array.isArray(columns)) {\n return [] as AXMTestSheetSchemaStaticColumn[];\n }\n return columns\n .filter(\n (column) =>\n typeof column?.name === 'string' &&\n column.name.trim().length > 0 &&\n testSheetChoiceId(column.role) === 'static',\n )\n .map((column) => ({\n name: column.name.trim(),\n title: typeof column.title === 'string' && column.title.trim() ? column.title.trim() : column.name.trim(),\n }));\n },\n { equal: isEqual },\n );\n\n protected readonly rowsNode = computed(() => buildTestSheetRowsNode(this.isReadonly(), this.staticColumns()));\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n super();\n effect(() => {\n this.contextService.changeEvent();\n this.assignMissingNames();\n });\n }\n\n //#endregion\n\n //#region ----- Schema Updates -----\n\n /**\n * Repeater rows start without a column or row key.\n * Names are assigned once so static cells and answers keep a stable path.\n * Input columns that only have a legacy widget type get a widget node for the configurator.\n */\n private assignMissingNames(): void {\n const value = this.getValue();\n if (!value || typeof value !== 'object') {\n return;\n }\n const namedColumns = Array.isArray(value.columns) ? assignTestSheetItemNames(value.columns, 'col') : null;\n const columns = namedColumns ? ensureTestSheetColumnWidgets(namedColumns.items) : null;\n const rows = Array.isArray(value.rows) ? assignTestSheetItemNames(value.rows, 'row') : null;\n const columnsChanged = !!namedColumns?.changed || !!columns?.changed;\n if (!columnsChanged && !rows?.changed) {\n return;\n }\n this.setValue({\n ...value,\n ...(columnsChanged && columns ? { columns: columns.items } : {}),\n ...(rows?.changed ? { rows: rows.items } : {}),\n });\n }\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"flex flex-col gap-4\">\n <!-- ----- Row mode: fixed template or respondent-added rows ----- -->\n <ng-container axp-widget-renderer [node]=\"rowModeNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n\n <!-- ----- Columns: each repeater row is a bordered flex card ----- -->\n <section class=\"flex flex-col gap-2\">\n <h3 class=\"text-sm font-medium\">\n {{ '@assessment-management:widgets.test-sheet.columns.title' | translate | async }}\n </h3>\n <ng-container axp-widget-renderer [node]=\"columnsNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n </section>\n\n <!-- ----- Fixed rows and the merged title that can span them ----- -->\n @if (showFixedRows()) {\n <section class=\"flex flex-col gap-2\">\n <h3 class=\"text-sm font-medium\">\n {{ '@assessment-management:widgets.test-sheet.rows.title' | translate | async }}\n </h3>\n <ng-container axp-widget-renderer [node]=\"rowsNode()\" [parentNode]=\"this\" [mode]=\"'edit'\"></ng-container>\n </section>\n }\n</div>\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layou
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { model, signal, computed, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
4
|
import { isEqual } from 'lodash-es';
|
|
5
|
-
import { A as AXMTestSheetGridComponent } from './acorex-platform-module-assessment-management-client-test-sheet-grid.component-
|
|
6
|
-
import { n as normalizeTestSheetDefinition, a as buildRepeatedTestSheetRows, b as buildFixedTestSheetRows, e as applyTestSheetComputations, f as toStoredTestSheetAnswer } from './acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
5
|
+
import { A as AXMTestSheetGridComponent } from './acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs';
|
|
6
|
+
import { n as normalizeTestSheetDefinition, a as buildRepeatedTestSheetRows, b as buildFixedTestSheetRows, e as applyTestSheetComputations, f as toStoredTestSheetAnswer } from './acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs';
|
|
7
7
|
|
|
8
8
|
//#region ----- Imports -----
|
|
9
9
|
//#endregion
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
78
78
|
}], ctorParameters: () => [], propDecorators: { repeatedRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "repeatedRows", required: false }] }, { type: i0.Output, args: ["repeatedRowsChange"] }] } });
|
|
79
79
|
|
|
80
80
|
export { AXMTestSheetWidgetEditComponent };
|
|
81
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component
|
|
81
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-DwB4tgSZ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-DwB4tgSZ.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-widget-edit.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-widget-edit.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, model, signal, untracked } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport { AXMTestSheetGridComponent } from './test-sheet-grid.component';\nimport type { AXMTestSheetDefinition } from './test-sheet.types';\nimport {\n applyTestSheetComputations,\n buildFixedTestSheetRows,\n buildRepeatedTestSheetRows,\n normalizeTestSheetDefinition,\n toStoredTestSheetAnswer,\n} from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-widget-edit',\n templateUrl: './test-sheet-widget-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMTestSheetGridComponent],\n})\nexport class AXMTestSheetWidgetEditComponent extends AXPValueWidgetComponent<Record<string, unknown>[] | null> {\n //#region ----- State Signals -----\n\n protected readonly repeatedRows = model<Record<string, unknown>[]>([]);\n\n /** Fixed-mode rows. Stops tracking the saved answer after the first edit so the grid is not rebuilt. */\n protected readonly fixedRows = signal<Record<string, unknown>[]>([]);\n\n private answerTouched = false;\n\n //#endregion\n\n //#region ----- Computed Properties -----\n\n protected readonly definition = computed<AXMTestSheetDefinition>(() =>\n normalizeTestSheetDefinition(this.options()['sheet']),\n );\n\n protected readonly isReadonly = computed(() => this.options()['readonly'] === true);\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n constructor() {\n super();\n effect(() => {\n const definition = this.definition();\n const value = this.getValue();\n if (this.answerTouched) {\n return;\n }\n untracked(() => {\n if (definition.rowMode === 'repeated') {\n const next = buildRepeatedTestSheetRows(value);\n if (!isEqual(next, this.repeatedRows())) {\n this.repeatedRows.set(next);\n }\n return;\n }\n const next = buildFixedTestSheetRows(definition, value);\n if (!isEqual(next, this.fixedRows())) {\n this.fixedRows.set(next);\n }\n });\n });\n }\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n protected onSheetChange(rows: Record<string, unknown>[]): void {\n if (this.isReadonly()) {\n return;\n }\n this.answerTouched = true;\n const next = applyTestSheetComputations(rows, this.definition());\n if (next !== rows) {\n if (this.definition().rowMode === 'repeated') {\n this.repeatedRows.set(next);\n } else {\n this.fixedRows.set(next);\n }\n }\n const stored = toStoredTestSheetAnswer(next, this.definition());\n const current = this.getValue() ?? null;\n if (!isEqual(stored, current)) {\n this.setValue(stored);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<axm-test-sheet-grid\n [definition]=\"definition()\"\n [rowsInput]=\"fixedRows()\"\n [(rowsModel)]=\"repeatedRows\"\n [readonly]=\"isReadonly()\"\n (sheetChange)=\"onSheetChange($event)\"\n/>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
-
import { A as AXMTestSheetGridComponent } from './acorex-platform-module-assessment-management-client-test-sheet-grid.component-
|
|
5
|
-
import { n as normalizeTestSheetDefinition, b as buildFixedTestSheetRows, a as buildRepeatedTestSheetRows } from './acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
4
|
+
import { A as AXMTestSheetGridComponent } from './acorex-platform-module-assessment-management-client-test-sheet-grid.component-BaBbL32O.mjs';
|
|
5
|
+
import { n as normalizeTestSheetDefinition, b as buildFixedTestSheetRows, a as buildRepeatedTestSheetRows } from './acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs';
|
|
6
6
|
|
|
7
7
|
//#region ----- Imports -----
|
|
8
8
|
//#endregion
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
27
27
|
}] });
|
|
28
28
|
|
|
29
29
|
export { AXMTestSheetWidgetViewComponent };
|
|
30
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-
|
|
30
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-CbbpEr9W.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-CbbpEr9W.mjs","sources":["../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-widget-view.component.ts","../../../../libs/modules/assessment-management/client/src/lib/features/questionnaire-builder/questions/widgets/test-sheet/test-sheet-widget-view.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\nimport { AXMTestSheetGridComponent } from './test-sheet-grid.component';\nimport {\n buildFixedTestSheetRows,\n buildRepeatedTestSheetRows,\n normalizeTestSheetDefinition,\n} from './test-sheet.util';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-test-sheet-widget-view',\n templateUrl: './test-sheet-widget-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMTestSheetGridComponent],\n})\nexport class AXMTestSheetWidgetViewComponent extends AXPValueWidgetComponent<Record<string, unknown>[] | null> {\n //#region ----- Computed Properties -----\n\n protected readonly definition = computed(() => normalizeTestSheetDefinition(this.options()['sheet']));\n\n protected readonly fixedRows = computed(() => buildFixedTestSheetRows(this.definition(), this.getValue()));\n\n protected readonly repeatedRows = computed(() => buildRepeatedTestSheetRows(this.getValue()));\n\n //#endregion\n}\n\n//#endregion\n","<axm-test-sheet-grid\n [definition]=\"definition()\"\n [rowsInput]=\"fixedRows()\"\n [rowsModel]=\"repeatedRows()\"\n [readonly]=\"true\"\n/>\n"],"names":[],"mappings":";;;;;;AAAA;AAYA;AAEA;AAQM,MAAO,+BAAgC,SAAQ,uBAAyD,CAAA;AAN9G,IAAA,WAAA,GAAA;;;AASqB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,4BAA4B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;uFAAC;AAElF,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;sFAAC;AAEvF,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;yFAAC;AAG9F,IAAA;8GAVY,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5C,qJAMA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDcY,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAExB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,mBAErB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,yBAAyB,CAAC,EAAA,QAAA,EAAA,qJAAA,EAAA;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { x as AXM_TEST_SHEET_ROW_GROUP_PATH, y as AXM_TEST_SHEET_INPUT_WIDGET_TYPES } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-
|
|
1
|
+
import { x as AXM_TEST_SHEET_ROW_GROUP_PATH, y as AXM_TEST_SHEET_INPUT_WIDGET_TYPES } from './acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-5ECR73Eo.mjs';
|
|
2
2
|
|
|
3
3
|
//#region ----- Normalize -----
|
|
4
4
|
function emptyTestSheetDefinition() {
|
|
@@ -420,4 +420,4 @@ function isRecord(value) {
|
|
|
420
420
|
//#endregion
|
|
421
421
|
|
|
422
422
|
export { buildRepeatedTestSheetRows as a, buildFixedTestSheetRows as b, toTestSheetRowWidgets as c, testSheetHasRowGroups as d, applyTestSheetComputations as e, toStoredTestSheetAnswer as f, testSheetChoiceId as g, assignTestSheetItemNames as h, ensureTestSheetColumnWidgets as i, normalizeTestSheetDefinition as n, toTestSheetSpreadsheetColumns as t };
|
|
423
|
-
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet.util-
|
|
423
|
+
//# sourceMappingURL=acorex-platform-module-assessment-management-client-test-sheet.util-DP8KRA3M.mjs.map
|