@acorex/modules 20.2.2 → 20.2.4-next.0
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/common/index.d.ts +16 -8
- package/content-management/index.d.ts +48 -3
- package/document-management/index.d.ts +27 -24
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs} +10 -10
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs.map → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs.map → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-BHRC357P.mjs → acorex-modules-auth-login.module-DGPRxnXo.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-BHRC357P.mjs.map → acorex-modules-auth-login.module-DGPRxnXo.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-DAYMmpBW.mjs → acorex-modules-auth-master.layout-BNFGuQQs.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-DAYMmpBW.mjs.map → acorex-modules-auth-master.layout-BNFGuQQs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs.map → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BJpxtJYh.mjs → acorex-modules-auth-password.component-Dyox9sR4.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-BJpxtJYh.mjs.map → acorex-modules-auth-password.component-Dyox9sR4.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-ln2kDKPR.mjs +226 -0
- package/fesm2022/acorex-modules-auth-password.component-ln2kDKPR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-hvqL2dCH.mjs → acorex-modules-auth-routes-7vr8T08D.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-hvqL2dCH.mjs.map → acorex-modules-auth-routes-7vr8T08D.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-kPuT8yUw.mjs → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-kPuT8yUw.mjs.map → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs.map → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs +1 -1
- package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-common.mjs +503 -235
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-content-management.mjs +378 -457
- package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +119 -4
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +9 -9
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-data-management.mjs +0 -1
- package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs → acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs} +875 -142
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs.map → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-v1VroVv-.mjs → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-v1VroVv-.mjs.map → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs +116 -0
- package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs.map → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive.component-D5OwpnAP.mjs → acorex-modules-document-management-drive.component-DutBXTtm.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive.component-D5OwpnAP.mjs.map → acorex-modules-document-management-drive.component-DutBXTtm.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs.map → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs.map → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-RaW67V7O.mjs → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-RaW67V7O.mjs.map → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs → acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs} +2 -2
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs.map → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs.map → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs.map → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs.map → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs} +34 -12
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs → acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs} +2 -3
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs → acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs} +10 -14
- package/fesm2022/acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs} +77 -36
- package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs.map +1 -0
- package/fesm2022/acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs +28 -0
- package/fesm2022/acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs.map +1 -0
- package/fesm2022/acorex-modules-help-desk.mjs +2 -0
- package/fesm2022/acorex-modules-help-desk.mjs.map +1 -0
- package/fesm2022/acorex-modules-identifier-management.mjs +81 -39
- package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-location-management.mjs +4 -3
- package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +0 -1
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs +121 -0
- package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs.map +1 -0
- package/fesm2022/acorex-modules-meeting-management.mjs +2899 -0
- package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs +544 -0
- package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +145 -126
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs → acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs} +114 -68
- package/fesm2022/acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +22 -1
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs} +6 -6
- package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs} +2 -2
- package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs → acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs} +12 -10
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs} +2 -2
- package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-party-management-party-role.entity-C5BeakjX.mjs → acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs} +7 -7
- package/fesm2022/acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-party-management-party.entity-Blwg8o3o.mjs → acorex-modules-party-management-party.entity-DAvqOPic.mjs} +4 -4
- package/fesm2022/acorex-modules-party-management-party.entity-DAvqOPic.mjs.map +1 -0
- package/fesm2022/acorex-modules-party-management.mjs +1 -1
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs → acorex-modules-platform-management-list-version.component-kFe_wuWc.mjs} +3 -3
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs.map → acorex-modules-platform-management-list-version.component-kFe_wuWc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +12 -232
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +98 -97
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs → acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs} +2 -2
- package/fesm2022/acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +5 -5
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs → acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs} +11 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs.map +1 -0
- package/fesm2022/acorex-modules-settings-management.mjs +1 -1
- package/fesm2022/{acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs → acorex-modules-task-management-task-board.page-DbpqZaC7.mjs} +16 -11
- package/fesm2022/acorex-modules-task-management-task-board.page-DbpqZaC7.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +3026 -2821
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +39 -1
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/form-template-management/index.d.ts +3 -0
- package/help-desk/README.md +3 -0
- package/{issue-management → help-desk}/index.d.ts +12 -12
- package/identifier-management/index.d.ts +15 -16
- package/meeting-management/README.md +29 -0
- package/meeting-management/index.d.ts +248 -0
- package/notification-management/index.d.ts +6 -4
- package/package.json +24 -20
- package/platform-management/index.d.ts +1 -12
- package/task-management/index.d.ts +34 -2
- package/workflow-management/index.d.ts +4 -33
- package/fesm2022/acorex-modules-auth-password.component-NAY46d_2.mjs +0 -226
- package/fesm2022/acorex-modules-auth-password.component-NAY46d_2.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs +0 -28
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management.mjs +0 -2
- package/fesm2022/acorex-modules-issue-management.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +0 -1
- package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs +0 -93
- package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map +0 -1
- package/fesm2022/acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs +0 -244
- package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map +0 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map +0 -1
- package/issue-management/README.md +0 -3
package/fesm2022/acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs","sources":["../tmp-esm2022/report-management/lib/features/report/create/report-create-root/report-create-root.component.js"],"sourcesContent":["import { Component, ViewEncapsulation, computed, inject, signal, viewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXStepWizardModule } from '@acorex/components/step-wizard';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXToastService } from '@acorex/components/toast';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/text-box\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/label\";\nimport * as i6 from \"@acorex/components/check-box\";\nimport * as i7 from \"@acorex/components/select-box\";\nimport * as i8 from \"@acorex/components/decorators\";\nimport * as i9 from \"@acorex/components/step-wizard\";\n//#endregion\nexport class AXPReportCreateRootComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.toastService = inject(AXToastService);\n //#endregion\n //#region ---- ViewChild & Signals ----\n this.reportWizard = viewChild('reportWizard', ...(ngDevMode ? [{ debugName: \"reportWizard\" }] : []));\n this.isValidating = signal(false, ...(ngDevMode ? [{ debugName: \"isValidating\" }] : []));\n this.isSaving = signal(false, ...(ngDevMode ? [{ debugName: \"isSaving\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n this.canProceed = computed(() => {\n return this.validateCurrentStep();\n }, ...(ngDevMode ? [{ debugName: \"canProceed\" }] : []));\n //#endregion\n //#region ---- Form Data ----\n this.formData = {\n name: '',\n title: '',\n category: '',\n dataSource: '',\n template: '',\n formats: {},\n isScheduled: false,\n scheduleFrequency: '',\n parameters: []\n };\n //#endregion\n //#region ---- Step Definitions ----\n this.steps = [\n {\n id: 'basic-info',\n title: 'Basic Information',\n subtitle: 'Enter report details'\n },\n {\n id: 'configuration',\n title: 'Configuration',\n subtitle: 'Configure report settings'\n },\n {\n id: 'parameters',\n title: 'Parameters',\n subtitle: 'Define report parameters'\n },\n {\n id: 'review',\n title: 'Review & Finish',\n subtitle: 'Review and complete'\n }\n ];\n //#endregion\n //#region ---- Data Sources ----\n this.categories = [\n { id: 'financial', name: 'Financial Reports' },\n { id: 'operational', name: 'Operational Reports' },\n { id: 'analytics', name: 'Analytics Reports' },\n { id: 'compliance', name: 'Compliance Reports' }\n ];\n this.dataSources = [\n { id: 'users', title: 'Users Data' },\n { id: 'orders', title: 'Orders Data' },\n { id: 'products', title: 'Products Data' },\n { id: 'transactions', title: 'Transactions Data' },\n { id: 'logs', title: 'System Logs' }\n ];\n this.templates = [\n { id: 'standard', name: 'Standard Template' },\n { id: 'detailed', name: 'Detailed Template' },\n { id: 'summary', name: 'Summary Template' },\n { id: 'custom', name: 'Custom Template' }\n ];\n this.formats = [\n { id: 'pdf', name: 'PDF' },\n { id: 'excel', name: 'Excel' },\n { id: 'csv', name: 'CSV' },\n { id: 'html', name: 'HTML' }\n ];\n this.frequencies = [\n { id: 'daily', name: 'Daily' },\n { id: 'weekly', name: 'Weekly' },\n { id: 'monthly', name: 'Monthly' },\n { id: 'yearly', name: 'Yearly' }\n ];\n this.parameterTypes = [\n { id: 'string', name: 'Text' },\n { id: 'number', name: 'Number' },\n { id: 'date', name: 'Date' },\n { id: 'boolean', name: 'Boolean' },\n { id: 'select', name: 'Selection' }\n ];\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n this.initializeFormData();\n }\n ngOnDestroy() {\n // Cleanup if needed\n }\n //#endregion\n //#region ---- Step Navigation Methods ----\n async nextStep() {\n if (this.isValidating())\n return;\n this.isValidating.set(true);\n try {\n const isValid = this.validateCurrentStep();\n if (isValid) {\n const wizard = this.reportWizard();\n if (wizard) {\n wizard.next();\n }\n }\n else {\n this.toastService.warning('Please complete all required fields before proceeding.');\n }\n }\n catch (error) {\n this.toastService.danger('Validation failed. Please try again.');\n }\n finally {\n this.isValidating.set(false);\n }\n }\n async finishWizard() {\n if (this.isSaving())\n return;\n this.isSaving.set(true);\n try {\n const isValid = await this.validateAllSteps();\n if (isValid) {\n await this.saveReport();\n this.toastService.success('Report created successfully!');\n // Navigate to report list or show success message\n }\n else {\n this.toastService.warning('Please complete all required fields.');\n }\n }\n catch (error) {\n this.toastService.danger('Failed to create report. Please try again.');\n console.error('Error creating report:', error);\n }\n finally {\n this.isSaving.set(false);\n }\n }\n //#endregion\n //#region ---- Parameter Management ----\n addParameter() {\n const newParameter = {\n id: `param_${Date.now()}`,\n name: '',\n type: 'string',\n required: false\n };\n this.formData.parameters.push(newParameter);\n }\n removeParameter(index) {\n this.formData.parameters.splice(index, 1);\n }\n //#endregion\n //#region ---- Validation Methods ----\n validateCurrentStep() {\n // Since we can't reliably get current step index from wizard,\n // we'll validate all steps and let the wizard handle navigation\n return this.validateBasicInfo() || this.validateConfiguration() ||\n this.validateParameters() || this.validateReview();\n }\n validateBasicInfo() {\n return !!(this.formData.name?.trim() && this.formData.title?.trim() &&\n this.formData.category && this.formData.dataSource);\n }\n validateConfiguration() {\n const hasSelectedFormat = Object.values(this.formData.formats).some(selected => selected);\n const scheduleValid = !this.formData.isScheduled || !!this.formData.scheduleFrequency;\n return !!(this.formData.template && hasSelectedFormat && scheduleValid);\n }\n validateParameters() {\n return this.formData.parameters.every(param => param.name?.trim() && param.type);\n }\n validateReview() {\n return this.validateBasicInfo() && this.validateConfiguration() && this.validateParameters();\n }\n async validateAllSteps() {\n // Validate each step's form individually\n const basicValid = this.validateBasicInfo();\n const configValid = this.validateConfiguration();\n const paramsValid = this.validateParameters();\n const reviewValid = this.validateReview();\n return basicValid && configValid && paramsValid && reviewValid;\n }\n //#endregion\n //#region ---- Helper Methods ----\n initializeFormData() {\n // Initialize formats object\n this.formats.forEach(format => {\n this.formData.formats[format.id] = false;\n });\n // Set default PDF format\n this.formData.formats['pdf'] = true;\n }\n async saveReport() {\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 1000));\n console.log('Saving report with data:', this.formData);\n // Here you would typically call a service to save the report\n // Example: await this.reportService.createReport(this.formData);\n }\n getCategoryName(categoryId) {\n const category = this.categories.find(c => c.id === categoryId);\n return category?.name || categoryId;\n }\n getTemplateName(templateId) {\n const template = this.templates.find(t => t.id === templateId);\n return template?.name || templateId;\n }\n getSelectedFormats() {\n const selectedFormats = Object.entries(this.formData.formats)\n .filter(([_, selected]) => selected)\n .map(([formatId, _]) => {\n const format = this.formats.find(f => f.id === formatId);\n return format?.name || formatId;\n });\n return selectedFormats.join(', ') || 'None';\n }\n getDataSourceTitle(dataSourceId) {\n const dataSource = this.dataSources.find(d => d.id === dataSourceId);\n return dataSource?.title || dataSourceId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPReportCreateRootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPReportCreateRootComponent, isStandalone: true, selector: \"axp-report-create-root\", providers: [], viewQueries: [{ propertyName: \"reportWizard\", first: true, predicate: [\"reportWizard\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<div class=\\\"ax-w-full ax-max-w-4xl ax-mx-auto ax-p-6\\\">\\n <div class=\\\"step-wizard-header ax-text-center ax-mb-8\\\">\\n <h2 class=\\\"ax-text-2xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Create New Report</h2>\\n <p class=\\\"ax-text-gray-600\\\">Follow these steps to create your custom report</p>\\n </div>\\n\\n <ax-step-wizard\\n [content]=\\\"wizardContent\\\"\\n [look]=\\\"'rounded-icon'\\\"\\n #reportWizard\\n >\\n <ax-step-wizard-item [label]=\\\"'Basic Information'\\\" [id]=\\\"'basic'\\\">\\n <ax-icon class=\\\"fas fa-info-circle\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Basic Information</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Enter the basic details for your report</p>\\n </div>\\n \\n <ax-form #basicForm>\\n <div class=\\\"form-grid ax-grid ax-grid-cols-1 md:ax-grid-cols-2 ax-gap-6\\\">\\n <ax-form-field>\\n <ax-label>Report Name *</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"formData.name\\\"\\n placeholder=\\\"Enter report name\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportName\\\">\\n </ax-text-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Report Title *</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"formData.title\\\"\\n placeholder=\\\"Enter report title\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportTitle\\\">\\n </ax-text-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Category *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.category\\\"\\n [dataSource]=\\\"categories\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select category\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportCategory\\\">\\n </ax-select-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Data Source *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.dataSource\\\"\\n [dataSource]=\\\"dataSources\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'title'\\\"\\n placeholder=\\\"Select data source\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportDataSource\\\">\\n </ax-select-box>\\n </ax-form-field>\\n </div>\\n </ax-form>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Configuration'\\\" [id]=\\\"'config'\\\">\\n <ax-icon class=\\\"fas fa-cog\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Report Configuration</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Configure your report settings</p>\\n </div>\\n \\n <ax-form #configForm>\\n <div class=\\\"form-grid ax-grid ax-grid-cols-1 md:ax-grid-cols-2 ax-gap-6\\\">\\n <ax-form-field>\\n <ax-label>Template *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.template\\\"\\n [dataSource]=\\\"templates\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select template\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportTemplate\\\">\\n </ax-select-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Output Formats *</ax-label>\\n <div class=\\\"format-selection ax-grid ax-grid-cols-2 ax-gap-3\\\">\\n @for (format of formats; track format.id) {\\n <div class=\\\"format-option ax-p-3 ax-border ax-border-gray-200 ax-rounded-lg ax-transition-colors\\\">\\n <ax-check-box \\n [(ngModel)]=\\\"formData.formats[format.id]\\\"\\n [name]=\\\"'format_' + format.id\\\">\\n {{ format.name }}\\n </ax-check-box>\\n </div>\\n }\\n </div>\\n </ax-form-field>\\n\\n <ax-form-field class=\\\"md:ax-col-span-2\\\">\\n <div class=\\\"schedule-section ax-space-y-4\\\">\\n <ax-check-box \\n [(ngModel)]=\\\"formData.isScheduled\\\"\\n name=\\\"isScheduled\\\">\\n Enable scheduled reports\\n </ax-check-box>\\n \\n @if (formData.isScheduled) {\\n <div class=\\\"schedule-options ax-pl-6 ax-border-l-2 ax-border-primary/20\\\">\\n <ax-form-field>\\n <ax-label>Frequency</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.scheduleFrequency\\\"\\n [dataSource]=\\\"frequencies\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select frequency\\\"\\n name=\\\"scheduleFrequency\\\">\\n </ax-select-box>\\n </ax-form-field>\\n </div>\\n }\\n </div>\\n </ax-form-field>\\n </div>\\n </ax-form>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Parameters'\\\" [id]=\\\"'parameters'\\\">\\n <ax-icon class=\\\"fas fa-sliders-h\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Report Parameters</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Define parameters for your report</p>\\n </div>\\n \\n <div class=\\\"parameters-section ax-space-y-6\\\">\\n @if (formData.parameters.length > 0) {\\n <div class=\\\"parameters-list ax-space-y-4\\\">\\n @for (param of formData.parameters; track param.id; let i = $index) {\\n <div class=\\\"parameter-item ax-p-4 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50 ax-space-y-4\\\">\\n <div class=\\\"parameter-fields ax-grid ax-grid-cols-1 md:ax-grid-cols-3 ax-gap-4\\\">\\n <ax-form-field>\\n <ax-label>Parameter Name</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"param.name\\\"\\n placeholder=\\\"Enter parameter name\\\"\\n [name]=\\\"'param_name_' + i\\\">\\n </ax-text-box>\\n </ax-form-field>\\n \\n <ax-form-field>\\n <ax-label>Type</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"param.type\\\"\\n [dataSource]=\\\"parameterTypes\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select type\\\"\\n [name]=\\\"'param_type_' + i\\\">\\n </ax-select-box>\\n </ax-form-field>\\n \\n <ax-form-field>\\n <ax-check-box \\n [(ngModel)]=\\\"param.required\\\"\\n [name]=\\\"'param_required_' + i\\\">\\n Required\\n </ax-check-box>\\n </ax-form-field>\\n </div>\\n \\n <ax-button \\n look=\\\"ghost\\\"\\n color=\\\"danger\\\"\\n size=\\\"small\\\"\\n (onClick)=\\\"removeParameter(i)\\\">\\n Remove\\n </ax-button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"no-parameters ax-text-center ax-py-8 ax-text-gray-500\\\">\\n <p>No parameters defined yet.</p>\\n </div>\\n }\\n \\n <div class=\\\"add-parameter-section ax-text-center\\\">\\n <ax-button \\n look=\\\"outline\\\"\\n color=\\\"primary\\\"\\n (onClick)=\\\"addParameter()\\\">\\n + Add Parameter\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Review'\\\" [id]=\\\"'review'\\\">\\n <ax-icon class=\\\"fas fa-check-circle\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Review & Confirm</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Review your report configuration before creating</p>\\n </div>\\n \\n <div class=\\\"review-sections ax-space-y-6\\\">\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Basic Information</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Name:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.name || 'Not specified' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Title:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.title || 'Not specified' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Category:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getCategoryName(formData.category) || 'Not selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Data Source:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getDataSourceTitle(formData.dataSource) || 'Not selected' }}</span>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Configuration</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Template:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getTemplateName(formData.template) || 'Not selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Formats:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getSelectedFormats() || 'None selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Scheduled:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.isScheduled ? 'Yes - ' + formData.scheduleFrequency : 'No' }}</span>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Parameters</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n @if (formData.parameters.length > 0) {\\n @for (param of formData.parameters; track param.id) {\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">{{ param.name }}:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ param.type }}{{ param.required ? ' (Required)' : '' }}</span>\\n </div>\\n }\\n } @else {\\n <div class=\\\"review-item\\\">\\n <span class=\\\"value ax-text-gray-900\\\">No parameters defined</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n </ax-step-wizard>\\n\\n <div class=\\\"ax-flex ax-justify-center ax-p-5\\\">\\n <ng-template [axStepWizardContent] #wizardContent=\\\"axStepWizardContent\\\">\\n </ng-template>\\n </div>\\n\\n <div class=\\\"ax-mt-10 ax-flex ax-justify-between ax-items-center ax-pt-6 ax-border-t ax-border-gray-200\\\">\\n <div class=\\\"nav-left\\\">\\n <ax-button\\n [disabled]=\\\"reportWizard.isFirst()\\\"\\n (onClick)=\\\"reportWizard.previous()\\\"\\n [color]=\\\"'primary'\\\"\\n text=\\\"\\u2190 Previous\\\"\\n look=\\\"outline\\\">\\n </ax-button>\\n </div>\\n\\n <div class=\\\"nav-right\\\">\\n @if(reportWizard.isLast()) {\\n <ax-button \\n (onClick)=\\\"finishWizard()\\\" \\n color=\\\"success\\\" \\n text=\\\"Create Report\\\"\\n [disabled]=\\\"isSaving()\\\">\\n @if (isSaving()) {\\n Creating...\\n } @else {\\n Create Report\\n }\\n </ax-button>\\n } @else {\\n <ax-button\\n (onClick)=\\\"nextStep()\\\"\\n color=\\\"primary\\\"\\n text=\\\"Next \\u2192\\\"\\n [disabled]=\\\"!canProceed()\\\">\\n </ax-button>\\n }\\n </div>\\n </div>\\n</div>\\n\", styles: [\".step-content{min-height:24rem}.step-title-section{margin-bottom:1.5rem;text-align:center}.step-title-section h3{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.step-title-section p{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.form-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem}@media (min-width: 768px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.format-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}@media (max-width: 480px){.format-selection{grid-template-columns:repeat(1,minmax(0,1fr))}}.format-option{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.format-option:has(input:checked){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}.schedule-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.schedule-section .schedule-options{border-left-width:2px;border-color:rgba(var(--ax-sys-color-primary-500),.2);padding-left:1.5rem}.parameters-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.parameters-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.parameter-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.parameter-item>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.parameter-item .parameter-fields{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width: 768px){.parameter-item .parameter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.no-parameters{padding-top:2rem;padding-bottom:2rem;text-align:center;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.add-parameter-section{text-align:center}.review-sections>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.review-section{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1.5rem}.review-section h4{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding-bottom:.5rem}.review-items>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.review-item{display:flex;align-items:flex-start;justify-content:space-between}@media (max-width: 480px){.review-item{flex-direction:column}.review-item>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}}.review-item .label{margin-right:1rem;min-width:0px;flex-shrink:0;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.review-item .value{overflow-wrap:break-word;text-align:right;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (max-width: 480px){.review-item .value{text-align:left}}ax-form-field{display:block}ax-form-field ax-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"component\", type: i2.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"component\", type: i2.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i3.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { 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: AXLabelModule }, { kind: \"component\", type: i5.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i6.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i7.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSwitchModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i8.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i8.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXStepWizardModule }, { kind: \"component\", type: i9.AXStepWizardComponent, selector: \"ax-step-wizard\", inputs: [\"connector\", \"size\", \"look\", \"changeStep\", \"orientation\", \"content\"], outputs: [\"stepChanged\"] }, { kind: \"component\", type: i9.AXStepWizardItemComponent, selector: \"ax-step-wizard-item\", inputs: [\"disabled\", \"color\", \"step\", \"label\", \"description\", \"customTemplate\", \"active\", \"passed\", \"look\", \"state\", \"id\"], outputs: [\"activeChange\", \"passedChange\", \"lookChange\", \"stateChange\"] }, { kind: \"directive\", type: i9.AXStepWizardContentDirective, selector: \"[axStepWizardContent]\", inputs: [\"axStepWizardContent\"], exportAs: [\"axStepWizardContent\"] }], animations: [\n trigger('fadeIn', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(20px)' }),\n animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' }))\n ])\n ])\n ], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPReportCreateRootComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-report-create-root', imports: [\n // Angular\n CommonModule,\n FormsModule,\n // ACoreX\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXSelectBoxModule,\n AXSwitchModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXStepWizardModule,\n // Platform\n ], encapsulation: ViewEncapsulation.None, providers: [], animations: [\n trigger('fadeIn', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(20px)' }),\n animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' }))\n ])\n ])\n ], template: \"<div class=\\\"ax-w-full ax-max-w-4xl ax-mx-auto ax-p-6\\\">\\n <div class=\\\"step-wizard-header ax-text-center ax-mb-8\\\">\\n <h2 class=\\\"ax-text-2xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Create New Report</h2>\\n <p class=\\\"ax-text-gray-600\\\">Follow these steps to create your custom report</p>\\n </div>\\n\\n <ax-step-wizard\\n [content]=\\\"wizardContent\\\"\\n [look]=\\\"'rounded-icon'\\\"\\n #reportWizard\\n >\\n <ax-step-wizard-item [label]=\\\"'Basic Information'\\\" [id]=\\\"'basic'\\\">\\n <ax-icon class=\\\"fas fa-info-circle\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Basic Information</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Enter the basic details for your report</p>\\n </div>\\n \\n <ax-form #basicForm>\\n <div class=\\\"form-grid ax-grid ax-grid-cols-1 md:ax-grid-cols-2 ax-gap-6\\\">\\n <ax-form-field>\\n <ax-label>Report Name *</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"formData.name\\\"\\n placeholder=\\\"Enter report name\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportName\\\">\\n </ax-text-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Report Title *</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"formData.title\\\"\\n placeholder=\\\"Enter report title\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportTitle\\\">\\n </ax-text-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Category *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.category\\\"\\n [dataSource]=\\\"categories\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select category\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportCategory\\\">\\n </ax-select-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Data Source *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.dataSource\\\"\\n [dataSource]=\\\"dataSources\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'title'\\\"\\n placeholder=\\\"Select data source\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportDataSource\\\">\\n </ax-select-box>\\n </ax-form-field>\\n </div>\\n </ax-form>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Configuration'\\\" [id]=\\\"'config'\\\">\\n <ax-icon class=\\\"fas fa-cog\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Report Configuration</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Configure your report settings</p>\\n </div>\\n \\n <ax-form #configForm>\\n <div class=\\\"form-grid ax-grid ax-grid-cols-1 md:ax-grid-cols-2 ax-gap-6\\\">\\n <ax-form-field>\\n <ax-label>Template *</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.template\\\"\\n [dataSource]=\\\"templates\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select template\\\"\\n [required]=\\\"true\\\"\\n name=\\\"reportTemplate\\\">\\n </ax-select-box>\\n </ax-form-field>\\n\\n <ax-form-field>\\n <ax-label>Output Formats *</ax-label>\\n <div class=\\\"format-selection ax-grid ax-grid-cols-2 ax-gap-3\\\">\\n @for (format of formats; track format.id) {\\n <div class=\\\"format-option ax-p-3 ax-border ax-border-gray-200 ax-rounded-lg ax-transition-colors\\\">\\n <ax-check-box \\n [(ngModel)]=\\\"formData.formats[format.id]\\\"\\n [name]=\\\"'format_' + format.id\\\">\\n {{ format.name }}\\n </ax-check-box>\\n </div>\\n }\\n </div>\\n </ax-form-field>\\n\\n <ax-form-field class=\\\"md:ax-col-span-2\\\">\\n <div class=\\\"schedule-section ax-space-y-4\\\">\\n <ax-check-box \\n [(ngModel)]=\\\"formData.isScheduled\\\"\\n name=\\\"isScheduled\\\">\\n Enable scheduled reports\\n </ax-check-box>\\n \\n @if (formData.isScheduled) {\\n <div class=\\\"schedule-options ax-pl-6 ax-border-l-2 ax-border-primary/20\\\">\\n <ax-form-field>\\n <ax-label>Frequency</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"formData.scheduleFrequency\\\"\\n [dataSource]=\\\"frequencies\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select frequency\\\"\\n name=\\\"scheduleFrequency\\\">\\n </ax-select-box>\\n </ax-form-field>\\n </div>\\n }\\n </div>\\n </ax-form-field>\\n </div>\\n </ax-form>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Parameters'\\\" [id]=\\\"'parameters'\\\">\\n <ax-icon class=\\\"fas fa-sliders-h\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Report Parameters</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Define parameters for your report</p>\\n </div>\\n \\n <div class=\\\"parameters-section ax-space-y-6\\\">\\n @if (formData.parameters.length > 0) {\\n <div class=\\\"parameters-list ax-space-y-4\\\">\\n @for (param of formData.parameters; track param.id; let i = $index) {\\n <div class=\\\"parameter-item ax-p-4 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50 ax-space-y-4\\\">\\n <div class=\\\"parameter-fields ax-grid ax-grid-cols-1 md:ax-grid-cols-3 ax-gap-4\\\">\\n <ax-form-field>\\n <ax-label>Parameter Name</ax-label>\\n <ax-text-box \\n [(ngModel)]=\\\"param.name\\\"\\n placeholder=\\\"Enter parameter name\\\"\\n [name]=\\\"'param_name_' + i\\\">\\n </ax-text-box>\\n </ax-form-field>\\n \\n <ax-form-field>\\n <ax-label>Type</ax-label>\\n <ax-select-box \\n [(ngModel)]=\\\"param.type\\\"\\n [dataSource]=\\\"parameterTypes\\\"\\n [valueField]=\\\"'id'\\\"\\n [textField]=\\\"'name'\\\"\\n placeholder=\\\"Select type\\\"\\n [name]=\\\"'param_type_' + i\\\">\\n </ax-select-box>\\n </ax-form-field>\\n \\n <ax-form-field>\\n <ax-check-box \\n [(ngModel)]=\\\"param.required\\\"\\n [name]=\\\"'param_required_' + i\\\">\\n Required\\n </ax-check-box>\\n </ax-form-field>\\n </div>\\n \\n <ax-button \\n look=\\\"ghost\\\"\\n color=\\\"danger\\\"\\n size=\\\"small\\\"\\n (onClick)=\\\"removeParameter(i)\\\">\\n Remove\\n </ax-button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"no-parameters ax-text-center ax-py-8 ax-text-gray-500\\\">\\n <p>No parameters defined yet.</p>\\n </div>\\n }\\n \\n <div class=\\\"add-parameter-section ax-text-center\\\">\\n <ax-button \\n look=\\\"outline\\\"\\n color=\\\"primary\\\"\\n (onClick)=\\\"addParameter()\\\">\\n + Add Parameter\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n\\n <ax-step-wizard-item [label]=\\\"'Review'\\\" [id]=\\\"'review'\\\">\\n <ax-icon class=\\\"fas fa-check-circle\\\"></ax-icon>\\n <ax-content>\\n <div class=\\\"step-content\\\">\\n <div class=\\\"step-title-section ax-text-center ax-mb-6\\\">\\n <h3 class=\\\"ax-text-xl ax-font-bold ax-text-gray-900 ax-mb-2\\\">Review & Confirm</h3>\\n <p class=\\\"ax-text-gray-600 ax-text-sm\\\">Review your report configuration before creating</p>\\n </div>\\n \\n <div class=\\\"review-sections ax-space-y-6\\\">\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Basic Information</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Name:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.name || 'Not specified' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Title:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.title || 'Not specified' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Category:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getCategoryName(formData.category) || 'Not selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Data Source:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getDataSourceTitle(formData.dataSource) || 'Not selected' }}</span>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Configuration</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Template:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getTemplateName(formData.template) || 'Not selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Formats:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ getSelectedFormats() || 'None selected' }}</span>\\n </div>\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">Scheduled:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ formData.isScheduled ? 'Yes - ' + formData.scheduleFrequency : 'No' }}</span>\\n </div>\\n </div>\\n </div>\\n\\n <div class=\\\"review-section ax-p-6 ax-border ax-border-gray-200 ax-rounded-lg ax-bg-gray-50\\\">\\n <h4 class=\\\"ax-text-lg ax-font-semibold ax-text-gray-900 ax-mb-4 ax-pb-2 ax-border-b ax-border-gray-200\\\">Parameters</h4>\\n <div class=\\\"review-items ax-space-y-3\\\">\\n @if (formData.parameters.length > 0) {\\n @for (param of formData.parameters; track param.id) {\\n <div class=\\\"review-item ax-flex ax-justify-between ax-items-start\\\">\\n <span class=\\\"label ax-font-medium ax-text-gray-700 ax-min-w-0 ax-mr-4 ax-flex-shrink-0\\\">{{ param.name }}:</span>\\n <span class=\\\"value ax-text-gray-900 ax-text-right ax-break-words\\\">{{ param.type }}{{ param.required ? ' (Required)' : '' }}</span>\\n </div>\\n }\\n } @else {\\n <div class=\\\"review-item\\\">\\n <span class=\\\"value ax-text-gray-900\\\">No parameters defined</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n </ax-content>\\n </ax-step-wizard-item>\\n </ax-step-wizard>\\n\\n <div class=\\\"ax-flex ax-justify-center ax-p-5\\\">\\n <ng-template [axStepWizardContent] #wizardContent=\\\"axStepWizardContent\\\">\\n </ng-template>\\n </div>\\n\\n <div class=\\\"ax-mt-10 ax-flex ax-justify-between ax-items-center ax-pt-6 ax-border-t ax-border-gray-200\\\">\\n <div class=\\\"nav-left\\\">\\n <ax-button\\n [disabled]=\\\"reportWizard.isFirst()\\\"\\n (onClick)=\\\"reportWizard.previous()\\\"\\n [color]=\\\"'primary'\\\"\\n text=\\\"\\u2190 Previous\\\"\\n look=\\\"outline\\\">\\n </ax-button>\\n </div>\\n\\n <div class=\\\"nav-right\\\">\\n @if(reportWizard.isLast()) {\\n <ax-button \\n (onClick)=\\\"finishWizard()\\\" \\n color=\\\"success\\\" \\n text=\\\"Create Report\\\"\\n [disabled]=\\\"isSaving()\\\">\\n @if (isSaving()) {\\n Creating...\\n } @else {\\n Create Report\\n }\\n </ax-button>\\n } @else {\\n <ax-button\\n (onClick)=\\\"nextStep()\\\"\\n color=\\\"primary\\\"\\n text=\\\"Next \\u2192\\\"\\n [disabled]=\\\"!canProceed()\\\">\\n </ax-button>\\n }\\n </div>\\n </div>\\n</div>\\n\", styles: [\".step-content{min-height:24rem}.step-title-section{margin-bottom:1.5rem;text-align:center}.step-title-section h3{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.step-title-section p{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.form-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem}@media (min-width: 768px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.format-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}@media (max-width: 480px){.format-selection{grid-template-columns:repeat(1,minmax(0,1fr))}}.format-option{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.format-option:has(input:checked){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}.schedule-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.schedule-section .schedule-options{border-left-width:2px;border-color:rgba(var(--ax-sys-color-primary-500),.2);padding-left:1.5rem}.parameters-section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.parameters-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.parameter-item{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.parameter-item>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.parameter-item .parameter-fields{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width: 768px){.parameter-item .parameter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.no-parameters{padding-top:2rem;padding-bottom:2rem;text-align:center;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.add-parameter-section{text-align:center}.review-sections>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.review-section{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1.5rem}.review-section h4{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));padding-bottom:.5rem}.review-items>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.review-item{display:flex;align-items:flex-start;justify-content:space-between}@media (max-width: 480px){.review-item{flex-direction:column}.review-item>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}}.review-item .label{margin-right:1rem;min-width:0px;flex-shrink:0;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.review-item .value{overflow-wrap:break-word;text-align:right;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}@media (max-width: 480px){.review-item .value{text-align:left}}ax-form-field{display:block}ax-form-field ax-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNyZWF0ZS1yb290LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9yZXBvcnQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3JlcG9ydC9jcmVhdGUvcmVwb3J0LWNyZWF0ZS1yb290L3JlcG9ydC1jcmVhdGUtcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcmVwb3J0LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9yZXBvcnQvY3JlYXRlL3JlcG9ydC1jcmVhdGUtcm9vdC9yZXBvcnQtY3JlYXRlLXJvb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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RUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUM5RSxDQUFDO3lCQUNMLENBQUM7cUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0cmlnZ2VyLCB0cmFuc2l0aW9uLCBzdHlsZSwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUsIEFYRm9ybUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhDaGVja0JveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jaGVjay1ib3gnO1xuaW1wb3J0IHsgQVhMYWJlbE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sYWJlbCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYU3dpdGNoTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3N3aXRjaCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYU3RlcFdpemFyZE1vZHVsZSwgQVhTdGVwV2l6YXJkQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3N0ZXAtd2l6YXJkJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuXG4vLyNyZWdpb24gLS0tLSAgIEludGVyZmFjZXMgJiBUeXBlcyAgIC0tLS1cblxuaW50ZXJmYWNlIFN0ZXBEZWZpbml0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VidGl0bGU6IHN0cmluZztcbiAgaXNWYWxpZD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBSZXBvcnRGb3JtRGF0YSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgZGF0YVNvdXJjZTogc3RyaW5nO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICBmb3JtYXRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgaXNTY2hlZHVsZWQ6IGJvb2xlYW47XG4gIHNjaGVkdWxlRnJlcXVlbmN5OiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFBhcmFtZXRlckRlZmluaXRpb25bXTtcbn1cblxuaW50ZXJmYWNlIFBhcmFtZXRlckRlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDYXRlZ29yeU9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlT3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRm9ybWF0T3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRnJlcXVlbmN5T3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUGFyYW1ldGVyVHlwZU9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIERhdGFTb3VyY2VPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuXG4vLyNlbmRyZWdpb25cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6J2F4cC1yZXBvcnQtY3JlYXRlLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtY3JlYXRlLXJvb3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9yZXBvcnQtY3JlYXRlLXJvb3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gQW5ndWxhclxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICAgICAgQVhTd2l0Y2hNb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICBBWFN0ZXBXaXphcmRNb2R1bGUsXG4gICAgICAgIC8vIFBsYXRmb3JtXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdmYWRlSW4nLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDIwcHgpJyB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLWluJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJyB9KSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBSZXBvcnRDcmVhdGVSb290Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBWaWV3Q2hpbGQgJiBTaWduYWxzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBvcnRXaXphcmQgPSB2aWV3Q2hpbGQ8QVhTdGVwV2l6YXJkQ29tcG9uZW50PigncmVwb3J0V2l6YXJkJyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNWYWxpZGF0aW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTYXZpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXB1dGVkIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuUHJvY2VlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVDdXJyZW50U3RlcCgpO1xuICAgIH0pO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEZvcm0gRGF0YSAgIC0tLS1cblxuICAgIHByb3RlY3RlZCBmb3JtRGF0YTogUmVwb3J0Rm9ybURhdGEgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGNhdGVnb3J5OiAnJyxcbiAgICAgICAgZGF0YVNvdXJjZTogJycsXG4gICAgICAgIHRlbXBsYXRlOiAnJyxcbiAgICAgICAgZm9ybWF0czoge30sXG4gICAgICAgIGlzU2NoZWR1bGVkOiBmYWxzZSxcbiAgICAgICAgc2NoZWR1bGVGcmVxdWVuY3k6ICcnLFxuICAgICAgICBwYXJhbWV0ZXJzOiBbXVxuICAgIH07XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RlcCBEZWZpbml0aW9ucyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdGVwczogU3RlcERlZmluaXRpb25bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdiYXNpYy1pbmZvJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQmFzaWMgSW5mb3JtYXRpb24nLFxuICAgICAgICAgICAgc3VidGl0bGU6ICdFbnRlciByZXBvcnQgZGV0YWlscydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQ29uZmlndXJhdGlvbicsXG4gICAgICAgICAgICBzdWJ0aXRsZTogJ0NvbmZpZ3VyZSByZXBvcnQgc2V0dGluZ3MnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAncGFyYW1ldGVycycsXG4gICAgICAgICAgICB0aXRsZTogJ1BhcmFtZXRlcnMnLFxuICAgICAgICAgICAgc3VidGl0bGU6ICdEZWZpbmUgcmVwb3J0IHBhcmFtZXRlcnMnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAncmV2aWV3JyxcbiAgICAgICAgICAgIHRpdGxlOiAnUmV2aWV3ICYgRmluaXNoJyxcbiAgICAgICAgICAgIHN1YnRpdGxlOiAnUmV2aWV3IGFuZCBjb21wbGV0ZSdcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRGF0YSBTb3VyY2VzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGVnb3JpZXM6IENhdGVnb3J5T3B0aW9uW10gPSBbXG4gICAgICAgIHsgaWQ6ICdmaW5hbmNpYWwnLCBuYW1lOiAnRmluYW5jaWFsIFJlcG9ydHMnIH0sXG4gICAgICAgIHsgaWQ6ICdvcGVyYXRpb25hbCcsIG5hbWU6ICdPcGVyYXRpb25hbCBSZXBvcnRzJyB9LFxuICAgICAgICB7IGlkOiAnYW5hbHl0aWNzJywgbmFtZTogJ0FuYWx5dGljcyBSZXBvcnRzJyB9LFxuICAgICAgICB7IGlkOiAnY29tcGxpYW5jZScsIG5hbWU6ICdDb21wbGlhbmNlIFJlcG9ydHMnIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFTb3VyY2VzOiBEYXRhU291cmNlT3B0aW9uW10gPSBbXG4gICAgICAgIHsgaWQ6ICd1c2VycycsIHRpdGxlOiAnVXNlcnMgRGF0YScgfSxcbiAgICAgICAgeyBpZDogJ29yZGVycycsIHRpdGxlOiAnT3JkZXJzIERhdGEnIH0sXG4gICAgICAgIHsgaWQ6ICdwcm9kdWN0cycsIHRpdGxlOiAnUHJvZHVjdHMgRGF0YScgfSxcbiAgICAgICAgeyBpZDogJ3RyYW5zYWN0aW9ucycsIHRpdGxlOiAnVHJhbnNhY3Rpb25zIERhdGEnIH0sXG4gICAgICAgIHsgaWQ6ICdsb2dzJywgdGl0bGU6ICdTeXN0ZW0gTG9ncycgfVxuICAgIF07XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGVtcGxhdGVzOiBUZW1wbGF0ZU9wdGlvbltdID0gW1xuICAgICAgICB7IGlkOiAnc3RhbmRhcmQnLCBuYW1lOiAnU3RhbmRhcmQgVGVtcGxhdGUnIH0sXG4gICAgICAgIHsgaWQ6ICdkZXRhaWxlZCcsIG5hbWU6ICdEZXRhaWxlZCBUZW1wbGF0ZScgfSxcbiAgICAgICAgeyBpZDogJ3N1bW1hcnknLCBuYW1lOiAnU3VtbWFyeSBUZW1wbGF0ZScgfSxcbiAgICAgICAgeyBpZDogJ2N1c3RvbScsIG5hbWU6ICdDdXN0b20gVGVtcGxhdGUnIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdHM6IEZvcm1hdE9wdGlvbltdID0gW1xuICAgICAgICB7IGlkOiAncGRmJywgbmFtZTogJ1BERicgfSxcbiAgICAgICAgeyBpZDogJ2V4Y2VsJywgbmFtZTogJ0V4Y2VsJyB9LFxuICAgICAgICB7IGlkOiAnY3N2JywgbmFtZTogJ0NTVicgfSxcbiAgICAgICAgeyBpZDogJ2h0bWwnLCBuYW1lOiAnSFRNTCcgfVxuICAgIF07XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZnJlcXVlbmNpZXM6IEZyZXF1ZW5jeU9wdGlvbltdID0gW1xuICAgICAgICB7IGlkOiAnZGFpbHknLCBuYW1lOiAnRGFpbHknIH0sXG4gICAgICAgIHsgaWQ6ICd3ZWVrbHknLCBuYW1lOiAnV2Vla2x5JyB9LFxuICAgICAgICB7IGlkOiAnbW9udGhseScsIG5hbWU6ICdNb250aGx5JyB9LFxuICAgICAgICB7IGlkOiAneWVhcmx5JywgbmFtZTogJ1llYXJseScgfVxuICAgIF07XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1ldGVyVHlwZXM6IFBhcmFtZXRlclR5cGVPcHRpb25bXSA9IFtcbiAgICAgICAgeyBpZDogJ3N0cmluZycsIG5hbWU6ICdUZXh0JyB9LFxuICAgICAgICB7IGlkOiAnbnVtYmVyJywgbmFtZTogJ051bWJlcicgfSxcbiAgICAgICAgeyBpZDogJ2RhdGUnLCBuYW1lOiAnRGF0ZScgfSxcbiAgICAgICAgeyBpZDogJ2Jvb2xlYW4nLCBuYW1lOiAnQm9vbGVhbicgfSxcbiAgICAgICAgeyBpZDogJ3NlbGVjdCcsIG5hbWU6ICdTZWxlY3Rpb24nIH1cbiAgICBdO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSBNZXRob2RzICAgLS0tLVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1EYXRhKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIENsZWFudXAgaWYgbmVlZGVkXG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFN0ZXAgTmF2aWdhdGlvbiBNZXRob2RzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIG5leHRTdGVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkYXRpbmcoKSkgcmV0dXJuO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5pc1ZhbGlkYXRpbmcuc2V0KHRydWUpO1xuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLnZhbGlkYXRlQ3VycmVudFN0ZXAoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3aXphcmQgPSB0aGlzLnJlcG9ydFdpemFyZCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aXphcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgd2l6YXJkLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLndhcm5pbmcoJ1BsZWFzZSBjb21wbGV0ZSBhbGwgcmVxdWlyZWQgZmllbGRzIGJlZm9yZSBwcm9jZWVkaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGFuZ2VyKCdWYWxpZGF0aW9uIGZhaWxlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZGF0aW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgZmluaXNoV2l6YXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1NhdmluZygpKSByZXR1cm47XG4gICAgICAgIFxuICAgICAgICB0aGlzLmlzU2F2aW5nLnNldCh0cnVlKTtcbiAgICAgICAgXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgdGhpcy52YWxpZGF0ZUFsbFN0ZXBzKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zYXZlUmVwb3J0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnUmVwb3J0IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICAgICAgICAgIC8vIE5hdmlnYXRlIHRvIHJlcG9ydCBsaXN0IG9yIHNob3cgc3VjY2VzcyBtZXNzYWdlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLndhcm5pbmcoJ1BsZWFzZSBjb21wbGV0ZSBhbGwgcmVxdWlyZWQgZmllbGRzLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGFuZ2VyKCdGYWlsZWQgdG8gY3JlYXRlIHJlcG9ydC4gUGxlYXNlIHRyeSBhZ2Fpbi4nKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNyZWF0aW5nIHJlcG9ydDonLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmlzU2F2aW5nLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUGFyYW1ldGVyIE1hbmFnZW1lbnQgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgYWRkUGFyYW1ldGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdQYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgICAgICBpZDogYHBhcmFtXyR7RGF0ZS5ub3coKX1gLFxuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgdGhpcy5mb3JtRGF0YS5wYXJhbWV0ZXJzLnB1c2gobmV3UGFyYW1ldGVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlUGFyYW1ldGVyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtRGF0YS5wYXJhbWV0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFZhbGlkYXRpb24gTWV0aG9kcyAgIC0tLS1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVDdXJyZW50U3RlcCgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgZ2V0IGN1cnJlbnQgc3RlcCBpbmRleCBmcm9tIHdpemFyZCxcbiAgICAgICAgLy8gd2UnbGwgdmFsaWRhdGUgYWxsIHN0ZXBzIGFuZCBsZXQgdGhlIHdpemFyZCBoYW5kbGUgbmF2aWdhdGlvblxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUJhc2ljSW5mbygpIHx8IHRoaXMudmFsaWRhdGVDb25maWd1cmF0aW9uKCkgfHwgXG4gICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlUGFyYW1ldGVycygpIHx8IHRoaXMudmFsaWRhdGVSZXZpZXcoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQmFzaWNJbmZvKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5mb3JtRGF0YS5uYW1lPy50cmltKCkgJiYgdGhpcy5mb3JtRGF0YS50aXRsZT8udHJpbSgpICYmIFxuICAgICAgICAgICAgICAgICB0aGlzLmZvcm1EYXRhLmNhdGVnb3J5ICYmIHRoaXMuZm9ybURhdGEuZGF0YVNvdXJjZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUNvbmZpZ3VyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGhhc1NlbGVjdGVkRm9ybWF0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1EYXRhLmZvcm1hdHMpLnNvbWUoc2VsZWN0ZWQgPT4gc2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBzY2hlZHVsZVZhbGlkID0gIXRoaXMuZm9ybURhdGEuaXNTY2hlZHVsZWQgfHwgISF0aGlzLmZvcm1EYXRhLnNjaGVkdWxlRnJlcXVlbmN5O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuZm9ybURhdGEudGVtcGxhdGUgJiYgaGFzU2VsZWN0ZWRGb3JtYXQgJiYgc2NoZWR1bGVWYWxpZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVBhcmFtZXRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1EYXRhLnBhcmFtZXRlcnMuZXZlcnkocGFyYW0gPT4gXG4gICAgICAgICAgICBwYXJhbS5uYW1lPy50cmltKCkgJiYgcGFyYW0udHlwZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVSZXZpZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQmFzaWNJbmZvKCkgJiYgdGhpcy52YWxpZGF0ZUNvbmZpZ3VyYXRpb24oKSAmJiB0aGlzLnZhbGlkYXRlUGFyYW1ldGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVBbGxTdGVwcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgLy8gVmFsaWRhdGUgZWFjaCBzdGVwJ3MgZm9ybSBpbmRpdmlkdWFsbHlcbiAgICAgICAgY29uc3QgYmFzaWNWYWxpZCA9IHRoaXMudmFsaWRhdGVCYXNpY0luZm8oKTtcbiAgICAgICAgY29uc3QgY29uZmlnVmFsaWQgPSB0aGlzLnZhbGlkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgICAgICBjb25zdCBwYXJhbXNWYWxpZCA9IHRoaXMudmFsaWRhdGVQYXJhbWV0ZXJzKCk7XG4gICAgICAgIGNvbnN0IHJldmlld1ZhbGlkID0gdGhpcy52YWxpZGF0ZVJldmlldygpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGJhc2ljVmFsaWQgJiYgY29uZmlnVmFsaWQgJiYgcGFyYW1zVmFsaWQgJiYgcmV2aWV3VmFsaWQ7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEhlbHBlciBNZXRob2RzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybURhdGEoKTogdm9pZCB7XG4gICAgICAgIC8vIEluaXRpYWxpemUgZm9ybWF0cyBvYmplY3RcbiAgICAgICAgdGhpcy5mb3JtYXRzLmZvckVhY2goZm9ybWF0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybURhdGEuZm9ybWF0c1tmb3JtYXQuaWRdID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgUERGIGZvcm1hdFxuICAgICAgICB0aGlzLmZvcm1EYXRhLmZvcm1hdHNbJ3BkZiddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHNhdmVSZXBvcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIFNpbXVsYXRlIEFQSSBjYWxsXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7XG4gICAgICAgIFxuICAgICAgICBjb25zb2xlLmxvZygnU2F2aW5nIHJlcG9ydCB3aXRoIGRhdGE6JywgdGhpcy5mb3JtRGF0YSk7XG4gICAgICAgIFxuICAgICAgICAvLyBIZXJlIHlvdSB3b3VsZCB0eXBpY2FsbHkgY2FsbCBhIHNlcnZpY2UgdG8gc2F2ZSB0aGUgcmVwb3J0XG4gICAgICAgIC8vIEV4YW1wbGU6IGF3YWl0IHRoaXMucmVwb3J0U2VydmljZS5jcmVhdGVSZXBvcnQodGhpcy5mb3JtRGF0YSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldENhdGVnb3J5TmFtZShjYXRlZ29yeUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKGMgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCk7XG4gICAgICAgIHJldHVybiBjYXRlZ29yeT8ubmFtZSB8fCBjYXRlZ29yeUlkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUZW1wbGF0ZU5hbWUodGVtcGxhdGVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKHQgPT4gdC5pZCA9PT0gdGVtcGxhdGVJZCk7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZT8ubmFtZSB8fCB0ZW1wbGF0ZUlkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRTZWxlY3RlZEZvcm1hdHMoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGb3JtYXRzID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtRGF0YS5mb3JtYXRzKVxuICAgICAgICAgICAgLmZpbHRlcigoW18sIHNlbGVjdGVkXSkgPT4gc2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKChbZm9ybWF0SWQsIF9dKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5mb3JtYXRzLmZpbmQoZiA9PiBmLmlkID09PSBmb3JtYXRJZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdD8ubmFtZSB8fCBmb3JtYXRJZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkRm9ybWF0cy5qb2luKCcsICcpIHx8ICdOb25lJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RGF0YVNvdXJjZVRpdGxlKGRhdGFTb3VyY2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZXMuZmluZChkID0+IGQuaWQgPT09IGRhdGFTb3VyY2VJZCk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlPy50aXRsZSB8fCBkYXRhU291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtdy1mdWxsIGF4LW1heC13LTR4bCBheC1teC1hdXRvIGF4LXAtNlwiPlxuICA8ZGl2IGNsYXNzPVwic3RlcC13aXphcmQtaGVhZGVyIGF4LXRleHQtY2VudGVyIGF4LW1iLThcIj5cbiAgICA8aDIgY2xhc3M9XCJheC10ZXh0LTJ4bCBheC1mb250LWJvbGQgYXgtdGV4dC1ncmF5LTkwMCBheC1tYi0yXCI+Q3JlYXRlIE5ldyBSZXBvcnQ8L2gyPlxuICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1ncmF5LTYwMFwiPkZvbGxvdyB0aGVzZSBzdGVwcyB0byBjcmVhdGUgeW91ciBjdXN0b20gcmVwb3J0PC9wPlxuICA8L2Rpdj5cblxuICA8YXgtc3RlcC13aXphcmRcbiAgICBbY29udGVudF09XCJ3aXphcmRDb250ZW50XCJcbiAgICBbbG9va109XCIncm91bmRlZC1pY29uJ1wiXG4gICAgI3JlcG9ydFdpemFyZFxuICA+XG4gICAgPGF4LXN0ZXAtd2l6YXJkLWl0ZW0gW2xhYmVsXT1cIidCYXNpYyBJbmZvcm1hdGlvbidcIiBbaWRdPVwiJ2Jhc2ljJ1wiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXMgZmEtaW5mby1jaXJjbGVcIj48L2F4LWljb24+XG4gICAgICA8YXgtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlLXNlY3Rpb24gYXgtdGV4dC1jZW50ZXIgYXgtbWItNlwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGQgYXgtdGV4dC1ncmF5LTkwMCBheC1tYi0yXCI+QmFzaWMgSW5mb3JtYXRpb248L2gzPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LWdyYXktNjAwIGF4LXRleHQtc21cIj5FbnRlciB0aGUgYmFzaWMgZGV0YWlscyBmb3IgeW91ciByZXBvcnQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPGF4LWZvcm0gI2Jhc2ljRm9ybT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyaWQgYXgtZ3JpZCBheC1ncmlkLWNvbHMtMSBtZDpheC1ncmlkLWNvbHMtMiBheC1nYXAtNlwiPlxuICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8YXgtbGFiZWw+UmVwb3J0IE5hbWUgKjwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmb3JtRGF0YS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgcmVwb3J0IG5hbWVcIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInJlcG9ydE5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGF4LWxhYmVsPlJlcG9ydCBUaXRsZSAqPC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3ggXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgcmVwb3J0IHRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZXBvcnRUaXRsZVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8YXgtbGFiZWw+Q2F0ZWdvcnkgKjwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLmNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgICAgICBbdGV4dEZpZWxkXT1cIiduYW1lJ1wiXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwicmVwb3J0Q2F0ZWdvcnlcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8YXgtbGFiZWw+RGF0YSBTb3VyY2UgKjwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLmRhdGFTb3VyY2VcIlxuICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgICAgICBbdGV4dEZpZWxkXT1cIid0aXRsZSdcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgZGF0YSBzb3VyY2VcIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInJlcG9ydERhdGFTb3VyY2VcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXgtZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgPC9heC1zdGVwLXdpemFyZC1pdGVtPlxuXG4gICAgPGF4LXN0ZXAtd2l6YXJkLWl0ZW0gW2xhYmVsXT1cIidDb25maWd1cmF0aW9uJ1wiIFtpZF09XCInY29uZmlnJ1wiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXMgZmEtY29nXCI+PC9heC1pY29uPlxuICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZS1zZWN0aW9uIGF4LXRleHQtY2VudGVyIGF4LW1iLTZcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImF4LXRleHQteGwgYXgtZm9udC1ib2xkIGF4LXRleHQtZ3JheS05MDAgYXgtbWItMlwiPlJlcG9ydCBDb25maWd1cmF0aW9uPC9oMz5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1ncmF5LTYwMCBheC10ZXh0LXNtXCI+Q29uZmlndXJlIHlvdXIgcmVwb3J0IHNldHRpbmdzPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIDxheC1mb3JtICNjb25maWdGb3JtPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JpZCBheC1ncmlkIGF4LWdyaWQtY29scy0xIG1kOmF4LWdyaWQtY29scy0yIGF4LWdhcC02XCI+XG4gICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxheC1sYWJlbD5UZW1wbGF0ZSAqPC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCBcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZm9ybURhdGEudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwidGVtcGxhdGVzXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cIidpZCdcIlxuICAgICAgICAgICAgICAgICAgW3RleHRGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInJlcG9ydFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGF4LWxhYmVsPk91dHB1dCBGb3JtYXRzICo8L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtYXQtc2VsZWN0aW9uIGF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGZvcm1hdCBvZiBmb3JtYXRzOyB0cmFjayBmb3JtYXQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1hdC1vcHRpb24gYXgtcC0zIGF4LWJvcmRlciBheC1ib3JkZXItZ3JheS0yMDAgYXgtcm91bmRlZC1sZyBheC10cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1jaGVjay1ib3ggXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLmZvcm1hdHNbZm9ybWF0LmlkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCInZm9ybWF0XycgKyBmb3JtYXQuaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQgY2xhc3M9XCJtZDpheC1jb2wtc3Bhbi0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLXNlY3Rpb24gYXgtc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IFxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLmlzU2NoZWR1bGVkXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzU2NoZWR1bGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIEVuYWJsZSBzY2hlZHVsZWQgcmVwb3J0c1xuICAgICAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIEBpZiAoZm9ybURhdGEuaXNTY2hlZHVsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlLW9wdGlvbnMgYXgtcGwtNiBheC1ib3JkZXItbC0yIGF4LWJvcmRlci1wcmltYXJ5LzIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+RnJlcXVlbmN5PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZvcm1EYXRhLnNjaGVkdWxlRnJlcXVlbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZnJlcXVlbmNpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCInaWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBmcmVxdWVuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2NoZWR1bGVGcmVxdWVuY3lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2F4LWZvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtc3RlcC13aXphcmQtaXRlbT5cblxuICAgIDxheC1zdGVwLXdpemFyZC1pdGVtIFtsYWJlbF09XCInUGFyYW1ldGVycydcIiBbaWRdPVwiJ3BhcmFtZXRlcnMnXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1zbGlkZXJzLWhcIj48L2F4LWljb24+XG4gICAgICA8YXgtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRpdGxlLXNlY3Rpb24gYXgtdGV4dC1jZW50ZXIgYXgtbWItNlwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGQgYXgtdGV4dC1ncmF5LTkwMCBheC1tYi0yXCI+UmVwb3J0IFBhcmFtZXRlcnM8L2gzPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LWdyYXktNjAwIGF4LXRleHQtc21cIj5EZWZpbmUgcGFyYW1ldGVycyBmb3IgeW91ciByZXBvcnQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhcmFtZXRlcnMtc2VjdGlvbiBheC1zcGFjZS15LTZcIj5cbiAgICAgICAgICAgIEBpZiAoZm9ybURhdGEucGFyYW1ldGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXJhbWV0ZXJzLWxpc3QgYXgtc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgQGZvciAocGFyYW0gb2YgZm9ybURhdGEucGFyYW1ldGVyczsgdHJhY2sgcGFyYW0uaWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyYW1ldGVyLWl0ZW0gYXgtcC00IGF4LWJvcmRlciBheC1ib3JkZXItZ3JheS0yMDAgYXgtcm91bmRlZC1sZyBheC1iZy1ncmF5LTUwIGF4LXNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyYW1ldGVyLWZpZWxkcyBheC1ncmlkIGF4LWdyaWQtY29scy0xIG1kOmF4LWdyaWQtY29scy0zIGF4LWdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+UGFyYW1ldGVyIE5hbWU8L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmFtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHBhcmFtZXRlciBuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ3BhcmFtX25hbWVfJyArIGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPlR5cGU8L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFyYW0udHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cInBhcmFtZXRlclR5cGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiJ2lkJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0RmllbGRdPVwiJ25hbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidwYXJhbV90eXBlXycgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXJhbS5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidwYXJhbV9yZXF1aXJlZF8nICsgaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gXG4gICAgICAgICAgICAgICAgICAgICAgbG9vaz1cImdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJyZW1vdmVQYXJhbWV0ZXIoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICBSZW1vdmVcbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1wYXJhbWV0ZXJzIGF4LXRleHQtY2VudGVyIGF4LXB5LTggYXgtdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgIDxwPk5vIHBhcmFtZXRlcnMgZGVmaW5lZCB5ZXQuPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1wYXJhbWV0ZXItc2VjdGlvbiBheC10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uIFxuICAgICAgICAgICAgICAgIGxvb2s9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFkZFBhcmFtZXRlcigpXCI+XG4gICAgICAgICAgICAgICAgKyBBZGQgUGFyYW1ldGVyXG4gICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtc3RlcC13aXphcmQtaXRlbT5cblxuICAgIDxheC1zdGVwLXdpemFyZC1pdGVtIFtsYWJlbF09XCInUmV2aWV3J1wiIFtpZF09XCIncmV2aWV3J1wiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXMgZmEtY2hlY2stY2lyY2xlXCI+PC9heC1pY29uPlxuICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC10aXRsZS1zZWN0aW9uIGF4LXRleHQtY2VudGVyIGF4LW1iLTZcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImF4LXRleHQteGwgYXgtZm9udC1ib2xkIGF4LXRleHQtZ3JheS05MDAgYXgtbWItMlwiPlJldmlldyAmIENvbmZpcm08L2gzPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LWdyYXktNjAwIGF4LXRleHQtc21cIj5SZXZpZXcgeW91ciByZXBvcnQgY29uZmlndXJhdGlvbiBiZWZvcmUgY3JlYXRpbmc8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1zZWN0aW9ucyBheC1zcGFjZS15LTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctc2VjdGlvbiBheC1wLTYgYXgtYm9yZGVyIGF4LWJvcmRlci1ncmF5LTIwMCBheC1yb3VuZGVkLWxnIGF4LWJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkIGF4LXRleHQtZ3JheS05MDAgYXgtbWItNCBheC1wYi0yIGF4LWJvcmRlci1iIGF4LWJvcmRlci1ncmF5LTIwMFwiPkJhc2ljIEluZm9ybWF0aW9uPC9oND5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1pdGVtcyBheC1zcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW0gYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1ncmF5LTcwMCBheC1taW4tdy0wIGF4LW1yLTQgYXgtZmxleC1zaHJpbmstMFwiPk5hbWU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBheC10ZXh0LWdyYXktOTAwIGF4LXRleHQtcmlnaHQgYXgtYnJlYWstd29yZHNcIj57eyBmb3JtRGF0YS5uYW1lIHx8ICdOb3Qgc3BlY2lmaWVkJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW0gYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1ncmF5LTcwMCBheC1taW4tdy0wIGF4LW1yLTQgYXgtZmxleC1zaHJpbmstMFwiPlRpdGxlOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUgYXgtdGV4dC1ncmF5LTkwMCBheC10ZXh0LXJpZ2h0IGF4LWJyZWFrLXdvcmRzXCI+e3sgZm9ybURhdGEudGl0bGUgfHwgJ05vdCBzcGVjaWZpZWQnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctaXRlbSBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBheC1mb250LW1lZGl1bSBheC10ZXh0LWdyYXktNzAwIGF4LW1pbi13LTAgYXgtbXItNCBheC1mbGV4LXNocmluay0wXCI+Q2F0ZWdvcnk6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBheC10ZXh0LWdyYXktOTAwIGF4LXRleHQtcmlnaHQgYXgtYnJlYWstd29yZHNcIj57eyBnZXRDYXRlZ29yeU5hbWUoZm9ybURhdGEuY2F0ZWdvcnkpIHx8ICdOb3Qgc2VsZWN0ZWQnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctaXRlbSBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBheC1mb250LW1lZGl1bSBheC10ZXh0LWdyYXktNzAwIGF4LW1pbi13LTAgYXgtbXItNCBheC1mbGV4LXNocmluay0wXCI+RGF0YSBTb3VyY2U6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBheC10ZXh0LWdyYXktOTAwIGF4LXRleHQtcmlnaHQgYXgtYnJlYWstd29yZHNcIj57eyBnZXREYXRhU291cmNlVGl0bGUoZm9ybURhdGEuZGF0YVNvdXJjZSkgfHwgJ05vdCBzZWxlY3RlZCcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctc2VjdGlvbiBheC1wLTYgYXgtYm9yZGVyIGF4LWJvcmRlci1ncmF5LTIwMCBheC1yb3VuZGVkLWxnIGF4LWJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkIGF4LXRleHQtZ3JheS05MDAgYXgtbWItNCBheC1wYi0yIGF4LWJvcmRlci1iIGF4LWJvcmRlci1ncmF5LTIwMFwiPkNvbmZpZ3VyYXRpb248L2g0PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW1zIGF4LXNwYWNlLXktM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctaXRlbSBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBheC1mb250LW1lZGl1bSBheC10ZXh0LWdyYXktNzAwIGF4LW1pbi13LTAgYXgtbXItNCBheC1mbGV4LXNocmluay0wXCI+VGVtcGxhdGU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBheC10ZXh0LWdyYXktOTAwIGF4LXRleHQtcmlnaHQgYXgtYnJlYWstd29yZHNcIj57eyBnZXRUZW1wbGF0ZU5hbWUoZm9ybURhdGEudGVtcGxhdGUpIHx8ICdOb3Qgc2VsZWN0ZWQnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctaXRlbSBheC1mbGV4IGF4LWp1c3RpZnktYmV0d2VlbiBheC1pdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbCBheC1mb250LW1lZGl1bSBheC10ZXh0LWdyYXktNzAwIGF4LW1pbi13LTAgYXgtbXItNCBheC1mbGV4LXNocmluay0wXCI+Rm9ybWF0czo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlIGF4LXRleHQtZ3JheS05MDAgYXgtdGV4dC1yaWdodCBheC1icmVhay13b3Jkc1wiPnt7IGdldFNlbGVjdGVkRm9ybWF0cygpIHx8ICdOb25lIHNlbGVjdGVkJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW0gYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgYXgtZm9udC1tZWRpdW0gYXgtdGV4dC1ncmF5LTcwMCBheC1taW4tdy0wIGF4LW1yLTQgYXgtZmxleC1zaHJpbmstMFwiPlNjaGVkdWxlZDo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlIGF4LXRleHQtZ3JheS05MDAgYXgtdGV4dC1yaWdodCBheC1icmVhay13b3Jkc1wiPnt7IGZvcm1EYXRhLmlzU2NoZWR1bGVkID8gJ1llcyAtICcgKyBmb3JtRGF0YS5zY2hlZHVsZUZyZXF1ZW5jeSA6ICdObycgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctc2VjdGlvbiBheC1wLTYgYXgtYm9yZGVyIGF4LWJvcmRlci1ncmF5LTIwMCBheC1yb3VuZGVkLWxnIGF4LWJnLWdyYXktNTBcIj5cbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiYXgtdGV4dC1sZyBheC1mb250LXNlbWlib2xkIGF4LXRleHQtZ3JheS05MDAgYXgtbWItNCBheC1wYi0yIGF4LWJvcmRlci1iIGF4LWJvcmRlci1ncmF5LTIwMFwiPlBhcmFtZXRlcnM8L2g0PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW1zIGF4LXNwYWNlLXktM1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoZm9ybURhdGEucGFyYW1ldGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICBAZm9yIChwYXJhbSBvZiBmb3JtRGF0YS5wYXJhbWV0ZXJzOyB0cmFjayBwYXJhbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW0gYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsIGF4LWZvbnQtbWVkaXVtIGF4LXRleHQtZ3JheS03MDAgYXgtbWluLXctMCBheC1tci00IGF4LWZsZXgtc2hyaW5rLTBcIj57eyBwYXJhbS5uYW1lIH19Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlIGF4LXRleHQtZ3JheS05MDAgYXgtdGV4dC1yaWdodCBheC1icmVhay13b3Jkc1wiPnt7IHBhcmFtLnR5cGUgfX17eyBwYXJhbS5yZXF1aXJlZCA/ICcgKFJlcXVpcmVkKScgOiAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBheC10ZXh0LWdyYXktOTAwXCI+Tm8gcGFyYW1ldGVycyBkZWZpbmVkPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtY29udGVudD5cbiAgICA8L2F4LXN0ZXAtd2l6YXJkLWl0ZW0+XG4gIDwvYXgtc3RlcC13aXphcmQ+XG5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtcC01XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtheFN0ZXBXaXphcmRDb250ZW50XSAjd2l6YXJkQ29udGVudD1cImF4U3RlcFdpemFyZENvbnRlbnRcIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYXgtbXQtMTAgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtY2VudGVyIGF4LXB0LTYgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5hdi1sZWZ0XCI+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZXBvcnRXaXphcmQuaXNGaXJzdCgpXCJcbiAgICAgICAgKG9uQ2xpY2spPVwicmVwb3J0V2l6YXJkLnByZXZpb3VzKClcIlxuICAgICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgdGV4dD1cIuKGkCBQcmV2aW91c1wiXG4gICAgICAgIGxvb2s9XCJvdXRsaW5lXCI+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJuYXYtcmlnaHRcIj5cbiAgICAgIEBpZihyZXBvcnRXaXphcmQuaXNMYXN0KCkpIHtcbiAgICAgICAgPGF4LWJ1dHRvbiBcbiAgICAgICAgICAob25DbGljayk9XCJmaW5pc2hXaXphcmQoKVwiIFxuICAgICAgICAgIGNvbG9yPVwic3VjY2Vzc1wiIFxuICAgICAgICAgIHRleHQ9XCJDcmVhdGUgUmVwb3J0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTYXZpbmcoKVwiPlxuICAgICAgICAgIEBpZiAoaXNTYXZpbmcoKSkge1xuICAgICAgICAgICAgQ3JlYXRpbmcuLi5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIENyZWF0ZSBSZXBvcnRcbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAob25DbGljayk9XCJuZXh0U3RlcCgpXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIHRleHQ9XCJOZXh0IOKGklwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Qcm9jZWVkKClcIj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0="],"names":["i4","i8"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs","sources":["../tmp-esm2022/settings-management/lib/features/settings/setting-page/setting-page.component.js"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { AXHighlightService, resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex/platform/core';\nimport { filter, firstValueFrom, startWith, take } from 'rxjs';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPSettingsViewModel } from '../settings.viewmodel';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@acorex/components/search-box\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/core/translation\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/components/tabs\";\nimport * as i8 from \"@acorex/components/loading\";\nimport * as i9 from \"@angular/common\";\nexport class AXPSettingPageComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n this.vm = inject(AXPSettingsViewModel);\n this.activatedRoute = inject(ActivatedRoute);\n this.unsubscribe = inject(AXUnsubscriber);\n this.highlightService = inject(AXHighlightService);\n this.router = inject(Router);\n this.#effect = effect(() => {\n if (!this.vm.isLoaded()) {\n return;\n }\n const expression = this.vm.searchExpression();\n const app = this.sessionService.application?.name;\n const scope = resolvePlatformScopeName(this.vm.scope());\n const group = this.vm.activateGroup()?.name;\n //\n if (this.vm.isSearching()) {\n this.router.navigate([app, 'settings', scope, group ?? ''], {\n queryParams: { q: expression },\n });\n setTimeout(() => {\n this.highlightService.highlight('#ax-settings', expression);\n }, 100);\n return;\n }\n this.router.navigate([app, 'settings', scope, group ?? '']);\n this.highlightService.clear();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #effect;\n async ngOnInit() {\n await super.ngOnInit();\n //\n this.router.events\n .pipe(this.unsubscribe.takeUntilDestroy, filter((event) => event instanceof NavigationEnd), startWith(null))\n .subscribe(async () => {\n await this.loadFromRoute();\n });\n }\n async loadFromRoute() {\n const snapshot = this.activatedRoute.snapshot;\n const routerScope = resolvePlatformScopeKey(snapshot.paramMap.get('scope')?.trim().toLowerCase());\n const vmScope = this.vm.scope();\n const query = snapshot.queryParamMap.get('q');\n //\n //\n if (vmScope != routerScope || !this.vm.isLoaded()) {\n await this.vm.load(routerScope);\n }\n this.vm.unloadActivateGroup();\n this.vm.clearSearch();\n //\n let group = await this.getGroupFromRoute();\n //\n if (!group && this.layoutService.isLarge() && !this.vm.isSearching()) {\n group = this.vm.groups()?.[0]?.name;\n if (group) {\n await this.router.navigate([group], { relativeTo: this.activatedRoute, replaceUrl: true });\n }\n }\n else if (group) {\n await this.vm.setActivateGroupByName(group);\n this.recompute();\n }\n if (query) {\n await this.vm.search(query);\n this.recompute();\n }\n }\n async getGroupFromRoute() {\n const snapshot = this.activatedRoute.snapshot;\n let group = snapshot.paramMap.get('group');\n //\n if (!group) {\n for (const childRoute of this.activatedRoute.children) {\n const params = await firstValueFrom(childRoute.paramMap.pipe(take(1)));\n group = params?.get('group');\n if (group) {\n break;\n }\n }\n }\n return group ?? undefined;\n }\n async handleSelectGroup(item) {\n await this.router.navigate([`${item.name}`], { relativeTo: this.activatedRoute });\n }\n //#region ---------------- Page Configuration Overrides ----------------\n async getSecondaryMenuItems() {\n if (this.vm.activateGroup()) {\n return [\n {\n title: await this.translateService.translateAsync('actions.restore-defaults.title', { scope: 'settings' }),\n icon: 'fa-light fa-rotate-left',\n color: 'danger',\n command: {\n name: 'restore-defaults'\n }\n }\n ];\n }\n return [];\n }\n async getPageTitle() {\n const groupTitle = this.vm.activateGroup()?.title;\n const scopeTitle = await this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' });\n if (!this.vm.isSearching()) {\n return groupTitle ?? scopeTitle;\n }\n else {\n return this.translateService.translateAsync('search.title', { scope: 'settings', params: { q: this.vm.searchExpression() } });\n }\n }\n async getPageDescription() {\n const groupDescription = this.vm.activateGroup()?.description;\n const scopeDescription = await this.translateService.translateAsync(this.vm.scopeDescription(), { scope: 'settings' });\n if (!this.vm.isSearching()) {\n return groupDescription ?? scopeDescription;\n }\n else {\n return this.translateService.translateAsync('search.description', { scope: 'settings' });\n }\n }\n async getBackButton() {\n if (this.vm.activateGroup()) {\n return {\n title: await this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' }),\n };\n }\n return null;\n }\n onBackButtonClick() {\n const app = this.sessionService.application?.name;\n const scope = resolvePlatformScopeName(this.vm.scope());\n //\n this.router.navigate([app, 'settings', scope]);\n }\n async execute(command) {\n switch (command.name) {\n case 'restore-defaults':\n await this.vm.resetToDefault();\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPSettingPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPSettingPageComponent, isStandalone: true, selector: \"ng-component\", host: { classAttribute: \"axp-setting-page\" }, providers: [\n AXUnsubscriber,\n AXPSettingsViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPSettingPageComponent\n }\n ], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if(vm.showGroups()) {\\n <axp-layout-start-side>\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.scopeTitle(), { scope: 'settings' }) | async }}</axp-layout-title>\\n <axp-layout-toolbar>\\n <ax-search-box\\n [delayTime]=\\\"300\\\"\\n [ngModel]=\\\"vm.searchExpression()\\\"\\n (onValueChanged)=\\\"vm.search($event.value)\\\"\\n [placeholder]=\\\"t('search.placeholder', { scope: 'settings' }) | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </axp-layout-toolbar>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.groups(); track $index) {\\n <ax-tab-item\\n [text]=\\\"item.title\\\"\\n (onClick)=\\\"handleSelectGroup(item)\\\"\\n [active]=\\\"vm.activateGroup() == item && !vm.isSearching()\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n\\n <axp-page-content id=\\\"ax-settings\\\">\\n @if(vm.hasActivateGroup() || vm.isSearching()) {\\n <router-outlet></router-outlet>\\n } @else {\\n <axp-layout-list>\\n @for (item of vm.groups(); track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectGroup(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{ item.title | translate | async }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n }\\n </axp-page-content>\\n\\n @if(vm.isDirty()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <ax-button\\n [class.ax-sm]=\\\"layoutService.isSmall()\\\"\\n [disabled]=\\\"vm.isBusy() || vm.isSaving()\\\"\\n [text]=\\\"t('discard') | async\\\"\\n (onClick)=\\\"vm.discard()\\\"\\n >\\n </ax-button>\\n <ax-button\\n [class.ax-sm]=\\\"layoutService.isSmall()\\\"\\n [disabled]=\\\"vm.isBusy() || vm.isSaving()\\\"\\n [text]=\\\"t('apply') | async\\\"\\n (onClick)=\\\"vm.apply()\\\"\\n [color]=\\\"'secondary'\\\"\\n >\\n @if(vm.isSaving()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\".axp-setting-page ax-tabs{--ax-comp-tabs-default-border-radius: 0}.axp-setting-page ax-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}.axp-setting-page axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-setting-page axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-setting-page axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-setting-page axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-setting-page axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-setting-page axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-setting-page #ax-settings{padding:1rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i2.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: \n //\n AXSearchBoxModule }, { kind: \"component\", type: i3.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i5.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.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: AXTabsModule }, { kind: \"component\", type: i7.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i7.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i8.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: \n //\n AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutListComponent, selector: \"axp-layout-list\" }, { kind: \"component\", type: AXPThemeLayoutListItemComponent, selector: \"axp-layout-list-item\" }, { kind: \"component\", type: AXPThemeLayoutToolbarComponent, selector: \"axp-layout-toolbar\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"component\", type: AXPThemeLayoutStartSideComponent, selector: \"axp-layout-page-start-side, axp-layout-start-side\" }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPSettingPageComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n //\n AXSearchBoxModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXTranslationModule,\n AXButtonModule,\n AXTabsModule,\n AXBadgeModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPThemeLayoutToolbarComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutStartSideComponent\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXUnsubscriber,\n AXPSettingsViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPSettingPageComponent\n }\n ], host: { class: 'axp-setting-page' }, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if(vm.showGroups()) {\\n <axp-layout-start-side>\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.scopeTitle(), { scope: 'settings' }) | async }}</axp-layout-title>\\n <axp-layout-toolbar>\\n <ax-search-box\\n [delayTime]=\\\"300\\\"\\n [ngModel]=\\\"vm.searchExpression()\\\"\\n (onValueChanged)=\\\"vm.search($event.value)\\\"\\n [placeholder]=\\\"t('search.placeholder', { scope: 'settings' }) | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </axp-layout-toolbar>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.groups(); track $index) {\\n <ax-tab-item\\n [text]=\\\"item.title\\\"\\n (onClick)=\\\"handleSelectGroup(item)\\\"\\n [active]=\\\"vm.activateGroup() == item && !vm.isSearching()\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n\\n <axp-page-content id=\\\"ax-settings\\\">\\n @if(vm.hasActivateGroup() || vm.isSearching()) {\\n <router-outlet></router-outlet>\\n } @else {\\n <axp-layout-list>\\n @for (item of vm.groups(); track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectGroup(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{ item.title | translate | async }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n }\\n </axp-page-content>\\n\\n @if(vm.isDirty()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <ax-button\\n [class.ax-sm]=\\\"layoutService.isSmall()\\\"\\n [disabled]=\\\"vm.isBusy() || vm.isSaving()\\\"\\n [text]=\\\"t('discard') | async\\\"\\n (onClick)=\\\"vm.discard()\\\"\\n >\\n </ax-button>\\n <ax-button\\n [class.ax-sm]=\\\"layoutService.isSmall()\\\"\\n [disabled]=\\\"vm.isBusy() || vm.isSaving()\\\"\\n [text]=\\\"t('apply') | async\\\"\\n (onClick)=\\\"vm.apply()\\\"\\n [color]=\\\"'secondary'\\\"\\n >\\n @if(vm.isSaving()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\".axp-setting-page ax-tabs{--ax-comp-tabs-default-border-radius: 0}.axp-setting-page ax-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}.axp-setting-page axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-setting-page axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-setting-page axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-setting-page axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-setting-page axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-setting-page axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-setting-page #ax-settings{padding:1rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9zZXR0aW5ncy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2V0dGluZ3Mvc2V0dGluZy1wYWdlL3NldHRpbmctcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NldHRpbmdzL3NldHRpbmctcGFnZS9zZXR0aW5nLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLDhCQUE4QixHQUMvQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIs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QXVCO2tCQXhDbkMsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osRUFBRTt3QkFDRixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysc0JBQXNCO3dCQUN0QixFQUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLCtCQUErQjt3QkFDL0IsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLGdDQUFnQztxQkFFakMsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcseUJBQXlCO3lCQUNyQztxQkFDRixRQUNLLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQge1xuICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRMaXN0Q29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dExpc3RJdGVtQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dFN0YXJ0U2lkZUNvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRUb29sYmFyQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgdW50cmFja2VkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhIaWdobGlnaHRTZXJ2aWNlLCBBWFBBY3Rpb25NZW51SXRlbSwgQVhQQmFja0J1dHRvbiwgQVhQRXhlY3V0ZUNvbW1hbmQsIHJlc29sdmVQbGF0Zm9ybVNjb3BlS2V5LCByZXNvbHZlUGxhdGZvcm1TY29wZU5hbWUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3RWYWx1ZUZyb20sIHN0YXJ0V2l0aCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UsIEFYUFBhZ2VMYXlvdXRCYXNlQ29tcG9uZW50LCBBWFBQYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvdmlld3MnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ3NWaWV3TW9kZWwgfSBmcm9tICcuLi9zZXR0aW5ncy52aWV3bW9kZWwnO1xuXG5cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIC8vXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCcmVhZGNydW1ic01vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQUGFnZUxheW91dENvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0TGlzdENvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dExpc3RJdGVtQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0VG9vbGJhckNvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dFN0YXJ0U2lkZUNvbXBvbmVudFxuXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5nLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2V0dGluZy1wYWdlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIEFYVW5zdWJzY3JpYmVyLFxuICAgIEFYUFNldHRpbmdzVmlld01vZGVsLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUFBhZ2VMYXlvdXRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUFNldHRpbmdQYWdlQ29tcG9uZW50XG4gICAgfVxuICBdLFxuICBob3N0OiB7IGNsYXNzOiAnYXhwLXNldHRpbmctcGFnZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ1BhZ2VDb21wb25lbnQgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIHZtID0gaW5qZWN0KEFYUFNldHRpbmdzVmlld01vZGVsKTtcbiAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodFNlcnZpY2UgPSBpbmplY3QoQVhIaWdobGlnaHRTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnZtLmlzTG9hZGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMudm0uc2VhcmNoRXhwcmVzc2lvbigpO1xuICAgIGNvbnN0IGFwcCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWU7XG4gICAgY29uc3Qgc2NvcGUgPSByZXNvbHZlUGxhdGZvcm1TY29wZU5hbWUodGhpcy52bS5zY29wZSgpKTtcbiAgICBjb25zdCBncm91cCA9IHRoaXMudm0uYWN0aXZhdGVHcm91cCgpPy5uYW1lO1xuICAgIC8vXG4gICAgaWYgKHRoaXMudm0uaXNTZWFyY2hpbmcoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2FwcCwgJ3NldHRpbmdzJywgc2NvcGUsIGdyb3VwID8/ICcnXSwge1xuICAgICAgICBxdWVyeVBhcmFtczogeyBxOiBleHByZXNzaW9uIH0sXG4gICAgICB9KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuaGlnaGxpZ2h0KCcjYXgtc2V0dGluZ3MnLCBleHByZXNzaW9uISk7XG4gICAgICB9LCAxMDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYXBwLCAnc2V0dGluZ3MnLCBzY29wZSwgZ3JvdXAgPz8gJyddKTtcbiAgICB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuY2xlYXIoKTtcbiAgfSk7XG5cblxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy9cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRGcm9tUm91dGUoKTtcbiAgICAgIH0pO1xuICB9XG5cblxuICBwcml2YXRlIGFzeW5jIGxvYWRGcm9tUm91dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90O1xuICAgIGNvbnN0IHJvdXRlclNjb3BlID0gcmVzb2x2ZVBsYXRmb3JtU2NvcGVLZXkoc25hcHNob3QucGFyYW1NYXAuZ2V0KCdzY29wZScpPy50cmltKCkudG9Mb3dlckNhc2UoKSEpO1xuICAgIGNvbnN0IHZtU2NvcGUgPSB0aGlzLnZtLnNjb3BlKCk7XG4gICAgY29uc3QgcXVlcnkgPSBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncScpO1xuICAgIC8vXG4gICAgLy9cbiAgICBpZiAodm1TY29wZSAhPSByb3V0ZXJTY29wZSB8fCAhdGhpcy52bS5pc0xvYWRlZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnZtLmxvYWQocm91dGVyU2NvcGUpO1xuICAgIH1cbiAgICB0aGlzLnZtLnVubG9hZEFjdGl2YXRlR3JvdXAoKTtcbiAgICB0aGlzLnZtLmNsZWFyU2VhcmNoKCk7XG4gICAgLy9cbiAgICBsZXQgZ3JvdXAgPSBhd2FpdCB0aGlzLmdldEdyb3VwRnJvbVJvdXRlKCk7XG4gICAgLy9cbiAgICBpZiAoIWdyb3VwICYmIHRoaXMubGF5b3V0U2VydmljZS5pc0xhcmdlKCkgJiYgIXRoaXMudm0uaXNTZWFyY2hpbmcoKSkge1xuICAgICAgZ3JvdXAgPSB0aGlzLnZtLmdyb3VwcygpPy5bMF0/Lm5hbWU7XG4gICAgICBpZiAoZ3JvdXApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2dyb3VwXSwgeyByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLCByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChncm91cCkge1xuICAgICAgYXdhaXQgdGhpcy52bS5zZXRBY3RpdmF0ZUdyb3VwQnlOYW1lKGdyb3VwISk7XG4gICAgICB0aGlzLnJlY29tcHV0ZSgpO1xuICAgIH1cbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIGF3YWl0IHRoaXMudm0uc2VhcmNoKHF1ZXJ5KTtcbiAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRHcm91cEZyb21Sb3V0ZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdDtcbiAgICBsZXQgZ3JvdXAgPSBzbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2dyb3VwJyk7XG4gICAgLy9cbiAgICBpZiAoIWdyb3VwKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkUm91dGUgb2YgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShjaGlsZFJvdXRlLnBhcmFtTWFwLnBpcGUodGFrZSgxKSkpO1xuICAgICAgICBncm91cCA9IHBhcmFtcz8uZ2V0KCdncm91cCcpO1xuICAgICAgICBpZiAoZ3JvdXApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ3JvdXAgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlbGVjdEdyb3VwKGl0ZW06IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXApIHtcbiAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7aXRlbS5uYW1lfWBdLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSk7XG4gIH1cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFBhZ2UgQ29uZmlndXJhdGlvbiBPdmVycmlkZXMgICAtLS0tLS0tLS0tLS0tLS0tXG5cblxuICBvdmVycmlkZSBhc3luYyBnZXRTZWNvbmRhcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgaWYgKHRoaXMudm0uYWN0aXZhdGVHcm91cCgpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnYWN0aW9ucy5yZXN0b3JlLWRlZmF1bHRzLnRpdGxlJywgeyBzY29wZTogJ3NldHRpbmdzJyB9KSxcbiAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcm90YXRlLWxlZnQnLFxuICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICBuYW1lOiAncmVzdG9yZS1kZWZhdWx0cydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VUaXRsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGdyb3VwVGl0bGUgPSB0aGlzLnZtLmFjdGl2YXRlR3JvdXAoKT8udGl0bGU7XG4gICAgY29uc3Qgc2NvcGVUaXRsZSA9IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyh0aGlzLnZtLnNjb3BlVGl0bGUoKSwgeyBzY29wZTogJ3NldHRpbmdzJyB9KTtcbiAgICBpZiAoIXRoaXMudm0uaXNTZWFyY2hpbmcoKSkge1xuICAgICAgcmV0dXJuIGdyb3VwVGl0bGUgPz8gc2NvcGVUaXRsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnc2VhcmNoLnRpdGxlJywgeyBzY29wZTogJ3NldHRpbmdzJywgcGFyYW1zOiB7IHE6IHRoaXMudm0uc2VhcmNoRXhwcmVzc2lvbigpIH0gfSlcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgZ3JvdXBEZXNjcmlwdGlvbiA9IHRoaXMudm0uYWN0aXZhdGVHcm91cCgpPy5kZXNjcmlwdGlvbjtcbiAgICBjb25zdCBzY29wZURlc2NyaXB0aW9uID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRoaXMudm0uc2NvcGVEZXNjcmlwdGlvbigpLCB7IHNjb3BlOiAnc2V0dGluZ3MnIH0pO1xuICAgIGlmICghdGhpcy52bS5pc1NlYXJjaGluZygpKSB7XG4gICAgICByZXR1cm4gZ3JvdXBEZXNjcmlwdGlvbiA/PyBzY29wZURlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3NlYXJjaC5kZXNjcmlwdGlvbicsIHsgc2NvcGU6ICdzZXR0aW5ncycgfSlcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRCYWNrQnV0dG9uKCk6IFByb21pc2U8QVhQQmFja0J1dHRvbiB8IG51bGw+IHtcbiAgICBpZiAodGhpcy52bS5hY3RpdmF0ZUdyb3VwKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmModGhpcy52bS5zY29wZVRpdGxlKCksIHsgc2NvcGU6ICdzZXR0aW5ncycgfSksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uQmFja0J1dHRvbkNsaWNrKCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhcHAgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lO1xuICAgIGNvbnN0IHNjb3BlID0gcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHRoaXMudm0uc2NvcGUoKSk7XG4gICAgLy9cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYXBwLCAnc2V0dGluZ3MnLCBzY29wZV0pO1xuICB9XG5cblxuICBvdmVycmlkZSBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoIChjb21tYW5kLm5hbWUpIHtcbiAgICAgIGNhc2UgJ3Jlc3RvcmUtZGVmYXVsdHMnOlxuICAgICAgICBhd2FpdCB0aGlzLnZtLnJlc2V0VG9EZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwiPGF4cC1wYWdlLWxheW91dCAqdHJhbnNsYXRlPVwibGV0IHRcIj5cbiAgQGlmKHZtLnNob3dHcm91cHMoKSkge1xuICA8YXhwLWxheW91dC1zdGFydC1zaWRlPlxuICAgIDxheHAtbGF5b3V0LWhlYWRlcj5cbiAgICAgIDxheHAtbGF5b3V0LXRpdGxlPnt7IHQodm0uc2NvcGVUaXRsZSgpLCB7IHNjb3BlOiAnc2V0dGluZ3MnIH0pIHwgYXN5bmMgfX08L2F4cC1sYXlvdXQtdGl0bGU+XG4gICAgICA8YXhwLWxheW91dC10b29sYmFyPlxuICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgIFtkZWxheVRpbWVdPVwiMzAwXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJ2bS5zZWFyY2hFeHByZXNzaW9uKClcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJ2bS5zZWFyY2goJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ3NlYXJjaC5wbGFjZWhvbGRlcicsIHsgc2NvcGU6ICdzZXR0aW5ncycgfSkgfCBhc3luY1wiXG4gICAgICAgID5cbiAgICAgICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgICA8L2F4cC1sYXlvdXQtdG9vbGJhcj5cbiAgICA8L2F4cC1sYXlvdXQtaGVhZGVyPlxuICAgIDxheHAtbGF5b3V0LWNvbnRlbnQ+XG4gICAgICA8YXgtdGFicyBbbG9va109XCInd2l0aC1saW5lLWNvbG9yJ1wiIFtsb2NhdGlvbl09XCInZW5kJ1wiIFtmaXRQYXJlbnRdPVwidHJ1ZVwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIHZtLmdyb3VwcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgICAgW3RleHRdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2VsZWN0R3JvdXAoaXRlbSlcIlxuICAgICAgICAgIFthY3RpdmVdPVwidm0uYWN0aXZhdGVHcm91cCgpID09IGl0ZW0gJiYgIXZtLmlzU2VhcmNoaW5nKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgJHt7IGl0ZW0uaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9heC10YWJzPlxuICAgIDwvYXhwLWxheW91dC1jb250ZW50PlxuICA8L2F4cC1sYXlvdXQtc3RhcnQtc2lkZT5cbiAgfVxuXG4gIDxheHAtcGFnZS1jb250ZW50IGlkPVwiYXgtc2V0dGluZ3NcIj5cbiAgICBAaWYodm0uaGFzQWN0aXZhdGVHcm91cCgpIHx8IHZtLmlzU2VhcmNoaW5nKCkpIHtcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgfSBAZWxzZSB7XG4gICAgPGF4cC1sYXlvdXQtbGlzdD5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygdm0uZ3JvdXBzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4cC1sYXlvdXQtbGlzdC1pdGVtIChjbGljayk9XCJoYW5kbGVTZWxlY3RHcm91cChpdGVtKVwiPlxuICAgICAgICA8YXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciAke3sgaXRlbS5pY29uIH19XCIgY2xhc3M9XCJheC10ZXh0LWdyYXktNTAwXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4cC1sYXlvdXQtcHJlZml4PlxuICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgIDxhIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGl0ZW0udGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYT5cbiAgICAgICAgPC9heHAtbGF5b3V0LWNvbnRlbnQ+XG4gICAgICAgIDxheHAtbGF5b3V0LXN1ZmZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiIGZhciBmYS1jaGV2cm9uLXJpZ2h0XCIgY2xhc3M9XCJheC10ZXh0LWdyYXktNDAwXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgPC9heHAtbGF5b3V0LWxpc3QtaXRlbT5cbiAgICAgIH1cbiAgICA8L2F4cC1sYXlvdXQtbGlzdD5cbiAgICB9XG4gIDwvYXhwLXBhZ2UtY29udGVudD5cblxuICBAaWYodm0uaXNEaXJ0eSgpKSB7XG4gIDxheHAtcGFnZS1mb290ZXIgY2xhc3M9XCItLWFuaW1hdGVkXCI+XG4gICAgPGF4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBbY2xhc3MuYXgtc21dPVwibGF5b3V0U2VydmljZS5pc1NtYWxsKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidm0uaXNCdXN5KCkgfHwgdm0uaXNTYXZpbmcoKVwiXG4gICAgICAgIFt0ZXh0XT1cInQoJ2Rpc2NhcmQnKSB8IGFzeW5jXCJcbiAgICAgICAgKG9uQ2xpY2spPVwidm0uZGlzY2FyZCgpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBbY2xhc3MuYXgtc21dPVwibGF5b3V0U2VydmljZS5pc1NtYWxsKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidm0uaXNCdXN5KCkgfHwgdm0uaXNTYXZpbmcoKVwiXG4gICAgICAgIFt0ZXh0XT1cInQoJ2FwcGx5JykgfCBhc3luY1wiXG4gICAgICAgIChvbkNsaWNrKT1cInZtLmFwcGx5KClcIlxuICAgICAgICBbY29sb3JdPVwiJ3NlY29uZGFyeSdcIlxuICAgICAgPlxuICAgICAgICBAaWYodm0uaXNTYXZpbmcoKSkge1xuICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvYXhwLWxheW91dC1zdWZmaXg+XG4gIDwvYXhwLXBhZ2UtZm9vdGVyPlxuICB9XG48L2F4cC1wYWdlLWxheW91dD5cbiJdfQ=="],"names":["i9"],"mappings":"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"}
|