@acorex/modules 21.0.0-next.5 → 21.0.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/application-management/index.d.ts +1 -0
- package/calendar-management/index.d.ts +6 -7
- package/document-management/index.d.ts +1545 -174
- package/fesm2022/acorex-modules-application-management.mjs +1 -0
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-C4_2RPxG.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-7S277fXg.mjs} +23 -23
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-7S277fXg.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D2YRh7ro.mjs → acorex-modules-assessment-management-answers-viewer-widget-column.component-FnpwLbkS.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-column.component-D2YRh7ro.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-column.component-FnpwLbkS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-B-S78gfQ.mjs → acorex-modules-assessment-management-answers-viewer-widget-edit.component-By0ETDZf.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-edit.component-B-S78gfQ.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-edit.component-By0ETDZf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C1BTgRTR.mjs → acorex-modules-assessment-management-answers-viewer-widget-view.component-DxmjBgIo.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-answers-viewer-widget-view.component-C1BTgRTR.mjs.map → acorex-modules-assessment-management-answers-viewer-widget-view.component-DxmjBgIo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DwTlClTz.mjs → acorex-modules-assessment-management-assessment-case.entity-CBjAGtV3.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DwTlClTz.mjs.map → acorex-modules-assessment-management-assessment-case.entity-CBjAGtV3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-BmvacBUU.mjs → acorex-modules-assessment-management-assessment-session.entity-CMnJ44gj.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-BmvacBUU.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CMnJ44gj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-D7ZNQBo8.mjs → acorex-modules-assessment-management-fill-assessment-session.command-8OhZEoAp.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-D7ZNQBo8.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-8OhZEoAp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BQxlJax7.mjs → acorex-modules-assessment-management-preview-questionnaire.command-CUybKZFY.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BQxlJax7.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-CUybKZFY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CIjS5M1b.mjs → acorex-modules-assessment-management-question-bank-item.entity-C9gxvSqN.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CIjS5M1b.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-C9gxvSqN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DAYiqBeA.mjs → acorex-modules-assessment-management-questionnaire-builder-edit.component-CUCT7Tcg.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-edit.component-DAYiqBeA.mjs.map → acorex-modules-assessment-management-questionnaire-builder-edit.component-CUCT7Tcg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-BTXwZu9a.mjs → acorex-modules-assessment-management-questionnaire-builder-view.component-QhZAjnIv.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder-view.component-BTXwZu9a.mjs.map → acorex-modules-assessment-management-questionnaire-builder-view.component-QhZAjnIv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-BAR6Uee-.mjs → acorex-modules-assessment-management-questionnaire-builder.component-CvdVE1TW.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-builder.component-BAR6Uee-.mjs.map → acorex-modules-assessment-management-questionnaire-builder.component-CvdVE1TW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DZ4TltLI.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-iDPvZ1Iu.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DZ4TltLI.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-iDPvZ1Iu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-B2GV_e0o.mjs → acorex-modules-assessment-management-questionnaire-viewer.service-C2bz2R0N.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer.service-B2GV_e0o.mjs.map → acorex-modules-assessment-management-questionnaire-viewer.service-C2bz2R0N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-mOtlUkUO.mjs → acorex-modules-assessment-management-questionnaire.entity-kvgtbI_h.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-mOtlUkUO.mjs.map → acorex-modules-assessment-management-questionnaire.entity-kvgtbI_h.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQ-3r9YQ.mjs → acorex-modules-assessment-management-view-session-answers.command-Dfl4QTDD.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BQ-3r9YQ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-Dfl4QTDD.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +46 -74
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +6 -3
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bnp1l18X.mjs → acorex-modules-document-management-attachment-widget.component-zsWIFXD7.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bnp1l18X.mjs.map → acorex-modules-document-management-attachment-widget.component-zsWIFXD7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-TfRh2Jom.mjs → acorex-modules-document-management-details-view.component-DD7P_Xz7.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-TfRh2Jom.mjs.map → acorex-modules-document-management-details-view.component-DD7P_Xz7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-nKUvSQuz.mjs → acorex-modules-document-management-document-signature-popup.component-DsCP-XfJ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-nKUvSQuz.mjs.map → acorex-modules-document-management-document-signature-popup.component-DsCP-XfJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CPQC_Qxe.mjs → acorex-modules-document-management-drive-choose.component-FUlvIsJu.mjs} +7 -7
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-CPQC_Qxe.mjs.map → acorex-modules-document-management-drive-choose.component-FUlvIsJu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BP_4qwha.mjs → acorex-modules-document-management-large-icons-view.component-Dzc3SOKz.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BP_4qwha.mjs.map → acorex-modules-document-management-large-icons-view.component-Dzc3SOKz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CP9Ra0z9.mjs → acorex-modules-document-management-large-tiles-view.component-DrRbFkP4.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CP9Ra0z9.mjs.map → acorex-modules-document-management-large-tiles-view.component-DrRbFkP4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-nJmv07CR.mjs → acorex-modules-document-management-link-dialog.component-DKGpdhH1.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-nJmv07CR.mjs.map → acorex-modules-document-management-link-dialog.component-DKGpdhH1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-LhSA_duB.mjs → acorex-modules-document-management-list-view.component-C7cR3m4S.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-LhSA_duB.mjs.map → acorex-modules-document-management-list-view.component-C7cR3m4S.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DJABAVOV.mjs → acorex-modules-document-management-share-dialog.component-MK4UO_uy.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-DJABAVOV.mjs.map → acorex-modules-document-management-share-dialog.component-MK4UO_uy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-Bh_FI1nk.mjs → acorex-modules-document-management-share-email-dialog.component-D5f4T_2K.mjs} +3 -3
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-Bh_FI1nk.mjs.map → acorex-modules-document-management-share-email-dialog.component-D5f4T_2K.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BOtJGiPU.mjs → acorex-modules-document-management-small-icons-view.component-BPWvSH3i.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BOtJGiPU.mjs.map → acorex-modules-document-management-small-icons-view.component-BPWvSH3i.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BiKZ-FyZ.mjs → acorex-modules-document-management-small-tiles-view.component-fIQ4RY_F.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BiKZ-FyZ.mjs.map → acorex-modules-document-management-small-tiles-view.component-fIQ4RY_F.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +9326 -1
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs +381 -0
- package/fesm2022/acorex-modules-human-capital-management-leave-request-task-popover.component-CR4xmtkI.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management.mjs +5 -2
- package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BIq_sJye.mjs → acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BIq_sJye.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-CL-zuLJ1.mjs → acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs} +3 -3
- package/fesm2022/acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +2 -0
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +3 -1
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-gQ5Sk1Sj.mjs → acorex-modules-settings-management-acorex-modules-settings-management-R6m7cpPE.mjs} +18 -18
- package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-gQ5Sk1Sj.mjs.map → acorex-modules-settings-management-acorex-modules-settings-management-R6m7cpPE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BEDGpTc8.mjs → acorex-modules-settings-management-permission-definition.provider-BNzuJQfL.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-BEDGpTc8.mjs.map → acorex-modules-settings-management-permission-definition.provider-BNzuJQfL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BsA1TfMG.mjs → acorex-modules-settings-management-setting-page.component-B1SnxHdd.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BsA1TfMG.mjs.map → acorex-modules-settings-management-setting-page.component-B1SnxHdd.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-C282orx7.mjs → acorex-modules-settings-management-setting-view.component-BsuZ-NQK.mjs} +2 -2
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-C282orx7.mjs.map → acorex-modules-settings-management-setting-view.component-BsuZ-NQK.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-CKgZoOGI.mjs → acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs} +529 -73
- package/fesm2022/acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +13 -6
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +394 -12
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/human-capital-management/index.d.ts +3 -1
- package/package.json +2 -2
- package/task-management/index.d.ts +31 -4
- package/workflow-management/index.d.ts +93 -6
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-C4_2RPxG.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dk4Z-JSv.mjs +0 -8995
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dk4Z-JSv.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-BzpH_FSJ.mjs +0 -388
- package/fesm2022/acorex-modules-document-management-drive.component-BzpH_FSJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-menu-list.component-CL-zuLJ1.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-CKgZoOGI.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-assessment-management-acorex-modules-assessment-management-7S277fXg.mjs","sources":["../tmp-esm2022/assessment-management/lib/const.js","../tmp-esm2022/assessment-management/lib/entity.provider.js","../tmp-esm2022/assessment-management/lib/features.keys.js","../tmp-esm2022/assessment-management/lib/feature-definition.provider.js","../tmp-esm2022/assessment-management/lib/menu.keys.js","../tmp-esm2022/assessment-management/lib/permission.keys.js","../tmp-esm2022/assessment-management/lib/menu.provider.js","../tmp-esm2022/assessment-management/lib/permission-definition.provider.js","../tmp-esm2022/assessment-management/lib/search.provider.js","../tmp-esm2022/assessment-management/lib/manifest.js","../tmp-esm2022/assessment-management/lib/entities/question-bank-item/question-bank-item.service.js","../tmp-esm2022/assessment-management/lib/entities/question-bank-item/question-bank-item.module.js","../tmp-esm2022/assessment-management/lib/entities/questionnaire/questionnaire.service.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-builder/questionnaire-builder.config.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-builder/questionnaire-builder.module.js","../tmp-esm2022/assessment-management/lib/entities/questionnaire/questionnaire.module.js","../tmp-esm2022/assessment-management/lib/entities/assessment-case/assessment-case.service.js","../tmp-esm2022/assessment-management/lib/entities/assessment-case/assessment-case.module.js","../tmp-esm2022/assessment-management/lib/entities/assessment-session/assessment-session.service.js","../tmp-esm2022/assessment-management/lib/entities/assessment-session/assessment-session.module.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer.config.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/widgets/answers-viewer-widget.config.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer.viewmodel.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer-question.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/views/single-page-view.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/views/page-per-group-view.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/views/page-per-question-view.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/views/side-menu-view.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer-edit.component.js","../tmp-esm2022/assessment-management/lib/features/questionnaire-viewer/questionnaire-viewer.module.js","../tmp-esm2022/assessment-management/lib/assessment-management.module.js","../tmp-esm2022/assessment-management/lib/entities/question-bank-item/question-bank-item.types.js","../tmp-esm2022/assessment-management/lib/entities/questionnaire/questionnaire.types.js","../tmp-esm2022/assessment-management/lib/entities/assessment-case/assessment-case.types.js","../tmp-esm2022/assessment-management/lib/entities/assessment-session/assessment-session.types.js","../tmp-esm2022/assessment-management/acorex-modules-assessment-management.js"],"sourcesContent":["//#region ---- Root Configuration ----\nconst config = { i18n: 'assessment-management' };\nexport const RootConfig = {\n config,\n module: {\n module: 'assessment-management',\n name: 'AssessmentManagement',\n title: '@assessment-management:module.title',\n icon: 'fa-light fa-clipboard-list-check',\n },\n entities: {\n questionBankItem: {\n name: 'QuestionBankItem',\n title: '@assessment-management:question-bank.entities.question-bank-item.title',\n titlePlural: '@assessment-management:question-bank.entities.question-bank-item.plural',\n icon: 'fa-light fa-question-circle',\n },\n questionnaire: {\n name: 'Questionnaire',\n title: '@assessment-management:questionnaires.entities.questionnaire.title',\n titlePlural: '@assessment-management:questionnaires.entities.questionnaire.plural',\n icon: 'fa-light fa-clipboard-list',\n },\n assessmentCase: {\n name: 'AssessmentCase',\n title: '@assessment-management:cases.entities.assessment-case.title',\n titlePlural: '@assessment-management:cases.entities.assessment-case.plural',\n icon: 'fa-light fa-briefcase',\n },\n assessmentSession: {\n name: 'AssessmentSession',\n title: '@assessment-management:sessions.entities.assessment-session.title',\n titlePlural: '@assessment-management:sessions.entities.assessment-session.plural',\n icon: 'fa-light fa-clipboard-check',\n },\n },\n};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBRTFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLE1BQU07SUFDTixNQUFNLEVBQUU7UUFDSixNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsa0NBQWtDO0tBQzNDO0lBQ0QsUUFBUSxFQUFFO1FBQ04sZ0JBQWdCLEVBQUU7WUFDZCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLEtBQUssRUFBRSx3RUFBd0U7WUFDL0UsV0FBVyxFQUFFLHlFQUF5RTtZQUN0RixJQUFJLEVBQUUsNkJBQTZCO1NBQ3RDO1FBQ0QsYUFBYSxFQUFFO1lBQ1gsSUFBSSxFQUFFLGVBQWU7WUFDckIsS0FBSyxFQUFFLG9FQUFvRTtZQUMzRSxXQUFXLEVBQUUscUVBQXFFO1lBQ2xGLElBQUksRUFBRSw0QkFBNEI7U0FDckM7UUFDRCxjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLEtBQUssRUFBRSw2REFBNkQ7WUFDcEUsV0FBVyxFQUFFLDhEQUE4RDtZQUMzRSxJQUFJLEVBQUUsdUJBQXVCO1NBQ2hDO1FBQ0QsaUJBQWlCLEVBQUU7WUFDZixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEtBQUssRUFBRSxtRUFBbUU7WUFDMUUsV0FBVyxFQUFFLG9FQUFvRTtZQUNqRixJQUFJLEVBQUUsNkJBQTZCO1NBQ3RDO0tBQ0o7Q0FDSixDQUFDO0FBRUYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgUm9vdCBDb25maWd1cmF0aW9uICAgLS0tLVxuXG5jb25zdCBjb25maWcgPSB7IGkxOG46ICdhc3Nlc3NtZW50LW1hbmFnZW1lbnQnIH07XG5cbmV4cG9ydCBjb25zdCBSb290Q29uZmlnID0ge1xuICAgIGNvbmZpZyxcbiAgICBtb2R1bGU6IHtcbiAgICAgICAgbW9kdWxlOiAnYXNzZXNzbWVudC1tYW5hZ2VtZW50JyxcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50JyxcbiAgICAgICAgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50Om1vZHVsZS50aXRsZScsXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jbGlwYm9hcmQtbGlzdC1jaGVjaycsXG4gICAgfSxcbiAgICBlbnRpdGllczoge1xuICAgICAgICBxdWVzdGlvbkJhbmtJdGVtOiB7XG4gICAgICAgICAgICBuYW1lOiAnUXVlc3Rpb25CYW5rSXRlbScsXG4gICAgICAgICAgICB0aXRsZTogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb24tYmFuay5lbnRpdGllcy5xdWVzdGlvbi1iYW5rLWl0ZW0udGl0bGUnLFxuICAgICAgICAgICAgdGl0bGVQbHVyYWw6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9uLWJhbmsuZW50aXRpZXMucXVlc3Rpb24tYmFuay1pdGVtLnBsdXJhbCcsXG4gICAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcXVlc3Rpb24tY2lyY2xlJyxcbiAgICAgICAgfSxcbiAgICAgICAgcXVlc3Rpb25uYWlyZToge1xuICAgICAgICAgICAgbmFtZTogJ1F1ZXN0aW9ubmFpcmUnLFxuICAgICAgICAgICAgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmVudGl0aWVzLnF1ZXN0aW9ubmFpcmUudGl0bGUnLFxuICAgICAgICAgICAgdGl0bGVQbHVyYWw6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmVudGl0aWVzLnF1ZXN0aW9ubmFpcmUucGx1cmFsJyxcbiAgICAgICAgICAgIGljb246ICdmYS1saWdodCBmYS1jbGlwYm9hcmQtbGlzdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGFzc2Vzc21lbnRDYXNlOiB7XG4gICAgICAgICAgICBuYW1lOiAnQXNzZXNzbWVudENhc2UnLFxuICAgICAgICAgICAgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OmNhc2VzLmVudGl0aWVzLmFzc2Vzc21lbnQtY2FzZS50aXRsZScsXG4gICAgICAgICAgICB0aXRsZVBsdXJhbDogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6Y2FzZXMuZW50aXRpZXMuYXNzZXNzbWVudC1jYXNlLnBsdXJhbCcsXG4gICAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYnJpZWZjYXNlJyxcbiAgICAgICAgfSxcbiAgICAgICAgYXNzZXNzbWVudFNlc3Npb246IHtcbiAgICAgICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50U2Vzc2lvbicsXG4gICAgICAgICAgICB0aXRsZTogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6c2Vzc2lvbnMuZW50aXRpZXMuYXNzZXNzbWVudC1zZXNzaW9uLnRpdGxlJyxcbiAgICAgICAgICAgIHRpdGxlUGx1cmFsOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpzZXNzaW9ucy5lbnRpdGllcy5hc3Nlc3NtZW50LXNlc3Npb24ucGx1cmFsJyxcbiAgICAgICAgICAgIGljb246ICdmYS1saWdodCBmYS1jbGlwYm9hcmQtY2hlY2snLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG4vLyNlbmRyZWdpb25cblxuIl19","//#region ---- Imports ----\nimport { inject, Injector } from '@angular/core';\nimport { RootConfig } from './const';\n//#endregion\n//#region ---- Entity Provider ----\nexport class AXMAssessmentManagementEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n async get(moduleName, entityName) {\n if (moduleName === RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.questionBankItem.name:\n return (await import('./entities/question-bank-item/question-bank-item.entity')).factory(this.injector);\n case RootConfig.entities.questionnaire.name:\n return (await import('./entities/questionnaire/questionnaire.entity')).factory(this.injector);\n case RootConfig.entities.assessmentCase.name:\n return (await import('./entities/assessment-case/assessment-case.entity')).factory(this.injector);\n case RootConfig.entities.assessmentSession.name:\n return (await import('./entities/assessment-session/assessment-session.entity')).factory(this.injector);\n }\n }\n return null;\n }\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0eS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVyQyxZQUFZO0FBRVosdUNBQXVDO0FBRXZDLE1BQU0sT0FBTyxxQ0FBcUM7SUFBbEQ7UUFDcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQXFCakQsQ0FBQztJQW5CRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBa0I7UUFDNUMsSUFBSSxVQUFVLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNqQixLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtvQkFDMUMsT0FBTyxDQUFDLE1BQU0sTUFBTSxDQUFDLHlEQUF5RCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUU1RyxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUk7b0JBQ3ZDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFbEcsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJO29CQUN4QyxPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRXRHLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO29CQUMzQyxPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMseURBQXlELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEgsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uTG9hZGVyIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgRW50aXR5IFByb3ZpZGVyICAgLS0tLVxuXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRFbnRpdHlQcm92aWRlciBpbXBsZW1lbnRzIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgYXN5bmMgZ2V0KG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPiB7XG4gICAgICAgIGlmIChtb2R1bGVOYW1lID09PSBSb290Q29uZmlnLm1vZHVsZS5uYW1lKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGVudGl0eU5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFJvb3RDb25maWcuZW50aXRpZXMucXVlc3Rpb25CYW5rSXRlbS5uYW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IGltcG9ydCgnLi9lbnRpdGllcy9xdWVzdGlvbi1iYW5rLWl0ZW0vcXVlc3Rpb24tYmFuay1pdGVtLmVudGl0eScpKS5mYWN0b3J5KHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLnF1ZXN0aW9ubmFpcmUubmFtZTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLmVudGl0eScpKS5mYWN0b3J5KHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLmFzc2Vzc21lbnRDYXNlLm5hbWU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL2Fzc2Vzc21lbnQtY2FzZS9hc3Nlc3NtZW50LWNhc2UuZW50aXR5JykpLmZhY3RvcnkodGhpcy5pbmplY3Rvcik7XG5cbiAgICAgICAgICAgICAgICBjYXNlIFJvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudFNlc3Npb24ubmFtZTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvYXNzZXNzbWVudC1zZXNzaW9uL2Fzc2Vzc21lbnQtc2Vzc2lvbi5lbnRpdHknKSkuZmFjdG9yeSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","export const AXMAssessmentManagementFeatureKeys = {\n QuestionnaireManagement: 'AssessmentManagement:Feature:Questionnaire.Management',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMua2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy5rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHO0lBQ2hELHVCQUF1QixFQUFFLHVEQUF1RDtDQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50RmVhdHVyZUtleXMgPSB7XG4gIFF1ZXN0aW9ubmFpcmVNYW5hZ2VtZW50OiAnQXNzZXNzbWVudE1hbmFnZW1lbnQ6RmVhdHVyZTpRdWVzdGlvbm5haXJlLk1hbmFnZW1lbnQnLFxufSBhcyBjb25zdDtcblxuIl19","//#region ---- Imports ----\nimport { AXMAssessmentManagementFeatureKeys } from './features.keys';\n//#endregion\n//#region ---- Feature Definition Provider ----\n/**\n * Assessment Management Feature Definition Provider.\n * Provides feature definitions for the Assessment Management module.\n */\nexport class AXMAssessmentManagementFeatureDefinitionProvider {\n async provide(context) {\n // Question Bank feature\n context.addFeature(AXMAssessmentManagementFeatureKeys.QuestionnaireManagement, {\n title: '@assessment-management:features.questionnaire-management.title',\n description: '@assessment-management:features.questionnaire-management.description',\n defaultValue: true,\n type: 'boolean',\n });\n }\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmUtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFNL0IsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckUsWUFBWTtBQUVaLG1EQUFtRDtBQUVuRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0RBQWdEO0lBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNEM7UUFDdEQsd0JBQXdCO1FBQ3hCLE9BQU8sQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsdUJBQXVCLEVBQUU7WUFDM0UsS0FBSyxFQUFFLGdFQUFnRTtZQUN2RSxXQUFXLEVBQUUsc0VBQXNFO1lBQ25GLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxTQUFTO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQUVELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7XG4gICAgQVhQRmVhdHVyZURlZmluaXRpb25Qcm92aWRlcixcbiAgICBBWFBGZWF0dXJlRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50RmVhdHVyZUtleXMgfSBmcm9tICcuL2ZlYXR1cmVzLmtleXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBGZWF0dXJlIERlZmluaXRpb24gUHJvdmlkZXIgICAtLS0tXG5cbi8qKlxuICogQXNzZXNzbWVudCBNYW5hZ2VtZW50IEZlYXR1cmUgRGVmaW5pdGlvbiBQcm92aWRlci5cbiAqIFByb3ZpZGVzIGZlYXR1cmUgZGVmaW5pdGlvbnMgZm9yIHRoZSBBc3Nlc3NtZW50IE1hbmFnZW1lbnQgbW9kdWxlLlxuICovXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRGZWF0dXJlRGVmaW5pdGlvblByb3ZpZGVyIGltcGxlbWVudHMgQVhQRmVhdHVyZURlZmluaXRpb25Qcm92aWRlciB7XG4gICAgYXN5bmMgcHJvdmlkZShjb250ZXh0OiBBWFBGZWF0dXJlRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBRdWVzdGlvbiBCYW5rIGZlYXR1cmVcbiAgICAgICAgY29udGV4dC5hZGRGZWF0dXJlKEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50RmVhdHVyZUtleXMuUXVlc3Rpb25uYWlyZU1hbmFnZW1lbnQsIHtcbiAgICAgICAgICAgIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpmZWF0dXJlcy5xdWVzdGlvbm5haXJlLW1hbmFnZW1lbnQudGl0bGUnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OmZlYXR1cmVzLnF1ZXN0aW9ubmFpcmUtbWFuYWdlbWVudC5kZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","export const AXPAssessmentManagementMenuKeys = {\n Root: 'AssessmentManagement:Menu',\n Questionnaires: 'AssessmentManagement:Menu:Questionnaires',\n Cases: 'AssessmentManagement:Menu:Cases',\n QuestionBankItems: 'AssessmentManagement:Menu:QuestionBankItems',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL21lbnUua2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUMzQyxJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLGNBQWMsRUFBRSwwQ0FBMEM7SUFDMUQsS0FBSyxFQUFFLGlDQUFpQztJQUN4QyxpQkFBaUIsRUFBRSw2Q0FBNkM7Q0FDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBWFBBc3Nlc3NtZW50TWFuYWdlbWVudE1lbnVLZXlzID0ge1xuICAgIFJvb3Q6ICdBc3Nlc3NtZW50TWFuYWdlbWVudDpNZW51JyxcbiAgICBRdWVzdGlvbm5haXJlczogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50Ok1lbnU6UXVlc3Rpb25uYWlyZXMnLFxuICAgIENhc2VzOiAnQXNzZXNzbWVudE1hbmFnZW1lbnQ6TWVudTpDYXNlcycsXG4gICAgUXVlc3Rpb25CYW5rSXRlbXM6ICdBc3Nlc3NtZW50TWFuYWdlbWVudDpNZW51OlF1ZXN0aW9uQmFua0l0ZW1zJyxcbn0gYXMgY29uc3Q7XG5cbiJdfQ==","export const AXMAssessmentManagementPermissionKeys = {\n AssessmentManagement: {\n QuestionBank: 'AssessmentManagement:QuestionBank:Management',\n Questionnaire: {\n Management: 'AssessmentManagement:Questionnaire:Management',\n Create: 'AssessmentManagement:Questionnaire:Create',\n Edit: 'AssessmentManagement:Questionnaire:Edit',\n Delete: 'AssessmentManagement:Questionnaire:Delete',\n },\n Case: {\n Management: 'AssessmentManagement:Case:Management',\n Create: 'AssessmentManagement:Case:Create',\n Edit: 'AssessmentManagement:Case:Edit',\n Delete: 'AssessmentManagement:Case:Delete',\n },\n Session: {\n Management: 'AssessmentManagement:Session:Management',\n Create: 'AssessmentManagement:Session:Create',\n Edit: 'AssessmentManagement:Session:Edit',\n Delete: 'AssessmentManagement:Session:Delete',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL3Blcm1pc3Npb24ua2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRztJQUNqRCxvQkFBb0IsRUFBRTtRQUNsQixZQUFZLEVBQUUsOENBQThDO1FBQzVELGFBQWEsRUFBRTtZQUNYLFVBQVUsRUFBRSwrQ0FBK0M7WUFDM0QsTUFBTSxFQUFFLDJDQUEyQztZQUNuRCxJQUFJLEVBQUUseUNBQXlDO1lBQy9DLE1BQU0sRUFBRSwyQ0FBMkM7U0FDdEQ7UUFDRCxJQUFJLEVBQUU7WUFDRixVQUFVLEVBQUUsc0NBQXNDO1lBQ2xELE1BQU0sRUFBRSxrQ0FBa0M7WUFDMUMsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxNQUFNLEVBQUUsa0NBQWtDO1NBQzdDO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsVUFBVSxFQUFFLHlDQUF5QztZQUNyRCxNQUFNLEVBQUUscUNBQXFDO1lBQzdDLElBQUksRUFBRSxtQ0FBbUM7WUFDekMsTUFBTSxFQUFFLHFDQUFxQztTQUNoRDtLQUNKO0NBQ0ssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFBlcm1pc3Npb25LZXlzID0ge1xuICAgIEFzc2Vzc21lbnRNYW5hZ2VtZW50OiB7XG4gICAgICAgIFF1ZXN0aW9uQmFuazogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OlF1ZXN0aW9uQmFuazpNYW5hZ2VtZW50JyxcbiAgICAgICAgUXVlc3Rpb25uYWlyZToge1xuICAgICAgICAgICAgTWFuYWdlbWVudDogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OlF1ZXN0aW9ubmFpcmU6TWFuYWdlbWVudCcsXG4gICAgICAgICAgICBDcmVhdGU6ICdBc3Nlc3NtZW50TWFuYWdlbWVudDpRdWVzdGlvbm5haXJlOkNyZWF0ZScsXG4gICAgICAgICAgICBFZGl0OiAnQXNzZXNzbWVudE1hbmFnZW1lbnQ6UXVlc3Rpb25uYWlyZTpFZGl0JyxcbiAgICAgICAgICAgIERlbGV0ZTogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OlF1ZXN0aW9ubmFpcmU6RGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgQ2FzZToge1xuICAgICAgICAgICAgTWFuYWdlbWVudDogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OkNhc2U6TWFuYWdlbWVudCcsXG4gICAgICAgICAgICBDcmVhdGU6ICdBc3Nlc3NtZW50TWFuYWdlbWVudDpDYXNlOkNyZWF0ZScsXG4gICAgICAgICAgICBFZGl0OiAnQXNzZXNzbWVudE1hbmFnZW1lbnQ6Q2FzZTpFZGl0JyxcbiAgICAgICAgICAgIERlbGV0ZTogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OkNhc2U6RGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgU2Vzc2lvbjoge1xuICAgICAgICAgICAgTWFuYWdlbWVudDogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OlNlc3Npb246TWFuYWdlbWVudCcsXG4gICAgICAgICAgICBDcmVhdGU6ICdBc3Nlc3NtZW50TWFuYWdlbWVudDpTZXNzaW9uOkNyZWF0ZScsXG4gICAgICAgICAgICBFZGl0OiAnQXNzZXNzbWVudE1hbmFnZW1lbnQ6U2Vzc2lvbjpFZGl0JyxcbiAgICAgICAgICAgIERlbGV0ZTogJ0Fzc2Vzc21lbnRNYW5hZ2VtZW50OlNlc3Npb246RGVsZXRlJyxcbiAgICAgICAgfSxcbiAgICB9LFxufSBhcyBjb25zdDtcblxuIl19","//#region ---- Imports ----\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport { AXPAssessmentManagementMenuKeys } from './menu.keys';\nimport { AXMAssessmentManagementPermissionKeys } from './permission.keys';\nimport { AXMAssessmentManagementFeatureKeys } from './features.keys';\n//#endregion\n//#region ---- Menu Provider ----\nexport class AXMAssessmentManagementMenuProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n }\n async provide(context) {\n const module = RootConfig.module;\n context.addItems([\n {\n name: AXPAssessmentManagementMenuKeys.Root,\n priority: 9010, // Assessment Management module priority\n text: module.title,\n icon: module.icon,\n policy: {\n features: [\n module.name,\n AXMAssessmentManagementFeatureKeys.QuestionnaireManagement,\n ],\n },\n children: [\n {\n name: AXPAssessmentManagementMenuKeys.QuestionBankItems,\n text: '@assessment-management:question-bank.entities.question-bank-item.plural',\n path: this.entityService.withEntity(module.name, RootConfig.entities.questionBankItem.name).createPath(),\n icon: RootConfig.entities.questionBankItem.icon,\n priority: 1,\n policy: {\n permissions: [\n AXMAssessmentManagementPermissionKeys.AssessmentManagement.QuestionBank,\n ],\n },\n },\n {\n name: AXPAssessmentManagementMenuKeys.Questionnaires,\n text: RootConfig.entities.questionnaire.titlePlural,\n path: this.entityService.withEntity(module.name, RootConfig.entities.questionnaire.name).createPath(),\n icon: RootConfig.entities.questionnaire.icon,\n priority: 2,\n policy: {\n permissions: [\n AXMAssessmentManagementPermissionKeys.AssessmentManagement.Questionnaire.Management,\n ],\n },\n },\n {\n name: AXPAssessmentManagementMenuKeys.Cases,\n text: RootConfig.entities.assessmentCase.titlePlural,\n path: this.entityService.withEntity(module.name, RootConfig.entities.assessmentCase.name).createPath(),\n icon: RootConfig.entities.assessmentCase.icon,\n priority: 3,\n policy: {\n permissions: [\n AXMAssessmentManagementPermissionKeys.AssessmentManagement.Case.Management,\n ],\n },\n },\n ],\n },\n ]);\n }\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9tZW51LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUcvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJFLFlBQVk7QUFFWixxQ0FBcUM7QUFFckMsTUFBTSxPQUFPLG1DQUFtQztJQUFoRDtRQUNZLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUEwRHJELENBQUM7SUF4REcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUN6QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBRWpDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDYjtnQkFDSSxJQUFJLEVBQUUsK0JBQStCLENBQUMsSUFBSTtnQkFDMUMsUUFBUSxFQUFFLElBQUksRUFBRSx3Q0FBd0M7Z0JBQ3hELElBQUksRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixNQUFNLEVBQUU7b0JBQ0osUUFBUSxFQUFFO3dCQUNOLE1BQU0sQ0FBQyxJQUFJO3dCQUNYLGtDQUFrQyxDQUFDLHVCQUF1QjtxQkFDN0Q7aUJBQ0o7Z0JBQ0QsUUFBUSxFQUFFO29CQUNOO3dCQUNJLElBQUksRUFBRSwrQkFBK0IsQ0FBQyxpQkFBaUI7d0JBQ3ZELElBQUksRUFBRSx5RUFBeUU7d0JBQy9FLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO3dCQUN4RyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO3dCQUMvQyxRQUFRLEVBQUUsQ0FBQzt3QkFDWCxNQUFNLEVBQUU7NEJBQ0osV0FBVyxFQUFFO2dDQUNULHFDQUFxQyxDQUFDLG9CQUFvQixDQUFDLFlBQVk7NkJBQzFFO3lCQUNKO3FCQUNKO29CQUNEO3dCQUNJLElBQUksRUFBRSwrQkFBK0IsQ0FBQyxjQUFjO3dCQUNwRCxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVzt3QkFDbkQsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO3dCQUNyRyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSTt3QkFDNUMsUUFBUSxFQUFFLENBQUM7d0JBQ1gsTUFBTSxFQUFFOzRCQUNKLFdBQVcsRUFBRTtnQ0FDVCxxQ0FBcUMsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsVUFBVTs2QkFDdEY7eUJBQ0o7cUJBQ0o7b0JBQ0Q7d0JBQ0ksSUFBSSxFQUFFLCtCQUErQixDQUFDLEtBQUs7d0JBQzNDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXO3dCQUNwRCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUU7d0JBQ3RHLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJO3dCQUM3QyxRQUFRLEVBQUUsQ0FBQzt3QkFDWCxNQUFNLEVBQUU7NEJBQ0osV0FBVyxFQUFFO2dDQUNULHFDQUFxQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVOzZCQUM3RTt5QkFDSjtxQkFDSjtpQkFDSjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBRUQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyLCBBWFBNZW51UHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcbmltcG9ydCB7IEFYUEFzc2Vzc21lbnRNYW5hZ2VtZW50TWVudUtleXMgfSBmcm9tICcuL21lbnUua2V5cyc7XG5pbXBvcnQgeyBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFBlcm1pc3Npb25LZXlzIH0gZnJvbSAnLi9wZXJtaXNzaW9uLmtleXMnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRGZWF0dXJlS2V5cyB9IGZyb20gJy4vZmVhdHVyZXMua2V5cyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1lbnUgUHJvdmlkZXIgICAtLS0tXG5cbmV4cG9ydCBjbGFzcyBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudE1lbnVQcm92aWRlciBpbXBsZW1lbnRzIEFYUE1lbnVQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuXG4gICAgYXN5bmMgcHJvdmlkZShjb250ZXh0OiBBWFBNZW51UHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG1vZHVsZSA9IFJvb3RDb25maWcubW9kdWxlO1xuXG4gICAgICAgIGNvbnRleHQuYWRkSXRlbXMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IEFYUEFzc2Vzc21lbnRNYW5hZ2VtZW50TWVudUtleXMuUm9vdCxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogOTAxMCwgLy8gQXNzZXNzbWVudCBNYW5hZ2VtZW50IG1vZHVsZSBwcmlvcml0eVxuICAgICAgICAgICAgICAgIHRleHQ6IG1vZHVsZS50aXRsZSxcbiAgICAgICAgICAgICAgICBpY29uOiBtb2R1bGUuaWNvbixcbiAgICAgICAgICAgICAgICBwb2xpY3k6IHtcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRGZWF0dXJlS2V5cy5RdWVzdGlvbm5haXJlTWFuYWdlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IEFYUEFzc2Vzc21lbnRNYW5hZ2VtZW50TWVudUtleXMuUXVlc3Rpb25CYW5rSXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbi1iYW5rLmVudGl0aWVzLnF1ZXN0aW9uLWJhbmstaXRlbS5wbHVyYWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogdGhpcy5lbnRpdHlTZXJ2aWNlLndpdGhFbnRpdHkobW9kdWxlLm5hbWUsIFJvb3RDb25maWcuZW50aXRpZXMucXVlc3Rpb25CYW5rSXRlbS5uYW1lKS5jcmVhdGVQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLnF1ZXN0aW9uQmFua0l0ZW0uaWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRQZXJtaXNzaW9uS2V5cy5Bc3Nlc3NtZW50TWFuYWdlbWVudC5RdWVzdGlvbkJhbmssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IEFYUEFzc2Vzc21lbnRNYW5hZ2VtZW50TWVudUtleXMuUXVlc3Rpb25uYWlyZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBSb290Q29uZmlnLmVudGl0aWVzLnF1ZXN0aW9ubmFpcmUudGl0bGVQbHVyYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy5xdWVzdGlvbm5haXJlLm5hbWUpLmNyZWF0ZVBhdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IFJvb3RDb25maWcuZW50aXRpZXMucXVlc3Rpb25uYWlyZS5pY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFBlcm1pc3Npb25LZXlzLkFzc2Vzc21lbnRNYW5hZ2VtZW50LlF1ZXN0aW9ubmFpcmUuTWFuYWdlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogQVhQQXNzZXNzbWVudE1hbmFnZW1lbnRNZW51S2V5cy5DYXNlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFJvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudENhc2UudGl0bGVQbHVyYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy5hc3Nlc3NtZW50Q2FzZS5uYW1lKS5jcmVhdGVQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLmFzc2Vzc21lbnRDYXNlLmljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50UGVybWlzc2lvbktleXMuQXNzZXNzbWVudE1hbmFnZW1lbnQuQ2FzZS5NYW5hZ2VtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICB9XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport { AXMAssessmentManagementPermissionKeys } from './permission.keys';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Permission Provider ----\nexport class AXMAssessmentManagementPermissionDefinitionProvider {\n async define(context) {\n const keys = AXMAssessmentManagementPermissionKeys.AssessmentManagement;\n // I18n path constants for cleaner code\n const MODULE_PERMISSIONS = '@assessment-management:module.permissions';\n const QUESTION_BANK_PERMISSIONS = '@assessment-management:question-bank.permissions.question-bank';\n const QUESTIONNAIRE_PERMISSIONS = '@assessment-management:questionnaires.permissions.questionnaire';\n const CASE_PERMISSIONS = '@assessment-management:cases.permissions.assessment-case';\n const SESSION_PERMISSIONS = '@assessment-management:sessions.permissions.assessment-session';\n context\n .addGroup(RootConfig.module.name, `${MODULE_PERMISSIONS}.title`, `${MODULE_PERMISSIONS}.description`)\n // QuestionBank Permission\n .addPermission(keys.QuestionBank, `${QUESTION_BANK_PERMISSIONS}.management.title`, `${QUESTION_BANK_PERMISSIONS}.management.description`)\n .endPermission()\n // Questionnaire Permissions\n .addPermission(keys.Questionnaire.Management, `${QUESTIONNAIRE_PERMISSIONS}.management.title`, `${QUESTIONNAIRE_PERMISSIONS}.management.description`)\n .addChild(keys.Questionnaire.Create, `${QUESTIONNAIRE_PERMISSIONS}.create.title`, `${QUESTIONNAIRE_PERMISSIONS}.create.description`)\n .addChild(keys.Questionnaire.Edit, `${QUESTIONNAIRE_PERMISSIONS}.edit.title`, `${QUESTIONNAIRE_PERMISSIONS}.edit.description`)\n .addChild(keys.Questionnaire.Delete, `${QUESTIONNAIRE_PERMISSIONS}.delete.title`, `${QUESTIONNAIRE_PERMISSIONS}.delete.description`)\n .endPermission()\n // AssessmentCase Permissions\n .addPermission(keys.Case.Management, `${CASE_PERMISSIONS}.management.title`, `${CASE_PERMISSIONS}.management.description`)\n .addChild(keys.Case.Create, `${CASE_PERMISSIONS}.create.title`, `${CASE_PERMISSIONS}.create.description`)\n .addChild(keys.Case.Edit, `${CASE_PERMISSIONS}.edit.title`, `${CASE_PERMISSIONS}.edit.description`)\n .addChild(keys.Case.Delete, `${CASE_PERMISSIONS}.delete.title`, `${CASE_PERMISSIONS}.delete.description`)\n .endPermission()\n // AssessmentSession Permissions\n .addPermission(keys.Session.Management, `${SESSION_PERMISSIONS}.management.title`, `${SESSION_PERMISSIONS}.management.description`)\n .addChild(keys.Session.Create, `${SESSION_PERMISSIONS}.create.title`, `${SESSION_PERMISSIONS}.create.description`)\n .addChild(keys.Session.Edit, `${SESSION_PERMISSIONS}.edit.title`, `${SESSION_PERMISSIONS}.edit.description`)\n .addChild(keys.Session.Delete, `${SESSION_PERMISSIONS}.delete.title`, `${SESSION_PERMISSIONS}.delete.description`)\n .endPermission()\n .endGroup();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementPermissionDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementPermissionDefinitionProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementPermissionDefinitionProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXJDLFlBQVk7QUFFWiwyQ0FBMkM7QUFHM0MsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQStDO1FBQzFELE1BQU0sSUFBSSxHQUFHLHFDQUFxQyxDQUFDLG9CQUFvQixDQUFDO1FBRXhFLHVDQUF1QztRQUN2QyxNQUFNLGtCQUFrQixHQUFHLDJDQUEyQyxDQUFDO1FBQ3ZFLE1BQU0seUJBQXlCLEdBQUcsZ0VBQWdFLENBQUM7UUFDbkcsTUFBTSx5QkFBeUIsR0FBRyxpRUFBaUUsQ0FBQztRQUNwRyxNQUFNLGdCQUFnQixHQUFHLDBEQUEwRCxDQUFDO1FBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsZ0VBQWdFLENBQUM7UUFFN0YsT0FBTzthQUNKLFFBQVEsQ0FDUCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFDdEIsR0FBRyxrQkFBa0IsUUFBUSxFQUM3QixHQUFHLGtCQUFrQixjQUFjLENBQ3BDO1lBRUQsMEJBQTBCO2FBQ3pCLGFBQWEsQ0FDWixJQUFJLENBQUMsWUFBWSxFQUNqQixHQUFHLHlCQUF5QixtQkFBbUIsRUFDL0MsR0FBRyx5QkFBeUIseUJBQXlCLENBQ3REO2FBQ0EsYUFBYSxFQUFFO1lBRWhCLDRCQUE0QjthQUMzQixhQUFhLENBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQzdCLEdBQUcseUJBQXlCLG1CQUFtQixFQUMvQyxHQUFHLHlCQUF5Qix5QkFBeUIsQ0FDdEQ7YUFDQSxRQUFRLENBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQ3pCLEdBQUcseUJBQXlCLGVBQWUsRUFDM0MsR0FBRyx5QkFBeUIscUJBQXFCLENBQ2xEO2FBQ0EsUUFBUSxDQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUN2QixHQUFHLHlCQUF5QixhQUFhLEVBQ3pDLEdBQUcseUJBQXlCLG1CQUFtQixDQUNoRDthQUNBLFFBQVEsQ0FDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFDekIsR0FBRyx5QkFBeUIsZUFBZSxFQUMzQyxHQUFHLHlCQUF5QixxQkFBcUIsQ0FDbEQ7YUFDQSxhQUFhLEVBQUU7WUFFaEIsNkJBQTZCO2FBQzVCLGFBQWEsQ0FDWixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFDcEIsR0FBRyxnQkFBZ0IsbUJBQW1CLEVBQ3RDLEdBQUcsZ0JBQWdCLHlCQUF5QixDQUM3QzthQUNBLFFBQVEsQ0FDUCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDaEIsR0FBRyxnQkFBZ0IsZUFBZSxFQUNsQyxHQUFHLGdCQUFnQixxQkFBcUIsQ0FDekM7YUFDQSxRQUFRLENBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ2QsR0FBRyxnQkFBZ0IsYUFBYSxFQUNoQyxHQUFHLGdCQUFnQixtQkFBbUIsQ0FDdkM7YUFDQSxRQUFRLENBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQ2hCLEdBQUcsZ0JBQWdCLGVBQWUsRUFDbEMsR0FBRyxnQkFBZ0IscUJBQXFCLENBQ3pDO2FBQ0EsYUFBYSxFQUFFO1lBRWhCLGdDQUFnQzthQUMvQixhQUFhLENBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ3ZCLEdBQUcsbUJBQW1CLG1CQUFtQixFQUN6QyxHQUFHLG1CQUFtQix5QkFBeUIsQ0FDaEQ7YUFDQSxRQUFRLENBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQ25CLEdBQUcsbUJBQW1CLGVBQWUsRUFDckMsR0FBRyxtQkFBbUIscUJBQXFCLENBQzVDO2FBQ0EsUUFBUSxDQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNqQixHQUFHLG1CQUFtQixhQUFhLEVBQ25DLEdBQUcsbUJBQW1CLG1CQUFtQixDQUMxQzthQUNBLFFBQVEsQ0FDUCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDbkIsR0FBRyxtQkFBbUIsZUFBZSxFQUNyQyxHQUFHLG1CQUFtQixxQkFBcUIsQ0FDNUM7YUFDQSxhQUFhLEVBQUU7YUFFZixRQUFRLEVBQUUsQ0FBQztJQUNoQixDQUFDOytHQWhHVSxtREFBbUQ7bUhBQW5ELG1EQUFtRDs7NEZBQW5ELG1EQUFtRDtrQkFEL0QsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhQUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlciwgQVhQUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRQZXJtaXNzaW9uS2V5cyB9IGZyb20gJy4vcGVybWlzc2lvbi5rZXlzJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgUGVybWlzc2lvbiBQcm92aWRlciAgIC0tLS1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50UGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlciBpbXBsZW1lbnRzIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBkZWZpbmUoY29udGV4dDogQVhQUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBrZXlzID0gQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRQZXJtaXNzaW9uS2V5cy5Bc3Nlc3NtZW50TWFuYWdlbWVudDtcblxuICAgIC8vIEkxOG4gcGF0aCBjb25zdGFudHMgZm9yIGNsZWFuZXIgY29kZVxuICAgIGNvbnN0IE1PRFVMRV9QRVJNSVNTSU9OUyA9ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50Om1vZHVsZS5wZXJtaXNzaW9ucyc7XG4gICAgY29uc3QgUVVFU1RJT05fQkFOS19QRVJNSVNTSU9OUyA9ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9uLWJhbmsucGVybWlzc2lvbnMucXVlc3Rpb24tYmFuayc7XG4gICAgY29uc3QgUVVFU1RJT05OQUlSRV9QRVJNSVNTSU9OUyA9ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLnBlcm1pc3Npb25zLnF1ZXN0aW9ubmFpcmUnO1xuICAgIGNvbnN0IENBU0VfUEVSTUlTU0lPTlMgPSAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpjYXNlcy5wZXJtaXNzaW9ucy5hc3Nlc3NtZW50LWNhc2UnO1xuICAgIGNvbnN0IFNFU1NJT05fUEVSTUlTU0lPTlMgPSAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpzZXNzaW9ucy5wZXJtaXNzaW9ucy5hc3Nlc3NtZW50LXNlc3Npb24nO1xuXG4gICAgY29udGV4dFxuICAgICAgLmFkZEdyb3VwKFxuICAgICAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICBgJHtNT0RVTEVfUEVSTUlTU0lPTlN9LnRpdGxlYCxcbiAgICAgICAgYCR7TU9EVUxFX1BFUk1JU1NJT05TfS5kZXNjcmlwdGlvbmBcbiAgICAgIClcblxuICAgICAgLy8gUXVlc3Rpb25CYW5rIFBlcm1pc3Npb25cbiAgICAgIC5hZGRQZXJtaXNzaW9uKFxuICAgICAgICBrZXlzLlF1ZXN0aW9uQmFuayxcbiAgICAgICAgYCR7UVVFU1RJT05fQkFOS19QRVJNSVNTSU9OU30ubWFuYWdlbWVudC50aXRsZWAsXG4gICAgICAgIGAke1FVRVNUSU9OX0JBTktfUEVSTUlTU0lPTlN9Lm1hbmFnZW1lbnQuZGVzY3JpcHRpb25gXG4gICAgICApXG4gICAgICAuZW5kUGVybWlzc2lvbigpXG5cbiAgICAgIC8vIFF1ZXN0aW9ubmFpcmUgUGVybWlzc2lvbnNcbiAgICAgIC5hZGRQZXJtaXNzaW9uKFxuICAgICAgICBrZXlzLlF1ZXN0aW9ubmFpcmUuTWFuYWdlbWVudCxcbiAgICAgICAgYCR7UVVFU1RJT05OQUlSRV9QRVJNSVNTSU9OU30ubWFuYWdlbWVudC50aXRsZWAsXG4gICAgICAgIGAke1FVRVNUSU9OTkFJUkVfUEVSTUlTU0lPTlN9Lm1hbmFnZW1lbnQuZGVzY3JpcHRpb25gXG4gICAgICApXG4gICAgICAuYWRkQ2hpbGQoXG4gICAgICAgIGtleXMuUXVlc3Rpb25uYWlyZS5DcmVhdGUsXG4gICAgICAgIGAke1FVRVNUSU9OTkFJUkVfUEVSTUlTU0lPTlN9LmNyZWF0ZS50aXRsZWAsXG4gICAgICAgIGAke1FVRVNUSU9OTkFJUkVfUEVSTUlTU0lPTlN9LmNyZWF0ZS5kZXNjcmlwdGlvbmBcbiAgICAgIClcbiAgICAgIC5hZGRDaGlsZChcbiAgICAgICAga2V5cy5RdWVzdGlvbm5haXJlLkVkaXQsXG4gICAgICAgIGAke1FVRVNUSU9OTkFJUkVfUEVSTUlTU0lPTlN9LmVkaXQudGl0bGVgLFxuICAgICAgICBgJHtRVUVTVElPTk5BSVJFX1BFUk1JU1NJT05TfS5lZGl0LmRlc2NyaXB0aW9uYFxuICAgICAgKVxuICAgICAgLmFkZENoaWxkKFxuICAgICAgICBrZXlzLlF1ZXN0aW9ubmFpcmUuRGVsZXRlLFxuICAgICAgICBgJHtRVUVTVElPTk5BSVJFX1BFUk1JU1NJT05TfS5kZWxldGUudGl0bGVgLFxuICAgICAgICBgJHtRVUVTVElPTk5BSVJFX1BFUk1JU1NJT05TfS5kZWxldGUuZGVzY3JpcHRpb25gXG4gICAgICApXG4gICAgICAuZW5kUGVybWlzc2lvbigpXG5cbiAgICAgIC8vIEFzc2Vzc21lbnRDYXNlIFBlcm1pc3Npb25zXG4gICAgICAuYWRkUGVybWlzc2lvbihcbiAgICAgICAga2V5cy5DYXNlLk1hbmFnZW1lbnQsXG4gICAgICAgIGAke0NBU0VfUEVSTUlTU0lPTlN9Lm1hbmFnZW1lbnQudGl0bGVgLFxuICAgICAgICBgJHtDQVNFX1BFUk1JU1NJT05TfS5tYW5hZ2VtZW50LmRlc2NyaXB0aW9uYFxuICAgICAgKVxuICAgICAgLmFkZENoaWxkKFxuICAgICAgICBrZXlzLkNhc2UuQ3JlYXRlLFxuICAgICAgICBgJHtDQVNFX1BFUk1JU1NJT05TfS5jcmVhdGUudGl0bGVgLFxuICAgICAgICBgJHtDQVNFX1BFUk1JU1NJT05TfS5jcmVhdGUuZGVzY3JpcHRpb25gXG4gICAgICApXG4gICAgICAuYWRkQ2hpbGQoXG4gICAgICAgIGtleXMuQ2FzZS5FZGl0LFxuICAgICAgICBgJHtDQVNFX1BFUk1JU1NJT05TfS5lZGl0LnRpdGxlYCxcbiAgICAgICAgYCR7Q0FTRV9QRVJNSVNTSU9OU30uZWRpdC5kZXNjcmlwdGlvbmBcbiAgICAgIClcbiAgICAgIC5hZGRDaGlsZChcbiAgICAgICAga2V5cy5DYXNlLkRlbGV0ZSxcbiAgICAgICAgYCR7Q0FTRV9QRVJNSVNTSU9OU30uZGVsZXRlLnRpdGxlYCxcbiAgICAgICAgYCR7Q0FTRV9QRVJNSVNTSU9OU30uZGVsZXRlLmRlc2NyaXB0aW9uYFxuICAgICAgKVxuICAgICAgLmVuZFBlcm1pc3Npb24oKVxuXG4gICAgICAvLyBBc3Nlc3NtZW50U2Vzc2lvbiBQZXJtaXNzaW9uc1xuICAgICAgLmFkZFBlcm1pc3Npb24oXG4gICAgICAgIGtleXMuU2Vzc2lvbi5NYW5hZ2VtZW50LFxuICAgICAgICBgJHtTRVNTSU9OX1BFUk1JU1NJT05TfS5tYW5hZ2VtZW50LnRpdGxlYCxcbiAgICAgICAgYCR7U0VTU0lPTl9QRVJNSVNTSU9OU30ubWFuYWdlbWVudC5kZXNjcmlwdGlvbmBcbiAgICAgIClcbiAgICAgIC5hZGRDaGlsZChcbiAgICAgICAga2V5cy5TZXNzaW9uLkNyZWF0ZSxcbiAgICAgICAgYCR7U0VTU0lPTl9QRVJNSVNTSU9OU30uY3JlYXRlLnRpdGxlYCxcbiAgICAgICAgYCR7U0VTU0lPTl9QRVJNSVNTSU9OU30uY3JlYXRlLmRlc2NyaXB0aW9uYFxuICAgICAgKVxuICAgICAgLmFkZENoaWxkKFxuICAgICAgICBrZXlzLlNlc3Npb24uRWRpdCxcbiAgICAgICAgYCR7U0VTU0lPTl9QRVJNSVNTSU9OU30uZWRpdC50aXRsZWAsXG4gICAgICAgIGAke1NFU1NJT05fUEVSTUlTU0lPTlN9LmVkaXQuZGVzY3JpcHRpb25gXG4gICAgICApXG4gICAgICAuYWRkQ2hpbGQoXG4gICAgICAgIGtleXMuU2Vzc2lvbi5EZWxldGUsXG4gICAgICAgIGAke1NFU1NJT05fUEVSTUlTU0lPTlN9LmRlbGV0ZS50aXRsZWAsXG4gICAgICAgIGAke1NFU1NJT05fUEVSTUlTU0lPTlN9LmRlbGV0ZS5kZXNjcmlwdGlvbmBcbiAgICAgIClcbiAgICAgIC5lbmRQZXJtaXNzaW9uKClcblxuICAgICAgLmVuZEdyb3VwKCk7XG4gIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nimport { AXPSearchCommandProvider } from '@acorex/platform/common';\nimport { RootConfig } from './const';\n//#endregion\n//#region ---- Search Provider ----\nexport class AXMAssessmentManagementSearchCommandProvider extends AXPSearchCommandProvider {\n constructor() {\n super(...arguments);\n this.commands = [\n {\n group: 'entity',\n title: 'New Questionnaire',\n icon: RootConfig.entities.questionnaire.icon,\n description: 'Create a new assessment questionnaire, survey, checklist, or test.',\n command: {\n name: 'create-entity',\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}`,\n },\n },\n },\n {\n group: 'entity',\n title: 'New Question',\n icon: RootConfig.entities.questionBankItem.icon,\n description: 'Create a new question for the question bank.',\n command: {\n name: 'create-entity',\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}`,\n },\n },\n },\n {\n group: 'entity',\n title: 'New Assessment Case',\n icon: RootConfig.entities.assessmentCase.icon,\n description: 'Assign a questionnaire to a target entity for a purpose.',\n command: {\n name: 'create-entity',\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}`,\n },\n },\n },\n {\n group: 'entity',\n title: 'New Assessment Session',\n icon: RootConfig.entities.assessmentSession.icon,\n description: 'Create a new assessment session for filling out a questionnaire.',\n command: {\n name: 'create-entity',\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}`,\n },\n },\n },\n ];\n }\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL3NlYXJjaC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckMsWUFBWTtBQUVaLHVDQUF1QztBQUV2QyxNQUFNLE9BQU8sNENBQTZDLFNBQVEsd0JBQXdCO0lBQTFGOztRQUNJLGFBQVEsR0FBc0I7WUFDMUI7Z0JBQ0ksS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLG1CQUFtQjtnQkFDMUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzVDLFdBQVcsRUFBRSxvRUFBb0U7Z0JBQ2pGLE9BQU8sRUFBRTtvQkFDTCxJQUFJLEVBQUUsZUFBZTtvQkFDckIsT0FBTyxFQUFFO3dCQUNMLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtxQkFDaEY7aUJBQ0o7YUFDSjtZQUNEO2dCQUNJLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxjQUFjO2dCQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO2dCQUMvQyxXQUFXLEVBQUUsOENBQThDO2dCQUMzRCxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLE9BQU8sRUFBRTt3QkFDTCxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtxQkFDbkY7aUJBQ0o7YUFDSjtZQUNEO2dCQUNJLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJO2dCQUM3QyxXQUFXLEVBQUUsMERBQTBEO2dCQUN2RSxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLE9BQU8sRUFBRTt3QkFDTCxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7cUJBQ2pGO2lCQUNKO2FBQ0o7WUFDRDtnQkFDSSxLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNoRCxXQUFXLEVBQUUsa0VBQWtFO2dCQUMvRSxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLE9BQU8sRUFBRTt3QkFDTCxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRTtxQkFDcEY7aUJBQ0o7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0NBQUE7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFBTZWFyY2hDb21tYW5kUHJvdmlkZXIsIEFYUFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgU2VhcmNoIFByb3ZpZGVyICAgLS0tLVxuXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRTZWFyY2hDb21tYW5kUHJvdmlkZXIgZXh0ZW5kcyBBWFBTZWFyY2hDb21tYW5kUHJvdmlkZXIge1xuICAgIGNvbW1hbmRzOiBBWFBTZWFyY2hSZXN1bHRbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZ3JvdXA6ICdlbnRpdHknLFxuICAgICAgICAgICAgdGl0bGU6ICdOZXcgUXVlc3Rpb25uYWlyZScsXG4gICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLnF1ZXN0aW9ubmFpcmUuaWNvbixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ3JlYXRlIGEgbmV3IGFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZSwgc3VydmV5LCBjaGVja2xpc3QsIG9yIHRlc3QuJyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY3JlYXRlLWVudGl0eScsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5xdWVzdGlvbm5haXJlLm5hbWV9YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgZ3JvdXA6ICdlbnRpdHknLFxuICAgICAgICAgICAgdGl0bGU6ICdOZXcgUXVlc3Rpb24nLFxuICAgICAgICAgICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy5xdWVzdGlvbkJhbmtJdGVtLmljb24sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBxdWVzdGlvbiBmb3IgdGhlIHF1ZXN0aW9uIGJhbmsuJyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY3JlYXRlLWVudGl0eScsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5xdWVzdGlvbkJhbmtJdGVtLm5hbWV9YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgZ3JvdXA6ICdlbnRpdHknLFxuICAgICAgICAgICAgdGl0bGU6ICdOZXcgQXNzZXNzbWVudCBDYXNlJyxcbiAgICAgICAgICAgIGljb246IFJvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudENhc2UuaWNvbixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQXNzaWduIGEgcXVlc3Rpb25uYWlyZSB0byBhIHRhcmdldCBlbnRpdHkgZm9yIGEgcHVycG9zZS4nLFxuICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjcmVhdGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLmFzc2Vzc21lbnRDYXNlLm5hbWV9YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgZ3JvdXA6ICdlbnRpdHknLFxuICAgICAgICAgICAgdGl0bGU6ICdOZXcgQXNzZXNzbWVudCBTZXNzaW9uJyxcbiAgICAgICAgICAgIGljb246IFJvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudFNlc3Npb24uaWNvbixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ3JlYXRlIGEgbmV3IGFzc2Vzc21lbnQgc2Vzc2lvbiBmb3IgZmlsbGluZyBvdXQgYSBxdWVzdGlvbm5haXJlLicsXG4gICAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5OiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudFNlc3Npb24ubmFtZX1gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF07XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","//#region ---- Imports ----\nimport { RootConfig } from './const';\n//#endregion\n//#region ---- Manifest Definition ----\n/**\n * Assessment Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const AssessmentManagementManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: false,\n // Module dependencies (optional)\n};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvbWFuaWZlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFckMsWUFBWTtBQUVaLDJDQUEyQztBQUUzQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0I7SUFDN0QsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTtJQUM1QixPQUFPLEVBQUUsT0FBTztJQUNoQixLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLO0lBQzlCLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7SUFDNUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTtJQUM1QixRQUFRLEVBQUUsS0FBSztJQUVmLGlDQUFpQztDQUNsQyxDQUFDO0FBRUYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhQTW9kdWxlTWFuaWZlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4vY29uc3QnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBNYW5pZmVzdCBEZWZpbml0aW9uICAgLS0tLVxuXG4vKipcbiAqIEFzc2Vzc21lbnQgTWFuYWdlbWVudCBNb2R1bGUgTWFuaWZlc3QuXG4gKiBEZWZpbmVzIG1vZHVsZSBtZXRhZGF0YSwgZmVhdHVyZXMsIGFuZCBwcm92aWRlciByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY29uc3QgQXNzZXNzbWVudE1hbmFnZW1lbnRNYW5pZmVzdDogQVhQTW9kdWxlTWFuaWZlc3QgPSB7XG4gIG5hbWU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gIHZlcnNpb246ICcxLjAuMCcsXG4gIHRpdGxlOiBSb290Q29uZmlnLm1vZHVsZS50aXRsZSxcbiAgaWNvbjogUm9vdENvbmZpZy5tb2R1bGUuaWNvbixcbiAgaTE4bjogUm9vdENvbmZpZy5jb25maWcuaTE4bixcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuXG4gIC8vIE1vZHVsZSBkZXBlbmRlbmNpZXMgKG9wdGlvbmFsKVxufTtcblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Service ----\nexport class AXMQuestionBankItemService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMQuestionBankItemServiceImpl extends AXMQuestionBankItemService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.questionBankItem.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay1pdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcXVlc3Rpb24tYmFuay1pdGVtL3F1ZXN0aW9uLWJhbmstaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLFlBQVk7QUFFWiwrQkFBK0I7QUFFL0IsTUFBTSxPQUFnQiwwQkFBMkIsU0FBUSx3QkFHeEQ7Q0FBSTtBQUdMLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUFDMUU7UUFDSSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQzsrR0FIUSw4QkFBOEI7bUhBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFF1ZXN0aW9uQmFua0l0ZW1FbnRpdHlNb2RlbCB9IGZyb20gJy4vcXVlc3Rpb24tYmFuay1pdGVtLnR5cGVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgU2VydmljZSAgIC0tLS1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlIGV4dGVuZHMgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsPFxuICAgIHN0cmluZyxcbiAgICBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFF1ZXN0aW9uQmFua0l0ZW1FbnRpdHlNb2RlbFxuPiB7IH1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlSW1wbCBleHRlbmRzIEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnF1ZXN0aW9uQmFua0l0ZW0ubmFtZX1gKTtcbiAgICB9XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","//#region ---- Imports ----\nimport { NgModule } from '@angular/core';\nimport { AXMQuestionBankItemServiceImpl, AXMQuestionBankItemService } from './question-bank-item.service';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Module ----\nexport class AXMQuestionBankItemEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemEntityModule, providers: [\n {\n provide: AXMQuestionBankItemService,\n useClass: AXMQuestionBankItemServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionBankItemEntityModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n {\n provide: AXMQuestionBankItemService,\n useClass: AXMQuestionBankItemServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay1pdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9xdWVzdGlvbi1iYW5rLWl0ZW0vcXVlc3Rpb24tYmFuay1pdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFMUcsWUFBWTtBQUVaLDhCQUE4QjtBQVU5QixNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7Z0hBQS9CLCtCQUErQjtnSEFBL0IsK0JBQStCLGFBUDdCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDBCQUEwQjtnQkFDbkMsUUFBUSxFQUFFLDhCQUE4QjthQUMzQztTQUNKOzs0RkFFUSwrQkFBK0I7a0JBUjNDLFFBQVE7bUJBQUM7b0JBQ04sU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSwwQkFBMEI7NEJBQ25DLFFBQVEsRUFBRSw4QkFBOEI7eUJBQzNDO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25CYW5rSXRlbVNlcnZpY2VJbXBsLCBBWE1RdWVzdGlvbkJhbmtJdGVtU2VydmljZSB9IGZyb20gJy4vcXVlc3Rpb24tYmFuay1pdGVtLnNlcnZpY2UnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBNb2R1bGUgICAtLS0tXG5cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlSW1wbCxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbkJhbmtJdGVtRW50aXR5TW9kdWxlIHsgfVxuXG4vLyNlbmRyZWdpb25cblxuIl19","//#region ---- Imports ----\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Service ----\nexport class AXMQuestionnaireService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMQuestionnaireServiceImpl extends AXMQuestionnaireService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb25uYWlyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLFlBQVk7QUFFWiwrQkFBK0I7QUFFL0IsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSx3QkFHckQ7Q0FBSTtBQUdMLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFDcEU7UUFDSSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBSFEsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3QnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRRdWVzdGlvbm5haXJlRW50aXR5TW9kZWwgfSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUudHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlICAgLS0tLVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gICAgc3RyaW5nLFxuICAgIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50UXVlc3Rpb25uYWlyZUVudGl0eU1vZGVsXG4+IHsgfVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2VJbXBsIGV4dGVuZHMgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucXVlc3Rpb25uYWlyZS5uYW1lfWApO1xuICAgIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/layout/widgets';\nexport const AXMQuestionnaireBuilderWidget = {\n name: 'questionnaire-builder-editor',\n title: '@assessment-management:questionnaires.components.questionnaire-builder.title',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n description: '@assessment-management:questionnaires.components.questionnaire-builder.description',\n icon: 'fa-light fa-clipboard-list',\n defaultFilterWidgetName: 'string-filter',\n type: 'editor',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./questionnaire-builder-view.component').then((c) => c.AXMQuestionnaireBuilderWidgetViewComponent),\n },\n edit: {\n component: () => import('./questionnaire-builder-edit.component').then((c) => c.AXMQuestionnaireBuilderWidgetEditComponent),\n },\n print: {\n component: () => import('./questionnaire-builder-edit.component').then((c) => c.AXMQuestionnaireBuilderWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS1idWlsZGVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9xdWVzdGlvbm5haXJlLWJ1aWxkZXIvcXVlc3Rpb25uYWlyZS1idWlsZGVyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkgsT0FBTyxFQUFFLHNCQUFzQixFQUE2QyxpQkFBaUIsRUFBeUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5SixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBNkQ7SUFDbkcsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQyxLQUFLLEVBQUUsOEVBQThFO0lBQ3JGLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDO0lBQzFDLFdBQVcsRUFBRSxvRkFBb0Y7SUFDakcsSUFBSSxFQUFFLDRCQUE0QjtJQUNsQyx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLEtBQUs7S0FDbkI7SUFDRCxVQUFVLEVBQUU7UUFDUixpQkFBaUI7UUFDakIsc0JBQXNCO0tBQ3pCO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBDQUEwQyxDQUFDO1NBQzlIO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBDQUEwQyxDQUFDO1NBQzlIO1FBQ0QsS0FBSyxFQUFFO1lBQ0gsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBDQUEwQyxDQUFDO1NBQzlIO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQX1dJREdFVFNfRURJVE9SX0NBVEVHT1JZLCBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9ESVNBQkxFRF9QUk9QRVJUWSwgQVhQX0xBQkVMX1BST1BFUlRZLCBBWFBfTkFNRV9QUk9QRVJUWSwgQVhQX1JFQURPTkxZX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWE1RdWVzdGlvbm5haXJlQnVpbGRlcldpZGdldDogQVhQV2lkZ2V0Q29uZmlnPEFYTVF1ZXN0aW9ubmFpcmVCdWlsZGVyV2lkZ2V0Q29uZmlnVHlwZT4gPSB7XG4gICAgbmFtZTogJ3F1ZXN0aW9ubmFpcmUtYnVpbGRlci1lZGl0b3InLFxuICAgIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtYnVpbGRlci50aXRsZScsXG4gICAgY2F0ZWdvcmllczogQVhQX1dJREdFVFNfRURJVE9SX0NBVEVHT1JZLFxuICAgIGdyb3VwczogW0FYUFdpZGdldEdyb3VwRW51bS5VdGlsaXR5V2lkZ2V0XSxcbiAgICBkZXNjcmlwdGlvbjogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb25uYWlyZXMuY29tcG9uZW50cy5xdWVzdGlvbm5haXJlLWJ1aWxkZXIuZGVzY3JpcHRpb24nLFxuICAgIGljb246ICdmYS1saWdodCBmYS1jbGlwYm9hcmQtbGlzdCcsXG4gICAgZGVmYXVsdEZpbHRlcldpZGdldE5hbWU6ICdzdHJpbmctZmlsdGVyJyxcbiAgICB0eXBlOiAnZWRpdG9yJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIG5lZWRMYWJlbDogZmFsc2UsXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIEFYUF9OQU1FX1BST1BFUlRZLFxuICAgICAgICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICAgIF0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9xdWVzdGlvbm5haXJlLWJ1aWxkZXItdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYTVF1ZXN0aW9ubmFpcmVCdWlsZGVyV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhNUXVlc3Rpb25uYWlyZUJ1aWxkZXJXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpbnQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhNUXVlc3Rpb25uYWlyZUJ1aWxkZXJXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICB9LFxufTtcblxuZXhwb3J0IHR5cGUgQVhNUXVlc3Rpb25uYWlyZUJ1aWxkZXJXaWRnZXRDb25maWdUeXBlID0ge1xuICAgIHR5cGU6ICdlZGl0b3InO1xufTtcblxuIl19","import { NgModule } from '@angular/core';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXMQuestionnaireBuilderWidget } from './questionnaire-builder.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nexport class AXMQuestionnaireBuilderFeatureModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireBuilderFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireBuilderFeatureModule, imports: [i1.AXPWidgetCoreModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireBuilderFeatureModule, imports: [AXPWidgetCoreModule.forChild({\n widgets: [AXMQuestionnaireBuilderWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireBuilderFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPWidgetCoreModule.forChild({\n widgets: [AXMQuestionnaireBuilderWidget],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS1idWlsZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9xdWVzdGlvbm5haXJlLWJ1aWxkZXIvcXVlc3Rpb25uYWlyZS1idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFZL0UsTUFBTSxPQUFPLG9DQUFvQzsrR0FBcEMsb0NBQW9DO2dIQUFwQyxvQ0FBb0M7Z0hBQXBDLG9DQUFvQyxZQVJ6QyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQzNDLENBQUM7OzRGQU1HLG9DQUFvQztrQkFWaEQsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsbUJBQW1CLENBQUMsUUFBUSxDQUFDOzRCQUN6QixPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzt5QkFDM0MsQ0FBQztxQkFDTDtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWE1RdWVzdGlvbm5haXJlQnVpbGRlcldpZGdldCB9IGZyb20gJy4vcXVlc3Rpb25uYWlyZS1idWlsZGVyLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLmZvckNoaWxkKHtcbiAgICAgICAgICAgIHdpZGdldHM6IFtBWE1RdWVzdGlvbm5haXJlQnVpbGRlcldpZGdldF0sXG4gICAgICAgIH0pLFxuICAgIF0sXG4gICAgZXhwb3J0czogW10sXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlQnVpbGRlckZlYXR1cmVNb2R1bGUgeyB9XG5cbiJdfQ==","//#region ---- Imports ----\nimport { NgModule } from '@angular/core';\nimport { AXMQuestionnaireServiceImpl, AXMQuestionnaireService } from './questionnaire.service';\nimport { AXMQuestionnaireBuilderFeatureModule } from '../../features/questionnaire-builder/questionnaire-builder.module';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Module ----\nexport class AXMQuestionnaireEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireEntityModule, imports: [AXMQuestionnaireBuilderFeatureModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireEntityModule, providers: [\n {\n provide: AXMQuestionnaireService,\n useClass: AXMQuestionnaireServiceImpl,\n },\n ], imports: [AXMQuestionnaireBuilderFeatureModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXMQuestionnaireBuilderFeatureModule],\n providers: [\n {\n provide: AXMQuestionnaireService,\n useClass: AXMQuestionnaireServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQzs7QUFFekgsWUFBWTtBQUVaLDhCQUE4QjtBQVk5QixNQUFNLE9BQU8sNEJBQTRCOytHQUE1Qiw0QkFBNEI7Z0hBQTVCLDRCQUE0QixZQVQzQixvQ0FBb0M7Z0hBU3JDLDRCQUE0QixhQVIxQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7YUFDeEM7U0FFSixZQVBTLG9DQUFvQzs7NEZBU3JDLDRCQUE0QjtrQkFWeEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztvQkFDL0MsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7eUJBQ3hDO3FCQUVKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2VJbXBsLCBBWE1RdWVzdGlvbm5haXJlU2VydmljZSB9IGZyb20gJy4vcXVlc3Rpb25uYWlyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVCdWlsZGVyRmVhdHVyZU1vZHVsZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci9xdWVzdGlvbm5haXJlLWJ1aWxkZXIubW9kdWxlJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgTW9kdWxlICAgLS0tLVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtBWE1RdWVzdGlvbm5haXJlQnVpbGRlckZlYXR1cmVNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWE1RdWVzdGlvbm5haXJlU2VydmljZSxcbiAgICAgICAgICAgIHVzZUNsYXNzOiBBWE1RdWVzdGlvbm5haXJlU2VydmljZUltcGwsXG4gICAgICAgIH0sXG5cbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlRW50aXR5TW9kdWxlIHsgfVxuXG4vLyNlbmRyZWdpb25cblxuIl19","//#region ---- Imports ----\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Service ----\nexport class AXMAssessmentCaseService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMAssessmentCaseServiceImpl extends AXMAssessmentCaseService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1jYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvYXNzZXNzbWVudC1jYXNlL2Fzc2Vzc21lbnQtY2FzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLFlBQVk7QUFFWiwrQkFBK0I7QUFFL0IsTUFBTSxPQUFnQix3QkFBeUIsU0FBUSx3QkFHdEQ7Q0FBSTtBQUdMLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFDeEU7UUFDRSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBSFUsNEJBQTRCO21IQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3QnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRBc3Nlc3NtZW50Q2FzZUVudGl0eU1vZGVsIH0gZnJvbSAnLi9hc3Nlc3NtZW50LWNhc2UudHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlICAgLS0tLVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNQXNzZXNzbWVudENhc2VTZXJ2aWNlIGV4dGVuZHMgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsPFxuICBzdHJpbmcsXG4gIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50QXNzZXNzbWVudENhc2VFbnRpdHlNb2RlbFxuPiB7IH1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTUFzc2Vzc21lbnRDYXNlU2VydmljZUltcGwgZXh0ZW5kcyBBWE1Bc3Nlc3NtZW50Q2FzZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudENhc2UubmFtZX1gKTtcbiAgfVxufVxuXG4vLyNlbmRyZWdpb25cblxuXG4iXX0=","//#region ---- Imports ----\nimport { NgModule } from '@angular/core';\nimport { AXMAssessmentCaseService, AXMAssessmentCaseServiceImpl } from './assessment-case.service';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Module ----\nexport class AXMAssessmentCaseEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseEntityModule, providers: [\n {\n provide: AXMAssessmentCaseService,\n useClass: AXMAssessmentCaseServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentCaseEntityModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n {\n provide: AXMAssessmentCaseService,\n useClass: AXMAssessmentCaseServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1jYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9hc3Nlc3NtZW50LWNhc2UvYXNzZXNzbWVudC1jYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkcsWUFBWTtBQUVaLDhCQUE4QjtBQVU5QixNQUFNLE9BQU8sNkJBQTZCOytHQUE3Qiw2QkFBNkI7Z0hBQTdCLDZCQUE2QjtnSEFBN0IsNkJBQTZCLGFBUDdCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsUUFBUSxFQUFFLDRCQUE0QjthQUN2QztTQUNGOzs0RkFFVSw2QkFBNkI7a0JBUnpDLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFFBQVEsRUFBRSw0QkFBNEI7eUJBQ3ZDO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudENhc2VTZXJ2aWNlLCBBWE1Bc3Nlc3NtZW50Q2FzZVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9hc3Nlc3NtZW50LWNhc2Uuc2VydmljZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1vZHVsZSAgIC0tLS1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhNQXNzZXNzbWVudENhc2VTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEFYTUFzc2Vzc21lbnRDYXNlU2VydmljZUltcGwsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudENhc2VFbnRpdHlNb2R1bGUgeyB9XG5cbi8vI2VuZHJlZ2lvblxuXG5cbiJdfQ==","//#region ---- Imports ----\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Service ----\nexport class AXMAssessmentSessionService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMAssessmentSessionServiceImpl extends AXMAssessmentSessionService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1zZXNzaW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvYXNzZXNzbWVudC1zZXNzaW9uL2Fzc2Vzc21lbnQtc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLFlBQVk7QUFFWiwrQkFBK0I7QUFFL0IsTUFBTSxPQUFnQiwyQkFBNEIsU0FBUSx3QkFHekQ7Q0FBSTtBQUdMLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSwyQkFBMkI7SUFDOUU7UUFDRSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQzsrR0FIVSwrQkFBK0I7bUhBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudEFzc2Vzc21lbnRTZXNzaW9uRW50aXR5TW9kZWwgfSBmcm9tICcuL2Fzc2Vzc21lbnQtc2Vzc2lvbi50eXBlcyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFNlcnZpY2UgICAtLS0tXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1Bc3Nlc3NtZW50U2Vzc2lvblNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIHN0cmluZyxcbiAgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRBc3Nlc3NtZW50U2Vzc2lvbkVudGl0eU1vZGVsXG4+IHsgfVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudFNlc3Npb25TZXJ2aWNlSW1wbCBleHRlbmRzIEFYTUFzc2Vzc21lbnRTZXNzaW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5hc3Nlc3NtZW50U2Vzc2lvbi5uYW1lfWApO1xuICB9XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","//#region ---- Imports ----\nimport { NgModule } from '@angular/core';\nimport { AXMAssessmentSessionService, AXMAssessmentSessionServiceImpl } from './assessment-session.service';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Module ----\nexport class AXMAssessmentSessionEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionEntityModule, providers: [\n {\n provide: AXMAssessmentSessionService,\n useClass: AXMAssessmentSessionServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentSessionEntityModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n {\n provide: AXMAssessmentSessionService,\n useClass: AXMAssessmentSessionServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1zZXNzaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9hc3Nlc3NtZW50LXNlc3Npb24vYXNzZXNzbWVudC1zZXNzaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFNUcsWUFBWTtBQUVaLDhCQUE4QjtBQVU5QixNQUFNLE9BQU8sZ0NBQWdDOytHQUFoQyxnQ0FBZ0M7Z0hBQWhDLGdDQUFnQztnSEFBaEMsZ0NBQWdDLGFBUGhDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsUUFBUSxFQUFFLCtCQUErQjthQUMxQztTQUNGOzs0RkFFVSxnQ0FBZ0M7a0JBUjVDLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSwrQkFBK0I7eUJBQzFDO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudFNlc3Npb25TZXJ2aWNlLCBBWE1Bc3Nlc3NtZW50U2Vzc2lvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9hc3Nlc3NtZW50LXNlc3Npb24uc2VydmljZSc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1vZHVsZSAgIC0tLS1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhNQXNzZXNzbWVudFNlc3Npb25TZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEFYTUFzc2Vzc21lbnRTZXNzaW9uU2VydmljZUltcGwsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQXNzZXNzbWVudFNlc3Npb25FbnRpdHlNb2R1bGUgeyB9XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { AXP_WIDGETS_ADVANCE_CATEGORY, AXPWidgetGroupEnum, createBooleanProperty, createSelectProperty, createStringProperty } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY, AXP_READONLY_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP } from '@acorex/platform/layout/widgets';\nexport const AXMQuestionnaireViewerWidget = {\n name: 'questionnaire-viewer',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.title',\n categories: AXP_WIDGETS_ADVANCE_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n description: '@assessment-management:questionnaires.components.questionnaire-viewer.description',\n icon: 'fa-light fa-clipboard-question',\n defaultFilterWidgetName: 'string-filter',\n type: 'view',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n createStringProperty({\n name: 'questionnaireId',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.questionnaire-id.title',\n path: 'options.questionnaireId',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n }),\n createSelectProperty({\n name: 'viewMode',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.title',\n path: 'options.viewMode',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: 'single-page',\n dataSource: [\n { id: 'single-page', title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.single-page' },\n { id: 'page-per-group', title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.page-per-group' },\n { id: 'page-per-question', title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.page-per-question' },\n { id: 'side-menu', title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.view-mode.options.side-menu' },\n ],\n }),\n createBooleanProperty({\n name: 'showTimer',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-timer.title',\n path: 'options.showTimer',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: false,\n }),\n createBooleanProperty({\n name: 'showProgressBar',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-progress-bar.title',\n path: 'options.showProgressBar',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: true,\n }),\n createBooleanProperty({\n name: 'showSectionTitles',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-section-titles.title',\n path: 'options.showSectionTitles',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: true,\n }),\n createBooleanProperty({\n name: 'showQuestionNumbers',\n title: '@assessment-management:questionnaires.components.questionnaire-viewer.fields.show-question-numbers.title',\n path: 'options.showQuestionNumbers',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n defaultValue: true,\n }),\n AXP_READONLY_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./questionnaire-viewer-edit.component').then((c) => c.AXMQuestionnaireViewerWidgetEditComponent),\n },\n edit: {\n component: () => import('./questionnaire-viewer-edit.component').then((c) => c.AXMQuestionnaireViewerWidgetEditComponent),\n },\n print: {\n component: () => import('./questionnaire-viewer-edit.component').then((c) => c.AXMQuestionnaireViewerWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQW1CLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0wsT0FBTyxFQUFFLHNCQUFzQixFQUE2QyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNMLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUE0RDtJQUNqRyxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLEtBQUssRUFBRSw2RUFBNkU7SUFDcEYsVUFBVSxFQUFFLDRCQUE0QjtJQUN4QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7SUFDMUMsV0FBVyxFQUFFLG1GQUFtRjtJQUNoRyxJQUFJLEVBQUUsZ0NBQWdDO0lBQ3RDLHVCQUF1QixFQUFFLGVBQWU7SUFDeEMsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUU7UUFDTCxTQUFTLEVBQUUsS0FBSztLQUNuQjtJQUNELFVBQVUsRUFBRTtRQUNSLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsb0JBQW9CLENBQUM7WUFDakIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixLQUFLLEVBQUUscUdBQXFHO1lBQzVHLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsS0FBSyxFQUFFLDJCQUEyQjtTQUNyQyxDQUFDO1FBQ0Ysb0JBQW9CLENBQUM7WUFDakIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLDhGQUE4RjtZQUNyRyxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLEtBQUssRUFBRSwyQkFBMkI7WUFDbEMsWUFBWSxFQUFFLGFBQWE7WUFDM0IsVUFBVSxFQUFFO2dCQUNSLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsNEdBQTRHLEVBQUU7Z0JBQzFJLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSwrR0FBK0csRUFBRTtnQkFDaEosRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLGtIQUFrSCxFQUFFO2dCQUN0SixFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLDBHQUEwRyxFQUFFO2FBQ3pJO1NBQ0osQ0FBQztRQUNGLHFCQUFxQixDQUFDO1lBQ2xCLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSwrRkFBK0Y7WUFDdEcsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLFlBQVksRUFBRSxLQUFLO1NBQ3RCLENBQUM7UUFDRixxQkFBcUIsQ0FBQztZQUNsQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEtBQUssRUFBRSxzR0FBc0c7WUFDN0csSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLFlBQVksRUFBRSxJQUFJO1NBQ3JCLENBQUM7UUFDRixxQkFBcUIsQ0FBQztZQUNsQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLEtBQUssRUFBRSx3R0FBd0c7WUFDL0csSUFBSSxFQUFFLDJCQUEyQjtZQUNqQyxLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLFlBQVksRUFBRSxJQUFJO1NBQ3JCLENBQUM7UUFDRixxQkFBcUIsQ0FBQztZQUNsQixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLEtBQUssRUFBRSwwR0FBMEc7WUFDakgsSUFBSSxFQUFFLDZCQUE2QjtZQUNuQyxLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLFlBQVksRUFBRSxJQUFJO1NBQ3JCLENBQUM7UUFDRixxQkFBcUI7S0FDeEI7SUFDRCxVQUFVLEVBQUU7UUFDUixJQUFJLEVBQUU7WUFDRixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUM7U0FDNUg7UUFDRCxJQUFJLEVBQUU7WUFDRixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUM7U0FDNUg7UUFDRCxLQUFLLEVBQUU7WUFDSCxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUM7U0FDNUg7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBfV0lER0VUU19BRFZBTkNFX0NBVEVHT1JZLCBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSwgY3JlYXRlQm9vbGVhblByb3BlcnR5LCBjcmVhdGVTZWxlY3RQcm9wZXJ0eSwgY3JlYXRlU3RyaW5nUHJvcGVydHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBfREFUQV9QQVRIX1BST1BFUlRZLCBBWFBfRElTQUJMRURfUFJPUEVSVFksIEFYUF9MQUJFTF9QUk9QRVJUWSwgQVhQX05BTUVfUFJPUEVSVFksIEFYUF9SRUFET05MWV9QUk9QRVJUWSwgQVhQX0JFSEFWSU9SX1BST1BFUlRZX0dST1VQIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWE1RdWVzdGlvbm5haXJlVmlld2VyV2lkZ2V0OiBBWFBXaWRnZXRDb25maWc8QVhNUXVlc3Rpb25uYWlyZVZpZXdlcldpZGdldENvbmZpZ1R5cGU+ID0ge1xuICAgIG5hbWU6ICdxdWVzdGlvbm5haXJlLXZpZXdlcicsXG4gICAgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIudGl0bGUnLFxuICAgIGNhdGVnb3JpZXM6IEFYUF9XSURHRVRTX0FEVkFOQ0VfQ0FURUdPUlksXG4gICAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLlV0aWxpdHlXaWRnZXRdLFxuICAgIGRlc2NyaXB0aW9uOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLmRlc2NyaXB0aW9uJyxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2xpcGJvYXJkLXF1ZXN0aW9uJyxcbiAgICBkZWZhdWx0RmlsdGVyV2lkZ2V0TmFtZTogJ3N0cmluZy1maWx0ZXInLFxuICAgIHR5cGU6ICd2aWV3JyxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIG5lZWRMYWJlbDogZmFsc2UsXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgIEFYUF9OQU1FX1BST1BFUlRZLFxuICAgICAgICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICAgICAgICBjcmVhdGVTdHJpbmdQcm9wZXJ0eSh7XG4gICAgICAgICAgICBuYW1lOiAncXVlc3Rpb25uYWlyZUlkJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLmZpZWxkcy5xdWVzdGlvbm5haXJlLWlkLnRpdGxlJyxcbiAgICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnF1ZXN0aW9ubmFpcmVJZCcsXG4gICAgICAgICAgICBncm91cDogQVhQX0JFSEFWSU9SX1BST1BFUlRZX0dST1VQLFxuICAgICAgICB9KSxcbiAgICAgICAgY3JlYXRlU2VsZWN0UHJvcGVydHkoe1xuICAgICAgICAgICAgbmFtZTogJ3ZpZXdNb2RlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLmZpZWxkcy52aWV3LW1vZGUudGl0bGUnLFxuICAgICAgICAgICAgcGF0aDogJ29wdGlvbnMudmlld01vZGUnLFxuICAgICAgICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogJ3NpbmdsZS1wYWdlJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgICB7IGlkOiAnc2luZ2xlLXBhZ2UnLCB0aXRsZTogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb25uYWlyZXMuY29tcG9uZW50cy5xdWVzdGlvbm5haXJlLXZpZXdlci5maWVsZHMudmlldy1tb2RlLm9wdGlvbnMuc2luZ2xlLXBhZ2UnIH0sXG4gICAgICAgICAgICAgICAgeyBpZDogJ3BhZ2UtcGVyLWdyb3VwJywgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIuZmllbGRzLnZpZXctbW9kZS5vcHRpb25zLnBhZ2UtcGVyLWdyb3VwJyB9LFxuICAgICAgICAgICAgICAgIHsgaWQ6ICdwYWdlLXBlci1xdWVzdGlvbicsIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLmZpZWxkcy52aWV3LW1vZGUub3B0aW9ucy5wYWdlLXBlci1xdWVzdGlvbicgfSxcbiAgICAgICAgICAgICAgICB7IGlkOiAnc2lkZS1tZW51JywgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIuZmllbGRzLnZpZXctbW9kZS5vcHRpb25zLnNpZGUtbWVudScgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgICBjcmVhdGVCb29sZWFuUHJvcGVydHkoe1xuICAgICAgICAgICAgbmFtZTogJ3Nob3dUaW1lcicsXG4gICAgICAgICAgICB0aXRsZTogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb25uYWlyZXMuY29tcG9uZW50cy5xdWVzdGlvbm5haXJlLXZpZXdlci5maWVsZHMuc2hvdy10aW1lci50aXRsZScsXG4gICAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93VGltZXInLFxuICAgICAgICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgICBjcmVhdGVCb29sZWFuUHJvcGVydHkoe1xuICAgICAgICAgICAgbmFtZTogJ3Nob3dQcm9ncmVzc0JhcicsXG4gICAgICAgICAgICB0aXRsZTogJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb25uYWlyZXMuY29tcG9uZW50cy5xdWVzdGlvbm5haXJlLXZpZXdlci5maWVsZHMuc2hvdy1wcm9ncmVzcy1iYXIudGl0bGUnLFxuICAgICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1Byb2dyZXNzQmFyJyxcbiAgICAgICAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBjcmVhdGVCb29sZWFuUHJvcGVydHkoe1xuICAgICAgICAgICAgbmFtZTogJ3Nob3dTZWN0aW9uVGl0bGVzJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLmZpZWxkcy5zaG93LXNlY3Rpb24tdGl0bGVzLnRpdGxlJyxcbiAgICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dTZWN0aW9uVGl0bGVzJyxcbiAgICAgICAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBjcmVhdGVCb29sZWFuUHJvcGVydHkoe1xuICAgICAgICAgICAgbmFtZTogJ3Nob3dRdWVzdGlvbk51bWJlcnMnLFxuICAgICAgICAgICAgdGl0bGU6ICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIuZmllbGRzLnNob3ctcXVlc3Rpb24tbnVtYmVycy50aXRsZScsXG4gICAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93UXVlc3Rpb25OdW1iZXJzJyxcbiAgICAgICAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgICBBWFBfUkVBRE9OTFlfUFJPUEVSVFksXG4gICAgXSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLWVkaXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWE1RdWVzdGlvbm5haXJlVmlld2VyV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLWVkaXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWE1RdWVzdGlvbm5haXJlVmlld2VyV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHByaW50OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9xdWVzdGlvbm5haXJlLXZpZXdlci1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhNUXVlc3Rpb25uYWlyZVZpZXdlcldpZGdldEVkaXRDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIH0sXG59O1xuXG5leHBvcnQgdHlwZSBBWE1RdWVzdGlvbm5haXJlVmlld2VyV2lkZ2V0Q29uZmlnVHlwZSA9IHtcbiAgICB0eXBlOiAndmlldyc7XG4gICAgcXVlc3Rpb25uYWlyZUlkPzogc3RyaW5nO1xuICAgIHZpZXdNb2RlPzogJ3NpbmdsZS1wYWdlJyB8ICdwYWdlLXBlci1ncm91cCcgfCAncGFnZS1wZXItcXVlc3Rpb24nIHwgJ3NpZGUtbWVudSc7XG4gICAgc2hvd1RpbWVyPzogYm9vbGVhbjtcbiAgICBzaG93UHJvZ3Jlc3NCYXI/OiBib29sZWFuO1xuICAgIHNob3dTZWN0aW9uVGl0bGVzPzogYm9vbGVhbjtcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzPzogYm9vbGVhbjtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG59O1xuXG4iXX0=","//#region ---- Imports ----\nimport { AXP_WIDGETS_ADVANCE_CATEGORY, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';\n//#endregion\n//#region ---- Widget Config ----\nexport const AXMAnswersViewerWidget = {\n name: 'answers-viewer',\n title: 'Answers Viewer',\n description: 'Shows answer status badge and button to view answers',\n icon: 'fa-light fa-file-lines',\n categories: AXP_WIDGETS_ADVANCE_CATEGORY,\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'editor',\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n ],\n components: {\n designer: {\n component: () => import('./answers-viewer-widget-edit.component').then((c) => c.AXMAnswersViewerWidgetEditComponent),\n },\n view: {\n component: () => import('./answers-viewer-widget-view.component').then((c) => c.AXMAnswersViewerWidgetViewComponent),\n },\n edit: {\n component: () => import('./answers-viewer-widget-edit.component').then((c) => c.AXMAnswersViewerWidgetEditComponent),\n },\n column: {\n component: () => import('./answers-viewer-widget-column.component').then((c) => c.AXMAnswersViewerWidgetColumnComponent),\n },\n },\n};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy12aWV3ZXItd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9xdWVzdGlvbm5haXJlLXZpZXdlci93aWRnZXRzL2Fuc3dlcnMtdmlld2VyLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBbUIsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuSCxZQUFZO0FBRVoscUNBQXFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNuRCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsV0FBVyxFQUFFLHNEQUFzRDtJQUNuRSxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLFVBQVUsRUFBRSw0QkFBNEI7SUFDeEMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQ3pDLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1IsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixxQkFBcUI7S0FDeEI7SUFDRCxVQUFVLEVBQUU7UUFDUixRQUFRLEVBQUU7WUFDTixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDdkg7UUFDRCxJQUFJLEVBQUU7WUFDRixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDdkg7UUFDRCxJQUFJLEVBQUU7WUFDRixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDdkg7UUFDRCxNQUFNLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUNBQXFDLENBQUM7U0FDM0g7S0FDSjtDQUNKLENBQUM7QUFFRixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFBfV0lER0VUU19BRFZBTkNFX0NBVEVHT1JZLCBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZLCBBWFBfRElTQUJMRURfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgV2lkZ2V0IENvbmZpZyAgIC0tLS1cblxuZXhwb3J0IGNvbnN0IEFYTUFuc3dlcnNWaWV3ZXJXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgICBuYW1lOiAnYW5zd2Vycy12aWV3ZXInLFxuICAgIHRpdGxlOiAnQW5zd2VycyBWaWV3ZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnU2hvd3MgYW5zd2VyIHN0YXR1cyBiYWRnZSBhbmQgYnV0dG9uIHRvIHZpZXcgYW5zd2VycycsXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZpbGUtbGluZXMnLFxuICAgIGNhdGVnb3JpZXM6IEFYUF9XSURHRVRTX0FEVkFOQ0VfQ0FURUdPUlksXG4gICAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkVudGl0eVdpZGdldF0sXG4gICAgdHlwZTogJ2VkaXRvcicsXG4gICAgcHJvcGVydGllczogW1xuICAgICAgICBBWFBfTkFNRV9QUk9QRVJUWSxcbiAgICAgICAgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSxcbiAgICAgICAgQVhQX0RJU0FCTEVEX1BST1BFUlRZLFxuICAgIF0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBkZXNpZ25lcjoge1xuICAgICAgICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vYW5zd2Vycy12aWV3ZXItd2lkZ2V0LWVkaXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWE1BbnN3ZXJzVmlld2VyV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2Fuc3dlcnMtdmlld2VyLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhNQW5zd2Vyc1ZpZXdlcldpZGdldFZpZXdDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9hbnN3ZXJzLXZpZXdlci13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYTUFuc3dlcnNWaWV3ZXJXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAgY29sdW1uOiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9hbnN3ZXJzLXZpZXdlci13aWRnZXQtY29sdW1uLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhNQW5zd2Vyc1ZpZXdlcldpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","//#region ---- Imports ----\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { get } from 'lodash-es';\nimport { AXMQuestionBankItemService } from '../../entities/question-bank-item/question-bank-item.service';\nimport { AXMQuestionnaireService } from '../../entities/questionnaire/questionnaire.service';\n//#endregion\n//#region ---- ViewModel ----\nexport const AXMQuestionnaireViewerViewModel = signalStore(withState(() => ({\n // Data\n questionnaireData: null,\n structure: null,\n config: null,\n // State\n isLoading: true,\n error: null,\n // Navigation\n currentSectionIndex: 0,\n currentQuestionIndex: 0,\n // Timer\n timerElapsed: 0, // seconds\n timerInterval: null,\n // References\n form: null,\n widgetContainer: null,\n // Validation errors\n validationErrors: [],\n})), withComputed((store) => ({\n //#region ---- View Mode ----\n viewMode: computed(() => {\n const config = store.config();\n const configMode = config?.viewMode;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n return configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n }),\n //#endregion\n //#region ---- Sections & Questions ----\n sections: computed(() => {\n const data = store.questionnaireData();\n return data?.sections || [];\n }),\n currentSection: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return null;\n const sections = data.sections;\n const index = store.currentSectionIndex();\n return sections[index] || null;\n }),\n currentQuestion: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return null;\n const sections = data.sections;\n const index = store.currentSectionIndex();\n const section = sections[index];\n if (!section)\n return null;\n const questionIndex = store.currentQuestionIndex();\n return section.questions[questionIndex] || null;\n }),\n totalQuestionsCount: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return 0;\n return data.sections.reduce((sum, section) => sum + section.questions.length, 0);\n }),\n totalSectionsCount: computed(() => {\n const data = store.questionnaireData();\n return data?.sections.length || 0;\n }),\n //#endregion\n //#region ---- Progress ----\n progressMode: computed(() => {\n const config = store.config();\n const configValue = config?.progressMode;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.progressMode;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : 'answered');\n }),\n answeredQuestionsCount: computed(() => {\n const data = store.questionnaireData();\n const container = store.widgetContainer();\n if (!data || !container?.contextService) {\n return 0;\n }\n try {\n const contextService = container.contextService;\n const changeEvent = contextService.changeEvent();\n const contextData = contextService.data() || {};\n let answeredCount = 0;\n for (const section of data.sections) {\n for (const question of section.questions) {\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n if (!isEmpty) {\n answeredCount++;\n }\n }\n }\n return answeredCount;\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error counting answered questions:', error);\n return 0;\n }\n }),\n progressPercentage: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return 0;\n const totalQuestions = data.sections.reduce((sum, section) => sum + section.questions.length, 0);\n if (totalQuestions === 0)\n return 0;\n // Calculate progress mode\n const config = store.config();\n const structure = store.structure();\n const configValue = config?.progressMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.progressMode;\n const progressMode = configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : 'answered');\n // Calculate view mode\n const configMode = config?.viewMode;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n if (progressMode === 'answered') {\n // Calculate answered count directly\n const container = store.widgetContainer();\n if (!container?.contextService)\n return 0;\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n let answeredCount = 0;\n for (const section of data.sections) {\n for (const question of section.questions) {\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n if (!isEmpty) {\n answeredCount++;\n }\n }\n }\n return Math.round((answeredCount / totalQuestions) * 100);\n }\n catch (error) {\n return 0;\n }\n }\n if (progressMode === 'navigation') {\n if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const totalSections = data.sections.length;\n const currentSection = store.currentSectionIndex();\n return Math.round(((currentSection + 1) / totalSections) * 100);\n }\n if (viewMode === 'page-per-question') {\n let currentQuestionIndex = 0;\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n for (let i = 0; i < currentSIndex; i++) {\n currentQuestionIndex += data.sections[i].questions.length;\n }\n currentQuestionIndex += currentQIndex + 1;\n return Math.round((currentQuestionIndex / totalQuestions) * 100);\n }\n return 0;\n }\n return 0;\n }),\n //#endregion\n //#region ---- Display Settings ----\n showProgressBar: computed(() => {\n const config = store.config();\n const configValue = config?.showProgressBar;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.showProgressBar;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : true);\n }),\n showTimer: computed(() => {\n const config = store.config();\n const configValue = config?.timer?.showTimer;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.showTimer;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : false);\n }),\n timerTimeLimit: computed(() => {\n const config = store.config();\n return config?.timer?.timeLimit;\n }),\n showSectionTitles: computed(() => {\n const config = store.config();\n const configValue = config?.showSectionTitles;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.showSectionTitles;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : true);\n }),\n showQuestionNumbers: computed(() => {\n const config = store.config();\n const configValue = config?.showQuestionNumbers;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.showQuestionNumbers;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : true);\n }),\n showQuestionCounter: computed(() => {\n const config = store.config();\n const configValue = config?.showQuestionCounter;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.showQuestionCounter;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : false);\n }),\n currentQuestionPosition: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return { current: 0, total: 0 };\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const total = data.sections.reduce((sum, section) => sum + section.questions.length, 0);\n if (viewMode === 'page-per-question') {\n let current = 0;\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n for (let i = 0; i < currentSIndex; i++) {\n current += data.sections[i].questions.length;\n }\n current += currentQIndex + 1;\n return { current, total };\n }\n return { current: 0, total };\n }),\n timerText: computed(() => {\n const config = store.config();\n const timeLimit = config?.timer?.timeLimit;\n if (!timeLimit)\n return '';\n const elapsed = store.timerElapsed();\n const remaining = Math.max(0, timeLimit - elapsed);\n const hours = Math.floor(remaining / 3600);\n const minutes = Math.floor((remaining % 3600) / 60);\n const seconds = remaining % 60;\n if (hours > 0) {\n return `${hours}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\n }\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n }),\n timerWidget: computed(() => {\n const config = store.config();\n const timeLimit = config?.timer?.timeLimit;\n if (!timeLimit)\n return null;\n const widgetNode = {\n type: 'stopwatch',\n name: 'questionnaire-timer',\n path: 'timer.elapsed',\n options: {\n mode: 'count-down',\n timeLimit: timeLimit,\n format: timeLimit >= 3600 ? 'hh:mm:ss' : 'mm:ss',\n autoStart: true,\n showControls: false,\n },\n mode: 'edit',\n };\n return widgetNode;\n }),\n validateBeforeNavigation: computed(() => {\n const config = store.config();\n const configValue = config?.validateBeforeNavigation;\n const structure = store.structure();\n const displaySettings = structure?.displaySettings;\n const displaySettingsValue = displaySettings?.validateBeforeNavigation;\n return configValue !== undefined\n ? configValue\n : (displaySettingsValue !== undefined ? displaySettingsValue : true);\n }),\n //#endregion\n //#region ---- Navigation ----\n canNavigateNext: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return false;\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const sections = data.sections;\n if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const currentSIndex = store.currentSectionIndex();\n return currentSIndex < sections.length - 1;\n }\n else if (viewMode === 'page-per-question') {\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n const currentSection = sections[currentSIndex];\n if (!currentSection)\n return false;\n return (currentQIndex < currentSection.questions.length - 1 ||\n currentSIndex < sections.length - 1);\n }\n return false;\n }),\n canNavigatePrevious: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return false;\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const currentSIndex = store.currentSectionIndex();\n return currentSIndex > 0;\n }\n else if (viewMode === 'page-per-question') {\n const currentQIndex = store.currentQuestionIndex();\n const currentSIndex = store.currentSectionIndex();\n return currentQIndex > 0 || currentSIndex > 0;\n }\n return false;\n }),\n /**\n * Check if we're on the last step\n */\n isLastStep: computed(() => {\n const data = store.questionnaireData();\n if (!data)\n return false;\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const sections = data.sections;\n if (viewMode === 'single-page') {\n // For single-page, we're always on the last step\n return true;\n }\n else if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const currentSIndex = store.currentSectionIndex();\n return currentSIndex >= sections.length - 1;\n }\n else if (viewMode === 'page-per-question') {\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n const currentSection = sections[currentSIndex];\n if (!currentSection)\n return false;\n // Check if we're on the last question of the last section\n return (currentSIndex === sections.length - 1 &&\n currentQIndex === currentSection.questions.length - 1);\n }\n return false;\n }),\n /**\n * Check if all required questions are answered\n */\n areAllRequiredQuestionsAnswered: computed(() => {\n const data = store.questionnaireData();\n const container = store.widgetContainer();\n if (!data || !container?.contextService)\n return false;\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n for (const section of data.sections) {\n for (const question of section.questions) {\n // Only check required questions\n if (!question.isRequired)\n continue;\n // Check visibility condition (if question is not visible, skip)\n // TODO: Implement visibility condition evaluation\n // For now, check all required questions\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n if (isEmpty) {\n return false;\n }\n }\n }\n return true;\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error checking required questions:', error);\n return false;\n }\n }),\n //#endregion\n})), withMethods((store, questionnaireService = inject(AXMQuestionnaireService), questionBankService = inject(AXMQuestionBankItemService), toastService = inject(AXToastService), translationService = inject(AXTranslationService)) => ({\n //#region ---- Registration ----\n registerForm(form) {\n patchState(store, { form });\n },\n registerWidgetContainer(container) {\n patchState(store, { widgetContainer: container });\n },\n //#endregion\n //#region ---- Data Loading ----\n async loadQuestionnaire(id, initialAnswers, config) {\n patchState(store, { isLoading: true, error: null, config: config || null });\n try {\n const questionnaire = await questionnaireService.getOne(id);\n if (!questionnaire) {\n throw new Error('Questionnaire not found');\n }\n const structure = questionnaire.structure || { sections: [] };\n const sectionsWithQuestions = await Promise.all(structure.sections.map(async (section, sectionIndex) => {\n const questions = await Promise.all(section.items.map(async (item, itemIndex) => {\n const questionDetails = await questionBankService\n .getOne(item.questionBankItemId)\n .catch(() => null);\n const indexBasedPath = `answers.${sectionIndex}-${itemIndex}`;\n let widgetInterface = questionDetails?.interface;\n if (widgetInterface) {\n const path = item.id ? `answers.${item.id}` : indexBasedPath;\n const name = item.id || `answer-${sectionIndex}-${itemIndex}`;\n // Get existing validations from options or directly from interface\n const existingOptions = widgetInterface.options || {};\n const existingValidations = existingOptions.validations || widgetInterface.validations || [];\n const validations = [...existingValidations];\n if (item.isRequired) {\n const hasRequiredValidation = validations.some(v => v.rule === 'required');\n if (!hasRequiredValidation) {\n validations.push({\n rule: 'required',\n message: 'This field is required.',\n });\n }\n }\n // Apply readonly mode from config\n const isReadonly = config?.readonly ?? false;\n widgetInterface = {\n ...widgetInterface,\n path: path,\n name: name,\n options: {\n ...existingOptions,\n readonly: isReadonly || existingOptions.readonly,\n validations: validations.length > 0 ? validations : undefined,\n },\n };\n }\n return {\n id: item.id,\n questionBankItemId: item.questionBankItemId,\n sectionId: section.id,\n order: item.order,\n isRequired: item.isRequired,\n visibilityCondition: item.visibilityCondition,\n requiredCondition: item.requiredCondition,\n scoringOverride: item.scoringOverride,\n question: questionDetails\n ? {\n id: questionDetails.id,\n title: questionDetails.title,\n description: questionDetails.description,\n difficulty: questionDetails.difficulty,\n scoringType: questionDetails.scoringType,\n interface: widgetInterface || questionDetails.interface,\n }\n : {\n id: item.questionBankItemId,\n title: 'Question',\n description: undefined,\n difficulty: undefined,\n interface: undefined,\n },\n };\n }));\n return {\n id: section.id,\n title: section.title,\n description: section.description,\n order: section.order,\n visibilityCondition: section.visibilityCondition,\n questions: questions.sort((a, b) => a.order - b.order),\n };\n }));\n patchState(store, {\n questionnaireData: {\n id: questionnaire.id,\n title: questionnaire.title,\n description: questionnaire.description,\n type: questionnaire.type,\n sections: sectionsWithQuestions.sort((a, b) => a.order - b.order),\n scoringType: questionnaire.scoringType,\n passingScore: questionnaire.passingScore,\n },\n isLoading: false,\n });\n // Set initial answers in widget container context if provided\n if (initialAnswers && Object.keys(initialAnswers).length > 0) {\n const container = store.widgetContainer();\n if (container?.contextService) {\n const currentData = container.contextService.data() || {};\n const existingAnswers = currentData.answers || {};\n const mergedData = { ...currentData, answers: { ...existingAnswers, ...initialAnswers } };\n container.contextService.set(mergedData);\n }\n }\n }\n catch (err) {\n patchState(store, {\n error: err.message || 'Failed to load questionnaire',\n isLoading: false,\n });\n }\n },\n async loadStructure(structure, config, initialAnswers) {\n patchState(store, { isLoading: true, error: null, structure, config: config || null });\n try {\n if (!structure.sections || structure.sections.length === 0) {\n patchState(store, {\n questionnaireData: {\n id: 'preview',\n title: 'Preview',\n description: undefined,\n type: 'questionnaire',\n sections: [],\n },\n isLoading: false,\n });\n return;\n }\n const sectionsWithQuestions = await Promise.all(structure.sections.map(async (section, sectionIndex) => {\n const questions = await Promise.all((section.items || []).map(async (item, itemIndex) => {\n const questionDetails = await questionBankService\n .getOne(item.questionBankItemId)\n .catch(() => null);\n const indexBasedPath = `answers.${sectionIndex}-${itemIndex}`;\n let widgetInterface = item.interfaceOverride || questionDetails?.interface;\n if (widgetInterface) {\n const path = item.id ? `answers.${item.id}` : indexBasedPath;\n const name = item.id || `answer-${sectionIndex}-${itemIndex}`;\n // Get existing validations from options or directly from interface\n const existingOptions = widgetInterface.options || {};\n const existingValidations = existingOptions.validations || widgetInterface.validations || [];\n const validations = [...existingValidations];\n if (item.isRequired) {\n const hasRequiredValidation = validations.some(v => v.rule === 'required');\n if (!hasRequiredValidation) {\n validations.push({\n rule: 'required',\n options: {\n message: 'This field is required.',\n },\n });\n }\n }\n // Apply readonly mode from config\n const isReadonly = config?.readonly ?? false;\n widgetInterface = {\n ...widgetInterface,\n path: path,\n name: name,\n options: {\n ...existingOptions,\n readonly: isReadonly || existingOptions.readonly,\n validations: validations.length > 0 ? validations : undefined,\n },\n };\n }\n const questionData = questionDetails\n ? {\n id: questionDetails.id,\n title: questionDetails.title,\n description: questionDetails.description,\n difficulty: questionDetails.difficulty,\n scoringType: questionDetails.scoringType,\n interface: widgetInterface,\n }\n : {\n id: item.questionBankItemId,\n title: 'Question',\n description: undefined,\n difficulty: undefined,\n scoringType: undefined,\n interface: widgetInterface,\n };\n return {\n id: item.id,\n questionBankItemId: item.questionBankItemId,\n sectionId: section.id,\n order: item.order,\n isRequired: item.isRequired,\n visibilityCondition: item.visibilityCondition,\n requiredCondition: item.requiredCondition,\n scoringOverride: item.scoringOverride,\n question: questionData,\n };\n }));\n return {\n id: section.id,\n title: section.title,\n description: section.description,\n order: section.order,\n visibilityCondition: section.visibilityCondition,\n questions: questions.sort((a, b) => a.order - b.order),\n };\n }));\n patchState(store, {\n questionnaireData: {\n id: 'preview',\n title: 'Preview',\n description: undefined,\n type: 'questionnaire',\n sections: sectionsWithQuestions.sort((a, b) => a.order - b.order),\n },\n isLoading: false,\n });\n // Set initial answers in widget container context if provided\n if (initialAnswers && Object.keys(initialAnswers).length > 0) {\n const container = store.widgetContainer();\n if (container?.contextService) {\n const currentData = container.contextService.data() || {};\n const existingAnswers = currentData.answers || {};\n const mergedData = { ...currentData, answers: { ...existingAnswers, ...initialAnswers } };\n container.contextService.set(mergedData);\n }\n }\n }\n catch (err) {\n console.error('[QuestionnaireViewer] Error loading structure:', err);\n patchState(store, {\n error: err.message || 'Failed to load structure',\n isLoading: false,\n });\n }\n },\n //#endregion\n //#region ---- Validation ----\n /**\n * Check if a question is visible based on visibility condition\n */\n isQuestionVisible(question) {\n // TODO: Implement visibility condition evaluation\n // For now, return true (all questions are visible)\n return true;\n },\n /**\n * Get visible questions for current page based on view mode\n */\n getVisibleQuestions() {\n const data = store.questionnaireData();\n if (!data)\n return [];\n // Calculate view mode from config/structure\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const sections = data.sections;\n const visibleQuestions = [];\n if (viewMode === 'single-page') {\n // All questions in all sections\n for (const section of sections) {\n for (const question of section.questions) {\n if (this.isQuestionVisible(question)) {\n visibleQuestions.push(question);\n }\n }\n }\n }\n else if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n // Questions in current section\n const currentSIndex = store.currentSectionIndex();\n const currentSection = sections[currentSIndex];\n if (currentSection) {\n for (const question of currentSection.questions) {\n if (this.isQuestionVisible(question)) {\n visibleQuestions.push(question);\n }\n }\n }\n }\n else if (viewMode === 'page-per-question') {\n // Current question only\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n const currentSection = sections[currentSIndex];\n if (currentSection) {\n const currentQuestion = currentSection.questions[currentQIndex];\n if (currentQuestion && this.isQuestionVisible(currentQuestion)) {\n visibleQuestions.push(currentQuestion);\n }\n }\n }\n return visibleQuestions;\n },\n /**\n * Validate a single question\n */\n async validateQuestion(question) {\n const container = store.widgetContainer();\n if (!container?.contextService) {\n return 'Widget container not available';\n }\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n const widgetPath = question.question.interface?.path;\n if (!widgetPath) {\n return null; // No widget path, skip validation\n }\n const value = get(contextData, widgetPath);\n // Check required validation\n if (question.isRequired) {\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n if (isEmpty) {\n return 'This field is required.';\n }\n }\n // TODO: Add other validation rules from widget interface\n // For now, only required validation is implemented\n return null;\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error validating question:', error);\n return 'Validation error occurred';\n }\n },\n /**\n * Validate all visible questions on current page\n */\n async validateCurrentPage() {\n const form = store.form();\n if (!form) {\n console.warn('[QuestionnaireViewer] Form not available for validation');\n return { isValid: true, errors: [] };\n }\n // Get visible questions\n const visibleQuestions = this.getVisibleQuestions();\n // Get sections for lookup\n const data = store.questionnaireData();\n if (!data) {\n return { isValid: true, errors: [] };\n }\n const sections = data.sections;\n // Validate form first to trigger validation (this ensures form state is updated)\n await form.validate();\n // Manually validate each visible question\n // The form validation doesn't provide paths in the rules, so we validate manually\n const errors = [];\n const container = store.widgetContainer();\n if (container?.contextService) {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n for (const question of visibleQuestions) {\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n // Check required validation\n if (question.isRequired) {\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && value !== null && Object.keys(value).length === 0);\n if (isEmpty) {\n const section = sections.find(s => s.id === question.sectionId);\n const questionTitle = question.question.title || 'This field';\n const errorMessage = await translationService.translateAsync('@acorex:validation.messages.required') || `${questionTitle} is required`;\n // Replace {{ title }} placeholder if present, otherwise use the message as-is\n const finalErrorMessage = errorMessage.includes('{{ title }}')\n ? errorMessage.replace('{{ title }}', questionTitle)\n : errorMessage;\n errors.push({\n questionId: question.id,\n questionTitle: question.question.title,\n sectionId: section?.id,\n sectionTitle: section?.title,\n error: finalErrorMessage,\n });\n }\n }\n // TODO: Add other validation rules from widget interface\n }\n }\n patchState(store, { validationErrors: errors });\n if (errors.length > 0) {\n 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.`;\n toastService.show({\n color: 'danger',\n title: await translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.validation.error-title') || 'Validation Error',\n content: errorMessage,\n location: 'bottom-center',\n closeButton: true,\n timeOut: 5000,\n timeOutProgress: true,\n });\n }\n return {\n isValid: errors.length === 0,\n errors,\n };\n },\n /**\n * Validate all questions in entire questionnaire\n */\n async validateAllQuestions() {\n const form = store.form();\n if (!form) {\n return { isValid: true, errors: [] };\n }\n const data = store.questionnaireData();\n if (!data) {\n return { isValid: true, errors: [] };\n }\n // Validate form first to trigger validation (this ensures form state is updated)\n await form.validate();\n // Manually validate all visible questions\n // The form validation doesn't provide paths in the rules, so we validate manually\n const errors = [];\n const container = store.widgetContainer();\n if (container?.contextService) {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n for (const section of data.sections) {\n for (const question of section.questions) {\n // Only include visible questions\n if (!this.isQuestionVisible(question)) {\n continue;\n }\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n // Check required validation\n if (question.isRequired) {\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && value !== null && Object.keys(value).length === 0);\n if (isEmpty) {\n const questionTitle = question.question.title || 'This field';\n const errorMessage = await translationService.translateAsync('@acorex:validation.messages.required') || `${questionTitle} is required`;\n // Replace {{ title }} placeholder if present, otherwise use the message as-is\n const finalErrorMessage = errorMessage.includes('{{ title }}')\n ? errorMessage.replace('{{ title }}', questionTitle)\n : errorMessage;\n errors.push({\n questionId: question.id,\n questionTitle: question.question.title,\n sectionId: section.id,\n sectionTitle: section.title,\n error: finalErrorMessage,\n });\n }\n }\n // TODO: Add other validation rules from widget interface\n }\n }\n }\n patchState(store, { validationErrors: errors });\n if (errors.length > 0) {\n 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.`;\n toastService.show({\n color: 'danger',\n title: await translationService.translateAsync('@assessment-management:questionnaires.components.questionnaire-viewer.validation.error-title') || 'Validation Error',\n content: errorMessage,\n location: 'bottom-center',\n closeButton: true,\n timeOut: 5000,\n timeOutProgress: true,\n });\n }\n return {\n isValid: errors.length === 0,\n errors,\n };\n },\n //#endregion\n //#region ---- Navigation ----\n async navigateNext() {\n const validationResult = await this.validateCurrentPage();\n if (!validationResult.isValid) {\n return false;\n }\n const data = store.questionnaireData();\n if (!data)\n return false;\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const sections = data.sections;\n if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const currentSIndex = store.currentSectionIndex();\n if (currentSIndex < sections.length - 1) {\n patchState(store, {\n currentSectionIndex: currentSIndex + 1,\n currentQuestionIndex: 0,\n });\n return true;\n }\n }\n else if (viewMode === 'page-per-question') {\n const currentSIndex = store.currentSectionIndex();\n const currentQIndex = store.currentQuestionIndex();\n const currentSection = sections[currentSIndex];\n if (!currentSection)\n return false;\n if (currentQIndex < currentSection.questions.length - 1) {\n patchState(store, { currentQuestionIndex: currentQIndex + 1 });\n return true;\n }\n else if (currentSIndex < sections.length - 1) {\n patchState(store, {\n currentSectionIndex: currentSIndex + 1,\n currentQuestionIndex: 0,\n });\n return true;\n }\n }\n return false;\n },\n async navigatePrevious() {\n const data = store.questionnaireData();\n if (!data)\n return false;\n // Calculate view mode\n const config = store.config();\n const structure = store.structure();\n const configMode = config?.viewMode;\n const displaySettings = structure?.displaySettings;\n const displaySettingsViewMode = displaySettings?.viewMode;\n const viewMode = configMode !== undefined\n ? configMode\n : (displaySettingsViewMode !== undefined ? displaySettingsViewMode : 'single-page');\n const sections = data.sections;\n if (viewMode === 'page-per-group' || viewMode === 'side-menu') {\n const currentSIndex = store.currentSectionIndex();\n if (currentSIndex > 0) {\n patchState(store, {\n currentSectionIndex: currentSIndex - 1,\n currentQuestionIndex: 0,\n });\n return true;\n }\n }\n else if (viewMode === 'page-per-question') {\n const currentQIndex = store.currentQuestionIndex();\n const currentSIndex = store.currentSectionIndex();\n if (currentQIndex > 0) {\n patchState(store, { currentQuestionIndex: currentQIndex - 1 });\n return true;\n }\n else if (currentSIndex > 0) {\n const prevSection = sections[currentSIndex - 1];\n patchState(store, {\n currentSectionIndex: currentSIndex - 1,\n currentQuestionIndex: prevSection.questions.length - 1,\n });\n return true;\n }\n }\n return false;\n },\n /**\n * Check if current section is valid (without showing toast)\n */\n async isCurrentSectionValid() {\n const form = store.form();\n if (!form) {\n return true;\n }\n // Get visible questions\n const visibleQuestions = this.getVisibleQuestions();\n // Get sections for lookup\n const data = store.questionnaireData();\n if (!data) {\n return true;\n }\n const sections = data.sections;\n // Validate form first to trigger validation\n await form.validate();\n // Manually validate each visible question\n const container = store.widgetContainer();\n if (container?.contextService) {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n for (const question of visibleQuestions) {\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n // Check required validation\n if (question.isRequired) {\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && value !== null && Object.keys(value).length === 0);\n if (isEmpty) {\n return false;\n }\n }\n }\n }\n return true;\n },\n /**\n * Check if a section can be navigated to\n */\n async isSectionNavigable(sectionIndex) {\n const data = store.questionnaireData();\n if (!data)\n return false;\n const sections = data.sections;\n if (sectionIndex < 0 || sectionIndex >= sections.length) {\n return false;\n }\n // If navigating to current section, always allowed\n if (sectionIndex === store.currentSectionIndex()) {\n return true;\n }\n // If validation before navigation is disabled, always allowed\n const validateBeforeNav = store.validateBeforeNavigation();\n if (!validateBeforeNav) {\n return true;\n }\n // Check if current section is valid\n return await this.isCurrentSectionValid();\n },\n async navigateToSection(index) {\n const data = store.questionnaireData();\n if (!data)\n return false;\n const sections = data.sections;\n if (index < 0 || index >= sections.length) {\n return false;\n }\n // Check if navigation is allowed\n const canNavigate = await this.isSectionNavigable(index);\n if (!canNavigate) {\n // Validate and show toast if validation is enabled\n const validateBeforeNav = store.validateBeforeNavigation();\n if (validateBeforeNav) {\n await this.validateCurrentPage();\n }\n return false;\n }\n patchState(store, {\n currentSectionIndex: index,\n currentQuestionIndex: 0,\n });\n return true;\n },\n async navigateToQuestion(sectionIndex, questionIndex) {\n const data = store.questionnaireData();\n if (!data)\n return false;\n const sections = data.sections;\n if (sectionIndex < 0 || sectionIndex >= sections.length) {\n return false;\n }\n const section = sections[sectionIndex];\n if (questionIndex < 0 || questionIndex >= section.questions.length) {\n return false;\n }\n // Validate current page before navigating\n const validationResult = await this.validateCurrentPage();\n if (!validationResult.isValid) {\n return false;\n }\n patchState(store, {\n currentSectionIndex: sectionIndex,\n currentQuestionIndex: questionIndex,\n });\n return true;\n },\n //#endregion\n //#region ---- Answers ----\n getAllAnswers() {\n const container = store.widgetContainer();\n if (!container?.contextService)\n return {};\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n // Extract answers from context data - answers are stored under 'answers' property\n return contextData.answers || {};\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error getting all answers:', error);\n return {};\n }\n },\n getQuestionsWithAnswers() {\n const data = store.questionnaireData();\n const container = store.widgetContainer();\n if (!data || !container?.contextService)\n return [];\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n const questionsWithAnswers = [];\n for (const section of data.sections) {\n for (const question of section.questions) {\n const widgetPath = question.question.interface?.path;\n const answer = widgetPath ? get(contextData, widgetPath) : undefined;\n questionsWithAnswers.push({\n questionId: question.id,\n questionBankItemId: question.questionBankItemId,\n sectionId: section.id,\n title: question.question.title,\n description: question.question.description,\n answer: answer,\n isRequired: question.isRequired,\n });\n }\n }\n return questionsWithAnswers;\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error getting questions with answers:', error);\n return [];\n }\n },\n /**\n * Get count of unanswered required questions in a section\n * Used for badge display in side-menu view\n */\n getSectionUnansweredRequiredCount(sectionId) {\n const data = store.questionnaireData();\n const container = store.widgetContainer();\n if (!data || !container?.contextService)\n return 0;\n try {\n const contextService = container.contextService;\n const contextData = contextService.data() || {};\n let unansweredCount = 0;\n const section = data.sections.find(s => s.id === sectionId);\n if (!section)\n return 0;\n for (const question of section.questions) {\n // Only count required questions\n if (!question.isRequired)\n continue;\n // Check visibility condition (if question is not visible, skip)\n // TODO: Implement visibility condition evaluation\n // For now, check all required questions\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n continue;\n const value = get(contextData, widgetPath);\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n if (isEmpty) {\n unansweredCount++;\n }\n }\n return unansweredCount;\n }\n catch (error) {\n console.error('[QuestionnaireViewer] Error counting unanswered required questions:', error);\n return 0;\n }\n },\n async submit() {\n const validationResult = await this.validateAllQuestions();\n if (!validationResult.isValid) {\n return {\n success: false,\n answers: this.getAllAnswers(),\n errors: validationResult.errors,\n };\n }\n return {\n success: true,\n answers: this.getAllAnswers(),\n };\n },\n //#endregion\n //#region ---- Timer ----\n startTimer() {\n this.stopTimer();\n patchState(store, { timerElapsed: 0 });\n const interval = setInterval(() => {\n const config = store.config();\n const timeLimit = config?.timer?.timeLimit;\n const elapsed = store.timerElapsed();\n if (timeLimit && elapsed >= timeLimit) {\n this.stopTimer();\n // TODO: Handle time limit reached\n }\n else {\n patchState(store, { timerElapsed: elapsed + 1 });\n }\n }, 1000);\n patchState(store, { timerInterval: interval });\n },\n stopTimer() {\n const interval = store.timerInterval();\n if (interval) {\n clearInterval(interval);\n patchState(store, { timerInterval: null });\n }\n },\n updateTimerElapsed(value) {\n patchState(store, { timerElapsed: value });\n },\n //#endregion\n})));\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXIudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLnZpZXdtb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUEwQjdGLFlBQVk7QUFFWixpQ0FBaUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUN0RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNiLE9BQU87SUFDUCxpQkFBaUIsRUFBRSxJQUFzQztJQUN6RCxTQUFTLEVBQUUsSUFBd0M7SUFDbkQsTUFBTSxFQUFFLElBQXdDO0lBRWhELFFBQVE7SUFDUixTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUFBRSxJQUFxQjtJQUU1QixhQUFhO0lBQ2IsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixvQkFBb0IsRUFBRSxDQUFDO0lBRXZCLFFBQVE7SUFD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LEVBQUUsQ0FBQztnQkFDakIsa0NBQWtDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFVCxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QixVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzVCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWTtDQUNmLENBQUMsQ0FDTCxDQUNKLENBQUM7QUFFRixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwYXRjaFN0YXRlLCBzaWduYWxTdG9yZSwgd2l0aENvbXB1dGVkLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25CYW5rSXRlbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9xdWVzdGlvbi1iYW5rLWl0ZW0vcXVlc3Rpb24tYmFuay1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9ubmFpcmUuc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlQnVpbGRlclZhbHVlIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS1idWlsZGVyL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci50eXBlcyc7XG5pbXBvcnQge1xuICAgIFF1ZXN0aW9ubmFpcmVWaWV3ZXJDb25maWcsXG4gICAgUXVlc3Rpb25uYWlyZVZpZXdlckRhdGEsXG4gICAgUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uLFxuICAgIFF1ZXN0aW9ubmFpcmVWaWV3ZXJTZWN0aW9uLFxufSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLnR5cGVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVmFsaWRhdGlvbiBFcnJvciBUeXBlcyAgIC0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbm5haXJlVmFsaWRhdGlvbkVycm9yIHtcbiAgICBxdWVzdGlvbklkOiBzdHJpbmc7XG4gICAgcXVlc3Rpb25UaXRsZTogc3RyaW5nO1xuICAgIHNlY3Rpb25JZD86IHN0cmluZztcbiAgICBzZWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gICAgZXJyb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbm5haXJlVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgaXNWYWxpZDogYm9vbGVhbjtcbiAgICBlcnJvcnM6IFF1ZXN0aW9ubmFpcmVWYWxpZGF0aW9uRXJyb3JbXTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVmlld01vZGVsICAgLS0tLVxuXG5leHBvcnQgY29uc3QgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclZpZXdNb2RlbCA9IHNpZ25hbFN0b3JlKFxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICAvLyBEYXRhXG4gICAgICAgIHF1ZXN0aW9ubmFpcmVEYXRhOiBudWxsIGFzIFF1ZXN0aW9ubmFpcmVWaWV3ZXJEYXRhIHwgbnVsbCxcbiAgICAgICAgc3RydWN0dXJlOiBudWxsIGFzIFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWUgfCBudWxsLFxuICAgICAgICBjb25maWc6IG51bGwgYXMgUXVlc3Rpb25uYWlyZVZpZXdlckNvbmZpZyB8IG51bGwsXG5cbiAgICAgICAgLy8gU3RhdGVcbiAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICBlcnJvcjogbnVsbCBhcyBzdHJpbmcgfCBudWxsLFxuXG4gICAgICAgIC8vIE5hdmlnYXRpb25cbiAgICAgICAgY3VycmVudFNlY3Rpb25JbmRleDogMCxcbiAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXg6IDAsXG5cbiAgICAgICAgLy8gVGltZXJcbiAgICAgICAgdGltZXJFbGFwc2VkOiAwLCAvLyBzZWNvbmRzXG4gICAgICAgIHRpbWVySW50ZXJ2YWw6IG51bGwgYXMgYW55LFxuXG4gICAgICAgIC8vIFJlZmVyZW5jZXNcbiAgICAgICAgZm9ybTogbnVsbCBhcyBhbnksXG4gICAgICAgIHdpZGdldENvbnRhaW5lcjogbnVsbCBhcyBBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQgfCBudWxsLFxuXG4gICAgICAgIC8vIFZhbGlkYXRpb24gZXJyb3JzXG4gICAgICAgIHZhbGlkYXRpb25FcnJvcnM6IFtdIGFzIFF1ZXN0aW9ubmFpcmVWYWxpZGF0aW9uRXJyb3JbXSxcbiAgICB9KSksXG5cbiAgICB3aXRoQ29tcHV0ZWQoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyNyZWdpb24gLS0tLSAgIFZpZXcgTW9kZSAgIC0tLS1cblxuICAgICAgICB2aWV3TW9kZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc3RvcmUuY29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCBjb25maWdNb2RlID0gY29uZmlnPy52aWV3TW9kZTtcbiAgICAgICAgICAgIGNvbnN0IHN0cnVjdHVyZSA9IHN0b3JlLnN0cnVjdHVyZSgpO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG5cbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlID0gZGlzcGxheVNldHRpbmdzPy52aWV3TW9kZTtcbiAgICAgICAgICAgIHJldHVybiBjb25maWdNb2RlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ01vZGVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmlld01vZGUgOiAnc2luZ2xlLXBhZ2UnKTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgLy8jZW5kcmVnaW9uXG5cbiAgICAgICAgLy8jcmVnaW9uIC0tLS0gICBTZWN0aW9ucyAmIFF1ZXN0aW9ucyAgIC0tLS1cblxuICAgICAgICBzZWN0aW9uczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YT8uc2VjdGlvbnMgfHwgW107XG4gICAgICAgIH0pLFxuXG4gICAgICAgIGN1cnJlbnRTZWN0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRhdGEuc2VjdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgIHJldHVybiBzZWN0aW9uc1tpbmRleF0gfHwgbnVsbDtcbiAgICAgICAgfSksXG5cbiAgICAgICAgY3VycmVudFF1ZXN0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRhdGEuc2VjdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9uc1tpbmRleF07XG4gICAgICAgICAgICBpZiAoIXNlY3Rpb24pIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25JbmRleCA9IHN0b3JlLmN1cnJlbnRRdWVzdGlvbkluZGV4KCk7XG4gICAgICAgICAgICByZXR1cm4gc2VjdGlvbi5xdWVzdGlvbnNbcXVlc3Rpb25JbmRleF0gfHwgbnVsbDtcbiAgICAgICAgfSksXG5cbiAgICAgICAgdG90YWxRdWVzdGlvbnNDb3VudDogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHJldHVybiAwO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEuc2VjdGlvbnMucmVkdWNlKChzdW0sIHNlY3Rpb24pID0+IHN1bSArIHNlY3Rpb24ucXVlc3Rpb25zLmxlbmd0aCwgMCk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIHRvdGFsU2VjdGlvbnNDb3VudDogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YT8uc2VjdGlvbnMubGVuZ3RoIHx8IDA7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgUHJvZ3Jlc3MgICAtLS0tXG5cbiAgICAgICAgcHJvZ3Jlc3NNb2RlOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gY29uZmlnPy5wcm9ncmVzc01vZGU7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5ncyA9IHN0cnVjdHVyZT8uZGlzcGxheVNldHRpbmdzO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA9IGRpc3BsYXlTZXR0aW5ncz8ucHJvZ3Jlc3NNb2RlO1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1ZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ1ZhbHVlXG4gICAgICAgICAgICAgICAgOiAoZGlzcGxheVNldHRpbmdzVmFsdWUgIT09IHVuZGVmaW5lZCA/IGRpc3BsYXlTZXR0aW5nc1ZhbHVlIDogJ2Fuc3dlcmVkJyk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIGFuc3dlcmVkUXVlc3Rpb25zQ291bnQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc3RvcmUud2lkZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWNvbnRhaW5lcj8uY29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGNvbnRhaW5lci5jb250ZXh0U2VydmljZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudCA9IGNvbnRleHRTZXJ2aWNlLmNoYW5nZUV2ZW50KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGV4dERhdGEgPSBjb250ZXh0U2VydmljZS5kYXRhKCkgfHwge307XG5cbiAgICAgICAgICAgICAgICBsZXQgYW5zd2VyZWRDb3VudCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgZGF0YS5zZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRQYXRoID0gcXVlc3Rpb24ucXVlc3Rpb24uaW50ZXJmYWNlPy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3aWRnZXRQYXRoKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoY29udGV4dERhdGEsIHdpZGdldFBhdGgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0VtcHR5ID0gdmFsdWUgPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICcnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zd2VyZWRDb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFuc3dlcmVkQ291bnQ7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tRdWVzdGlvbm5haXJlVmlld2VyXSBFcnJvciBjb3VudGluZyBhbnN3ZXJlZCBxdWVzdGlvbnM6JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcblxuICAgICAgICBwcm9ncmVzc1BlcmNlbnRhZ2U6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgY29uc3QgdG90YWxRdWVzdGlvbnMgPSBkYXRhLnNlY3Rpb25zLnJlZHVjZSgoc3VtLCBzZWN0aW9uKSA9PiBzdW0gKyBzZWN0aW9uLnF1ZXN0aW9ucy5sZW5ndGgsIDApO1xuICAgICAgICAgICAgaWYgKHRvdGFsUXVlc3Rpb25zID09PSAwKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHByb2dyZXNzIG1vZGVcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBjb25maWdWYWx1ZSA9IGNvbmZpZz8ucHJvZ3Jlc3NNb2RlO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA9IGRpc3BsYXlTZXR0aW5ncz8ucHJvZ3Jlc3NNb2RlO1xuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NNb2RlID0gY29uZmlnVmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnVmFsdWVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWYWx1ZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmFsdWUgOiAnYW5zd2VyZWQnKTtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHZpZXcgbW9kZVxuICAgICAgICAgICAgY29uc3QgY29uZmlnTW9kZSA9IGNvbmZpZz8udmlld01vZGU7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA9IGRpc3BsYXlTZXR0aW5ncz8udmlld01vZGU7XG4gICAgICAgICAgICBjb25zdCB2aWV3TW9kZSA9IGNvbmZpZ01vZGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnTW9kZVxuICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA6ICdzaW5nbGUtcGFnZScpO1xuXG4gICAgICAgICAgICBpZiAocHJvZ3Jlc3NNb2RlID09PSAnYW5zd2VyZWQnKSB7XG4gICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGFuc3dlcmVkIGNvdW50IGRpcmVjdGx5XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc3RvcmUud2lkZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXI/LmNvbnRleHRTZXJ2aWNlKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gY29udGFpbmVyLmNvbnRleHRTZXJ2aWNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0RGF0YSA9IGNvbnRleHRTZXJ2aWNlLmRhdGEoKSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFuc3dlcmVkQ291bnQgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBkYXRhLnNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0UGF0aCA9IHF1ZXN0aW9uLnF1ZXN0aW9uLmludGVyZmFjZT8ucGF0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldFBhdGgpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoY29udGV4dERhdGEsIHdpZGdldFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXJlZENvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoKGFuc3dlcmVkQ291bnQgLyB0b3RhbFF1ZXN0aW9ucykgKiAxMDApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb2dyZXNzTW9kZSA9PT0gJ25hdmlnYXRpb24nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItZ3JvdXAnIHx8IHZpZXdNb2RlID09PSAnc2lkZS1tZW51Jykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3RhbFNlY3Rpb25zID0gZGF0YS5zZWN0aW9ucy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZWN0aW9uID0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCgoKGN1cnJlbnRTZWN0aW9uICsgMSkgLyB0b3RhbFNlY3Rpb25zKSAqIDEwMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItcXVlc3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UXVlc3Rpb25JbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTSW5kZXggPSBzdG9yZS5jdXJyZW50U2VjdGlvbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRRSW5kZXggPSBzdG9yZS5jdXJyZW50UXVlc3Rpb25JbmRleCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY3VycmVudFNJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleCArPSBkYXRhLnNlY3Rpb25zW2ldLnF1ZXN0aW9ucy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXggKz0gY3VycmVudFFJbmRleCArIDE7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoKGN1cnJlbnRRdWVzdGlvbkluZGV4IC8gdG90YWxRdWVzdGlvbnMpICogMTAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgRGlzcGxheSBTZXR0aW5ncyAgIC0tLS1cblxuICAgICAgICBzaG93UHJvZ3Jlc3NCYXI6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnVmFsdWUgPSBjb25maWc/LnNob3dQcm9ncmVzc0JhcjtcbiAgICAgICAgICAgIGNvbnN0IHN0cnVjdHVyZSA9IHN0b3JlLnN0cnVjdHVyZSgpO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG5cbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5nc1ZhbHVlID0gZGlzcGxheVNldHRpbmdzPy5zaG93UHJvZ3Jlc3NCYXI7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnVmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnVmFsdWVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWYWx1ZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmFsdWUgOiB0cnVlKTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgc2hvd1RpbWVyOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gY29uZmlnPy50aW1lcj8uc2hvd1RpbWVyO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3MgPSBzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncztcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmFsdWUgPSBkaXNwbGF5U2V0dGluZ3M/LnNob3dUaW1lcjtcbiAgICAgICAgICAgIHJldHVybiBjb25maWdWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBjb25maWdWYWx1ZVxuICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA6IGZhbHNlKTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgdGltZXJUaW1lTGltaXQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZz8udGltZXI/LnRpbWVMaW1pdDtcbiAgICAgICAgfSksXG5cbiAgICAgICAgc2hvd1NlY3Rpb25UaXRsZXM6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnVmFsdWUgPSBjb25maWc/LnNob3dTZWN0aW9uVGl0bGVzO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3MgPSBzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncztcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmFsdWUgPSBkaXNwbGF5U2V0dGluZ3M/LnNob3dTZWN0aW9uVGl0bGVzO1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1ZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ1ZhbHVlXG4gICAgICAgICAgICAgICAgOiAoZGlzcGxheVNldHRpbmdzVmFsdWUgIT09IHVuZGVmaW5lZCA/IGRpc3BsYXlTZXR0aW5nc1ZhbHVlIDogdHJ1ZSk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIHNob3dRdWVzdGlvbk51bWJlcnM6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnVmFsdWUgPSBjb25maWc/LnNob3dRdWVzdGlvbk51bWJlcnM7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5ncyA9IHN0cnVjdHVyZT8uZGlzcGxheVNldHRpbmdzO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA9IGRpc3BsYXlTZXR0aW5ncz8uc2hvd1F1ZXN0aW9uTnVtYmVycztcbiAgICAgICAgICAgIHJldHVybiBjb25maWdWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBjb25maWdWYWx1ZVxuICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZhbHVlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA6IHRydWUpO1xuICAgICAgICB9KSxcblxuICAgICAgICBzaG93UXVlc3Rpb25Db3VudGVyOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gY29uZmlnPy5zaG93UXVlc3Rpb25Db3VudGVyO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3MgPSBzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncztcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmFsdWUgPSBkaXNwbGF5U2V0dGluZ3M/LnNob3dRdWVzdGlvbkNvdW50ZXI7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnVmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnVmFsdWVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWYWx1ZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmFsdWUgOiBmYWxzZSk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIGN1cnJlbnRRdWVzdGlvblBvc2l0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgIGlmICghZGF0YSkgcmV0dXJuIHsgY3VycmVudDogMCwgdG90YWw6IDAgfTtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHZpZXcgbW9kZVxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc3RvcmUuY29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ01vZGUgPSBjb25maWc/LnZpZXdNb2RlO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA9IGRpc3BsYXlTZXR0aW5ncz8udmlld01vZGU7XG4gICAgICAgICAgICBjb25zdCB2aWV3TW9kZSA9IGNvbmZpZ01vZGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnTW9kZVxuICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA6ICdzaW5nbGUtcGFnZScpO1xuXG4gICAgICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEuc2VjdGlvbnMucmVkdWNlKChzdW0sIHNlY3Rpb24pID0+IHN1bSArIHNlY3Rpb24ucXVlc3Rpb25zLmxlbmd0aCwgMCk7XG5cbiAgICAgICAgICAgIGlmICh2aWV3TW9kZSA9PT0gJ3BhZ2UtcGVyLXF1ZXN0aW9uJykge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U0luZGV4ID0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRRSW5kZXggPSBzdG9yZS5jdXJyZW50UXVlc3Rpb25JbmRleCgpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50U0luZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCArPSBkYXRhLnNlY3Rpb25zW2ldLnF1ZXN0aW9ucy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnQgKz0gY3VycmVudFFJbmRleCArIDE7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4geyBjdXJyZW50LCB0b3RhbCB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyBjdXJyZW50OiAwLCB0b3RhbCB9O1xuICAgICAgICB9KSxcblxuICAgICAgICB0aW1lclRleHQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3QgdGltZUxpbWl0ID0gY29uZmlnPy50aW1lcj8udGltZUxpbWl0O1xuICAgICAgICAgICAgaWYgKCF0aW1lTGltaXQpIHJldHVybiAnJztcblxuICAgICAgICAgICAgY29uc3QgZWxhcHNlZCA9IHN0b3JlLnRpbWVyRWxhcHNlZCgpO1xuICAgICAgICAgICAgY29uc3QgcmVtYWluaW5nID0gTWF0aC5tYXgoMCwgdGltZUxpbWl0IC0gZWxhcHNlZCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihyZW1haW5pbmcgLyAzNjAwKTtcbiAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChyZW1haW5pbmcgJSAzNjAwKSAvIDYwKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZHMgPSByZW1haW5pbmcgJSA2MDtcblxuICAgICAgICAgICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHtob3Vyc306JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHtzZWNvbmRzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9OiR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICAgICAgfSksXG5cbiAgICAgICAgdGltZXJXaWRnZXQ6IGNvbXB1dGVkPEFYUFdpZGdldE5vZGUgfCBudWxsPigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVMaW1pdCA9IGNvbmZpZz8udGltZXI/LnRpbWVMaW1pdDtcbiAgICAgICAgICAgIGlmICghdGltZUxpbWl0KSByZXR1cm4gbnVsbDtcblxuICAgICAgICAgICAgY29uc3Qgd2lkZ2V0Tm9kZTogQVhQV2lkZ2V0Tm9kZSA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RvcHdhdGNoJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAncXVlc3Rpb25uYWlyZS10aW1lcicsXG4gICAgICAgICAgICAgICAgcGF0aDogJ3RpbWVyLmVsYXBzZWQnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2NvdW50LWRvd24nLFxuICAgICAgICAgICAgICAgICAgICB0aW1lTGltaXQ6IHRpbWVMaW1pdCxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiB0aW1lTGltaXQgPj0gMzYwMCA/ICdoaDptbTpzcycgOiAnbW06c3MnLFxuICAgICAgICAgICAgICAgICAgICBhdXRvU3RhcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHNob3dDb250cm9sczogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtb2RlOiAnZWRpdCcsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gd2lkZ2V0Tm9kZTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgdmFsaWRhdGVCZWZvcmVOYXZpZ2F0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gY29uZmlnPy52YWxpZGF0ZUJlZm9yZU5hdmlnYXRpb247XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5ncyA9IHN0cnVjdHVyZT8uZGlzcGxheVNldHRpbmdzO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWYWx1ZSA9IGRpc3BsYXlTZXR0aW5ncz8udmFsaWRhdGVCZWZvcmVOYXZpZ2F0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ1ZhbHVlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ1ZhbHVlXG4gICAgICAgICAgICAgICAgOiAoZGlzcGxheVNldHRpbmdzVmFsdWUgIT09IHVuZGVmaW5lZCA/IGRpc3BsYXlTZXR0aW5nc1ZhbHVlIDogdHJ1ZSk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgTmF2aWdhdGlvbiAgIC0tLS1cblxuICAgICAgICBjYW5OYXZpZ2F0ZU5leHQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB2aWV3IG1vZGVcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBjb25maWdNb2RlID0gY29uZmlnPy52aWV3TW9kZTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5ncyA9IHN0cnVjdHVyZT8uZGlzcGxheVNldHRpbmdzO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmlld01vZGUgPSBkaXNwbGF5U2V0dGluZ3M/LnZpZXdNb2RlO1xuICAgICAgICAgICAgY29uc3Qgdmlld01vZGUgPSBjb25maWdNb2RlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ01vZGVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmlld01vZGUgOiAnc2luZ2xlLXBhZ2UnKTtcblxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuXG4gICAgICAgICAgICBpZiAodmlld01vZGUgPT09ICdwYWdlLXBlci1ncm91cCcgfHwgdmlld01vZGUgPT09ICdzaWRlLW1lbnUnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFNJbmRleCA8IHNlY3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItcXVlc3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UUluZGV4ID0gc3RvcmUuY3VycmVudFF1ZXN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25zW2N1cnJlbnRTSW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmICghY3VycmVudFNlY3Rpb24pIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRRSW5kZXggPCBjdXJyZW50U2VjdGlvbi5xdWVzdGlvbnMubGVuZ3RoIC0gMSB8fFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U0luZGV4IDwgc2VjdGlvbnMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgY2FuTmF2aWdhdGVQcmV2aW91czogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHZpZXcgbW9kZVxuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc3RvcmUuY29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ01vZGUgPSBjb25maWc/LnZpZXdNb2RlO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA9IGRpc3BsYXlTZXR0aW5ncz8udmlld01vZGU7XG4gICAgICAgICAgICBjb25zdCB2aWV3TW9kZSA9IGNvbmZpZ01vZGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gY29uZmlnTW9kZVxuICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA6ICdzaW5nbGUtcGFnZScpO1xuXG4gICAgICAgICAgICBpZiAodmlld01vZGUgPT09ICdwYWdlLXBlci1ncm91cCcgfHwgdmlld01vZGUgPT09ICdzaWRlLW1lbnUnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFNJbmRleCA+IDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItcXVlc3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFFJbmRleCA9IHN0b3JlLmN1cnJlbnRRdWVzdGlvbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFFJbmRleCA+IDAgfHwgY3VycmVudFNJbmRleCA+IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENoZWNrIGlmIHdlJ3JlIG9uIHRoZSBsYXN0IHN0ZXBcbiAgICAgICAgICovXG4gICAgICAgIGlzTGFzdFN0ZXA6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB2aWV3IG1vZGVcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0b3JlLmNvbmZpZygpO1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICBjb25zdCBjb25maWdNb2RlID0gY29uZmlnPy52aWV3TW9kZTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlTZXR0aW5ncyA9IHN0cnVjdHVyZT8uZGlzcGxheVNldHRpbmdzO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmlld01vZGUgPSBkaXNwbGF5U2V0dGluZ3M/LnZpZXdNb2RlO1xuICAgICAgICAgICAgY29uc3Qgdmlld01vZGUgPSBjb25maWdNb2RlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGNvbmZpZ01vZGVcbiAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmlld01vZGUgOiAnc2luZ2xlLXBhZ2UnKTtcblxuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuXG4gICAgICAgICAgICBpZiAodmlld01vZGUgPT09ICdzaW5nbGUtcGFnZScpIHtcbiAgICAgICAgICAgICAgICAvLyBGb3Igc2luZ2xlLXBhZ2UsIHdlJ3JlIGFsd2F5cyBvbiB0aGUgbGFzdCBzdGVwXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItZ3JvdXAnIHx8IHZpZXdNb2RlID09PSAnc2lkZS1tZW51Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTSW5kZXggPSBzdG9yZS5jdXJyZW50U2VjdGlvbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTSW5kZXggPj0gc2VjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmlld01vZGUgPT09ICdwYWdlLXBlci1xdWVzdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U0luZGV4ID0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRRSW5kZXggPSBzdG9yZS5jdXJyZW50UXVlc3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbnNbY3VycmVudFNJbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50U2VjdGlvbikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgb24gdGhlIGxhc3QgcXVlc3Rpb24gb2YgdGhlIGxhc3Qgc2VjdGlvblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTSW5kZXggPT09IHNlY3Rpb25zLmxlbmd0aCAtIDEgJiZcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFFJbmRleCA9PT0gY3VycmVudFNlY3Rpb24ucXVlc3Rpb25zLmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDaGVjayBpZiBhbGwgcmVxdWlyZWQgcXVlc3Rpb25zIGFyZSBhbnN3ZXJlZFxuICAgICAgICAgKi9cbiAgICAgICAgYXJlQWxsUmVxdWlyZWRRdWVzdGlvbnNBbnN3ZXJlZDogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzdG9yZS53aWRnZXRDb250YWluZXIoKTtcbiAgICAgICAgICAgIGlmICghZGF0YSB8fCAhY29udGFpbmVyPy5jb250ZXh0U2VydmljZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gY29udGFpbmVyLmNvbnRleHRTZXJ2aWNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHREYXRhID0gY29udGV4dFNlcnZpY2UuZGF0YSgpIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGRhdGEuc2VjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBjaGVjayByZXF1aXJlZCBxdWVzdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcXVlc3Rpb24uaXNSZXF1aXJlZCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHZpc2liaWxpdHkgY29uZGl0aW9uIChpZiBxdWVzdGlvbiBpcyBub3QgdmlzaWJsZSwgc2tpcClcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IEltcGxlbWVudCB2aXNpYmlsaXR5IGNvbmRpdGlvbiBldmFsdWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3Igbm93LCBjaGVjayBhbGwgcmVxdWlyZWQgcXVlc3Rpb25zXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGdldFBhdGggPSBxdWVzdGlvbi5xdWVzdGlvbi5pbnRlcmZhY2U/LnBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldFBhdGgpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldChjb250ZXh0RGF0YSwgd2lkZ2V0UGF0aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUXVlc3Rpb25uYWlyZVZpZXdlcl0gRXJyb3IgY2hlY2tpbmcgcmVxdWlyZWQgcXVlc3Rpb25zOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuXG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgIH0pKSxcblxuICAgIHdpdGhNZXRob2RzKFxuICAgICAgICAoXG4gICAgICAgICAgICBzdG9yZSxcbiAgICAgICAgICAgIHF1ZXN0aW9ubmFpcmVTZXJ2aWNlID0gaW5qZWN0KEFYTVF1ZXN0aW9ubmFpcmVTZXJ2aWNlKSxcbiAgICAgICAgICAgIHF1ZXN0aW9uQmFua1NlcnZpY2UgPSBpbmplY3QoQVhNUXVlc3Rpb25CYW5rSXRlbVNlcnZpY2UpLFxuICAgICAgICAgICAgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKSxcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICAgICkgPT4gKHtcbiAgICAgICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgUmVnaXN0cmF0aW9uICAgLS0tLVxuXG4gICAgICAgICAgICByZWdpc3RlckZvcm0oZm9ybTogYW55KTogdm9pZCB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBmb3JtIH0pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVnaXN0ZXJXaWRnZXRDb250YWluZXIoY29udGFpbmVyOiBBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHdpZGdldENvbnRhaW5lcjogY29udGFpbmVyIH0pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLy8jZW5kcmVnaW9uXG5cbiAgICAgICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgRGF0YSBMb2FkaW5nICAgLS0tLVxuXG4gICAgICAgICAgICBhc3luYyBsb2FkUXVlc3Rpb25uYWlyZShpZDogc3RyaW5nLCBpbml0aWFsQW5zd2Vycz86IFJlY29yZDxzdHJpbmcsIGFueT4sIGNvbmZpZz86IFF1ZXN0aW9ubmFpcmVWaWV3ZXJDb25maWcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGlzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwsIGNvbmZpZzogY29uZmlnIHx8IG51bGwgfSk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbm5haXJlID0gYXdhaXQgcXVlc3Rpb25uYWlyZVNlcnZpY2UuZ2V0T25lKGlkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFxdWVzdGlvbm5haXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1F1ZXN0aW9ubmFpcmUgbm90IGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmU6IFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWUgPSBxdWVzdGlvbm5haXJlLnN0cnVjdHVyZSB8fCB7IHNlY3Rpb25zOiBbXSB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25zV2l0aFF1ZXN0aW9uczogUXVlc3Rpb25uYWlyZVZpZXdlclNlY3Rpb25bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLnNlY3Rpb25zLm1hcChhc3luYyAoc2VjdGlvbiwgc2VjdGlvbkluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25zOiBRdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb25bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uLml0ZW1zLm1hcChhc3luYyAoaXRlbSwgaXRlbUluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbkRldGFpbHMgPSBhd2FpdCBxdWVzdGlvbkJhbmtTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldE9uZShpdGVtLnF1ZXN0aW9uQmFua0l0ZW1JZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4gbnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4QmFzZWRQYXRoID0gYGFuc3dlcnMuJHtzZWN0aW9uSW5kZXh9LSR7aXRlbUluZGV4fWA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3aWRnZXRJbnRlcmZhY2UgPSBxdWVzdGlvbkRldGFpbHM/LmludGVyZmFjZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWRnZXRJbnRlcmZhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gaXRlbS5pZCA/IGBhbnN3ZXJzLiR7aXRlbS5pZH1gIDogaW5kZXhCYXNlZFBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGl0ZW0uaWQgfHwgYGFuc3dlci0ke3NlY3Rpb25JbmRleH0tJHtpdGVtSW5kZXh9YDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdldCBleGlzdGluZyB2YWxpZGF0aW9ucyBmcm9tIG9wdGlvbnMgb3IgZGlyZWN0bHkgZnJvbSBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ09wdGlvbnMgPSB3aWRnZXRJbnRlcmZhY2Uub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbGlkYXRpb25zID0gZXhpc3RpbmdPcHRpb25zLnZhbGlkYXRpb25zIHx8IHdpZGdldEludGVyZmFjZS52YWxpZGF0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9ucyA9IFsuLi5leGlzdGluZ1ZhbGlkYXRpb25zXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1JlcXVpcmVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLnNvbWUodiA9PiB2LnJ1bGUgPT09ICdyZXF1aXJlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1JlcXVpcmVkVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSByZWFkb25seSBtb2RlIGZyb20gY29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNSZWFkb25seSA9IGNvbmZpZz8ucmVhZG9ubHkgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXRJbnRlcmZhY2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLndpZGdldEludGVyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZXhpc3RpbmdPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk6IGlzUmVhZG9ubHkgfHwgZXhpc3RpbmdPcHRpb25zLnJlYWRvbmx5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLmxlbmd0aCA+IDAgPyB2YWxpZGF0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uQmFua0l0ZW1JZDogaXRlbS5xdWVzdGlvbkJhbmtJdGVtSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbklkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBpdGVtLm9yZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IGl0ZW0uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5Q29uZGl0aW9uOiBpdGVtLnZpc2liaWxpdHlDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRDb25kaXRpb246IGl0ZW0ucmVxdWlyZWRDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmluZ092ZXJyaWRlOiBpdGVtLnNjb3JpbmdPdmVycmlkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbjogcXVlc3Rpb25EZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHF1ZXN0aW9uRGV0YWlscy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBxdWVzdGlvbkRldGFpbHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcXVlc3Rpb25EZXRhaWxzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmljdWx0eTogcXVlc3Rpb25EZXRhaWxzLmRpZmZpY3VsdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29yaW5nVHlwZTogcXVlc3Rpb25EZXRhaWxzLnNjb3JpbmdUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlOiB3aWRnZXRJbnRlcmZhY2UgfHwgcXVlc3Rpb25EZXRhaWxzLmludGVyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLnF1ZXN0aW9uQmFua0l0ZW1JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUXVlc3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZpY3VsdHk6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2VjdGlvbi50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBzZWN0aW9uLm9yZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5Q29uZGl0aW9uOiBzZWN0aW9uLnZpc2liaWxpdHlDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25uYWlyZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcXVlc3Rpb25uYWlyZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcXVlc3Rpb25uYWlyZS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcXVlc3Rpb25uYWlyZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBxdWVzdGlvbm5haXJlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnM6IHNlY3Rpb25zV2l0aFF1ZXN0aW9ucy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmluZ1R5cGU6IHF1ZXN0aW9ubmFpcmUuc2NvcmluZ1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZ1Njb3JlOiBxdWVzdGlvbm5haXJlLnBhc3NpbmdTY29yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBhbnN3ZXJzIGluIHdpZGdldCBjb250YWluZXIgY29udGV4dCBpZiBwcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbEFuc3dlcnMgJiYgT2JqZWN0LmtleXMoaW5pdGlhbEFuc3dlcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHN0b3JlLndpZGdldENvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lcj8uY29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNvbnRhaW5lci5jb250ZXh0U2VydmljZS5kYXRhKCkgfHwge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdBbnN3ZXJzID0gKGN1cnJlbnREYXRhIGFzIGFueSkuYW5zd2VycyB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXJnZWREYXRhID0geyAuLi5jdXJyZW50RGF0YSwgYW5zd2VyczogeyAuLi5leGlzdGluZ0Fuc3dlcnMsIC4uLmluaXRpYWxBbnN3ZXJzIH0gfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuY29udGV4dFNlcnZpY2Uuc2V0KG1lcmdlZERhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyci5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gbG9hZCBxdWVzdGlvbm5haXJlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFzeW5jIGxvYWRTdHJ1Y3R1cmUoc3RydWN0dXJlOiBRdWVzdGlvbm5haXJlQnVpbGRlclZhbHVlLCBjb25maWc/OiBRdWVzdGlvbm5haXJlVmlld2VyQ29uZmlnLCBpbml0aWFsQW5zd2Vycz86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGlzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwsIHN0cnVjdHVyZSwgY29uZmlnOiBjb25maWcgfHwgbnVsbCB9KTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3RydWN0dXJlLnNlY3Rpb25zIHx8IHN0cnVjdHVyZS5zZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbm5haXJlRGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3ByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1ByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAncXVlc3Rpb25uYWlyZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25zV2l0aFF1ZXN0aW9uczogUXVlc3Rpb25uYWlyZVZpZXdlclNlY3Rpb25bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlLnNlY3Rpb25zLm1hcChhc3luYyAoc2VjdGlvbiwgc2VjdGlvbkluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25zOiBRdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb25bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VjdGlvbi5pdGVtcyB8fCBbXSkubWFwKGFzeW5jIChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uRGV0YWlscyA9IGF3YWl0IHF1ZXN0aW9uQmFua1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0T25lKGl0ZW0ucXVlc3Rpb25CYW5rSXRlbUlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiBudWxsKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXhCYXNlZFBhdGggPSBgYW5zd2Vycy4ke3NlY3Rpb25JbmRleH0tJHtpdGVtSW5kZXh9YDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdpZGdldEludGVyZmFjZSA9IGl0ZW0uaW50ZXJmYWNlT3ZlcnJpZGUgfHwgcXVlc3Rpb25EZXRhaWxzPy5pbnRlcmZhY2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWRnZXRJbnRlcmZhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gaXRlbS5pZCA/IGBhbnN3ZXJzLiR7aXRlbS5pZH1gIDogaW5kZXhCYXNlZFBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGl0ZW0uaWQgfHwgYGFuc3dlci0ke3NlY3Rpb25JbmRleH0tJHtpdGVtSW5kZXh9YDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdldCBleGlzdGluZyB2YWxpZGF0aW9ucyBmcm9tIG9wdGlvbnMgb3IgZGlyZWN0bHkgZnJvbSBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ09wdGlvbnMgPSB3aWRnZXRJbnRlcmZhY2Uub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbGlkYXRpb25zID0gZXhpc3RpbmdPcHRpb25zLnZhbGlkYXRpb25zIHx8IHdpZGdldEludGVyZmFjZS52YWxpZGF0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9ucyA9IFsuLi5leGlzdGluZ1ZhbGlkYXRpb25zXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1JlcXVpcmVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLnNvbWUodiA9PiB2LnJ1bGUgPT09ICdyZXF1aXJlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1JlcXVpcmVkVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBseSByZWFkb25seSBtb2RlIGZyb20gY29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNSZWFkb25seSA9IGNvbmZpZz8ucmVhZG9ubHkgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXRJbnRlcmZhY2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLndpZGdldEludGVyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZXhpc3RpbmdPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHk6IGlzUmVhZG9ubHkgfHwgZXhpc3RpbmdPcHRpb25zLnJlYWRvbmx5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLmxlbmd0aCA+IDAgPyB2YWxpZGF0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbkRhdGEgPSBxdWVzdGlvbkRldGFpbHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHF1ZXN0aW9uRGV0YWlscy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHF1ZXN0aW9uRGV0YWlscy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHF1ZXN0aW9uRGV0YWlscy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmljdWx0eTogcXVlc3Rpb25EZXRhaWxzLmRpZmZpY3VsdHksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3JpbmdUeXBlOiBxdWVzdGlvbkRldGFpbHMuc2NvcmluZ1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZTogd2lkZ2V0SW50ZXJmYWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0ucXVlc3Rpb25CYW5rSXRlbUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1F1ZXN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmljdWx0eTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29yaW5nVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2U6IHdpZGdldEludGVyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uQmFua0l0ZW1JZDogaXRlbS5xdWVzdGlvbkJhbmtJdGVtSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbklkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBpdGVtLm9yZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IGl0ZW0uaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5Q29uZGl0aW9uOiBpdGVtLnZpc2liaWxpdHlDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRDb25kaXRpb246IGl0ZW0ucmVxdWlyZWRDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmluZ092ZXJyaWRlOiBpdGVtLnNjb3JpbmdPdmVycmlkZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbjogcXVlc3Rpb25EYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2VjdGlvbi50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBzZWN0aW9uLm9yZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5Q29uZGl0aW9uOiBzZWN0aW9uLnZpc2liaWxpdHlDb25kaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uczogcXVlc3Rpb25zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25uYWlyZURhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3ByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUHJldmlldycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAncXVlc3Rpb25uYWlyZScgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnM6IHNlY3Rpb25zV2l0aFF1ZXN0aW9ucy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlciksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGluaXRpYWwgYW5zd2VycyBpbiB3aWRnZXQgY29udGFpbmVyIGNvbnRleHQgaWYgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluaXRpYWxBbnN3ZXJzICYmIE9iamVjdC5rZXlzKGluaXRpYWxBbnN3ZXJzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzdG9yZS53aWRnZXRDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluZXI/LmNvbnRleHRTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBjb250YWluZXIuY29udGV4dFNlcnZpY2UuZGF0YSgpIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQW5zd2VycyA9IChjdXJyZW50RGF0YSBhcyBhbnkpLmFuc3dlcnMgfHwge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkRGF0YSA9IHsgLi4uY3VycmVudERhdGEsIGFuc3dlcnM6IHsgLi4uZXhpc3RpbmdBbnN3ZXJzLCAuLi5pbml0aWFsQW5zd2VycyB9IH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmNvbnRleHRTZXJ2aWNlLnNldChtZXJnZWREYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tRdWVzdGlvbm5haXJlVmlld2VyXSBFcnJvciBsb2FkaW5nIHN0cnVjdHVyZTonLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBsb2FkIHN0cnVjdHVyZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyNlbmRyZWdpb25cblxuICAgICAgICAgICAgLy8jcmVnaW9uIC0tLS0gICBWYWxpZGF0aW9uICAgLS0tLVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENoZWNrIGlmIGEgcXVlc3Rpb24gaXMgdmlzaWJsZSBiYXNlZCBvbiB2aXNpYmlsaXR5IGNvbmRpdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpc1F1ZXN0aW9uVmlzaWJsZShxdWVzdGlvbjogUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHZpc2liaWxpdHkgY29uZGl0aW9uIGV2YWx1YXRpb25cbiAgICAgICAgICAgICAgICAvLyBGb3Igbm93LCByZXR1cm4gdHJ1ZSAoYWxsIHF1ZXN0aW9ucyBhcmUgdmlzaWJsZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogR2V0IHZpc2libGUgcXVlc3Rpb25zIGZvciBjdXJyZW50IHBhZ2UgYmFzZWQgb24gdmlldyBtb2RlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGdldFZpc2libGVRdWVzdGlvbnMoKTogUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uW10ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgICAgIGlmICghZGF0YSkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIHZpZXcgbW9kZSBmcm9tIGNvbmZpZy9zdHJ1Y3R1cmVcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdNb2RlID0gY29uZmlnPy52aWV3TW9kZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3MgPSBzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncztcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA9IGRpc3BsYXlTZXR0aW5ncz8udmlld01vZGU7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld01vZGUgPSBjb25maWdNb2RlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyBjb25maWdNb2RlXG4gICAgICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA6ICdzaW5nbGUtcGFnZScpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVRdWVzdGlvbnM6IFF1ZXN0aW9ubmFpcmVWaWV3ZXJRdWVzdGlvbltdID0gW107XG5cbiAgICAgICAgICAgICAgICBpZiAodmlld01vZGUgPT09ICdzaW5nbGUtcGFnZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWxsIHF1ZXN0aW9ucyBpbiBhbGwgc2VjdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNRdWVzdGlvblZpc2libGUocXVlc3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVRdWVzdGlvbnMucHVzaChxdWVzdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3TW9kZSA9PT0gJ3BhZ2UtcGVyLWdyb3VwJyB8fCB2aWV3TW9kZSA9PT0gJ3NpZGUtbWVudScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUXVlc3Rpb25zIGluIGN1cnJlbnQgc2VjdGlvblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U0luZGV4ID0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25zW2N1cnJlbnRTSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgY3VycmVudFNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNRdWVzdGlvblZpc2libGUocXVlc3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVRdWVzdGlvbnMucHVzaChxdWVzdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3TW9kZSA9PT0gJ3BhZ2UtcGVyLXF1ZXN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBDdXJyZW50IHF1ZXN0aW9uIG9ubHlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFFJbmRleCA9IHN0b3JlLmN1cnJlbnRRdWVzdGlvbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbnNbY3VycmVudFNJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFF1ZXN0aW9uID0gY3VycmVudFNlY3Rpb24ucXVlc3Rpb25zW2N1cnJlbnRRSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWVzdGlvbiAmJiB0aGlzLmlzUXVlc3Rpb25WaXNpYmxlKGN1cnJlbnRRdWVzdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlUXVlc3Rpb25zLnB1c2goY3VycmVudFF1ZXN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlUXVlc3Rpb25zO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBWYWxpZGF0ZSBhIHNpbmdsZSBxdWVzdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhc3luYyB2YWxpZGF0ZVF1ZXN0aW9uKHF1ZXN0aW9uOiBRdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb24pOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzdG9yZS53aWRnZXRDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcj8uY29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdXaWRnZXQgY29udGFpbmVyIG5vdCBhdmFpbGFibGUnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gY29udGFpbmVyLmNvbnRleHRTZXJ2aWNlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0RGF0YSA9IGNvbnRleHRTZXJ2aWNlLmRhdGEoKSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0UGF0aCA9IHF1ZXN0aW9uLnF1ZXN0aW9uLmludGVyZmFjZT8ucGF0aDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdpZGdldFBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBObyB3aWRnZXQgcGF0aCwgc2tpcCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldChjb250ZXh0RGF0YSwgd2lkZ2V0UGF0aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgcmVxdWlyZWQgdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLic7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBBZGQgb3RoZXIgdmFsaWRhdGlvbiBydWxlcyBmcm9tIHdpZGdldCBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yIG5vdywgb25seSByZXF1aXJlZCB2YWxpZGF0aW9uIGlzIGltcGxlbWVudGVkXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1F1ZXN0aW9ubmFpcmVWaWV3ZXJdIEVycm9yIHZhbGlkYXRpbmcgcXVlc3Rpb246JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ZhbGlkYXRpb24gZXJyb3Igb2NjdXJyZWQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVmFsaWRhdGUgYWxsIHZpc2libGUgcXVlc3Rpb25zIG9uIGN1cnJlbnQgcGFnZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhc3luYyB2YWxpZGF0ZUN1cnJlbnRQYWdlKCk6IFByb21pc2U8UXVlc3Rpb25uYWlyZVZhbGlkYXRpb25SZXN1bHQ+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gc3RvcmUuZm9ybSgpO1xuICAgICAgICAgICAgICAgIGlmICghZm9ybSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tRdWVzdGlvbm5haXJlVmlld2VyXSBGb3JtIG5vdCBhdmFpbGFibGUgZm9yIHZhbGlkYXRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSwgZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEdldCB2aXNpYmxlIHF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVRdWVzdGlvbnMgPSB0aGlzLmdldFZpc2libGVRdWVzdGlvbnMoKTtcblxuICAgICAgICAgICAgICAgIC8vIEdldCBzZWN0aW9ucyBmb3IgbG9va3VwXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIGVycm9yczogW10gfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuXG4gICAgICAgICAgICAgICAgLy8gVmFsaWRhdGUgZm9ybSBmaXJzdCB0byB0cmlnZ2VyIHZhbGlkYXRpb24gKHRoaXMgZW5zdXJlcyBmb3JtIHN0YXRlIGlzIHVwZGF0ZWQpXG4gICAgICAgICAgICAgICAgYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgLy8gTWFudWFsbHkgdmFsaWRhdGUgZWFjaCB2aXNpYmxlIHF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgLy8gVGhlIGZvcm0gdmFsaWRhdGlvbiBkb2Vzbid0IHByb3ZpZGUgcGF0aHMgaW4gdGhlIHJ1bGVzLCBzbyB3ZSB2YWxpZGF0ZSBtYW51YWxseVxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yczogUXVlc3Rpb25uYWlyZVZhbGlkYXRpb25FcnJvcltdID0gW107XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc3RvcmUud2lkZ2V0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyPy5jb250ZXh0U2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGNvbnRhaW5lci5jb250ZXh0U2VydmljZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dERhdGEgPSBjb250ZXh0U2VydmljZS5kYXRhKCkgfHwge307XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiB2aXNpYmxlUXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRQYXRoID0gcXVlc3Rpb24ucXVlc3Rpb24uaW50ZXJmYWNlPy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3aWRnZXRQYXRoKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoY29udGV4dERhdGEsIHdpZGdldFBhdGgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayByZXF1aXJlZCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9ucy5maW5kKHMgPT4gcy5pZCA9PT0gcXVlc3Rpb24uc2VjdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25UaXRsZSA9IHF1ZXN0aW9uLnF1ZXN0aW9uLnRpdGxlIHx8ICdUaGlzIGZpZWxkJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXdhaXQgdHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BhY29yZXg6dmFsaWRhdGlvbi5tZXNzYWdlcy5yZXF1aXJlZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCBgJHtxdWVzdGlvblRpdGxlfSBpcyByZXF1aXJlZGA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB7eyB0aXRsZSB9fSBwbGFjZWhvbGRlciBpZiBwcmVzZW50LCBvdGhlcndpc2UgdXNlIHRoZSBtZXNzYWdlIGFzLWlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmFsRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCd7eyB0aXRsZSB9fScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7eyB0aXRsZSB9fScsIHF1ZXN0aW9uVGl0bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGVycm9yTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uVGl0bGU6IHF1ZXN0aW9uLnF1ZXN0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbklkOiBzZWN0aW9uPy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25UaXRsZTogc2VjdGlvbj8udGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZmluYWxFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogQWRkIG90aGVyIHZhbGlkYXRpb24gcnVsZXMgZnJvbSB3aWRnZXQgaW50ZXJmYWNlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHZhbGlkYXRpb25FcnJvcnM6IGVycm9ycyB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCB0cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoXG4gICAgICAgICAgICAgICAgICAgICAgICAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLnZhbGlkYXRpb24uY3VycmVudC1wYWdlLWVycm9yJ1xuICAgICAgICAgICAgICAgICAgICApIHx8IGBQbGVhc2UgY29tcGxldGUgJHtlcnJvcnMubGVuZ3RofSByZXF1aXJlZCBxdWVzdGlvbihzKSBvbiB0aGlzIHBhZ2UuYDtcblxuICAgICAgICAgICAgICAgICAgICB0b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIudmFsaWRhdGlvbi5lcnJvci10aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkgfHwgJ1ZhbGlkYXRpb24gRXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dDogNTAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZXJyb3JzLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFZhbGlkYXRlIGFsbCBxdWVzdGlvbnMgaW4gZW50aXJlIHF1ZXN0aW9ubmFpcmVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXN5bmMgdmFsaWRhdGVBbGxRdWVzdGlvbnMoKTogUHJvbWlzZTxRdWVzdGlvbm5haXJlVmFsaWRhdGlvblJlc3VsdD4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm0gPSBzdG9yZS5mb3JtKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFmb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGlzVmFsaWQ6IHRydWUsIGVycm9yczogW10gfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXNWYWxpZDogdHJ1ZSwgZXJyb3JzOiBbXSB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFZhbGlkYXRlIGZvcm0gZmlyc3QgdG8gdHJpZ2dlciB2YWxpZGF0aW9uICh0aGlzIGVuc3VyZXMgZm9ybSBzdGF0ZSBpcyB1cGRhdGVkKVxuICAgICAgICAgICAgICAgIGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcblxuICAgICAgICAgICAgICAgIC8vIE1hbnVhbGx5IHZhbGlkYXRlIGFsbCB2aXNpYmxlIHF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgIC8vIFRoZSBmb3JtIHZhbGlkYXRpb24gZG9lc24ndCBwcm92aWRlIHBhdGhzIGluIHRoZSBydWxlcywgc28gd2UgdmFsaWRhdGUgbWFudWFsbHlcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnM6IFF1ZXN0aW9ubmFpcmVWYWxpZGF0aW9uRXJyb3JbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHN0b3JlLndpZGdldENvbnRhaW5lcigpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lcj8uY29udGV4dFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBjb250YWluZXIuY29udGV4dFNlcnZpY2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHREYXRhID0gY29udGV4dFNlcnZpY2UuZGF0YSgpIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBkYXRhLnNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT25seSBpbmNsdWRlIHZpc2libGUgcXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzUXVlc3Rpb25WaXNpYmxlKHF1ZXN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRQYXRoID0gcXVlc3Rpb24ucXVlc3Rpb24uaW50ZXJmYWNlPy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0UGF0aCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldChjb250ZXh0RGF0YSwgd2lkZ2V0UGF0aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayByZXF1aXJlZCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25UaXRsZSA9IHF1ZXN0aW9uLnF1ZXN0aW9uLnRpdGxlIHx8ICdUaGlzIGZpZWxkJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQGFjb3JleDp2YWxpZGF0aW9uLm1lc3NhZ2VzLnJlcXVpcmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8fCBgJHtxdWVzdGlvblRpdGxlfSBpcyByZXF1aXJlZGA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2Uge3sgdGl0bGUgfX0gcGxhY2Vob2xkZXIgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIHVzZSB0aGUgbWVzc2FnZSBhcy1pc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmluYWxFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ3t7IHRpdGxlIH19JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7eyB0aXRsZSB9fScsIHF1ZXN0aW9uVGl0bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlcnJvck1lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvblRpdGxlOiBxdWVzdGlvbi5xdWVzdGlvbi50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uSWQ6IHNlY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvblRpdGxlOiBzZWN0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmaW5hbEVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogQWRkIG90aGVyIHZhbGlkYXRpb24gcnVsZXMgZnJvbSB3aWRnZXQgaW50ZXJmYWNlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHZhbGlkYXRpb25FcnJvcnM6IGVycm9ycyB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCB0cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoXG4gICAgICAgICAgICAgICAgICAgICAgICAnQGFzc2Vzc21lbnQtbWFuYWdlbWVudDpxdWVzdGlvbm5haXJlcy5jb21wb25lbnRzLnF1ZXN0aW9ubmFpcmUtdmlld2VyLnZhbGlkYXRpb24uYWxsLXF1ZXN0aW9ucy1lcnJvcidcbiAgICAgICAgICAgICAgICAgICAgKSB8fCBgUGxlYXNlIGNvbXBsZXRlICR7ZXJyb3JzLmxlbmd0aH0gcmVxdWlyZWQgcXVlc3Rpb24ocykgaW4gdGhlIHF1ZXN0aW9ubmFpcmUuYDtcblxuICAgICAgICAgICAgICAgICAgICB0b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIudmFsaWRhdGlvbi5lcnJvci10aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICkgfHwgJ1ZhbGlkYXRpb24gRXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dDogNTAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZDogZXJyb3JzLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyNlbmRyZWdpb25cblxuICAgICAgICAgICAgLy8jcmVnaW9uIC0tLS0gICBOYXZpZ2F0aW9uICAgLS0tLVxuXG4gICAgICAgICAgICBhc3luYyBuYXZpZ2F0ZU5leHQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGVDdXJyZW50UGFnZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvblJlc3VsdC5pc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB2aWV3IG1vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSBzdG9yZS5zdHJ1Y3R1cmUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdNb2RlID0gY29uZmlnPy52aWV3TW9kZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3MgPSBzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncztcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA9IGRpc3BsYXlTZXR0aW5ncz8udmlld01vZGU7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld01vZGUgPSBjb25maWdNb2RlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyBjb25maWdNb2RlXG4gICAgICAgICAgICAgICAgICAgIDogKGRpc3BsYXlTZXR0aW5nc1ZpZXdNb2RlICE9PSB1bmRlZmluZWQgPyBkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSA6ICdzaW5nbGUtcGFnZScpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItZ3JvdXAnIHx8IHZpZXdNb2RlID09PSAnc2lkZS1tZW51Jykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U0luZGV4ID0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNJbmRleCA8IHNlY3Rpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U2VjdGlvbkluZGV4OiBjdXJyZW50U0luZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdNb2RlID09PSAncGFnZS1wZXItcXVlc3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTSW5kZXggPSBzdG9yZS5jdXJyZW50U2VjdGlvbkluZGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRRSW5kZXggPSBzdG9yZS5jdXJyZW50UXVlc3Rpb25JbmRleCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25zW2N1cnJlbnRTSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRTZWN0aW9uKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRRSW5kZXggPCBjdXJyZW50U2VjdGlvbi5xdWVzdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBjdXJyZW50UXVlc3Rpb25JbmRleDogY3VycmVudFFJbmRleCArIDEgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50U0luZGV4IDwgc2VjdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uSW5kZXg6IGN1cnJlbnRTSW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFzeW5jIG5hdmlnYXRlUHJldmlvdXMoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdmlldyBtb2RlXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc3RvcmUuY29uZmlnKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0dXJlID0gc3RvcmUuc3RydWN0dXJlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnTW9kZSA9IGNvbmZpZz8udmlld01vZGU7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzID0gc3RydWN0dXJlPy5kaXNwbGF5U2V0dGluZ3M7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVNldHRpbmdzVmlld01vZGUgPSBkaXNwbGF5U2V0dGluZ3M/LnZpZXdNb2RlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdNb2RlID0gY29uZmlnTW9kZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgID8gY29uZmlnTW9kZVxuICAgICAgICAgICAgICAgICAgICA6IChkaXNwbGF5U2V0dGluZ3NWaWV3TW9kZSAhPT0gdW5kZWZpbmVkID8gZGlzcGxheVNldHRpbmdzVmlld01vZGUgOiAnc2luZ2xlLXBhZ2UnKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25zID0gZGF0YS5zZWN0aW9ucztcblxuICAgICAgICAgICAgICAgIGlmICh2aWV3TW9kZSA9PT0gJ3BhZ2UtcGVyLWdyb3VwJyB8fCB2aWV3TW9kZSA9PT0gJ3NpZGUtbWVudScpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb25JbmRleDogY3VycmVudFNJbmRleCAtIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3TW9kZSA9PT0gJ3BhZ2UtcGVyLXF1ZXN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UUluZGV4ID0gc3RvcmUuY3VycmVudFF1ZXN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNJbmRleCA9IHN0b3JlLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFFJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgY3VycmVudFF1ZXN0aW9uSW5kZXg6IGN1cnJlbnRRSW5kZXggLSAxIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFNJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZTZWN0aW9uID0gc2VjdGlvbnNbY3VycmVudFNJbmRleCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uSW5kZXg6IGN1cnJlbnRTSW5kZXggLSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4OiBwcmV2U2VjdGlvbi5xdWVzdGlvbnMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENoZWNrIGlmIGN1cnJlbnQgc2VjdGlvbiBpcyB2YWxpZCAod2l0aG91dCBzaG93aW5nIHRvYXN0KVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhc3luYyBpc0N1cnJlbnRTZWN0aW9uVmFsaWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybSA9IHN0b3JlLmZvcm0oKTtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gR2V0IHZpc2libGUgcXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgY29uc3QgdmlzaWJsZVF1ZXN0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZVF1ZXN0aW9ucygpO1xuXG4gICAgICAgICAgICAgICAgLy8gR2V0IHNlY3Rpb25zIGZvciBsb29rdXBcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25zID0gZGF0YS5zZWN0aW9ucztcblxuICAgICAgICAgICAgICAgIC8vIFZhbGlkYXRlIGZvcm0gZmlyc3QgdG8gdHJpZ2dlciB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuXG4gICAgICAgICAgICAgICAgLy8gTWFudWFsbHkgdmFsaWRhdGUgZWFjaCB2aXNpYmxlIHF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc3RvcmUud2lkZ2V0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyPy5jb250ZXh0U2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGNvbnRhaW5lci5jb250ZXh0U2VydmljZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dERhdGEgPSBjb250ZXh0U2VydmljZS5kYXRhKCkgfHwge307XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiB2aXNpYmxlUXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRQYXRoID0gcXVlc3Rpb24ucXVlc3Rpb24uaW50ZXJmYWNlPy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3aWRnZXRQYXRoKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoY29udGV4dERhdGEsIHdpZGdldFBhdGgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayByZXF1aXJlZCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVlc3Rpb24uaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQ2hlY2sgaWYgYSBzZWN0aW9uIGNhbiBiZSBuYXZpZ2F0ZWQgdG9cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXN5bmMgaXNTZWN0aW9uTmF2aWdhYmxlKHNlY3Rpb25JbmRleDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRhdGEuc2VjdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA8IDAgfHwgc2VjdGlvbkluZGV4ID49IHNlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgbmF2aWdhdGluZyB0byBjdXJyZW50IHNlY3Rpb24sIGFsd2F5cyBhbGxvd2VkXG4gICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA9PT0gc3RvcmUuY3VycmVudFNlY3Rpb25JbmRleCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIElmIHZhbGlkYXRpb24gYmVmb3JlIG5hdmlnYXRpb24gaXMgZGlzYWJsZWQsIGFsd2F5cyBhbGxvd2VkXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVCZWZvcmVOYXYgPSBzdG9yZS52YWxpZGF0ZUJlZm9yZU5hdmlnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlQmVmb3JlTmF2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGN1cnJlbnQgc2VjdGlvbiBpcyB2YWxpZFxuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmlzQ3VycmVudFNlY3Rpb25WYWxpZCgpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYXN5bmMgbmF2aWdhdGVUb1NlY3Rpb24oaW5kZXg6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgICAgIGlmICghZGF0YSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBkYXRhLnNlY3Rpb25zO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gc2VjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBuYXZpZ2F0aW9uIGlzIGFsbG93ZWRcbiAgICAgICAgICAgICAgICBjb25zdCBjYW5OYXZpZ2F0ZSA9IGF3YWl0IHRoaXMuaXNTZWN0aW9uTmF2aWdhYmxlKGluZGV4KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNhbk5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkYXRlIGFuZCBzaG93IHRvYXN0IGlmIHZhbGlkYXRpb24gaXMgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0ZUJlZm9yZU5hdiA9IHN0b3JlLnZhbGlkYXRlQmVmb3JlTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVCZWZvcmVOYXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVDdXJyZW50UGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleDogMCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFzeW5jIG5hdmlnYXRlVG9RdWVzdGlvbihzZWN0aW9uSW5kZXg6IG51bWJlciwgcXVlc3Rpb25JbmRleDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHN0b3JlLnF1ZXN0aW9ubmFpcmVEYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IGRhdGEuc2VjdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25JbmRleCA8IDAgfHwgc2VjdGlvbkluZGV4ID49IHNlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zW3NlY3Rpb25JbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uSW5kZXggPCAwIHx8IHF1ZXN0aW9uSW5kZXggPj0gc2VjdGlvbi5xdWVzdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBWYWxpZGF0ZSBjdXJyZW50IHBhZ2UgYmVmb3JlIG5hdmlnYXRpbmdcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZUN1cnJlbnRQYWdlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0LmlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb25JbmRleDogc2VjdGlvbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleDogcXVlc3Rpb25JbmRleCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgICAgICAgICAvLyNyZWdpb24gLS0tLSAgIEFuc3dlcnMgICAtLS0tXG5cbiAgICAgICAgICAgIGdldEFsbEFuc3dlcnMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gc3RvcmUud2lkZ2V0Q29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXI/LmNvbnRleHRTZXJ2aWNlKSByZXR1cm4ge307XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGNvbnRhaW5lci5jb250ZXh0U2VydmljZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dERhdGEgPSBjb250ZXh0U2VydmljZS5kYXRhKCkgfHwge307XG4gICAgICAgICAgICAgICAgICAgIC8vIEV4dHJhY3QgYW5zd2VycyBmcm9tIGNvbnRleHQgZGF0YSAtIGFuc3dlcnMgYXJlIHN0b3JlZCB1bmRlciAnYW5zd2VycycgcHJvcGVydHlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChjb250ZXh0RGF0YSBhcyBhbnkpLmFuc3dlcnMgfHwge307XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1F1ZXN0aW9ubmFpcmVWaWV3ZXJdIEVycm9yIGdldHRpbmcgYWxsIGFuc3dlcnM6JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZ2V0UXVlc3Rpb25zV2l0aEFuc3dlcnMoKTogQXJyYXk8e1xuICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBxdWVzdGlvbkJhbmtJdGVtSWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBzZWN0aW9uSWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGFuc3dlcjogYW55O1xuICAgICAgICAgICAgICAgIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgICAgICAgICAgfT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzdG9yZS5xdWVzdGlvbm5haXJlRGF0YSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHN0b3JlLndpZGdldENvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIGlmICghZGF0YSB8fCAhY29udGFpbmVyPy5jb250ZXh0U2VydmljZSkgcmV0dXJuIFtdO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBjb250YWluZXIuY29udGV4dFNlcnZpY2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHREYXRhID0gY29udGV4dFNlcnZpY2UuZGF0YSgpIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbnNXaXRoQW5zd2VyczogQXJyYXk8e1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25JZDogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25CYW5rSXRlbUlkOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uSWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlcjogYW55O1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgIH0+ID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGRhdGEuc2VjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRnZXRQYXRoID0gcXVlc3Rpb24ucXVlc3Rpb24uaW50ZXJmYWNlPy5wYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IHdpZGdldFBhdGggPyBnZXQoY29udGV4dERhdGEsIHdpZGdldFBhdGgpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25zV2l0aEFuc3dlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbkJhbmtJdGVtSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uQmFua0l0ZW1JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbklkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcXVlc3Rpb24ucXVlc3Rpb24udGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBxdWVzdGlvbi5xdWVzdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zd2VyOiBhbnN3ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVxdWlyZWQ6IHF1ZXN0aW9uLmlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcXVlc3Rpb25zV2l0aEFuc3dlcnM7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1F1ZXN0aW9ubmFpcmVWaWV3ZXJdIEVycm9yIGdldHRpbmcgcXVlc3Rpb25zIHdpdGggYW5zd2VyczonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEdldCBjb3VudCBvZiB1bmFuc3dlcmVkIHJlcXVpcmVkIHF1ZXN0aW9ucyBpbiBhIHNlY3Rpb25cbiAgICAgICAgICAgICAqIFVzZWQgZm9yIGJhZGdlIGRpc3BsYXkgaW4gc2lkZS1tZW51IHZpZXdcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2V0U2VjdGlvblVuYW5zd2VyZWRSZXF1aXJlZENvdW50KHNlY3Rpb25JZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gc3RvcmUucXVlc3Rpb25uYWlyZURhdGEoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBzdG9yZS53aWRnZXRDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWNvbnRhaW5lcj8uY29udGV4dFNlcnZpY2UpIHJldHVybiAwO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBjb250YWluZXIuY29udGV4dFNlcnZpY2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHREYXRhID0gY29udGV4dFNlcnZpY2UuZGF0YSgpIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBsZXQgdW5hbnN3ZXJlZENvdW50ID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gZGF0YS5zZWN0aW9ucy5maW5kKHMgPT4gcy5pZCA9PT0gc2VjdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWN0aW9uKSByZXR1cm4gMDtcblxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGNvdW50IHJlcXVpcmVkIHF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFxdWVzdGlvbi5pc1JlcXVpcmVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdmlzaWJpbGl0eSBjb25kaXRpb24gKGlmIHF1ZXN0aW9uIGlzIG5vdCB2aXNpYmxlLCBza2lwKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHZpc2liaWxpdHkgY29uZGl0aW9uIGV2YWx1YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBub3csIGNoZWNrIGFsbCByZXF1aXJlZCBxdWVzdGlvbnNcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0UGF0aCA9IHF1ZXN0aW9uLnF1ZXN0aW9uLmludGVyZmFjZT8ucGF0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0UGF0aCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0KGNvbnRleHREYXRhLCB3aWRnZXRQYXRoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNFbXB0eSA9IHZhbHVlID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5hbnN3ZXJlZENvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5hbnN3ZXJlZENvdW50O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tRdWVzdGlvbm5haXJlVmlld2VyXSBFcnJvciBjb3VudGluZyB1bmFuc3dlcmVkIHJlcXVpcmVkIHF1ZXN0aW9uczonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPHsgc3VjY2VzczogYm9vbGVhbjsgYW5zd2VyczogUmVjb3JkPHN0cmluZywgYW55PjsgZXJyb3JzPzogUXVlc3Rpb25uYWlyZVZhbGlkYXRpb25FcnJvcltdIH0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZUFsbFF1ZXN0aW9ucygpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvblJlc3VsdC5pc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlcnM6IHRoaXMuZ2V0QWxsQW5zd2VycygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzOiB2YWxpZGF0aW9uUmVzdWx0LmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhbnN3ZXJzOiB0aGlzLmdldEFsbEFuc3dlcnMoKSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLy8jZW5kcmVnaW9uXG5cbiAgICAgICAgICAgIC8vI3JlZ2lvbiAtLS0tICAgVGltZXIgICAtLS0tXG5cbiAgICAgICAgICAgIHN0YXJ0VGltZXIoKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZXIoKTtcblxuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgdGltZXJFbGFwc2VkOiAwIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzdG9yZS5jb25maWcoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZUxpbWl0ID0gY29uZmlnPy50aW1lcj8udGltZUxpbWl0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGFwc2VkID0gc3RvcmUudGltZXJFbGFwc2VkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVMaW1pdCAmJiBlbGFwc2VkID49IHRpbWVMaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSB0aW1lIGxpbWl0IHJlYWNoZWRcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgdGltZXJFbGFwc2VkOiBlbGFwc2VkICsgMSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuXG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyB0aW1lckludGVydmFsOiBpbnRlcnZhbCB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHN0b3BUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHN0b3JlLnRpbWVySW50ZXJ2YWwoKTtcbiAgICAgICAgICAgICAgICBpZiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgdGltZXJJbnRlcnZhbDogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB1cGRhdGVUaW1lckVsYXBzZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgdGltZXJFbGFwc2VkOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vI2VuZHJlZ2lvblxuICAgICAgICB9KSxcbiAgICApLFxuKTtcblxuLy8jZW5kcmVnaW9uIl19","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXMQuestionnaireViewerViewModel } from './questionnaire-viewer.viewmodel';\nimport { get } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\n//#endregion\n//#region ---- Component ----\n/**\n * Reusable Question Component\n * Displays a single question with its widget interface\n */\nexport class AXMQuestionnaireViewerQuestionComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n //#endregion\n //#region ---- Inputs ----\n this.question = input.required(...(ngDevMode ? [{ debugName: \"question\" }] : []));\n this.sectionOrder = input.required(...(ngDevMode ? [{ debugName: \"sectionOrder\" }] : []));\n this.questionIndex = input.required(...(ngDevMode ? [{ debugName: \"questionIndex\" }] : []));\n this.showQuestionNumbers = input(true, ...(ngDevMode ? [{ debugName: \"showQuestionNumbers\" }] : []));\n this.showQuestionCounter = input(false, ...(ngDevMode ? [{ debugName: \"showQuestionCounter\" }] : []));\n this.currentPosition = input(undefined, ...(ngDevMode ? [{ debugName: \"currentPosition\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n /**\n * Check if question is answered\n */\n this.isAnswered = computed(() => {\n const question = this.question();\n const container = this.vm.widgetContainer();\n if (!question || !container?.contextService)\n return false;\n try {\n const contextService = container.contextService;\n const data = contextService.data() || {};\n const widgetPath = question.question.interface?.path;\n if (!widgetPath)\n return false;\n const value = get(data, widgetPath);\n const isEmpty = value === null ||\n value === undefined ||\n value === '' ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0);\n return !isEmpty;\n }\n catch (error) {\n console.error('[QuestionnaireViewerQuestion] Error checking if answered:', error);\n return false;\n }\n }, ...(ngDevMode ? [{ debugName: \"isAnswered\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerQuestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerQuestionComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-question\", inputs: { question: { classPropertyName: \"question\", publicName: \"question\", isSignal: true, isRequired: true, transformFunction: null }, sectionOrder: { classPropertyName: \"sectionOrder\", publicName: \"sectionOrder\", isSignal: true, isRequired: true, transformFunction: null }, questionIndex: { classPropertyName: \"questionIndex\", publicName: \"questionIndex\", isSignal: true, isRequired: true, transformFunction: null }, showQuestionNumbers: { classPropertyName: \"showQuestionNumbers\", publicName: \"showQuestionNumbers\", isSignal: true, isRequired: false, transformFunction: null }, showQuestionCounter: { classPropertyName: \"showQuestionCounter\", publicName: \"showQuestionCounter\", isSignal: true, isRequired: false, transformFunction: null }, currentPosition: { classPropertyName: \"currentPosition\", publicName: \"currentPosition\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n <div class=\"__question-item\" [class.__answered]=\"isAnswered()\">\n <div class=\"__question-header\">\n <div class=\"__question-header-left\">\n @if (showQuestionNumbers()) {\n <span class=\"__question-number\">{{ sectionOrder() }}.{{ questionIndex() }}</span>\n }\n @if (showQuestionCounter() && currentPosition()) {\n <span class=\"__question-counter\">\n Question {{ currentPosition()!.current }} of {{ currentPosition()!.total }}\n </span>\n }\n </div>\n <div class=\"__question-header-right\">\n <h3 class=\"__question-title\">{{ question().question.title }}</h3>\n @if (isAnswered()) {\n <span class=\"__answered-badge\">Answered</span>\n } @else if (question().isRequired) {\n <span class=\"__required-badge\">Required</span>\n }\n </div>\n </div>\n @if (question().question.description) {\n <p class=\"__question-description\">{{ question().question.description }}</p>\n }\n\n <!-- Question Widget -->\n <div class=\"__question-widget\">\n @if (question().question.interface) {\n <ng-container axp-widget-renderer [node]=\"question().question.interface\" [mode]=\"'edit'\"></ng-container>\n } @else {\n <p class=\"__widget-placeholder\">No widget interface configured</p>\n }\n </div>\n </div>\n `, isInline: true, styles: [\".__question-item{padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.__question-item.__answered{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-300),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-50),.3)}.__question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}.__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}.__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.__question-header-right{display:flex;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.__question-title{flex:1 1 0%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-success-800),var(--tw-text-opacity, 1))}.__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}.__question-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.__question-widget{margin-top:.5rem}.__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"directive\", type: i1.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\", \"onLoad\"], exportAs: [\"widgetRenderer\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerQuestionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer-question', template: `\n <div class=\"__question-item\" [class.__answered]=\"isAnswered()\">\n <div class=\"__question-header\">\n <div class=\"__question-header-left\">\n @if (showQuestionNumbers()) {\n <span class=\"__question-number\">{{ sectionOrder() }}.{{ questionIndex() }}</span>\n }\n @if (showQuestionCounter() && currentPosition()) {\n <span class=\"__question-counter\">\n Question {{ currentPosition()!.current }} of {{ currentPosition()!.total }}\n </span>\n }\n </div>\n <div class=\"__question-header-right\">\n <h3 class=\"__question-title\">{{ question().question.title }}</h3>\n @if (isAnswered()) {\n <span class=\"__answered-badge\">Answered</span>\n } @else if (question().isRequired) {\n <span class=\"__required-badge\">Required</span>\n }\n </div>\n </div>\n @if (question().question.description) {\n <p class=\"__question-description\">{{ question().question.description }}</p>\n }\n\n <!-- Question Widget -->\n <div class=\"__question-widget\">\n @if (question().question.interface) {\n <ng-container axp-widget-renderer [node]=\"question().question.interface\" [mode]=\"'edit'\"></ng-container>\n } @else {\n <p class=\"__widget-placeholder\">No widget interface configured</p>\n }\n </div>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXTranslationModule, AXPWidgetCoreModule], styles: [\".__question-item{padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.__question-item.__answered{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-300),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-50),.3)}.__question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}.__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}.__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.__question-header-right{display:flex;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.__question-title{flex:1 1 0%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-success-800),var(--tw-text-opacity, 1))}.__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}.__question-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.__question-widget{margin-top:.5rem}.__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { question: [{ type: i0.Input, args: [{ isSignal: true, alias: \"question\", required: true }] }], sectionOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: \"sectionOrder\", required: true }] }], questionIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: \"questionIndex\", required: true }] }], showQuestionNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: \"showQuestionNumbers\", required: false }] }], showQuestionCounter: [{ type: i0.Input, args: [{ isSignal: true, alias: \"showQuestionCounter\", required: false }] }], currentPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: \"currentPosition\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLXF1ZXN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRWhDLFlBQVk7QUFFWixpQ0FBaUM7QUFFakM7OztHQUdHO0FBa0dILE1BQU0sT0FBTyx1Q0FBdUM7SUFqR3BEO1FBa0dJLCtDQUErQztRQUU1QixPQUFFLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFaEUsWUFBWTtRQUVaLDhCQUE4QjtRQUU5QixhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsbURBQStCLENBQUM7UUFDekQsaUJBQVksR0FBRyxLQUFLLENBQUMsUUFBUSx1REFBVSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsd0RBQVUsQ0FBQztRQUN6Qyx3QkFBbUIsR0FBRyxLQUFLLENBQVUsSUFBSSwrREFBQyxDQUFDO1FBQzNDLHdCQUFtQixHQUFHLEtBQUssQ0FBVSxLQUFLLCtEQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxLQUFLLENBQWlELFNBQVMsMkRBQUMsQ0FBQztRQUVuRixZQUFZO1FBRVosMkNBQTJDO1FBRTNDOztXQUVHO1FBQ0gsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRTFELElBQUksQ0FBQztnQkFDRCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN6QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxVQUFVO29CQUFFLE9BQU8sS0FBSyxDQUFDO2dCQUU5QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUVwQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEtBQUssSUFBSTtvQkFDMUIsS0FBSyxLQUFLLFNBQVM7b0JBQ25CLEtBQUssS0FBSyxFQUFFO29CQUNaLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztvQkFDNUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBRW5FLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEIsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQywyREFBMkQsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUMsc0RBQUMsQ0FBQztLQUdOOytHQWxEWSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyw4OUJBL0Z0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtQ1QsK3BFQTBEUyxZQUFZLDhCQUFFLG1CQUFtQiw4QkFBRSxtQkFBbUI7OzRGQUV2RCx1Q0FBdUM7a0JBakduRCxTQUFTOytCQUNJLG1DQUFtQyxZQUNuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtQ1QsbUJBeURnQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwgfSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb24gfSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLnR5cGVzJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCAgIC0tLS1cblxuLyoqXG4gKiBSZXVzYWJsZSBRdWVzdGlvbiBDb21wb25lbnRcbiAqIERpc3BsYXlzIGEgc2luZ2xlIHF1ZXN0aW9uIHdpdGggaXRzIHdpZGdldCBpbnRlcmZhY2VcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJfX3F1ZXN0aW9uLWl0ZW1cIiBbY2xhc3MuX19hbnN3ZXJlZF09XCJpc0Fuc3dlcmVkKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3F1ZXN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3F1ZXN0aW9uLWhlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1F1ZXN0aW9uTnVtYmVycygpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiX19xdWVzdGlvbi1udW1iZXJcIj57eyBzZWN0aW9uT3JkZXIoKSB9fS57eyBxdWVzdGlvbkluZGV4KCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93UXVlc3Rpb25Db3VudGVyKCkgJiYgY3VycmVudFBvc2l0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX3F1ZXN0aW9uLWNvdW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXN0aW9uIHt7IGN1cnJlbnRQb3NpdGlvbigpIS5jdXJyZW50IH19IG9mIHt7IGN1cnJlbnRQb3NpdGlvbigpIS50b3RhbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19xdWVzdGlvbi1oZWFkZXItcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiX19xdWVzdGlvbi10aXRsZVwiPnt7IHF1ZXN0aW9uKCkucXVlc3Rpb24udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzQW5zd2VyZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fYW5zd2VyZWQtYmFkZ2VcIj5BbnN3ZXJlZDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAocXVlc3Rpb24oKS5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiX19yZXF1aXJlZC1iYWRnZVwiPlJlcXVpcmVkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocXVlc3Rpb24oKS5xdWVzdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJfX3F1ZXN0aW9uLWRlc2NyaXB0aW9uXCI+e3sgcXVlc3Rpb24oKS5xdWVzdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBRdWVzdGlvbiBXaWRnZXQgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19xdWVzdGlvbi13aWRnZXRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHF1ZXN0aW9uKCkucXVlc3Rpb24uaW50ZXJmYWNlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cInF1ZXN0aW9uKCkucXVlc3Rpb24uaW50ZXJmYWNlXCIgW21vZGVdPVwiJ2VkaXQnXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJfX3dpZGdldC1wbGFjZWhvbGRlclwiPk5vIHdpZGdldCBpbnRlcmZhY2UgY29uZmlndXJlZDwvcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIC5fX3F1ZXN0aW9uLWl0ZW0ge1xuICAgICAgICAgICAgQGFwcGx5IGF4LXRyYW5zaXRpb24tYWxsIGF4LWR1cmF0aW9uLTIwMCBheC1wLTQ7XG4gICAgICAgIH1cblxuICAgICAgICAuX19xdWVzdGlvbi1pdGVtLl9fYW5zd2VyZWQge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWJvcmRlci1wcmltYXJ5LTMwMCBheC1iZy1wcmltYXJ5LTUwLzMwO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb24taGVhZGVyIHtcbiAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWl0ZW1zLXN0YXJ0IGF4LWp1c3RpZnktYmV0d2VlbiBheC1nYXAtNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX3F1ZXN0aW9uLWhlYWRlci1sZWZ0IHtcbiAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMyBheC1mbGV4LXNocmluay0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb24tbnVtYmVyIHtcbiAgICAgICAgICAgIEBhcHBseSBheC10ZXh0LXNtIGF4LWZvbnQtc2VtaWJvbGQgYXgtdGV4dC1wcmltYXJ5LTYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX3F1ZXN0aW9uLWNvdW50ZXIge1xuICAgICAgICAgICAgQGFwcGx5IGF4LXRleHQteHMgYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1uZXV0cmFsLTUwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX3F1ZXN0aW9uLWhlYWRlci1yaWdodCB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1pdGVtcy1zdGFydCBheC1nYXAtMiBheC1mbGV4LXdyYXAgYXgtZmxleC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgQGFwcGx5IGF4LXRleHQtYmFzZSBheC1mb250LW1lZGl1bSBheC10ZXh0LW5ldXRyYWwtOTAwIGF4LWZsZXgtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX2Fuc3dlcmVkLWJhZGdlIHtcbiAgICAgICAgICAgIEBhcHBseSBheC1weC0yIGF4LXB5LTEgYXgtdGV4dC14cyBheC1mb250LW1lZGl1bSBheC1yb3VuZGVkO1xuICAgICAgICAgICAgQGFwcGx5IGF4LWJnLXN1Y2Nlc3MtMTAwIGF4LXRleHQtc3VjY2Vzcy04MDA7XG4gICAgICAgIH1cblxuICAgICAgICAuX19yZXF1aXJlZC1iYWRnZSB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtcHgtMiBheC1weS0xIGF4LXRleHQteHMgYXgtZm9udC1tZWRpdW0gYXgtcm91bmRlZDtcbiAgICAgICAgICAgIEBhcHBseSBheC1iZy13YXJuaW5nLTEwMCBheC10ZXh0LXdhcm5pbmctODAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb24tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgQGFwcGx5IGF4LXRleHQtc20gYXgtdGV4dC1uZXV0cmFsLTYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX3F1ZXN0aW9uLXdpZGdldCB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtbXQtMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX3dpZGdldC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNTAwIGF4LWl0YWxpYyBheC1wLTQgYXgtYm9yZGVyIGF4LWJvcmRlci1kYXNoZWQgYXgtcm91bmRlZDtcbiAgICAgICAgICAgIEBhcHBseSBheC1iZy1uZXV0cmFsLTUwO1xuICAgICAgICB9XG4gICAgYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhQV2lkZ2V0Q29yZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJRdWVzdGlvbkNvbXBvbmVudCB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSB2bSA9IGluamVjdChBWE1RdWVzdGlvbm5haXJlVmlld2VyVmlld01vZGVsKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBJbnB1dHMgICAtLS0tXG5cbiAgICBxdWVzdGlvbiA9IGlucHV0LnJlcXVpcmVkPFF1ZXN0aW9ubmFpcmVWaWV3ZXJRdWVzdGlvbj4oKTtcbiAgICBzZWN0aW9uT3JkZXIgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gICAgcXVlc3Rpb25JbmRleCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgICBzaG93UXVlc3Rpb25OdW1iZXJzID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgc2hvd1F1ZXN0aW9uQ291bnRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBjdXJyZW50UG9zaXRpb24gPSBpbnB1dDx7IGN1cnJlbnQ6IG51bWJlcjsgdG90YWw6IG51bWJlciB9IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXB1dGVkIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBxdWVzdGlvbiBpcyBhbnN3ZXJlZFxuICAgICAqL1xuICAgIGlzQW5zd2VyZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5xdWVzdGlvbigpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnZtLndpZGdldENvbnRhaW5lcigpO1xuICAgICAgICBpZiAoIXF1ZXN0aW9uIHx8ICFjb250YWluZXI/LmNvbnRleHRTZXJ2aWNlKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gY29udGFpbmVyLmNvbnRleHRTZXJ2aWNlO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNvbnRleHRTZXJ2aWNlLmRhdGEoKSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldFBhdGggPSBxdWVzdGlvbi5xdWVzdGlvbi5pbnRlcmZhY2U/LnBhdGg7XG4gICAgICAgICAgICBpZiAoIXdpZGdldFBhdGgpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoZGF0YSwgd2lkZ2V0UGF0aCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzRW1wdHkgPSB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJycgfHxcbiAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgICAgICAgICAgICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApO1xuXG4gICAgICAgICAgICByZXR1cm4gIWlzRW1wdHk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uXSBFcnJvciBjaGVja2luZyBpZiBhbnN3ZXJlZDonLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXMQuestionnaireViewerViewModel } from '../questionnaire-viewer.viewmodel';\nimport { AXMQuestionnaireViewerQuestionComponent } from '../questionnaire-viewer-question.component';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Component ----\n/**\n * Single Page View Component\n * Displays all sections and questions on a single page\n */\nexport class AXMQuestionnaireViewerSinglePageViewComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerSinglePageViewComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-single-page-view\", ngImport: i0, template: `\n @for (section of vm.sections(); track section.id) {\n <div class=\"__single-page-section\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n `, isInline: true, styles: [\"axm-questionnaire-viewer-single-page-view{display:flex;height:100%;flex-direction:column;gap:1.5rem;overflow-y:auto;overflow-x:hidden;padding:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex}axm-questionnaire-viewer-single-page-view .__single-page-section{flex-direction:column}axm-questionnaire-viewer-single-page-view .__single-page-section{gap:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{flex-shrink:0}axm-questionnaire-viewer-single-page-view .__single-page-section{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-single-page-view .__section-header{margin-bottom:.5rem}axm-questionnaire-viewer-single-page-view .__section-header{display:flex}axm-questionnaire-viewer-single-page-view .__section-header{flex-direction:column}axm-questionnaire-viewer-single-page-view .__section-header{gap:.125rem}axm-questionnaire-viewer-single-page-view .__section-title{font-size:1.25rem;line-height:1.75rem}axm-questionnaire-viewer-single-page-view .__section-title{font-weight:600}axm-questionnaire-viewer-single-page-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-single-page-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-single-page-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex}axm-questionnaire-viewer-single-page-view .__questions-list{flex-direction:column}axm-questionnaire-viewer-single-page-view .__questions-list{gap:1rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{display:flex}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{flex-direction:column}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{gap:.75rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-radius:.25rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-width:1px}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{padding:1rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXMQuestionnaireViewerQuestionComponent, selector: \"axm-questionnaire-viewer-question\", inputs: [\"question\", \"sectionOrder\", \"questionIndex\", \"showQuestionNumbers\", \"showQuestionCounter\", \"currentPosition\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerSinglePageViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer-single-page-view', template: `\n @for (section of vm.sections(); track section.id) {\n <div class=\"__single-page-section\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXMQuestionnaireViewerQuestionComponent], styles: [\"axm-questionnaire-viewer-single-page-view{display:flex;height:100%;flex-direction:column;gap:1.5rem;overflow-y:auto;overflow-x:hidden;padding:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{display:flex}axm-questionnaire-viewer-single-page-view .__single-page-section{flex-direction:column}axm-questionnaire-viewer-single-page-view .__single-page-section{gap:1rem}axm-questionnaire-viewer-single-page-view .__single-page-section{flex-shrink:0}axm-questionnaire-viewer-single-page-view .__single-page-section{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-single-page-view .__section-header{margin-bottom:.5rem}axm-questionnaire-viewer-single-page-view .__section-header{display:flex}axm-questionnaire-viewer-single-page-view .__section-header{flex-direction:column}axm-questionnaire-viewer-single-page-view .__section-header{gap:.125rem}axm-questionnaire-viewer-single-page-view .__section-title{font-size:1.25rem;line-height:1.75rem}axm-questionnaire-viewer-single-page-view .__section-title{font-weight:600}axm-questionnaire-viewer-single-page-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-single-page-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-single-page-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-single-page-view .__questions-list{display:flex}axm-questionnaire-viewer-single-page-view .__questions-list{flex-direction:column}axm-questionnaire-viewer-single-page-view .__questions-list{gap:1rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{display:flex}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{flex-direction:column}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{gap:.75rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-radius:.25rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{border-width:1px}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{padding:1rem}axm-questionnaire-viewer-single-page-view .__questions-list .__question-item{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXBhZ2Utdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcXVlc3Rpb25uYWlyZS12aWV3ZXIvdmlld3Mvc2luZ2xlLXBhZ2Utdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFckcsWUFBWTtBQUVaLGlDQUFpQztBQUVqQzs7O0dBR0c7QUErREgsTUFBTSxPQUFPLDZDQUE2QztJQTlEMUQ7UUErREksK0NBQStDO1FBRTVCLE9BQUUsR0FBRyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUduRTsrR0FOWSw2Q0FBNkM7bUdBQTdDLDZDQUE2QyxxR0E1RDVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJULG1rRkFpQ1MsWUFBWSwrQkFBRSx1Q0FBdUM7OzRGQUV0RCw2Q0FBNkM7a0JBOUR6RCxTQUFTOytCQUNJLDJDQUEyQyxZQUMzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlCVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQStCcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlLXZpZXdlci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24uY29tcG9uZW50JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50ICAgLS0tLVxuXG4vKipcbiAqIFNpbmdsZSBQYWdlIFZpZXcgQ29tcG9uZW50XG4gKiBEaXNwbGF5cyBhbGwgc2VjdGlvbnMgYW5kIHF1ZXN0aW9ucyBvbiBhIHNpbmdsZSBwYWdlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXNpbmdsZS1wYWdlLXZpZXcnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgICAgICBAZm9yIChzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24uaWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3NpbmdsZS1wYWdlLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICBAaWYgKHZtLnNob3dTZWN0aW9uVGl0bGVzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJfX3NlY3Rpb24tdGl0bGVcIj57eyBzZWN0aW9uLnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzZWN0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiX19zZWN0aW9uLWRlc2NyaXB0aW9uXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3F1ZXN0aW9ucy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHF1ZXN0aW9uIG9mIHNlY3Rpb24ucXVlc3Rpb25zOyB0cmFjayBxdWVzdGlvbi5pZDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1xdWVzdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWN0aW9uT3JkZXJdPVwic2VjdGlvbi5vcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcXVlc3Rpb25JbmRleF09XCJpICsgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1ZXN0aW9uTnVtYmVyc109XCJ2bS5zaG93UXVlc3Rpb25OdW1iZXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dRdWVzdGlvbkNvdW50ZXJdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9heG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1zaW5nbGUtcGFnZS12aWV3IHtcbiAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC02IGF4LXAtNCBheC1oLWZ1bGwgYXgtb3ZlcmZsb3cteS1hdXRvIGF4LW92ZXJmbG93LXgtaGlkZGVuO1xuICAgICAgICAgICAgLl9fc2luZ2xlLXBhZ2Utc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgO1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC1iZy13aGl0ZSBheC1mbGV4LXNocmluay0wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuX19zZWN0aW9uLWhlYWRlciB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTAuNSBheC1tYi0yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuX19zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtdGV4dC14bCBheC1mb250LXNlbWlib2xkIGF4LXRleHQtbmV1dHJhbC05MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3NlY3Rpb24tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC02MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3F1ZXN0aW9ucy1saXN0IHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNDtcblxuICAgICAgICAgICAgICAgIC5fX3F1ZXN0aW9uLWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMyBheC1wLTQgYXgtYm9yZGVyIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC1yb3VuZGVkO1xuICAgICAgICAgICAgICAgICAgICBAYXBwbHkgYXgtYmctbmV1dHJhbC01MDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWE1RdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlVmlld2VyU2luZ2xlUGFnZVZpZXdDb21wb25lbnQge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSBpbmplY3QoQVhNUXVlc3Rpb25uYWlyZVZpZXdlclZpZXdNb2RlbCk7XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXMQuestionnaireViewerViewModel } from '../questionnaire-viewer.viewmodel';\nimport { AXMQuestionnaireViewerQuestionComponent } from '../questionnaire-viewer-question.component';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Component ----\n/**\n * Page Per Group View Component\n * Displays one section (group) per page\n */\nexport class AXMQuestionnaireViewerPagePerGroupViewComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerPagePerGroupViewComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-page-per-group-view\", ngImport: i0, template: `\n @if (vm.currentSection(); as section) {\n <div class=\"__page-section\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n `, isInline: true, styles: [\"axm-questionnaire-viewer-page-per-group-view{display:flex;flex-direction:column;gap:1rem;padding:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{display:flex}axm-questionnaire-viewer-page-per-group-view .__page-section{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__page-section{gap:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{flex-shrink:0}axm-questionnaire-viewer-page-per-group-view .__page-section{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__section-header{display:flex}axm-questionnaire-viewer-page-per-group-view .__section-header{flex-shrink:0}axm-questionnaire-viewer-page-per-group-view .__section-header{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__section-header{gap:.125rem}axm-questionnaire-viewer-page-per-group-view .__section-title{font-size:1.5rem;line-height:2rem}axm-questionnaire-viewer-page-per-group-view .__section-title{font-weight:600}axm-questionnaire-viewer-page-per-group-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-page-per-group-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex}axm-questionnaire-viewer-page-per-group-view .__questions-list{flex:1 1 0%}axm-questionnaire-viewer-page-per-group-view .__questions-list{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__questions-list{gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{display:flex}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{gap:.75rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-radius:.25rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-width:1px}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{padding:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex}axm-questionnaire-viewer-page-per-group-view .__navigation{align-items:center}axm-questionnaire-viewer-page-per-group-view .__navigation{justify-content:space-between}axm-questionnaire-viewer-page-per-group-view .__navigation{border-top-width:1px}axm-questionnaire-viewer-page-per-group-view .__navigation{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__navigation{padding:1rem}axm-questionnaire-viewer-page-per-group-view .__navigation{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXMQuestionnaireViewerQuestionComponent, selector: \"axm-questionnaire-viewer-question\", inputs: [\"question\", \"sectionOrder\", \"questionIndex\", \"showQuestionNumbers\", \"showQuestionCounter\", \"currentPosition\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerPagePerGroupViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer-page-per-group-view', template: `\n @if (vm.currentSection(); as section) {\n <div class=\"__page-section\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXMQuestionnaireViewerQuestionComponent], styles: [\"axm-questionnaire-viewer-page-per-group-view{display:flex;flex-direction:column;gap:1rem;padding:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{display:flex}axm-questionnaire-viewer-page-per-group-view .__page-section{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__page-section{gap:1rem}axm-questionnaire-viewer-page-per-group-view .__page-section{flex-shrink:0}axm-questionnaire-viewer-page-per-group-view .__page-section{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__section-header{display:flex}axm-questionnaire-viewer-page-per-group-view .__section-header{flex-shrink:0}axm-questionnaire-viewer-page-per-group-view .__section-header{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__section-header{gap:.125rem}axm-questionnaire-viewer-page-per-group-view .__section-title{font-size:1.5rem;line-height:2rem}axm-questionnaire-viewer-page-per-group-view .__section-title{font-weight:600}axm-questionnaire-viewer-page-per-group-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-page-per-group-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__questions-list{display:flex}axm-questionnaire-viewer-page-per-group-view .__questions-list{flex:1 1 0%}axm-questionnaire-viewer-page-per-group-view .__questions-list{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__questions-list{gap:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{display:flex}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{flex-direction:column}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{gap:.75rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-radius:.25rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{border-width:1px}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{padding:1rem}axm-questionnaire-viewer-page-per-group-view .__questions-list .__question-item{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__navigation{display:flex}axm-questionnaire-viewer-page-per-group-view .__navigation{align-items:center}axm-questionnaire-viewer-page-per-group-view .__navigation{justify-content:space-between}axm-questionnaire-viewer-page-per-group-view .__navigation{border-top-width:1px}axm-questionnaire-viewer-page-per-group-view .__navigation{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}axm-questionnaire-viewer-page-per-group-view .__navigation{padding:1rem}axm-questionnaire-viewer-page-per-group-view .__navigation{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1wZXItZ3JvdXAtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcXVlc3Rpb25uYWlyZS12aWV3ZXIvdmlld3MvcGFnZS1wZXItZ3JvdXAtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFckcsWUFBWTtBQUVaLGlDQUFpQztBQUVqQzs7O0dBR0c7QUFvRUgsTUFBTSxPQUFPLCtDQUErQztJQW5FNUQ7UUFvRUksK0NBQStDO1FBRTVCLE9BQUUsR0FBRyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUduRTsrR0FOWSwrQ0FBK0M7bUdBQS9DLCtDQUErQyx3R0FqRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJULDh4R0FzQ1MsWUFBWSwrQkFBRSx1Q0FBdUM7OzRGQUV0RCwrQ0FBK0M7a0JBbkUzRCxTQUFTOytCQUNJLDhDQUE4QyxZQUM5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlCVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQW9DcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlLXZpZXdlci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24uY29tcG9uZW50JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50ICAgLS0tLVxuXG4vKipcbiAqIFBhZ2UgUGVyIEdyb3VwIFZpZXcgQ29tcG9uZW50XG4gKiBEaXNwbGF5cyBvbmUgc2VjdGlvbiAoZ3JvdXApIHBlciBwYWdlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXBhZ2UtcGVyLWdyb3VwLXZpZXcnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgICAgICBAaWYgKHZtLmN1cnJlbnRTZWN0aW9uKCk7IGFzIHNlY3Rpb24pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3BhZ2Utc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIEBpZiAodm0uc2hvd1NlY3Rpb25UaXRsZXMoKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3NlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIl9fc2VjdGlvbi10aXRsZVwiPnt7IHNlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJfX3NlY3Rpb24tZGVzY3JpcHRpb25cIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fcXVlc3Rpb25zLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAocXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnM7IHRyYWNrIHF1ZXN0aW9uLmlkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlY3Rpb25PcmRlcl09XCJzZWN0aW9uLm9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbkluZGV4XT1cImkgKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UXVlc3Rpb25OdW1iZXJzXT1cInZtLnNob3dRdWVzdGlvbk51bWJlcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1ZXN0aW9uQ291bnRlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2F4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1xdWVzdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXBhZ2UtcGVyLWdyb3VwLXZpZXcge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtcC00O1xuICAgICAgICAgICAgLl9fcGFnZS1zZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCA7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGF4LWJnLXdoaXRlIGF4LWZsZXgtc2hyaW5rLTA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3NlY3Rpb24taGVhZGVyIHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMC41IGF4LWZsZXgtc2hyaW5rLTA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3NlY3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC10ZXh0LTJ4bCBheC1mb250LXNlbWlib2xkIGF4LXRleHQtbmV1dHJhbC05MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3NlY3Rpb24tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC02MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5fX3F1ZXN0aW9ucy1saXN0IHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1mbGV4LTEgO1xuXG4gICAgICAgICAgICAgICAgLl9fcXVlc3Rpb24taXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0zIGF4LXAtNCBheC1ib3JkZXIgYXgtYm9yZGVyLW5ldXRyYWwtMjAwIGF4LXJvdW5kZWQ7XG4gICAgICAgICAgICAgICAgICAgIEBhcHBseSBheC1iZy1uZXV0cmFsLTUwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlciBheC1wLTQgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLW5ldXRyYWwtMjAwO1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC1iZy13aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIGBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJRdWVzdGlvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJQYWdlUGVyR3JvdXBWaWV3Q29tcG9uZW50IHtcbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gaW5qZWN0KEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXMQuestionnaireViewerViewModel } from '../questionnaire-viewer.viewmodel';\nimport { AXMQuestionnaireViewerQuestionComponent } from '../questionnaire-viewer-question.component';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Component ----\n/**\n * Page Per Question View Component\n * Displays one question per page\n */\nexport class AXMQuestionnaireViewerPagePerQuestionViewComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerPagePerQuestionViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerPagePerQuestionViewComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-page-per-question-view\", ngImport: i0, template: `\n @if (vm.currentQuestion(); as question) {\n <div class=\"__page-question\">\n @if (vm.showSectionTitles() && vm.currentSection()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ vm.currentSection()!.title }}</h2>\n @if (vm.currentSection()!.description) {\n <p class=\"__section-description\">{{ vm.currentSection()!.description }}</p>\n }\n </div>\n }\n\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"vm.currentSectionIndex() + 1\"\n [questionIndex]=\"vm.currentQuestionIndex() + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"vm.showQuestionCounter()\"\n [currentPosition]=\"vm.currentQuestionPosition()\">\n </axm-questionnaire-viewer-question>\n </div>\n }\n `, isInline: true, styles: [\"axm-questionnaire-viewer-page-per-question-view{display:flex;flex-direction:column;gap:1rem;padding:1rem;flex-shrink:0;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-question-view .__section-header{display:flex}axm-questionnaire-viewer-page-per-question-view .__section-header{flex-shrink:0}axm-questionnaire-viewer-page-per-question-view .__section-header{flex-direction:column}axm-questionnaire-viewer-page-per-question-view .__section-header{gap:.125rem}axm-questionnaire-viewer-page-per-question-view .__section-title{font-size:1.25rem;line-height:1.75rem}axm-questionnaire-viewer-page-per-question-view .__section-title{font-weight:600}axm-questionnaire-viewer-page-per-question-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-question-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-page-per-question-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXMQuestionnaireViewerQuestionComponent, selector: \"axm-questionnaire-viewer-question\", inputs: [\"question\", \"sectionOrder\", \"questionIndex\", \"showQuestionNumbers\", \"showQuestionCounter\", \"currentPosition\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerPagePerQuestionViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer-page-per-question-view', template: `\n @if (vm.currentQuestion(); as question) {\n <div class=\"__page-question\">\n @if (vm.showSectionTitles() && vm.currentSection()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ vm.currentSection()!.title }}</h2>\n @if (vm.currentSection()!.description) {\n <p class=\"__section-description\">{{ vm.currentSection()!.description }}</p>\n }\n </div>\n }\n\n <axm-questionnaire-viewer-question\n [question]=\"question\"\n [sectionOrder]=\"vm.currentSectionIndex() + 1\"\n [questionIndex]=\"vm.currentQuestionIndex() + 1\"\n [showQuestionNumbers]=\"vm.showQuestionNumbers()\"\n [showQuestionCounter]=\"vm.showQuestionCounter()\"\n [currentPosition]=\"vm.currentQuestionPosition()\">\n </axm-questionnaire-viewer-question>\n </div>\n }\n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXMQuestionnaireViewerQuestionComponent], styles: [\"axm-questionnaire-viewer-page-per-question-view{display:flex;flex-direction:column;gap:1rem;padding:1rem;flex-shrink:0;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}axm-questionnaire-viewer-page-per-question-view .__section-header{display:flex}axm-questionnaire-viewer-page-per-question-view .__section-header{flex-shrink:0}axm-questionnaire-viewer-page-per-question-view .__section-header{flex-direction:column}axm-questionnaire-viewer-page-per-question-view .__section-header{gap:.125rem}axm-questionnaire-viewer-page-per-question-view .__section-title{font-size:1.25rem;line-height:1.75rem}axm-questionnaire-viewer-page-per-question-view .__section-title{font-weight:600}axm-questionnaire-viewer-page-per-question-view .__section-title{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}axm-questionnaire-viewer-page-per-question-view .__section-description{font-size:.875rem;line-height:1.25rem}axm-questionnaire-viewer-page-per-question-view .__section-description{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1wZXItcXVlc3Rpb24tdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcXVlc3Rpb25uYWlyZS12aWV3ZXIvdmlld3MvcGFnZS1wZXItcXVlc3Rpb24tdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFckcsWUFBWTtBQUVaLGlDQUFpQztBQUVqQzs7O0dBR0c7QUErQ0gsTUFBTSxPQUFPLGtEQUFrRDtJQTlDL0Q7UUErQ0ksK0NBQStDO1FBRTVCLE9BQUUsR0FBRyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUduRTsrR0FOWSxrREFBa0Q7bUdBQWxELGtEQUFrRCwyR0E1Q2pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0JULDZvQ0FvQlMsWUFBWSwrQkFBRSx1Q0FBdUM7OzRGQUV0RCxrREFBa0Q7a0JBOUM5RCxTQUFTOytCQUNJLGlEQUFpRCxZQUNqRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNCVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQWtCcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlLXZpZXdlci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24uY29tcG9uZW50JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50ICAgLS0tLVxuXG4vKipcbiAqIFBhZ2UgUGVyIFF1ZXN0aW9uIFZpZXcgQ29tcG9uZW50XG4gKiBEaXNwbGF5cyBvbmUgcXVlc3Rpb24gcGVyIHBhZ2VcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcGFnZS1wZXItcXVlc3Rpb24tdmlldycsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICh2bS5jdXJyZW50UXVlc3Rpb24oKTsgYXMgcXVlc3Rpb24pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIl9fcGFnZS1xdWVzdGlvblwiPlxuICAgICAgICAgICAgQGlmICh2bS5zaG93U2VjdGlvblRpdGxlcygpICYmIHZtLmN1cnJlbnRTZWN0aW9uKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3NlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiX19zZWN0aW9uLXRpdGxlXCI+e3sgdm0uY3VycmVudFNlY3Rpb24oKSEudGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgIEBpZiAodm0uY3VycmVudFNlY3Rpb24oKSEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIl9fc2VjdGlvbi1kZXNjcmlwdGlvblwiPnt7IHZtLmN1cnJlbnRTZWN0aW9uKCkhLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8YXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICBbc2VjdGlvbk9yZGVyXT1cInZtLmN1cnJlbnRTZWN0aW9uSW5kZXgoKSArIDFcIlxuICAgICAgICAgICAgICAgIFtxdWVzdGlvbkluZGV4XT1cInZtLmN1cnJlbnRRdWVzdGlvbkluZGV4KCkgKyAxXCJcbiAgICAgICAgICAgICAgICBbc2hvd1F1ZXN0aW9uTnVtYmVyc109XCJ2bS5zaG93UXVlc3Rpb25OdW1iZXJzKClcIlxuICAgICAgICAgICAgICAgIFtzaG93UXVlc3Rpb25Db3VudGVyXT1cInZtLnNob3dRdWVzdGlvbkNvdW50ZXIoKVwiXG4gICAgICAgICAgICAgICAgW2N1cnJlbnRQb3NpdGlvbl09XCJ2bS5jdXJyZW50UXVlc3Rpb25Qb3NpdGlvbigpXCI+XG4gICAgICAgICAgICA8L2F4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1xdWVzdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3R5bGVzOiBbYFxuICAgICAgICBheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcGFnZS1wZXItcXVlc3Rpb24tdmlldyB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1wLTQ7XG4gICAgICAgICAgICBAYXBwbHkgYXgtYmctd2hpdGUgYXgtZmxleC1zaHJpbmstMDtcbiAgICAgICAgICAgIC5fX3NlY3Rpb24taGVhZGVyIHtcbiAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0wLjUgYXgtZmxleC1zaHJpbmstMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLl9fc2VjdGlvbi10aXRsZSB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGF4LXRleHQteGwgYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LW5ldXRyYWwtOTAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuX19zZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBAYXBwbHkgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclBhZ2VQZXJRdWVzdGlvblZpZXdDb21wb25lbnQge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSBpbmplY3QoQVhNUXVlc3Rpb25uYWlyZVZpZXdlclZpZXdNb2RlbCk7XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal } from '@angular/core';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDrawerDirectiveModule } from '@acorex/cdk/drawer';\nimport { AXResizableDirective } from '@acorex/cdk/resizable';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPDeviceService } from '@acorex/platform/core';\nimport { AXMQuestionnaireViewerViewModel } from '../questionnaire-viewer.viewmodel';\nimport { AXMQuestionnaireViewerQuestionComponent } from '../questionnaire-viewer-question.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tabs\";\nimport * as i2 from \"@acorex/components/badge\";\nimport * as i3 from \"@acorex/components/drawer\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/decorators\";\n//#endregion\n//#region ---- Component ----\n/**\n * Side Menu View Component\n * Displays sections in a left sidebar (tabs) and all questions from selected section on the right\n */\nexport class AXMQuestionnaireViewerSideMenuViewComponent {\n //#endregion\n //#region ---- Lifecycle ----\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n this.deviceService = inject(AXPDeviceService);\n this.sidebarDrawerCollapsed = signal(true, ...(ngDevMode ? [{ debugName: \"sidebarDrawerCollapsed\" }] : []));\n this.sectionNavigabilityCache = signal(new Map(), ...(ngDevMode ? [{ debugName: \"sectionNavigabilityCache\" }] : []));\n // Update navigability cache when validation state changes\n effect(async () => {\n const sections = this.vm.sections();\n const currentIndex = this.vm.currentSectionIndex();\n const validateBeforeNav = this.vm.validateBeforeNavigation();\n // Only check if validation is enabled\n if (validateBeforeNav && sections.length > 0) {\n const cache = new Map();\n for (let i = 0; i < sections.length; i++) {\n if (i === currentIndex) {\n cache.set(i, true); // Current section is always navigable\n }\n else {\n const navigable = await this.vm.isSectionNavigable(i);\n cache.set(i, navigable);\n }\n }\n this.sectionNavigabilityCache.set(cache);\n }\n else {\n // If validation is disabled, all sections are navigable\n const cache = new Map();\n sections.forEach((_, i) => cache.set(i, true));\n this.sectionNavigabilityCache.set(cache);\n }\n });\n }\n //#endregion\n //#region ---- Methods ----\n /**\n * Handle section tab click\n */\n async handleSectionClick(sectionIndex) {\n await this.vm.navigateToSection(sectionIndex);\n // Close drawer on mobile after selection\n if (this.deviceService.isSmall() || this.deviceService.isMedium()) {\n this.sidebarDrawerCollapsed.set(true);\n }\n }\n /**\n * Get badge count for section (unanswered required questions)\n */\n getSectionBadgeCount(sectionId) {\n return this.vm.getSectionUnansweredRequiredCount(sectionId);\n }\n /**\n * Check if section tab should be disabled\n */\n isSectionDisabled(sectionIndex) {\n const currentIndex = this.vm.currentSectionIndex();\n // Current section is never disabled\n if (sectionIndex === currentIndex) {\n return false;\n }\n // If validation is disabled, no tabs are disabled\n const validateBeforeNav = this.vm.validateBeforeNavigation();\n if (!validateBeforeNav) {\n return false;\n }\n // Check cache\n const cache = this.sectionNavigabilityCache();\n return cache.has(sectionIndex) ? !cache.get(sectionIndex) : false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerSideMenuViewComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-side-menu-view\", ngImport: i0, template: `\n <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 (section of vm.sections(); track section.id; let i = $index) {\n <ax-tab-item\n [text]=\"section.title\"\n (onClick)=\"handleSectionClick(i)\"\n [active]=\"vm.currentSectionIndex() === i\"\n [disabled]=\"isSectionDisabled(i)\">\n @if (getSectionBadgeCount(section.id) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(section.id).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 ax-w-[250px]\">\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (section of vm.sections(); track section.id; let i = $index) {\n <ax-tab-item\n [text]=\"section.title\"\n (onClick)=\"handleSectionClick(i)\"\n [active]=\"vm.currentSectionIndex() === i\"\n [disabled]=\"isSectionDisabled(i)\">\n @if (getSectionBadgeCount(section.id) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(section.id).toString()\" [color]=\"'danger'\">\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 <!-- Mobile Menu Button -->\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 <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n <div class=\"__questions-container\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\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 <div class=\"__questions-container\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n `, isInline: true, styles: [\".__side-menu-container,.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0}.__sidebar-tabs ax-tab-item{padding-top:.75rem;padding-bottom:.75rem}.__sidebar-tabs ax-tab-item{font-weight:600}.__main-content{display:flex;height:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.__mobile-menu-button{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));padding:.5rem}.__questions-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;gap:1rem;overflow-y:auto;padding:1rem}.__section-header{margin-bottom:1rem;display:flex;flex-direction:column;gap:.125rem}.__section-title{font-size:1.5rem;line-height:2rem;font-weight:600;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.__section-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.__questions-list{display:flex;flex:1 1 0%;flex-direction:column;gap:1rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXMQuestionnaireViewerQuestionComponent, selector: \"axm-questionnaire-viewer-question\", inputs: [\"question\", \"sectionOrder\", \"questionIndex\", \"showQuestionNumbers\", \"showQuestionCounter\", \"currentPosition\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i1.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i1.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.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"component\", type: i3.AXDrawerComponent, selector: \"ax-drawer\", inputs: [\"location\", \"showBackdrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"collapsed\", \"singleOpenMode\"], outputs: [\"onBackdropClick\", \"collapsedStateChanged\"] }, { kind: \"component\", type: i3.AXDrawerContainerComponent, selector: \"ax-drawer-container\" }, { kind: \"ngmodule\", type: AXDrawerDirectiveModule }, { kind: \"directive\", type: AXResizableDirective, selector: \"[axResizable]\", inputs: [\"axResizable\", \"minWidth\", \"maxWidth\", \"dblClickAction\", \"width\", \"defaultWidth\"], outputs: [\"axResizableChange\", \"minWidthChange\", \"maxWidthChange\", \"dblClickActionChange\", \"widthChange\", \"defaultWidthChange\", \"onResizingStarted\", \"onResizingEnded\", \"onResizingDblClick\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"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: i5.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i5.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\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerSideMenuViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer-side-menu-view', template: `\n <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 (section of vm.sections(); track section.id; let i = $index) {\n <ax-tab-item\n [text]=\"section.title\"\n (onClick)=\"handleSectionClick(i)\"\n [active]=\"vm.currentSectionIndex() === i\"\n [disabled]=\"isSectionDisabled(i)\">\n @if (getSectionBadgeCount(section.id) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(section.id).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 ax-w-[250px]\">\n <ax-content class=\"__sidebar-content\">\n <ax-tabs class=\"__sidebar-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (section of vm.sections(); track section.id; let i = $index) {\n <ax-tab-item\n [text]=\"section.title\"\n (onClick)=\"handleSectionClick(i)\"\n [active]=\"vm.currentSectionIndex() === i\"\n [disabled]=\"isSectionDisabled(i)\">\n @if (getSectionBadgeCount(section.id) > 0) {\n <ax-badge [text]=\"getSectionBadgeCount(section.id).toString()\" [color]=\"'danger'\">\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 <!-- Mobile Menu Button -->\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 <!-- Questions Content -->\n @if (vm.currentSection(); as section) {\n <div class=\"__questions-container\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\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 <div class=\"__questions-container\">\n @if (vm.showSectionTitles()) {\n <div class=\"__section-header\">\n <h2 class=\"__section-title\">{{ section.title }}</h2>\n @if (section.description) {\n <p class=\"__section-description\">{{ section.description }}</p>\n }\n </div>\n }\n\n <div class=\"__questions-list\">\n @for (question of section.questions; track question.id; 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 </axm-questionnaire-viewer-question>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXMQuestionnaireViewerQuestionComponent,\n AXTabsModule,\n AXBadgeModule,\n AXDrawerModule,\n AXDrawerDirectiveModule,\n AXResizableDirective,\n AXButtonModule,\n AXDecoratorModule,\n ], styles: [\".__side-menu-container,.__drawer-container{display:flex;height:100%;width:100%;overflow:hidden}.__sidebar-drawer{height:100%;border-inline-end-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.__sidebar-content{height:100%;overflow-y:auto}.__desktop-sidebar{display:flex;height:100%;min-height:0px;flex-shrink:0;flex-direction:column;overflow:hidden;border-inline-end-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.__sidebar-tabs{--ax-comp-tabs-default-border-radius: 0;height:100%;min-height:0px;flex:1 1 0%;overflow-y:auto}.__sidebar-tabs ax-tab-item{margin-top:0;margin-bottom:0}.__sidebar-tabs ax-tab-item{padding-top:.75rem;padding-bottom:.75rem}.__sidebar-tabs ax-tab-item{font-weight:600}.__main-content{display:flex;height:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.__mobile-menu-button{flex-shrink:0;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1));padding:.5rem}.__questions-container{display:flex;min-height:0px;flex:1 1 0%;flex-direction:column;gap:1rem;overflow-y:auto;padding:1rem}.__section-header{margin-bottom:1rem;display:flex;flex-direction:column;gap:.125rem}.__section-title{font-size:1.5rem;line-height:2rem;font-weight:600;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.__section-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.__questions-list{display:flex;flex:1 1 0%;flex-direction:column;gap:1rem}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3ZpZXdzL3NpZGUtbWVudS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7O0FBRXJHLFlBQVk7QUFFWixpQ0FBaUM7QUFFakM7OztHQUdHO0FBcU1ILE1BQU0sT0FBTywyQ0FBMkM7SUFRcEQsWUFBWTtJQUVaLGlDQUFpQztJQUVqQztRQVhBLCtDQUErQztRQUU1QixPQUFFLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0Msa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6QywyQkFBc0IsR0FBRyxNQUFNLENBQVUsSUFBSSxrRUFBQyxDQUFDO1FBQy9DLDZCQUF3QixHQUFHLE1BQU0sQ0FBdUIsSUFBSSxHQUFHLEVBQUUsb0VBQUMsQ0FBQztRQU9sRiwwREFBMEQ7UUFDMUQsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFFN0Qsc0NBQXNDO1lBQ3RDLElBQUksaUJBQWlCLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7Z0JBRXpDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3ZDLElBQUksQ0FBQyxLQUFLLFlBQVksRUFBRSxDQUFDO3dCQUNyQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLHNDQUFzQztvQkFDOUQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQzVCLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLENBQUM7aUJBQU0sQ0FBQztnQkFDSix3REFBd0Q7Z0JBQ3hELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO2dCQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtJQUVaLCtCQUErQjtJQUUvQjs7T0FFRztJQUNPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxZQUFvQjtRQUNuRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMseUNBQXlDO1FBQ3pDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ08sb0JBQW9CLENBQUMsU0FBaUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNPLGlCQUFpQixDQUFDLFlBQW9CO1FBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUVuRCxvQ0FBb0M7UUFDcEMsSUFBSSxZQUFZLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELGtEQUFrRDtRQUNsRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdkUsQ0FBQzsrR0FwRlEsMkNBQTJDO21HQUEzQywyQ0FBMkMsbUdBbE0xQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlIVCxzeERBOERHLFlBQVksK0JBQ1osdUNBQXVDLHFNQUN2QyxZQUFZLGthQUNaLGFBQWEseUlBQ2IsY0FBYyxnWUFDZCx1QkFBdUIsK0JBQ3ZCLG9CQUFvQixvVkFDcEIsY0FBYyw2WEFDZCxpQkFBaUI7OzRGQUdaLDJDQUEyQztrQkFwTXZELFNBQVM7K0JBQ0kseUNBQXlDLFlBQ3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUhULG1CQTREZ0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxZQUFZO3dCQUNaLHVDQUF1Qzt3QkFDdkMsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyYXdlckRpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY2RrL2RyYXdlcic7XG5pbXBvcnQgeyBBWFJlc2l6YWJsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlLXZpZXdlci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24uY29tcG9uZW50JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50ICAgLS0tLVxuXG4vKipcbiAqIFNpZGUgTWVudSBWaWV3IENvbXBvbmVudFxuICogRGlzcGxheXMgc2VjdGlvbnMgaW4gYSBsZWZ0IHNpZGViYXIgKHRhYnMpIGFuZCBhbGwgcXVlc3Rpb25zIGZyb20gc2VsZWN0ZWQgc2VjdGlvbiBvbiB0aGUgcmlnaHRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItc2lkZS1tZW51LXZpZXcnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJfX3NpZGUtbWVudS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDwhLS0gRGVza3RvcCBTaWRlYmFyIChMYXJnZSBzY3JlZW5zKSAtLT5cbiAgICAgICAgICAgIEBpZiAoZGV2aWNlU2VydmljZS5pc0xhcmdlKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2Rlc2t0b3Atc2lkZWJhclwiIFtheFJlc2l6YWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGF4LXRhYnMgY2xhc3M9XCJfX3NpZGViYXItdGFic1wiIFtsb29rXT1cIid3aXRoLWxpbmUtY29sb3InXCIgW2xvY2F0aW9uXT1cIidlbmQnXCIgW2ZpdFBhcmVudF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5pZDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJzZWN0aW9uLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNlY3Rpb25DbGljayhpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInZtLmN1cnJlbnRTZWN0aW9uSW5kZXgoKSA9PT0gaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTZWN0aW9uRGlzYWJsZWQoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZ2V0U2VjdGlvbkJhZGdlQ291bnQoc2VjdGlvbi5pZCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwiZ2V0U2VjdGlvbkJhZGdlQ291bnQoc2VjdGlvbi5pZCkudG9TdHJpbmcoKVwiIFtjb2xvcl09XCInZGFuZ2VyJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYXgtdGFicz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIE1vYmlsZS9UYWJsZXQ6IERyYXdlciBDb250YWluZXIgLS0+XG4gICAgICAgICAgICBAaWYgKGRldmljZVNlcnZpY2UuaXNTbWFsbCgpIHx8IGRldmljZVNlcnZpY2UuaXNNZWRpdW0oKSkge1xuICAgICAgICAgICAgPGF4LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJfX2RyYXdlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIFNpZGViYXIgRHJhd2VyIChNb2JpbGUpIC0tPlxuICAgICAgICAgICAgICAgIDxheC1kcmF3ZXJcbiAgICAgICAgICAgICAgICAgICAgI3NpZGViYXJEcmF3ZXJcbiAgICAgICAgICAgICAgICAgICAgW2xvY2F0aW9uXT1cIidzdGFydCdcIlxuICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInb3ZlcmxheSdcIlxuICAgICAgICAgICAgICAgICAgICBbY29sbGFwc2VkXT1cInNpZGViYXJEcmF3ZXJDb2xsYXBzZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbG9zZU9uQmFja2Ryb3BDbGlja109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQmFja2Ryb3BDbGljayk9XCJzaWRlYmFyRHJhd2VyQ29sbGFwc2VkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiX19zaWRlYmFyLWRyYXdlciBheC13LVsyNTBweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJfX3NpZGViYXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRhYnMgY2xhc3M9XCJfX3NpZGViYXItdGFic1wiIFtsb29rXT1cIid3aXRoLWxpbmUtY29sb3InXCIgW2xvY2F0aW9uXT1cIidlbmQnXCIgW2ZpdFBhcmVudF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiB2bS5zZWN0aW9ucygpOyB0cmFjayBzZWN0aW9uLmlkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC10YWItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJzZWN0aW9uLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2VjdGlvbkNsaWNrKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJ2bS5jdXJyZW50U2VjdGlvbkluZGV4KCkgPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTZWN0aW9uRGlzYWJsZWQoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnZXRTZWN0aW9uQmFkZ2VDb3VudChzZWN0aW9uLmlkKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cImdldFNlY3Rpb25CYWRnZUNvdW50KHNlY3Rpb24uaWQpLnRvU3RyaW5nKClcIiBbY29sb3JdPVwiJ2RhbmdlcidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC10YWJzPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9heC1kcmF3ZXI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE1haW4gQ29udGVudCAoTW9iaWxlKSAtLT5cbiAgICAgICAgICAgICAgICA8YXgtY29udGVudCBjbGFzcz1cIl9fbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTW9iaWxlIE1lbnUgQnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19tb2JpbGUtbWVudS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwic2lkZWJhckRyYXdlckNvbGxhcHNlZC5zZXQoIXNpZGViYXJEcmF3ZXJDb2xsYXBzZWQoKSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQgZmEtYmFyc1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIFF1ZXN0aW9ucyBDb250ZW50IC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHZtLmN1cnJlbnRTZWN0aW9uKCk7IGFzIHNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fcXVlc3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh2bS5zaG93U2VjdGlvblRpdGxlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cIl9fc2VjdGlvbi10aXRsZVwiPnt7IHNlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiX19zZWN0aW9uLWRlc2NyaXB0aW9uXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fcXVlc3Rpb25zLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9uczsgdHJhY2sgcXVlc3Rpb24uaWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1xdWVzdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VjdGlvbk9yZGVyXT1cInNlY3Rpb24ub3JkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlc3Rpb25JbmRleF09XCJpICsgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UXVlc3Rpb25OdW1iZXJzXT1cInZtLnNob3dRdWVzdGlvbk51bWJlcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UXVlc3Rpb25Db3VudGVyXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICAgICAgPC9heC1kcmF3ZXItY29udGFpbmVyPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8IS0tIERlc2t0b3AgTWFpbiBDb250ZW50IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPCEtLSBRdWVzdGlvbnMgQ29udGVudCAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKHZtLmN1cnJlbnRTZWN0aW9uKCk7IGFzIHNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19xdWVzdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodm0uc2hvd1NlY3Rpb25UaXRsZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19zZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiX19zZWN0aW9uLXRpdGxlXCI+e3sgc2VjdGlvbi50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiX19zZWN0aW9uLWRlc2NyaXB0aW9uXCI+e3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19xdWVzdGlvbnMtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAocXVlc3Rpb24gb2Ygc2VjdGlvbi5xdWVzdGlvbnM7IHRyYWNrIHF1ZXN0aW9uLmlkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1xdWVzdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlY3Rpb25PcmRlcl09XCJzZWN0aW9uLm9yZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlc3Rpb25JbmRleF09XCJpICsgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dRdWVzdGlvbk51bWJlcnNdPVwidm0uc2hvd1F1ZXN0aW9uTnVtYmVycygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1ZXN0aW9uQ291bnRlcl09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcXVlc3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgIC5fX3NpZGUtbWVudS1jb250YWluZXIge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtaC1mdWxsIGF4LXctZnVsbCBheC1vdmVyZmxvdy1oaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuX19kcmF3ZXItY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBhcHBseSBheC1mbGV4IGF4LWgtZnVsbCBheC13LWZ1bGwgYXgtb3ZlcmZsb3ctaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fc2lkZWJhci1kcmF3ZXIge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWJnLXdoaXRlIGF4LWJvcmRlci1lIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC1oLWZ1bGw7XG4gICAgICAgIH1cblxuICAgICAgICAuX19zaWRlYmFyLWNvbnRlbnQge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWgtZnVsbCBheC1vdmVyZmxvdy15LWF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuX19kZXNrdG9wLXNpZGViYXIge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWJvcmRlci1lIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC1iZy13aGl0ZSBheC1mbGV4LXNocmluay0wIGF4LWgtZnVsbCBheC1vdmVyZmxvdy1oaWRkZW4gYXgtZmxleCBheC1mbGV4LWNvbCBheC1taW4taC0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fc2lkZWJhci10YWJzIHtcbiAgICAgICAgICAgIC0tYXgtY29tcC10YWJzLWRlZmF1bHQtYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIEBhcHBseSBheC1oLWZ1bGwgYXgtb3ZlcmZsb3cteS1hdXRvIGF4LWZsZXgtMSBheC1taW4taC0wO1xuICAgICAgICAgICAgYXgtdGFiLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBhcHBseSBheC1mb250LXNlbWlib2xkIGF4LW15LTAgYXgtcHktMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5fX21haW4tY29udGVudCB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1mbGV4LTEgYXgtaC1mdWxsIGF4LW92ZXJmbG93LWhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5fX21vYmlsZS1tZW51LWJ1dHRvbiB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtcC0yIGF4LWJvcmRlci1iIGF4LWJvcmRlci1uZXV0cmFsLTIwMCBheC1mbGV4LXNocmluay0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1wLTQgYXgtZmxleC0xIGF4LW92ZXJmbG93LXktYXV0byBheC1taW4taC0wO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fc2VjdGlvbi1oZWFkZXIge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTAuNSBheC1tYi00O1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fc2VjdGlvbi10aXRsZSB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtdGV4dC0yeGwgYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LW5ldXRyYWwtOTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fc2VjdGlvbi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBAYXBwbHkgYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLl9fcXVlc3Rpb25zLWxpc3Qge1xuICAgICAgICAgICAgQGFwcGx5IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtZmxleC0xO1xuICAgICAgICB9XG4gICAgYCxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWE1RdWVzdGlvbm5haXJlVmlld2VyUXVlc3Rpb25Db21wb25lbnQsXG4gICAgICAgIEFYVGFic01vZHVsZSxcbiAgICAgICAgQVhCYWRnZU1vZHVsZSxcbiAgICAgICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgICAgIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlLFxuICAgICAgICBBWFJlc2l6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJTaWRlTWVudVZpZXdDb21wb25lbnQge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdm0gPSBpbmplY3QoQVhNUXVlc3Rpb25uYWlyZVZpZXdlclZpZXdNb2RlbCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRldmljZVNlcnZpY2UgPSBpbmplY3QoQVhQRGV2aWNlU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNpZGViYXJEcmF3ZXJDb2xsYXBzZWQgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlY3Rpb25OYXZpZ2FiaWxpdHlDYWNoZSA9IHNpZ25hbDxNYXA8bnVtYmVyLCBib29sZWFuPj4obmV3IE1hcCgpKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBMaWZlY3ljbGUgICAtLS0tXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gVXBkYXRlIG5hdmlnYWJpbGl0eSBjYWNoZSB3aGVuIHZhbGlkYXRpb24gc3RhdGUgY2hhbmdlc1xuICAgICAgICBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnZtLnNlY3Rpb25zKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnZtLmN1cnJlbnRTZWN0aW9uSW5kZXgoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlQmVmb3JlTmF2ID0gdGhpcy52bS52YWxpZGF0ZUJlZm9yZU5hdmlnYXRpb24oKTtcblxuICAgICAgICAgICAgLy8gT25seSBjaGVjayBpZiB2YWxpZGF0aW9uIGlzIGVuYWJsZWRcbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZUJlZm9yZU5hdiAmJiBzZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPG51bWJlciwgYm9vbGVhbj4oKTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IGN1cnJlbnRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUuc2V0KGksIHRydWUpOyAvLyBDdXJyZW50IHNlY3Rpb24gaXMgYWx3YXlzIG5hdmlnYWJsZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmF2aWdhYmxlID0gYXdhaXQgdGhpcy52bS5pc1NlY3Rpb25OYXZpZ2FibGUoaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZS5zZXQoaSwgbmF2aWdhYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbk5hdmlnYWJpbGl0eUNhY2hlLnNldChjYWNoZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIElmIHZhbGlkYXRpb24gaXMgZGlzYWJsZWQsIGFsbCBzZWN0aW9ucyBhcmUgbmF2aWdhYmxlXG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGUgPSBuZXcgTWFwPG51bWJlciwgYm9vbGVhbj4oKTtcbiAgICAgICAgICAgICAgICBzZWN0aW9ucy5mb3JFYWNoKChfLCBpKSA9PiBjYWNoZS5zZXQoaSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbk5hdmlnYWJpbGl0eUNhY2hlLnNldChjYWNoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIHNlY3Rpb24gdGFiIGNsaWNrXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlY3Rpb25DbGljayhzZWN0aW9uSW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnZtLm5hdmlnYXRlVG9TZWN0aW9uKHNlY3Rpb25JbmRleCk7XG4gICAgICAgIC8vIENsb3NlIGRyYXdlciBvbiBtb2JpbGUgYWZ0ZXIgc2VsZWN0aW9uXG4gICAgICAgIGlmICh0aGlzLmRldmljZVNlcnZpY2UuaXNTbWFsbCgpIHx8IHRoaXMuZGV2aWNlU2VydmljZS5pc01lZGl1bSgpKSB7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJEcmF3ZXJDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGJhZGdlIGNvdW50IGZvciBzZWN0aW9uICh1bmFuc3dlcmVkIHJlcXVpcmVkIHF1ZXN0aW9ucylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0U2VjdGlvbkJhZGdlQ291bnQoc2VjdGlvbklkOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy52bS5nZXRTZWN0aW9uVW5hbnN3ZXJlZFJlcXVpcmVkQ291bnQoc2VjdGlvbklkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBzZWN0aW9uIHRhYiBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNTZWN0aW9uRGlzYWJsZWQoc2VjdGlvbkluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy52bS5jdXJyZW50U2VjdGlvbkluZGV4KCk7XG5cbiAgICAgICAgLy8gQ3VycmVudCBzZWN0aW9uIGlzIG5ldmVyIGRpc2FibGVkXG4gICAgICAgIGlmIChzZWN0aW9uSW5kZXggPT09IGN1cnJlbnRJbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdmFsaWRhdGlvbiBpcyBkaXNhYmxlZCwgbm8gdGFicyBhcmUgZGlzYWJsZWRcbiAgICAgICAgY29uc3QgdmFsaWRhdGVCZWZvcmVOYXYgPSB0aGlzLnZtLnZhbGlkYXRlQmVmb3JlTmF2aWdhdGlvbigpO1xuICAgICAgICBpZiAoIXZhbGlkYXRlQmVmb3JlTmF2KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBjYWNoZVxuICAgICAgICBjb25zdCBjYWNoZSA9IHRoaXMuc2VjdGlvbk5hdmlnYWJpbGl0eUNhY2hlKCk7XG4gICAgICAgIHJldHVybiBjYWNoZS5oYXMoc2VjdGlvbkluZGV4KSA/ICFjYWNoZS5nZXQoc2VjdGlvbkluZGV4KSEgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPWidgetContainerComponent, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXMQuestionnaireViewerViewModel } from './questionnaire-viewer.viewmodel';\nimport { AXMQuestionnaireViewerSinglePageViewComponent } from './views/single-page-view.component';\nimport { AXMQuestionnaireViewerPagePerGroupViewComponent } from './views/page-per-group-view.component';\nimport { AXMQuestionnaireViewerPagePerQuestionViewComponent } from './views/page-per-question-view.component';\nimport { AXMQuestionnaireViewerSideMenuViewComponent } from './views/side-menu-view.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/form\";\nimport * as i2 from \"@acorex/platform/layout/widget-core\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\n//#endregion\n//#region ---- Component ----\n/**\n * Questionnaire Viewer Component\n * Renders a questionnaire for viewing/answering with configurable display modes\n */\nexport class AXMQuestionnaireViewerComponent {\n //#endregion\n //#region ---- Lifecycle ----\n constructor() {\n //#region ---- Services & Dependencies ----\n this.vm = inject(AXMQuestionnaireViewerViewModel);\n //#endregion\n //#region ---- Inputs ----\n /**\n * Questionnaire ID to load and display (required if structure is not provided)\n */\n this.questionnaireId = input(undefined, ...(ngDevMode ? [{ debugName: \"questionnaireId\" }] : []));\n /**\n * Structure data for preview mode (used when questionnaireId is not provided)\n */\n this.structure = input(undefined, ...(ngDevMode ? [{ debugName: \"structure\" }] : []));\n /**\n * Viewer configuration\n * Note: If properties are undefined, displaySettings from structure will be used\n */\n this.config = input(undefined, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n /**\n * Initial answers to pre-fill the questionnaire\n */\n this.initialAnswers = input({}, ...(ngDevMode ? [{ debugName: \"initialAnswers\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n /**\n * Emitted when answers change\n */\n this.answersChanged = output();\n /**\n * Emitted when a question is answered\n */\n this.questionAnswered = output();\n //#endregion\n //#region ---- View References ----\n /**\n * Form reference for validation\n */\n this.form = viewChild('form', ...(ngDevMode ? [{ debugName: \"form\" }] : []));\n /**\n * Widget container reference for context access\n */\n this.widgetContainer = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"widgetContainer\" }] : []));\n // Register form and widget container when available\n effect(() => {\n const form = this.form();\n if (form) {\n this.vm.registerForm(form);\n }\n });\n effect(() => {\n const container = this.widgetContainer();\n if (container) {\n this.vm.registerWidgetContainer(container);\n }\n });\n // Load questionnaire when ID or structure changes\n effect(() => {\n const id = this.questionnaireId();\n const structure = this.structure();\n const config = this.config();\n const initialAnswers = this.initialAnswers();\n if (id) {\n this.vm.loadQuestionnaire(id, initialAnswers, config);\n }\n else if (structure) {\n if (structure.sections && structure.sections.length > 0) {\n this.vm.loadStructure(structure, config, initialAnswers);\n }\n else {\n // Structure exists but has no sections - set empty state\n this.vm.loadStructure({ sections: [] }, config, initialAnswers);\n }\n }\n });\n // Start timer if enabled\n effect(() => {\n const shouldShowTimer = this.vm.showTimer();\n const timeLimit = this.vm.timerTimeLimit();\n if (shouldShowTimer && timeLimit) {\n this.vm.startTimer();\n }\n else {\n this.vm.stopTimer();\n }\n });\n }\n //#endregion\n //#region ---- Public API - State Access ----\n /**\n * Get viewmodel instance (for accessing computed properties)\n */\n get viewmodel() {\n return this.vm;\n }\n /**\n * Check if can navigate previous\n */\n get canNavigatePrevious() {\n return this.vm.canNavigatePrevious();\n }\n /**\n * Check if can navigate next\n */\n get canNavigateNext() {\n return this.vm.canNavigateNext();\n }\n /**\n * Get current view mode\n */\n get viewMode() {\n return this.vm.viewMode();\n }\n /**\n * Check if we're on the last step\n */\n get isLastStep() {\n return this.vm.isLastStep();\n }\n /**\n * Check if all required questions are answered\n */\n get areAllRequiredQuestionsAnswered() {\n return this.vm.areAllRequiredQuestionsAnswered();\n }\n //#endregion\n //#region ---- Public API Methods ----\n /**\n * Navigate to next question/section\n * Validates current page before navigating\n * @returns true if navigation succeeded, false if validation failed\n */\n async navigateNext() {\n return await this.vm.navigateNext();\n }\n /**\n * Navigate to previous question/section\n * @returns true if navigation succeeded\n */\n async navigatePrevious() {\n return await this.vm.navigatePrevious();\n }\n /**\n * Navigate to specific section\n * Validates current page before navigating\n * @param index Section index (0-based)\n * @returns true if navigation succeeded, false if validation failed\n */\n async navigateToSection(index) {\n return await this.vm.navigateToSection(index);\n }\n /**\n * Navigate to specific question\n * Validates current page before navigating\n * @param sectionIndex Section index (0-based)\n * @param questionIndex Question index (0-based)\n * @returns true if navigation succeeded, false if validation failed\n */\n async navigateToQuestion(sectionIndex, questionIndex) {\n return await this.vm.navigateToQuestion(sectionIndex, questionIndex);\n }\n /**\n * Validate all visible questions on current page\n * @returns Validation result with errors\n */\n async validateCurrentPage() {\n return await this.vm.validateCurrentPage();\n }\n /**\n * Validate all questions in entire questionnaire\n * @returns Validation result with errors\n */\n async validateAllQuestions() {\n return await this.vm.validateAllQuestions();\n }\n /**\n * Get all answers from context\n */\n getAllAnswers() {\n return this.vm.getAllAnswers();\n }\n /**\n * Get questions with their corresponding answers\n */\n getQuestionsWithAnswers() {\n return this.vm.getQuestionsWithAnswers();\n }\n /**\n * Submit questionnaire\n * Validates all questions before submitting\n * @returns Submit result with success status, answers, and errors if any\n */\n async submit() {\n return await this.vm.submit();\n }\n //#endregion\n //#region ---- Event Handlers ----\n /**\n * Handle context changes for auto-save\n */\n handleContextChanged() {\n const answers = this.vm.getAllAnswers();\n this.answersChanged.emit(answers);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", 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 [context]=\\\"{}\\\" (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 <!-- Dynamic View Content -->\\n @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-form>\\n </div>\\n }\\n</axp-widgets-container>\", styles: [\".axm-questionnaire-viewer{display:flex;height:60vh;width:100%;flex-direction:column}.axm-questionnaire-viewer ax-form{display:flex;height:100%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;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 1 0%;flex-direction:column;overflow:hidden}.axm-questionnaire-viewer .__question-item{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axm-questionnaire-viewer .__question-item.__answered{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-300),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-50),.3)}.axm-questionnaire-viewer .__question-item .__question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right{display:flex;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__question-title{flex:1 1 0%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-success-800),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-widget{margin-top:.5rem}.axm-questionnaire-viewer .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i1.AXFormComponent, selector: \"ax-form\", inputs: [\"disabled\", \"readonly\", \"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i2.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"component\", type: \n // View components\n 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: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-questionnaire-viewer', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXTranslationModule,\n AXPStateMessageComponent,\n AXFormModule,\n AXDecoratorModule,\n AXPWidgetCoreModule,\n // View components\n AXMQuestionnaireViewerSinglePageViewComponent,\n AXMQuestionnaireViewerPagePerGroupViewComponent,\n AXMQuestionnaireViewerPagePerQuestionViewComponent,\n AXMQuestionnaireViewerSideMenuViewComponent,\n ], providers: [AXMQuestionnaireViewerViewModel], encapsulation: ViewEncapsulation.None, host: {\n class: 'axm-questionnaire-viewer',\n }, template: \"<axp-widgets-container #widgetContainer [context]=\\\"{}\\\" (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 <!-- Dynamic View Content -->\\n @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-form>\\n </div>\\n }\\n</axp-widgets-container>\", styles: [\".axm-questionnaire-viewer{display:flex;height:60vh;width:100%;flex-direction:column}.axm-questionnaire-viewer ax-form{display:flex;height:100%;flex-direction:column}.axm-questionnaire-viewer axp-widgets-container{display:flex;height:100%;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 1 0%;flex-direction:column;overflow:hidden}.axm-questionnaire-viewer .__question-item{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axm-questionnaire-viewer .__question-item.__answered{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-300),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-50),.3)}.axm-questionnaire-viewer .__question-item .__question-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left{display:flex;flex-shrink:0;align-items:center;gap:.75rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left .__question-number{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-600),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-left .__question-counter{font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right{display:flex;flex:1 1 0%;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__question-title{flex:1 1 0%;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__answered-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-success-800),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-header .__question-header-right .__required-badge{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-800),var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.axm-questionnaire-viewer .__question-item .__question-widget{margin-top:.5rem}.axm-questionnaire-viewer .__widget-placeholder{border-radius:.25rem;border-width:1px;border-style:dashed;padding:1rem;font-size:.875rem;line-height:1.25rem;font-style:italic;--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { questionnaireId: [{ type: i0.Input, args: [{ isSignal: true, alias: \"questionnaireId\", required: false }] }], structure: [{ type: i0.Input, args: [{ isSignal: true, alias: \"structure\", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: \"config\", required: false }] }], initialAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: \"initialAnswers\", required: false }] }], answersChanged: [{ type: i0.Output, args: [\"answersChanged\"] }], questionAnswered: [{ type: i0.Output, args: [\"questionAnswered\"] }], form: [{ type: i0.ViewChild, args: ['form', { isSignal: true }] }], widgetContainer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9xdWVzdGlvbm5haXJlLXZpZXdlci9xdWVzdGlvbm5haXJlLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR2xFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxN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QkFBb0I7UUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXZQUSwrQkFBK0I7bUdBQS9CLCtCQUErQixzd0JBTjdCLENBQUMsK0JBQStCLENBQUMsMEtBOER1QiwyQkFBMkIsZ0VDekdsRyx3eERBK0J3QixnNUdEQWhCLFlBQVksOEJBQ1osbUJBQW1CLCtCQUNuQix3QkFBd0IsMEhBQ3hCLFlBQVksa09BQ1osaUJBQWlCLDhCQUNqQixtQkFBbUI7Z0JBQ25CLGtCQUFrQjtnQkFDbEIsNkNBQTZDLHNGQUM3QywrQ0FBK0MseUZBQy9DLGtEQUFrRCw0RkFDbEQsMkNBQTJDOzs0RkFRdEMsK0JBQStCO2tCQXhCM0MsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQiw2Q0FBNkM7d0JBQzdDLCtDQUErQzt3QkFDL0Msa0RBQWtEO3dCQUNsRCwyQ0FBMkM7cUJBQzlDLGFBQ1UsQ0FBQywrQkFBK0IsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsMEJBQTBCO3FCQUNwQzswbkJBcUQyQyxNQUFNLDZGQUtpQiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50LCBBWFBXaWRnZXRDb3JlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlQnVpbGRlclZhbHVlIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS1idWlsZGVyL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci50eXBlcyc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlVmlld2VyQ29uZmlnIH0gZnJvbSAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci50eXBlcyc7XG5pbXBvcnQgeyBBWE1RdWVzdGlvbm5haXJlVmlld2VyVmlld01vZGVsIH0gZnJvbSAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclNpbmdsZVBhZ2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi92aWV3cy9zaW5nbGUtcGFnZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1RdWVzdGlvbm5haXJlVmlld2VyUGFnZVBlckdyb3VwVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvcGFnZS1wZXItZ3JvdXAtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclBhZ2VQZXJRdWVzdGlvblZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdzL3BhZ2UtcGVyLXF1ZXN0aW9uLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJTaWRlTWVudVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdzL3NpZGUtbWVudS12aWV3LmNvbXBvbmVudCc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCAgIC0tLS1cblxuLyoqXG4gKiBRdWVzdGlvbm5haXJlIFZpZXdlciBDb21wb25lbnRcbiAqIFJlbmRlcnMgYSBxdWVzdGlvbm5haXJlIGZvciB2aWV3aW5nL2Fuc3dlcmluZyB3aXRoIGNvbmZpZ3VyYWJsZSBkaXNwbGF5IG1vZGVzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb25uYWlyZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgICAgIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCxcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICAgICAgLy8gVmlldyBjb21wb25lbnRzXG4gICAgICAgIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJTaW5nbGVQYWdlVmlld0NvbXBvbmVudCxcbiAgICAgICAgQVhNUXVlc3Rpb25uYWlyZVZpZXdlclBhZ2VQZXJHcm91cFZpZXdDb21wb25lbnQsXG4gICAgICAgIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJQYWdlUGVyUXVlc3Rpb25WaWV3Q29tcG9uZW50LFxuICAgICAgICBBWE1RdWVzdGlvbm5haXJlVmlld2VyU2lkZU1lbnVWaWV3Q29tcG9uZW50LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbQVhNUXVlc3Rpb25uYWlyZVZpZXdlclZpZXdNb2RlbF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlVmlld2VyQ29tcG9uZW50IHtcbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gaW5qZWN0KEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJWaWV3TW9kZWwpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0cyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIFF1ZXN0aW9ubmFpcmUgSUQgdG8gbG9hZCBhbmQgZGlzcGxheSAocmVxdWlyZWQgaWYgc3RydWN0dXJlIGlzIG5vdCBwcm92aWRlZClcbiAgICAgKi9cbiAgICBxdWVzdGlvbm5haXJlSWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJ1Y3R1cmUgZGF0YSBmb3IgcHJldmlldyBtb2RlICh1c2VkIHdoZW4gcXVlc3Rpb25uYWlyZUlkIGlzIG5vdCBwcm92aWRlZClcbiAgICAgKi9cbiAgICBzdHJ1Y3R1cmUgPSBpbnB1dDxRdWVzdGlvbm5haXJlQnVpbGRlclZhbHVlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqXG4gICAgICogVmlld2VyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBOb3RlOiBJZiBwcm9wZXJ0aWVzIGFyZSB1bmRlZmluZWQsIGRpc3BsYXlTZXR0aW5ncyBmcm9tIHN0cnVjdHVyZSB3aWxsIGJlIHVzZWRcbiAgICAgKi9cbiAgICBjb25maWcgPSBpbnB1dDxRdWVzdGlvbm5haXJlVmlld2VyQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBhbnN3ZXJzIHRvIHByZS1maWxsIHRoZSBxdWVzdGlvbm5haXJlXG4gICAgICovXG4gICAgaW5pdGlhbEFuc3dlcnMgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7fSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0cyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBhbnN3ZXJzIGNoYW5nZVxuICAgICAqL1xuICAgIGFuc3dlcnNDaGFuZ2VkID0gb3V0cHV0PFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYSBxdWVzdGlvbiBpcyBhbnN3ZXJlZFxuICAgICAqL1xuICAgIHF1ZXN0aW9uQW5zd2VyZWQgPSBvdXRwdXQ8eyBxdWVzdGlvbklkOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBWaWV3IFJlZmVyZW5jZXMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHJlZmVyZW5jZSBmb3IgdmFsaWRhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBmb3JtID0gdmlld0NoaWxkPEFYRm9ybUNvbXBvbmVudD4oJ2Zvcm0nKTtcblxuICAgIC8qKlxuICAgICAqIFdpZGdldCBjb250YWluZXIgcmVmZXJlbmNlIGZvciBjb250ZXh0IGFjY2Vzc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aWRnZXRDb250YWluZXIgPSB2aWV3Q2hpbGQ8QVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50PihBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSAgIC0tLS1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBSZWdpc3RlciBmb3JtIGFuZCB3aWRnZXQgY29udGFpbmVyIHdoZW4gYXZhaWxhYmxlXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtKCk7XG4gICAgICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgICAgICAgIHRoaXMudm0ucmVnaXN0ZXJGb3JtKGZvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy53aWRnZXRDb250YWluZXIoKTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZtLnJlZ2lzdGVyV2lkZ2V0Q29udGFpbmVyKGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIExvYWQgcXVlc3Rpb25uYWlyZSB3aGVuIElEIG9yIHN0cnVjdHVyZSBjaGFuZ2VzXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IHRoaXMucXVlc3Rpb25uYWlyZUlkKCk7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSB0aGlzLnN0cnVjdHVyZSgpO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxBbnN3ZXJzID0gdGhpcy5pbml0aWFsQW5zd2VycygpO1xuXG4gICAgICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZtLmxvYWRRdWVzdGlvbm5haXJlKGlkLCBpbml0aWFsQW5zd2VycywgY29uZmlnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RydWN0dXJlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS5zZWN0aW9ucyAmJiBzdHJ1Y3R1cmUuc2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZtLmxvYWRTdHJ1Y3R1cmUoc3RydWN0dXJlLCBjb25maWcsIGluaXRpYWxBbnN3ZXJzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBTdHJ1Y3R1cmUgZXhpc3RzIGJ1dCBoYXMgbm8gc2VjdGlvbnMgLSBzZXQgZW1wdHkgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52bS5sb2FkU3RydWN0dXJlKHsgc2VjdGlvbnM6IFtdIH0sIGNvbmZpZywgaW5pdGlhbEFuc3dlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3RhcnQgdGltZXIgaWYgZW5hYmxlZFxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2hvdWxkU2hvd1RpbWVyID0gdGhpcy52bS5zaG93VGltZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVMaW1pdCA9IHRoaXMudm0udGltZXJUaW1lTGltaXQoKTtcblxuICAgICAgICAgICAgaWYgKHNob3VsZFNob3dUaW1lciAmJiB0aW1lTGltaXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZtLnN0YXJ0VGltZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy52bS5zdG9wVGltZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgLSBTdGF0ZSBBY2Nlc3MgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdmlld21vZGVsIGluc3RhbmNlIChmb3IgYWNjZXNzaW5nIGNvbXB1dGVkIHByb3BlcnRpZXMpXG4gICAgICovXG4gICAgZ2V0IHZpZXdtb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudm07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgY2FuIG5hdmlnYXRlIHByZXZpb3VzXG4gICAgICovXG4gICAgZ2V0IGNhbk5hdmlnYXRlUHJldmlvdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLmNhbk5hdmlnYXRlUHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBjYW4gbmF2aWdhdGUgbmV4dFxuICAgICAqL1xuICAgIGdldCBjYW5OYXZpZ2F0ZU5leHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLmNhbk5hdmlnYXRlTmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjdXJyZW50IHZpZXcgbW9kZVxuICAgICAqL1xuICAgIGdldCB2aWV3TW9kZSgpOiAnc2luZ2xlLXBhZ2UnIHwgJ3BhZ2UtcGVyLWdyb3VwJyB8ICdwYWdlLXBlci1xdWVzdGlvbicgfCAnc2lkZS1tZW51JyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLnZpZXdNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgd2UncmUgb24gdGhlIGxhc3Qgc3RlcFxuICAgICAqL1xuICAgIGdldCBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52bS5pc0xhc3RTdGVwKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYWxsIHJlcXVpcmVkIHF1ZXN0aW9ucyBhcmUgYW5zd2VyZWRcbiAgICAgKi9cbiAgICBnZXQgYXJlQWxsUmVxdWlyZWRRdWVzdGlvbnNBbnN3ZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudm0uYXJlQWxsUmVxdWlyZWRRdWVzdGlvbnNBbnN3ZXJlZCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZSB0byBuZXh0IHF1ZXN0aW9uL3NlY3Rpb25cbiAgICAgKiBWYWxpZGF0ZXMgY3VycmVudCBwYWdlIGJlZm9yZSBuYXZpZ2F0aW5nXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBuYXZpZ2F0aW9uIHN1Y2NlZWRlZCwgZmFsc2UgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgKi9cbiAgICBhc3luYyBuYXZpZ2F0ZU5leHQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZtLm5hdmlnYXRlTmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRlIHRvIHByZXZpb3VzIHF1ZXN0aW9uL3NlY3Rpb25cbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIG5hdmlnYXRpb24gc3VjY2VlZGVkXG4gICAgICovXG4gICAgYXN5bmMgbmF2aWdhdGVQcmV2aW91cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudm0ubmF2aWdhdGVQcmV2aW91cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRlIHRvIHNwZWNpZmljIHNlY3Rpb25cbiAgICAgKiBWYWxpZGF0ZXMgY3VycmVudCBwYWdlIGJlZm9yZSBuYXZpZ2F0aW5nXG4gICAgICogQHBhcmFtIGluZGV4IFNlY3Rpb24gaW5kZXggKDAtYmFzZWQpXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBuYXZpZ2F0aW9uIHN1Y2NlZWRlZCwgZmFsc2UgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgKi9cbiAgICBhc3luYyBuYXZpZ2F0ZVRvU2VjdGlvbihpbmRleDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZtLm5hdmlnYXRlVG9TZWN0aW9uKGluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZSB0byBzcGVjaWZpYyBxdWVzdGlvblxuICAgICAqIFZhbGlkYXRlcyBjdXJyZW50IHBhZ2UgYmVmb3JlIG5hdmlnYXRpbmdcbiAgICAgKiBAcGFyYW0gc2VjdGlvbkluZGV4IFNlY3Rpb24gaW5kZXggKDAtYmFzZWQpXG4gICAgICogQHBhcmFtIHF1ZXN0aW9uSW5kZXggUXVlc3Rpb24gaW5kZXggKDAtYmFzZWQpXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBuYXZpZ2F0aW9uIHN1Y2NlZWRlZCwgZmFsc2UgaWYgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgKi9cbiAgICBhc3luYyBuYXZpZ2F0ZVRvUXVlc3Rpb24oc2VjdGlvbkluZGV4OiBudW1iZXIsIHF1ZXN0aW9uSW5kZXg6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy52bS5uYXZpZ2F0ZVRvUXVlc3Rpb24oc2VjdGlvbkluZGV4LCBxdWVzdGlvbkluZGV4KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZSBhbGwgdmlzaWJsZSBxdWVzdGlvbnMgb24gY3VycmVudCBwYWdlXG4gICAgICogQHJldHVybnMgVmFsaWRhdGlvbiByZXN1bHQgd2l0aCBlcnJvcnNcbiAgICAgKi9cbiAgICBhc3luYyB2YWxpZGF0ZUN1cnJlbnRQYWdlKCkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy52bS52YWxpZGF0ZUN1cnJlbnRQYWdlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGUgYWxsIHF1ZXN0aW9ucyBpbiBlbnRpcmUgcXVlc3Rpb25uYWlyZVxuICAgICAqIEByZXR1cm5zIFZhbGlkYXRpb24gcmVzdWx0IHdpdGggZXJyb3JzXG4gICAgICovXG4gICAgYXN5bmMgdmFsaWRhdGVBbGxRdWVzdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZtLnZhbGlkYXRlQWxsUXVlc3Rpb25zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCBhbnN3ZXJzIGZyb20gY29udGV4dFxuICAgICAqL1xuICAgIGdldEFsbEFuc3dlcnMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLmdldEFsbEFuc3dlcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgcXVlc3Rpb25zIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBhbnN3ZXJzXG4gICAgICovXG4gICAgZ2V0UXVlc3Rpb25zV2l0aEFuc3dlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLmdldFF1ZXN0aW9uc1dpdGhBbnN3ZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3VibWl0IHF1ZXN0aW9ubmFpcmVcbiAgICAgKiBWYWxpZGF0ZXMgYWxsIHF1ZXN0aW9ucyBiZWZvcmUgc3VibWl0dGluZ1xuICAgICAqIEByZXR1cm5zIFN1Ym1pdCByZXN1bHQgd2l0aCBzdWNjZXNzIHN0YXR1cywgYW5zd2VycywgYW5kIGVycm9ycyBpZiBhbnlcbiAgICAgKi9cbiAgICBhc3luYyBzdWJtaXQoKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZtLnN1Ym1pdCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBFdmVudCBIYW5kbGVycyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBjb250ZXh0IGNoYW5nZXMgZm9yIGF1dG8tc2F2ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW5zd2VycyA9IHRoaXMudm0uZ2V0QWxsQW5zd2VycygpO1xuICAgICAgICB0aGlzLmFuc3dlcnNDaGFuZ2VkLmVtaXQoYW5zd2Vycyk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuIiwiPGF4cC13aWRnZXRzLWNvbnRhaW5lciAjd2lkZ2V0Q29udGFpbmVyIFtjb250ZXh0XT1cInt9XCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoKVwiPlxuICAgIEBpZiAodm0uaXNMb2FkaW5nKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiX19sb2FkaW5nXCI+XG4gICAgICAgIDxheHAtc3RhdGUtbWVzc2FnZSBpY29uPVwiZmEtbGlnaHQgZmEtc3Bpbm5lciBmYS1zcGluXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIoJ0Bhc3Nlc3NtZW50LW1hbmFnZW1lbnQ6cXVlc3Rpb25uYWlyZXMuY29tcG9uZW50cy5xdWVzdGlvbm5haXJlLXZpZXdlci5sb2FkaW5nLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSB8fCAnJ1wiXG4gICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiKCdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIubG9hZGluZy5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfCBhc3luYykgfHwgJydcIj5cbiAgICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmICh2bS5lcnJvcigpKSB7XG4gICAgPGRpdiBjbGFzcz1cIl9fZXJyb3JcIj5cbiAgICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlIGljb249XCJmYS1saWdodCBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiKCdAYXNzZXNzbWVudC1tYW5hZ2VtZW50OnF1ZXN0aW9ubmFpcmVzLmNvbXBvbmVudHMucXVlc3Rpb25uYWlyZS12aWV3ZXIuZXJyb3IudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJ2bS5lcnJvcigpIHx8ICcnXCI+XG4gICAgICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAodm0ucXVlc3Rpb25uYWlyZURhdGEoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJfX3F1ZXN0aW9ubmFpcmUtY29udGFpbmVyXCI+XG4gICAgICAgIDxheC1mb3JtICNmb3JtPlxuICAgICAgICAgICAgPCEtLSBEeW5hbWljIFZpZXcgQ29udGVudCAtLT5cbiAgICAgICAgICAgIEBpZiAodm0udmlld01vZGUoKSA9PT0gJ3NpbmdsZS1wYWdlJykge1xuICAgICAgICAgICAgPGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1zaW5nbGUtcGFnZS12aWV3PjwvYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXNpbmdsZS1wYWdlLXZpZXc+XG4gICAgICAgICAgICB9IEBlbHNlIGlmICh2bS52aWV3TW9kZSgpID09PSAncGFnZS1wZXItZ3JvdXAnKSB7XG4gICAgICAgICAgICA8YXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyLXBhZ2UtcGVyLWdyb3VwLXZpZXc+PC9heG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcGFnZS1wZXItZ3JvdXAtdmlldz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKHZtLnZpZXdNb2RlKCkgPT09ICdwYWdlLXBlci1xdWVzdGlvbicpIHtcbiAgICAgICAgICAgIDxheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItcGFnZS1wZXItcXVlc3Rpb24tdmlldz48L2F4bS1xdWVzdGlvbm5haXJlLXZpZXdlci1wYWdlLXBlci1xdWVzdGlvbi12aWV3PlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAodm0udmlld01vZGUoKSA9PT0gJ3NpZGUtbWVudScpIHtcbiAgICAgICAgICAgIDxheG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItc2lkZS1tZW51LXZpZXc+PC9heG0tcXVlc3Rpb25uYWlyZS12aWV3ZXItc2lkZS1tZW51LXZpZXc+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYXgtZm9ybT5cbiAgICA8L2Rpdj5cbiAgICB9XG48L2F4cC13aWRnZXRzLWNvbnRhaW5lcj4iXX0=","//#region ---- Imports ----\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { AXMQuestionnaireViewerComponent } from './questionnaire-viewer.component';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Widget Edit Component ----\n/**\n * Questionnaire Viewer Widget Component\n * Wraps the reusable AXMQuestionnaireViewerComponent for use as a widget\n */\nexport class AXMQuestionnaireViewerWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n /**\n * Get questionnaire ID from options or value (reactive)\n */\n this.questionnaireId = computed(() => {\n const options = this.options();\n const questionnaireId = options['questionnaireId'];\n if (questionnaireId) {\n return questionnaireId;\n }\n // Try to get from value if it's a string (direct ID)\n const value = this.getValue();\n if (typeof value === 'string') {\n return value;\n }\n // Try to get from value object\n if (value && typeof value === 'object' && 'questionnaireId' in value) {\n return value.questionnaireId;\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"questionnaireId\" }] : []));\n /**\n * Get structure data from options or value (for preview mode) (reactive)\n */\n this.structure = computed(() => {\n const options = this.options();\n const value = this.getValue();\n let structure;\n // First try options\n if (options['structure']) {\n structure = options['structure'];\n }\n // Then try value if it's the structure object\n else if (value && typeof value === 'object' && 'sections' in value) {\n structure = value;\n }\n // Try value.structure if value is an object with structure property\n else if (value && typeof value === 'object' && 'structure' in value) {\n structure = value.structure;\n }\n return structure;\n }, ...(ngDevMode ? [{ debugName: \"structure\" }] : []));\n /**\n * Get viewer configuration from options (reactive)\n * Simple wrapper - only passes through explicitly set options\n * The main component will handle displaySettings priority\n */\n this.viewerConfig = computed(() => {\n const structure = this.structure();\n // If structure is provided with displaySettings, prioritize displaySettings over widget config\n // This ensures preview mode uses displaySettings from builder, not widget defaults\n if (structure?.displaySettings) {\n // Only return config for non-display properties (like allowNavigation)\n // Display properties will come from displaySettings\n return {\n allowNavigation: true,\n };\n }\n const options = this.options();\n // Check for explicit display-related options\n // Only return config if there are explicit display options, otherwise return undefined\n // This allows displaySettings from structure to be used\n const hasExplicitDisplayOptions = options['viewMode'] !== undefined ||\n options['showProgressBar'] !== undefined ||\n options['showSectionTitles'] !== undefined ||\n options['showQuestionNumbers'] !== undefined ||\n options['showTimer'] !== undefined;\n // If no explicit display options, return undefined to use displaySettings\n if (!hasExplicitDisplayOptions) {\n return undefined;\n }\n // Build config object - only include properties that are explicitly set\n const config = {\n allowNavigation: true,\n };\n // Only add display-related properties if they're explicitly set\n // Extract viewMode - handle both string and object (from select box)\n let viewMode = undefined;\n const viewModeOption = options['viewMode'];\n if (viewModeOption !== undefined) {\n if (typeof viewModeOption === 'string') {\n viewMode = viewModeOption;\n }\n else if (typeof viewModeOption === 'object' && 'id' in viewModeOption) {\n viewMode = viewModeOption.id;\n }\n }\n if (viewMode !== undefined) {\n config.viewMode = viewMode;\n }\n if (options['showProgressBar'] !== undefined) {\n config.showProgressBar = options['showProgressBar'];\n }\n if (options['showSectionTitles'] !== undefined) {\n config.showSectionTitles = options['showSectionTitles'];\n }\n if (options['showQuestionNumbers'] !== undefined) {\n config.showQuestionNumbers = options['showQuestionNumbers'];\n }\n if (options['showTimer'] !== undefined) {\n config.timer = {\n showTimer: options['showTimer'] === true,\n mode: 'countdown',\n timeLimit: options['timeLimit'],\n };\n }\n return config;\n }, ...(ngDevMode ? [{ debugName: \"viewerConfig\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXMQuestionnaireViewerWidgetEditComponent, isStandalone: true, selector: \"axm-questionnaire-viewer-widget-edit\", usesInheritance: true, ngImport: i0, template: `\n <axm-questionnaire-viewer\n [questionnaireId]=\"questionnaireId()\"\n [structure]=\"structure()\"\n [config]=\"viewerConfig() ?? undefined\">\n </axm-questionnaire-viewer>\n `, isInline: true, dependencies: [{ kind: \"component\", type: AXMQuestionnaireViewerComponent, selector: \"axm-questionnaire-viewer\", inputs: [\"questionnaireId\", \"structure\", \"config\", \"initialAnswers\"], outputs: [\"answersChanged\", \"questionAnswered\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axm-questionnaire-viewer-widget-edit',\n template: `\n <axm-questionnaire-viewer\n [questionnaireId]=\"questionnaireId()\"\n [structure]=\"structure()\"\n [config]=\"viewerConfig() ?? undefined\">\n </axm-questionnaire-viewer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXMQuestionnaireViewerComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXItZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXNzZXNzbWVudC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcXVlc3Rpb25uYWlyZS12aWV3ZXIvcXVlc3Rpb25uYWlyZS12aWV3ZXItZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRixZQUFZO0FBRVosNkNBQTZDO0FBRTdDOzs7R0FHRztBQWFILE1BQU0sT0FBTyx5Q0FBMEMsU0FBUSx1QkFBdUI7SUFadEY7O1FBYUk7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLFFBQVEsQ0FBcUIsR0FBRyxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQXVCLENBQUM7WUFFekUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxlQUFlLENBQUM7WUFDM0IsQ0FBQztZQUVELHFEQUFxRDtZQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUVELCtCQUErQjtZQUMvQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksaUJBQWlCLElBQUksS0FB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LENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsS0FBSyxHQUFHO29CQUNYLFNBQVMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSTtvQkFDeEMsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLFNBQVMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUF1QjtpQkFDeEQsQ0FBQztZQUNOLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLHdEQUFDLENBQUM7S0FDTjsrR0E3SFkseUNBQXlDO21HQUF6Qyx5Q0FBeUMsdUhBVnhDOzs7Ozs7S0FNVCw0REFFUywrQkFBK0I7OzRGQUVoQyx5Q0FBeUM7a0JBWnJELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFOzs7Ozs7S0FNVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlVmlld2VyQ29uZmlnIH0gZnJvbSAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci50eXBlcyc7XG5pbXBvcnQgeyBBWE1RdWVzdGlvbm5haXJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZUJ1aWxkZXJWYWx1ZSB9IGZyb20gJy4uL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci9xdWVzdGlvbm5haXJlLWJ1aWxkZXIudHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBXaWRnZXQgRWRpdCBDb21wb25lbnQgICAtLS0tXG5cbi8qKlxuICogUXVlc3Rpb25uYWlyZSBWaWV3ZXIgV2lkZ2V0IENvbXBvbmVudFxuICogV3JhcHMgdGhlIHJldXNhYmxlIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJDb21wb25lbnQgZm9yIHVzZSBhcyBhIHdpZGdldFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4bS1xdWVzdGlvbm5haXJlLXZpZXdlci13aWRnZXQtZWRpdCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGF4bS1xdWVzdGlvbm5haXJlLXZpZXdlclxuICAgICAgICAgICAgW3F1ZXN0aW9ubmFpcmVJZF09XCJxdWVzdGlvbm5haXJlSWQoKVwiXG4gICAgICAgICAgICBbc3RydWN0dXJlXT1cInN0cnVjdHVyZSgpXCJcbiAgICAgICAgICAgIFtjb25maWddPVwidmlld2VyQ29uZmlnKCkgPz8gdW5kZWZpbmVkXCI+XG4gICAgICAgIDwvYXhtLXF1ZXN0aW9ubmFpcmUtdmlld2VyPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0FYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlVmlld2VyV2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBHZXQgcXVlc3Rpb25uYWlyZSBJRCBmcm9tIG9wdGlvbnMgb3IgdmFsdWUgKHJlYWN0aXZlKVxuICAgICAqL1xuICAgIHF1ZXN0aW9ubmFpcmVJZCA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9ubmFpcmVJZCA9IG9wdGlvbnNbJ3F1ZXN0aW9ubmFpcmVJZCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAocXVlc3Rpb25uYWlyZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gcXVlc3Rpb25uYWlyZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJ5IHRvIGdldCBmcm9tIHZhbHVlIGlmIGl0J3MgYSBzdHJpbmcgKGRpcmVjdCBJRClcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgdG8gZ2V0IGZyb20gdmFsdWUgb2JqZWN0XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdxdWVzdGlvbm5haXJlSWQnIGluIHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gKHZhbHVlIGFzIGFueSkucXVlc3Rpb25uYWlyZUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEdldCBzdHJ1Y3R1cmUgZGF0YSBmcm9tIG9wdGlvbnMgb3IgdmFsdWUgKGZvciBwcmV2aWV3IG1vZGUpIChyZWFjdGl2ZSlcbiAgICAgKi9cbiAgICBzdHJ1Y3R1cmUgPSBjb21wdXRlZDxRdWVzdGlvbm5haXJlQnVpbGRlclZhbHVlIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG5cbiAgICAgICAgbGV0IHN0cnVjdHVyZTogUXVlc3Rpb25uYWlyZUJ1aWxkZXJWYWx1ZSB8IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBGaXJzdCB0cnkgb3B0aW9uc1xuICAgICAgICBpZiAob3B0aW9uc1snc3RydWN0dXJlJ10pIHtcbiAgICAgICAgICAgIHN0cnVjdHVyZSA9IG9wdGlvbnNbJ3N0cnVjdHVyZSddIGFzIFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWUgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlbiB0cnkgdmFsdWUgaWYgaXQncyB0aGUgc3RydWN0dXJlIG9iamVjdFxuICAgICAgICBlbHNlIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdzZWN0aW9ucycgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIHN0cnVjdHVyZSA9IHZhbHVlIGFzIFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJ5IHZhbHVlLnN0cnVjdHVyZSBpZiB2YWx1ZSBpcyBhbiBvYmplY3Qgd2l0aCBzdHJ1Y3R1cmUgcHJvcGVydHlcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnc3RydWN0dXJlJyBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgc3RydWN0dXJlID0gKHZhbHVlIGFzIGFueSkuc3RydWN0dXJlIGFzIFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWUgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RydWN0dXJlO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0IHZpZXdlciBjb25maWd1cmF0aW9uIGZyb20gb3B0aW9ucyAocmVhY3RpdmUpXG4gICAgICogU2ltcGxlIHdyYXBwZXIgLSBvbmx5IHBhc3NlcyB0aHJvdWdoIGV4cGxpY2l0bHkgc2V0IG9wdGlvbnNcbiAgICAgKiBUaGUgbWFpbiBjb21wb25lbnQgd2lsbCBoYW5kbGUgZGlzcGxheVNldHRpbmdzIHByaW9yaXR5XG4gICAgICovXG4gICAgdmlld2VyQ29uZmlnID0gY29tcHV0ZWQ8UXVlc3Rpb25uYWlyZVZpZXdlckNvbmZpZyB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzdHJ1Y3R1cmUgPSB0aGlzLnN0cnVjdHVyZSgpO1xuXG4gICAgICAgIC8vIElmIHN0cnVjdHVyZSBpcyBwcm92aWRlZCB3aXRoIGRpc3BsYXlTZXR0aW5ncywgcHJpb3JpdGl6ZSBkaXNwbGF5U2V0dGluZ3Mgb3ZlciB3aWRnZXQgY29uZmlnXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyBwcmV2aWV3IG1vZGUgdXNlcyBkaXNwbGF5U2V0dGluZ3MgZnJvbSBidWlsZGVyLCBub3Qgd2lkZ2V0IGRlZmF1bHRzXG4gICAgICAgIGlmIChzdHJ1Y3R1cmU/LmRpc3BsYXlTZXR0aW5ncykge1xuICAgICAgICAgICAgLy8gT25seSByZXR1cm4gY29uZmlnIGZvciBub24tZGlzcGxheSBwcm9wZXJ0aWVzIChsaWtlIGFsbG93TmF2aWdhdGlvbilcbiAgICAgICAgICAgIC8vIERpc3BsYXkgcHJvcGVydGllcyB3aWxsIGNvbWUgZnJvbSBkaXNwbGF5U2V0dGluZ3NcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYWxsb3dOYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgZXhwbGljaXQgZGlzcGxheS1yZWxhdGVkIG9wdGlvbnNcbiAgICAgICAgLy8gT25seSByZXR1cm4gY29uZmlnIGlmIHRoZXJlIGFyZSBleHBsaWNpdCBkaXNwbGF5IG9wdGlvbnMsIG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIC8vIFRoaXMgYWxsb3dzIGRpc3BsYXlTZXR0aW5ncyBmcm9tIHN0cnVjdHVyZSB0byBiZSB1c2VkXG4gICAgICAgIGNvbnN0IGhhc0V4cGxpY2l0RGlzcGxheU9wdGlvbnMgPVxuICAgICAgICAgICAgb3B0aW9uc1sndmlld01vZGUnXSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBvcHRpb25zWydzaG93UHJvZ3Jlc3NCYXInXSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBvcHRpb25zWydzaG93U2VjdGlvblRpdGxlcyddICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9wdGlvbnNbJ3Nob3dRdWVzdGlvbk51bWJlcnMnXSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBvcHRpb25zWydzaG93VGltZXInXSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIElmIG5vIGV4cGxpY2l0IGRpc3BsYXkgb3B0aW9ucywgcmV0dXJuIHVuZGVmaW5lZCB0byB1c2UgZGlzcGxheVNldHRpbmdzXG4gICAgICAgIGlmICghaGFzRXhwbGljaXREaXNwbGF5T3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIGNvbmZpZyBvYmplY3QgLSBvbmx5IGluY2x1ZGUgcHJvcGVydGllcyB0aGF0IGFyZSBleHBsaWNpdGx5IHNldFxuICAgICAgICBjb25zdCBjb25maWc6IFF1ZXN0aW9ubmFpcmVWaWV3ZXJDb25maWcgPSB7XG4gICAgICAgICAgICBhbGxvd05hdmlnYXRpb246IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gT25seSBhZGQgZGlzcGxheS1yZWxhdGVkIHByb3BlcnRpZXMgaWYgdGhleSdyZSBleHBsaWNpdGx5IHNldFxuICAgICAgICAvLyBFeHRyYWN0IHZpZXdNb2RlIC0gaGFuZGxlIGJvdGggc3RyaW5nIGFuZCBvYmplY3QgKGZyb20gc2VsZWN0IGJveClcbiAgICAgICAgbGV0IHZpZXdNb2RlOiAnc2luZ2xlLXBhZ2UnIHwgJ3BhZ2UtcGVyLWdyb3VwJyB8ICdwYWdlLXBlci1xdWVzdGlvbicgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHZpZXdNb2RlT3B0aW9uID0gb3B0aW9uc1sndmlld01vZGUnXTtcbiAgICAgICAgaWYgKHZpZXdNb2RlT3B0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygdmlld01vZGVPcHRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdmlld01vZGUgPSB2aWV3TW9kZU9wdGlvbiBhcyAnc2luZ2xlLXBhZ2UnIHwgJ3BhZ2UtcGVyLWdyb3VwJyB8ICdwYWdlLXBlci1xdWVzdGlvbic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2aWV3TW9kZU9wdGlvbiA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB2aWV3TW9kZU9wdGlvbikge1xuICAgICAgICAgICAgICAgIHZpZXdNb2RlID0gKHZpZXdNb2RlT3B0aW9uIGFzIGFueSkuaWQgYXMgJ3NpbmdsZS1wYWdlJyB8ICdwYWdlLXBlci1ncm91cCcgfCAncGFnZS1wZXItcXVlc3Rpb24nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZpZXdNb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbmZpZy52aWV3TW9kZSA9IHZpZXdNb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zWydzaG93UHJvZ3Jlc3NCYXInXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25maWcuc2hvd1Byb2dyZXNzQmFyID0gb3B0aW9uc1snc2hvd1Byb2dyZXNzQmFyJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnNbJ3Nob3dTZWN0aW9uVGl0bGVzJ10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uZmlnLnNob3dTZWN0aW9uVGl0bGVzID0gb3B0aW9uc1snc2hvd1NlY3Rpb25UaXRsZXMnXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9uc1snc2hvd1F1ZXN0aW9uTnVtYmVycyddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbmZpZy5zaG93UXVlc3Rpb25OdW1iZXJzID0gb3B0aW9uc1snc2hvd1F1ZXN0aW9uTnVtYmVycyddO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zWydzaG93VGltZXInXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25maWcudGltZXIgPSB7XG4gICAgICAgICAgICAgICAgc2hvd1RpbWVyOiBvcHRpb25zWydzaG93VGltZXInXSA9PT0gdHJ1ZSxcbiAgICAgICAgICAgICAgICBtb2RlOiAnY291bnRkb3duJyxcbiAgICAgICAgICAgICAgICB0aW1lTGltaXQ6IG9wdGlvbnNbJ3RpbWVMaW1pdCddIGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH0pO1xufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","import { NgModule } from '@angular/core';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXMQuestionnaireViewerWidget } from './questionnaire-viewer.config';\nimport { AXMAnswersViewerWidget } from './widgets/answers-viewer-widget.config';\nimport { AXMQuestionnaireViewerComponent } from './questionnaire-viewer.component';\nimport { AXMQuestionnaireViewerWidgetEditComponent } from './questionnaire-viewer-edit.component';\nimport { AXMQuestionnaireService, AXMQuestionnaireServiceImpl } from '../../entities/questionnaire/questionnaire.service';\nimport { AXMQuestionBankItemService, AXMQuestionBankItemServiceImpl } from '../../entities/question-bank-item/question-bank-item.service';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nexport class AXMQuestionnaireViewerFeatureModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerFeatureModule, imports: [i1.AXPWidgetCoreModule, \n // Import standalone components\n AXMQuestionnaireViewerComponent,\n AXMQuestionnaireViewerWidgetEditComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerFeatureModule, providers: [\n {\n provide: AXMQuestionnaireService,\n useClass: AXMQuestionnaireServiceImpl,\n },\n {\n provide: AXMQuestionBankItemService,\n useClass: AXMQuestionBankItemServiceImpl,\n },\n // Commands\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,\n command: () => import('./commands/preview-questionnaire.command').then((c) => c.PreviewQuestionnaireCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,\n command: () => import('./commands/view-session-answers.command').then((c) => c.ViewSessionAnswersCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,\n command: () => import('./commands/fill-assessment-session.command').then((c) => c.FillAssessmentSessionCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,\n command: () => import('./commands/fill-assessment-session.command').then((c) => c.FillAssessmentSessionCommand),\n },\n ]),\n ], imports: [AXPWidgetCoreModule.forChild({\n widgets: [AXMQuestionnaireViewerWidget, AXMAnswersViewerWidget],\n }),\n // Import standalone components\n AXMQuestionnaireViewerComponent,\n AXMQuestionnaireViewerWidgetEditComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMQuestionnaireViewerFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPWidgetCoreModule.forChild({\n widgets: [AXMQuestionnaireViewerWidget, AXMAnswersViewerWidget],\n }),\n // Import standalone components\n AXMQuestionnaireViewerComponent,\n AXMQuestionnaireViewerWidgetEditComponent,\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMQuestionnaireService,\n useClass: AXMQuestionnaireServiceImpl,\n },\n {\n provide: AXMQuestionBankItemService,\n useClass: AXMQuestionBankItemServiceImpl,\n },\n // Commands\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.questionnaire.name}:Preview`,\n command: () => import('./commands/preview-questionnaire.command').then((c) => c.PreviewQuestionnaireCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:ViewAnswers`,\n command: () => import('./commands/view-session-answers.command').then((c) => c.ViewSessionAnswersCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentSession.name}:Fill`,\n command: () => import('./commands/fill-assessment-session.command').then((c) => c.FillAssessmentSessionCommand),\n },\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.assessmentCase.name}:Fill`,\n command: () => import('./commands/fill-assessment-session.command').then((c) => c.FillAssessmentSessionCommand),\n },\n ]),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS12aWV3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQTJDekMsTUFBTSxPQUFPLG1DQUFtQzsrR0FBbkMsbUNBQW1DO2dIQUFuQyxtQ0FBbUM7WUFwQ3hDLCtCQUErQjtZQUMvQiwrQkFBK0I7WUFDL0IseUNBQXlDO2dIQWtDcEMsbUNBQW1DLGFBOUJqQztZQUNQO2dCQUNJLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7YUFDeEM7WUFDRDtnQkFDSSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxRQUFRLEVBQUUsOEJBQThCO2FBQzNDO1lBQ0QsV0FBVztZQUNYLG9CQUFvQixDQUFDO2dCQUNqQjtvQkFDSSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFVBQVU7b0JBQ2xGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztpQkFDL0c7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQWM7b0JBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDNUc7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU87b0JBQ25GLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDbEg7Z0JBQ0Q7b0JBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPO29CQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7aUJBQ2xIO2FBQ0osQ0FBQztTQUNMLFlBckNHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUM7YUFDbEUsQ0FBQztZQUNGLCtCQUErQjtZQUMvQiwrQkFBK0I7WUFDL0IseUNBQXlDOzs0RkFrQ3BDLG1DQUFtQztrQkF6Qy9DLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLG1CQUFtQixDQUFDLFFBQVEsQ0FBQzs0QkFDekIsT0FBTyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUM7eUJBQ2xFLENBQUM7d0JBQ0YsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLHlDQUF5QztxQkFDNUM7b0JBQ0QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxRQUFRLEVBQUUsMkJBQTJCO3lCQUN4Qzt3QkFDRDs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxRQUFRLEVBQUUsOEJBQThCO3lCQUMzQzt3QkFDRCxXQUFXO3dCQUNYLG9CQUFvQixDQUFDOzRCQUNqQjtnQ0FDSSxHQUFHLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFVBQVU7Z0NBQ2xGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQzs2QkFDL0c7NEJBQ0Q7Z0NBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQWM7Z0NBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQzs2QkFDNUc7NEJBQ0Q7Z0NBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU87Z0NBQ25GLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQzs2QkFDbEg7NEJBQ0Q7Z0NBQ0ksR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPO2dDQUNoRixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7NkJBQ2xIO3lCQUNKLENBQUM7cUJBQ0w7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJXaWRnZXQgfSBmcm9tICcuL3F1ZXN0aW9ubmFpcmUtdmlld2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBBWE1BbnN3ZXJzVmlld2VyV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL2Fuc3dlcnMtdmlld2VyLXdpZGdldC5jb25maWcnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vcXVlc3Rpb25uYWlyZS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJXaWRnZXRFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9xdWVzdGlvbm5haXJlLXZpZXdlci1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1RdWVzdGlvbm5haXJlU2VydmljZSwgQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2VJbXBsIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25CYW5rSXRlbVNlcnZpY2UsIEFYTVF1ZXN0aW9uQmFua0l0ZW1TZXJ2aWNlSW1wbCB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3F1ZXN0aW9uLWJhbmstaXRlbS9xdWVzdGlvbi1iYW5rLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBwcm92aWRlQ29tbWFuZFNldHVwcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3QnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQVhQV2lkZ2V0Q29yZU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICAgICAgICB3aWRnZXRzOiBbQVhNUXVlc3Rpb25uYWlyZVZpZXdlcldpZGdldCwgQVhNQW5zd2Vyc1ZpZXdlcldpZGdldF0sXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBJbXBvcnQgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4gICAgICAgIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIEFYTVF1ZXN0aW9ubmFpcmVWaWV3ZXJXaWRnZXRFZGl0Q29tcG9uZW50LFxuICAgIF0sXG4gICAgZXhwb3J0czogW10sXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2UsXG4gICAgICAgICAgICB1c2VDbGFzczogQVhNUXVlc3Rpb25uYWlyZVNlcnZpY2VJbXBsLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWE1RdWVzdGlvbkJhbmtJdGVtU2VydmljZSxcbiAgICAgICAgICAgIHVzZUNsYXNzOiBBWE1RdWVzdGlvbkJhbmtJdGVtU2VydmljZUltcGwsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIENvbW1hbmRzXG4gICAgICAgIHByb3ZpZGVDb21tYW5kU2V0dXBzKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5xdWVzdGlvbm5haXJlLm5hbWV9OlByZXZpZXdgLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9jb21tYW5kcy9wcmV2aWV3LXF1ZXN0aW9ubmFpcmUuY29tbWFuZCcpLnRoZW4oKGMpID0+IGMuUHJldmlld1F1ZXN0aW9ubmFpcmVDb21tYW5kKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudFNlc3Npb24ubmFtZX06Vmlld0Fuc3dlcnNgLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9jb21tYW5kcy92aWV3LXNlc3Npb24tYW5zd2Vycy5jb21tYW5kJykudGhlbigoYykgPT4gYy5WaWV3U2Vzc2lvbkFuc3dlcnNDb21tYW5kKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMuYXNzZXNzbWVudFNlc3Npb24ubmFtZX06RmlsbGAsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL2NvbW1hbmRzL2ZpbGwtYXNzZXNzbWVudC1zZXNzaW9uLmNvbW1hbmQnKS50aGVuKChjKSA9PiBjLkZpbGxBc3Nlc3NtZW50U2Vzc2lvbkNvbW1hbmQpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5hc3Nlc3NtZW50Q2FzZS5uYW1lfTpGaWxsYCxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiBpbXBvcnQoJy4vY29tbWFuZHMvZmlsbC1hc3Nlc3NtZW50LXNlc3Npb24uY29tbWFuZCcpLnRoZW4oKGMpID0+IGMuRmlsbEFzc2Vzc21lbnRTZXNzaW9uQ29tbWFuZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1RdWVzdGlvbm5haXJlVmlld2VyRmVhdHVyZU1vZHVsZSB7IH1cblxuIl19","//#region ---- Imports ----\nimport { NgModule } from '@angular/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, provideLazyProvider } from '@acorex/platform/core';\nimport { AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AssessmentManagementManifest } from './manifest';\n// Entity Modules\nimport { AXMQuestionBankItemEntityModule } from './entities/question-bank-item/question-bank-item.module';\nimport { AXMQuestionnaireEntityModule } from './entities/questionnaire/questionnaire.module';\nimport { AXMAssessmentCaseEntityModule } from './entities/assessment-case/assessment-case.module';\nimport { AXMAssessmentSessionEntityModule } from './entities/assessment-session/assessment-session.module';\n// Feature Modules\nimport { AXMQuestionnaireViewerFeatureModule } from './features/questionnaire-viewer/questionnaire-viewer.module';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n//#endregion\n//#region ---- Module ----\nexport class AXMAssessmentManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementModule, imports: [AXMQuestionBankItemEntityModule,\n AXMQuestionnaireEntityModule,\n AXMAssessmentCaseEntityModule,\n AXMAssessmentSessionEntityModule,\n AXMQuestionnaireViewerFeatureModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementModule, providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: AssessmentManagementManifest,\n multi: true,\n },\n // Status Providers\n provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./features/assessment-case-status.provider').then(m => m.AXMAssessmentCaseStatusProvider)),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./features/assessment-session-status.provider').then(m => m.AXMAssessmentSessionStatusProvider)),\n // Provider references (now using tokens)\n provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./feature-definition.provider').then(m => m.AXMAssessmentManagementFeatureDefinitionProvider)),\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./permission-definition.provider').then(m => m.AXMAssessmentManagementPermissionDefinitionProvider)),\n provideLazyProvider(AXP_MENU_PROVIDER, () => import('./menu.provider').then(m => m.AXMAssessmentManagementMenuProvider)),\n provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => import('./entity.provider').then(m => m.AXMAssessmentManagementEntityProvider)),\n provideLazyProvider(AXP_SEARCH_PROVIDER, () => import('./search.provider').then(m => m.AXMAssessmentManagementSearchCommandProvider)),\n ], imports: [AXMQuestionBankItemEntityModule,\n AXMQuestionnaireEntityModule,\n AXMAssessmentCaseEntityModule,\n AXMAssessmentSessionEntityModule,\n AXMQuestionnaireViewerFeatureModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAssessmentManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXMQuestionBankItemEntityModule,\n AXMQuestionnaireEntityModule,\n AXMAssessmentCaseEntityModule,\n AXMAssessmentSessionEntityModule,\n AXMQuestionnaireViewerFeatureModule,\n ],\n providers: [\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: AssessmentManagementManifest,\n multi: true,\n },\n // Status Providers\n provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./features/assessment-case-status.provider').then(m => m.AXMAssessmentCaseStatusProvider)),\n provideLazyProvider(AXP_STATUS_PROVIDERS, () => import('./features/assessment-session-status.provider').then(m => m.AXMAssessmentSessionStatusProvider)),\n // Provider references (now using tokens)\n provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () => import('./feature-definition.provider').then(m => m.AXMAssessmentManagementFeatureDefinitionProvider)),\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () => import('./permission-definition.provider').then(m => m.AXMAssessmentManagementPermissionDefinitionProvider)),\n provideLazyProvider(AXP_MENU_PROVIDER, () => import('./menu.provider').then(m => m.AXMAssessmentManagementMenuProvider)),\n provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () => import('./entity.provider').then(m => m.AXMAssessmentManagementEntityProvider)),\n provideLazyProvider(AXP_SEARCH_PROVIDER, () => import('./search.provider').then(m => m.AXMAssessmentManagementSearchCommandProvider)),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9hc3Nlc3NtZW50LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwrQkFBK0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxRCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDMUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0YsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFFM0csa0JBQWtCO0FBQ2xCLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUU5RSxZQUFZO0FBRVosOEJBQThCO0FBaUQ5QixNQUFNLE9BQU8sNkJBQTZCOytHQUE3Qiw2QkFBNkI7Z0hBQTdCLDZCQUE2QixZQTdDbEMsK0JBQStCO1lBQy9CLDRCQUE0QjtZQUM1Qiw2QkFBNkI7WUFDN0IsZ0NB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RCxtQkFBbUIsQ0FDZixrQ0FBa0MsRUFDbEMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCxDQUFDLENBQ3BIO3dCQUNELG1CQUFtQixDQUNmLGlCQUFpQixFQUNqQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUMsQ0FDbkY7d0JBQ0QsbUJBQW1CLENBQ2YsNEJBQTRCLEVBQzVCLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUN2Rjt3QkFDRCxtQkFBbUIsQ0FDZixtQkFBbUIsRUFDbkIsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDRDQUE0QyxDQUFDLENBQzlGO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX01PRFVMRV9NQU5JRkVTVF9QUk9WSURFUiwgQVhQX0ZFQVRVUkVfREVGSU5JVElPTl9QUk9WSURFUiwgcHJvdmlkZUxhenlQcm92aWRlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBfU1RBVFVTX1BST1ZJREVSUywgQVhQX01FTlVfUFJPVklERVIsIEFYUF9TRUFSQ0hfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBfUEVSTUlTU0lPTl9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFzc2Vzc21lbnRNYW5hZ2VtZW50TWFuaWZlc3QgfSBmcm9tICcuL21hbmlmZXN0JztcblxuLy8gRW50aXR5IE1vZHVsZXNcbmltcG9ydCB7IEFYTVF1ZXN0aW9uQmFua0l0ZW1FbnRpdHlNb2R1bGUgfSBmcm9tICcuL2VudGl0aWVzL3F1ZXN0aW9uLWJhbmstaXRlbS9xdWVzdGlvbi1iYW5rLWl0ZW0ubW9kdWxlJztcbmltcG9ydCB7IEFYTVF1ZXN0aW9ubmFpcmVFbnRpdHlNb2R1bGUgfSBmcm9tICcuL2VudGl0aWVzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb25uYWlyZS5tb2R1bGUnO1xuaW1wb3J0IHsgQVhNQXNzZXNzbWVudENhc2VFbnRpdHlNb2R1bGUgfSBmcm9tICcuL2VudGl0aWVzL2Fzc2Vzc21lbnQtY2FzZS9hc3Nlc3NtZW50LWNhc2UubW9kdWxlJztcbmltcG9ydCB7IEFYTUFzc2Vzc21lbnRTZXNzaW9uRW50aXR5TW9kdWxlIH0gZnJvbSAnLi9lbnRpdGllcy9hc3Nlc3NtZW50LXNlc3Npb24vYXNzZXNzbWVudC1zZXNzaW9uLm1vZHVsZSc7XG5cbi8vIEZlYXR1cmUgTW9kdWxlc1xuaW1wb3J0IHsgQVhNUXVlc3Rpb25uYWlyZVZpZXdlckZlYXR1cmVNb2R1bGUgfSBmcm9tICcuL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtdmlld2VyL3F1ZXN0aW9ubmFpcmUtdmlld2VyLm1vZHVsZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgTW9kdWxlICAgLS0tLVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQVhNUXVlc3Rpb25CYW5rSXRlbUVudGl0eU1vZHVsZSxcbiAgICAgICAgQVhNUXVlc3Rpb25uYWlyZUVudGl0eU1vZHVsZSxcbiAgICAgICAgQVhNQXNzZXNzbWVudENhc2VFbnRpdHlNb2R1bGUsXG4gICAgICAgIEFYTUFzc2Vzc21lbnRTZXNzaW9uRW50aXR5TW9kdWxlLFxuICAgICAgICBBWE1RdWVzdGlvbm5haXJlVmlld2VyRmVhdHVyZU1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBNb2R1bGUgTWFuaWZlc3QgUHJvdmlkZXJcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhQX01PRFVMRV9NQU5JRkVTVF9QUk9WSURFUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBBc3Nlc3NtZW50TWFuYWdlbWVudE1hbmlmZXN0LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFN0YXR1cyBQcm92aWRlcnNcbiAgICAgICAgcHJvdmlkZUxhenlQcm92aWRlcihcbiAgICAgICAgICAgIEFYUF9TVEFUVVNfUFJPVklERVJTLFxuICAgICAgICAgICAgKCkgPT4gaW1wb3J0KCcuL2ZlYXR1cmVzL2Fzc2Vzc21lbnQtY2FzZS1zdGF0dXMucHJvdmlkZXInKS50aGVuKG0gPT4gbS5BWE1Bc3Nlc3NtZW50Q2FzZVN0YXR1c1Byb3ZpZGVyKVxuICAgICAgICApLFxuICAgICAgICBwcm92aWRlTGF6eVByb3ZpZGVyKFxuICAgICAgICAgICAgQVhQX1NUQVRVU19QUk9WSURFUlMsXG4gICAgICAgICAgICAoKSA9PiBpbXBvcnQoJy4vZmVhdHVyZXMvYXNzZXNzbWVudC1zZXNzaW9uLXN0YXR1cy5wcm92aWRlcicpLnRoZW4obSA9PiBtLkFYTUFzc2Vzc21lbnRTZXNzaW9uU3RhdHVzUHJvdmlkZXIpXG4gICAgICAgICksXG4gICAgICAgIC8vIFByb3ZpZGVyIHJlZmVyZW5jZXMgKG5vdyB1c2luZyB0b2tlbnMpXG4gICAgICAgIHByb3ZpZGVMYXp5UHJvdmlkZXIoXG4gICAgICAgICAgICBBWFBfRkVBVFVSRV9ERUZJTklUSU9OX1BST1ZJREVSLFxuICAgICAgICAgICAgKCkgPT4gaW1wb3J0KCcuL2ZlYXR1cmUtZGVmaW5pdGlvbi5wcm92aWRlcicpLnRoZW4obSA9PiBtLkFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50RmVhdHVyZURlZmluaXRpb25Qcm92aWRlcilcbiAgICAgICAgKSxcbiAgICAgICAgcHJvdmlkZUxhenlQcm92aWRlcihcbiAgICAgICAgICAgIEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICAgICAgICAoKSA9PiBpbXBvcnQoJy4vcGVybWlzc2lvbi1kZWZpbml0aW9uLnByb3ZpZGVyJykudGhlbihtID0+IG0uQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyKVxuICAgICAgICApLFxuICAgICAgICBwcm92aWRlTGF6eVByb3ZpZGVyKFxuICAgICAgICAgICAgQVhQX01FTlVfUFJPVklERVIsXG4gICAgICAgICAgICAoKSA9PiBpbXBvcnQoJy4vbWVudS5wcm92aWRlcicpLnRoZW4obSA9PiBtLkFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50TWVudVByb3ZpZGVyKVxuICAgICAgICApLFxuICAgICAgICBwcm92aWRlTGF6eVByb3ZpZGVyKFxuICAgICAgICAgICAgQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUixcbiAgICAgICAgICAgICgpID0+IGltcG9ydCgnLi9lbnRpdHkucHJvdmlkZXInKS50aGVuKG0gPT4gbS5BWE1Bc3Nlc3NtZW50TWFuYWdlbWVudEVudGl0eVByb3ZpZGVyKVxuICAgICAgICApLFxuICAgICAgICBwcm92aWRlTGF6eVByb3ZpZGVyKFxuICAgICAgICAgICAgQVhQX1NFQVJDSF9QUk9WSURFUixcbiAgICAgICAgICAgICgpID0+IGltcG9ydCgnLi9zZWFyY2gucHJvdmlkZXInKS50aGVuKG0gPT4gbS5BWE1Bc3Nlc3NtZW50TWFuYWdlbWVudFNlYXJjaENvbW1hbmRQcm92aWRlcilcbiAgICAgICAgKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudE1vZHVsZSB7IH1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- QuestionBankItem Model ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay1pdGVtLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3F1ZXN0aW9uLWJhbmstaXRlbS9xdWVzdGlvbi1iYW5rLWl0ZW0udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDOztBQXdCOUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgUXVlc3Rpb25CYW5rSXRlbSBNb2RlbCAgIC0tLS1cblxuaW1wb3J0IHsgQVhQRW50aXR5TW9kZWwgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhNQXNzZXNzbWVudE1hbmFnZW1lbnRRdWVzdGlvbkJhbmtJdGVtRW50aXR5TW9kZWwgZXh0ZW5kcyBBWFBFbnRpdHlNb2RlbDxzdHJpbmc+IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGNhdGVnb3J5SWQ/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuXG4gICAgLy8gU2NvcmluZyBDb25maWd1cmF0aW9uXG4gICAgc2NvcmluZ1R5cGU/OiAnbm9uZScgfCAncG9pbnRzJyB8ICd3ZWlnaHRlZCcgfCAnZm9ybXVsYSc7XG4gICAgcG9pbnRzPzogbnVtYmVyO1xuICAgIHdlaWdodD86IG51bWJlcjtcbiAgICBjb3JyZWN0QW5zd2VyPzogYW55O1xuXG4gICAgLy8gUXVlc3Rpb24gUHJvcGVydGllc1xuICAgIGRpZmZpY3VsdHk/OiAnZWFzeScgfCAnbWVkaXVtJyB8ICdoYXJkJztcbiAgICBlc3RpbWF0ZWRUaW1lPzogbnVtYmVyOyAvLyBzZWNvbmRzXG5cbiAgICAvLyBVc2VyIEludGVyZmFjZVxuICAgIGludGVyZmFjZT86IGFueTsgLy8gV2lkZ2V0IGNvbmZpZ3VyYXRpb25cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","//#region ---- Imports ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb25uYWlyZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hc3Nlc3NtZW50LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9ubmFpcmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCOztBQThCL0IsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZUJ1aWxkZXJWYWx1ZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmVzL3F1ZXN0aW9ubmFpcmUtYnVpbGRlci9xdWVzdGlvbm5haXJlLWJ1aWxkZXIudHlwZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBRdWVzdGlvbm5haXJlIE1vZGVsICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50UXVlc3Rpb25uYWlyZUVudGl0eU1vZGVsIGV4dGVuZHMgQVhQRW50aXR5TW9kZWw8c3RyaW5nPiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB0eXBlOiAncXVlc3Rpb25uYWlyZScgfCAnc3VydmV5JyB8ICdjaGVja2xpc3QnIHwgJ3Rlc3QnIHwgJ2V2YWx1YXRpb24nO1xuXG4gICAgLy8gU3RydWN0dXJlIHdpdGggc2VjdGlvbnMgYW5kIG5lc3RlZCBpdGVtc1xuICAgIC8vIERpc3BsYXkgc2V0dGluZ3MgYXJlIHBhcnQgb2Ygc3RydWN0dXJlLmRpc3BsYXlTZXR0aW5nc1xuICAgIHN0cnVjdHVyZT86IFF1ZXN0aW9ubmFpcmVCdWlsZGVyVmFsdWU7XG5cbiAgICAvLyBTY29yaW5nIENvbmZpZ3VyYXRpb25cbiAgICBzY29yaW5nVHlwZT86ICdub25lJyB8ICdjdW11bGF0aXZlJyB8ICd3ZWlnaHRlZCcgfCAnZm9ybXVsYSc7XG4gICAgcGFzc2luZ1Njb3JlPzogbnVtYmVyO1xuICAgIHNjb3JpbmdGb3JtdWxhPzogc3RyaW5nO1xuICAgIGdyYWRpbmdTY2FsZT86IFJlY29yZDxzdHJpbmcsIHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0+O1xuXG4gICAgLy8gUGx1Z2luIGZpZWxkc1xuICAgIGNhdGVnb3J5SWQ/OiBzdHJpbmc7XG4gICAgdGFncz86IHN0cmluZ1tdO1xuICAgIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","//#region ---- Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1jYXNlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL2Fzc2Vzc21lbnQtY2FzZS9hc3Nlc3NtZW50LWNhc2UudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCOztBQTZCN0IsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbmltcG9ydCB7IEFYUEVudGl0eVJlZmVyZW5jZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5cbmV4cG9ydCB0eXBlIEFYTUFzc2Vzc21lbnRDYXNlU3RhdHVzID0gJ2FjdGl2ZScgfCAnY2xvc2VkJyB8ICdjYW5jZWxsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYTUFzc2Vzc21lbnRNYW5hZ2VtZW50QXNzZXNzbWVudENhc2VFbnRpdHlNb2RlbCBleHRlbmRzIEFYUEVudGl0eU1vZGVsPHN0cmluZz4ge1xuXG4gIC8qKlxuICAgKiBTaW5nbGUgcXVlc3Rpb25uYWlyZSBhc3NpZ25lZCB0byB0aGlzIGNhc2UuXG4gICAqL1xuICBxdWVzdGlvbm5haXJlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZnJpZW5kbHkgdGl0bGUgZm9yIGxpc3RzL3NlYXJjaC5cbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBlbnRpdHkgKGUuZy4gQXNzZXRNYW5hZ2VtZW50LkFzc2V0LCBIdW1hbkNhcGl0YWwuRW1wbG95ZWUpLlxuICAgKi9cbiAgc3ViamVjdFJlZjogQVhQRW50aXR5UmVmZXJlbmNlO1xuXG4gIHN0YXR1czogQVhNQXNzZXNzbWVudENhc2VTdGF0dXM7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG5cbiJdfQ==","//#region ---- Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1zZXNzaW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL2Fzc2Vzc21lbnQtc2Vzc2lvbi9hc3Nlc3NtZW50LXNlc3Npb24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCOztBQWlDN0IsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbmltcG9ydCB7IEFYUEVudGl0eU1vZGVsIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eVwiO1xuXG5leHBvcnQgdHlwZSBBWE1Bc3Nlc3NtZW50U2Vzc2lvblJvbGUgPSAncmVzcG9uZGVyJyB8ICdzdXBlcnZpc29yJyB8ICdyZXZpZXdlcic7XG5cbmV4cG9ydCB0eXBlIEFYTUFzc2Vzc21lbnRTZXNzaW9uU3RhdHVzID0gJ25vdC1zdGFydGVkJyB8ICdpbi1wcm9ncmVzcycgfCAnc3VibWl0dGVkJyB8ICd1bmRlci1yZXZpZXcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCcgfCAnY29tcGxldGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBBWE1Bc3Nlc3NtZW50TWFuYWdlbWVudEFzc2Vzc21lbnRTZXNzaW9uRW50aXR5TW9kZWwgZXh0ZW5kcyBBWFBFbnRpdHlNb2RlbDxzdHJpbmc+IHtcbiAgICBjYXNlSWQ6IHN0cmluZztcblxuICAgIC8vIFJlc3BvbmRlclxuICAgIHJlc3BvbmRlcklkOiBzdHJpbmc7XG4gICAgcm9sZTogQVhNQXNzZXNzbWVudFNlc3Npb25Sb2xlO1xuXG4gICAgLy8gU3RhdHVzIG1hbmFnZWQgYnkgc3RhdHVzIHBsdWdpbiAoc3RhdHVzSWQgZmllbGQgYWRkZWQgYXV0b21hdGljYWxseSlcblxuICAgIC8vIFRpbWUgdHJhY2tpbmdcbiAgICBzdGFydGVkQXQ/OiBEYXRlO1xuICAgIGxhc3RTYXZlZEF0PzogRGF0ZTtcbiAgICB0aW1lU3BlbnQ/OiBudW1iZXI7IC8vIFRvdGFsIHNlY29uZHNcblxuICAgIC8vIFByb2dyZXNzXG4gICAgcHJvZ3Jlc3NQZXJjZW50YWdlOiBudW1iZXI7XG4gICAgYW5zd2VyZWRRdWVzdGlvbnNDb3VudDogbnVtYmVyO1xuXG4gICAgLy8gQW5zd2Vyc1xuICAgIGFuc3dlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgLy8gT3ZlcnJpZGUgY2hhaW5cbiAgICBwcmV2aW91c0lkPzogc3RyaW5nO1xufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtYXNzZXNzbWVudC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Fzc2Vzc21lbnQtbWFuYWdlbWVudC9zcmMvYWNvcmV4LW1vZHVsZXMtYXNzZXNzbWVudC1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2","i4","i5","i3"],"mappings":"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EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjrI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,UAAU,EAAE,CAAC;AACtJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yCAAyC,EAAE,QAAQ,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AACjE,wBAAwB,YAAY;AACpC,wBAAwB,uCAAuC;AAC/D,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB,cAAc;AACtC,wBAAwB,uBAAuB;AAC/C,wBAAwB,oBAAoB;AAC5C,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,qBAAqB,EAAE,MAAM,EAAE,CAAC,+sDAA+sD,CAAC,EAAE;AAClvD,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,E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"}
|