@acorex-platform/module-assessment-management-client 0.0.56 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/fesm2022/{acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-juxXq2pM.mjs → acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-DxRFMK3k.mjs} +1472 -160
  2. package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-DxRFMK3k.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs → acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs.map → acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs.map} +1 -1
  5. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs +1 -11
  6. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-questionnaire.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-template.mjs +1 -78
  8. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entities-template.mjs.map +1 -1
  9. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-DYpWu3Vx.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-DDCy1T4t.mjs} +6 -6
  10. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-DYpWu3Vx.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-acorex-platform-module-assessment-management-client-contracts-entity-catalog-DDCy1T4t.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-CUctZ-0K.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-DXJp2k3o.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-CUctZ-0K.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-case.entity-DXJp2k3o.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-C2JJw_JJ.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-Q7-5toSQ.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-C2JJw_JJ.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-assessment-session.entity-Q7-5toSQ.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-D3y_rWUI.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-CPEpSSlP.mjs} +2 -2
  16. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-D3y_rWUI.mjs.map → acorex-platform-module-assessment-management-client-contracts-entity-catalog-question-bank-item.entity-CPEpSSlP.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-CVz5W0fF.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-DOG7yHv-.mjs} +3 -13
  18. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-DOG7yHv-.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-C01AW5NW.mjs → acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-BeYGYRb7.mjs} +3 -80
  20. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-BeYGYRb7.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog.mjs +1 -1
  22. package/fesm2022/acorex-platform-module-assessment-management-client-contracts.mjs +33 -1
  23. package/fesm2022/acorex-platform-module-assessment-management-client-contracts.mjs.map +1 -1
  24. package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs} +2 -2
  25. package/fesm2022/{acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs.map → acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs.map} +1 -1
  26. package/fesm2022/acorex-platform-module-assessment-management-client-form-template-viewer-edit.component-BlGBTznW.mjs +112 -0
  27. package/fesm2022/acorex-platform-module-assessment-management-client-form-template-viewer-edit.component-BlGBTznW.mjs.map +1 -0
  28. package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-COZcUPEj.mjs → acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-CeLpGSGc.mjs} +4 -4
  29. package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-COZcUPEj.mjs.map → acorex-platform-module-assessment-management-client-form-template-viewer-popup.component-CeLpGSGc.mjs.map} +1 -1
  30. package/fesm2022/{acorex-platform-module-assessment-management-client-form-template-viewer.service-CvSRpoos.mjs → acorex-platform-module-assessment-management-client-form-template-viewer.service-DoO7ZQmw.mjs} +15 -11
  31. package/fesm2022/acorex-platform-module-assessment-management-client-form-template-viewer.service-DoO7ZQmw.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-module-assessment-management-client-index-er5gI6QK.mjs +68 -0
  33. package/fesm2022/acorex-platform-module-assessment-management-client-index-er5gI6QK.mjs.map +1 -0
  34. package/fesm2022/{acorex-platform-module-assessment-management-client-open-form-template.command-CmR-xFHE.mjs → acorex-platform-module-assessment-management-client-open-form-template.command-Cz23Vkyv.mjs} +3 -3
  35. package/fesm2022/{acorex-platform-module-assessment-management-client-open-form-template.command-CmR-xFHE.mjs.map → acorex-platform-module-assessment-management-client-open-form-template.command-Cz23Vkyv.mjs.map} +1 -1
  36. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-form-template.command-BEzE0620.mjs → acorex-platform-module-assessment-management-client-preview-form-template.command-DDQOvVpt.mjs} +2 -2
  37. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-form-template.command-BEzE0620.mjs.map → acorex-platform-module-assessment-management-client-preview-form-template.command-DDQOvVpt.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs → acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs} +2 -2
  39. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs.map → acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs.map} +1 -1
  40. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-duK7Tjjp.mjs → acorex-platform-module-assessment-management-client-preview-questionnaire.command-BYh-3EP9.mjs} +2 -2
  41. package/fesm2022/{acorex-platform-module-assessment-management-client-preview-questionnaire.command-duK7Tjjp.mjs.map → acorex-platform-module-assessment-management-client-preview-questionnaire.command-BYh-3EP9.mjs.map} +1 -1
  42. package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-B7_G_C5B.mjs → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-DARYq7ZJ.mjs} +4 -4
  43. package/fesm2022/{acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-B7_G_C5B.mjs.map → acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-DARYq7ZJ.mjs.map} +1 -1
  44. package/fesm2022/acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-DIktPLmP.mjs +69 -0
  45. package/fesm2022/acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-DIktPLmP.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BAoqjZ7K.mjs +78 -0
  47. package/fesm2022/acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BAoqjZ7K.mjs.map +1 -0
  48. package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-daQL4OD_.mjs → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-O-d2f3fv.mjs} +4 -4
  49. package/fesm2022/{acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-daQL4OD_.mjs.map → acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-O-d2f3fv.mjs.map} +1 -1
  50. package/fesm2022/acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-D0Rkeywu.mjs +26 -0
  51. package/fesm2022/acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-D0Rkeywu.mjs.map +1 -0
  52. package/fesm2022/acorex-platform-module-assessment-management-client-related-content-viewer-page.component-CI9AlM58.mjs +315 -0
  53. package/fesm2022/acorex-platform-module-assessment-management-client-related-content-viewer-page.component-CI9AlM58.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs → acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs} +2 -2
  55. package/fesm2022/{acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs.map → acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs.map} +1 -1
  56. package/fesm2022/acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-DlpkbJCZ.mjs +117 -0
  57. package/fesm2022/acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-DlpkbJCZ.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-t67ngnrD.mjs +129 -0
  59. package/fesm2022/acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-t67ngnrD.mjs.map +1 -0
  60. package/fesm2022/acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-DHgNcZ60.mjs +120 -0
  61. package/fesm2022/acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-DHgNcZ60.mjs.map +1 -0
  62. package/fesm2022/{acorex-platform-module-assessment-management-client-template-picker.component-D_UCdFOH.mjs → acorex-platform-module-assessment-management-client-template-picker.component-DzboI7GV.mjs} +3 -3
  63. package/fesm2022/{acorex-platform-module-assessment-management-client-template-picker.component-D_UCdFOH.mjs.map → acorex-platform-module-assessment-management-client-template-picker.component-DzboI7GV.mjs.map} +1 -1
  64. package/fesm2022/{acorex-platform-module-assessment-management-client-template-widget-edit.component-DERabYdH.mjs → acorex-platform-module-assessment-management-client-template-widget-edit.component-3DZovs7s.mjs} +2 -2
  65. package/fesm2022/{acorex-platform-module-assessment-management-client-template-widget-edit.component-DERabYdH.mjs.map → acorex-platform-module-assessment-management-client-template-widget-edit.component-3DZovs7s.mjs.map} +1 -1
  66. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-DRFfLOCE.mjs +90 -0
  67. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-DRFfLOCE.mjs.map +1 -0
  68. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-grid.component-DENxbikr.mjs +77 -0
  69. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-grid.component-DENxbikr.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-Bcvp2Dx5.mjs +236 -0
  71. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-Bcvp2Dx5.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-column.component-B3Lx7yuD.mjs +50 -0
  73. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-column.component-B3Lx7yuD.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-CrvzEcSh.mjs +81 -0
  75. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-CrvzEcSh.mjs.map +1 -0
  76. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-sSky9nAq.mjs +30 -0
  77. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-sSky9nAq.mjs.map +1 -0
  78. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet.util-T-kPrzoj.mjs +423 -0
  79. package/fesm2022/acorex-platform-module-assessment-management-client-test-sheet.util-T-kPrzoj.mjs.map +1 -0
  80. package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-DjJajIkL.mjs → acorex-platform-module-assessment-management-client-view-session-answers.command-CxZirYRJ.mjs} +2 -2
  81. package/fesm2022/{acorex-platform-module-assessment-management-client-view-session-answers.command-DjJajIkL.mjs.map → acorex-platform-module-assessment-management-client-view-session-answers.command-CxZirYRJ.mjs.map} +1 -1
  82. package/fesm2022/acorex-platform-module-assessment-management-client.mjs +1 -1
  83. package/i18n/en-AU/assessment-management.json +69 -0
  84. package/i18n/en-AU/form-template-management.json +8 -0
  85. package/i18n/en-US/assessment-management.json +69 -0
  86. package/i18n/en-US/form-template-management.json +8 -0
  87. package/i18n/fa-IR/assessment-management.json +69 -0
  88. package/i18n/fa-IR/form-template-management.json +8 -0
  89. package/package.json +3 -3
  90. package/types/acorex-platform-module-assessment-management-client-contracts.d.ts +23 -3
  91. package/types/acorex-platform-module-assessment-management-client.d.ts +10 -1
  92. package/fesm2022/acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-juxXq2pM.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-questionnaire.entity-CVz5W0fF.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-module-assessment-management-client-contracts-entity-catalog-template.entity-C01AW5NW.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-module-assessment-management-client-form-template-viewer.service-CvSRpoos.mjs.map +0 -1
@@ -1,30 +1,33 @@
1
- import { AXMAssessmentManagementFeatureKeys, RootConfig, AXPSafetyRiskPermissionKeys, AXPAssessmentManagementMenuKeys, AXPContentDocumentsPermissionKeys, AXPFormTemplateManagementMenuKeys, parseQuestionHintPartialFromRecord, flattenQuestionnaireOutcomeItems, normalizeQuestionnaireOutcomesValue, normalizeQuestionnaireOutcomeDisplayRules, matchesQuestionnaireOutcomeDisplayRule, normalizeQuestionCommentConfig, commentConfigForEditForm, mergeQuestionCommentConfig, normalizeQuestionHintFromEntityRow, mergeQuestionHintForViewer, normalizeQuestionHintMode, normalizeQuestionHintConfig, diffQuestionHintOverride, diffQuestionCommentOverride, toDisplaySettings, toPrintSettings, toPrePostConfig, QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY, findDuplicateOutcomeNames, QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY, resolvePrintSettings, resolvePrintPaging, getQuestionAnswerCommentStoragePath, getQuestionCommentVisibilityFlag, DEFAULT_QUESTIONNAIRE_PRINT_SETTINGS, normalizeCompletionMode, AXMFormTemplateTypes, wrapPrintDocument, minifyPrintHtml, resolvePrintPlainText, parseQuestionnaireOutcomeDisplayColor, isQuestionnaireOutcomeDisplayColorHex, resolvePrintContentWidthMm } from '@acorex-platform/module-assessment-management-client/contracts';
1
+ import { AXMAssessmentManagementFeatureKeys, RootConfig, AXPSafetyRiskPermissionKeys, AXPAssessmentManagementMenuKeys, AXPContentDocumentsPermissionKeys, AXPFormTemplateManagementMenuKeys, AXMFormTemplateTypes, QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY, parseQuestionHintPartialFromRecord, flattenQuestionnaireOutcomeItems, normalizeQuestionnaireOutcomesValue, normalizeQuestionnaireOutcomeDisplayRules, matchesQuestionnaireOutcomeDisplayRule, readQuestionnaireItemColSpan, normalizeQuestionCommentConfig, commentConfigForEditForm, mergeQuestionCommentConfig, normalizeQuestionHintFromEntityRow, mergeQuestionHintForViewer, questionnaireItemLayoutOverride, normalizeQuestionHintMode, normalizeQuestionHintConfig, diffQuestionHintOverride, diffQuestionCommentOverride, toDisplaySettings, toPrintSettings, toPrePostConfig, findDuplicateOutcomeNames, QUESTIONNAIRE_OUTCOMES_PAGE_COMPONENT_KEY, resolvePrintSettings, resolvePrintPaging, getQuestionAnswerCommentStoragePath, getQuestionCommentVisibilityFlag, DEFAULT_QUESTIONNAIRE_PRINT_SETTINGS, normalizeCompletionMode, wrapPrintDocument, minifyPrintHtml, resolvePrintPlainText, parseQuestionnaireOutcomeDisplayColor, isQuestionnaireOutcomeDisplayColorHex, resolvePrintContentWidthMm } from '@acorex-platform/module-assessment-management-client/contracts';
2
2
  import { AXPCommonMenuKeys, AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';
3
- import { AXPEntityService, AXPEntityDefinitionRegistryService, AXPFileListComponent } from '@acorex-platform/framework-client/layout/entity';
3
+ import { AXPEntityService, cloneLayoutArrays, actionExists, ensureLayoutSection, ensureLayoutPropertyView, AXP_ENTITY_ACTION_PLUGIN, AXPEntityDefinitionRegistryService, AXPFileListComponent } from '@acorex-platform/framework-client/layout/entity';
4
4
  import * as i0 from '@angular/core';
5
5
  import { inject, Injectable, NgModule, input, output, signal, viewChild, computed, effect, untracked, ChangeDetectionStrategy, Component, ViewEncapsulation, ElementRef, afterNextRender, InjectionToken, HostBinding, ChangeDetectorRef } from '@angular/core';
6
6
  import { AXPSearchCommandProvider, createEntityCommandOptions, AXPStickyDirective, AX_FILE_TYPE_METADATA_SUPPORT_BY_FILE_VIEWER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_PROTECTED_ROUTE_GUARDS, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER } from '@acorex-platform/framework-client/common';
7
7
  import { AXPCommandService, provideCommandSetups, provideQuerySetups, provideCommand } from '@acorex-platform/framework-client/runtime';
8
8
  import { AXPSessionService, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';
9
9
  import { AXPDataSelectorService, AXPPropertyViewerService, AXPStandardSectionItemsBuilderComponent, AXPStateMessageComponent, AXP_PAGE_COMPONENT_PROVIDER, AXPOutcomeResultsViewerComponent, AXPThemeLayoutBlockComponent, AXPStopwatchComponent } from '@acorex-platform/framework-client/layout/components';
10
- import { AXPExpressionEvaluatorService, AXPDeviceService, AXPBroadcastEventService, AXPContextStore, AXPDataGenerator, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';
10
+ import { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXPDialogOpener, AXPExpressionEvaluatorService, AXPDeviceService, AXPBroadcastEventService, AXPContextStore, AXPDataGenerator, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/core';
11
11
  import { ROUTES, ActivatedRoute } from '@angular/router';
12
12
  import { AXPRootLayoutComponent } from '@acorex-platform/framework-client/themes/default';
13
13
  import * as i1$1 from '@acorex-platform/framework-client/layout/widget-core';
14
- import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetRegistryService, AXPWidgetContainerComponent, AXPValueWidgetComponent, AXPLayoutBaseWidgetComponent, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreService } from '@acorex-platform/framework-client/layout/widget-core';
15
- import { AXPWidgetGroupEnum, createBooleanProperty, createStringProperty } from '@acorex-platform/framework-shared/widget-core';
14
+ import { AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule, AXPWidgetRegistryService, AXPWidgetContainerComponent, AXPValueWidgetComponent, AXPLayoutBaseWidgetComponent, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreService } from '@acorex-platform/framework-client/layout/widget-core';
15
+ import { get } from 'lodash-es';
16
+ import { AXPEntityCommandScope, AXPEntityEventsKeys } from '@acorex-platform/framework-shared/entity';
17
+ import { AXPWidgetsList, AXPWidgetsCatalog, containsHtmlMarkup, AXPSystemStatusType, createRandomUuid, runtimeCommandPayloadData, resolveToSurfaceClass } from '@acorex-platform/framework-shared/core';
16
18
  import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';
19
+ import { AXPWidgetGroupEnum, createBooleanProperty, createStringProperty } from '@acorex-platform/framework-shared/widget-core';
17
20
  import * as i3 from '@angular/common';
18
21
  import { CommonModule, AsyncPipe } from '@angular/common';
19
22
  import * as i1$3 from '@acorex/components/form';
20
23
  import { AXFormModule } from '@acorex/components/form';
21
- import * as i4 from '@acorex/core/translation';
24
+ import * as i3$1 from '@acorex/core/translation';
22
25
  import { resolveMultiLanguageString, AXTranslationService, AXTranslationModule, createMultiLanguageString, isEffectivelyEmptyLocalizedValue } from '@acorex/core/translation';
23
26
  import * as i2 from '@acorex/components/decorators';
24
27
  import { AXDecoratorModule } from '@acorex/components/decorators';
25
28
  import { AXToastService } from '@acorex/components/toast';
26
29
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
27
- import { cloneDeep, get, isEqual, isNil, first, defaultTo, isEmpty, isObject, set, isString, sortBy } from 'lodash';
30
+ import { cloneDeep, get as get$1, isEqual, isNil, first, defaultTo, isEmpty, isObject, set, isString, sortBy } from 'lodash';
28
31
  import { AXDataSource } from '@acorex/cdk/common';
29
32
  import { AXFullScreenDirective } from '@acorex/cdk/full-screen';
30
33
  import * as i1 from '@acorex/components/button';
@@ -35,19 +38,17 @@ import { AXSwitchModule } from '@acorex/components/switch';
35
38
  import * as i5 from '@angular/forms';
36
39
  import { FormsModule } from '@angular/forms';
37
40
  import { AXPopupService } from '@acorex/components/popup';
38
- import { AXPWidgetsCatalog, containsHtmlMarkup, AXPSystemStatusType, createRandomUuid, runtimeCommandPayloadData, resolveToSurfaceClass } from '@acorex-platform/framework-shared/core';
39
- import { AXPEntityEventsKeys } from '@acorex-platform/framework-shared/entity';
40
41
  import { AXPPageLayoutBaseComponent, AXPPageLayoutBase, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';
41
42
  import * as i2$1 from '@acorex/components/alert';
42
43
  import { AXAlertModule } from '@acorex/components/alert';
43
- import * as i4$1 from '@acorex/components/text-area';
44
+ import * as i4 from '@acorex/components/text-area';
44
45
  import { AXTextAreaModule } from '@acorex/components/text-area';
45
46
  import { AXSafePipe } from '@acorex/core/pipes';
46
47
  import { AXDrawerDirectiveModule } from '@acorex/cdk/drawer';
47
48
  import { AXResizableDirective } from '@acorex/cdk/resizable';
48
49
  import * as i2$2 from '@acorex/components/badge';
49
50
  import { AXBadgeModule } from '@acorex/components/badge';
50
- import * as i3$1 from '@acorex/components/drawer';
51
+ import * as i3$2 from '@acorex/components/drawer';
51
52
  import { AXDrawerModule } from '@acorex/components/drawer';
52
53
  import * as i1$2 from '@acorex/components/tabs';
53
54
  import { AXTabsComponent, AXTabsModule } from '@acorex/components/tabs';
@@ -58,7 +59,7 @@ import { AX_FILE_TYPE_METADATA_PURPOSE, AXFileTypeInfoProvider, AXFileModule, pr
58
59
  import { AXDialogService } from '@acorex/components/dialog';
59
60
  import { AXPDesignerConnector, AXPDesignerService, AXPWidgetDesignerRendererDirective, AXPDesignerAddWidgetMiniButtonComponent } from '@acorex-platform/framework-client/layout/designer';
60
61
  import { DomSanitizer } from '@angular/platform-browser';
61
- import * as i3$2 from '@acorex/components/popover';
62
+ import * as i3$3 from '@acorex/components/popover';
62
63
  import { AXPopoverModule } from '@acorex/components/popover';
63
64
 
64
65
  //#region ---- Imports ----
@@ -254,6 +255,1093 @@ var searchCommand_provider = /*#__PURE__*/Object.freeze({
254
255
  AXMAssessmentManagementSearchCommandProvider: AXMAssessmentManagementSearchCommandProvider
255
256
  });
256
257
 
258
+ /** Widget that edits questionnaire questions inline or inside the popup. */
259
+ const QUESTIONNAIRE_QUESTIONS_EDITOR_WIDGET = 'questionnaire-questions-editor';
260
+ /** Opens the questions builder dialog. */
261
+ const SHOW_QUESTIONNAIRE_QUESTIONS_POPUP_COMMAND = 'show-questionnaire-questions-popup';
262
+ /** Side-menu page that hosts the form layout designer. */
263
+ const FORM_TEMPLATE_PAGE_COMPONENT_KEY = 'entity-form-template-page';
264
+ /** Opens the form designer tab (list / record action). */
265
+ const FORM_TEMPLATE_DESIGN_COMMAND = 'design-form-template';
266
+ /** Widget that fills a form template stored on a related record. */
267
+ const FORM_TEMPLATE_VIEWER_WIDGET = 'form-template-viewer';
268
+ /** Widget that fills a questionnaire stored on a related record. */
269
+ const QUESTIONNAIRE_VIEWER_WIDGET = 'questionnaire-viewer';
270
+ /** Opens the related form template in the form viewer dialog. */
271
+ const SHOW_FORM_TEMPLATE_VIEWER_POPUP_COMMAND = 'show-form-template-viewer-popup';
272
+ /** Opens the related questionnaire in the questionnaire viewer dialog. */
273
+ const SHOW_QUESTIONNAIRE_VIEWER_POPUP_COMMAND = 'show-questionnaire-viewer-popup';
274
+ /** Side-menu page that fills a related form template. */
275
+ const FORM_TEMPLATE_VIEWER_PAGE_COMPONENT_KEY = 'entity-form-template-viewer-page';
276
+ /** Side-menu page that fills a related questionnaire. */
277
+ const QUESTIONNAIRE_VIEWER_PAGE_COMPONENT_KEY = 'entity-questionnaire-viewer-page';
278
+ /** Lookup on the related record that points at AssessmentManagement.Template. */
279
+ const FORM_TEMPLATE_VIEWER_SOURCE_FIELD = 'formTemplateId';
280
+ /** Document field on AssessmentManagement.Template. */
281
+ const FORM_TEMPLATE_DOCUMENT_FIELD = 'template';
282
+ /** Lookup on the related record that points at AssessmentManagement.Questionnaire. */
283
+ const QUESTIONNAIRE_VIEWER_SOURCE_FIELD = 'questionnaireId';
284
+ /** Questions field on AssessmentManagement.Questionnaire. */
285
+ const QUESTIONNAIRE_STRUCTURE_FIELD = 'questions';
286
+ /** Field on the host record that stores filled form answers. */
287
+ const FORM_TEMPLATE_VIEWER_FIELD = 'formData';
288
+ /** Field on the host record that stores questionnaire answers. */
289
+ const QUESTIONNAIRE_VIEWER_FIELD = 'answers';
290
+
291
+ //#region ----- Types -----
292
+ //#endregion
293
+ //#region ----- Normalize -----
294
+ /**
295
+ * Converts `section` | `popup` | `page` into the object form used by metadata plugins.
296
+ * Omitted display defaults to an inline section.
297
+ */
298
+ function normalizeContentDisplay(display, defaultTitle) {
299
+ if (!display) {
300
+ return { section: { enabled: true, title: defaultTitle } };
301
+ }
302
+ if (typeof display === 'object') {
303
+ return display;
304
+ }
305
+ switch (display) {
306
+ case 'section':
307
+ return {
308
+ section: { enabled: true, title: defaultTitle },
309
+ popup: { enabled: false },
310
+ page: { enabled: false },
311
+ };
312
+ case 'popup':
313
+ return {
314
+ section: { enabled: false },
315
+ popup: { enabled: true, title: defaultTitle },
316
+ page: { enabled: false },
317
+ };
318
+ case 'page':
319
+ return {
320
+ section: { enabled: false },
321
+ popup: { enabled: false },
322
+ page: { enabled: true, title: defaultTitle },
323
+ };
324
+ default:
325
+ return { section: { enabled: true, title: defaultTitle } };
326
+ }
327
+ }
328
+ function resolveContentDisplay(display, defaultTitle) {
329
+ const config = normalizeContentDisplay(display, defaultTitle);
330
+ const sectionConfig = config.section ?? {};
331
+ const popupConfig = config.popup ?? {};
332
+ const pageConfig = config.page ?? {};
333
+ return {
334
+ config,
335
+ sectionConfig,
336
+ popupConfig,
337
+ pageConfig,
338
+ showSection: sectionConfig.enabled !== false,
339
+ showPopup: popupConfig.enabled === true,
340
+ showPage: pageConfig.enabled === true,
341
+ sectionTitle: sectionConfig.title ?? defaultTitle,
342
+ popupTitle: popupConfig.title ?? defaultTitle,
343
+ pageTitle: pageConfig.title ?? defaultTitle,
344
+ };
345
+ }
346
+ //#endregion
347
+ //#region ----- Related record -----
348
+ /** Lookup id, or a record object that carries `id`. */
349
+ function readRelatedRecordId(value) {
350
+ if (typeof value === 'string') {
351
+ return value.trim();
352
+ }
353
+ if (typeof value === 'number' && !Number.isNaN(value)) {
354
+ return String(value);
355
+ }
356
+ if (value && typeof value === 'object' && 'id' in value) {
357
+ return readRelatedRecordId(value.id);
358
+ }
359
+ return '';
360
+ }
361
+ /**
362
+ * Adds a section (after `afterSectionId` when that section exists) and its property view.
363
+ * Caller must pass a layout whose `sections` / `properties` arrays are already cloned.
364
+ */
365
+ function placeContentSection(layout, section, property, afterSectionId) {
366
+ const sections = [...(layout.sections ?? [])];
367
+ const existingIndex = sections.findIndex((item) => item.id === section.id);
368
+ if (existingIndex >= 0) {
369
+ sections[existingIndex] = { ...sections[existingIndex], ...section };
370
+ }
371
+ else {
372
+ const afterIndex = afterSectionId ? sections.findIndex((item) => item.id === afterSectionId) : -1;
373
+ const insertAt = afterIndex >= 0 ? afterIndex + 1 : sections.length;
374
+ sections.splice(insertAt, 0, section);
375
+ }
376
+ layout.sections = sections;
377
+ const properties = [...(layout.properties ?? [])];
378
+ if (!properties.some((item) => item.name === property.name)) {
379
+ properties.push(property);
380
+ }
381
+ layout.properties = properties;
382
+ }
383
+ function upsertComponentPage(entity, page) {
384
+ const pages = (entity.pages ?? []);
385
+ entity.pages = pages;
386
+ const index = pages.findIndex((item) => item.componentKey === page.componentKey && (page.field == null || item.field === page.field));
387
+ if (index < 0) {
388
+ pages.push(page);
389
+ return;
390
+ }
391
+ pages[index] = { ...pages[index], ...page };
392
+ }
393
+ //#endregion
394
+
395
+ //#region ----- Service -----
396
+ /**
397
+ * Loads one field from the record a lookup points at.
398
+ * In-flight requests for the same id are shared; later evaluations fetch again.
399
+ */
400
+ class AXMRelatedContentRecordService {
401
+ constructor() {
402
+ //#region ----- Services & Dependencies -----
403
+ this.entityService = inject(AXPEntityService);
404
+ this.pending = new Map();
405
+ }
406
+ //#endregion
407
+ //#region ----- Public Methods -----
408
+ async find(entity, id) {
409
+ const recordId = readRelatedRecordId(id);
410
+ const entityKey = entity.trim();
411
+ if (!entityKey || !recordId) {
412
+ return null;
413
+ }
414
+ const cacheKey = `${entityKey}:${recordId}`;
415
+ const existing = this.pending.get(cacheKey);
416
+ if (existing) {
417
+ return existing;
418
+ }
419
+ const request = this.load(entityKey, recordId).finally(() => {
420
+ this.pending.delete(cacheKey);
421
+ });
422
+ this.pending.set(cacheKey, request);
423
+ return request;
424
+ }
425
+ async readField(entity, id, field) {
426
+ const sourceField = field.trim();
427
+ if (!sourceField) {
428
+ return null;
429
+ }
430
+ const record = await this.find(entity, id);
431
+ if (!record) {
432
+ return null;
433
+ }
434
+ return get(record, sourceField) ?? null;
435
+ }
436
+ /**
437
+ * Reads `sourceField` from the related record, then loads the form document.
438
+ * `sourceField` is the selector lookup (`formTemplateId`) or an inline template JSON.
439
+ */
440
+ async readFormTemplate(entity, id, sourceField) {
441
+ const pointer = await this.readField(entity, id, sourceField);
442
+ return this.resolveFormTemplateDocument(pointer);
443
+ }
444
+ async resolveFormTemplateDocument(value) {
445
+ if (value == null || value === '') {
446
+ return null;
447
+ }
448
+ if (isFormDocument(value)) {
449
+ return value;
450
+ }
451
+ if (typeof value === 'string') {
452
+ const trimmed = value.trim();
453
+ if (!trimmed) {
454
+ return null;
455
+ }
456
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
457
+ return trimmed;
458
+ }
459
+ const templateEntity = `${RootConfig.module.name}.${RootConfig.entities.template.name}`;
460
+ const document = await this.readField(templateEntity, trimmed, FORM_TEMPLATE_DOCUMENT_FIELD);
461
+ return document ?? null;
462
+ }
463
+ const nestedId = readRelatedRecordId(value);
464
+ if (!nestedId) {
465
+ return null;
466
+ }
467
+ const templateEntity = `${RootConfig.module.name}.${RootConfig.entities.template.name}`;
468
+ return this.readField(templateEntity, nestedId, FORM_TEMPLATE_DOCUMENT_FIELD);
469
+ }
470
+ /**
471
+ * Reads `sourceField` from the related record, then loads questionnaire questions.
472
+ * `sourceField` is the selector lookup (`questionnaireId`) or an inline structure.
473
+ */
474
+ async readQuestionnaireStructure(entity, id, sourceField) {
475
+ const pointer = await this.readField(entity, id, sourceField);
476
+ return this.resolveQuestionnaireStructure(pointer);
477
+ }
478
+ async resolveQuestionnaireStructure(value) {
479
+ if (value == null || value === '') {
480
+ return null;
481
+ }
482
+ if (isQuestionnaireStructure(value)) {
483
+ return value;
484
+ }
485
+ const nestedId = readRelatedRecordId(value);
486
+ if (!nestedId) {
487
+ return null;
488
+ }
489
+ const questionnaireEntity = `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}`;
490
+ return this.readField(questionnaireEntity, nestedId, QUESTIONNAIRE_STRUCTURE_FIELD);
491
+ }
492
+ //#endregion
493
+ //#region ----- Data Loading -----
494
+ async load(entity, id) {
495
+ try {
496
+ const record = await this.entityService.withEntity(entity).data().byKey(id);
497
+ return record ?? null;
498
+ }
499
+ catch {
500
+ return null;
501
+ }
502
+ }
503
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRelatedContentRecordService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
504
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRelatedContentRecordService, providedIn: 'root' }); }
505
+ }
506
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMRelatedContentRecordService, decorators: [{
507
+ type: Injectable,
508
+ args: [{ providedIn: 'root' }]
509
+ }] });
510
+ function isFormDocument(value) {
511
+ return !!value && typeof value === 'object' && typeof value.type === 'string';
512
+ }
513
+ function isQuestionnaireStructure(value) {
514
+ return (!!value &&
515
+ typeof value === 'object' &&
516
+ Array.isArray(value.sections) &&
517
+ value.sections.length > 0);
518
+ }
519
+
520
+ //#region ----- Provider -----
521
+ /**
522
+ * Expression helpers for the form and questionnaire viewer plugins.
523
+ * `formTemplateViewer.fromEntity` and `questionnaireViewer.fromEntity`
524
+ * read one field from the record a lookup points at.
525
+ */
526
+ class AXMContentDisplayEvaluatorScopeProvider {
527
+ constructor() {
528
+ //#region ----- Services & Dependencies -----
529
+ this.records = inject(AXMRelatedContentRecordService);
530
+ //#endregion
531
+ }
532
+ //#endregion
533
+ //#region ----- Scope -----
534
+ async provide(context) {
535
+ context.addScope('formTemplateViewer', {
536
+ fromEntity: async (sourceEntity, contextValue, sourceField) => {
537
+ if (!sourceEntity || !sourceField) {
538
+ return null;
539
+ }
540
+ return this.records.readFormTemplate(sourceEntity, contextValue, sourceField);
541
+ },
542
+ });
543
+ context.addScope('questionnaireViewer', {
544
+ fromEntity: async (sourceEntity, contextValue, sourceField) => {
545
+ if (!sourceEntity || !sourceField) {
546
+ return null;
547
+ }
548
+ return this.records.readQuestionnaireStructure(sourceEntity, contextValue, sourceField);
549
+ },
550
+ });
551
+ }
552
+ }
553
+ //#endregion
554
+
555
+ //#region ----- Types -----
556
+ const DEFAULT_FIELD$3 = 'template';
557
+ const DEFAULT_GROUP_ID$3 = 'template-content';
558
+ const DEFAULT_ICON$1 = 'fa-light fa-file-code';
559
+ const DEFAULT_TITLE$3 = '@form-template-management:designer.terms.designer';
560
+ //#endregion
561
+ //#region ----- Plugin -----
562
+ /**
563
+ * Shows a form template designer the same way metadata plugins do:
564
+ * inline section, design action, and/or record detail side-menu page.
565
+ */
566
+ const formTemplatePlugin = {
567
+ name: 'form-template',
568
+ order: 62,
569
+ apply: (ctx, options) => {
570
+ const opts = options ?? {};
571
+ const field = opts.field?.trim() || DEFAULT_FIELD$3;
572
+ const defaultTitle = opts.title?.trim() || DEFAULT_TITLE$3;
573
+ const display = resolveContentDisplay(opts.display, defaultTitle);
574
+ const groupId = resolveGroupId$1(ctx, field, opts.groupId?.trim() || DEFAULT_GROUP_ID$3);
575
+ const pageIcon = display.pageConfig.icon ?? opts.icon ?? DEFAULT_ICON$1;
576
+ const pageOrder = display.pageConfig.order ?? opts.order ?? 1;
577
+ const explicitPopupTitle = typeof opts.display === 'object' ? opts.display.popup?.title?.trim() : undefined;
578
+ const popupActionTitle = explicitPopupTitle || opts.title?.trim() || '@general:actions.configuration.design.title';
579
+ ensureGroup$2(ctx, groupId, display.sectionTitle);
580
+ ensureTemplateProperty(ctx, field, groupId, display.sectionTitle);
581
+ if (display.showSection) {
582
+ const sectionOrder = display.sectionConfig.order;
583
+ const applyLayout = (layout, showSectionLabel) => {
584
+ const source = layout ?? { title: ctx.entity.title, sections: [], properties: [] };
585
+ const next = cloneLayoutArrays({
586
+ ...source,
587
+ sections: source.sections ?? [],
588
+ properties: source.properties ?? [],
589
+ });
590
+ placeContentSection(next, {
591
+ id: groupId,
592
+ title: display.sectionTitle,
593
+ layout: { label: { visible: showSectionLabel } },
594
+ ...(sectionOrder != null ? { order: sectionOrder } : {}),
595
+ }, {
596
+ name: field,
597
+ layout: {
598
+ label: { visible: false },
599
+ positions: { lg: { colSpan: 12, order: 4 } },
600
+ },
601
+ }, 'basic-info');
602
+ return next;
603
+ };
604
+ ctx.interfaces.master.single.update((single) => applyLayout(single, false));
605
+ ctx.interfaces.master.create.update((create) => applyLayout(create, true));
606
+ ctx.interfaces.master.modify.update((modify) => applyLayout(modify, true));
607
+ }
608
+ if (display.showPopup) {
609
+ const action = {
610
+ title: popupActionTitle,
611
+ command: FORM_TEMPLATE_DESIGN_COMMAND,
612
+ priority: 'primary',
613
+ type: 'design',
614
+ icon: pageIcon,
615
+ scope: AXPEntityCommandScope.Individual,
616
+ };
617
+ ctx.interfaces.master.single.update((single) => {
618
+ const next = single ?? { title: ctx.entity.title, sections: [], properties: [], actions: [] };
619
+ next.actions = next.actions ?? [];
620
+ if (!actionExists(next.actions, FORM_TEMPLATE_DESIGN_COMMAND)) {
621
+ next.actions.push({ ...action, priority: 'secondary' });
622
+ }
623
+ return next;
624
+ });
625
+ ctx.interfaces.master.list.update((list) => {
626
+ const next = list ?? { actions: [], views: [] };
627
+ next.actions = next.actions ?? [];
628
+ if (!actionExists(next.actions, FORM_TEMPLATE_DESIGN_COMMAND)) {
629
+ next.actions.push({ ...action });
630
+ }
631
+ return next;
632
+ });
633
+ }
634
+ if (display.showPage) {
635
+ upsertComponentPage(ctx.entity, {
636
+ componentKey: FORM_TEMPLATE_PAGE_COMPONENT_KEY,
637
+ field,
638
+ title: display.pageTitle,
639
+ icon: pageIcon,
640
+ layout: { order: pageOrder, position: 'after' },
641
+ appearOn: { create: false, update: true },
642
+ });
643
+ }
644
+ const entity = ctx.entity;
645
+ entity.extensions ??= {};
646
+ const formExt = (entity.extensions['formTemplate'] ?? {});
647
+ formExt[field] = { title: defaultTitle, display: display.config };
648
+ entity.extensions['formTemplate'] = formExt;
649
+ },
650
+ };
651
+ //#endregion
652
+ //#region ----- Helpers -----
653
+ function resolveGroupId$1(ctx, field, fallback) {
654
+ const existing = ctx.properties.list().find((property) => property.name === field);
655
+ return existing?.groupId || fallback;
656
+ }
657
+ function ensureGroup$2(ctx, groupId, title) {
658
+ const groups = ctx.groups.list() ?? [];
659
+ if (!groups.some((group) => group.id === groupId)) {
660
+ ctx.groups.add({ id: groupId, title });
661
+ }
662
+ }
663
+ function ensureTemplateProperty(ctx, field, groupId, title) {
664
+ const properties = ctx.properties.list();
665
+ if (properties.some((property) => property.name === field)) {
666
+ return;
667
+ }
668
+ ctx.properties.add({
669
+ name: field,
670
+ title,
671
+ groupId,
672
+ schema: {
673
+ dataType: 'string',
674
+ interface: {
675
+ type: 'template-designer',
676
+ },
677
+ },
678
+ });
679
+ }
680
+ //#endregion
681
+
682
+ //#region ----- Types -----
683
+ const DEFAULT_FIELD$2 = FORM_TEMPLATE_VIEWER_SOURCE_FIELD;
684
+ const DEFAULT_GROUP_ID$2 = 'basic-info';
685
+ const DEFAULT_TITLE$2 = '@form-template-management:templates.entities.template.fields.selector.title';
686
+ //#endregion
687
+ //#region ----- Plugin -----
688
+ /**
689
+ * Adds a lookup that selects an AssessmentManagement form template.
690
+ */
691
+ const formTemplateSelectorPlugin = {
692
+ name: 'form-template-selector',
693
+ order: 55,
694
+ apply: (ctx, options) => {
695
+ const field = options?.field?.trim() || DEFAULT_FIELD$2;
696
+ const groupId = options?.groupId?.trim() || DEFAULT_GROUP_ID$2;
697
+ const title = options?.title?.trim() || DEFAULT_TITLE$2;
698
+ const showInList = options?.showInList ?? true;
699
+ const exposeRoot = field.endsWith('Id') ? field.slice(0, -2) : field;
700
+ const templateEntity = `${RootConfig.module.name}.${RootConfig.entities.template.name}`;
701
+ const groups = ctx.groups.list() ?? [];
702
+ if (!groups.some((group) => group.id === groupId)) {
703
+ ctx.groups.add({ id: groupId, title });
704
+ }
705
+ const properties = ctx.properties.list();
706
+ if (!properties.some((property) => property.name === field)) {
707
+ ctx.properties.add({
708
+ name: field,
709
+ title,
710
+ description: '@form-template-management:templates.entities.template.fields.selector.description',
711
+ groupId,
712
+ options: {
713
+ sort: { enabled: true },
714
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
715
+ },
716
+ schema: {
717
+ dataType: 'string',
718
+ interface: {
719
+ type: AXPWidgetsList.Editors.LookupBox,
720
+ options: {
721
+ entity: templateEntity,
722
+ textField: 'title',
723
+ valueField: 'id',
724
+ look: 'select',
725
+ columns: ['title'],
726
+ expose: [
727
+ { source: 'id', target: `${exposeRoot}.id` },
728
+ { source: 'title', target: `${exposeRoot}.title` },
729
+ ],
730
+ filters: [
731
+ {
732
+ field: 'type.id',
733
+ operator: { type: 'equal' },
734
+ value: AXMFormTemplateTypes.Form.id,
735
+ },
736
+ ],
737
+ },
738
+ },
739
+ },
740
+ });
741
+ }
742
+ if (showInList) {
743
+ const columns = ctx.columns.list() ?? [];
744
+ if (!columns.some((column) => column.name === field)) {
745
+ ctx.columns.add({
746
+ name: field,
747
+ options: { dataPath: `${exposeRoot}.title` },
748
+ });
749
+ }
750
+ }
751
+ const applyLayout = (layout) => {
752
+ const next = cloneLayoutArrays({
753
+ ...(layout ?? {}),
754
+ sections: layout?.sections ?? [],
755
+ properties: layout?.properties ?? [],
756
+ });
757
+ ensureLayoutSection(next, { id: groupId });
758
+ ensureLayoutPropertyView(next, {
759
+ name: field,
760
+ layout: { positions: { lg: { colSpan: 12 } } },
761
+ });
762
+ return next;
763
+ };
764
+ ctx.interfaces.master.create.update((create) => applyLayout(create));
765
+ ctx.interfaces.master.modify.update((modify) => applyLayout(modify));
766
+ ctx.interfaces.master.single.update((single) => applyLayout(single));
767
+ const entity = ctx.entity;
768
+ entity.extensions ??= {};
769
+ entity.extensions['formTemplateSelector'] = { field, groupId, entity: templateEntity };
770
+ },
771
+ };
772
+ //#endregion
773
+
774
+ //#endregion
775
+ //#region ----- Plugin -----
776
+ /**
777
+ * Viewer plugin that reads content from the entity a lookup points at
778
+ * and stores the filled answers on the current record.
779
+ */
780
+ function createRelatedContentViewerPlugin(spec) {
781
+ return {
782
+ name: spec.name,
783
+ order: spec.order,
784
+ apply: (ctx, options) => {
785
+ const path = options?.path?.trim() ?? '';
786
+ if (!path) {
787
+ throw new Error(`${spec.name} plugin requires a path option (lookup field on this entity)`);
788
+ }
789
+ const targetEntity = resolveLookupTargetEntity(ctx, path);
790
+ if (!targetEntity) {
791
+ return;
792
+ }
793
+ const field = options?.field?.trim() || spec.defaultField;
794
+ const sourceField = options?.sourceField?.trim() || spec.defaultSourceField;
795
+ const defaultTitle = options?.title?.trim() || spec.defaultTitle;
796
+ const display = resolveContentDisplay(options?.display, defaultTitle);
797
+ const pageIcon = display.pageConfig.icon ?? options?.icon ?? spec.defaultIcon;
798
+ const pageOrder = display.pageConfig.order ?? options?.order ?? 1;
799
+ const groupId = `${spec.name}-${field}`;
800
+ const expression = `{{ ${viewerFromEntityCall(spec.scope, targetEntity, path, sourceField)} }}`;
801
+ const visible = options?.hideSectionWhenEmpty === false
802
+ ? undefined
803
+ : `{{ !!(await ${viewerFromEntityCall(spec.scope, targetEntity, path, sourceField)}) }}`;
804
+ ensureGroup$1(ctx, groupId, display.sectionTitle);
805
+ ensureViewerProperty(ctx, {
806
+ field,
807
+ groupId,
808
+ title: display.sectionTitle,
809
+ widget: spec.widget,
810
+ contentOption: spec.contentOption,
811
+ expression,
812
+ visible,
813
+ });
814
+ if (display.showSection) {
815
+ const sectionOrder = display.sectionConfig.order ?? 110;
816
+ const applyLayout = (layout) => {
817
+ const source = layout ?? { title: ctx.entity.title, sections: [], properties: [] };
818
+ const next = cloneLayoutArrays({
819
+ ...source,
820
+ sections: source.sections ?? [],
821
+ properties: source.properties ?? [],
822
+ });
823
+ placeContentSection(next, {
824
+ id: groupId,
825
+ title: display.sectionTitle,
826
+ order: sectionOrder,
827
+ layout: {
828
+ ...(visible ? { visible } : {}),
829
+ label: { visible: true },
830
+ },
831
+ }, {
832
+ name: field,
833
+ layout: {
834
+ label: { visible: false },
835
+ positions: { lg: { colSpan: 12, order: 9 } },
836
+ },
837
+ });
838
+ return next;
839
+ };
840
+ ctx.interfaces.master.single.update((single) => applyLayout(single));
841
+ ctx.interfaces.master.create.update((create) => applyLayout(create));
842
+ ctx.interfaces.master.modify.update((modify) => applyLayout(modify));
843
+ }
844
+ if (display.showPopup) {
845
+ const actionName = `${spec.popupCommand}-${field}`;
846
+ const action = {
847
+ name: actionName,
848
+ title: display.popupTitle,
849
+ command: {
850
+ name: spec.popupCommand,
851
+ options: {
852
+ entity: `${ctx.entity.module}.${ctx.entity.name}`,
853
+ id: '{{ context.eval("id") }}',
854
+ field,
855
+ path,
856
+ sourceField,
857
+ targetEntity,
858
+ title: display.popupTitle,
859
+ },
860
+ },
861
+ priority: 'secondary',
862
+ type: 'view',
863
+ icon: pageIcon,
864
+ scope: AXPEntityCommandScope.Individual,
865
+ };
866
+ ctx.interfaces.master.single.update((single) => {
867
+ const next = single ?? { title: ctx.entity.title, sections: [], properties: [], actions: [] };
868
+ next.actions = next.actions ?? [];
869
+ if (!actionExists(next.actions, spec.popupCommand, actionName)) {
870
+ next.actions.push(action);
871
+ }
872
+ return next;
873
+ });
874
+ ctx.interfaces.master.list.update((list) => {
875
+ const next = list ?? { actions: [], views: [] };
876
+ next.actions = next.actions ?? [];
877
+ if (!actionExists(next.actions, spec.popupCommand, actionName)) {
878
+ next.actions.push(action);
879
+ }
880
+ return next;
881
+ });
882
+ }
883
+ if (display.showPage) {
884
+ const appearOnCreate = options?.appearOnCreate !== false;
885
+ upsertComponentPage(ctx.entity, {
886
+ componentKey: spec.pageComponentKey,
887
+ field,
888
+ title: display.pageTitle,
889
+ icon: pageIcon,
890
+ layout: { order: pageOrder, position: 'after' },
891
+ // create: wizard step; update: detail side menu + update wizard
892
+ appearOn: { create: appearOnCreate, update: true },
893
+ // Stamp widget so the page can render in create dialog without resolving entity from the route.
894
+ options: {
895
+ widget: spec.widget,
896
+ contentOption: spec.contentOption,
897
+ expression,
898
+ entity: `${ctx.entity.module}.${ctx.entity.name}`,
899
+ },
900
+ });
901
+ }
902
+ const entity = ctx.entity;
903
+ entity.extensions ??= {};
904
+ const extension = (entity.extensions[spec.extensionKey] ?? {});
905
+ extension[field] = {
906
+ title: defaultTitle,
907
+ path,
908
+ sourceField,
909
+ targetEntity,
910
+ display: display.config,
911
+ };
912
+ entity.extensions[spec.extensionKey] = extension;
913
+ },
914
+ };
915
+ }
916
+ //#endregion
917
+ //#region ----- Helpers -----
918
+ function viewerFromEntityCall(scope, targetEntity, path, sourceField) {
919
+ return `${scope}.fromEntity("${targetEntity}", context.eval('${path}'), "${sourceField}")`;
920
+ }
921
+ function resolveLookupTargetEntity(ctx, path) {
922
+ const pathProperty = ctx.properties.list().find((property) => property.name === path);
923
+ if (!pathProperty?.schema?.interface?.type) {
924
+ return null;
925
+ }
926
+ const entity = pathProperty.schema.interface.options?.['entity'];
927
+ return typeof entity === 'string' && entity.includes('.') ? entity : null;
928
+ }
929
+ function ensureGroup$1(ctx, groupId, title) {
930
+ const groups = ctx.groups.list() ?? [];
931
+ if (!groups.some((group) => group.id === groupId)) {
932
+ ctx.groups.add({ id: groupId, title });
933
+ }
934
+ }
935
+ function ensureViewerProperty(ctx, input) {
936
+ const properties = ctx.properties.list();
937
+ const existing = properties.find((property) => property.name === input.field);
938
+ const interfaceOptions = { [input.contentOption]: input.expression };
939
+ if (!existing) {
940
+ ctx.properties.add({
941
+ name: input.field,
942
+ title: input.title,
943
+ groupId: input.groupId,
944
+ schema: {
945
+ dataType: 'object',
946
+ ...(input.visible ? { visible: input.visible } : {}),
947
+ interface: {
948
+ type: input.widget,
949
+ options: interfaceOptions,
950
+ },
951
+ },
952
+ });
953
+ return;
954
+ }
955
+ if (!existing.schema) {
956
+ return;
957
+ }
958
+ existing.schema.visible = input.visible;
959
+ const currentInterface = existing.schema.interface ?? { type: input.widget };
960
+ existing.schema.interface = {
961
+ ...currentInterface,
962
+ type: input.widget,
963
+ options: {
964
+ ...(currentInterface.options ?? {}),
965
+ ...interfaceOptions,
966
+ },
967
+ };
968
+ }
969
+ //#endregion
970
+
971
+ //#region ----- Plugin -----
972
+ /**
973
+ * Fills the form selected on the related entity (`formTemplateId` by default).
974
+ * Answers are stored on this record. Pair with form-template-selector on the related entity.
975
+ */
976
+ const formTemplateViewerPlugin = createRelatedContentViewerPlugin({
977
+ name: 'form-template-viewer',
978
+ order: 63,
979
+ widget: FORM_TEMPLATE_VIEWER_WIDGET,
980
+ contentOption: 'template',
981
+ defaultField: FORM_TEMPLATE_VIEWER_FIELD,
982
+ defaultSourceField: FORM_TEMPLATE_VIEWER_SOURCE_FIELD,
983
+ defaultTitle: '@form-template-management:templates.viewer.title',
984
+ defaultIcon: 'fa-light fa-file-lines',
985
+ popupCommand: SHOW_FORM_TEMPLATE_VIEWER_POPUP_COMMAND,
986
+ pageComponentKey: FORM_TEMPLATE_VIEWER_PAGE_COMPONENT_KEY,
987
+ extensionKey: 'formTemplateViewer',
988
+ scope: 'formTemplateViewer',
989
+ });
990
+ //#endregion
991
+
992
+ //#region ----- Widget config -----
993
+ const AXMFormTemplateViewerWidget = {
994
+ name: FORM_TEMPLATE_VIEWER_WIDGET,
995
+ title: '@form-template-management:templates.viewer.title',
996
+ icon: 'fa-light fa-file-lines',
997
+ type: 'editor',
998
+ categories: AXP_WIDGETS_EDITOR_CATEGORY,
999
+ groups: [AXPWidgetGroupEnum.UtilityWidget],
1000
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
1001
+ components: {
1002
+ view: {
1003
+ component: () => import('./acorex-platform-module-assessment-management-client-form-template-viewer-edit.component-BlGBTznW.mjs').then((module) => module.AXMFormTemplateViewerEditComponent),
1004
+ },
1005
+ edit: {
1006
+ component: () => import('./acorex-platform-module-assessment-management-client-form-template-viewer-edit.component-BlGBTznW.mjs').then((module) => module.AXMFormTemplateViewerEditComponent),
1007
+ },
1008
+ },
1009
+ };
1010
+ //#endregion
1011
+
1012
+ //#region ----- Widget config -----
1013
+ const AXMQuestionnaireQuestionsEditorWidget = {
1014
+ name: QUESTIONNAIRE_QUESTIONS_EDITOR_WIDGET,
1015
+ title: '@assessment-management:questionnaires.entities.questionnaire.fields.questions.title',
1016
+ icon: 'fa-light fa-list-check',
1017
+ type: 'editor',
1018
+ categories: AXP_WIDGETS_EDITOR_CATEGORY,
1019
+ groups: [AXPWidgetGroupEnum.UtilityWidget],
1020
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
1021
+ components: {
1022
+ view: {
1023
+ component: () => import('./acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-DIktPLmP.mjs').then((module) => module.AXMQuestionnaireQuestionsEditorEditComponent),
1024
+ },
1025
+ edit: {
1026
+ component: () => import('./acorex-platform-module-assessment-management-client-questionnaire-questions-editor-edit.component-DIktPLmP.mjs').then((module) => module.AXMQuestionnaireQuestionsEditorEditComponent),
1027
+ },
1028
+ },
1029
+ };
1030
+ //#endregion
1031
+
1032
+ //#region ----- Types -----
1033
+ const DEFAULT_FIELD$1 = 'questions';
1034
+ const DEFAULT_GROUP_ID$1 = 'questions';
1035
+ const DEFAULT_ICON = 'fa-light fa-list-check';
1036
+ const DEFAULT_TITLE$1 = '@assessment-management:questionnaires.entities.questionnaire.fields.questions.title';
1037
+ //#endregion
1038
+ //#region ----- Plugin -----
1039
+ /**
1040
+ * Shows a questionnaire questions builder the same way metadata plugins do:
1041
+ * inline section, popup action, and/or record detail side-menu page.
1042
+ */
1043
+ const questionnairePlugin = {
1044
+ name: 'questionnaire',
1045
+ order: 62,
1046
+ apply: (ctx, options) => {
1047
+ const opts = options ?? {};
1048
+ const field = opts.field?.trim() || DEFAULT_FIELD$1;
1049
+ const defaultTitle = opts.title?.trim() || DEFAULT_TITLE$1;
1050
+ const display = resolveContentDisplay(opts.display, defaultTitle);
1051
+ const groupId = resolveGroupId(ctx, field, opts.groupId?.trim() || DEFAULT_GROUP_ID$1);
1052
+ const pageIcon = display.pageConfig.icon ?? opts.icon ?? DEFAULT_ICON;
1053
+ const pageOrder = display.pageConfig.order ?? opts.order ?? 1;
1054
+ ensureGroup(ctx, groupId, display.sectionTitle);
1055
+ if (display.showSection || display.showPopup) {
1056
+ ensureQuestionsProperty(ctx, field, groupId, display.sectionTitle);
1057
+ }
1058
+ if (display.showSection) {
1059
+ const sectionOrder = display.sectionConfig.order;
1060
+ const applyLayout = (layout) => {
1061
+ const source = layout ?? { title: ctx.entity.title, sections: [], properties: [] };
1062
+ const next = cloneLayoutArrays({
1063
+ ...source,
1064
+ sections: source.sections ?? [],
1065
+ properties: source.properties ?? [],
1066
+ });
1067
+ placeContentSection(next, {
1068
+ id: groupId,
1069
+ title: display.sectionTitle,
1070
+ ...(sectionOrder != null ? { order: sectionOrder } : {}),
1071
+ }, {
1072
+ name: field,
1073
+ layout: {
1074
+ label: { visible: false },
1075
+ positions: { lg: { colSpan: 12, order: 1 } },
1076
+ },
1077
+ });
1078
+ return next;
1079
+ };
1080
+ ctx.interfaces.master.single.update((single) => applyLayout(single));
1081
+ ctx.interfaces.master.create.update((create) => applyLayout(create));
1082
+ ctx.interfaces.master.modify.update((modify) => applyLayout(modify));
1083
+ }
1084
+ if (display.showPopup) {
1085
+ const actionName = `${SHOW_QUESTIONNAIRE_QUESTIONS_POPUP_COMMAND}-${field}`;
1086
+ const action = {
1087
+ name: actionName,
1088
+ title: display.popupTitle,
1089
+ command: {
1090
+ name: SHOW_QUESTIONNAIRE_QUESTIONS_POPUP_COMMAND,
1091
+ options: {
1092
+ entity: `${ctx.entity.module}.${ctx.entity.name}`,
1093
+ id: '{{ context.eval("id") }}',
1094
+ field,
1095
+ title: display.popupTitle,
1096
+ },
1097
+ },
1098
+ priority: 'secondary',
1099
+ type: 'action',
1100
+ icon: pageIcon,
1101
+ scope: AXPEntityCommandScope.Individual,
1102
+ };
1103
+ ctx.interfaces.master.single.update((single) => {
1104
+ const next = single ?? { title: ctx.entity.title, sections: [], properties: [], actions: [] };
1105
+ next.actions = next.actions ?? [];
1106
+ if (!actionExists(next.actions, SHOW_QUESTIONNAIRE_QUESTIONS_POPUP_COMMAND, actionName)) {
1107
+ next.actions.push({ ...action });
1108
+ }
1109
+ return next;
1110
+ });
1111
+ ctx.interfaces.master.list.update((list) => {
1112
+ const next = list ?? { actions: [], views: [] };
1113
+ next.actions = next.actions ?? [];
1114
+ if (!actionExists(next.actions, SHOW_QUESTIONNAIRE_QUESTIONS_POPUP_COMMAND, actionName)) {
1115
+ next.actions.push({ ...action });
1116
+ }
1117
+ return next;
1118
+ });
1119
+ }
1120
+ if (display.showPage) {
1121
+ upsertComponentPage(ctx.entity, {
1122
+ componentKey: QUESTIONNAIRE_QUESTIONS_PAGE_COMPONENT_KEY,
1123
+ field,
1124
+ title: display.pageTitle,
1125
+ icon: pageIcon,
1126
+ layout: { order: pageOrder, position: 'after' },
1127
+ appearOn: { create: true, update: true },
1128
+ });
1129
+ }
1130
+ const entity = ctx.entity;
1131
+ entity.extensions ??= {};
1132
+ const questionnaireExt = (entity.extensions['questionnaire'] ?? {});
1133
+ questionnaireExt[field] = { title: defaultTitle, display: display.config };
1134
+ entity.extensions['questionnaire'] = questionnaireExt;
1135
+ },
1136
+ };
1137
+ //#endregion
1138
+ //#region ----- Helpers -----
1139
+ function resolveGroupId(ctx, field, fallback) {
1140
+ const existing = ctx.properties.list().find((property) => property.name === field);
1141
+ return existing?.groupId || fallback;
1142
+ }
1143
+ function ensureGroup(ctx, groupId, title) {
1144
+ const groups = ctx.groups.list() ?? [];
1145
+ if (!groups.some((group) => group.id === groupId)) {
1146
+ ctx.groups.add({ id: groupId, title });
1147
+ }
1148
+ }
1149
+ function ensureQuestionsProperty(ctx, field, groupId, title) {
1150
+ const properties = ctx.properties.list();
1151
+ if (properties.some((property) => property.name === field)) {
1152
+ return;
1153
+ }
1154
+ ctx.properties.add({
1155
+ name: field,
1156
+ title,
1157
+ groupId,
1158
+ schema: {
1159
+ dataType: 'object',
1160
+ interface: {
1161
+ type: QUESTIONNAIRE_QUESTIONS_EDITOR_WIDGET,
1162
+ },
1163
+ },
1164
+ });
1165
+ }
1166
+ //#endregion
1167
+
1168
+ //#region ----- Types -----
1169
+ const DEFAULT_FIELD = QUESTIONNAIRE_VIEWER_SOURCE_FIELD;
1170
+ const DEFAULT_GROUP_ID = 'basic-info';
1171
+ const DEFAULT_TITLE = '@assessment-management:questionnaires.entities.questionnaire.fields.selector.title';
1172
+ //#endregion
1173
+ //#region ----- Plugin -----
1174
+ /**
1175
+ * Adds a lookup that selects an AssessmentManagement questionnaire.
1176
+ */
1177
+ const questionnaireSelectorPlugin = {
1178
+ name: 'questionnaire-selector',
1179
+ order: 56,
1180
+ apply: (ctx, options) => {
1181
+ const field = options?.field?.trim() || DEFAULT_FIELD;
1182
+ const groupId = options?.groupId?.trim() || DEFAULT_GROUP_ID;
1183
+ const title = options?.title?.trim() || DEFAULT_TITLE;
1184
+ const showInList = options?.showInList ?? true;
1185
+ const exposeRoot = field.endsWith('Id') ? field.slice(0, -2) : field;
1186
+ const questionnaireEntity = `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}`;
1187
+ const groups = ctx.groups.list() ?? [];
1188
+ if (!groups.some((group) => group.id === groupId)) {
1189
+ ctx.groups.add({ id: groupId, title });
1190
+ }
1191
+ const properties = ctx.properties.list();
1192
+ if (!properties.some((property) => property.name === field)) {
1193
+ ctx.properties.add({
1194
+ name: field,
1195
+ title,
1196
+ description: '@assessment-management:questionnaires.entities.questionnaire.fields.selector.description',
1197
+ groupId,
1198
+ options: {
1199
+ sort: { enabled: true },
1200
+ filter: { advance: { enabled: true }, inline: { enabled: true } },
1201
+ },
1202
+ schema: {
1203
+ dataType: 'string',
1204
+ interface: {
1205
+ type: AXPWidgetsList.Editors.LookupBox,
1206
+ options: {
1207
+ entity: questionnaireEntity,
1208
+ textField: 'title',
1209
+ valueField: 'id',
1210
+ look: 'select',
1211
+ columns: ['title'],
1212
+ expose: [
1213
+ { source: 'id', target: `${exposeRoot}.id` },
1214
+ { source: 'title', target: `${exposeRoot}.title` },
1215
+ ],
1216
+ },
1217
+ },
1218
+ },
1219
+ });
1220
+ }
1221
+ if (showInList) {
1222
+ const columns = ctx.columns.list() ?? [];
1223
+ if (!columns.some((column) => column.name === field)) {
1224
+ ctx.columns.add({
1225
+ name: field,
1226
+ options: { dataPath: `${exposeRoot}.title` },
1227
+ });
1228
+ }
1229
+ }
1230
+ const applyLayout = (layout) => {
1231
+ const next = cloneLayoutArrays({
1232
+ ...(layout ?? {}),
1233
+ sections: layout?.sections ?? [],
1234
+ properties: layout?.properties ?? [],
1235
+ });
1236
+ ensureLayoutSection(next, { id: groupId });
1237
+ ensureLayoutPropertyView(next, {
1238
+ name: field,
1239
+ layout: { positions: { lg: { colSpan: 12 } } },
1240
+ });
1241
+ return next;
1242
+ };
1243
+ ctx.interfaces.master.create.update((create) => applyLayout(create));
1244
+ ctx.interfaces.master.modify.update((modify) => applyLayout(modify));
1245
+ ctx.interfaces.master.single.update((single) => applyLayout(single));
1246
+ const entity = ctx.entity;
1247
+ entity.extensions ??= {};
1248
+ entity.extensions['questionnaireSelector'] = { field, groupId, entity: questionnaireEntity };
1249
+ },
1250
+ };
1251
+ //#endregion
1252
+
1253
+ //#region ----- Plugin -----
1254
+ /**
1255
+ * Fills the questionnaire selected on the related entity (`questionnaireId` by default).
1256
+ * Answers are stored on this record. Pair with questionnaire-selector on the related entity.
1257
+ */
1258
+ const questionnaireViewerPlugin = createRelatedContentViewerPlugin({
1259
+ name: 'questionnaire-viewer',
1260
+ order: 64,
1261
+ widget: QUESTIONNAIRE_VIEWER_WIDGET,
1262
+ contentOption: 'structure',
1263
+ defaultField: QUESTIONNAIRE_VIEWER_FIELD,
1264
+ defaultSourceField: QUESTIONNAIRE_VIEWER_SOURCE_FIELD,
1265
+ defaultTitle: '@assessment-management:questionnaires.components.questionnaire-viewer.section-title',
1266
+ defaultIcon: 'fa-light fa-list-check',
1267
+ popupCommand: SHOW_QUESTIONNAIRE_VIEWER_POPUP_COMMAND,
1268
+ pageComponentKey: QUESTIONNAIRE_VIEWER_PAGE_COMPONENT_KEY,
1269
+ extensionKey: 'questionnaireViewer',
1270
+ scope: 'questionnaireViewer',
1271
+ });
1272
+ //#endregion
1273
+
1274
+ //#region ----- Widget config -----
1275
+ const AXMQuestionnaireViewerWidget = {
1276
+ name: QUESTIONNAIRE_VIEWER_WIDGET,
1277
+ title: '@assessment-management:questionnaires.components.questionnaire-viewer.section-title',
1278
+ icon: 'fa-light fa-list-check',
1279
+ type: 'editor',
1280
+ categories: AXP_WIDGETS_EDITOR_CATEGORY,
1281
+ groups: [AXPWidgetGroupEnum.UtilityWidget],
1282
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
1283
+ components: {
1284
+ view: {
1285
+ component: () => import('./acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BAoqjZ7K.mjs').then((module) => module.AXMQuestionnaireViewerEditComponent),
1286
+ },
1287
+ edit: {
1288
+ component: () => import('./acorex-platform-module-assessment-management-client-questionnaire-viewer-edit.component-BAoqjZ7K.mjs').then((module) => module.AXMQuestionnaireViewerEditComponent),
1289
+ },
1290
+ },
1291
+ };
1292
+ //#endregion
1293
+
1294
+ //#region ----- Widgets -----
1295
+ class AXMContentDisplayWidgetsProvider {
1296
+ getWidgets() {
1297
+ return [AXMQuestionnaireQuestionsEditorWidget, AXMFormTemplateViewerWidget, AXMQuestionnaireViewerWidget];
1298
+ }
1299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1300
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayWidgetsProvider }); }
1301
+ }
1302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayWidgetsProvider, decorators: [{
1303
+ type: Injectable
1304
+ }] });
1305
+ //#endregion
1306
+ //#region ----- Module -----
1307
+ class AXMContentDisplayPluginsModule {
1308
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayPluginsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1309
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayPluginsModule }); }
1310
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayPluginsModule, providers: [
1311
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnairePlugin },
1312
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplatePlugin },
1313
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplateSelectorPlugin },
1314
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplateViewerPlugin },
1315
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnaireSelectorPlugin },
1316
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnaireViewerPlugin },
1317
+ { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXMContentDisplayWidgetsProvider, multi: true },
1318
+ {
1319
+ provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
1320
+ useClass: AXMContentDisplayEvaluatorScopeProvider,
1321
+ multi: true,
1322
+ },
1323
+ ] }); }
1324
+ }
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMContentDisplayPluginsModule, decorators: [{
1326
+ type: NgModule,
1327
+ args: [{
1328
+ providers: [
1329
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnairePlugin },
1330
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplatePlugin },
1331
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplateSelectorPlugin },
1332
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: formTemplateViewerPlugin },
1333
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnaireSelectorPlugin },
1334
+ { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: questionnaireViewerPlugin },
1335
+ { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXMContentDisplayWidgetsProvider, multi: true },
1336
+ {
1337
+ provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,
1338
+ useClass: AXMContentDisplayEvaluatorScopeProvider,
1339
+ multi: true,
1340
+ },
1341
+ ],
1342
+ }]
1343
+ }] });
1344
+
257
1345
  //#region ---- Imports ----
258
1346
  //#endregion
259
1347
  //#region ---- Widget config ----
@@ -320,10 +1408,10 @@ const AXMQuestionBankInterfaceEditorWidget = {
320
1408
  ],
321
1409
  components: {
322
1410
  edit: {
323
- component: () => import('./acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-B7_G_C5B.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
1411
+ component: () => import('./acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-DARYq7ZJ.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
324
1412
  },
325
1413
  designer: {
326
- component: () => import('./acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-B7_G_C5B.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
1414
+ component: () => import('./acorex-platform-module-assessment-management-client-question-bank-interface-editor-widget-edit.component-DARYq7ZJ.mjs').then((c) => c.AXMQuestionBankInterfaceEditorWidgetEditComponent),
327
1415
  },
328
1416
  column: {
329
1417
  component: () => import('@acorex-platform/framework-client/layout/widgets').then((m) => m.AXPWidgetFieldConfiguratorWidgetColumnComponent),
@@ -332,11 +1420,134 @@ const AXMQuestionBankInterfaceEditorWidget = {
332
1420
  };
333
1421
  //#endregion
334
1422
 
1423
+ //#endregion
1424
+ //#region ----- Constants -----
1425
+ const AXM_TEST_SHEET_WIDGET = 'test-sheet-editor';
1426
+ const AXM_TEST_SHEET_SCHEMA_WIDGET = 'test-sheet-schema-editor';
1427
+ /** Column cell widget picker. Shown only when the column kind is input. */
1428
+ const AXM_TEST_SHEET_CELL_TYPE_WIDGET = 'test-sheet-cell-type-editor';
1429
+ /** Row field that holds the merged row-group title. */
1430
+ const AXM_TEST_SHEET_ROW_GROUP_PATH = '__groupTitle';
1431
+ const AXM_TEST_SHEET_INPUT_WIDGET_TYPES = [
1432
+ 'text-editor',
1433
+ 'number-editor',
1434
+ 'date-time-editor',
1435
+ 'checkbox-editor',
1436
+ 'toggle-editor',
1437
+ 'select-editor',
1438
+ ];
1439
+ //#endregion
1440
+
1441
+ //#region ----- Imports -----
1442
+ //#endregion
1443
+ //#region ----- Properties -----
1444
+ const TEST_SHEET_PROPERTY_GROUP = {
1445
+ name: 'sheet',
1446
+ title: '@assessment-management:widgets.test-sheet.sheet.title',
1447
+ order: 2,
1448
+ };
1449
+ const TEST_SHEET_DEFINITION_PROPERTY = {
1450
+ name: 'sheet',
1451
+ title: '@assessment-management:widgets.test-sheet.sheet.title',
1452
+ showLabel: false,
1453
+ visible: true,
1454
+ group: TEST_SHEET_PROPERTY_GROUP,
1455
+ schema: {
1456
+ dataType: 'object',
1457
+ interface: {
1458
+ name: 'sheet',
1459
+ path: 'options.sheet',
1460
+ type: AXM_TEST_SHEET_SCHEMA_WIDGET,
1461
+ },
1462
+ },
1463
+ };
1464
+ //#endregion
1465
+ //#region ----- Widget config -----
1466
+ const AXMTestSheetWidget = {
1467
+ name: AXM_TEST_SHEET_WIDGET,
1468
+ title: '@assessment-management:widgets.test-sheet.title',
1469
+ description: '@assessment-management:widgets.test-sheet.description',
1470
+ icon: 'fa-light fa-table-cells',
1471
+ categories: AXP_WIDGETS_EDITOR_CATEGORY,
1472
+ groups: [AXPWidgetGroupEnum.FormElement],
1473
+ type: 'editor',
1474
+ defaultFilterWidgetName: 'string-filter',
1475
+ properties: [{ ...AXP_DATA_PATH_PROPERTY, visible: false }, TEST_SHEET_DEFINITION_PROPERTY],
1476
+ components: {
1477
+ view: {
1478
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-widget-view.component-sSky9nAq.mjs').then((c) => c.AXMTestSheetWidgetViewComponent),
1479
+ },
1480
+ edit: {
1481
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-CrvzEcSh.mjs').then((c) => c.AXMTestSheetWidgetEditComponent),
1482
+ },
1483
+ column: {
1484
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-widget-column.component-B3Lx7yuD.mjs').then((c) => c.AXMTestSheetWidgetColumnComponent),
1485
+ },
1486
+ designer: {
1487
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-widget-edit.component-CrvzEcSh.mjs').then((c) => c.AXMTestSheetWidgetEditComponent),
1488
+ },
1489
+ },
1490
+ };
1491
+ /**
1492
+ * Cell Type field inside a test-sheet column card.
1493
+ * Renders the widget configurator only when the column kind is input.
1494
+ */
1495
+ const AXMTestSheetCellTypeWidget = {
1496
+ name: AXM_TEST_SHEET_CELL_TYPE_WIDGET,
1497
+ title: '@assessment-management:widgets.test-sheet.columns.widget',
1498
+ description: '@assessment-management:widgets.test-sheet.columns.widget',
1499
+ icon: 'fa-light fa-puzzle-piece',
1500
+ groups: [AXPWidgetGroupEnum.BaseWidget],
1501
+ type: 'editor',
1502
+ properties: [AXP_DATA_PATH_PROPERTY],
1503
+ components: {
1504
+ edit: {
1505
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-DRFfLOCE.mjs').then((c) => c.AXMTestSheetCellTypeWidgetEditComponent),
1506
+ },
1507
+ view: {
1508
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-DRFfLOCE.mjs').then((c) => c.AXMTestSheetCellTypeWidgetEditComponent),
1509
+ },
1510
+ designer: {
1511
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-cell-type-widget-edit.component-DRFfLOCE.mjs').then((c) => c.AXMTestSheetCellTypeWidgetEditComponent),
1512
+ },
1513
+ },
1514
+ };
1515
+ /**
1516
+ * Authoring surface for the test sheet definition.
1517
+ * Registered so the question configurator can edit `options.sheet`.
1518
+ * Kept out of the form picker.
1519
+ */
1520
+ const AXMTestSheetSchemaWidget = {
1521
+ name: AXM_TEST_SHEET_SCHEMA_WIDGET,
1522
+ title: '@assessment-management:widgets.test-sheet.sheet.title',
1523
+ icon: 'fa-light fa-table-cells',
1524
+ groups: [AXPWidgetGroupEnum.BaseWidget],
1525
+ type: 'editor',
1526
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
1527
+ components: {
1528
+ edit: {
1529
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-Bcvp2Dx5.mjs').then((c) => c.AXMTestSheetSchemaWidgetEditComponent),
1530
+ },
1531
+ view: {
1532
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-Bcvp2Dx5.mjs').then((c) => c.AXMTestSheetSchemaWidgetEditComponent),
1533
+ },
1534
+ designer: {
1535
+ component: () => import('./acorex-platform-module-assessment-management-client-test-sheet-schema-widget-edit.component-Bcvp2Dx5.mjs').then((c) => c.AXMTestSheetSchemaWidgetEditComponent),
1536
+ },
1537
+ },
1538
+ };
1539
+ //#endregion
1540
+
335
1541
  //#endregion
336
1542
  //#region ---- Questionnaire Builder Widgets Provider ----
337
1543
  class AXMQuestionnaireBuilderWidgetsProvider {
338
1544
  getWidgets() {
339
- return [AXMQuestionBankInterfaceEditorWidget];
1545
+ return [
1546
+ AXMQuestionBankInterfaceEditorWidget,
1547
+ AXMTestSheetWidget,
1548
+ AXMTestSheetSchemaWidget,
1549
+ AXMTestSheetCellTypeWidget,
1550
+ ];
340
1551
  }
341
1552
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireBuilderWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
342
1553
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireBuilderWidgetsProvider }); }
@@ -534,6 +1745,7 @@ function convertValueToState(value) {
534
1745
  isRequired: item.isRequired,
535
1746
  isVisible: item.isVisible,
536
1747
  interfaceOverride: item.interfaceOverride,
1748
+ layout: item.layout,
537
1749
  hint: parseQuestionHintPartialFromRecord(item),
538
1750
  comment: item.comment,
539
1751
  tags: item.tags,
@@ -566,6 +1778,7 @@ function convertStateToValue(state, existingValue) {
566
1778
  isRequired: item.isRequired,
567
1779
  isVisible: item.isVisible,
568
1780
  interfaceOverride: item.interfaceOverride,
1781
+ layout: item.layout,
569
1782
  hint: item.hint,
570
1783
  comment: item.comment,
571
1784
  tags: item.tags,
@@ -744,6 +1957,7 @@ class AXMQuestionnaireViewerService {
744
1957
  constructor() {
745
1958
  //#region ---- Services & Dependencies ----
746
1959
  this.popupService = inject(AXPopupService);
1960
+ this.dialogOpener = inject(AXPDialogOpener);
747
1961
  this.entityService = inject(AXPEntityService);
748
1962
  this.expressionEvaluator = inject(AXPExpressionEvaluatorService);
749
1963
  this.deviceService = inject(AXPDeviceService);
@@ -754,32 +1968,35 @@ class AXMQuestionnaireViewerService {
754
1968
  * Open questionnaire viewer in a dialog
755
1969
  */
756
1970
  async open(config) {
757
- const { AXMQuestionnaireViewerPopupComponent } = await import('./acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-daQL4OD_.mjs');
758
1971
  const structure = config.structure;
759
1972
  const submitHandler = config.submitHandler ??
760
1973
  ((answers) => this.buildSummaryPlaceholderValues(structure, answers, {
761
1974
  questionnaireId: config.questionnaireId,
762
1975
  outcomeRules: config.outcomeRules,
763
1976
  }));
764
- const result = await this.popupService.open(AXMQuestionnaireViewerPopupComponent, {
765
- title: config.title,
766
- size: this.deviceService.isSmall() ? 'full' : 'lg',
767
- data: {
768
- structure: config.structure,
769
- prePostConfig: config.prePostConfig ?? null,
770
- config: config.config,
771
- initialAnswers: config.initialAnswers || {},
772
- submitHandler,
773
- saveHandler: config.saveHandler,
774
- assessmentFillContext: config.assessmentFillContext,
775
- questionnaireId: config.questionnaireId,
776
- printTemplateId: config.printTemplateId,
777
- outcomeRules: config.outcomeRules,
778
- storedOutcomeResults: config.storedOutcomeResults ?? null,
779
- printTitle: config.title,
780
- },
1977
+ const result = await this.dialogOpener.openPopup({
1978
+ load: () => import('./acorex-platform-module-assessment-management-client-questionnaire-viewer-popup.component-O-d2f3fv.mjs').then((module) => module.AXMQuestionnaireViewerPopupComponent),
1979
+ data: { title: config.title, questionnaireId: config.questionnaireId ?? '' },
1980
+ show: (component) => this.popupService.open(component, {
1981
+ title: config.title,
1982
+ size: this.deviceService.isSmall() ? 'full' : 'lg',
1983
+ data: {
1984
+ structure: config.structure,
1985
+ prePostConfig: config.prePostConfig ?? null,
1986
+ config: config.config,
1987
+ initialAnswers: config.initialAnswers || {},
1988
+ submitHandler,
1989
+ saveHandler: config.saveHandler,
1990
+ assessmentFillContext: config.assessmentFillContext,
1991
+ questionnaireId: config.questionnaireId,
1992
+ printTemplateId: config.printTemplateId,
1993
+ outcomeRules: config.outcomeRules,
1994
+ storedOutcomeResults: config.storedOutcomeResults ?? null,
1995
+ printTitle: config.title,
1996
+ },
1997
+ }),
781
1998
  });
782
- return result.data || null;
1999
+ return result?.data || null;
783
2000
  }
784
2001
  /**
785
2002
  * Evaluate all questionnaire outcomes for the given questionnaire and answers.
@@ -1089,7 +2306,7 @@ class AXMQuestionnaireViewerService {
1089
2306
  const normalizedKey = rawKey.startsWith('answers.') ? rawKey.slice('answers.'.length) : rawKey;
1090
2307
  if (!normalizedKey)
1091
2308
  return undefined;
1092
- return answers[normalizedKey] ?? get(answers, normalizedKey) ?? get(answers, `answers.${normalizedKey}`);
2309
+ return answers[normalizedKey] ?? get$1(answers, normalizedKey) ?? get$1(answers, `answers.${normalizedKey}`);
1093
2310
  }
1094
2311
  /** Sections and items ordered by `order` for deterministic `byTag` matching. */
1095
2312
  flattenQuestionnaireItems(structure) {
@@ -1339,6 +2556,28 @@ const HINT_MODE_OPTIONS = [
1339
2556
  title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.hint-mode.options.neutral',
1340
2557
  },
1341
2558
  ];
2559
+ const WIDTH_OPTIONS = [
2560
+ {
2561
+ id: 12,
2562
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.options.full',
2563
+ },
2564
+ {
2565
+ id: 6,
2566
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.options.half',
2567
+ },
2568
+ {
2569
+ id: 4,
2570
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.options.third',
2571
+ },
2572
+ {
2573
+ id: 3,
2574
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.options.quarter',
2575
+ },
2576
+ {
2577
+ id: 2,
2578
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.options.sixth',
2579
+ },
2580
+ ];
1342
2581
  //#endregion
1343
2582
  //#region ---- Properties by group ----
1344
2583
  const IDENTITY_PROPS = [
@@ -1381,6 +2620,28 @@ const IDENTITY_PROPS = [
1381
2620
  },
1382
2621
  visible: true,
1383
2622
  },
2623
+ {
2624
+ name: 'colSpan',
2625
+ title: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.title',
2626
+ description: '@assessment-management:questionnaires.components.questionnaire-builder.fields.width.description',
2627
+ group: GROUP_IDENTITY,
2628
+ order: 30,
2629
+ schema: {
2630
+ dataType: 'number',
2631
+ defaultValue: { id: 12, title: WIDTH_OPTIONS[0].title },
2632
+ interface: {
2633
+ name: 'colSpan',
2634
+ path: 'colSpan',
2635
+ type: AXPWidgetsCatalog.select,
2636
+ options: {
2637
+ valueField: 'id',
2638
+ textField: 'title',
2639
+ dataSource: [...WIDTH_OPTIONS],
2640
+ },
2641
+ },
2642
+ },
2643
+ visible: true,
2644
+ },
1384
2645
  ];
1385
2646
  const VALIDATION_PROPS = [
1386
2647
  {
@@ -1492,6 +2753,14 @@ function createQuestionHintFormContext(hint) {
1492
2753
  mode: { id: opt.id, title: opt.title },
1493
2754
  };
1494
2755
  }
2756
+ /**
2757
+ * Select row for the questionnaire-item width override. Full width when `layout` is omitted.
2758
+ */
2759
+ function createQuestionWidthFormValue(item) {
2760
+ const span = readQuestionnaireItemColSpan(item);
2761
+ const opt = WIDTH_OPTIONS.find((option) => option.id === span) ?? WIDTH_OPTIONS[0];
2762
+ return { id: opt.id, title: opt.title };
2763
+ }
1495
2764
  //#endregion
1496
2765
  //#region ---- Tab definition ----
1497
2766
  /**
@@ -1653,6 +2922,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
1653
2922
  isRequired: it.isRequired,
1654
2923
  isVisible: it.isVisible,
1655
2924
  interfaceOverride: it.interfaceOverride,
2925
+ layout: it.layout,
1656
2926
  hint: it.hint,
1657
2927
  comment: it.comment,
1658
2928
  tags: it.tags,
@@ -1923,6 +3193,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
1923
3193
  isRequired: it.isRequired,
1924
3194
  isVisible: it.isVisible,
1925
3195
  interfaceOverride: it.interfaceOverride,
3196
+ layout: it.layout,
1926
3197
  hint: it.hint,
1927
3198
  comment: it.comment,
1928
3199
  tags: it.tags,
@@ -2032,6 +3303,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
2032
3303
  isRequired: this.questionEditFormIsRequired(qItem),
2033
3304
  isVisible: this.questionEditFormIsVisible(qItem.isVisible),
2034
3305
  hint: createQuestionHintFormContext(mergedHintForForm),
3306
+ colSpan: createQuestionWidthFormValue(qItem),
2035
3307
  comment: mergedCommentForForm,
2036
3308
  })
2037
3309
  .onAction(async (ref) => {
@@ -2065,6 +3337,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
2065
3337
  tags,
2066
3338
  isRequired: this.persistQuestionIsRequiredFromForm(formData.isRequired),
2067
3339
  isVisible: this.persistQuestionIsVisibleFromForm(formData.isVisible),
3340
+ layout: questionnaireItemLayoutOverride(formData.colSpan),
2068
3341
  };
2069
3342
  if (hintPersist != null) {
2070
3343
  nextItem.hint = hintPersist;
@@ -2469,7 +3742,7 @@ class AXMQuestionnaireQuestionsBuilderComponent {
2469
3742
  }
2470
3743
  }
2471
3744
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireQuestionsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireQuestionsBuilderComponent, isStandalone: true, selector: "axm-questionnaire-questions-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, displaySettingsInput: { classPropertyName: "displaySettingsInput", publicName: "displaySettingsInput", isSignal: true, isRequired: false, transformFunction: null }, printSettingsInput: { classPropertyName: "printSettingsInput", publicName: "printSettingsInput", isSignal: true, isRequired: false, transformFunction: null }, questionnaireEntityId: { classPropertyName: "questionnaireEntityId", publicName: "questionnaireEntityId", isSignal: true, isRequired: false, transformFunction: null }, questionnaireTitle: { classPropertyName: "questionnaireTitle", publicName: "questionnaireTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "fullscreenDirective", first: true, predicate: ["fullscreen"], descendants: true, isSignal: true }, { propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-questions-builder\" axFullscreen #fullscreen=\"axFullscreen\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button class=\"ax-sm\" [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \" [color]=\"'primary'\" (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title'\n | translate\n | async) || 'Preview'\n \" [disabled]=\"isPreviewDisabled()\" (onClick)=\"handlePreview()\">\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-button>\n }\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.fullscreen.title'\n | translate\n | async) || 'Full Screen'\n \" (onClick)=\"handleFullscreen()\">\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder #standardRef class=\"block min-h-[200px]\" [value]=\"builderValue()\"\n [config]=\"standardConfig()\" [readonly]=\"readonly()\" (valueChange)=\"onBuilderValueChange($event)\" />\n</div>", styles: ["@layer properties;.axm-questionnaire-questions-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-questions-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axm-questionnaire-questions-builder .__header .__header-left,.axm-questionnaire-questions-builder .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "directive", type: AXFullScreenDirective, selector: "[axFullscreen]", inputs: ["mode"], outputs: ["fullscreenChange"], exportAs: ["axFullscreen"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3745
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireQuestionsBuilderComponent, isStandalone: true, selector: "axm-questionnaire-questions-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, prePostConfig: { classPropertyName: "prePostConfig", publicName: "prePostConfig", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, displaySettingsInput: { classPropertyName: "displaySettingsInput", publicName: "displaySettingsInput", isSignal: true, isRequired: false, transformFunction: null }, printSettingsInput: { classPropertyName: "printSettingsInput", publicName: "printSettingsInput", isSignal: true, isRequired: false, transformFunction: null }, questionnaireEntityId: { classPropertyName: "questionnaireEntityId", publicName: "questionnaireEntityId", isSignal: true, isRequired: false, transformFunction: null }, questionnaireTitle: { classPropertyName: "questionnaireTitle", publicName: "questionnaireTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "fullscreenDirective", first: true, predicate: ["fullscreen"], descendants: true, isSignal: true }, { propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-questions-builder\" axFullscreen #fullscreen=\"axFullscreen\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button class=\"ax-sm\" [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \" [color]=\"'primary'\" (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.preview.title'\n | translate\n | async) || 'Preview'\n \" [disabled]=\"isPreviewDisabled()\" (onClick)=\"handlePreview()\">\n <ax-icon icon=\"fa-light fa-eye\"></ax-icon>\n </ax-button>\n }\n <ax-button class=\"ax-sm\" [title]=\"\n ('@assessment-management:questionnaires.components.questionnaire-builder.actions.fullscreen.title'\n | translate\n | async) || 'Full Screen'\n \" (onClick)=\"handleFullscreen()\">\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder #standardRef class=\"block min-h-[200px]\" [value]=\"builderValue()\"\n [config]=\"standardConfig()\" [readonly]=\"readonly()\" (valueChange)=\"onBuilderValueChange($event)\" />\n</div>", styles: ["@layer properties;.axm-questionnaire-questions-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-questions-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axm-questionnaire-questions-builder .__header .__header-left,.axm-questionnaire-questions-builder .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "directive", type: AXFullScreenDirective, selector: "[axFullscreen]", inputs: ["mode"], outputs: ["fullscreenChange"], exportAs: ["axFullscreen"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2473
3746
  }
2474
3747
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireQuestionsBuilderComponent, decorators: [{
2475
3748
  type: Component,
@@ -3820,8 +5093,8 @@ class AXMQuestionnaireOutcomesBuilderComponent {
3820
5093
  return trimmed.length > 0 ? trimmed : undefined;
3821
5094
  }
3822
5095
  if (typeof value === 'object') {
3823
- const styleClass = String(get(value, 'styleClass') ?? '').trim();
3824
- const iconClass = String(get(value, 'iconClass') ?? '').trim();
5096
+ const styleClass = String(get$1(value, 'styleClass') ?? '').trim();
5097
+ const iconClass = String(get$1(value, 'iconClass') ?? '').trim();
3825
5098
  const combined = [styleClass, iconClass].filter(Boolean).join(' ');
3826
5099
  return combined.length > 0 ? combined : undefined;
3827
5100
  }
@@ -3843,19 +5116,19 @@ class AXMQuestionnaireOutcomesBuilderComponent {
3843
5116
  }
3844
5117
  const rows = [];
3845
5118
  for (const [index, row] of raw.entries()) {
3846
- const compareValue = this.coerceDisplayCompareValue(get(row, 'compareValue'), resultKind);
3847
- const color = this.normalizeDisplayColorValue(get(row, 'color'));
5119
+ const compareValue = this.coerceDisplayCompareValue(get$1(row, 'compareValue'), resultKind);
5120
+ const color = this.normalizeDisplayColorValue(get$1(row, 'color'));
3848
5121
  if (compareValue === undefined || !color) {
3849
5122
  continue;
3850
5123
  }
3851
5124
  rows.push({
3852
- id: String(get(row, 'id') ?? AXPDataGenerator.uuid()),
5125
+ id: String(get$1(row, 'id') ?? AXPDataGenerator.uuid()),
3853
5126
  order: index,
3854
- operator: this.coerceDisplayOperator(get(row, 'operator'), resultKind),
5127
+ operator: this.coerceDisplayOperator(get$1(row, 'operator'), resultKind),
3855
5128
  compareValue,
3856
5129
  color,
3857
- emphasis: this.coerceDisplayEmphasis(get(row, 'emphasis')),
3858
- icon: this.normalizeDisplayIconValue(get(row, 'icon')),
5130
+ emphasis: this.coerceDisplayEmphasis(get$1(row, 'emphasis')),
5131
+ icon: this.normalizeDisplayIconValue(get$1(row, 'icon')),
3859
5132
  });
3860
5133
  }
3861
5134
  return normalizeQuestionnaireOutcomeDisplayRules(rows);
@@ -3874,7 +5147,7 @@ class AXMQuestionnaireOutcomesBuilderComponent {
3874
5147
  return undefined;
3875
5148
  }
3876
5149
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireOutcomesBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3877
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireOutcomesBuilderComponent, isStandalone: true, selector: "axm-questionnaire-outcomes-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-outcomes-builder\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button\n class=\"ax-sm\"\n [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-outcomes-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \"\n [color]=\"'primary'\"\n (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder\n #standardRef\n class=\"block min-h-[200px]\"\n [value]=\"externalBuilderValue()\"\n [config]=\"standardConfig()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"onBuilderValueChange($event)\" />\n</div>\n", styles: ["@layer properties;.axm-questionnaire-outcomes-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-outcomes-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axm-questionnaire-outcomes-builder .__header .__header-left,.axm-questionnaire-outcomes-builder .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireOutcomesBuilderComponent, isStandalone: true, selector: "axm-questionnaire-outcomes-builder", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "standardRef", first: true, predicate: AXPStandardSectionItemsBuilderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"axm-questionnaire-outcomes-builder\">\n @if (showHeader()) {\n <div class=\"__header\">\n <div class=\"__header-left\"></div>\n <div class=\"__header-right\">\n @if (!readonly()) {\n <ax-button\n class=\"ax-sm\"\n [text]=\"\n ('@assessment-management:questionnaires.components.questionnaire-outcomes-builder.actions.add-section.title'\n | translate\n | async) || 'Add Section'\n \"\n [color]=\"'primary'\"\n (onClick)=\"addSection()\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-layer-group\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </div>\n </div>\n }\n\n <axp-standard-section-items-builder\n #standardRef\n class=\"block min-h-[200px]\"\n [value]=\"externalBuilderValue()\"\n [config]=\"standardConfig()\"\n [readonly]=\"readonly()\"\n (valueChange)=\"onBuilderValueChange($event)\" />\n</div>\n", styles: ["@layer properties;.axm-questionnaire-outcomes-builder{display:flex;height:100%;width:100%;flex-direction:column}.axm-questionnaire-outcomes-builder .__header{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3)}.axm-questionnaire-outcomes-builder .__header .__header-left,.axm-questionnaire-outcomes-builder .__header .__header-right{display:flex;gap:calc(var(--spacing, .25rem) * 2)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStandardSectionItemsBuilderComponent, selector: "axp-standard-section-items-builder", inputs: ["value", "config", "readonly"], outputs: ["valueChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3878
5151
  }
3879
5152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireOutcomesBuilderComponent, decorators: [{
3880
5153
  type: Component,
@@ -4540,7 +5813,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
4540
5813
  const widgetPath = question.question.interface?.path;
4541
5814
  if (!widgetPath)
4542
5815
  continue;
4543
- const value = get(contextData, widgetPath);
5816
+ const value = get$1(contextData, widgetPath);
4544
5817
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
4545
5818
  if (!isEmpty) {
4546
5819
  answeredCount++;
@@ -4596,7 +5869,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
4596
5869
  const widgetPath = question.question.interface?.path;
4597
5870
  if (!widgetPath)
4598
5871
  continue;
4599
- const value = get(contextData, widgetPath);
5872
+ const value = get$1(contextData, widgetPath);
4600
5873
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
4601
5874
  if (!isEmpty) {
4602
5875
  answeredCount++;
@@ -4925,7 +6198,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
4925
6198
  const widgetPath = question.question.interface?.path;
4926
6199
  if (!widgetPath)
4927
6200
  continue;
4928
- const value = get(contextData, widgetPath);
6201
+ const value = get$1(contextData, widgetPath);
4929
6202
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
4930
6203
  if (isEmpty) {
4931
6204
  return false;
@@ -5009,6 +6282,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5009
6282
  questionBankItemId: item.questionBankItemId,
5010
6283
  sectionName,
5011
6284
  order: item.order,
6285
+ colSpan: readQuestionnaireItemColSpan(item),
5012
6286
  isRequired: item.isRequired,
5013
6287
  isVisible: item.isVisible,
5014
6288
  hint: mergeQuestionHintForViewer(normalizeQuestionHintFromEntityRow(questionDetails), parseQuestionHintPartialFromRecord(item)),
@@ -5157,6 +6431,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5157
6431
  questionBankItemId: item.questionBankItemId,
5158
6432
  sectionName,
5159
6433
  order: item.order,
6434
+ colSpan: readQuestionnaireItemColSpan(item),
5160
6435
  isRequired: item.isRequired,
5161
6436
  isVisible: item.isVisible,
5162
6437
  hint: mergeQuestionHintForViewer(normalizeQuestionHintFromEntityRow(questionDetails), parseQuestionHintPartialFromRecord(item)),
@@ -5311,7 +6586,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5311
6586
  return false;
5312
6587
  }
5313
6588
  const contextData = store.widgetContainer()?.contextService?.data() ?? {};
5314
- return !isQuestionnaireAnswerValueEmpty(get(contextData, path));
6589
+ return !isQuestionnaireAnswerValueEmpty(get$1(contextData, path));
5315
6590
  },
5316
6591
  getPrintQuestionsInSection(section) {
5317
6592
  const questions = this.getVisibleQuestionsInSection(section);
@@ -5398,7 +6673,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5398
6673
  const contextData = contextService.data() || {};
5399
6674
  const widgetPath = question.question.interface?.path;
5400
6675
  if (widgetPath) {
5401
- const value = get(contextData, widgetPath);
6676
+ const value = get$1(contextData, widgetPath);
5402
6677
  if (isQuestionnaireItemStaticallyRequired(question.isRequired)) {
5403
6678
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
5404
6679
  if (isEmpty) {
@@ -5409,7 +6684,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5409
6684
  const commentPolicy = question.comment;
5410
6685
  if (this.isCommentVisible(question) && commentPolicy.required) {
5411
6686
  const cPath = getQuestionAnswerCommentStoragePath(question.name);
5412
- const cVal = get(contextData, cPath);
6687
+ const cVal = get$1(contextData, cPath);
5413
6688
  const commentEmpty = cVal === null || cVal === undefined || (typeof cVal === 'string' && cVal.trim() === '');
5414
6689
  if (commentEmpty) {
5415
6690
  return 'Comment is required.';
@@ -5440,8 +6715,8 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5440
6715
  return { isValid: true, errors: [] };
5441
6716
  }
5442
6717
  const sections = data.sections;
5443
- // Validate form first to trigger validation (this ensures form state is updated)
5444
- await form.validate();
6718
+ // Widget rules, including spreadsheet cells, fail this summary.
6719
+ const formSummary = await form.validate();
5445
6720
  // Manually validate each visible question
5446
6721
  // The form validation doesn't provide paths in the rules, so we validate manually
5447
6722
  const errors = [];
@@ -5454,7 +6729,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5454
6729
  const section = sections.find((s) => s.name === question.sectionName);
5455
6730
  const widgetPath = question.question.interface?.path;
5456
6731
  if (widgetPath) {
5457
- const value = get(contextData, widgetPath);
6732
+ const value = get$1(contextData, widgetPath);
5458
6733
  if (isQuestionnaireItemStaticallyRequired(question.isRequired)) {
5459
6734
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
5460
6735
  if (isEmpty) {
@@ -5478,7 +6753,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5478
6753
  const commentPolicy = question.comment;
5479
6754
  if (this.isCommentVisible(question) && commentPolicy.required) {
5480
6755
  const cPath = getQuestionAnswerCommentStoragePath(question.name);
5481
- const cVal = get(contextData, cPath);
6756
+ const cVal = get$1(contextData, cPath);
5482
6757
  const commentEmpty = cVal === null || cVal === undefined || (typeof cVal === 'string' && cVal.trim() === '');
5483
6758
  if (commentEmpty) {
5484
6759
  const questionTitle = resolveQuestionBankItemPlainLabel(question.question, locale);
@@ -5498,7 +6773,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5498
6773
  }
5499
6774
  }
5500
6775
  patchState(store, { validationErrors: errors });
5501
- if (errors.length > 0) {
6776
+ if (errors.length > 0 && formSummary.result) {
5502
6777
  const errorMessage = (await translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.validation.current-page-error')) || `Please complete ${errors.length} required question(s) on this page.`;
5503
6778
  toastService.show({
5504
6779
  color: 'danger',
@@ -5511,7 +6786,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5511
6786
  });
5512
6787
  }
5513
6788
  return {
5514
- isValid: errors.length === 0,
6789
+ isValid: errors.length === 0 && formSummary.result,
5515
6790
  errors,
5516
6791
  };
5517
6792
  },
@@ -5527,8 +6802,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5527
6802
  if (!data) {
5528
6803
  return { isValid: true, errors: [] };
5529
6804
  }
5530
- // Validate form first to trigger validation (this ensures form state is updated)
5531
- await form.validate();
6805
+ const formSummary = await form.validate();
5532
6806
  // Manually validate all visible questions
5533
6807
  // The form validation doesn't provide paths in the rules, so we validate manually
5534
6808
  const errors = [];
@@ -5545,7 +6819,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5545
6819
  const locale = translationService.getActiveLang?.() ?? 'en-US';
5546
6820
  const widgetPath = question.question.interface?.path;
5547
6821
  if (widgetPath) {
5548
- const value = get(contextData, widgetPath);
6822
+ const value = get$1(contextData, widgetPath);
5549
6823
  if (isQuestionnaireItemStaticallyRequired(question.isRequired)) {
5550
6824
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
5551
6825
  if (isEmpty) {
@@ -5569,7 +6843,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5569
6843
  const commentPolicy = question.comment;
5570
6844
  if (this.isCommentVisible(question) && commentPolicy.required) {
5571
6845
  const cPath = getQuestionAnswerCommentStoragePath(question.name);
5572
- const cVal = get(contextData, cPath);
6846
+ const cVal = get$1(contextData, cPath);
5573
6847
  const commentEmpty = cVal === null || cVal === undefined || (typeof cVal === 'string' && cVal.trim() === '');
5574
6848
  if (commentEmpty) {
5575
6849
  const questionTitle = resolveQuestionBankItemPlainLabel(question.question, locale);
@@ -5590,7 +6864,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5590
6864
  }
5591
6865
  }
5592
6866
  patchState(store, { validationErrors: errors });
5593
- if (errors.length > 0) {
6867
+ if (errors.length > 0 && formSummary.result) {
5594
6868
  const errorMessage = (await translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.validation.all-questions-error')) || `Please complete ${errors.length} required question(s) in the questionnaire.`;
5595
6869
  toastService.show({
5596
6870
  color: 'danger',
@@ -5603,7 +6877,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5603
6877
  });
5604
6878
  }
5605
6879
  return {
5606
- isValid: errors.length === 0,
6880
+ isValid: errors.length === 0 && formSummary.result,
5607
6881
  errors,
5608
6882
  };
5609
6883
  },
@@ -5739,8 +7013,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5739
7013
  return true;
5740
7014
  }
5741
7015
  const sections = data.sections;
5742
- // Validate form first to trigger validation
5743
- await form.validate();
7016
+ const formSummary = await form.validate();
5744
7017
  // Manually validate each visible question
5745
7018
  const container = store.widgetContainer();
5746
7019
  if (container?.contextService) {
@@ -5749,7 +7022,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5749
7022
  for (const question of visibleQuestions) {
5750
7023
  const widgetPath = question.question.interface?.path;
5751
7024
  if (widgetPath) {
5752
- const value = get(contextData, widgetPath);
7025
+ const value = get$1(contextData, widgetPath);
5753
7026
  if (isQuestionnaireItemStaticallyRequired(question.isRequired)) {
5754
7027
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
5755
7028
  if (isEmpty) {
@@ -5760,7 +7033,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5760
7033
  const commentPolicy = question.comment;
5761
7034
  if (this.isCommentVisible(question) && commentPolicy.required) {
5762
7035
  const cPath = getQuestionAnswerCommentStoragePath(question.name);
5763
- const cVal = get(contextData, cPath);
7036
+ const cVal = get$1(contextData, cPath);
5764
7037
  const commentEmpty = cVal === null || cVal === undefined || (typeof cVal === 'string' && cVal.trim() === '');
5765
7038
  if (commentEmpty) {
5766
7039
  return false;
@@ -5768,7 +7041,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5768
7041
  }
5769
7042
  }
5770
7043
  }
5771
- return true;
7044
+ return formSummary.result;
5772
7045
  },
5773
7046
  /**
5774
7047
  * Check if a section can be navigated to
@@ -5883,7 +7156,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5883
7156
  for (const section of data.sections) {
5884
7157
  for (const question of visibleQuestionsForSection(section, sc, qc)) {
5885
7158
  const widgetPath = question.question.interface?.path;
5886
- const answer = widgetPath ? get(contextData, widgetPath) : undefined;
7159
+ const answer = widgetPath ? get$1(contextData, widgetPath) : undefined;
5887
7160
  const n = question.question.note;
5888
7161
  const notePlain = n != null && n !== ''
5889
7162
  ? stripHtmlToPlain(resolveMultiLanguageString(n, locale)) || undefined
@@ -5936,7 +7209,7 @@ const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({
5936
7209
  const widgetPath = question.question.interface?.path;
5937
7210
  if (!widgetPath)
5938
7211
  continue;
5939
- const value = get(contextData, widgetPath);
7212
+ const value = get$1(contextData, widgetPath);
5940
7213
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
5941
7214
  if (isEmpty) {
5942
7215
  unansweredCount++;
@@ -6111,7 +7384,7 @@ class AXMQuestionnaireViewerQuestionComponent {
6111
7384
  return false;
6112
7385
  try {
6113
7386
  const widgetPath = question.question.interface.path;
6114
- const value = get(data, widgetPath);
7387
+ const value = get$1(data, widgetPath);
6115
7388
  const isEmpty = isQuestionnaireAnswerValueEmpty(value);
6116
7389
  return !isEmpty;
6117
7390
  }
@@ -6168,7 +7441,7 @@ class AXMQuestionnaireViewerQuestionComponent {
6168
7441
  const ctxData = this.vm?.widgetContainer()?.contextService?.data() ?? this.contextData();
6169
7442
  if (!path || !ctxData)
6170
7443
  return '';
6171
- const v = get(ctxData, path);
7444
+ const v = get$1(ctxData, path);
6172
7445
  if (v == null)
6173
7446
  return '';
6174
7447
  return typeof v === 'string' ? v : String(v);
@@ -6321,7 +7594,7 @@ class AXMQuestionnaireViewerQuestionComponent {
6321
7594
  />
6322
7595
  }
6323
7596
  </div>
6324
- `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:var(--spacing, .25rem);padding:calc(var(--spacing, .25rem) * 4);text-align:start;transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-surface));--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}axm-questionnaire-viewer-question .__question-item:hover{background:rgba(var(--ax-sys-color-primary-surface),.08);border-color:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered{background:rgba(var(--ax-sys-color-primary-surface),.14);border-color:rgba(var(--ax-sys-color-primary-surface),.5)}axm-questionnaire-viewer-question .__question-item.__print-mode{box-shadow:none}axm-questionnaire-viewer-question .__question-item.__print-mode:hover{background:inherit;border-color:inherit}axm-questionnaire-viewer-question .__question-item.__print-plain{background:transparent;border:none;border-radius:0;box-shadow:none;padding-inline:0}axm-questionnaire-viewer-question .__question-item.__print-plain:hover{background:transparent;border:none}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-primary-600))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1;flex-wrap:wrap;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1;text-align:start;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:var(--spacing, .25rem);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-style:var(--tw-border-style);border-width:1px;--tw-border-style: dashed;border-style:dashed;padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:var(--spacing, .25rem)}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item axp-file-list.--look-links.--links-inline{display:block;padding-top:calc(var(--spacing, .25rem) * 3)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i2$1.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4$1.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "accept", "maxFileSize", "showUploadZoneHint", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7597
+ `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-question{display:block}axm-questionnaire-viewer-question .__question-item{display:flex;flex-direction:column;gap:var(--spacing, .25rem);padding:calc(var(--spacing, .25rem) * 4);text-align:start;transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-surface));--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}axm-questionnaire-viewer-question .__question-item:hover{background:rgba(var(--ax-sys-color-primary-surface),.08);border-color:rgba(var(--ax-sys-color-primary-surface),.14)}axm-questionnaire-viewer-question .__question-item.__answered{background:rgba(var(--ax-sys-color-primary-surface),.14);border-color:rgba(var(--ax-sys-color-primary-surface),.5)}axm-questionnaire-viewer-question .__question-item.__print-mode{box-shadow:none}axm-questionnaire-viewer-question .__question-item.__print-mode:hover{background:inherit;border-color:inherit}axm-questionnaire-viewer-question .__question-item.__print-plain{background:transparent;border:none;border-radius:0;box-shadow:none;padding-inline:0}axm-questionnaire-viewer-question .__question-item.__print-plain:hover{background:transparent;border:none}axm-questionnaire-viewer-question .__question-item .__question-header{display:flex;width:100%;min-width:0px;align-items:flex-start;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 3)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-number{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-primary-600))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-left .__question-counter{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right{display:flex;min-width:0px;flex:1;flex-wrap:wrap;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block{min-width:0px;flex:1;text-align:start}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block h3.__question-title{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title{margin:0;min-width:0px;flex:1;text-align:start;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title.__question-title--rich{--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400)}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich{width:100%;max-width:100%;text-align:start;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ul ul{list-style-type:circle;margin-block:.25rem 0}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__question-title-block .__question-title--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}axm-questionnaire-viewer-question .__question-item .__question-note{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-note p{margin:0}axm-questionnaire-viewer-question .__question-item .__question-note p:first-child{margin-top:0}axm-questionnaire-viewer-question .__question-item .__question-note ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-question .__question-item .__question-note li{margin-block:.125rem}axm-questionnaire-viewer-question .__question-item .__question-description{margin-top:var(--spacing, .25rem);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-widget{text-align:start}axm-questionnaire-viewer-question .__question-item .__question-widget>*{margin-bottom:0}axm-questionnaire-viewer-question .__question-item .__widget-placeholder{border-radius:.25rem;border-style:var(--tw-border-style);border-width:1px;--tw-border-style: dashed;border-style:dashed;padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));font-style:italic;color:rgb(var(--ax-sys-color-on-surface-variant));background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment{display:flex;width:100%;flex-direction:column;gap:var(--spacing, .25rem)}axm-questionnaire-viewer-question .__question-item .__question-comment ax-text-area{margin-top:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-comment--readonly{margin-top:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-question .__question-item .__question-comment-text{margin:0;width:100%;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));white-space:pre-wrap;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-question .__question-item .__question-comment-label{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-question .__question-item .__question-comment-required{color:rgb(var(--ax-sys-color-danger-600))}axm-questionnaire-viewer-question .__question-item axp-file-list.--look-links.--links-inline{display:block;padding-top:calc(var(--spacing, .25rem) * 3)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXAlertModule }, { kind: "component", type: i2$1.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTextAreaModule }, { kind: "component", type: i4.AXTextAreaComponent, selector: "ax-text-area", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "placeholder", "maxLength", "look", "rows", "allowResize", "showCounter", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "accept", "maxFileSize", "showUploadZoneHint", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6325
7598
  }
6326
7599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerQuestionComponent, decorators: [{
6327
7600
  type: Component,
@@ -6525,7 +7798,7 @@ class AXMQuestionnaireViewerSectionHeaderComponent {
6525
7798
  }
6526
7799
  }
6527
7800
  </div>
6528
- `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-section-header{display:block;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-header{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * .5);text-align:start}axm-questionnaire-viewer-section-header .__section-title-lg{margin:0;font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-title-md{margin:0;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-description{margin:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-section-header .__section-description--rich{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-section-header .__section-description--rich p{margin:0}axm-questionnaire-viewer-section-header .__section-description--rich p:first-child{margin-top:0}axm-questionnaire-viewer-section-header .__section-description--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-section-header .__section-description--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-section-header .__section-description--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-section-header .__mb-sm{margin-bottom:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-section-header .__mb-md{margin-bottom:calc(var(--spacing, .25rem) * 4)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7801
+ `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-section-header{display:block;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-header{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * .5);text-align:start}axm-questionnaire-viewer-section-header .__section-title-lg{margin:0;font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-title-md{margin:0;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-section-header .__section-description{margin:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-section-header .__section-description--rich{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-section-header .__section-description--rich p{margin:0}axm-questionnaire-viewer-section-header .__section-description--rich p:first-child{margin-top:0}axm-questionnaire-viewer-section-header .__section-description--rich ul{list-style-type:disc;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-section-header .__section-description--rich ol{list-style-type:decimal;list-style-position:outside;margin-block:.375rem 0;padding-inline-start:1.25rem}axm-questionnaire-viewer-section-header .__section-description--rich li{margin-block:.125rem;padding-inline-start:.25rem}axm-questionnaire-viewer-section-header .__mb-sm{margin-bottom:calc(var(--spacing, .25rem) * 2)}axm-questionnaire-viewer-section-header .__mb-md{margin-bottom:calc(var(--spacing, .25rem) * 4)}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6529
7802
  }
6530
7803
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerSectionHeaderComponent, decorators: [{
6531
7804
  type: Component,
@@ -6565,11 +7838,11 @@ class AXMQuestionnaireViewerSinglePageViewComponent {
6565
7838
  this.vm = inject(AXMQuestionnaireViewerViewModel);
6566
7839
  }
6567
7840
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6568
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerSinglePageViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-single-page-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7841
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerSinglePageViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-single-page-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-single-page-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6569
7842
  }
6570
7843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, decorators: [{
6571
7844
  type: Component,
6572
- args: [{ selector: 'axm-questionnaire-viewer-single-page-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
7845
+ args: [{ selector: 'axm-questionnaire-viewer-single-page-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__single-page-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-single-page-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-single-page-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-single-page-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
6573
7846
  }] });
6574
7847
 
6575
7848
  //#region ---- Imports ----
@@ -6585,11 +7858,11 @@ class AXMQuestionnaireViewerPagePerGroupViewComponent {
6585
7858
  this.vm = inject(AXMQuestionnaireViewerViewModel);
6586
7859
  }
6587
7860
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6588
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerPagePerGroupViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page-per-group-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 4);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7861
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerPagePerGroupViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page-per-group-view", ngImport: i0, template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:grid;flex-shrink:0;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-page-per-group-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 4);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6589
7862
  }
6590
7863
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, decorators: [{
6591
7864
  type: Component,
6592
- args: [{ selector: 'axm-questionnaire-viewer-page-per-group-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 4);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
7865
+ args: [{ selector: 'axm-questionnaire-viewer-page-per-group-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPStickyDirective, AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div #viewerScroll class=\"__viewer-scroll\">\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n <div class=\"__page-group-section\">\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"viewerScroll\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-page-per-group-view .__page-group-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:grid;flex-shrink:0;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-bottom:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-page-per-group-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-page-per-group-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 4);background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
6593
7866
  }] });
6594
7867
 
6595
7868
  //#region ---- Imports ----
@@ -6779,7 +8052,7 @@ class AXMQuestionnaireViewerSideMenuViewComponent {
6779
8052
  return cache.has(sectionIndex) ? !cache.get(sectionIndex) : false;
6780
8053
  }
6781
8054
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6782
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerSideMenuViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-side-menu-view", viewQueries: [{ propertyName: "tabRef", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(width>=40rem){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(width>=64rem){axm-questionnaire-viewer-side-menu-view{height:65vh}}axm-questionnaire-viewer-side-menu-view .__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__sidebar-drawer{height:100%;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-content{height:100%;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs ax-tab-item{margin-block:0px;padding-block:calc(var(--spacing, .25rem) * 3);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}axm-questionnaire-viewer-side-menu-view .__main-content{display:flex;max-height:83vh;min-height:0px;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto}@media(width>=48rem){axm-questionnaire-viewer-side-menu-view .__main-content{max-height:75vh}}axm-questionnaire-viewer-side-menu-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__mobile-menu-button{margin-inline-start:calc(var(--spacing, .25rem) * -2);flex-shrink:0}axm-questionnaire-viewer-side-menu-view .__questions-list{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "renderMode", "stacked", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i1$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8055
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerSideMenuViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-side-menu-view", viewQueries: [{ propertyName: "tabRef", first: true, predicate: AXTabsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(width>=40rem){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(width>=64rem){axm-questionnaire-viewer-side-menu-view{height:65vh}}axm-questionnaire-viewer-side-menu-view .__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__sidebar-drawer{height:100%;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-content{height:100%;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs ax-tab-item{margin-block:0px;padding-block:calc(var(--spacing, .25rem) * 3);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}axm-questionnaire-viewer-side-menu-view .__main-content{display:flex;max-height:83vh;min-height:0px;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto}@media(width>=48rem){axm-questionnaire-viewer-side-menu-view .__main-content{max-height:75vh}}axm-questionnaire-viewer-side-menu-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__mobile-menu-button{margin-inline-start:calc(var(--spacing, .25rem) * -2);flex-shrink:0}axm-questionnaire-viewer-side-menu-view .__questions-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-side-menu-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i1$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "renderMode", "stacked", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i1$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i2$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i3$2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6783
8056
  }
6784
8057
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, decorators: [{
6785
8058
  type: Component,
@@ -6796,7 +8069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
6796
8069
  AXPStickyDirective,
6797
8070
  AsyncPipe,
6798
8071
  AXTranslationModule,
6799
- ], template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(width>=40rem){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(width>=64rem){axm-questionnaire-viewer-side-menu-view{height:65vh}}axm-questionnaire-viewer-side-menu-view .__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__sidebar-drawer{height:100%;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-content{height:100%;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs ax-tab-item{margin-block:0px;padding-block:calc(var(--spacing, .25rem) * 3);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}axm-questionnaire-viewer-side-menu-view .__main-content{display:flex;max-height:83vh;min-height:0px;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto}@media(width>=48rem){axm-questionnaire-viewer-side-menu-view .__main-content{max-height:75vh}}axm-questionnaire-viewer-side-menu-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__mobile-menu-button{margin-inline-start:calc(var(--spacing, .25rem) * -2);flex-shrink:0}axm-questionnaire-viewer-side-menu-view .__questions-list{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
8072
+ ], template: "<div class=\"__side-menu-container\">\n <!-- Desktop Sidebar (Large screens) -->\n @if (deviceService.isLarge()) {\n <div class=\"__desktop-sidebar\" [axResizable]=\"true\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\" [color]=\"'danger'\">\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </div>\n }\n\n <!-- Mobile/Tablet: Drawer Container -->\n @if (deviceService.isSmall() || deviceService.isMedium()) {\n <ax-drawer-container class=\"__drawer-container\">\n <!-- Sidebar Drawer (Mobile) -->\n <ax-drawer\n #sidebarDrawer\n [location]=\"'start'\"\n [mode]=\"'overlay'\"\n [collapsed]=\"sidebarDrawerCollapsed()\"\n [closeOnBackdropClick]=\"true\"\n (onBackdropClick)=\"sidebarDrawerCollapsed.set(true)\"\n class=\"__sidebar-drawer w-[250px]\"\n >\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (sectionIndex of vm.sectionIndicesWithVisibleContent(); track sectionIndex) {\n <ax-tab-item\n [text]=\"(vm.sections()[sectionIndex].title | translate | async) || ''\"\n (onClick)=\"handleSectionClick(sectionIndex)\"\n [active]=\"vm.currentSectionIndex() === sectionIndex\"\n [disabled]=\"isSectionDisabled(sectionIndex)\"\n >\n @if (getSectionBadgeCount(vm.sections()[sectionIndex].name) > 0) {\n <ax-badge\n [text]=\"getSectionBadgeCount(vm.sections()[sectionIndex].name).toString()\"\n [color]=\"'danger'\"\n >\n </ax-badge>\n }\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer>\n\n <!-- Main Content (Mobile) -->\n <ax-content class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div class=\"__mobile-header-row\" [axpSticky]=\"'--stuck'\" [stickyParent]=\"parent\" [stickyOffset]=\"0\">\n <div class=\"__mobile-menu-button\">\n <ax-button look=\"blank\" (onClick)=\"sidebarDrawerCollapsed.set(!sidebarDrawerCollapsed())\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-bars\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </ax-content>\n </ax-drawer-container>\n } @else {\n <!-- Desktop Main Content -->\n <div class=\"__main-content\">\n <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n @if (vm.isSectionVisible(section)) {\n @if (stickyParent(); as parent) {\n <div\n class=\"__section-title-sticky\"\n [axpSticky]=\"'--stuck'\"\n [stickyParent]=\"parent\"\n [stickyOffset]=\"0\"\n >\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'lg'\"\n [marginBottom]=\"'none'\"\n >\n </axm-questionnaire-viewer-section-header>\n </div>\n }\n\n <div class=\"__page-section\">\n <div class=\"__questions-list\">\n @for (question of vm.getVisibleQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n >\n </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;axm-questionnaire-viewer-side-menu-view{display:block;min-height:0px;width:100%;overflow:hidden}@media(width>=40rem){axm-questionnaire-viewer-side-menu-view{height:100%}}@media(width>=64rem){axm-questionnaire-viewer-side-menu-view{height:65vh}}axm-questionnaire-viewer-side-menu-view .__side-menu-container{display:flex;height:100%;min-height:0px;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}axm-questionnaire-viewer-side-menu-view .__sidebar-drawer{height:100%;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-content{height:100%;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-color:rgba(var(--ax-sys-color-surface))}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1;overflow-y:auto}axm-questionnaire-viewer-side-menu-view .__sidebar-tabs ax-tab-item{margin-block:0px;padding-block:calc(var(--spacing, .25rem) * 3);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}axm-questionnaire-viewer-side-menu-view .__main-content{display:flex;max-height:83vh;min-height:0px;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto}@media(width>=48rem){axm-questionnaire-viewer-side-menu-view .__main-content{max-height:75vh}}axm-questionnaire-viewer-side-menu-view .__page-section{display:flex;flex-shrink:0;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);padding:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__mobile-menu-button{margin-inline-start:calc(var(--spacing, .25rem) * -2);flex-shrink:0}axm-questionnaire-viewer-side-menu-view .__questions-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}axm-questionnaire-viewer-side-menu-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}@media(max-width:600px){axm-questionnaire-viewer-side-menu-view .__questions-list>axm-questionnaire-viewer-question{grid-column:span 12}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
6800
8073
  }], ctorParameters: () => [], propDecorators: { tabRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXTabsComponent), { isSignal: true }] }] } });
6801
8074
 
6802
8075
  //#region ---- Imports ----
@@ -6810,11 +8083,11 @@ class AXMQuestionnaireViewerPrintViewComponent {
6810
8083
  this.vm = inject(AXMQuestionnaireViewerViewModel);
6811
8084
  }
6812
8085
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPrintViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6813
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerPrintViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-print-view", ngImport: i0, template: "<div class=\"__print-document\" [attr.data-print-paging]=\"vm.printPaging()\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isPrintSectionVisible(section)) {\n <section class=\"__print-section\">\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'sm'\"\n />\n <div class=\"__print-questions\">\n @for (question of vm.getPrintQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n [mode]=\"'print'\"\n />\n }\n </div>\n </section>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-print-view{display:block;width:100%;max-width:100%;height:auto;overflow:visible;background:#fff;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-print-view .__print-document{display:block;width:100%;break-inside:auto}axm-questionnaire-viewer-print-view .__print-section{display:block;margin:0 0 12px;break-inside:auto}axm-questionnaire-viewer-print-view .__print-questions{display:block}axm-questionnaire-viewer-print-view .__question-item{break-inside:avoid;page-break-inside:avoid;box-shadow:none}axm-questionnaire-viewer-print-view button,axm-questionnaire-viewer-print-view .ax-general-button-icon,axm-questionnaire-viewer-print-view ax-validation-rule,axm-questionnaire-viewer-print-view ax-clear-button,axm-questionnaire-viewer-print-view ax-validation-summary{display:none!important}.__print-document[data-print-paging=page-per-group] .__print-section+.__print-section,.__print-document[data-print-paging=side-menu] .__print-section+.__print-section{break-before:page;page-break-before:always}.__print-document[data-print-paging=page-per-question] axm-questionnaire-viewer-question+axm-questionnaire-viewer-question{break-before:page;page-break-before:always}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8086
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerPrintViewComponent, isStandalone: true, selector: "axm-questionnaire-viewer-print-view", ngImport: i0, template: "<div class=\"__print-document\" [attr.data-print-paging]=\"vm.printPaging()\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isPrintSectionVisible(section)) {\n <section class=\"__print-section\">\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'sm'\"\n />\n <div class=\"__print-questions\">\n @for (question of vm.getPrintQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n [mode]=\"'print'\"\n />\n }\n </div>\n </section>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-print-view{display:block;width:100%;max-width:100%;height:auto;overflow:visible;background:#fff;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-print-view .__print-document{display:block;width:100%;break-inside:auto}axm-questionnaire-viewer-print-view .__print-section{display:block;margin:0 0 12px;break-inside:auto}axm-questionnaire-viewer-print-view .__print-questions{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}axm-questionnaire-viewer-print-view .__print-questions>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}axm-questionnaire-viewer-print-view .__question-item{break-inside:avoid;page-break-inside:avoid;box-shadow:none}axm-questionnaire-viewer-print-view button,axm-questionnaire-viewer-print-view .ax-general-button-icon,axm-questionnaire-viewer-print-view ax-validation-rule,axm-questionnaire-viewer-print-view ax-clear-button,axm-questionnaire-viewer-print-view ax-validation-summary{display:none!important}.__print-document[data-print-paging=page-per-group] .__print-section+.__print-section,.__print-document[data-print-paging=side-menu] .__print-section+.__print-section{break-before:page;page-break-before:always}.__print-document[data-print-paging=page-per-question] axm-questionnaire-viewer-question+axm-questionnaire-viewer-question{break-before:page;page-break-before:always}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
6814
8087
  }
6815
8088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPrintViewComponent, decorators: [{
6816
8089
  type: Component,
6817
- args: [{ selector: 'axm-questionnaire-viewer-print-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div class=\"__print-document\" [attr.data-print-paging]=\"vm.printPaging()\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isPrintSectionVisible(section)) {\n <section class=\"__print-section\">\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'sm'\"\n />\n <div class=\"__print-questions\">\n @for (question of vm.getPrintQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n [mode]=\"'print'\"\n />\n }\n </div>\n </section>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-print-view{display:block;width:100%;max-width:100%;height:auto;overflow:visible;background:#fff;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-print-view .__print-document{display:block;width:100%;break-inside:auto}axm-questionnaire-viewer-print-view .__print-section{display:block;margin:0 0 12px;break-inside:auto}axm-questionnaire-viewer-print-view .__print-questions{display:block}axm-questionnaire-viewer-print-view .__question-item{break-inside:avoid;page-break-inside:avoid;box-shadow:none}axm-questionnaire-viewer-print-view button,axm-questionnaire-viewer-print-view .ax-general-button-icon,axm-questionnaire-viewer-print-view ax-validation-rule,axm-questionnaire-viewer-print-view ax-clear-button,axm-questionnaire-viewer-print-view ax-validation-summary{display:none!important}.__print-document[data-print-paging=page-per-group] .__print-section+.__print-section,.__print-document[data-print-paging=side-menu] .__print-section+.__print-section{break-before:page;page-break-before:always}.__print-document[data-print-paging=page-per-question] axm-questionnaire-viewer-question+axm-questionnaire-viewer-question{break-before:page;page-break-before:always}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
8090
+ args: [{ selector: 'axm-questionnaire-viewer-print-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXMQuestionnaireViewerQuestionComponent, AXMQuestionnaireViewerSectionHeaderComponent], template: "<div class=\"__print-document\" [attr.data-print-paging]=\"vm.printPaging()\">\n @for (section of vm.sections(); track section.name) {\n @if (vm.isPrintSectionVisible(section)) {\n <section class=\"__print-section\">\n <axm-questionnaire-viewer-section-header\n [title]=\"section.title\"\n [description]=\"section.description\"\n [titleSize]=\"'md'\"\n [marginBottom]=\"'sm'\"\n />\n <div class=\"__print-questions\">\n @for (question of vm.getPrintQuestionsInSection(section); track question.name; let i = $index) {\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [style.--q-col-span]=\"question.colSpan\"\n [sectionOrder]=\"section.order\"\n [questionIndex]=\"i + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"false\"\n [mode]=\"'print'\"\n />\n }\n </div>\n </section>\n }\n }\n</div>\n", styles: ["axm-questionnaire-viewer-print-view{display:block;width:100%;max-width:100%;height:auto;overflow:visible;background:#fff;color:rgb(var(--ax-sys-color-on-surface))}axm-questionnaire-viewer-print-view .__print-document{display:block;width:100%;break-inside:auto}axm-questionnaire-viewer-print-view .__print-section{display:block;margin:0 0 12px;break-inside:auto}axm-questionnaire-viewer-print-view .__print-questions{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}axm-questionnaire-viewer-print-view .__print-questions>axm-questionnaire-viewer-question{grid-column:span var(--q-col-span, 12);min-width:0}axm-questionnaire-viewer-print-view .__question-item{break-inside:avoid;page-break-inside:avoid;box-shadow:none}axm-questionnaire-viewer-print-view button,axm-questionnaire-viewer-print-view .ax-general-button-icon,axm-questionnaire-viewer-print-view ax-validation-rule,axm-questionnaire-viewer-print-view ax-clear-button,axm-questionnaire-viewer-print-view ax-validation-summary{display:none!important}.__print-document[data-print-paging=page-per-group] .__print-section+.__print-section,.__print-document[data-print-paging=side-menu] .__print-section+.__print-section{break-before:page;page-break-before:always}.__print-document[data-print-paging=page-per-question] axm-questionnaire-viewer-question+axm-questionnaire-viewer-question{break-before:page;page-break-before:always}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
6818
8091
  }] });
6819
8092
 
6820
8093
  //#region ---- Imports ----
@@ -7071,7 +8344,7 @@ class AXMQuestionnaireViewerComponent {
7071
8344
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7072
8345
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerComponent, isStandalone: true, selector: "axm-questionnaire-viewer", inputs: { questionnaireId: { classPropertyName: "questionnaireId", publicName: "questionnaireId", isSignal: true, isRequired: false, transformFunction: null }, structure: { classPropertyName: "structure", publicName: "structure", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, initialAnswers: { classPropertyName: "initialAnswers", publicName: "initialAnswers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { answersChanged: "answersChanged", questionAnswered: "questionAnswered" }, host: { classAttribute: "axm-questionnaire-viewer" }, providers: [AXMQuestionnaireViewerViewModel], viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, isSignal: true }, { propertyName: "widgetContainer", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<axp-widgets-container #widgetContainer [attr.dir]=\"layoutDirection()\" [context]=\"{}\"\n (onContextChanged)=\"handleContextChanged()\">\n @if (vm.isLoading()) {\n <div class=\"__loading\">\n <axp-state-message icon=\"fa-light fa-spinner fa-spin\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async) || ''\"\n [description]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.loading.description' | translate | async) || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.error()) {\n <div class=\"__error\">\n <axp-state-message icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"('@assessment-management:questionnaires.components.questionnaire-viewer.error.title' | translate | async) || ''\"\n [description]=\"vm.error() || ''\">\n </axp-state-message>\n </div>\n } @else if (vm.questionnaireData()) {\n <div class=\"__questionnaire-container\">\n <ax-form #form>\n @if (vm.printLayout()) {\n <axm-questionnaire-viewer-print-view></axm-questionnaire-viewer-print-view>\n } @else if (vm.viewMode() === 'single-page') {\n <axm-questionnaire-viewer-single-page-view></axm-questionnaire-viewer-single-page-view>\n } @else if (vm.viewMode() === 'page-per-group') {\n <axm-questionnaire-viewer-page-per-group-view></axm-questionnaire-viewer-page-per-group-view>\n } @else if (vm.viewMode() === 'page-per-question') {\n <axm-questionnaire-viewer-page-per-question-view></axm-questionnaire-viewer-page-per-question-view>\n } @else if (vm.viewMode() === 'side-menu') {\n <axm-questionnaire-viewer-side-menu-view></axm-questionnaire-viewer-side-menu-view>\n }\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n </div>\n }\n</axp-widgets-container>", styles: [".axm-questionnaire-viewer{display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column}.axm-questionnaire-viewer .__loading,.axm-questionnaire-viewer .__error{display:flex;height:100%;align-items:center;justify-content:center}.axm-questionnaire-viewer .__questionnaire-container{display:flex;min-height:0px;flex:1;flex-direction:column;overflow:hidden}.axm-questionnaire-viewer ax-form{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column;overflow:hidden}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n", "@layer properties;.__section-title-sticky,.__mobile-header-row{position:sticky;top:0;z-index:10;isolation:isolate;min-width:0px;align-self:stretch;--tw-border-style: none;border-style:none;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}:is(.__section-title-sticky,.__mobile-header-row):before{content:\"\";position:absolute;z-index:-1;inset-block:0;inset-inline:0;pointer-events:none;background-color:rgb(var(--ax-sys-color-lightest-surface));border-bottom:1px solid transparent;box-shadow:none;transition:box-shadow .2s ease-out,border-color .2s ease-out}:is(.__section-title-sticky,.__mobile-header-row):after{content:\"\";position:absolute;bottom:0;left:1rem;right:1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-surface));pointer-events:none;opacity:1;transition:opacity .2s ease-out}:is(.__section-title-sticky,.__mobile-header-row).--stuck:after{opacity:0}:is(.__section-title-sticky,.__mobile-header-row).--stuck:before{border-bottom-color:rgb(var(--ax-sys-color-border-surface));--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);inset-inline:-1rem}@media(prefers-reduced-motion:reduce){.__section-title-sticky:before,.__mobile-header-row:before,.__section-title-sticky:after,.__mobile-header-row:after{transition-duration:1ms}}.__mobile-header-row{display:flex;flex-shrink:0;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 2)}.__viewer-scroll{display:flex;min-height:0px;width:100%;flex:1;flex-direction:column;overflow-x:hidden;overflow-y:auto;max-height:83vh}@media(width>=48rem){.__viewer-scroll{max-height:75vh}}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1;flex-direction:column}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-popup .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll){display:flex;height:100%;max-height:100%;min-height:0px;width:100%;flex:1;flex-direction:column}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) .__questionnaire-container{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer:has(.__viewer-scroll) ax-form{display:flex;height:100%;min-height:0px;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content:has(.__viewer-scroll){overflow:hidden}axm-questionnaire-viewer-single-page-view,axm-questionnaire-viewer-page-per-group-view{display:flex;height:100%;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1$3.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: i1$3.AXValidationSummaryComponent, selector: "ax-validation-summary", inputs: ["title", "displayMode", "timeOut", "autoHide"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "component", type:
7073
8346
  // View components
7074
- AXMQuestionnaireViewerSinglePageViewComponent, selector: "axm-questionnaire-viewer-single-page-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerGroupViewComponent, selector: "axm-questionnaire-viewer-page-per-group-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerQuestionViewComponent, selector: "axm-questionnaire-viewer-page-per-question-view" }, { kind: "component", type: AXMQuestionnaireViewerSideMenuViewComponent, selector: "axm-questionnaire-viewer-side-menu-view" }, { kind: "component", type: AXMQuestionnaireViewerPrintViewComponent, selector: "axm-questionnaire-viewer-print-view" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8347
+ AXMQuestionnaireViewerSinglePageViewComponent, selector: "axm-questionnaire-viewer-single-page-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerGroupViewComponent, selector: "axm-questionnaire-viewer-page-per-group-view" }, { kind: "component", type: AXMQuestionnaireViewerPagePerQuestionViewComponent, selector: "axm-questionnaire-viewer-page-per-question-view" }, { kind: "component", type: AXMQuestionnaireViewerSideMenuViewComponent, selector: "axm-questionnaire-viewer-side-menu-view" }, { kind: "component", type: AXMQuestionnaireViewerPrintViewComponent, selector: "axm-questionnaire-viewer-print-view" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7075
8348
  }
7076
8349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerComponent, decorators: [{
7077
8350
  type: Component,
@@ -7357,8 +8630,8 @@ async function touchAssessmentCaseActivity(entityService, caseId) {
7357
8630
  async function persistAssessmentSession(input) {
7358
8631
  const { entityService, questionnaireViewerService, caseId, sessionId, existingSession, responderId, role, structure, answers, finalize, progressMetrics, timeSpentSeconds, } = input;
7359
8632
  const calculatedProgress = questionnaireViewerService.calculateProgressFromStructure(structure, answers);
7360
- const answeredQuestionsCount = defaultTo(get(progressMetrics, 'answeredQuestionsCount'), calculatedProgress.answeredQuestionsCount);
7361
- const progressPercentage = defaultTo(get(progressMetrics, 'progressPercentage'), calculatedProgress.progressPercentage);
8633
+ const answeredQuestionsCount = defaultTo(get$1(progressMetrics, 'answeredQuestionsCount'), calculatedProgress.answeredQuestionsCount);
8634
+ const progressPercentage = defaultTo(get$1(progressMetrics, 'progressPercentage'), calculatedProgress.progressPercentage);
7362
8635
  const now = new Date();
7363
8636
  const sessionAccessor = entityService
7364
8637
  .withEntity(RootConfig.module.name, RootConfig.entities.assessmentSession.name)
@@ -7370,7 +8643,7 @@ async function persistAssessmentSession(input) {
7370
8643
  }
7371
8644
  const sessionStatusId = finalize
7372
8645
  ? 'submitted'
7373
- : get(currentSession, 'statusId') === 'submitted'
8646
+ : get$1(currentSession, 'statusId') === 'submitted'
7374
8647
  ? 'submitted'
7375
8648
  : AXPSystemStatusType.InProgress;
7376
8649
  const sessionData = {
@@ -7383,7 +8656,7 @@ async function persistAssessmentSession(input) {
7383
8656
  lastSavedAt: now,
7384
8657
  statusId: sessionStatusId,
7385
8658
  };
7386
- if (isEmpty(get(currentSession, 'startedAt'))) {
8659
+ if (isEmpty(get$1(currentSession, 'startedAt'))) {
7387
8660
  sessionData['startedAt'] = now;
7388
8661
  }
7389
8662
  if (timeSpentSeconds != null && timeSpentSeconds >= 0) {
@@ -7746,7 +9019,7 @@ class AXMHeadlessQuestionnaireSessionService {
7746
9019
  const commentFlag = getQuestionCommentVisibilityFlag(current.comment);
7747
9020
  const commentVisible = resolveCommentVisible(commentFlag, current.itemName, session.commentCache);
7748
9021
  if (commentVisible && current.comment.required) {
7749
- const commentVal = get(session.answers, `comments.${current.itemName}`);
9022
+ const commentVal = get$1(session.answers, `comments.${current.itemName}`);
7750
9023
  const commentEmpty = commentVal === null || commentVal === undefined || (typeof commentVal === 'string' && commentVal.trim() === '');
7751
9024
  if (commentEmpty) {
7752
9025
  return {
@@ -7920,7 +9193,7 @@ class AXMHeadlessQuestionnaireSessionService {
7920
9193
  }
7921
9194
  const commentVisible = resolveCommentVisible(getQuestionCommentVisibilityFlag(item.comment), item.itemName, session.commentCache);
7922
9195
  if (commentVisible && item.comment.required) {
7923
- const cVal = get(session.answers, `comments.${item.itemName}`);
9196
+ const cVal = get$1(session.answers, `comments.${item.itemName}`);
7924
9197
  if (cVal === null || cVal === undefined || (typeof cVal === 'string' && cVal.trim() === '')) {
7925
9198
  errors.push({ answerKey: item.answerKey, message: 'comment-required' });
7926
9199
  }
@@ -8031,19 +9304,19 @@ class AXMQuestionnaireViewerFeatureModule {
8031
9304
  provideCommandSetups([
8032
9305
  {
8033
9306
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,
8034
- command: () => import('./acorex-platform-module-assessment-management-client-preview-questionnaire.command-duK7Tjjp.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
9307
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-questionnaire.command-BYh-3EP9.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
8035
9308
  },
8036
9309
  {
8037
9310
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:PreviewQuestion`,
8038
- command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs').then((c) => c.PreviewQuestionCommand),
9311
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs').then((c) => c.PreviewQuestionCommand),
8039
9312
  },
8040
9313
  {
8041
9314
  key: `${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}:Preview`,
8042
- command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs').then((c) => c.PreviewQuestionCommand),
9315
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs').then((c) => c.PreviewQuestionCommand),
8043
9316
  },
8044
9317
  {
8045
9318
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,
8046
- command: () => import('./acorex-platform-module-assessment-management-client-view-session-answers.command-DjJajIkL.mjs').then((c) => c.ViewSessionAnswersCommand),
9319
+ command: () => import('./acorex-platform-module-assessment-management-client-view-session-answers.command-CxZirYRJ.mjs').then((c) => c.ViewSessionAnswersCommand),
8047
9320
  },
8048
9321
  {
8049
9322
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:PreviewPdf`,
@@ -8051,47 +9324,47 @@ class AXMQuestionnaireViewerFeatureModule {
8051
9324
  },
8052
9325
  {
8053
9326
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,
8054
- command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs').then((c) => c.FillAssessmentSessionCommand),
9327
+ command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs').then((c) => c.FillAssessmentSessionCommand),
8055
9328
  },
8056
9329
  {
8057
9330
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,
8058
- command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs').then((c) => c.FillAssessmentSessionCommand),
9331
+ command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs').then((c) => c.FillAssessmentSessionCommand),
8059
9332
  },
8060
9333
  {
8061
9334
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ReviewAnswers`,
8062
- command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs').then((c) => c.ReviewAssessmentSessionCommand),
9335
+ command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs').then((c) => c.ReviewAssessmentSessionCommand),
8063
9336
  },
8064
9337
  {
8065
9338
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:ReviewAnswers`,
8066
- command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs').then((c) => c.ReviewAssessmentSessionCommand),
9339
+ command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs').then((c) => c.ReviewAssessmentSessionCommand),
8067
9340
  },
8068
9341
  {
8069
9342
  key: ASSESSMENT_FIND_CASE_FOR_VOICE_FILL_COMMAND,
8070
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMFindCaseForVoiceFillCommand),
9343
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMFindCaseForVoiceFillCommand),
8071
9344
  },
8072
9345
  {
8073
9346
  key: ASSESSMENT_START_HEADLESS_QUESTIONNAIRE_COMMAND,
8074
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMStartHeadlessQuestionnaireCommand),
9347
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMStartHeadlessQuestionnaireCommand),
8075
9348
  },
8076
9349
  {
8077
9350
  key: ASSESSMENT_NEXT_QUESTIONNAIRE_QUESTION_COMMAND,
8078
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMNextQuestionnaireQuestionCommand),
9351
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMNextQuestionnaireQuestionCommand),
8079
9352
  },
8080
9353
  {
8081
9354
  key: ASSESSMENT_APPLY_QUESTIONNAIRE_ANSWER_COMMAND,
8082
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMApplyQuestionnaireAnswerCommand),
9355
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMApplyQuestionnaireAnswerCommand),
8083
9356
  },
8084
9357
  {
8085
9358
  key: ASSESSMENT_SAVE_QUESTIONNAIRE_DRAFT_COMMAND,
8086
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMSaveQuestionnaireDraftCommand),
9359
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMSaveQuestionnaireDraftCommand),
8087
9360
  },
8088
9361
  {
8089
9362
  key: ASSESSMENT_SUBMIT_QUESTIONNAIRE_COMMAND,
8090
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMSubmitQuestionnaireCommand),
9363
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMSubmitQuestionnaireCommand),
8091
9364
  },
8092
9365
  {
8093
9366
  key: ASSESSMENT_CANCEL_QUESTIONNAIRE_COMMAND,
8094
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMCancelQuestionnaireCommand),
9367
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMCancelQuestionnaireCommand),
8095
9368
  },
8096
9369
  ]),
8097
9370
  {
@@ -8123,19 +9396,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8123
9396
  provideCommandSetups([
8124
9397
  {
8125
9398
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,
8126
- command: () => import('./acorex-platform-module-assessment-management-client-preview-questionnaire.command-duK7Tjjp.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
9399
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-questionnaire.command-BYh-3EP9.mjs').then((c) => c.AXPPreviewQuestionnaireCommand),
8127
9400
  },
8128
9401
  {
8129
9402
  key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:PreviewQuestion`,
8130
- command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs').then((c) => c.PreviewQuestionCommand),
9403
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs').then((c) => c.PreviewQuestionCommand),
8131
9404
  },
8132
9405
  {
8133
9406
  key: `${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}:Preview`,
8134
- command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-BGT8qB1_.mjs').then((c) => c.PreviewQuestionCommand),
9407
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-question.command-D4YlqMUf.mjs').then((c) => c.PreviewQuestionCommand),
8135
9408
  },
8136
9409
  {
8137
9410
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,
8138
- command: () => import('./acorex-platform-module-assessment-management-client-view-session-answers.command-DjJajIkL.mjs').then((c) => c.ViewSessionAnswersCommand),
9411
+ command: () => import('./acorex-platform-module-assessment-management-client-view-session-answers.command-CxZirYRJ.mjs').then((c) => c.ViewSessionAnswersCommand),
8139
9412
  },
8140
9413
  {
8141
9414
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:PreviewPdf`,
@@ -8143,47 +9416,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
8143
9416
  },
8144
9417
  {
8145
9418
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,
8146
- command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs').then((c) => c.FillAssessmentSessionCommand),
9419
+ command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs').then((c) => c.FillAssessmentSessionCommand),
8147
9420
  },
8148
9421
  {
8149
9422
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,
8150
- command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-CMIq-DDl.mjs').then((c) => c.FillAssessmentSessionCommand),
9423
+ command: () => import('./acorex-platform-module-assessment-management-client-fill-assessment-session.command-DY_9qPYh.mjs').then((c) => c.FillAssessmentSessionCommand),
8151
9424
  },
8152
9425
  {
8153
9426
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ReviewAnswers`,
8154
- command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs').then((c) => c.ReviewAssessmentSessionCommand),
9427
+ command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs').then((c) => c.ReviewAssessmentSessionCommand),
8155
9428
  },
8156
9429
  {
8157
9430
  key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:ReviewAnswers`,
8158
- command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CPeFh1m7.mjs').then((c) => c.ReviewAssessmentSessionCommand),
9431
+ command: () => import('./acorex-platform-module-assessment-management-client-review-assessment-session.command-CHeyD-AC.mjs').then((c) => c.ReviewAssessmentSessionCommand),
8159
9432
  },
8160
9433
  {
8161
9434
  key: ASSESSMENT_FIND_CASE_FOR_VOICE_FILL_COMMAND,
8162
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMFindCaseForVoiceFillCommand),
9435
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMFindCaseForVoiceFillCommand),
8163
9436
  },
8164
9437
  {
8165
9438
  key: ASSESSMENT_START_HEADLESS_QUESTIONNAIRE_COMMAND,
8166
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMStartHeadlessQuestionnaireCommand),
9439
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMStartHeadlessQuestionnaireCommand),
8167
9440
  },
8168
9441
  {
8169
9442
  key: ASSESSMENT_NEXT_QUESTIONNAIRE_QUESTION_COMMAND,
8170
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMNextQuestionnaireQuestionCommand),
9443
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMNextQuestionnaireQuestionCommand),
8171
9444
  },
8172
9445
  {
8173
9446
  key: ASSESSMENT_APPLY_QUESTIONNAIRE_ANSWER_COMMAND,
8174
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMApplyQuestionnaireAnswerCommand),
9447
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMApplyQuestionnaireAnswerCommand),
8175
9448
  },
8176
9449
  {
8177
9450
  key: ASSESSMENT_SAVE_QUESTIONNAIRE_DRAFT_COMMAND,
8178
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMSaveQuestionnaireDraftCommand),
9451
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMSaveQuestionnaireDraftCommand),
8179
9452
  },
8180
9453
  {
8181
9454
  key: ASSESSMENT_SUBMIT_QUESTIONNAIRE_COMMAND,
8182
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMSubmitQuestionnaireCommand),
9455
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMSubmitQuestionnaireCommand),
8183
9456
  },
8184
9457
  {
8185
9458
  key: ASSESSMENT_CANCEL_QUESTIONNAIRE_COMMAND,
8186
- command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-CaElbuNh.mjs').then((c) => c.AXMCancelQuestionnaireCommand),
9459
+ command: () => import('./acorex-platform-module-assessment-management-client-assessment-voice.commands-DGYCwZ7v.mjs').then((c) => c.AXMCancelQuestionnaireCommand),
8187
9460
  },
8188
9461
  ]),
8189
9462
  {
@@ -8220,16 +9493,16 @@ function resolveAssessmentSessionId(payload) {
8220
9493
  return fromRef;
8221
9494
  }
8222
9495
  }
8223
- const fromMeta = asNonEmptyString(get(ref.metadata, 'assessmentSessionId'));
9496
+ const fromMeta = asNonEmptyString(get$1(ref.metadata, 'assessmentSessionId'));
8224
9497
  if (fromMeta) {
8225
9498
  return fromMeta;
8226
9499
  }
8227
9500
  }
8228
- const fromFileMeta = asNonEmptyString(get(record, 'meta.assessmentSessionId'));
9501
+ const fromFileMeta = asNonEmptyString(get$1(record, 'meta.assessmentSessionId'));
8229
9502
  if (fromFileMeta) {
8230
9503
  return fromFileMeta;
8231
9504
  }
8232
- return asNonEmptyString(get(record, 'assessmentSessionId'));
9505
+ return asNonEmptyString(get$1(record, 'assessmentSessionId'));
8233
9506
  }
8234
9507
  function buildAssessmentManagementFileTypeCatalog() {
8235
9508
  return [
@@ -8397,6 +9670,7 @@ const AXP_TEMPLATE_WIDGET_PROVIDER = new InjectionToken('AXP_TEMPLATE_WIDGET_PRO
8397
9670
  class AXPTemplateWidgetProviderService {
8398
9671
  constructor() {
8399
9672
  this.popupService = inject(AXPopupService);
9673
+ this.dialogOpener = inject(AXPDialogOpener);
8400
9674
  this.translate = inject(AXTranslationService);
8401
9675
  this.providers = inject(AXP_TEMPLATE_WIDGET_PROVIDER, { optional: true });
8402
9676
  }
@@ -8427,27 +9701,34 @@ class AXPTemplateWidgetProviderService {
8427
9701
  return null;
8428
9702
  }
8429
9703
  async chooseTemplate() {
8430
- const com = await import('./acorex-platform-module-assessment-management-client-template-picker.component-D_UCdFOH.mjs').then((c) => c.AXPTemplateWidgetPickerComponent);
8431
- const widgets = await this.items({
8432
- skip: 0,
8433
- take: 100,
8434
- filter: {
8435
- field: 'type.id',
8436
- value: 20,
8437
- operator: {
8438
- type: 'equal',
8439
- },
8440
- },
8441
- });
8442
- const result = await this.popupService.open(com, {
8443
- title: await this.translate.translateAsync('@form-template-management:designer.components.template-picker.title'),
8444
- size: 'lg',
8445
- closeButton: true,
8446
- data: {
8447
- widgets: sortBy(widgets, (c) => c.title),
9704
+ let title = '';
9705
+ let widgets = [];
9706
+ const result = await this.dialogOpener.openPopup({
9707
+ load: () => import('./acorex-platform-module-assessment-management-client-template-picker.component-DzboI7GV.mjs').then((c) => c.AXPTemplateWidgetPickerComponent),
9708
+ prepare: async () => {
9709
+ widgets = await this.items({
9710
+ skip: 0,
9711
+ take: 100,
9712
+ filter: {
9713
+ field: 'type.id',
9714
+ value: 20,
9715
+ operator: {
9716
+ type: 'equal',
9717
+ },
9718
+ },
9719
+ });
9720
+ title = await this.translate.translateAsync('@form-template-management:designer.components.template-picker.title');
8448
9721
  },
9722
+ show: (component) => this.popupService.open(component, {
9723
+ title,
9724
+ size: 'lg',
9725
+ closeButton: true,
9726
+ data: {
9727
+ widgets: sortBy(widgets, (c) => c.title),
9728
+ },
9729
+ }),
8449
9730
  });
8450
- if (result.data) {
9731
+ if (result?.data) {
8451
9732
  const selected = result.data?.widgets;
8452
9733
  return selected[0];
8453
9734
  }
@@ -8474,7 +9755,7 @@ class AXPTemplateWidgetViewComponent extends AXPValueWidgetComponent {
8474
9755
  effect(async () => {
8475
9756
  this.nodes.set([]);
8476
9757
  const value = this.getValue();
8477
- const templateId = get(value, `${this.metaKey}.templateId`) ?? this.templateId();
9758
+ const templateId = get$1(value, `${this.metaKey}.templateId`) ?? this.templateId();
8478
9759
  if (templateId) {
8479
9760
  const item = await this.templateProvider.get(templateId);
8480
9761
  if (item) {
@@ -8492,7 +9773,7 @@ class AXPTemplateWidgetViewComponent extends AXPValueWidgetComponent {
8492
9773
  {{ '@form-template-management:templates.terms.empty-template' | translate | async }}
8493
9774
  </span>
8494
9775
  }
8495
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9776
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8496
9777
  }
8497
9778
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTemplateWidgetViewComponent, decorators: [{
8498
9779
  type: Component,
@@ -8691,7 +9972,7 @@ const AXPTemplateWidget = {
8691
9972
  component: () => Promise.resolve().then(function () { return templateWidgetView_component; }).then((c) => c.AXPTemplateWidgetViewComponent),
8692
9973
  },
8693
9974
  edit: {
8694
- component: () => import('./acorex-platform-module-assessment-management-client-template-widget-edit.component-DERabYdH.mjs').then((c) => c.AXPTemplateWidgetEditComponent),
9975
+ component: () => import('./acorex-platform-module-assessment-management-client-template-widget-edit.component-3DZovs7s.mjs').then((c) => c.AXPTemplateWidgetEditComponent),
8695
9976
  },
8696
9977
  print: {
8697
9978
  component: () => Promise.resolve().then(function () { return templateWidgetView_component; }).then((c) => c.AXPTemplateWidgetViewComponent),
@@ -8746,7 +10027,7 @@ class AXPTemplateDesignerWidgetViewComponent extends AXPValueWidgetComponent {
8746
10027
  });
8747
10028
  }
8748
10029
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTemplateDesignerWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
8749
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPTemplateDesignerWidgetViewComponent, isStandalone: true, selector: "axp-template-designer-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"flex w-full flex-wrap items-center justify-between gap-3\">\n <!-- ----- What opening the designer will do ----- -->\n <p class=\"m-0 min-w-0 flex-1 text-sm text-muted\">\n {{ descriptionKey() | translate | async }}\n </p>\n <ax-button\n class=\"shrink-0\"\n look=\"outline\"\n color=\"primary\"\n [text]=\"(actionKey() | translate | async) ?? ''\"\n (onClick)=\"handleClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-prefix>\n </ax-button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10030
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPTemplateDesignerWidgetViewComponent, isStandalone: true, selector: "axp-template-designer-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"flex w-full flex-wrap items-center justify-between gap-3\">\n <!-- ----- What opening the designer will do ----- -->\n <p class=\"m-0 min-w-0 flex-1 text-sm text-muted\">\n {{ descriptionKey() | translate | async }}\n </p>\n <ax-button\n class=\"shrink-0\"\n look=\"outline\"\n color=\"primary\"\n [text]=\"(actionKey() | translate | async) ?? ''\"\n (onClick)=\"handleClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-prefix>\n </ax-button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8750
10031
  }
8751
10032
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPTemplateDesignerWidgetViewComponent, decorators: [{
8752
10033
  type: Component,
@@ -8837,7 +10118,7 @@ class AXPTemplateWidgetProviderImpl {
8837
10118
  group: {
8838
10119
  name: c.categoryIds[0],
8839
10120
  order: 2,
8840
- title: get(c, 'category.title') ?? 'Custom',
10121
+ title: get$1(c, 'category.title') ?? 'Custom',
8841
10122
  },
8842
10123
  description: c.description,
8843
10124
  }));
@@ -8954,7 +10235,8 @@ class AXMAssessmentManagementModule {
8954
10235
  AXPWidgetCoreModule,
8955
10236
  AXMAssessmentManagementFileTypeModule,
8956
10237
  AXMQuestionnaireBuilderFeatureModule,
8957
- AXMQuestionnaireViewerFeatureModule] }); }
10238
+ AXMQuestionnaireViewerFeatureModule,
10239
+ AXMContentDisplayPluginsModule] }); }
8958
10240
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssessmentManagementModule, providers: [
8959
10241
  {
8960
10242
  provide: ROUTES,
@@ -9004,6 +10286,8 @@ class AXMAssessmentManagementModule {
9004
10286
  ]),
9005
10287
  provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => Promise.resolve().then(function () { return index$1; }).then((m) => m.AXMQuestionnaireQuestionsPageComponentProvider)),
9006
10288
  provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => Promise.resolve().then(function () { return index; }).then((m) => m.AXMQuestionnaireOutcomesPageComponentProvider)),
10289
+ provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-assessment-management-client-index-er5gI6QK.mjs').then((m) => m.AXMFormTemplatePageComponentProvider)),
10290
+ provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-D0Rkeywu.mjs').then((m) => m.AXMRelatedContentViewerPageComponentProvider)),
9007
10291
  provideCommand('Questionnaire:Questions:Save', () => Promise.resolve().then(function () { return saveQuestionnaireQuestions_command; }).then((m) => m.AXMSaveQuestionnaireQuestionsCommand)),
9008
10292
  provideCommand('Questionnaire:Outcomes:Save', () => Promise.resolve().then(function () { return saveQuestionnaireOutcomes_command; }).then((m) => m.AXMSaveQuestionnaireOutcomesCommand)),
9009
10293
  provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMAssessmentManagementSearchCommandProvider)),
@@ -9019,22 +10303,35 @@ class AXMAssessmentManagementModule {
9019
10303
  },
9020
10304
  {
9021
10305
  key: 'open-form-template',
9022
- command: () => import('./acorex-platform-module-assessment-management-client-open-form-template.command-CmR-xFHE.mjs').then((c) => c.AXMOpenFormTemplateCommand),
10306
+ command: () => import('./acorex-platform-module-assessment-management-client-open-form-template.command-Cz23Vkyv.mjs').then((c) => c.AXMOpenFormTemplateCommand),
9023
10307
  },
9024
10308
  {
9025
10309
  key: `${RootConfig.module.name}.${RootConfig.entities.template.name}:Preview`,
9026
- command: () => import('./acorex-platform-module-assessment-management-client-preview-form-template.command-BEzE0620.mjs').then((c) => c.AXMPreviewFormTemplateCommand),
10310
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-form-template.command-DDQOvVpt.mjs').then((c) => c.AXMPreviewFormTemplateCommand),
9027
10311
  },
9028
10312
  {
9029
10313
  key: 'design-form-template',
9030
10314
  command: () => import('./acorex-platform-module-assessment-management-client-design-form-template.command-Cgc9Inlz.mjs').then((c) => c.AXMDesignFormTemplateCommand),
9031
10315
  },
10316
+ {
10317
+ key: 'show-questionnaire-questions-popup',
10318
+ command: () => import('./acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-t67ngnrD.mjs').then((c) => c.ShowQuestionnaireQuestionsPopupCommand),
10319
+ },
10320
+ {
10321
+ key: 'show-form-template-viewer-popup',
10322
+ command: () => import('./acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-DlpkbJCZ.mjs').then((c) => c.ShowFormTemplateViewerPopupCommand),
10323
+ },
10324
+ {
10325
+ key: 'show-questionnaire-viewer-popup',
10326
+ command: () => import('./acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-DHgNcZ60.mjs').then((c) => c.ShowQuestionnaireViewerPopupCommand),
10327
+ },
9032
10328
  ]),
9033
10329
  ], imports: [AXPWidgetsModule,
9034
10330
  AXPWidgetCoreModule,
9035
10331
  AXMAssessmentManagementFileTypeModule,
9036
10332
  AXMQuestionnaireBuilderFeatureModule,
9037
- AXMQuestionnaireViewerFeatureModule] }); }
10333
+ AXMQuestionnaireViewerFeatureModule,
10334
+ AXMContentDisplayPluginsModule] }); }
9038
10335
  }
9039
10336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssessmentManagementModule, decorators: [{
9040
10337
  type: NgModule,
@@ -9045,6 +10342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
9045
10342
  AXMAssessmentManagementFileTypeModule,
9046
10343
  AXMQuestionnaireBuilderFeatureModule,
9047
10344
  AXMQuestionnaireViewerFeatureModule,
10345
+ AXMContentDisplayPluginsModule,
9048
10346
  ],
9049
10347
  providers: [
9050
10348
  {
@@ -9095,6 +10393,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
9095
10393
  ]),
9096
10394
  provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => Promise.resolve().then(function () { return index$1; }).then((m) => m.AXMQuestionnaireQuestionsPageComponentProvider)),
9097
10395
  provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => Promise.resolve().then(function () { return index; }).then((m) => m.AXMQuestionnaireOutcomesPageComponentProvider)),
10396
+ provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-assessment-management-client-index-er5gI6QK.mjs').then((m) => m.AXMFormTemplatePageComponentProvider)),
10397
+ provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () => import('./acorex-platform-module-assessment-management-client-related-content-viewer-page-component.provider-D0Rkeywu.mjs').then((m) => m.AXMRelatedContentViewerPageComponentProvider)),
9098
10398
  provideCommand('Questionnaire:Questions:Save', () => Promise.resolve().then(function () { return saveQuestionnaireQuestions_command; }).then((m) => m.AXMSaveQuestionnaireQuestionsCommand)),
9099
10399
  provideCommand('Questionnaire:Outcomes:Save', () => Promise.resolve().then(function () { return saveQuestionnaireOutcomes_command; }).then((m) => m.AXMSaveQuestionnaireOutcomesCommand)),
9100
10400
  provideLazyProvider(AXP_SEARCH_PROVIDER, () => Promise.resolve().then(function () { return searchCommand_provider; }).then((m) => m.AXMAssessmentManagementSearchCommandProvider)),
@@ -9110,16 +10410,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
9110
10410
  },
9111
10411
  {
9112
10412
  key: 'open-form-template',
9113
- command: () => import('./acorex-platform-module-assessment-management-client-open-form-template.command-CmR-xFHE.mjs').then((c) => c.AXMOpenFormTemplateCommand),
10413
+ command: () => import('./acorex-platform-module-assessment-management-client-open-form-template.command-Cz23Vkyv.mjs').then((c) => c.AXMOpenFormTemplateCommand),
9114
10414
  },
9115
10415
  {
9116
10416
  key: `${RootConfig.module.name}.${RootConfig.entities.template.name}:Preview`,
9117
- command: () => import('./acorex-platform-module-assessment-management-client-preview-form-template.command-BEzE0620.mjs').then((c) => c.AXMPreviewFormTemplateCommand),
10417
+ command: () => import('./acorex-platform-module-assessment-management-client-preview-form-template.command-DDQOvVpt.mjs').then((c) => c.AXMPreviewFormTemplateCommand),
9118
10418
  },
9119
10419
  {
9120
10420
  key: 'design-form-template',
9121
10421
  command: () => import('./acorex-platform-module-assessment-management-client-design-form-template.command-Cgc9Inlz.mjs').then((c) => c.AXMDesignFormTemplateCommand),
9122
10422
  },
10423
+ {
10424
+ key: 'show-questionnaire-questions-popup',
10425
+ command: () => import('./acorex-platform-module-assessment-management-client-show-questionnaire-questions-popup.command-t67ngnrD.mjs').then((c) => c.ShowQuestionnaireQuestionsPopupCommand),
10426
+ },
10427
+ {
10428
+ key: 'show-form-template-viewer-popup',
10429
+ command: () => import('./acorex-platform-module-assessment-management-client-show-form-template-viewer-popup.command-DlpkbJCZ.mjs').then((c) => c.ShowFormTemplateViewerPopupCommand),
10430
+ },
10431
+ {
10432
+ key: 'show-questionnaire-viewer-popup',
10433
+ command: () => import('./acorex-platform-module-assessment-management-client-show-questionnaire-viewer-popup.command-DHgNcZ60.mjs').then((c) => c.ShowQuestionnaireViewerPopupCommand),
10434
+ },
9123
10435
  ]),
9124
10436
  ],
9125
10437
  }]
@@ -9243,7 +10555,7 @@ class AXMPreQuestionnaireContentComponent {
9243
10555
  [innerHTML]="content() | translate | async | safe: 'html'"
9244
10556
  ></div>
9245
10557
  </div>
9246
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10558
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9247
10559
  }
9248
10560
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPreQuestionnaireContentComponent, decorators: [{
9249
10561
  type: Component,
@@ -9399,7 +10711,7 @@ class AXMQuestionnaireOutcomeResultsComponent {
9399
10711
  | async) ?? ''
9400
10712
  "
9401
10713
  />
9402
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPOutcomeResultsViewerComponent, selector: "axp-outcome-results-viewer", inputs: ["model", "title", "emptyMessage"] }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10714
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPOutcomeResultsViewerComponent, selector: "axp-outcome-results-viewer", inputs: ["model", "title", "emptyMessage"] }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9403
10715
  }
9404
10716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireOutcomeResultsComponent, decorators: [{
9405
10717
  type: Component,
@@ -9612,7 +10924,7 @@ class AXMPostQuestionnaireContentComponent {
9612
10924
  <div class="max-w-2xl w-full prose text-on-surface" [innerHTML]="summaryContentHtml()"></div>
9613
10925
  </div>
9614
10926
  }
9615
- `, isInline: true, styles: [".post-questionnaire-content .__post-text-muted{color:rgb(var(--ax-sys-color-on-surface-variant))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "component", type: AXMQuestionnaireOutcomeResultsComponent, selector: "axm-questionnaire-outcome-results", inputs: ["placeholderValues"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10927
+ `, isInline: true, styles: [".post-questionnaire-content .__post-text-muted{color:rgb(var(--ax-sys-color-on-surface-variant))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "component", type: AXMQuestionnaireOutcomeResultsComponent, selector: "axm-questionnaire-outcome-results", inputs: ["placeholderValues"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionComponent, selector: "axm-questionnaire-viewer-question", inputs: ["question", "contextData", "sectionOrder", "questionIndex", "showQuestionNumbers", "showQuestionCounter", "currentPosition", "mode"] }, { kind: "component", type: AXMQuestionnaireViewerSectionHeaderComponent, selector: "axm-questionnaire-viewer-section-header", inputs: ["title", "description", "titleSize", "marginBottom"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9616
10928
  }
9617
10929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMPostQuestionnaireContentComponent, decorators: [{
9618
10930
  type: Component,
@@ -10249,7 +11561,7 @@ class AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent {
10249
11561
  </ax-popover>
10250
11562
  </div>
10251
11563
  }
10252
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "accept", "maxFileSize", "showUploadZoneHint", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11564
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$3.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPFileListComponent, selector: "axp-file-list", inputs: ["readonly", "fileEditable", "enableTitleDescription", "multiple", "look", "titleKey", "showLabel", "linksLayout", "files", "accept", "maxFileSize", "showUploadZoneHint", "plugins", "excludePlugins", "capabilities"], outputs: ["onRemove", "onRevert", "onRename"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10253
11565
  }
10254
11566
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, decorators: [{
10255
11567
  type: Component,
@@ -10671,7 +11983,7 @@ class AXMQuestionnaireViewerPageComponent extends AXPPageLayoutBaseComponent {
10671
11983
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10672
11984
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMQuestionnaireViewerPageComponent, isStandalone: true, selector: "axm-questionnaire-viewer-page", host: { classAttribute: "axm-questionnaire-viewer-page" }, providers: [{ provide: AXPPageLayoutBase, useExisting: AXMQuestionnaireViewerPageComponent }], viewQueries: [{ propertyName: "viewer", first: true, predicate: ["viewer"], descendants: true, isSignal: true }, { propertyName: "printHost", first: true, predicate: AXMQuestionnairePrintHostComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!-- Page shell layout -->\n<axp-page-layout>\n <!-- Main content area -->\n <axp-page-content class=\"flex flex-col flex-1 min-h-0\"\n [class.overflow-hidden]=\"flowStep() === 'questions'\" [class.overflow-y-auto]=\"flowStep() !== 'questions'\">\n <!-- Loading state -->\n @if (isLoading()) {\n <div class=\"flex items-center justify-center min-h-[200px]\">\n <span>{{ '@assessment-management:questionnaires.components.questionnaire-viewer.loading.title' | translate | async\n }}</span>\n </div>\n }\n <!-- Error state -->\n @else if (loadError()) {\n <div class=\"p-4 text-error-600\">\n {{ loadError() }}\n </div>\n }\n <!-- Content state -->\n @else if (structure()) {\n <!-- Pre-questionnaire introduction content -->\n @if (flowStep() === 'pre') {\n <axm-pre-questionnaire-content [content]=\"$safeNavigationMigration(prePostConfig()?.pre?.content)\"></axm-pre-questionnaire-content>\n }\n <!-- Post-submit results content -->\n @else if (flowStep() === 'results') {\n <axm-post-questionnaire-content mode=\"results\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Post-submit summary content -->\n @else if (flowStep() === 'summary') {\n <axm-post-questionnaire-content mode=\"summary\" [summaryContent]=\"$safeNavigationMigration(prePostConfig()?.post?.summaryContent)\"\n [placeholderValues]=\"submitResult()\"></axm-post-questionnaire-content>\n }\n <!-- Questionnaire and review flow -->\n @else {\n <!-- Review mode content -->\n @if (flowStep() === 'review') {\n <axm-post-questionnaire-content mode=\"review\" [questionsWithAnswers]=\"reviewSnapshot()\"\n [reviewContext]=\"reviewContext()\"></axm-post-questionnaire-content>\n }\n\n <!-- Questionnaire workspace (hidden while in review mode) -->\n <div class=\"__questions flex flex-col flex-1 min-h-0 overflow-hidden\"\n [class.invisible]=\"flowStep() === 'review'\" [style.position]=\"flowStep() === 'review' ? 'fixed' : null\"\n [style.left]=\"flowStep() === 'review' ? '-9999px' : null\" [class.size-0]=\"flowStep() === 'review'\"\n [class.overflow-hidden]=\"flowStep() === 'review'\">\n\n <!-- Questionnaire rendering container -->\n <div class=\"__content flex flex-col flex-1 min-h-0 overflow-y-auto overflow-x-hidden\">\n <axm-questionnaire-viewer\n #viewer\n [questionnaireId]=\"$safeNavigationMigration(questionnaire()?.id)\"\n [structure]=\"structure()!\"\n [config]=\"viewerConfig()\"\n [initialAnswers]=\"effectiveInitialAnswers()\"\n (answersChanged)=\"handleAnswersChanged($event)\"\n ></axm-questionnaire-viewer>\n </div>\n </div>\n }\n }\n </axp-page-content>\n\n <!-- Footer actions (only when content is ready) -->\n @if (structure() && !isLoading() && !loadError()) {\n <axp-page-footer class=\"--animated\">\n <!-- Footer prefix: progress indicator -->\n <axp-layout-prefix>\n @if (flowStep() === 'questions') {\n <div class=\"flex items-center gap-4 min-w-0\">\n <axm-questionnaire-viewer-questionnaire-attachments-footer\n [attachments]=\"questionnaireAttachments()\"\n />\n <div class=\"__footer-progress text-sm font-mono tabular-nums\" dir=\"ltr\">\n @if (showProgressBar()) {\n {{ answeredQuestionsCount() }} / {{ totalQuestionsCount() }}\n }\n </div>\n </div>\n }\n <!-- @if (showTimer()) {\n <axp-stopwatch [mode]=\"timerTimeLimit() ? 'count-down' : 'count-up'\" [timeLimit]=\"timerTimeLimit()\"\n [format]=\"timerTimeLimit() && timerTimeLimit()! >= 3600 ? 'hh:mm:ss' : 'mm:ss'\" [autoStart]=\"true\"\n [showControls]=\"false\" [value]=\"timerElapsed()\"\n (valueChange)=\"viewerViewModel()!.updateTimerElapsed($event)\"></axp-stopwatch>\n } -->\n </axp-layout-prefix>\n\n <!-- Footer suffix: flow action buttons -->\n <axp-layout-suffix>\n @if (flowStep() === 'pre') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.start' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n }\n <!-- Question step actions -->\n @else if (flowStep() === 'questions') {\n <!-- Question navigation buttons -->\n @if (showNavigationButtons()) {\n <ax-button look=\"solid\" [disabled]=\"!canNavigatePrevious()\"\n [text]=\"'@general:actions.previous.title' | translate | async\" (onClick)=\"handlePreviousClick()\"></ax-button>\n @if (!isLastStep()) {\n <ax-button look=\"solid\" color=\"primary\" [disabled]=\"!canNavigateNext()\"\n [text]=\"'@general:actions.next.title' | translate | async\" (onClick)=\"handleNextClick()\"></ax-button>\n }\n }\n\n <!-- Final-step actions -->\n @if (isLastStep() && showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.review' | translate | async\"\n [disabled]=\"!areAllRequiredQuestionsAnswered()\" (onClick)=\"handleReviewClick()\"></ax-button>\n }\n @if (isLastStep() && !showReviewButton()) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isReadonly() || isSubmitting() || !areAllRequiredQuestionsAnswered()\"\n (onClick)=\"handleSubmitClick()\"></ax-button>\n }\n }\n <!-- Review step actions -->\n @else if (flowStep() === 'review') {\n <ax-button look=\"outline\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.edit' | translate | async\"\n (onClick)=\"flowStep.set('questions')\"></ax-button>\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\"\n [disabled]=\"isSubmitting()\" (onClick)=\"handleReviewSubmit()\"></ax-button>\n }\n <!-- Results step actions -->\n @else if (flowStep() === 'results') {\n @if (prePostConfig()?.post?.summaryEnabled) {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'@general:actions.next.title' | translate | async\"\n (onClick)=\"flowStep.set('summary')\"></ax-button>\n } @else {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n }\n <!-- Summary step action -->\n @else if (flowStep() === 'summary') {\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"'@assessment-management:questionnaires.components.questionnaire-viewer.flow.done' | translate | async\"\n (onClick)=\"handleDone()\"></ax-button>\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n<axm-questionnaire-print-host\n [structure]=\"structure() ?? undefined\"\n [questionnaireId]=\"$safeNavigationMigration(questionnaire()?.id)\"\n [answers]=\"printAnswers()\"\n [prePostConfig]=\"prePostConfig()\"\n [placeholderValues]=\"submitResult()\"\n/>", styles: ["@layer properties;axm-questionnaire-viewer-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-page .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-surface));position:sticky;top:0;color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-page .__toolbar-meta{color:rgb(var(--ax-sys-color-on-surface-variant))}axm-questionnaire-viewer-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type:
10673
11985
  //AXPStopwatchComponent,
10674
- AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { kind: "component", type: AXMPreQuestionnaireContentComponent, selector: "axm-pre-questionnaire-content", inputs: ["content"] }, { kind: "component", type: AXMPostQuestionnaireContentComponent, selector: "axm-post-questionnaire-content", inputs: ["mode", "questionsWithAnswers", "reviewContext", "summaryContent", "placeholderValues", "locale", "showQuestionNumbers"] }, { kind: "component", type: AXMQuestionnairePrintHostComponent, selector: "axm-questionnaire-print-host", inputs: ["structure", "questionnaireId", "answers", "prePostConfig", "placeholderValues", "options"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11986
+ AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { kind: "component", type: AXMPreQuestionnaireContentComponent, selector: "axm-pre-questionnaire-content", inputs: ["content"] }, { kind: "component", type: AXMPostQuestionnaireContentComponent, selector: "axm-post-questionnaire-content", inputs: ["mode", "questionsWithAnswers", "reviewContext", "summaryContent", "placeholderValues", "locale", "showQuestionNumbers"] }, { kind: "component", type: AXMQuestionnairePrintHostComponent, selector: "axm-questionnaire-print-host", inputs: ["structure", "questionnaireId", "answers", "prePostConfig", "placeholderValues", "options"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10675
11987
  }
10676
11988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerPageComponent, decorators: [{
10677
11989
  type: Component,
@@ -11134,7 +12446,7 @@ class AXMQuestionnaireViewerStandalonePageComponent {
11134
12446
  [prePostConfig]="prePostConfig()"
11135
12447
  [placeholderValues]="submitResult()"
11136
12448
  />
11137
- `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-standalone-page{display:flex;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__body{display:flex;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content-area,axm-questionnaire-viewer-standalone-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface-variant));position:sticky;top:0}axm-questionnaire-viewer-standalone-page .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 4);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:var(--color-neutral-600, oklch(43.9% 0 none))}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item i{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-600))}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item span{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-standalone-page .__content-wrapper{display:flex;min-height:0px;flex:1;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-standalone-page .__toolbar-meta,axm-questionnaire-viewer-standalone-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStopwatchComponent, selector: "axp-stopwatch", inputs: ["mode", "timeLimit", "format", "autoStart", "showControls", "value"], outputs: ["valueChange", "timeUp"] }, { kind: "component", type: AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { kind: "component", type: AXMPreQuestionnaireContentComponent, selector: "axm-pre-questionnaire-content", inputs: ["content"] }, { kind: "component", type: AXMPostQuestionnaireContentComponent, selector: "axm-post-questionnaire-content", inputs: ["mode", "questionsWithAnswers", "reviewContext", "summaryContent", "placeholderValues", "locale", "showQuestionNumbers"] }, { kind: "component", type: AXMQuestionnairePrintHostComponent, selector: "axm-questionnaire-print-host", inputs: ["structure", "questionnaireId", "answers", "prePostConfig", "placeholderValues", "options"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
12449
+ `, isInline: true, styles: ["@layer properties;axm-questionnaire-viewer-standalone-page{display:flex;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__body{display:flex;min-height:0px;width:100%;flex:1;flex-direction:column;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content-area,axm-questionnaire-viewer-standalone-page .__questions{min-height:0px;overflow:hidden}axm-questionnaire-viewer-standalone-page .__header{z-index:20;display:flex;flex-shrink:0;flex-direction:column;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface-variant));position:sticky;top:0}axm-questionnaire-viewer-standalone-page .__header .__header-top{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 4);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 3)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 4);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:var(--color-neutral-600, oklch(43.9% 0 none))}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item i{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-600))}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-meta .__meta-item span{--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}axm-questionnaire-viewer-standalone-page .__header .__header-top .__header-timer{display:flex;flex-shrink:0;align-items:center}axm-questionnaire-viewer-standalone-page .__content-wrapper{display:flex;min-height:0px;flex:1;overflow:hidden}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer{display:flex;height:auto;max-height:none;min-height:0px;width:100%;max-width:100%;flex:none;flex-direction:column}axm-questionnaire-viewer-standalone-page .__content axm-questionnaire-viewer .__questionnaire-container{min-height:0px;flex:none;overflow:visible}axm-questionnaire-viewer-standalone-page .__toolbar-meta,axm-questionnaire-viewer-standalone-page .__footer-progress{color:rgb(var(--ax-sys-color-on-surface-variant))}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStopwatchComponent, selector: "axp-stopwatch", inputs: ["mode", "timeLimit", "format", "autoStart", "showControls", "value"], outputs: ["valueChange", "timeUp"] }, { kind: "component", type: AXMQuestionnaireViewerComponent, selector: "axm-questionnaire-viewer", inputs: ["questionnaireId", "structure", "config", "initialAnswers"], outputs: ["answersChanged", "questionAnswered"] }, { kind: "component", type: AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent, selector: "axm-questionnaire-viewer-questionnaire-attachments-footer", inputs: ["attachments"] }, { kind: "component", type: AXMPreQuestionnaireContentComponent, selector: "axm-pre-questionnaire-content", inputs: ["content"] }, { kind: "component", type: AXMPostQuestionnaireContentComponent, selector: "axm-post-questionnaire-content", inputs: ["mode", "questionsWithAnswers", "reviewContext", "summaryContent", "placeholderValues", "locale", "showQuestionNumbers"] }, { kind: "component", type: AXMQuestionnairePrintHostComponent, selector: "axm-questionnaire-print-host", inputs: ["structure", "questionnaireId", "answers", "prePostConfig", "placeholderValues", "options"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11138
12450
  }
11139
12451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMQuestionnaireViewerStandalonePageComponent, decorators: [{
11140
12452
  type: Component,
@@ -11286,5 +12598,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
11286
12598
  * Generated bundle index. Do not edit.
11287
12599
  */
11288
12600
 
11289
- export { AXPFormTemplateViewerConnector as A, AXMQuestionnaireViewerService as a, AXMQuestionnairePrintSnapshotService as b, AXMQuestionnairePrintHostComponent as c, AXMQuestionnaireViewerComponent as d, AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent as e, formatQuestionnairePreviewDialogTitle as f, AXMPreQuestionnaireContentComponent as g, AXMPostQuestionnaireContentComponent as h, AXMHeadlessQuestionnaireSessionService as i, AXPTemplateWidgetProviderService as j, resolveSummaryPlaceholders as k, AXMAssessmentManagementFeatureDefinitionProvider as l, AXMAssessmentManagementMenuProvider as m, AXMAssessmentManagementModule as n, AXMAssessmentManagementPermissionDefinitionProvider as o, persistAssessmentSession as p, AXMAssessmentManagementSearchCommandProvider as q, resolveWidgetNodeFromMetaDataDefinitionInterface as r, stripQuestionBankInterfaceMetadata as s, AXMQuestionnaireViewerPageComponent as t, AXMQuestionnaireViewerStandalonePageComponent as u };
11290
- //# sourceMappingURL=acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-juxXq2pM.mjs.map
12601
+ export { AXPFormTemplateViewerConnector as A, resolveSummaryPlaceholders as B, AXMAssessmentManagementFeatureDefinitionProvider as C, AXMAssessmentManagementMenuProvider as D, AXMAssessmentManagementModule as E, FORM_TEMPLATE_PAGE_COMPONENT_KEY as F, AXMAssessmentManagementPermissionDefinitionProvider as G, AXMAssessmentManagementSearchCommandProvider as H, AXMQuestionnaireViewerPageComponent as I, AXMQuestionnaireViewerStandalonePageComponent as J, QUESTIONNAIRE_VIEWER_PAGE_COMPONENT_KEY as Q, FORM_TEMPLATE_VIEWER_PAGE_COMPONENT_KEY as a, QUESTIONNAIRE_QUESTIONS_EDITOR_WIDGET as b, AXMRelatedContentRecordService as c, readRelatedRecordId as d, FORM_TEMPLATE_VIEWER_FIELD as e, FORM_TEMPLATE_VIEWER_SOURCE_FIELD as f, formatQuestionnairePreviewDialogTitle as g, AXMQuestionnaireViewerService as h, QUESTIONNAIRE_VIEWER_FIELD as i, QUESTIONNAIRE_VIEWER_SOURCE_FIELD as j, AXMQuestionnairePrintSnapshotService as k, AXMQuestionnairePrintHostComponent as l, AXMQuestionnaireViewerComponent as m, AXMQuestionnaireViewerQuestionnaireAttachmentsFooterComponent as n, AXMPreQuestionnaireContentComponent as o, persistAssessmentSession as p, AXMPostQuestionnaireContentComponent as q, resolvePersistedEntityId as r, AXMHeadlessQuestionnaireSessionService as s, AXMQuestionnaireQuestionsBuilderComponent as t, AXPTemplateWidgetProviderService as u, stripQuestionBankInterfaceMetadata as v, resolveWidgetNodeFromMetaDataDefinitionInterface as w, AXM_TEST_SHEET_ROW_GROUP_PATH as x, AXM_TEST_SHEET_INPUT_WIDGET_TYPES as y, AXM_TEST_SHEET_CELL_TYPE_WIDGET as z };
12602
+ //# sourceMappingURL=acorex-platform-module-assessment-management-client-acorex-platform-module-assessment-management-client-DxRFMK3k.mjs.map