@sunbird-cb/toc 0.0.9 → 0.0.10
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/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -120
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -92
- package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
- package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
- package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
- package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -941
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
- package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +261 -248
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1177 -1148
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
- package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
- package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
- package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
- package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
- package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -847
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -219
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -209
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
- package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
- package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
- package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
- package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
- package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
- package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
- package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
- package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -112
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
- package/esm2022/lib/_collection-api.mjs +57 -57
- package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
- package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
- package/esm2022/lib/_models/common.model.mjs +2 -2
- package/esm2022/lib/_models/error.model.mjs +2 -2
- package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
- package/esm2022/lib/_services/rating.service.mjs +89 -89
- package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
- package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
- package/esm2022/lib/_services/widget-content.model.mjs +247 -247
- package/esm2022/lib/_services/widget-content.service.mjs +594 -594
- package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
- package/esm2022/lib/app-toc-lib.module.mjs +499 -499
- package/esm2022/lib/collection.config.mjs +161 -161
- package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
- package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -475
- package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
- package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
- package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
- package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -2229
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2938 -2907
- package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
- package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
- package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
- package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
- package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
- package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
- package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
- package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -1838
- package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
- package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
- package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
- package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -256
- package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
- package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
- package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
- package/esm2022/lib/models/app-toc.model.mjs +38 -38
- package/esm2022/lib/models/auto-complete.model.mjs +2 -2
- package/esm2022/lib/models/card-content.model.mjs +13 -13
- package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
- package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
- package/esm2022/lib/models/goal.model.mjs +2 -2
- package/esm2022/lib/models/meta-tag.model.mjs +8 -8
- package/esm2022/lib/models/playlist.model.mjs +2 -2
- package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
- package/esm2022/lib/models/rating.model.mjs +2 -2
- package/esm2022/lib/models/user-profile.model.mjs +21 -21
- package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
- package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
- package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
- package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
- package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
- package/esm2022/lib/services/access-control.service.mjs +56 -56
- package/esm2022/lib/services/action.service.mjs +23 -23
- package/esm2022/lib/services/app-toc-v2.service.mjs +332 -313
- package/esm2022/lib/services/app-toc.service.mjs +1647 -1613
- package/esm2022/lib/services/certificate.service.mjs +69 -69
- package/esm2022/lib/services/discuss-utils.service.mjs +58 -58
- package/esm2022/lib/services/editor.service.mjs +34 -34
- package/esm2022/lib/services/load-check.service.mjs +21 -21
- package/esm2022/lib/services/loader.service.mjs +33 -33
- package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
- package/esm2022/lib/services/netcore.service.mjs +56 -56
- package/esm2022/lib/services/nps-grid.service.mjs +31 -31
- package/esm2022/lib/services/otp.service.mjs +43 -43
- package/esm2022/lib/services/profile-v2.service.mjs +43 -43
- package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
- package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
- package/esm2022/lib/services/timer.service.mjs +23 -23
- package/esm2022/lib/services/title-tag.service.mjs +71 -71
- package/esm2022/lib/services/user-profile.service.mjs +55 -55
- package/esm2022/lib/services/viewer-data.service.mjs +64 -64
- package/esm2022/lib/services/viewer-util.service.mjs +599 -590
- package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
- package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
- package/esm2022/public-api.mjs +73 -71
- package/esm2022/sunbird-cb-toc.mjs +4 -4
- package/fesm2022/sunbird-cb-toc.mjs +24901 -24766
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
- package/index.d.ts +6 -5
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +17 -16
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +32 -31
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +16 -15
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +21 -20
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +23 -22
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +16 -15
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +23 -22
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +23 -22
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +10 -9
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +12 -11
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +13 -12
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +19 -18
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +15 -14
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +12 -11
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +18 -17
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +15 -14
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +200 -199
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +17 -16
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +11 -10
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +39 -38
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +20 -19
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +12 -11
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +184 -183
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +42 -41
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +55 -54
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +48 -47
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +51 -49
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +175 -171
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +9 -8
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +17 -16
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +41 -40
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +22 -21
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +46 -45
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +11 -10
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +11 -10
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +129 -128
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +52 -51
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +30 -29
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +10 -9
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +8 -7
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +8 -7
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +29 -28
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +25 -24
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +15 -14
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +10 -9
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +13 -12
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +11 -10
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +23 -22
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +9 -8
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +19 -18
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +9 -8
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +16 -15
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +36 -35
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +20 -19
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +15 -14
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +14 -13
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +12 -11
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +12 -11
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +16 -15
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +11 -10
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +17 -16
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +12 -11
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +35 -34
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +18 -17
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +16 -15
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +16 -15
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +22 -21
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +13 -12
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.component.d.ts +22 -21
- package/lib/_collection/_common/user-image/user-image.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.module.d.ts +10 -9
- package/lib/_collection/_common/user-image/user-image.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +48 -47
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +15 -14
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +23 -22
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +20 -19
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +16 -15
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +26 -25
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +22 -21
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +19 -18
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
- package/lib/_collection-api.d.ts +35 -34
- package/lib/_collection-api.d.ts.map +1 -0
- package/lib/_constants/widget-content.constants.d.ts +8 -7
- package/lib/_constants/widget-content.constants.d.ts.map +1 -0
- package/lib/_directives/tooltip.directive.d.ts +18 -17
- package/lib/_directives/tooltip.directive.d.ts.map +1 -0
- package/lib/_models/common.model.d.ts +4 -3
- package/lib/_models/common.model.d.ts.map +1 -0
- package/lib/_models/error.model.d.ts +6 -5
- package/lib/_models/error.model.d.ts.map +1 -0
- package/lib/_pipes/highlight.pipe.d.ts +11 -10
- package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
- package/lib/_services/rating.service.d.ts +19 -18
- package/lib/_services/rating.service.d.ts.map +1 -0
- package/lib/_services/samuhik-charcha.service.d.ts +14 -13
- package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
- package/lib/_services/viewer-route-util.d.ts +9 -8
- package/lib/_services/viewer-route-util.d.ts.map +1 -0
- package/lib/_services/widget-content.model.d.ts +516 -515
- package/lib/_services/widget-content.model.d.ts.map +1 -0
- package/lib/_services/widget-content.service.d.ts +102 -101
- package/lib/_services/widget-content.service.d.ts.map +1 -0
- package/lib/_shared/translate-loader.factory.d.ts +8 -7
- package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
- package/lib/app-toc-lib.module.d.ts +89 -88
- package/lib/app-toc-lib.module.d.ts.map +1 -0
- package/lib/collection.config.d.ts +160 -159
- package/lib/collection.config.d.ts.map +1 -0
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +18 -17
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +1 -0
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +226 -225
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +79 -78
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +23 -22
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +1 -0
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +32 -31
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +1 -0
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +48 -47
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +15 -14
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +1 -0
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +22 -21
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +1 -0
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +315 -314
- package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +415 -408
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +1 -0
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +48 -47
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +1 -0
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +23 -22
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +15 -14
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +1 -0
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +150 -149
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +1 -0
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +43 -42
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +1 -0
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +28 -27
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +1 -0
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +16 -15
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +1 -0
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +196 -195
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +1 -0
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +45 -44
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +1 -0
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +55 -54
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +1 -0
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +19 -18
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +1 -0
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +44 -43
- package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +1 -0
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +21 -20
- package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +1 -0
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +14 -13
- package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +1 -0
- package/lib/models/app-toc-analytics.model.d.ts +153 -152
- package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
- package/lib/models/app-toc.model.d.ts +85 -84
- package/lib/models/app-toc.model.d.ts.map +1 -0
- package/lib/models/auto-complete.model.d.ts +28 -27
- package/lib/models/auto-complete.model.d.ts.map +1 -0
- package/lib/models/card-content.model.d.ts +20 -19
- package/lib/models/card-content.model.d.ts.map +1 -0
- package/lib/models/content-strip-with-tabs.model.d.ts +45 -44
- package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
- package/lib/models/discussion-forum.model.d.ts +41 -40
- package/lib/models/discussion-forum.model.d.ts.map +1 -0
- package/lib/models/goal.model.d.ts +23 -22
- package/lib/models/goal.model.d.ts.map +1 -0
- package/lib/models/meta-tag.model.d.ts +7 -6
- package/lib/models/meta-tag.model.d.ts.map +1 -0
- package/lib/models/playlist.model.d.ts +24 -23
- package/lib/models/playlist.model.d.ts.map +1 -0
- package/lib/models/profile-revamp.model.d.ts +15 -14
- package/lib/models/profile-revamp.model.d.ts.map +1 -0
- package/lib/models/rating.model.d.ts +18 -17
- package/lib/models/rating.model.d.ts.map +1 -0
- package/lib/models/user-profile.model.d.ts +38 -37
- package/lib/models/user-profile.model.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +13 -12
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +13 -12
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +17 -16
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +13 -12
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-resolver.service.d.ts +17 -16
- package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/config-resolver.service.d.ts +12 -11
- package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/profile-resolver.service.d.ts +12 -11
- package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/restricted-features-resolver.service.d.ts +12 -11
- package/lib/resolvers/restricted-features-resolver.service.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +20 -19
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +9 -8
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +9 -8
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +1 -0
- package/lib/services/access-control.service.d.ts +30 -29
- package/lib/services/access-control.service.d.ts.map +1 -0
- package/lib/services/action.service.d.ts +10 -9
- package/lib/services/action.service.d.ts.map +1 -0
- package/lib/services/app-toc-v2.service.d.ts +17 -16
- package/lib/services/app-toc-v2.service.d.ts.map +1 -0
- package/lib/services/app-toc.service.d.ts +241 -235
- package/lib/services/app-toc.service.d.ts.map +1 -0
- package/lib/services/certificate.service.d.ts +43 -42
- package/lib/services/certificate.service.d.ts.map +1 -0
- package/lib/services/discuss-utils.service.d.ts +34 -33
- package/lib/services/discuss-utils.service.d.ts.map +1 -0
- package/lib/services/editor.service.d.ts +18 -17
- package/lib/services/editor.service.d.ts.map +1 -0
- package/lib/services/load-check.service.d.ts +9 -8
- package/lib/services/load-check.service.d.ts.map +1 -0
- package/lib/services/loader.service.d.ts +17 -16
- package/lib/services/loader.service.d.ts.map +1 -0
- package/lib/services/mobile-apps.service.d.ts +39 -38
- package/lib/services/mobile-apps.service.d.ts.map +1 -0
- package/lib/services/netcore.service.d.ts +34 -33
- package/lib/services/netcore.service.d.ts.map +1 -0
- package/lib/services/nps-grid.service.d.ts +16 -15
- package/lib/services/nps-grid.service.d.ts.map +1 -0
- package/lib/services/otp.service.d.ts +21 -20
- package/lib/services/otp.service.d.ts.map +1 -0
- package/lib/services/profile-v2.service.d.ts +21 -20
- package/lib/services/profile-v2.service.d.ts.map +1 -0
- package/lib/services/reset-ratings.service.d.ts +9 -8
- package/lib/services/reset-ratings.service.d.ts.map +1 -0
- package/lib/services/resource-download-helper.service.d.ts +30 -29
- package/lib/services/resource-download-helper.service.d.ts.map +1 -0
- package/lib/services/timer.service.d.ts +10 -9
- package/lib/services/timer.service.d.ts.map +1 -0
- package/lib/services/title-tag.service.d.ts +22 -21
- package/lib/services/title-tag.service.d.ts.map +1 -0
- package/lib/services/user-profile.service.d.ts +25 -24
- package/lib/services/user-profile.service.d.ts.map +1 -0
- package/lib/services/viewer-data.service.d.ts +59 -58
- package/lib/services/viewer-data.service.d.ts.map +1 -0
- package/lib/services/viewer-util.service.d.ts +77 -76
- package/lib/services/viewer-util.service.d.ts.map +1 -0
- package/lib/share-toc/share-toc/share-toc.component.d.ts +57 -56
- package/lib/share-toc/share-toc/share-toc.component.d.ts.map +1 -0
- package/lib/share-toc/share-toc.module.d.ts +33 -32
- package/lib/share-toc/share-toc.module.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +59 -56
- package/public-api.d.ts.map +1 -0
- package/sunbird-cb-toc.d.ts.map +1 -0
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
3
|
-
import * as _ from 'lodash';
|
|
4
|
-
import { Validators } from '@angular/forms';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-snack-bar";
|
|
7
|
-
import * as i2 from "@angular/material/legacy-dialog";
|
|
8
|
-
import * as i3 from "../../services/app-toc.service";
|
|
9
|
-
import * as i4 from "@angular/forms";
|
|
10
|
-
import * as i5 from "@angular/common";
|
|
11
|
-
import * as i6 from "@angular/material/icon";
|
|
12
|
-
import * as i7 from "@angular/material/legacy-button";
|
|
13
|
-
import * as i8 from "@angular/material/legacy-progress-spinner";
|
|
14
|
-
import * as i9 from "@sunbird-cb/micro-surveys";
|
|
15
|
-
import * as i10 from "../survey-form-question/survey-form-question.component";
|
|
16
|
-
import * as i11 from "../survey-form-section/survey-form-section.component";
|
|
17
|
-
const EMAIL_PATTERN = /^[a-zA-Z0-9]+[a-zA-Z0-9._-]*[a-zA-Z0-9]+@[a-zA-Z0-9]+([-a-zA-Z0-9]*[a-zA-Z0-9]+)?(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,4}$/;
|
|
18
|
-
const MOBILE_PATTERN = /^[0]?[6789]\d{9}$/;
|
|
19
|
-
export class EnrollQuestionnaireComponent {
|
|
20
|
-
constructor(snackBar, dialogRef, data, appTocSvc, fb) {
|
|
21
|
-
this.snackBar = snackBar;
|
|
22
|
-
this.dialogRef = dialogRef;
|
|
23
|
-
this.data = data;
|
|
24
|
-
this.appTocSvc = appTocSvc;
|
|
25
|
-
this.fb = fb;
|
|
26
|
-
this.afterSubmitAction = this.checkAfterSubmit.bind(this);
|
|
27
|
-
this.isReadOnly = false;
|
|
28
|
-
this.rating = 0;
|
|
29
|
-
this.stars = Array(5).fill(0);
|
|
30
|
-
this.otherFieldType = [];
|
|
31
|
-
this.selectedOption = false;
|
|
32
|
-
this.surveyId = '';
|
|
33
|
-
this.parentalFields = [];
|
|
34
|
-
this.childFields = [];
|
|
35
|
-
this.surveyFormIsValid = true;
|
|
36
|
-
this.addLoader = 0;
|
|
37
|
-
this.wfClientVersion = "0";
|
|
38
|
-
this.surveyId = data.surveyId;
|
|
39
|
-
this.wfClientVersion = data.wfClientVersion.toLocaleString();
|
|
40
|
-
}
|
|
41
|
-
checkAfterSubmit(_e) {
|
|
42
|
-
// this.renderSubject.next()
|
|
43
|
-
// tslint:disable-next-line:no-console
|
|
44
|
-
console.log('Form is submitted successfully');
|
|
45
|
-
this.openSnackbar('Form is submitted successfully');
|
|
46
|
-
this.dialogRef.close(true);
|
|
47
|
-
}
|
|
48
|
-
openSnackbar(primaryMsg, duration = 5000) {
|
|
49
|
-
this.snackBar.open(primaryMsg, 'X', {
|
|
50
|
-
duration,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ngOnInit() {
|
|
54
|
-
if (this.wfClientVersion === '1.1') {
|
|
55
|
-
this.getFormDetails();
|
|
56
|
-
this.otherFieldType = ['radio', 'boolean', 'rating'];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
getFormDetails() {
|
|
60
|
-
this.addLoader = this.addLoader + 1;
|
|
61
|
-
this.appTocSvc.getFormById(this.surveyId).subscribe((result) => {
|
|
62
|
-
this.addLoader = this.addLoader - 1;
|
|
63
|
-
this.formDetails = {
|
|
64
|
-
title: _.get(result, 'result.response.title', ''),
|
|
65
|
-
fields: _.get(result, 'result.response.fields', [])
|
|
66
|
-
};
|
|
67
|
-
this.buildForm();
|
|
68
|
-
}, (error) => {
|
|
69
|
-
if (error) {
|
|
70
|
-
this.addLoader = this.addLoader - 1;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
buildForm() {
|
|
75
|
-
if (this.formDetails) {
|
|
76
|
-
this.surveyForm = this.fb.group({
|
|
77
|
-
fields: this.fb.array([])
|
|
78
|
-
});
|
|
79
|
-
const questionsArray = this.questionsArray;
|
|
80
|
-
if (this.formDetails.fields) {
|
|
81
|
-
this.formDetails.fields.forEach((field) => {
|
|
82
|
-
if (field.fieldType !== 'separator' && field.fieldType !== 'heading') {
|
|
83
|
-
const validatorsArray = [];
|
|
84
|
-
if (field.isRequired) {
|
|
85
|
-
validatorsArray.push(Validators.required);
|
|
86
|
-
}
|
|
87
|
-
switch (field.fieldType) {
|
|
88
|
-
case 'phone number':
|
|
89
|
-
validatorsArray.push(Validators.pattern(MOBILE_PATTERN));
|
|
90
|
-
validatorsArray.push(Validators.minLength(10));
|
|
91
|
-
validatorsArray.push(Validators.maxLength(10));
|
|
92
|
-
break;
|
|
93
|
-
case 'email':
|
|
94
|
-
validatorsArray.push(Validators.pattern(EMAIL_PATTERN));
|
|
95
|
-
break;
|
|
96
|
-
case 'numeric':
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
const questionGroup = this.fb.group({
|
|
100
|
-
question: [field.name],
|
|
101
|
-
parentId: [field.parentId],
|
|
102
|
-
questionIndex: [questionsArray.length],
|
|
103
|
-
fieldType: [field.fieldType],
|
|
104
|
-
answer: ['', validatorsArray],
|
|
105
|
-
isNA: [false],
|
|
106
|
-
questionId: [field.id]
|
|
107
|
-
});
|
|
108
|
-
field['controlIndex'] = questionsArray.length;
|
|
109
|
-
field['validatorsArray'] = validatorsArray;
|
|
110
|
-
questionsArray.push(questionGroup);
|
|
111
|
-
if (validatorsArray.length) {
|
|
112
|
-
this.surveyFormIsValid = false;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (field.parentId) {
|
|
116
|
-
this.childFields.push(field);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
this.parentalFields.push(field);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
get questionsArray() {
|
|
126
|
-
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
127
|
-
return this.surveyForm.controls.fields;
|
|
128
|
-
}
|
|
129
|
-
return this.fb.array([]);
|
|
130
|
-
}
|
|
131
|
-
getChildQuestionsFormArray(sectionId) {
|
|
132
|
-
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
133
|
-
const questionsArray = this.questionsArray;
|
|
134
|
-
const childQuestionsArray = questionsArray.controls.filter((question) => {
|
|
135
|
-
return question.value && question.value.parentId === sectionId;
|
|
136
|
-
});
|
|
137
|
-
if (childQuestionsArray.length > 0) {
|
|
138
|
-
return this.fb.array(childQuestionsArray);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return this.fb.array([]);
|
|
142
|
-
}
|
|
143
|
-
getChildFields(sectionId) {
|
|
144
|
-
let sectionChilds = [];
|
|
145
|
-
if (this.childFields) {
|
|
146
|
-
sectionChilds = this.childFields.filter((field) => field.parentId === sectionId);
|
|
147
|
-
}
|
|
148
|
-
return sectionChilds;
|
|
149
|
-
}
|
|
150
|
-
getQuestionControl(index) {
|
|
151
|
-
if (this.questionsArray.controls[index]) {
|
|
152
|
-
return this.questionsArray.controls[index];
|
|
153
|
-
}
|
|
154
|
-
return this.fb.group({});
|
|
155
|
-
}
|
|
156
|
-
closeForm() {
|
|
157
|
-
this.dialogRef.close();
|
|
158
|
-
}
|
|
159
|
-
submitForm() {
|
|
160
|
-
this.surveyForm.markAllAsTouched();
|
|
161
|
-
this.surveyForm.updateValueAndValidity();
|
|
162
|
-
if (this.surveyFormIsValid) {
|
|
163
|
-
const formBody = {
|
|
164
|
-
formId: this.surveyId,
|
|
165
|
-
version: 4,
|
|
166
|
-
status: 'SUBMITTED',
|
|
167
|
-
responses: this.dataObject,
|
|
168
|
-
contextId: _.get(this.data, 'batchData.courseId'),
|
|
169
|
-
contextName: _.get(this.data, 'courseName', ''),
|
|
170
|
-
};
|
|
171
|
-
this.addLoader = this.addLoader + 1;
|
|
172
|
-
this.appTocSvc.submitForm(formBody).subscribe({
|
|
173
|
-
next: res => {
|
|
174
|
-
this.addLoader = this.addLoader - 1;
|
|
175
|
-
if (_.get(res, 'params.status') === 'success') {
|
|
176
|
-
this.openSnackbar('Form is submitted successfully');
|
|
177
|
-
this.dialogRef.close(true);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
this.openSnackbar(_.get(res, 'errorMessage', 'Something went wrong please try again'));
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
error: (error) => {
|
|
184
|
-
this.addLoader = this.addLoader - 1;
|
|
185
|
-
if (error) {
|
|
186
|
-
this.openSnackbar('Something went wrong please try again');
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
get dataObject() {
|
|
193
|
-
const dataObject = [];
|
|
194
|
-
const fields = _.get(this.surveyForm, 'value.fields', []);
|
|
195
|
-
if (fields) {
|
|
196
|
-
fields.forEach((field) => {
|
|
197
|
-
let value = field.isNA ? 'N/A' : field.answer;
|
|
198
|
-
if (!field.isNA && field.fieldType === 'date' && value) {
|
|
199
|
-
const formattedYear = value.getFullYear();
|
|
200
|
-
const formattedMonth = String(value.getMonth() + 1).padStart(2, '0');
|
|
201
|
-
const formattedDay = String(value.getDate()).padStart(2, '0');
|
|
202
|
-
value = `${formattedYear}-${formattedMonth}-${formattedDay}`;
|
|
203
|
-
}
|
|
204
|
-
dataObject.push({
|
|
205
|
-
questionId: field.questionId,
|
|
206
|
-
question: field.question,
|
|
207
|
-
answer: value,
|
|
208
|
-
answerType: field.fieldType
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
return dataObject;
|
|
213
|
-
}
|
|
214
|
-
updateQuestionValues(event) {
|
|
215
|
-
this.questionsArray.value[event.questionIndex] = event;
|
|
216
|
-
this.updateSurveyFormValidity();
|
|
217
|
-
}
|
|
218
|
-
updateSurveyFormValidity() {
|
|
219
|
-
this.surveyFormIsValid = true;
|
|
220
|
-
this.questionsArray.controls.forEach((form) => {
|
|
221
|
-
if (!form.controls.answer.valid) {
|
|
222
|
-
this.surveyFormIsValid = false;
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollQuestionnaireComponent, deps: [{ token: i1.MatLegacySnackBar }, { token: i2.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.AppTocService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EnrollQuestionnaireComponent, selector: "ws-app-enroll-questionnaire", ngImport: i0, template: "<ng-container *ngIf=\"wfClientVersion !== '1.1'\">\
|
|
228
|
-
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollQuestionnaireComponent, decorators: [{
|
|
230
|
-
type: Component,
|
|
231
|
-
args: [{ selector: 'ws-app-enroll-questionnaire', template: "<ng-container *ngIf=\"wfClientVersion !== '1.1'\">\
|
|
232
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacySnackBar }, { type: i2.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
233
|
-
type: Inject,
|
|
234
|
-
args: [MAT_DIALOG_DATA]
|
|
235
|
-
}] }, { type: i3.AppTocService }, { type: i4.FormBuilder }]; } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLXF1ZXN0aW9ubmFpcmUvZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLXF1ZXN0aW9ubmFpcmUvZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixJQUFJLGVBQWUsRUFBc0MsTUFBTSxpQ0FBaUMsQ0FBQTtBQUcvSCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBSzlFLE1BQU0sYUFBYSxHQUFHLHFIQUFxSCxDQUFBO0FBQzNJLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFBO0FBUTFDLE1BQU0sT0FBTyw0QkFBNEI7SUFpQnZDLFlBQ1UsUUFBcUIsRUFDdEIsU0FBcUQsRUFDNUIsSUFBUyxFQUNqQyxTQUF3QixFQUN4QixFQUFlO1FBSmYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXJCbEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMzRCxlQUFVLEdBQUcsS0FBSyxDQUFBO1FBRWxCLFdBQU0sR0FBRyxDQUFDLENBQUE7UUFDVixVQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixtQkFBYyxHQUFRLEVBQUUsQ0FBQTtRQUN4QixtQkFBYyxHQUFHLEtBQUssQ0FBQTtRQUV0QixhQUFRLEdBQUcsRUFBRSxDQUFBO1FBRWIsbUJBQWMsR0FBVSxFQUFFLENBQUE7UUFDMUIsZ0JBQVcsR0FBVSxFQUFFLENBQUE7UUFDdkIsc0JBQWlCLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixvQkFBZSxHQUFHLEdBQUcsQ0FBQTtRQVVuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLDRCQUE0QjtRQUM1QixzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRU8sWUFBWSxDQUFDLFVBQWtCLEVBQUUsV0FBbUIsSUFBSTtRQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2xDLFFBQVE7U0FDVCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxLQUFLLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1lBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUc7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxFQUFFLENBQUM7YUFDcEQsQ0FBQTtZQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNsQixDQUFDLEVBQUUsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDOUIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUMxQixDQUFDLENBQUE7WUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1lBQzFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUM3QyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssV0FBVyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO3dCQUNwRSxNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUE7d0JBQy9CLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTs0QkFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7eUJBQzFDO3dCQUVELFFBQVEsS0FBSyxDQUFDLFNBQVMsRUFBRTs0QkFDdkIsS0FBSyxjQUFjO2dDQUNqQixlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtnQ0FDeEQsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0NBQzlDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dDQUM5QyxNQUFLOzRCQUNQLEtBQUssT0FBTztnQ0FDVixlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtnQ0FDdkQsTUFBSzs0QkFDUCxLQUFLLFNBQVM7Z0NBQ1osTUFBSzt5QkFDUjt3QkFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzs0QkFDbEMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzs0QkFDdEIsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQzs0QkFDMUIsYUFBYSxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQzs0QkFDdEMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzs0QkFDNUIsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQzs0QkFDN0IsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDOzRCQUNiLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7eUJBQ3ZCLENBQUMsQ0FBQTt3QkFDRixLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQTt3QkFDN0MsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsZUFBZSxDQUFBO3dCQUMxQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO3dCQUNsQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUU7NEJBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7eUJBQy9CO3FCQUNGO29CQUVELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQzdCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO3FCQUNoQztnQkFDSCxDQUFDLENBQUMsQ0FBQTthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFtQixDQUFBO1NBQ3BEO1FBQ0QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsMEJBQTBCLENBQUMsU0FBaUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO1lBQzFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDM0UsT0FBTyxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztZQUNqRSxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBYyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxhQUFhLEdBQVEsRUFBRSxDQUFBO1FBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUE7U0FDdEY7UUFDRCxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDM0M7UUFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFDeEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQVE7Z0JBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDckIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDMUIsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQztnQkFDakQsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO2FBQ2hELENBQUE7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1lBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDNUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7b0JBQ25DLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEtBQUssU0FBUyxFQUFFO3dCQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxDQUFDLENBQUE7d0JBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUMzQjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDLENBQUE7cUJBQ3ZGO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBd0IsRUFBRSxFQUFFO29CQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO29CQUNuQyxJQUFJLEtBQUssRUFBRTt3QkFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7cUJBQzNEO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixNQUFNLFVBQVUsR0FBUSxFQUFFLENBQUE7UUFDMUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN6RCxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBO2dCQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxLQUFLLEVBQUU7b0JBQ3RELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQTtvQkFDekMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO29CQUNwRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDN0QsS0FBSyxHQUFHLEdBQUcsYUFBYSxJQUFJLGNBQWMsSUFBSSxZQUFZLEVBQUUsQ0FBQTtpQkFDN0Q7Z0JBQ0QsVUFBVSxDQUFDLElBQUksQ0FBQztvQkFDZCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtvQkFDeEIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTO2lCQUM1QixDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQTtRQUN0RCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0FyT1UsNEJBQTRCLHFGQW9CN0IsZUFBZTttR0FwQmQsNEJBQTRCLG1FQ25CekMscXpGQXVEZTs7NEZEcENGLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSw2QkFBNkI7OzBCQXlCcEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcclxuaW1wb3J0IHsgTWF0TGVnYWN5U25hY2tCYXIgYXMgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc25hY2stYmFyJ1xyXG5pbXBvcnQgeyBBcHBUb2NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLXRvYy5zZXJ2aWNlJ1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCdcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXHJcbi8vIGltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5cclxuXHJcbmNvbnN0IEVNQUlMX1BBVFRFUk4gPSAvXlthLXpBLVowLTldK1thLXpBLVowLTkuXy1dKlthLXpBLVowLTldK0BbYS16QS1aMC05XSsoWy1hLXpBLVowLTldKlthLXpBLVowLTldKyk/KFxcLlthLXpBLVowLTktXSspKlxcLlthLXpBLVpdezIsNH0kL1xyXG5jb25zdCBNT0JJTEVfUEFUVEVSTiA9IC9eWzBdP1s2Nzg5XVxcZHs5fSQvXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dzLWFwcC1lbnJvbGwtcXVlc3Rpb25uYWlyZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Vucm9sbC1xdWVzdGlvbm5haXJlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lbnJvbGwtcXVlc3Rpb25uYWlyZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEVucm9sbFF1ZXN0aW9ubmFpcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBhZnRlclN1Ym1pdEFjdGlvbiA9IHRoaXMuY2hlY2tBZnRlclN1Ym1pdC5iaW5kKHRoaXMpXHJcbiAgaXNSZWFkT25seSA9IGZhbHNlXHJcblxyXG4gIHJhdGluZyA9IDBcclxuICBzdGFycyA9IEFycmF5KDUpLmZpbGwoMClcclxuICBvdGhlckZpZWxkVHlwZTogYW55ID0gW11cclxuICBzZWxlY3RlZE9wdGlvbiA9IGZhbHNlXHJcbiAgZm9ybURldGFpbHM6IGFueVxyXG4gIHN1cnZleUlkID0gJydcclxuICBzdXJ2ZXlGb3JtITogRm9ybUdyb3VwXHJcbiAgcGFyZW50YWxGaWVsZHM6IGFueVtdID0gW11cclxuICBjaGlsZEZpZWxkczogYW55W10gPSBbXVxyXG4gIHN1cnZleUZvcm1Jc1ZhbGlkID0gdHJ1ZVxyXG4gIGFkZExvYWRlciA9IDBcclxuICB3ZkNsaWVudFZlcnNpb24gPSBcIjBcIlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVucm9sbFF1ZXN0aW9ubmFpcmVDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIGFwcFRvY1N2YzogQXBwVG9jU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgLy8gcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuICApIHtcclxuICAgIHRoaXMuc3VydmV5SWQgPSBkYXRhLnN1cnZleUlkXHJcbiAgICB0aGlzLndmQ2xpZW50VmVyc2lvbiA9IGRhdGEud2ZDbGllbnRWZXJzaW9uLnRvTG9jYWxlU3RyaW5nKClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0FmdGVyU3VibWl0KF9lOiBhbnkpIHtcclxuICAgIC8vIHRoaXMucmVuZGVyU3ViamVjdC5uZXh0KClcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXHJcbiAgICBjb25zb2xlLmxvZygnRm9ybSBpcyBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5JylcclxuICAgIHRoaXMub3BlblNuYWNrYmFyKCdGb3JtIGlzIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHknKVxyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlblNuYWNrYmFyKHByaW1hcnlNc2c6IHN0cmluZywgZHVyYXRpb246IG51bWJlciA9IDUwMDApIHtcclxuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcclxuICAgICAgZHVyYXRpb24sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy53ZkNsaWVudFZlcnNpb24gPT09ICcxLjEnKSB7XHJcbiAgICAgIHRoaXMuZ2V0Rm9ybURldGFpbHMoKVxyXG4gICAgICB0aGlzLm90aGVyRmllbGRUeXBlID0gWydyYWRpbycsICdib29sZWFuJywgJ3JhdGluZyddXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtRGV0YWlscygpIHtcclxuICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgKyAxXHJcbiAgICB0aGlzLmFwcFRvY1N2Yy5nZXRGb3JtQnlJZCh0aGlzLnN1cnZleUlkKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXHJcbiAgICAgIHRoaXMuZm9ybURldGFpbHMgPSB7XHJcbiAgICAgICAgdGl0bGU6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS50aXRsZScsICcnKSxcclxuICAgICAgICBmaWVsZHM6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS5maWVsZHMnLCBbXSlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmJ1aWxkRm9ybSgpXHJcbiAgICB9LCAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvcikge1xyXG4gICAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtRGV0YWlscykge1xyXG4gICAgICB0aGlzLnN1cnZleUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBmaWVsZHM6IHRoaXMuZmIuYXJyYXkoW10pXHJcbiAgICAgIH0pXHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gdGhpcy5xdWVzdGlvbnNBcnJheVxyXG4gICAgICBpZiAodGhpcy5mb3JtRGV0YWlscy5maWVsZHMpIHtcclxuICAgICAgICB0aGlzLmZvcm1EZXRhaWxzLmZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmllbGQuZmllbGRUeXBlICE9PSAnc2VwYXJhdG9yJyAmJiBmaWVsZC5maWVsZFR5cGUgIT09ICdoZWFkaW5nJykge1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzQXJyYXk6IGFueSA9IFtdXHJcbiAgICAgICAgICAgIGlmIChmaWVsZC5pc1JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChmaWVsZC5maWVsZFR5cGUpIHtcclxuICAgICAgICAgICAgICBjYXNlICdwaG9uZSBudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKE1PQklMRV9QQVRURVJOKSlcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKDEwKSlcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwKSlcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgICAgY2FzZSAnZW1haWwnOlxyXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKEVNQUlMX1BBVFRFUk4pKVxyXG4gICAgICAgICAgICAgICAgYnJlYWtcclxuICAgICAgICAgICAgICBjYXNlICdudW1lcmljJzpcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICBxdWVzdGlvbjogW2ZpZWxkLm5hbWVdLFxyXG4gICAgICAgICAgICAgIHBhcmVudElkOiBbZmllbGQucGFyZW50SWRdLFxyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSW5kZXg6IFtxdWVzdGlvbnNBcnJheS5sZW5ndGhdLFxyXG4gICAgICAgICAgICAgIGZpZWxkVHlwZTogW2ZpZWxkLmZpZWxkVHlwZV0sXHJcbiAgICAgICAgICAgICAgYW5zd2VyOiBbJycsIHZhbGlkYXRvcnNBcnJheV0sXHJcbiAgICAgICAgICAgICAgaXNOQTogW2ZhbHNlXSxcclxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBbZmllbGQuaWRdXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGZpZWxkWydjb250cm9sSW5kZXgnXSA9IHF1ZXN0aW9uc0FycmF5Lmxlbmd0aFxyXG4gICAgICAgICAgICBmaWVsZFsndmFsaWRhdG9yc0FycmF5J10gPSB2YWxpZGF0b3JzQXJyYXlcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChxdWVzdGlvbkdyb3VwKVxyXG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yc0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLnBhcmVudElkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGRGaWVsZHMucHVzaChmaWVsZClcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50YWxGaWVsZHMucHVzaChmaWVsZClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlc3Rpb25zQXJyYXkoKTogRm9ybUFycmF5IHtcclxuICAgIGlmICh0aGlzLnN1cnZleUZvcm0gJiYgdGhpcy5zdXJ2ZXlGb3JtLmNvbnRyb2xzLmZpZWxkcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdXJ2ZXlGb3JtLmNvbnRyb2xzLmZpZWxkcyBhcyBGb3JtQXJyYXlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFtdKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRRdWVzdGlvbnNGb3JtQXJyYXkoc2VjdGlvbklkOiBzdHJpbmcpOiBGb3JtQXJyYXkge1xyXG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybSAmJiB0aGlzLnN1cnZleUZvcm0uY29udHJvbHMuZmllbGRzKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gdGhpcy5xdWVzdGlvbnNBcnJheVxyXG4gICAgICBjb25zdCBjaGlsZFF1ZXN0aW9uc0FycmF5ID0gcXVlc3Rpb25zQXJyYXkuY29udHJvbHMuZmlsdGVyKChxdWVzdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbHVlICYmIHF1ZXN0aW9uLnZhbHVlLnBhcmVudElkID09PSBzZWN0aW9uSWQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGNoaWxkUXVlc3Rpb25zQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZiLmFycmF5KGNoaWxkUXVlc3Rpb25zQXJyYXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShbXSkgYXMgRm9ybUFycmF5XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZEZpZWxkcyhzZWN0aW9uSWQ6IHN0cmluZykge1xyXG4gICAgbGV0IHNlY3Rpb25DaGlsZHM6IGFueSA9IFtdXHJcbiAgICBpZiAodGhpcy5jaGlsZEZpZWxkcykge1xyXG4gICAgICBzZWN0aW9uQ2hpbGRzID0gdGhpcy5jaGlsZEZpZWxkcy5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLnBhcmVudElkID09PSBzZWN0aW9uSWQpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2VjdGlvbkNoaWxkc1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlc3Rpb25Db250cm9sKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzW2luZGV4XSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbnNBcnJheS5jb250cm9sc1tpbmRleF1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHt9KVxyXG4gIH1cclxuXHJcbiAgY2xvc2VGb3JtKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMuc3VydmV5Rm9ybS5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgIHRoaXMuc3VydmV5Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAgIGlmICh0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1Cb2R5OiBhbnkgPSB7XHJcbiAgICAgICAgZm9ybUlkOiB0aGlzLnN1cnZleUlkLFxyXG4gICAgICAgIHZlcnNpb246IDQsXHJcbiAgICAgICAgc3RhdHVzOiAnU1VCTUlUVEVEJyxcclxuICAgICAgICByZXNwb25zZXM6IHRoaXMuZGF0YU9iamVjdCxcclxuICAgICAgICBjb250ZXh0SWQ6IF8uZ2V0KHRoaXMuZGF0YSwgJ2JhdGNoRGF0YS5jb3Vyc2VJZCcpLFxyXG4gICAgICAgIGNvbnRleHROYW1lOiBfLmdldCh0aGlzLmRhdGEsICdjb3Vyc2VOYW1lJywgJycpLFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxyXG4gICAgICB0aGlzLmFwcFRvY1N2Yy5zdWJtaXRGb3JtKGZvcm1Cb2R5KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxyXG4gICAgICAgICAgaWYgKF8uZ2V0KHJlcywgJ3BhcmFtcy5zdGF0dXMnKSA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKCdGb3JtIGlzIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHknKVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoXy5nZXQocmVzLCAnZXJyb3JNZXNzYWdlJywgJ1NvbWV0aGluZyB3ZW50IHdyb25nIHBsZWFzZSB0cnkgYWdhaW4nKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxyXG4gICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKCdTb21ldGhpbmcgd2VudCB3cm9uZyBwbGVhc2UgdHJ5IGFnYWluJylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0YU9iamVjdCgpOiBhbnkge1xyXG4gICAgY29uc3QgZGF0YU9iamVjdDogYW55ID0gW11cclxuICAgIGNvbnN0IGZpZWxkcyA9IF8uZ2V0KHRoaXMuc3VydmV5Rm9ybSwgJ3ZhbHVlLmZpZWxkcycsIFtdKVxyXG4gICAgaWYgKGZpZWxkcykge1xyXG4gICAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkLmlzTkEgPyAnTi9BJyA6IGZpZWxkLmFuc3dlclxyXG4gICAgICAgIGlmICghZmllbGQuaXNOQSAmJiBmaWVsZC5maWVsZFR5cGUgPT09ICdkYXRlJyAmJiB2YWx1ZSkge1xyXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkWWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKClcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE1vbnRoID0gU3RyaW5nKHZhbHVlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXHJcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWREYXkgPSBTdHJpbmcodmFsdWUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXHJcbiAgICAgICAgICB2YWx1ZSA9IGAke2Zvcm1hdHRlZFllYXJ9LSR7Zm9ybWF0dGVkTW9udGh9LSR7Zm9ybWF0dGVkRGF5fWBcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YU9iamVjdC5wdXNoKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZpZWxkLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICBxdWVzdGlvbjogZmllbGQucXVlc3Rpb24sXHJcbiAgICAgICAgICBhbnN3ZXI6IHZhbHVlLFxyXG4gICAgICAgICAgYW5zd2VyVHlwZTogZmllbGQuZmllbGRUeXBlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhT2JqZWN0XHJcbiAgfVxyXG5cclxuICB1cGRhdGVRdWVzdGlvblZhbHVlcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnF1ZXN0aW9uc0FycmF5LnZhbHVlW2V2ZW50LnF1ZXN0aW9uSW5kZXhdID0gZXZlbnRcclxuICAgIHRoaXMudXBkYXRlU3VydmV5Rm9ybVZhbGlkaXR5KClcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN1cnZleUZvcm1WYWxpZGl0eSgpIHsgLy8gc29tZSB0aW1lcyByZWFjdGl2ZSBmb3JtcyBub3QgYWJhbGUgdG8gZGV0ZWN0IHZhbHVlIGNoYW5nZXMgYW5kIHZhbGlkaXR5IGluIGR5bmFtaWMgZm9ybUFycmF5XHJcbiAgICB0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkID0gdHJ1ZVxyXG4gICAgdGhpcy5xdWVzdGlvbnNBcnJheS5jb250cm9scy5mb3JFYWNoKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCFmb3JtLmNvbnRyb2xzLmFuc3dlci52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIndmQ2xpZW50VmVyc2lvbiAhPT0gJzEuMSdcIj5cclxuICA8ZGl2ICNmdWxsU2NyZWVuQ29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXIgdGV4dC1yaWdodCBtYi0yXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uIG5vdHJhbnNsYXRlIG1hdGVyaWFsLWljb25zIGNsb3NlLWljb24gY3Vyc29yLXBvaW50ZXJcIiBtYXRwcmVmaXg9XCJcIiByb2xlPVwiaW1nXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGxpYi1taWNyby1zdXJ2ZXkgY2xhc3M9XCJjb3Vyc2Utc3VydmV5XCIgW2FwaURhdGFdPVwiZGF0YT8uYXBpRGF0YVwiIFthZnRlclN1Ym1pdEFjdGlvbl09XCJhZnRlclN1Ym1pdEFjdGlvblwiXHJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBbc3VydmV5SWRdPVwiZGF0YT8uc3VydmV5SWRcIiBbY291cnNlSWRdPVwiZGF0YT8uY291cnNlSWRcIiBbY291cnNlTmFtZV09XCJkYXRhPy5jb3Vyc2VOYW1lXCJcclxuICAgICAgW2lzYmxlbmRlZHByb2dyYW1dPVwidHJ1ZVwiIFtjdXN0b21UZXh0QXJlYVJvd3NdPVwiMVwiPlxyXG4gICAgPC9saWItbWljcm8tc3VydmV5PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ3ZkNsaWVudFZlcnNpb24gPT09ICcxLjEnXCI+XHJcbiAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZWFtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2Pnt7Zm9ybURldGFpbHM/LnRpdGxlfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VGb3JtKClcIj48bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VydmV5Rm9ybVwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic3VydmV5Rm9ybVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFyZW50RmllbGQgb2YgcGFyZW50YWxGaWVsZHNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFyZW50RmllbGQuZmllbGRUeXBlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2hlYWRpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICA8d3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24gW2NoaWxkRmllbGRzXT1cImdldENoaWxkRmllbGRzKHBhcmVudEZpZWxkLnNlY3Rpb25JZClcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VjdGlvbkZpZWxkXT1cInBhcmVudEZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgW2NoaWxkUXVlc3Rpb25zRm9ybUFycmF5XT1cImdldENoaWxkUXVlc3Rpb25zRm9ybUFycmF5KHBhcmVudEZpZWxkLnNlY3Rpb25JZClcIlxyXG4gICAgICAgICAgICAgICAgICAocXVlc3Rpb25WYWx1ZXMpPVwidXBkYXRlUXVlc3Rpb25WYWx1ZXMoJGV2ZW50KVwiPjwvd3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlcGFyYXRvcidcIj5cclxuICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktNTAgZWxtZW50LXNlcGFyYXRvclwiPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24gW2ZpZWxkRGV0YWlsc109XCJwYXJlbnRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbkZvcm1dPVwiZ2V0UXVlc3Rpb25Db250cm9sKHBhcmVudEZpZWxkLmNvbnRyb2xJbmRleClcIlxyXG4gICAgICAgICAgICAgICAgICAocXVlc3Rpb25WYWx1ZXMpPVwidXBkYXRlUXVlc3Rpb25WYWx1ZXMoJGV2ZW50KVwiPjwvd3MtYXBwLXN1cnZleS1mb3JtLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgbS00XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInN1Ym1pdC1idG5cIiBbZGlzYWJsZWRdPVwiIXN1cnZleUZvcm1Jc1ZhbGlkXCIgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRMb2FkZXIgPiAwXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG15LTIgbG9hZGVyIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJpbmxpbmUtYmxvY2tcIj48L21hdC1zcGlubmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { Validators } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/legacy-snack-bar";
|
|
7
|
+
import * as i2 from "@angular/material/legacy-dialog";
|
|
8
|
+
import * as i3 from "../../services/app-toc.service";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
import * as i5 from "@angular/common";
|
|
11
|
+
import * as i6 from "@angular/material/icon";
|
|
12
|
+
import * as i7 from "@angular/material/legacy-button";
|
|
13
|
+
import * as i8 from "@angular/material/legacy-progress-spinner";
|
|
14
|
+
import * as i9 from "@sunbird-cb/micro-surveys";
|
|
15
|
+
import * as i10 from "../survey-form-question/survey-form-question.component";
|
|
16
|
+
import * as i11 from "../survey-form-section/survey-form-section.component";
|
|
17
|
+
const EMAIL_PATTERN = /^[a-zA-Z0-9]+[a-zA-Z0-9._-]*[a-zA-Z0-9]+@[a-zA-Z0-9]+([-a-zA-Z0-9]*[a-zA-Z0-9]+)?(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,4}$/;
|
|
18
|
+
const MOBILE_PATTERN = /^[0]?[6789]\d{9}$/;
|
|
19
|
+
export class EnrollQuestionnaireComponent {
|
|
20
|
+
constructor(snackBar, dialogRef, data, appTocSvc, fb) {
|
|
21
|
+
this.snackBar = snackBar;
|
|
22
|
+
this.dialogRef = dialogRef;
|
|
23
|
+
this.data = data;
|
|
24
|
+
this.appTocSvc = appTocSvc;
|
|
25
|
+
this.fb = fb;
|
|
26
|
+
this.afterSubmitAction = this.checkAfterSubmit.bind(this);
|
|
27
|
+
this.isReadOnly = false;
|
|
28
|
+
this.rating = 0;
|
|
29
|
+
this.stars = Array(5).fill(0);
|
|
30
|
+
this.otherFieldType = [];
|
|
31
|
+
this.selectedOption = false;
|
|
32
|
+
this.surveyId = '';
|
|
33
|
+
this.parentalFields = [];
|
|
34
|
+
this.childFields = [];
|
|
35
|
+
this.surveyFormIsValid = true;
|
|
36
|
+
this.addLoader = 0;
|
|
37
|
+
this.wfClientVersion = "0";
|
|
38
|
+
this.surveyId = data.surveyId;
|
|
39
|
+
this.wfClientVersion = data.wfClientVersion.toLocaleString();
|
|
40
|
+
}
|
|
41
|
+
checkAfterSubmit(_e) {
|
|
42
|
+
// this.renderSubject.next()
|
|
43
|
+
// tslint:disable-next-line:no-console
|
|
44
|
+
console.log('Form is submitted successfully');
|
|
45
|
+
this.openSnackbar('Form is submitted successfully');
|
|
46
|
+
this.dialogRef.close(true);
|
|
47
|
+
}
|
|
48
|
+
openSnackbar(primaryMsg, duration = 5000) {
|
|
49
|
+
this.snackBar.open(primaryMsg, 'X', {
|
|
50
|
+
duration,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
if (this.wfClientVersion === '1.1') {
|
|
55
|
+
this.getFormDetails();
|
|
56
|
+
this.otherFieldType = ['radio', 'boolean', 'rating'];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getFormDetails() {
|
|
60
|
+
this.addLoader = this.addLoader + 1;
|
|
61
|
+
this.appTocSvc.getFormById(this.surveyId).subscribe((result) => {
|
|
62
|
+
this.addLoader = this.addLoader - 1;
|
|
63
|
+
this.formDetails = {
|
|
64
|
+
title: _.get(result, 'result.response.title', ''),
|
|
65
|
+
fields: _.get(result, 'result.response.fields', [])
|
|
66
|
+
};
|
|
67
|
+
this.buildForm();
|
|
68
|
+
}, (error) => {
|
|
69
|
+
if (error) {
|
|
70
|
+
this.addLoader = this.addLoader - 1;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
buildForm() {
|
|
75
|
+
if (this.formDetails) {
|
|
76
|
+
this.surveyForm = this.fb.group({
|
|
77
|
+
fields: this.fb.array([])
|
|
78
|
+
});
|
|
79
|
+
const questionsArray = this.questionsArray;
|
|
80
|
+
if (this.formDetails.fields) {
|
|
81
|
+
this.formDetails.fields.forEach((field) => {
|
|
82
|
+
if (field.fieldType !== 'separator' && field.fieldType !== 'heading') {
|
|
83
|
+
const validatorsArray = [];
|
|
84
|
+
if (field.isRequired) {
|
|
85
|
+
validatorsArray.push(Validators.required);
|
|
86
|
+
}
|
|
87
|
+
switch (field.fieldType) {
|
|
88
|
+
case 'phone number':
|
|
89
|
+
validatorsArray.push(Validators.pattern(MOBILE_PATTERN));
|
|
90
|
+
validatorsArray.push(Validators.minLength(10));
|
|
91
|
+
validatorsArray.push(Validators.maxLength(10));
|
|
92
|
+
break;
|
|
93
|
+
case 'email':
|
|
94
|
+
validatorsArray.push(Validators.pattern(EMAIL_PATTERN));
|
|
95
|
+
break;
|
|
96
|
+
case 'numeric':
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
const questionGroup = this.fb.group({
|
|
100
|
+
question: [field.name],
|
|
101
|
+
parentId: [field.parentId],
|
|
102
|
+
questionIndex: [questionsArray.length],
|
|
103
|
+
fieldType: [field.fieldType],
|
|
104
|
+
answer: ['', validatorsArray],
|
|
105
|
+
isNA: [false],
|
|
106
|
+
questionId: [field.id]
|
|
107
|
+
});
|
|
108
|
+
field['controlIndex'] = questionsArray.length;
|
|
109
|
+
field['validatorsArray'] = validatorsArray;
|
|
110
|
+
questionsArray.push(questionGroup);
|
|
111
|
+
if (validatorsArray.length) {
|
|
112
|
+
this.surveyFormIsValid = false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (field.parentId) {
|
|
116
|
+
this.childFields.push(field);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.parentalFields.push(field);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
get questionsArray() {
|
|
126
|
+
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
127
|
+
return this.surveyForm.controls.fields;
|
|
128
|
+
}
|
|
129
|
+
return this.fb.array([]);
|
|
130
|
+
}
|
|
131
|
+
getChildQuestionsFormArray(sectionId) {
|
|
132
|
+
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
133
|
+
const questionsArray = this.questionsArray;
|
|
134
|
+
const childQuestionsArray = questionsArray.controls.filter((question) => {
|
|
135
|
+
return question.value && question.value.parentId === sectionId;
|
|
136
|
+
});
|
|
137
|
+
if (childQuestionsArray.length > 0) {
|
|
138
|
+
return this.fb.array(childQuestionsArray);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return this.fb.array([]);
|
|
142
|
+
}
|
|
143
|
+
getChildFields(sectionId) {
|
|
144
|
+
let sectionChilds = [];
|
|
145
|
+
if (this.childFields) {
|
|
146
|
+
sectionChilds = this.childFields.filter((field) => field.parentId === sectionId);
|
|
147
|
+
}
|
|
148
|
+
return sectionChilds;
|
|
149
|
+
}
|
|
150
|
+
getQuestionControl(index) {
|
|
151
|
+
if (this.questionsArray.controls[index]) {
|
|
152
|
+
return this.questionsArray.controls[index];
|
|
153
|
+
}
|
|
154
|
+
return this.fb.group({});
|
|
155
|
+
}
|
|
156
|
+
closeForm() {
|
|
157
|
+
this.dialogRef.close();
|
|
158
|
+
}
|
|
159
|
+
submitForm() {
|
|
160
|
+
this.surveyForm.markAllAsTouched();
|
|
161
|
+
this.surveyForm.updateValueAndValidity();
|
|
162
|
+
if (this.surveyFormIsValid) {
|
|
163
|
+
const formBody = {
|
|
164
|
+
formId: this.surveyId,
|
|
165
|
+
version: 4,
|
|
166
|
+
status: 'SUBMITTED',
|
|
167
|
+
responses: this.dataObject,
|
|
168
|
+
contextId: _.get(this.data, 'batchData.courseId'),
|
|
169
|
+
contextName: _.get(this.data, 'courseName', ''),
|
|
170
|
+
};
|
|
171
|
+
this.addLoader = this.addLoader + 1;
|
|
172
|
+
this.appTocSvc.submitForm(formBody).subscribe({
|
|
173
|
+
next: res => {
|
|
174
|
+
this.addLoader = this.addLoader - 1;
|
|
175
|
+
if (_.get(res, 'params.status') === 'success') {
|
|
176
|
+
this.openSnackbar('Form is submitted successfully');
|
|
177
|
+
this.dialogRef.close(true);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
this.openSnackbar(_.get(res, 'errorMessage', 'Something went wrong please try again'));
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
error: (error) => {
|
|
184
|
+
this.addLoader = this.addLoader - 1;
|
|
185
|
+
if (error) {
|
|
186
|
+
this.openSnackbar('Something went wrong please try again');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
get dataObject() {
|
|
193
|
+
const dataObject = [];
|
|
194
|
+
const fields = _.get(this.surveyForm, 'value.fields', []);
|
|
195
|
+
if (fields) {
|
|
196
|
+
fields.forEach((field) => {
|
|
197
|
+
let value = field.isNA ? 'N/A' : field.answer;
|
|
198
|
+
if (!field.isNA && field.fieldType === 'date' && value) {
|
|
199
|
+
const formattedYear = value.getFullYear();
|
|
200
|
+
const formattedMonth = String(value.getMonth() + 1).padStart(2, '0');
|
|
201
|
+
const formattedDay = String(value.getDate()).padStart(2, '0');
|
|
202
|
+
value = `${formattedYear}-${formattedMonth}-${formattedDay}`;
|
|
203
|
+
}
|
|
204
|
+
dataObject.push({
|
|
205
|
+
questionId: field.questionId,
|
|
206
|
+
question: field.question,
|
|
207
|
+
answer: value,
|
|
208
|
+
answerType: field.fieldType
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
return dataObject;
|
|
213
|
+
}
|
|
214
|
+
updateQuestionValues(event) {
|
|
215
|
+
this.questionsArray.value[event.questionIndex] = event;
|
|
216
|
+
this.updateSurveyFormValidity();
|
|
217
|
+
}
|
|
218
|
+
updateSurveyFormValidity() {
|
|
219
|
+
this.surveyFormIsValid = true;
|
|
220
|
+
this.questionsArray.controls.forEach((form) => {
|
|
221
|
+
if (!form.controls.answer.valid) {
|
|
222
|
+
this.surveyFormIsValid = false;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollQuestionnaireComponent, deps: [{ token: i1.MatLegacySnackBar }, { token: i2.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.AppTocService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EnrollQuestionnaireComponent, selector: "ws-app-enroll-questionnaire", ngImport: i0, template: "<ng-container *ngIf=\"wfClientVersion !== '1.1'\">\n <div #fullScreenContainer>\n <div class=\"dialog-header text-right mb-2\">\n <mat-icon class=\"mat-icon notranslate material-icons close-icon cursor-pointer\" matprefix=\"\" role=\"img\"\n aria-hidden=\"true\" [mat-dialog-close]=\"false\">close</mat-icon>\n </div>\n <lib-micro-survey class=\"course-survey\" [apiData]=\"data?.apiData\" [afterSubmitAction]=\"afterSubmitAction\"\n [isReadOnly]=\"isReadOnly\" [surveyId]=\"data?.surveyId\" [courseId]=\"data?.courseId\" [courseName]=\"data?.courseName\"\n [isblendedprogram]=\"true\" [customTextAreaRows]=\"1\">\n </lib-micro-survey>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"wfClientVersion === '1.1'\">\n <div class=\"preview-container\">\n <div class=\"form-header\">\n <div class=\"flex justify-between iteams-center\">\n <div>{{formDetails?.title}}</div>\n <div class=\"cursor-pointer\" (click)=\"closeForm()\"><mat-icon>close</mat-icon></div>\n </div>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">Submit</button>\n </div>\n </form>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: ["::ng-deep .course-survey .main-container{width:auto!important;overflow-y:auto!important;max-height:auto!important}::ng-deep .course-survey .lib-container{height:100%!important}@media screen and (max-width: 430px){::ng-deep .course-survey .lib-container{padding-left:0!important;padding-right:0!important;padding-bottom:1rem!important}}::ng-deep .userDetailsForm .mat-form-field-appearance-outline .mat-form-field-infix{padding:.5rem 0 .8rem}input[disabled]+mat-icon.disagnation-caret{opacity:.5}input[disabled]+mat-icon.mother-toungue-caret{opacity:.5}::ng-deep .course-survey .lib-container-2{height:auto;min-height:unset!important;padding:0!important;box-shadow:none!important;margin-bottom:2rem!important}@media screen and (max-width: 430px){::ng-deep .course-survey .lib-container-2{padding-left:0!important;padding-right:0!important}}.profile-form-field .mat-select{border:none}.customForm{padding-right:0!important;padding-bottom:1rem!important;padding:1rem 3rem}.cadreControl-name{background:#c3c3c3;padding:10px}.country-code{margin:.4375em 0;padding:14px 0;text-align:center;width:60px;height:19px;display:block!important;position:relative;top:-3px;border:1px solid #d6d5d5;border-radius:5px}.get-otp{color:#1b4ca1;font-weight:700;cursor:pointer;font-size:14px}.enter-otp{align-items:center;justify-content:space-between}.custom-size{width:96%}.resend-otp{color:#1b4ca1;font-weight:700;cursor:pointer}.verified-check{position:absolute;right:3px;color:#5fa800;font-size:18px;width:18px;height:18px}.save-button:disabled{opacity:.6!important}.preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i9.MicroSurveyComponent, selector: "lib-micro-survey", inputs: ["apiData", "thankYouMessage", "thankYouDescription", "tySecondaryBtnLink", "tyPrimaryBtnLink", "tyPrimaryBtnText", "tySecondaryBtnText", "afterSubmitAction", "afterCancelAction", "isReadOnly", "surveyId", "courseId", "courseName", "applicationId", "isblendedprogram", "customTextAreaRows"] }, { kind: "component", type: i10.SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "component", type: i11.SurveyFormSectionComponent, selector: "ws-app-survey-form-section", inputs: ["childQuestionsFormArray", "childFields", "sectionField"], outputs: ["questionValues"] }] }); }
|
|
228
|
+
}
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EnrollQuestionnaireComponent, decorators: [{
|
|
230
|
+
type: Component,
|
|
231
|
+
args: [{ selector: 'ws-app-enroll-questionnaire', template: "<ng-container *ngIf=\"wfClientVersion !== '1.1'\">\n <div #fullScreenContainer>\n <div class=\"dialog-header text-right mb-2\">\n <mat-icon class=\"mat-icon notranslate material-icons close-icon cursor-pointer\" matprefix=\"\" role=\"img\"\n aria-hidden=\"true\" [mat-dialog-close]=\"false\">close</mat-icon>\n </div>\n <lib-micro-survey class=\"course-survey\" [apiData]=\"data?.apiData\" [afterSubmitAction]=\"afterSubmitAction\"\n [isReadOnly]=\"isReadOnly\" [surveyId]=\"data?.surveyId\" [courseId]=\"data?.courseId\" [courseName]=\"data?.courseName\"\n [isblendedprogram]=\"true\" [customTextAreaRows]=\"1\">\n </lib-micro-survey>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"wfClientVersion === '1.1'\">\n <div class=\"preview-container\">\n <div class=\"form-header\">\n <div class=\"flex justify-between iteams-center\">\n <div>{{formDetails?.title}}</div>\n <div class=\"cursor-pointer\" (click)=\"closeForm()\"><mat-icon>close</mat-icon></div>\n </div>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">Submit</button>\n </div>\n </form>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: ["::ng-deep .course-survey .main-container{width:auto!important;overflow-y:auto!important;max-height:auto!important}::ng-deep .course-survey .lib-container{height:100%!important}@media screen and (max-width: 430px){::ng-deep .course-survey .lib-container{padding-left:0!important;padding-right:0!important;padding-bottom:1rem!important}}::ng-deep .userDetailsForm .mat-form-field-appearance-outline .mat-form-field-infix{padding:.5rem 0 .8rem}input[disabled]+mat-icon.disagnation-caret{opacity:.5}input[disabled]+mat-icon.mother-toungue-caret{opacity:.5}::ng-deep .course-survey .lib-container-2{height:auto;min-height:unset!important;padding:0!important;box-shadow:none!important;margin-bottom:2rem!important}@media screen and (max-width: 430px){::ng-deep .course-survey .lib-container-2{padding-left:0!important;padding-right:0!important}}.profile-form-field .mat-select{border:none}.customForm{padding-right:0!important;padding-bottom:1rem!important;padding:1rem 3rem}.cadreControl-name{background:#c3c3c3;padding:10px}.country-code{margin:.4375em 0;padding:14px 0;text-align:center;width:60px;height:19px;display:block!important;position:relative;top:-3px;border:1px solid #d6d5d5;border-radius:5px}.get-otp{color:#1b4ca1;font-weight:700;cursor:pointer;font-size:14px}.enter-otp{align-items:center;justify-content:space-between}.custom-size{width:96%}.resend-otp{color:#1b4ca1;font-weight:700;cursor:pointer}.verified-check{position:absolute;right:3px;color:#5fa800;font-size:18px;width:18px;height:18px}.save-button:disabled{opacity:.6!important}.preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}\n"] }]
|
|
232
|
+
}], ctorParameters: function () { return [{ type: i1.MatLegacySnackBar }, { type: i2.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
233
|
+
type: Inject,
|
|
234
|
+
args: [MAT_DIALOG_DATA]
|
|
235
|
+
}] }, { type: i3.AppTocService }, { type: i4.FormBuilder }]; } });
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLXF1ZXN0aW9ubmFpcmUvZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvZW5yb2xsLXF1ZXN0aW9ubmFpcmUvZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixJQUFJLGVBQWUsRUFBc0MsTUFBTSxpQ0FBaUMsQ0FBQTtBQUcvSCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBSzlFLE1BQU0sYUFBYSxHQUFHLHFIQUFxSCxDQUFBO0FBQzNJLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFBO0FBUTFDLE1BQU0sT0FBTyw0QkFBNEI7SUFpQnZDLFlBQ1UsUUFBcUIsRUFDdEIsU0FBcUQsRUFDNUIsSUFBUyxFQUNqQyxTQUF3QixFQUN4QixFQUFlO1FBSmYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXJCbEIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMz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QUFDLENBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQTtRQUN0RCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0FyT1UsNEJBQTRCLHFGQW9CN0IsZUFBZTttR0FwQmQsNEJBQTRCLG1FQ25CekMsdXNGQXVEZTs7NEZEcENGLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSw2QkFBNkI7OzBCQXlCcEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSwgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXG5pbXBvcnQgeyBNYXRMZWdhY3lTbmFja0JhciBhcyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXInXG5pbXBvcnQgeyBBcHBUb2NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLXRvYy5zZXJ2aWNlJ1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcydcbi8vIGltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcblxuXG5jb25zdCBFTUFJTF9QQVRURVJOID0gL15bYS16QS1aMC05XStbYS16QS1aMC05Ll8tXSpbYS16QS1aMC05XStAW2EtekEtWjAtOV0rKFstYS16QS1aMC05XSpbYS16QS1aMC05XSspPyhcXC5bYS16QS1aMC05LV0rKSpcXC5bYS16QS1aXXsyLDR9JC9cbmNvbnN0IE1PQklMRV9QQVRURVJOID0gL15bMF0/WzY3ODldXFxkezl9JC9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3MtYXBwLWVucm9sbC1xdWVzdGlvbm5haXJlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vucm9sbC1xdWVzdGlvbm5haXJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW5yb2xsLXF1ZXN0aW9ubmFpcmUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBFbnJvbGxRdWVzdGlvbm5haXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGFmdGVyU3VibWl0QWN0aW9uID0gdGhpcy5jaGVja0FmdGVyU3VibWl0LmJpbmQodGhpcylcbiAgaXNSZWFkT25seSA9IGZhbHNlXG5cbiAgcmF0aW5nID0gMFxuICBzdGFycyA9IEFycmF5KDUpLmZpbGwoMClcbiAgb3RoZXJGaWVsZFR5cGU6IGFueSA9IFtdXG4gIHNlbGVjdGVkT3B0aW9uID0gZmFsc2VcbiAgZm9ybURldGFpbHM6IGFueVxuICBzdXJ2ZXlJZCA9ICcnXG4gIHN1cnZleUZvcm0hOiBGb3JtR3JvdXBcbiAgcGFyZW50YWxGaWVsZHM6IGFueVtdID0gW11cbiAgY2hpbGRGaWVsZHM6IGFueVtdID0gW11cbiAgc3VydmV5Rm9ybUlzVmFsaWQgPSB0cnVlXG4gIGFkZExvYWRlciA9IDBcbiAgd2ZDbGllbnRWZXJzaW9uID0gXCIwXCJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RW5yb2xsUXVlc3Rpb25uYWlyZUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBhcHBUb2NTdmM6IEFwcFRvY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgLy8gcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7XG4gICAgdGhpcy5zdXJ2ZXlJZCA9IGRhdGEuc3VydmV5SWRcbiAgICB0aGlzLndmQ2xpZW50VmVyc2lvbiA9IGRhdGEud2ZDbGllbnRWZXJzaW9uLnRvTG9jYWxlU3RyaW5nKClcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0FmdGVyU3VibWl0KF9lOiBhbnkpIHtcbiAgICAvLyB0aGlzLnJlbmRlclN1YmplY3QubmV4dCgpXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZygnRm9ybSBpcyBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5JylcbiAgICB0aGlzLm9wZW5TbmFja2JhcignRm9ybSBpcyBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5JylcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy53ZkNsaWVudFZlcnNpb24gPT09ICcxLjEnKSB7XG4gICAgICB0aGlzLmdldEZvcm1EZXRhaWxzKClcbiAgICAgIHRoaXMub3RoZXJGaWVsZFR5cGUgPSBbJ3JhZGlvJywgJ2Jvb2xlYW4nLCAncmF0aW5nJ11cbiAgICB9XG4gIH1cblxuICBnZXRGb3JtRGV0YWlscygpIHtcbiAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxuICAgIHRoaXMuYXBwVG9jU3ZjLmdldEZvcm1CeUlkKHRoaXMuc3VydmV5SWQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXG4gICAgICB0aGlzLmZvcm1EZXRhaWxzID0ge1xuICAgICAgICB0aXRsZTogXy5nZXQocmVzdWx0LCAncmVzdWx0LnJlc3BvbnNlLnRpdGxlJywgJycpLFxuICAgICAgICBmaWVsZHM6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS5maWVsZHMnLCBbXSlcbiAgICAgIH1cbiAgICAgIHRoaXMuYnVpbGRGb3JtKClcbiAgICB9LCAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciAtIDFcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYnVpbGRGb3JtKCkge1xuICAgIGlmICh0aGlzLmZvcm1EZXRhaWxzKSB7XG4gICAgICB0aGlzLnN1cnZleUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgZmllbGRzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgICAgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gdGhpcy5xdWVzdGlvbnNBcnJheVxuICAgICAgaWYgKHRoaXMuZm9ybURldGFpbHMuZmllbGRzKSB7XG4gICAgICAgIHRoaXMuZm9ybURldGFpbHMuZmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZmllbGQuZmllbGRUeXBlICE9PSAnc2VwYXJhdG9yJyAmJiBmaWVsZC5maWVsZFR5cGUgIT09ICdoZWFkaW5nJykge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yc0FycmF5OiBhbnkgPSBbXVxuICAgICAgICAgICAgaWYgKGZpZWxkLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoIChmaWVsZC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAncGhvbmUgbnVtYmVyJzpcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oTU9CSUxFX1BBVFRFUk4pKVxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKDEwKSlcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCgxMCkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihFTUFJTF9QQVRURVJOKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICBjYXNlICdudW1lcmljJzpcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBxdWVzdGlvbkdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiBbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgIHBhcmVudElkOiBbZmllbGQucGFyZW50SWRdLFxuICAgICAgICAgICAgICBxdWVzdGlvbkluZGV4OiBbcXVlc3Rpb25zQXJyYXkubGVuZ3RoXSxcbiAgICAgICAgICAgICAgZmllbGRUeXBlOiBbZmllbGQuZmllbGRUeXBlXSxcbiAgICAgICAgICAgICAgYW5zd2VyOiBbJycsIHZhbGlkYXRvcnNBcnJheV0sXG4gICAgICAgICAgICAgIGlzTkE6IFtmYWxzZV0sXG4gICAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IFtmaWVsZC5pZF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBmaWVsZFsnY29udHJvbEluZGV4J10gPSBxdWVzdGlvbnNBcnJheS5sZW5ndGhcbiAgICAgICAgICAgIGZpZWxkWyd2YWxpZGF0b3JzQXJyYXknXSA9IHZhbGlkYXRvcnNBcnJheVxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaChxdWVzdGlvbkdyb3VwKVxuICAgICAgICAgICAgaWYgKHZhbGlkYXRvcnNBcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtSXNWYWxpZCA9IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnBhcmVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkRmllbGRzLnB1c2goZmllbGQpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50YWxGaWVsZHMucHVzaChmaWVsZClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uc0FycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybSAmJiB0aGlzLnN1cnZleUZvcm0uY29udHJvbHMuZmllbGRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdXJ2ZXlGb3JtLmNvbnRyb2xzLmZpZWxkcyBhcyBGb3JtQXJyYXlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmIuYXJyYXkoW10pXG4gIH1cblxuICBnZXRDaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheShzZWN0aW9uSWQ6IHN0cmluZyk6IEZvcm1BcnJheSB7XG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybSAmJiB0aGlzLnN1cnZleUZvcm0uY29udHJvbHMuZmllbGRzKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbnNBcnJheSA9IHRoaXMucXVlc3Rpb25zQXJyYXlcbiAgICAgIGNvbnN0IGNoaWxkUXVlc3Rpb25zQXJyYXkgPSBxdWVzdGlvbnNBcnJheS5jb250cm9scy5maWx0ZXIoKHF1ZXN0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbHVlICYmIHF1ZXN0aW9uLnZhbHVlLnBhcmVudElkID09PSBzZWN0aW9uSWQ7XG4gICAgICB9KTtcblxuICAgICAgaWYgKGNoaWxkUXVlc3Rpb25zQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5hcnJheShjaGlsZFF1ZXN0aW9uc0FycmF5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmIuYXJyYXkoW10pIGFzIEZvcm1BcnJheVxuICB9XG5cbiAgZ2V0Q2hpbGRGaWVsZHMoc2VjdGlvbklkOiBzdHJpbmcpIHtcbiAgICBsZXQgc2VjdGlvbkNoaWxkczogYW55ID0gW11cbiAgICBpZiAodGhpcy5jaGlsZEZpZWxkcykge1xuICAgICAgc2VjdGlvbkNoaWxkcyA9IHRoaXMuY2hpbGRGaWVsZHMuZmlsdGVyKChmaWVsZDogYW55KSA9PiBmaWVsZC5wYXJlbnRJZCA9PT0gc2VjdGlvbklkKVxuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbkNoaWxkc1xuICB9XG5cbiAgZ2V0UXVlc3Rpb25Db250cm9sKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbnNBcnJheS5jb250cm9sc1tpbmRleF0pIHtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzW2luZGV4XVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7fSlcbiAgfVxuXG4gIGNsb3NlRm9ybSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpXG4gIH1cblxuICBzdWJtaXRGb3JtKCkge1xuICAgIHRoaXMuc3VydmV5Rm9ybS5tYXJrQWxsQXNUb3VjaGVkKClcbiAgICB0aGlzLnN1cnZleUZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgaWYgKHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQpIHtcbiAgICAgIGNvbnN0IGZvcm1Cb2R5OiBhbnkgPSB7XG4gICAgICAgIGZvcm1JZDogdGhpcy5zdXJ2ZXlJZCxcbiAgICAgICAgdmVyc2lvbjogNCxcbiAgICAgICAgc3RhdHVzOiAnU1VCTUlUVEVEJyxcbiAgICAgICAgcmVzcG9uc2VzOiB0aGlzLmRhdGFPYmplY3QsXG4gICAgICAgIGNvbnRleHRJZDogXy5nZXQodGhpcy5kYXRhLCAnYmF0Y2hEYXRhLmNvdXJzZUlkJyksXG4gICAgICAgIGNvbnRleHROYW1lOiBfLmdldCh0aGlzLmRhdGEsICdjb3Vyc2VOYW1lJywgJycpLFxuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxuICAgICAgdGhpcy5hcHBUb2NTdmMuc3VibWl0Rm9ybShmb3JtQm9keSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChfLmdldChyZXMsICdwYXJhbXMuc3RhdHVzJykgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ0Zvcm0gaXMgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5TbmFja2JhcihfLmdldChyZXMsICdlcnJvck1lc3NhZ2UnLCAnU29tZXRoaW5nIHdlbnQgd3JvbmcgcGxlYXNlIHRyeSBhZ2FpbicpKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHBsZWFzZSB0cnkgYWdhaW4nKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBnZXQgZGF0YU9iamVjdCgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGFPYmplY3Q6IGFueSA9IFtdXG4gICAgY29uc3QgZmllbGRzID0gXy5nZXQodGhpcy5zdXJ2ZXlGb3JtLCAndmFsdWUuZmllbGRzJywgW10pXG4gICAgaWYgKGZpZWxkcykge1xuICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gZmllbGQuaXNOQSA/ICdOL0EnIDogZmllbGQuYW5zd2VyXG4gICAgICAgIGlmICghZmllbGQuaXNOQSAmJiBmaWVsZC5maWVsZFR5cGUgPT09ICdkYXRlJyAmJiB2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkTW9udGggPSBTdHJpbmcodmFsdWUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJylcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWREYXkgPSBTdHJpbmcodmFsdWUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgdmFsdWUgPSBgJHtmb3JtYXR0ZWRZZWFyfS0ke2Zvcm1hdHRlZE1vbnRofS0ke2Zvcm1hdHRlZERheX1gXG4gICAgICAgIH1cbiAgICAgICAgZGF0YU9iamVjdC5wdXNoKHtcbiAgICAgICAgICBxdWVzdGlvbklkOiBmaWVsZC5xdWVzdGlvbklkLFxuICAgICAgICAgIHF1ZXN0aW9uOiBmaWVsZC5xdWVzdGlvbixcbiAgICAgICAgICBhbnN3ZXI6IHZhbHVlLFxuICAgICAgICAgIGFuc3dlclR5cGU6IGZpZWxkLmZpZWxkVHlwZVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGRhdGFPYmplY3RcbiAgfVxuXG4gIHVwZGF0ZVF1ZXN0aW9uVmFsdWVzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uc0FycmF5LnZhbHVlW2V2ZW50LnF1ZXN0aW9uSW5kZXhdID0gZXZlbnRcbiAgICB0aGlzLnVwZGF0ZVN1cnZleUZvcm1WYWxpZGl0eSgpXG4gIH1cblxuICB1cGRhdGVTdXJ2ZXlGb3JtVmFsaWRpdHkoKSB7IC8vIHNvbWUgdGltZXMgcmVhY3RpdmUgZm9ybXMgbm90IGFiYWxlIHRvIGRldGVjdCB2YWx1ZSBjaGFuZ2VzIGFuZCB2YWxpZGl0eSBpbiBkeW5hbWljIGZvcm1BcnJheVxuICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSB0cnVlXG4gICAgdGhpcy5xdWVzdGlvbnNBcnJheS5jb250cm9scy5mb3JFYWNoKChmb3JtOiBhbnkpID0+IHtcbiAgICAgIGlmICghZm9ybS5jb250cm9scy5hbnN3ZXIudmFsaWQpIHtcbiAgICAgICAgdGhpcy5zdXJ2ZXlGb3JtSXNWYWxpZCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwid2ZDbGllbnRWZXJzaW9uICE9PSAnMS4xJ1wiPlxuICA8ZGl2ICNmdWxsU2NyZWVuQ29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyIHRleHQtcmlnaHQgbWItMlwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24gbm90cmFuc2xhdGUgbWF0ZXJpYWwtaWNvbnMgY2xvc2UtaWNvbiBjdXJzb3ItcG9pbnRlclwiIG1hdHByZWZpeD1cIlwiIHJvbGU9XCJpbWdcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8bGliLW1pY3JvLXN1cnZleSBjbGFzcz1cImNvdXJzZS1zdXJ2ZXlcIiBbYXBpRGF0YV09XCJkYXRhPy5hcGlEYXRhXCIgW2FmdGVyU3VibWl0QWN0aW9uXT1cImFmdGVyU3VibWl0QWN0aW9uXCJcbiAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHlcIiBbc3VydmV5SWRdPVwiZGF0YT8uc3VydmV5SWRcIiBbY291cnNlSWRdPVwiZGF0YT8uY291cnNlSWRcIiBbY291cnNlTmFtZV09XCJkYXRhPy5jb3Vyc2VOYW1lXCJcbiAgICAgIFtpc2JsZW5kZWRwcm9ncmFtXT1cInRydWVcIiBbY3VzdG9tVGV4dEFyZWFSb3dzXT1cIjFcIj5cbiAgICA8L2xpYi1taWNyby1zdXJ2ZXk+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ3ZkNsaWVudFZlcnNpb24gPT09ICcxLjEnXCI+XG4gIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZWFtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdj57e2Zvcm1EZXRhaWxzPy50aXRsZX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZUZvcm0oKVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VydmV5Rm9ybVwiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInN1cnZleUZvcm1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYXJlbnRGaWVsZCBvZiBwYXJlbnRhbEZpZWxkc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFyZW50RmllbGQuZmllbGRUeXBlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkaW5nJ1wiPlxuICAgICAgICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tc2VjdGlvbiBbY2hpbGRGaWVsZHNdPVwiZ2V0Q2hpbGRGaWVsZHMocGFyZW50RmllbGQuc2VjdGlvbklkKVwiXG4gICAgICAgICAgICAgICAgICBbc2VjdGlvbkZpZWxkXT1cInBhcmVudEZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIFtjaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheV09XCJnZXRDaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheShwYXJlbnRGaWVsZC5zZWN0aW9uSWQpXCJcbiAgICAgICAgICAgICAgICAgIChxdWVzdGlvblZhbHVlcyk9XCJ1cGRhdGVRdWVzdGlvblZhbHVlcygkZXZlbnQpXCI+PC93cy1hcHAtc3VydmV5LWZvcm0tc2VjdGlvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZXBhcmF0b3InXCI+XG4gICAgICAgICAgICAgICAgPGhyIGNsYXNzPVwib3BhY2l0eS01MCBlbG1lbnQtc2VwYXJhdG9yXCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgPHdzLWFwcC1zdXJ2ZXktZm9ybS1xdWVzdGlvbiBbZmllbGREZXRhaWxzXT1cInBhcmVudEZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbkZvcm1dPVwiZ2V0UXVlc3Rpb25Db250cm9sKHBhcmVudEZpZWxkLmNvbnRyb2xJbmRleClcIlxuICAgICAgICAgICAgICAgICAgKHF1ZXN0aW9uVmFsdWVzKT1cInVwZGF0ZVF1ZXN0aW9uVmFsdWVzKCRldmVudClcIj48L3dzLWFwcC1zdXJ2ZXktZm9ybS1xdWVzdGlvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBtLTRcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInN1Ym1pdC1idG5cIiBbZGlzYWJsZWRdPVwiIXN1cnZleUZvcm1Jc1ZhbGlkXCIgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiPlN1Ym1pdDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZExvYWRlciA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG15LTIgbG9hZGVyIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgPG1hdC1zcGlubmVyIGNsYXNzPVwiaW5saW5lLWJsb2NrXCI+PC9tYXQtc3Bpbm5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
|