@sunbird-cb/toc 0.0.7 → 0.0.9
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 +248 -225
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1148 -1030
- 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 +2907 -2905
- 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 +313 -243
- package/esm2022/lib/services/app-toc.service.mjs +1613 -1387
- 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 +590 -500
- 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 +71 -70
- package/esm2022/sunbird-cb-toc.mjs +4 -4
- package/fesm2022/sunbird-cb-toc.mjs +24777 -24250
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -16
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -31
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -15
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -20
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -22
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -15
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +22 -22
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +22 -22
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -9
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -11
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -12
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -18
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -14
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -11
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -17
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -14
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -199
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -16
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -10
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -38
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -19
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -11
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +183 -183
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -41
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -54
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -47
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -48
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +171 -154
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -8
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -16
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -40
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -21
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -45
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +128 -128
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +51 -51
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +29 -29
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -9
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -28
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -24
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -14
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -9
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -12
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -10
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -22
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -8
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -18
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -8
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -15
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -35
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -19
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -14
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -13
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -11
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -11
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -15
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -10
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -16
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -11
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -34
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -17
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -15
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -15
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -21
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -12
- package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -21
- package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -9
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -47
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -14
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -22
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -19
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -15
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +25 -25
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -21
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -18
- package/lib/_collection-api.d.ts +34 -34
- package/lib/_constants/widget-content.constants.d.ts +7 -7
- package/lib/_directives/tooltip.directive.d.ts +17 -17
- package/lib/_models/common.model.d.ts +3 -3
- package/lib/_models/error.model.d.ts +5 -5
- package/lib/_pipes/highlight.pipe.d.ts +10 -10
- package/lib/_services/rating.service.d.ts +18 -18
- package/lib/_services/samuhik-charcha.service.d.ts +13 -13
- package/lib/_services/viewer-route-util.d.ts +8 -8
- package/lib/_services/widget-content.model.d.ts +515 -515
- package/lib/_services/widget-content.service.d.ts +101 -101
- package/lib/_shared/translate-loader.factory.d.ts +7 -7
- package/lib/app-toc-lib.module.d.ts +88 -88
- package/lib/collection.config.d.ts +159 -159
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -17
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -225
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +78 -78
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -22
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -31
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -47
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -14
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -21
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +314 -314
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +408 -408
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -47
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -22
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -14
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -149
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -42
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -27
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -15
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +195 -195
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -44
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -54
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -18
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +43 -43
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -20
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -13
- package/lib/models/app-toc-analytics.model.d.ts +152 -152
- package/lib/models/app-toc.model.d.ts +84 -84
- package/lib/models/auto-complete.model.d.ts +27 -27
- package/lib/models/card-content.model.d.ts +19 -19
- package/lib/models/content-strip-with-tabs.model.d.ts +44 -44
- package/lib/models/discussion-forum.model.d.ts +40 -40
- package/lib/models/goal.model.d.ts +22 -22
- package/lib/models/meta-tag.model.d.ts +6 -6
- package/lib/models/playlist.model.d.ts +23 -23
- package/lib/models/profile-revamp.model.d.ts +14 -14
- package/lib/models/rating.model.d.ts +17 -17
- package/lib/models/user-profile.model.d.ts +37 -37
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -16
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-resolver.service.d.ts +16 -16
- package/lib/resolvers/config-resolver.service.d.ts +11 -11
- package/lib/resolvers/profile-resolver.service.d.ts +11 -11
- package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -11
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -19
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -8
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -8
- package/lib/services/access-control.service.d.ts +29 -29
- package/lib/services/action.service.d.ts +9 -9
- package/lib/services/app-toc-v2.service.d.ts +16 -14
- package/lib/services/app-toc.service.d.ts +235 -177
- package/lib/services/certificate.service.d.ts +42 -42
- package/lib/services/discuss-utils.service.d.ts +33 -33
- package/lib/services/editor.service.d.ts +17 -17
- package/lib/services/load-check.service.d.ts +8 -8
- package/lib/services/loader.service.d.ts +16 -16
- package/lib/services/mobile-apps.service.d.ts +38 -38
- package/lib/services/netcore.service.d.ts +33 -33
- package/lib/services/nps-grid.service.d.ts +15 -15
- package/lib/services/otp.service.d.ts +20 -20
- package/lib/services/profile-v2.service.d.ts +20 -20
- package/lib/services/reset-ratings.service.d.ts +8 -8
- package/lib/services/resource-download-helper.service.d.ts +29 -29
- package/lib/services/timer.service.d.ts +9 -9
- package/lib/services/title-tag.service.d.ts +21 -21
- package/lib/services/user-profile.service.d.ts +24 -24
- package/lib/services/viewer-data.service.d.ts +58 -58
- package/lib/services/viewer-util.service.d.ts +76 -62
- package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -56
- package/lib/share-toc/share-toc.module.d.ts +32 -32
- package/package.json +1 -1
- package/public-api.d.ts +56 -55
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';
|
|
7
|
-
import { MatLegacyCheckboxModule } from '@angular/material/legacy-checkbox';
|
|
8
|
-
import { MatLegacyInputModule } from '@angular/material/legacy-input';
|
|
9
|
-
import { MatLegacyRadioModule } from '@angular/material/legacy-radio';
|
|
10
|
-
import { MatLegacySelectModule } from '@angular/material/legacy-select';
|
|
11
|
-
import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
|
|
12
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/common";
|
|
15
|
-
import * as i2 from "@angular/material/legacy-form-field";
|
|
16
|
-
import * as i3 from "@angular/material/legacy-input";
|
|
17
|
-
import * as i4 from "@angular/material/legacy-radio";
|
|
18
|
-
import * as i5 from "@angular/material/legacy-select";
|
|
19
|
-
import * as i6 from "@angular/material/legacy-core";
|
|
20
|
-
import * as i7 from "@angular/material/legacy-checkbox";
|
|
21
|
-
import * as i8 from "@angular/material/datepicker";
|
|
22
|
-
import * as i9 from "@angular/material/icon";
|
|
23
|
-
import * as i10 from "@angular/forms";
|
|
24
|
-
import * as i11 from "@ngx-translate/core";
|
|
25
|
-
export class SurveyFormQuestionComponent {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.questionValues = new EventEmitter();
|
|
28
|
-
this.otherFieldType = ['radio', 'boolean', 'rating'];
|
|
29
|
-
this.stars = Array(5).fill(0);
|
|
30
|
-
this.previesAnswer = '';
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
if (this.questionForm) {
|
|
34
|
-
this.answerControl.valueChanges.subscribe((value) => {
|
|
35
|
-
if (value !== this.previesAnswer && value !== null) {
|
|
36
|
-
if (this.fieldDetails['fieldType'] === 'numeric') {
|
|
37
|
-
let modifiedValue = value.replace(/[^0-9.]/g, ''); // Remove all non-numeric and non-decimal characters
|
|
38
|
-
const decimalCount = (modifiedValue.match(/\./g) || []).length;
|
|
39
|
-
if (decimalCount > 1) {
|
|
40
|
-
modifiedValue = modifiedValue.replace(/\.$/, ''); // Remove the last decimal point
|
|
41
|
-
}
|
|
42
|
-
if (value !== modifiedValue) {
|
|
43
|
-
this.answerControl.patchValue(modifiedValue);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (this.fieldDetails['validatorsArray'] && this.questionForm.controls.isNA.value) {
|
|
47
|
-
this.answerControl.setValidators(this.fieldDetails['validatorsArray']);
|
|
48
|
-
this.questionForm.controls.isNA.patchValue(false);
|
|
49
|
-
this.answerControl.markAllAsTouched();
|
|
50
|
-
this.answerControl.updateValueAndValidity();
|
|
51
|
-
}
|
|
52
|
-
this.questionForm.updateValueAndValidity();
|
|
53
|
-
this.emitAnswer();
|
|
54
|
-
}
|
|
55
|
-
this.previesAnswer = value;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
get answerControl() {
|
|
60
|
-
return this.questionForm.controls.answer;
|
|
61
|
-
}
|
|
62
|
-
sectionChange() {
|
|
63
|
-
if (this.questionForm.controls.isNA.value) {
|
|
64
|
-
this.answerControl.reset();
|
|
65
|
-
this.answerControl.clearValidators();
|
|
66
|
-
const validatorsArray = this.fieldDetails['validatorsArray'] ? this.fieldDetails['validatorsArray'].filter((validator) => validator !== Validators.required) : [];
|
|
67
|
-
this.answerControl.setValidators(validatorsArray);
|
|
68
|
-
this.answerControl.updateValueAndValidity();
|
|
69
|
-
this.resetCheckboxes();
|
|
70
|
-
this.emitAnswer();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
resetCheckboxes() {
|
|
74
|
-
if (this.fieldDetails && this.fieldDetails.values) {
|
|
75
|
-
this.fieldDetails.values.forEach((e) => {
|
|
76
|
-
e['checked'] = false;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
setRating(rating) {
|
|
81
|
-
if (this.answerControl) {
|
|
82
|
-
this.answerControl.patchValue(rating);
|
|
83
|
-
this.emitAnswer();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
checkboxClicked(event, index) {
|
|
87
|
-
let checkedList = this.answerControl.value ? this.answerControl.value : [];
|
|
88
|
-
if (event.checked) {
|
|
89
|
-
checkedList.push(event.source.value);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
checkedList = checkedList.filter((e) => e !== event.source.value);
|
|
93
|
-
}
|
|
94
|
-
if (this.fieldDetails.values && this.fieldDetails.values[index]) {
|
|
95
|
-
this.fieldDetails.values[index]['checked'] = event.checked;
|
|
96
|
-
}
|
|
97
|
-
this.answerControl.patchValue(checkedList);
|
|
98
|
-
this.answerControl.updateValueAndValidity();
|
|
99
|
-
this.questionForm.updateValueAndValidity();
|
|
100
|
-
this.emitAnswer();
|
|
101
|
-
}
|
|
102
|
-
emitAnswer() {
|
|
103
|
-
const answerDetails = this.questionForm.value;
|
|
104
|
-
this.questionValues.emit(answerDetails);
|
|
105
|
-
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormQuestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SurveyFormQuestionComponent, isStandalone: true, selector: "ws-app-survey-form-question", inputs: { questionForm: "questionForm", fieldDetails: "fieldDetails" }, outputs: { questionValues: "questionValues" }, ngImport: i0, template: "<form [formGroup]=\"questionForm\" class=\"pb-2 q-element mb-4 question-container\">\n <div class=\"flex items-start\">\n <div class=\"font-semibold margin-remove flex\"\n [ngClass]=\"{'required' : fieldDetails.isRequired, 'pb-3': otherFieldType.includes(fieldDetails.fieldType)}\"\n i18n=\"Title label|Label which explains the user to enter title\">\n {{questionForm.value?.question}}\n </div>\n </div>\n <ng-container [ngSwitch]=\"fieldDetails.fieldType\">\n <ng-container *ngSwitchCase=\"'dropdown'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-select placeholder=\"Select...\" formControlName=\"answer\">\n <mat-option value=\"{{obj.value}}\"\n *ngFor=\" let obj of fieldDetails?.values\">{{obj?.key}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'phone number'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" maxlength=\"10\" />\n </mat-form-field>\n <ng-container\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\n <mat-error class=\"mat-error mb-1\">\n {{ 'profileInfo.pleaseEnterValidMobileNumber' | translate }}\n </mat-error>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"picker\" formControlName=\"answer\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <mat-radio-group class=\"pt-2\" formControlName=\"answer\">\n <mat-radio-button [value]=\"true\" class=\"pr-10 pb-2\">True</mat-radio-button>\n <mat-radio-button [value]=\"false\" class=\"pr-10 pb-2\">False</mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"'email'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\n </mat-form-field>\n <ng-container\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\n <mat-error class=\"mat-error mb-1\">\n {{ 'profileInfo.invalidEmail' | translate }}\n </mat-error>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rating'\">\n <div class=\"rating-container\">\n <mat-icon *ngFor=\"let star of stars; index as i\" class=\"stat-mat-icon\"\n [ngClass]=\"{ 'filled': i < questionForm.controls.answer.value }\" (click)=\"setRating(i + 1)\">\n star\n </mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'textarea'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <textarea matInput i18n-placeholder placeholder=\"Type here...\" rows=\"4\" cols=\"5\"\n formControlName=\"answer\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <mat-radio-group class=\"pt-2 custom\" formControlName=\"answer\">\n <mat-radio-button *ngFor=\"let obj of fieldDetails?.values\" [value]=\"obj.value\" class=\"pr-5 pb-2\">\n {{ obj.key }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"'numeric'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" type=\"text\"\n maxlength=\"18\" />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <section class=\"pt-2\">\n <ng-container *ngFor=\"let objct of fieldDetails?.values; let i = index\">\n <mat-checkbox [checked]=\"objct.checked\" [value]=\"objct.value\" class=\"pr-5 pb-2 custom\"\n (change)=\"checkboxClicked($event, i)\">\n {{ objct.key }}\n </mat-checkbox>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"fieldDetails.notApplicable\">\n <div class=\"mt-2\">\n <mat-radio-group class=\"pt-2\" formControlName=\"isNA\" (change)=\"sectionChange()\">\n <mat-radio-button class=\"pr-10 pb-2 my-raido\" value=\"true\">N/A</mat-radio-button>\n </mat-radio-group>\n </div>\n </ng-container>\n</form>", styles: [".drag-icon{font-size:20px;color:#000}.q-element{padding:16px;background:#fff;border-radius:8px}.rating-container{display:flex;gap:5px}.stat-mat-icon{font-size:30px;cursor:pointer;color:#ccc;width:30px;height:30px}.stat-mat-icon.filled{color:#ffca28}:host ::ng-deep .question-container .mat-form-field-wrapper{padding:0!important}:host ::ng-deep .question-container .mat-radio-checked{background-color:#fff!important}:host ::ng-deep .question-container .mat-radio-label-content{font-size:14px!important;font-family:Montserrat}:host ::ng-deep .custom .mat-checkbox-layout,:host ::ng-deep .custom .mat-radio-label{white-space:normal!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i2.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i3.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "ngmodule", type: MatLegacyRadioModule }, { kind: "directive", type: i4.MatLegacyRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatLegacyRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatLegacySelectModule }, { kind: "component", type: i5.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatLegacyCheckboxModule }, { kind: "component", type: i7.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i10.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
|
108
|
-
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormQuestionComponent, decorators: [{
|
|
110
|
-
type: Component,
|
|
111
|
-
args: [{ selector: 'ws-app-survey-form-question', standalone: true, imports: [
|
|
112
|
-
CommonModule,
|
|
113
|
-
MatInputModule,
|
|
114
|
-
MatLegacyRadioModule,
|
|
115
|
-
MatLegacySelectModule,
|
|
116
|
-
MatLegacyCheckboxModule,
|
|
117
|
-
MatLegacyInputModule,
|
|
118
|
-
MatDatepickerModule,
|
|
119
|
-
MatIconModule,
|
|
120
|
-
MatLegacySelectModule,
|
|
121
|
-
ReactiveFormsModule,
|
|
122
|
-
FormsModule,
|
|
123
|
-
MatFormFieldModule,
|
|
124
|
-
TranslateModule
|
|
125
|
-
], template: "<form [formGroup]=\"questionForm\" class=\"pb-2 q-element mb-4 question-container\">\n <div class=\"flex items-start\">\n <div class=\"font-semibold margin-remove flex\"\n [ngClass]=\"{'required' : fieldDetails.isRequired, 'pb-3': otherFieldType.includes(fieldDetails.fieldType)}\"\n i18n=\"Title label|Label which explains the user to enter title\">\n {{questionForm.value?.question}}\n </div>\n </div>\n <ng-container [ngSwitch]=\"fieldDetails.fieldType\">\n <ng-container *ngSwitchCase=\"'dropdown'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-select placeholder=\"Select...\" formControlName=\"answer\">\n <mat-option value=\"{{obj.value}}\"\n *ngFor=\" let obj of fieldDetails?.values\">{{obj?.key}}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'phone number'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" maxlength=\"10\" />\n </mat-form-field>\n <ng-container\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\n <mat-error class=\"mat-error mb-1\">\n {{ 'profileInfo.pleaseEnterValidMobileNumber' | translate }}\n </mat-error>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <mat-form-field appearance=\"outline\">\n <input matInput [matDatepicker]=\"picker\" formControlName=\"answer\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <mat-radio-group class=\"pt-2\" formControlName=\"answer\">\n <mat-radio-button [value]=\"true\" class=\"pr-10 pb-2\">True</mat-radio-button>\n <mat-radio-button [value]=\"false\" class=\"pr-10 pb-2\">False</mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"'email'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\n </mat-form-field>\n <ng-container\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\n <mat-error class=\"mat-error mb-1\">\n {{ 'profileInfo.invalidEmail' | translate }}\n </mat-error>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rating'\">\n <div class=\"rating-container\">\n <mat-icon *ngFor=\"let star of stars; index as i\" class=\"stat-mat-icon\"\n [ngClass]=\"{ 'filled': i < questionForm.controls.answer.value }\" (click)=\"setRating(i + 1)\">\n star\n </mat-icon>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'textarea'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <textarea matInput i18n-placeholder placeholder=\"Type here...\" rows=\"4\" cols=\"5\"\n formControlName=\"answer\"></textarea>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <mat-radio-group class=\"pt-2 custom\" formControlName=\"answer\">\n <mat-radio-button *ngFor=\"let obj of fieldDetails?.values\" [value]=\"obj.value\" class=\"pr-5 pb-2\">\n {{ obj.key }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"'numeric'\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" type=\"text\"\n maxlength=\"18\" />\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <section class=\"pt-2\">\n <ng-container *ngFor=\"let objct of fieldDetails?.values; let i = index\">\n <mat-checkbox [checked]=\"objct.checked\" [value]=\"objct.value\" class=\"pr-5 pb-2 custom\"\n (change)=\"checkboxClicked($event, i)\">\n {{ objct.key }}\n </mat-checkbox>\n </ng-container>\n </section>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"fieldDetails.notApplicable\">\n <div class=\"mt-2\">\n <mat-radio-group class=\"pt-2\" formControlName=\"isNA\" (change)=\"sectionChange()\">\n <mat-radio-button class=\"pr-10 pb-2 my-raido\" value=\"true\">N/A</mat-radio-button>\n </mat-radio-group>\n </div>\n </ng-container>\n</form>", styles: [".drag-icon{font-size:20px;color:#000}.q-element{padding:16px;background:#fff;border-radius:8px}.rating-container{display:flex;gap:5px}.stat-mat-icon{font-size:30px;cursor:pointer;color:#ccc;width:30px;height:30px}.stat-mat-icon.filled{color:#ffca28}:host ::ng-deep .question-container .mat-form-field-wrapper{padding:0!important}:host ::ng-deep .question-container .mat-radio-checked{background-color:#fff!important}:host ::ng-deep .question-container .mat-radio-label-content{font-size:14px!important;font-family:Montserrat}:host ::ng-deep .custom .mat-checkbox-layout,:host ::ng-deep .custom .mat-radio-label{white-space:normal!important}\n"] }]
|
|
126
|
-
}], propDecorators: { questionForm: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], fieldDetails: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], questionValues: [{
|
|
131
|
-
type: Output
|
|
132
|
-
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tcXVlc3Rpb24vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tcXVlc3Rpb24vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixJQUFJLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFx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LFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRMZWdhY3lJbnB1dE1vZHVsZSBhcyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1pbnB1dCc7XG5pbXBvcnQgeyBNYXRMZWdhY3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRMZWdhY3lJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1pbnB1dCc7XG5pbXBvcnQgeyBNYXRMZWdhY3lSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1yYWRpbyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc2VsZWN0JztcbmltcG9ydCB7IE1hdExlZ2FjeUZvcm1GaWVsZE1vZHVsZSBhcyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZm9ybS1maWVsZCdcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdExlZ2FjeVJhZGlvTW9kdWxlLFxuICAgIE1hdExlZ2FjeVNlbGVjdE1vZHVsZSxcbiAgICBNYXRMZWdhY3lDaGVja2JveE1vZHVsZSxcbiAgICBNYXRMZWdhY3lJbnB1dE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TGVnYWN5U2VsZWN0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlGb3JtUXVlc3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBxdWVzdGlvbkZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGZpZWxkRGV0YWlsczogYW55XG5cbiAgQE91dHB1dCgpIHF1ZXN0aW9uVmFsdWVzID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgb3RoZXJGaWVsZFR5cGUgPSBbJ3JhZGlvJywgJ2Jvb2xlYW4nLCAncmF0aW5nJ11cbiAgc3RhcnMgPSBBcnJheSg1KS5maWxsKDApXG4gIHByZXZpZXNBbnN3ZXI6IHN0cmluZyA9ICcnXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb25Gb3JtKSB7XG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBpZih2YWx1ZSAhPT0gIHRoaXMucHJldmllc0Fuc3dlciAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmKHRoaXMuZmllbGREZXRhaWxzWydmaWVsZFR5cGUnXSA9PT0gJ251bWVyaWMnKSB7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWRWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teMC05Ll0vZywgJycpOyAvLyBSZW1vdmUgYWxsIG5vbi1udW1lcmljIGFuZCBub24tZGVjaW1hbCBjaGFyYWN0ZXJzXG4gICAgICAgICAgICBjb25zdCBkZWNpbWFsQ291bnQgPSAobW9kaWZpZWRWYWx1ZS5tYXRjaCgvXFwuL2cpIHx8IFtdKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbENvdW50ID4gMSkge1xuICAgICAgICAgICAgICBtb2RpZmllZFZhbHVlID0gbW9kaWZpZWRWYWx1ZS5yZXBsYWNlKC9cXC4kLywgJycpOyAvLyBSZW1vdmUgdGhlIGxhc3QgZGVjaW1hbCBwb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYodmFsdWUgIT09IG1vZGlmaWVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5hbnN3ZXJDb250cm9sLnBhdGNoVmFsdWUobW9kaWZpZWRWYWx1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZmllbGREZXRhaWxzWyd2YWxpZGF0b3JzQXJyYXknXSAmJiB0aGlzLnF1ZXN0aW9uRm9ybS5jb250cm9scy5pc05BLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmFuc3dlckNvbnRyb2wuc2V0VmFsaWRhdG9ycyh0aGlzLmZpZWxkRGV0YWlsc1sndmFsaWRhdG9yc0FycmF5J10pXG4gICAgICAgICAgICB0aGlzLnF1ZXN0aW9uRm9ybS5jb250cm9scy5pc05BLnBhdGNoVmFsdWUoZmFsc2UpXG4gICAgICAgICAgICB0aGlzLmFuc3dlckNvbnRyb2wubWFya0FsbEFzVG91Y2hlZCgpXG4gICAgICAgICAgICB0aGlzLmFuc3dlckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucXVlc3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxuICAgICAgICAgIHRoaXMuZW1pdEFuc3dlcigpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2aWVzQW5zd2VyID0gdmFsdWVcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgZ2V0IGFuc3dlckNvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmFuc3dlclxuICB9XG5cbiAgc2VjdGlvbkNoYW5nZSgpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uRm9ybS5jb250cm9scy5pc05BLnZhbHVlKSB7XG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wucmVzZXQoKVxuICAgICAgdGhpcy5hbnN3ZXJDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpXG4gICAgICBjb25zdCB2YWxpZGF0b3JzQXJyYXkgPSB0aGlzLmZpZWxkRGV0YWlsc1sndmFsaWRhdG9yc0FycmF5J10gPyB0aGlzLmZpZWxkRGV0YWlsc1sndmFsaWRhdG9yc0FycmF5J10uZmlsdGVyKCh2YWxpZGF0b3I6IGFueSkgPT4gdmFsaWRhdG9yICE9PSBWYWxpZGF0b3JzLnJlcXVpcmVkKSA6IFtdXG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQXJyYXkpXG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgICB0aGlzLnJlc2V0Q2hlY2tib3hlcygpXG4gICAgICB0aGlzLmVtaXRBbnN3ZXIoKVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0Q2hlY2tib3hlcygpIHtcbiAgICBpZih0aGlzLmZpZWxkRGV0YWlscyAmJiB0aGlzLmZpZWxkRGV0YWlscy52YWx1ZXMpIHtcbiAgICAgIHRoaXMuZmllbGREZXRhaWxzLnZhbHVlcy5mb3JFYWNoKChlOiBhbnkpID0+IHtcbiAgICAgICAgZVsnY2hlY2tlZCddID0gZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgc2V0UmF0aW5nKHJhdGluZzogbnVtYmVyKSB7XG4gICAgaWYodGhpcy5hbnN3ZXJDb250cm9sKSB7XG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wucGF0Y2hWYWx1ZShyYXRpbmcpXG4gICAgICB0aGlzLmVtaXRBbnN3ZXIoKVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrYm94Q2xpY2tlZChldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IGNoZWNrZWRMaXN0ID0gdGhpcy5hbnN3ZXJDb250cm9sLnZhbHVlID8gdGhpcy5hbnN3ZXJDb250cm9sLnZhbHVlIDogW11cbiAgICBpZihldmVudC5jaGVja2VkKSB7XG4gICAgICBjaGVja2VkTGlzdC5wdXNoKGV2ZW50LnNvdXJjZS52YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgY2hlY2tlZExpc3QgPSBjaGVja2VkTGlzdC5maWx0ZXIoKGU6IGFueSkgPT4gZSAhPT0gZXZlbnQuc291cmNlLnZhbHVlKVxuICAgIH1cbiAgICBpZih0aGlzLmZpZWxkRGV0YWlscy52YWx1ZXMgJiYgdGhpcy5maWVsZERldGFpbHMudmFsdWVzW2luZGV4XSkge1xuICAgICAgdGhpcy5maWVsZERldGFpbHMudmFsdWVzW2luZGV4XVsnY2hlY2tlZCddID0gZXZlbnQuY2hlY2tlZFxuICAgIH1cbiAgICB0aGlzLmFuc3dlckNvbnRyb2wucGF0Y2hWYWx1ZShjaGVja2VkTGlzdClcbiAgICB0aGlzLmFuc3dlckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgdGhpcy5xdWVzdGlvbkZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXG4gICAgdGhpcy5lbWl0QW5zd2VyKClcbiAgfVxuXG4gIGVtaXRBbnN3ZXIoKSB7XG4gICAgY29uc3QgYW5zd2VyRGV0YWlscyA9IHRoaXMucXVlc3Rpb25Gb3JtLnZhbHVlXG4gICAgdGhpcy5xdWVzdGlvblZhbHVlcy5lbWl0KGFuc3dlckRldGFpbHMpXG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwicXVlc3Rpb25Gb3JtXCIgY2xhc3M9XCJwYi0yIHEtZWxlbWVudCBtYi00IHF1ZXN0aW9uLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkIG1hcmdpbi1yZW1vdmUgZmxleFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JlcXVpcmVkJyA6IGZpZWxkRGV0YWlscy5pc1JlcXVpcmVkLCAncGItMyc6IG90aGVyRmllbGRUeXBlLmluY2x1ZGVzKGZpZWxkRGV0YWlscy5maWVsZFR5cGUpfVwiXG4gICAgICAgICAgICBpMThuPVwiVGl0bGUgbGFiZWx8TGFiZWwgd2hpY2ggZXhwbGFpbnMgdGhlIHVzZXIgdG8gZW50ZXIgdGl0bGVcIj5cbiAgICAgICAgICAgIHt7cXVlc3Rpb25Gb3JtLnZhbHVlPy5xdWVzdGlvbn19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpZWxkRGV0YWlscy5maWVsZFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Ryb3Bkb3duJ1wiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIlNlbGVjdC4uLlwiIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cInt7b2JqLnZhbHVlfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiIGxldCBvYmogb2YgZmllbGREZXRhaWxzPy52YWx1ZXNcIj57e29iaj8ua2V5fX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwaG9uZSBudW1iZXInXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpMThuLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCIgbWF4bGVuZ3RoPVwiMTBcIiAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uRm9ybS5jb250cm9scy5hbnN3ZXIudG91Y2hlZCAmJiBxdWVzdGlvbkZvcm0uY29udHJvbHMuYW5zd2VyLmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwibWF0LWVycm9yIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ3Byb2ZpbGVJbmZvLnBsZWFzZUVudGVyVmFsaWRNb2JpbGVOdW1iZXInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgY2xhc3M9XCJwdC0yXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIiBjbGFzcz1cInByLTEwIHBiLTJcIj5UcnVlPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiIGNsYXNzPVwicHItMTAgcGItMlwiPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpMThuLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbkZvcm0uY29udHJvbHMuYW5zd2VyLnRvdWNoZWQgJiYgcXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmFuc3dlci5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cIm1hdC1lcnJvciBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdwcm9maWxlSW5mby5pbnZhbGlkRW1haWwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYXRpbmcnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdGb3I9XCJsZXQgc3RhciBvZiBzdGFyczsgaW5kZXggYXMgaVwiIGNsYXNzPVwic3RhdC1tYXQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZpbGxlZCc6IGkgPCBxdWVzdGlvbkZvcm0uY29udHJvbHMuYW5zd2VyLnZhbHVlIH1cIiAoY2xpY2spPVwic2V0UmF0aW5nKGkgKyAxKVwiPlxuICAgICAgICAgICAgICAgICAgICBzdGFyXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpMThuLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dGFyZWEnXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBpMThuLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCIgcm93cz1cIjRcIiBjb2xzPVwiNVwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiPlxuICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInB0LTIgY3VzdG9tXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IG9iaiBvZiBmaWVsZERldGFpbHM/LnZhbHVlc1wiIFt2YWx1ZV09XCJvYmoudmFsdWVcIiBjbGFzcz1cInByLTUgcGItMlwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvYmoua2V5IH19XG4gICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtZXJpYydcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGkxOG4tcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXI9XCJUeXBlIGhlcmUuLi5cIiBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE4XCIgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInB0LTJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvYmpjdCBvZiBmaWVsZERldGFpbHM/LnZhbHVlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cIm9iamN0LmNoZWNrZWRcIiBbdmFsdWVdPVwib2JqY3QudmFsdWVcIiBjbGFzcz1cInByLTUgcGItMiBjdXN0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGVja2JveENsaWNrZWQoJGV2ZW50LCBpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb2JqY3Qua2V5IH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZERldGFpbHMubm90QXBwbGljYWJsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiPlxuICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInB0LTJcIiBmb3JtQ29udHJvbE5hbWU9XCJpc05BXCIgKGNoYW5nZSk9XCJzZWN0aW9uQ2hhbmdlKClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInByLTEwIHBiLTIgbXktcmFpZG9cIiB2YWx1ZT1cInRydWVcIj5OL0E8L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Zvcm0+Il19
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';
|
|
7
|
+
import { MatLegacyCheckboxModule } from '@angular/material/legacy-checkbox';
|
|
8
|
+
import { MatLegacyInputModule } from '@angular/material/legacy-input';
|
|
9
|
+
import { MatLegacyRadioModule } from '@angular/material/legacy-radio';
|
|
10
|
+
import { MatLegacySelectModule } from '@angular/material/legacy-select';
|
|
11
|
+
import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
|
|
12
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@angular/material/legacy-form-field";
|
|
16
|
+
import * as i3 from "@angular/material/legacy-input";
|
|
17
|
+
import * as i4 from "@angular/material/legacy-radio";
|
|
18
|
+
import * as i5 from "@angular/material/legacy-select";
|
|
19
|
+
import * as i6 from "@angular/material/legacy-core";
|
|
20
|
+
import * as i7 from "@angular/material/legacy-checkbox";
|
|
21
|
+
import * as i8 from "@angular/material/datepicker";
|
|
22
|
+
import * as i9 from "@angular/material/icon";
|
|
23
|
+
import * as i10 from "@angular/forms";
|
|
24
|
+
import * as i11 from "@ngx-translate/core";
|
|
25
|
+
export class SurveyFormQuestionComponent {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.questionValues = new EventEmitter();
|
|
28
|
+
this.otherFieldType = ['radio', 'boolean', 'rating'];
|
|
29
|
+
this.stars = Array(5).fill(0);
|
|
30
|
+
this.previesAnswer = '';
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
if (this.questionForm) {
|
|
34
|
+
this.answerControl.valueChanges.subscribe((value) => {
|
|
35
|
+
if (value !== this.previesAnswer && value !== null) {
|
|
36
|
+
if (this.fieldDetails['fieldType'] === 'numeric') {
|
|
37
|
+
let modifiedValue = value.replace(/[^0-9.]/g, ''); // Remove all non-numeric and non-decimal characters
|
|
38
|
+
const decimalCount = (modifiedValue.match(/\./g) || []).length;
|
|
39
|
+
if (decimalCount > 1) {
|
|
40
|
+
modifiedValue = modifiedValue.replace(/\.$/, ''); // Remove the last decimal point
|
|
41
|
+
}
|
|
42
|
+
if (value !== modifiedValue) {
|
|
43
|
+
this.answerControl.patchValue(modifiedValue);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (this.fieldDetails['validatorsArray'] && this.questionForm.controls.isNA.value) {
|
|
47
|
+
this.answerControl.setValidators(this.fieldDetails['validatorsArray']);
|
|
48
|
+
this.questionForm.controls.isNA.patchValue(false);
|
|
49
|
+
this.answerControl.markAllAsTouched();
|
|
50
|
+
this.answerControl.updateValueAndValidity();
|
|
51
|
+
}
|
|
52
|
+
this.questionForm.updateValueAndValidity();
|
|
53
|
+
this.emitAnswer();
|
|
54
|
+
}
|
|
55
|
+
this.previesAnswer = value;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get answerControl() {
|
|
60
|
+
return this.questionForm.controls.answer;
|
|
61
|
+
}
|
|
62
|
+
sectionChange() {
|
|
63
|
+
if (this.questionForm.controls.isNA.value) {
|
|
64
|
+
this.answerControl.reset();
|
|
65
|
+
this.answerControl.clearValidators();
|
|
66
|
+
const validatorsArray = this.fieldDetails['validatorsArray'] ? this.fieldDetails['validatorsArray'].filter((validator) => validator !== Validators.required) : [];
|
|
67
|
+
this.answerControl.setValidators(validatorsArray);
|
|
68
|
+
this.answerControl.updateValueAndValidity();
|
|
69
|
+
this.resetCheckboxes();
|
|
70
|
+
this.emitAnswer();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
resetCheckboxes() {
|
|
74
|
+
if (this.fieldDetails && this.fieldDetails.values) {
|
|
75
|
+
this.fieldDetails.values.forEach((e) => {
|
|
76
|
+
e['checked'] = false;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
setRating(rating) {
|
|
81
|
+
if (this.answerControl) {
|
|
82
|
+
this.answerControl.patchValue(rating);
|
|
83
|
+
this.emitAnswer();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
checkboxClicked(event, index) {
|
|
87
|
+
let checkedList = this.answerControl.value ? this.answerControl.value : [];
|
|
88
|
+
if (event.checked) {
|
|
89
|
+
checkedList.push(event.source.value);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
checkedList = checkedList.filter((e) => e !== event.source.value);
|
|
93
|
+
}
|
|
94
|
+
if (this.fieldDetails.values && this.fieldDetails.values[index]) {
|
|
95
|
+
this.fieldDetails.values[index]['checked'] = event.checked;
|
|
96
|
+
}
|
|
97
|
+
this.answerControl.patchValue(checkedList);
|
|
98
|
+
this.answerControl.updateValueAndValidity();
|
|
99
|
+
this.questionForm.updateValueAndValidity();
|
|
100
|
+
this.emitAnswer();
|
|
101
|
+
}
|
|
102
|
+
emitAnswer() {
|
|
103
|
+
const answerDetails = this.questionForm.value;
|
|
104
|
+
this.questionValues.emit(answerDetails);
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormQuestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SurveyFormQuestionComponent, isStandalone: true, selector: "ws-app-survey-form-question", inputs: { questionForm: "questionForm", fieldDetails: "fieldDetails" }, outputs: { questionValues: "questionValues" }, ngImport: i0, template: "<form [formGroup]=\"questionForm\" class=\"pb-2 q-element mb-4 question-container\">\r\n <div class=\"flex items-start\">\r\n <div class=\"font-semibold margin-remove flex\"\r\n [ngClass]=\"{'required' : fieldDetails.isRequired, 'pb-3': otherFieldType.includes(fieldDetails.fieldType)}\"\r\n i18n=\"Title label|Label which explains the user to enter title\">\r\n {{questionForm.value?.question}}\r\n </div>\r\n </div>\r\n <ng-container [ngSwitch]=\"fieldDetails.fieldType\">\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-select placeholder=\"Select...\" formControlName=\"answer\">\r\n <mat-option value=\"{{obj.value}}\"\r\n *ngFor=\" let obj of fieldDetails?.values\">{{obj?.key}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone number'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" maxlength=\"10\" />\r\n </mat-form-field>\r\n <ng-container\r\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\r\n <mat-error class=\"mat-error mb-1\">\r\n {{ 'profileInfo.pleaseEnterValidMobileNumber' | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"picker\" formControlName=\"answer\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <mat-radio-group class=\"pt-2\" formControlName=\"answer\">\r\n <mat-radio-button [value]=\"true\" class=\"pr-10 pb-2\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" class=\"pr-10 pb-2\">False</mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\r\n </mat-form-field>\r\n <ng-container\r\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\r\n <mat-error class=\"mat-error mb-1\">\r\n {{ 'profileInfo.invalidEmail' | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'rating'\">\r\n <div class=\"rating-container\">\r\n <mat-icon *ngFor=\"let star of stars; index as i\" class=\"stat-mat-icon\"\r\n [ngClass]=\"{ 'filled': i < questionForm.controls.answer.value }\" (click)=\"setRating(i + 1)\">\r\n star\r\n </mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <textarea matInput i18n-placeholder placeholder=\"Type here...\" rows=\"4\" cols=\"5\"\r\n formControlName=\"answer\"></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <mat-radio-group class=\"pt-2 custom\" formControlName=\"answer\">\r\n <mat-radio-button *ngFor=\"let obj of fieldDetails?.values\" [value]=\"obj.value\" class=\"pr-5 pb-2\">\r\n {{ obj.key }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" type=\"text\"\r\n maxlength=\"18\" />\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <section class=\"pt-2\">\r\n <ng-container *ngFor=\"let objct of fieldDetails?.values; let i = index\">\r\n <mat-checkbox [checked]=\"objct.checked\" [value]=\"objct.value\" class=\"pr-5 pb-2 custom\"\r\n (change)=\"checkboxClicked($event, i)\">\r\n {{ objct.key }}\r\n </mat-checkbox>\r\n </ng-container>\r\n </section>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"fieldDetails.notApplicable\">\r\n <div class=\"mt-2\">\r\n <mat-radio-group class=\"pt-2\" formControlName=\"isNA\" (change)=\"sectionChange()\">\r\n <mat-radio-button class=\"pr-10 pb-2 my-raido\" value=\"true\">N/A</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [".drag-icon{font-size:20px;color:#000}.q-element{padding:16px;background:#fff;border-radius:8px}.rating-container{display:flex;gap:5px}.stat-mat-icon{font-size:30px;cursor:pointer;color:#ccc;width:30px;height:30px}.stat-mat-icon.filled{color:#ffca28}:host ::ng-deep .question-container .mat-form-field-wrapper{padding:0!important}:host ::ng-deep .question-container .mat-radio-checked{background-color:#fff!important}:host ::ng-deep .question-container .mat-radio-label-content{font-size:14px!important;font-family:Montserrat}:host ::ng-deep .custom .mat-checkbox-layout,:host ::ng-deep .custom .mat-radio-label{white-space:normal!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i2.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i3.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "ngmodule", type: MatLegacyRadioModule }, { kind: "directive", type: i4.MatLegacyRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatLegacyRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatLegacySelectModule }, { kind: "component", type: i5.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatLegacyCheckboxModule }, { kind: "component", type: i7.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i8.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i8.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i10.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormQuestionComponent, decorators: [{
|
|
110
|
+
type: Component,
|
|
111
|
+
args: [{ selector: 'ws-app-survey-form-question', standalone: true, imports: [
|
|
112
|
+
CommonModule,
|
|
113
|
+
MatInputModule,
|
|
114
|
+
MatLegacyRadioModule,
|
|
115
|
+
MatLegacySelectModule,
|
|
116
|
+
MatLegacyCheckboxModule,
|
|
117
|
+
MatLegacyInputModule,
|
|
118
|
+
MatDatepickerModule,
|
|
119
|
+
MatIconModule,
|
|
120
|
+
MatLegacySelectModule,
|
|
121
|
+
ReactiveFormsModule,
|
|
122
|
+
FormsModule,
|
|
123
|
+
MatFormFieldModule,
|
|
124
|
+
TranslateModule
|
|
125
|
+
], template: "<form [formGroup]=\"questionForm\" class=\"pb-2 q-element mb-4 question-container\">\r\n <div class=\"flex items-start\">\r\n <div class=\"font-semibold margin-remove flex\"\r\n [ngClass]=\"{'required' : fieldDetails.isRequired, 'pb-3': otherFieldType.includes(fieldDetails.fieldType)}\"\r\n i18n=\"Title label|Label which explains the user to enter title\">\r\n {{questionForm.value?.question}}\r\n </div>\r\n </div>\r\n <ng-container [ngSwitch]=\"fieldDetails.fieldType\">\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-select placeholder=\"Select...\" formControlName=\"answer\">\r\n <mat-option value=\"{{obj.value}}\"\r\n *ngFor=\" let obj of fieldDetails?.values\">{{obj?.key}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone number'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" maxlength=\"10\" />\r\n </mat-form-field>\r\n <ng-container\r\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\r\n <mat-error class=\"mat-error mb-1\">\r\n {{ 'profileInfo.pleaseEnterValidMobileNumber' | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <mat-form-field appearance=\"outline\">\r\n <input matInput [matDatepicker]=\"picker\" formControlName=\"answer\">\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <mat-radio-group class=\"pt-2\" formControlName=\"answer\">\r\n <mat-radio-button [value]=\"true\" class=\"pr-10 pb-2\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" class=\"pr-10 pb-2\">False</mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\r\n </mat-form-field>\r\n <ng-container\r\n *ngIf=\"questionForm.controls.answer.touched && questionForm.controls.answer.hasError('pattern')\">\r\n <mat-error class=\"mat-error mb-1\">\r\n {{ 'profileInfo.invalidEmail' | translate }}\r\n </mat-error>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'rating'\">\r\n <div class=\"rating-container\">\r\n <mat-icon *ngFor=\"let star of stars; index as i\" class=\"stat-mat-icon\"\r\n [ngClass]=\"{ 'filled': i < questionForm.controls.answer.value }\" (click)=\"setRating(i + 1)\">\r\n star\r\n </mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" />\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <textarea matInput i18n-placeholder placeholder=\"Type here...\" rows=\"4\" cols=\"5\"\r\n formControlName=\"answer\"></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <mat-radio-group class=\"pt-2 custom\" formControlName=\"answer\">\r\n <mat-radio-button *ngFor=\"let obj of fieldDetails?.values\" [value]=\"obj.value\" class=\"pr-5 pb-2\">\r\n {{ obj.key }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <input matInput i18n-placeholder placeholder=\"Type here...\" formControlName=\"answer\" type=\"text\"\r\n maxlength=\"18\" />\r\n </mat-form-field>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <section class=\"pt-2\">\r\n <ng-container *ngFor=\"let objct of fieldDetails?.values; let i = index\">\r\n <mat-checkbox [checked]=\"objct.checked\" [value]=\"objct.value\" class=\"pr-5 pb-2 custom\"\r\n (change)=\"checkboxClicked($event, i)\">\r\n {{ objct.key }}\r\n </mat-checkbox>\r\n </ng-container>\r\n </section>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"fieldDetails.notApplicable\">\r\n <div class=\"mt-2\">\r\n <mat-radio-group class=\"pt-2\" formControlName=\"isNA\" (change)=\"sectionChange()\">\r\n <mat-radio-button class=\"pr-10 pb-2 my-raido\" value=\"true\">N/A</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [".drag-icon{font-size:20px;color:#000}.q-element{padding:16px;background:#fff;border-radius:8px}.rating-container{display:flex;gap:5px}.stat-mat-icon{font-size:30px;cursor:pointer;color:#ccc;width:30px;height:30px}.stat-mat-icon.filled{color:#ffca28}:host ::ng-deep .question-container .mat-form-field-wrapper{padding:0!important}:host ::ng-deep .question-container .mat-radio-checked{background-color:#fff!important}:host ::ng-deep .question-container .mat-radio-label-content{font-size:14px!important;font-family:Montserrat}:host ::ng-deep .custom .mat-checkbox-layout,:host ::ng-deep .custom .mat-radio-label{white-space:normal!important}\n"] }]
|
|
126
|
+
}], propDecorators: { questionForm: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], fieldDetails: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], questionValues: [{
|
|
131
|
+
type: Output
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tcXVlc3Rpb24vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tcXVlc3Rpb24vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixJQUFJLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFx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LFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGVnYWN5SW5wdXRNb2R1bGUgYXMgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeUlucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWlucHV0JztcclxuaW1wb3J0IHsgTWF0TGVnYWN5UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0TGVnYWN5Rm9ybUZpZWxkTW9kdWxlIGFzIE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1mb3JtLWZpZWxkJ1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3MtYXBwLXN1cnZleS1mb3JtLXF1ZXN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0TGVnYWN5UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRMZWdhY3lTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRMZWdhY3lDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdExlZ2FjeUlucHV0TW9kdWxlLFxyXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRMZWdhY3lTZWxlY3RNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1RdWVzdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgcXVlc3Rpb25Gb3JtITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZpZWxkRGV0YWlsczogYW55XHJcblxyXG4gIEBPdXRwdXQoKSBxdWVzdGlvblZhbHVlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxyXG5cclxuICBvdGhlckZpZWxkVHlwZSA9IFsncmFkaW8nLCAnYm9vbGVhbicsICdyYXRpbmcnXVxyXG4gIHN0YXJzID0gQXJyYXkoNSkuZmlsbCgwKVxyXG4gIHByZXZpZXNBbnN3ZXI6IHN0cmluZyA9ICcnXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb25Gb3JtKSB7XHJcbiAgICAgIHRoaXMuYW5zd2VyQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYodmFsdWUgIT09ICB0aGlzLnByZXZpZXNBbnN3ZXIgJiYgdmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgIGlmKHRoaXMuZmllbGREZXRhaWxzWydmaWVsZFR5cGUnXSA9PT0gJ251bWVyaWMnKSB7XHJcbiAgICAgICAgICAgIGxldCBtb2RpZmllZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvW14wLTkuXS9nLCAnJyk7IC8vIFJlbW92ZSBhbGwgbm9uLW51bWVyaWMgYW5kIG5vbi1kZWNpbWFsIGNoYXJhY3RlcnNcclxuICAgICAgICAgICAgY29uc3QgZGVjaW1hbENvdW50ID0gKG1vZGlmaWVkVmFsdWUubWF0Y2goL1xcLi9nKSB8fCBbXSkubGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAoZGVjaW1hbENvdW50ID4gMSkge1xyXG4gICAgICAgICAgICAgIG1vZGlmaWVkVmFsdWUgPSBtb2RpZmllZFZhbHVlLnJlcGxhY2UoL1xcLiQvLCAnJyk7IC8vIFJlbW92ZSB0aGUgbGFzdCBkZWNpbWFsIHBvaW50XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodmFsdWUgIT09IG1vZGlmaWVkVmFsdWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmFuc3dlckNvbnRyb2wucGF0Y2hWYWx1ZShtb2RpZmllZFZhbHVlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5maWVsZERldGFpbHNbJ3ZhbGlkYXRvcnNBcnJheSddICYmIHRoaXMucXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmlzTkEudmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5hbnN3ZXJDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5maWVsZERldGFpbHNbJ3ZhbGlkYXRvcnNBcnJheSddKVxyXG4gICAgICAgICAgICB0aGlzLnF1ZXN0aW9uRm9ybS5jb250cm9scy5pc05BLnBhdGNoVmFsdWUoZmFsc2UpXHJcbiAgICAgICAgICAgIHRoaXMuYW5zd2VyQ29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgICAgICAgdGhpcy5hbnN3ZXJDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbkZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgICAgICAgICB0aGlzLmVtaXRBbnN3ZXIoKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnByZXZpZXNBbnN3ZXIgPSB2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGFuc3dlckNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5xdWVzdGlvbkZvcm0uY29udHJvbHMuYW5zd2VyXHJcbiAgfVxyXG5cclxuICBzZWN0aW9uQ2hhbmdlKCkge1xyXG4gICAgaWYodGhpcy5xdWVzdGlvbkZvcm0uY29udHJvbHMuaXNOQS52YWx1ZSkge1xyXG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wucmVzZXQoKVxyXG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKClcclxuICAgICAgY29uc3QgdmFsaWRhdG9yc0FycmF5ID0gdGhpcy5maWVsZERldGFpbHNbJ3ZhbGlkYXRvcnNBcnJheSddID8gdGhpcy5maWVsZERldGFpbHNbJ3ZhbGlkYXRvcnNBcnJheSddLmZpbHRlcigodmFsaWRhdG9yOiBhbnkpID0+IHZhbGlkYXRvciAhPT0gVmFsaWRhdG9ycy5yZXF1aXJlZCkgOiBbXVxyXG4gICAgICB0aGlzLmFuc3dlckNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzQXJyYXkpXHJcbiAgICAgIHRoaXMuYW5zd2VyQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAgICAgdGhpcy5yZXNldENoZWNrYm94ZXMoKVxyXG4gICAgICB0aGlzLmVtaXRBbnN3ZXIoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRDaGVja2JveGVzKCkge1xyXG4gICAgaWYodGhpcy5maWVsZERldGFpbHMgJiYgdGhpcy5maWVsZERldGFpbHMudmFsdWVzKSB7XHJcbiAgICAgIHRoaXMuZmllbGREZXRhaWxzLnZhbHVlcy5mb3JFYWNoKChlOiBhbnkpID0+IHtcclxuICAgICAgICBlWydjaGVja2VkJ10gPSBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UmF0aW5nKHJhdGluZzogbnVtYmVyKSB7XHJcbiAgICBpZih0aGlzLmFuc3dlckNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5hbnN3ZXJDb250cm9sLnBhdGNoVmFsdWUocmF0aW5nKVxyXG4gICAgICB0aGlzLmVtaXRBbnN3ZXIoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tib3hDbGlja2VkKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBjaGVja2VkTGlzdCA9IHRoaXMuYW5zd2VyQ29udHJvbC52YWx1ZSA/IHRoaXMuYW5zd2VyQ29udHJvbC52YWx1ZSA6IFtdXHJcbiAgICBpZihldmVudC5jaGVja2VkKSB7XHJcbiAgICAgIGNoZWNrZWRMaXN0LnB1c2goZXZlbnQuc291cmNlLnZhbHVlKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hlY2tlZExpc3QgPSBjaGVja2VkTGlzdC5maWx0ZXIoKGU6IGFueSkgPT4gZSAhPT0gZXZlbnQuc291cmNlLnZhbHVlKVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5maWVsZERldGFpbHMudmFsdWVzICYmIHRoaXMuZmllbGREZXRhaWxzLnZhbHVlc1tpbmRleF0pIHtcclxuICAgICAgdGhpcy5maWVsZERldGFpbHMudmFsdWVzW2luZGV4XVsnY2hlY2tlZCddID0gZXZlbnQuY2hlY2tlZFxyXG4gICAgfVxyXG4gICAgdGhpcy5hbnN3ZXJDb250cm9sLnBhdGNoVmFsdWUoY2hlY2tlZExpc3QpXHJcbiAgICB0aGlzLmFuc3dlckNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgICB0aGlzLnF1ZXN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAgIHRoaXMuZW1pdEFuc3dlcigpXHJcbiAgfVxyXG5cclxuICBlbWl0QW5zd2VyKCkge1xyXG4gICAgY29uc3QgYW5zd2VyRGV0YWlscyA9IHRoaXMucXVlc3Rpb25Gb3JtLnZhbHVlXHJcbiAgICB0aGlzLnF1ZXN0aW9uVmFsdWVzLmVtaXQoYW5zd2VyRGV0YWlscylcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJxdWVzdGlvbkZvcm1cIiBjbGFzcz1cInBiLTIgcS1lbGVtZW50IG1iLTQgcXVlc3Rpb24tY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkIG1hcmdpbi1yZW1vdmUgZmxleFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVxdWlyZWQnIDogZmllbGREZXRhaWxzLmlzUmVxdWlyZWQsICdwYi0zJzogb3RoZXJGaWVsZFR5cGUuaW5jbHVkZXMoZmllbGREZXRhaWxzLmZpZWxkVHlwZSl9XCJcclxuICAgICAgICAgICAgaTE4bj1cIlRpdGxlIGxhYmVsfExhYmVsIHdoaWNoIGV4cGxhaW5zIHRoZSB1c2VyIHRvIGVudGVyIHRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7cXVlc3Rpb25Gb3JtLnZhbHVlPy5xdWVzdGlvbn19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpZWxkRGV0YWlscy5maWVsZFR5cGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cIlNlbGVjdC4uLlwiIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwie3tvYmoudmFsdWV9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIiBsZXQgb2JqIG9mIGZpZWxkRGV0YWlscz8udmFsdWVzXCI+e3tvYmo/LmtleX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwaG9uZSBudW1iZXInXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaTE4bi1wbGFjZWhvbGRlciBwbGFjZWhvbGRlcj1cIlR5cGUgaGVyZS4uLlwiIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiIG1heGxlbmd0aD1cIjEwXCIgLz5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbkZvcm0uY29udHJvbHMuYW5zd2VyLnRvdWNoZWQgJiYgcXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmFuc3dlci5oYXNFcnJvcigncGF0dGVybicpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwibWF0LWVycm9yIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAncHJvZmlsZUluZm8ucGxlYXNlRW50ZXJWYWxpZE1vYmlsZU51bWJlcicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIj5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInB0LTJcIiBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ0cnVlXCIgY2xhc3M9XCJwci0xMCBwYi0yXCI+VHJ1ZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiIGNsYXNzPVwicHItMTAgcGItMlwiPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgaTE4bi1wbGFjZWhvbGRlciBwbGFjZWhvbGRlcj1cIlR5cGUgaGVyZS4uLlwiIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiIC8+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmFuc3dlci50b3VjaGVkICYmIHF1ZXN0aW9uRm9ybS5jb250cm9scy5hbnN3ZXIuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cIm1hdC1lcnJvciBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ3Byb2ZpbGVJbmZvLmludmFsaWRFbWFpbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmF0aW5nJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0Zvcj1cImxldCBzdGFyIG9mIHN0YXJzOyBpbmRleCBhcyBpXCIgY2xhc3M9XCJzdGF0LW1hdC1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdmaWxsZWQnOiBpIDwgcXVlc3Rpb25Gb3JtLmNvbnRyb2xzLmFuc3dlci52YWx1ZSB9XCIgKGNsaWNrKT1cInNldFJhdGluZyhpICsgMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICBzdGFyXHJcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBpMThuLXBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCIgZm9ybUNvbnRyb2xOYW1lPVwiYW5zd2VyXCIgLz5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dGFyZWEnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgaTE4bi1wbGFjZWhvbGRlciBwbGFjZWhvbGRlcj1cIlR5cGUgaGVyZS4uLlwiIHJvd3M9XCI0XCIgY29scz1cIjVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFuc3dlclwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwicHQtMiBjdXN0b21cIiBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBvYmogb2YgZmllbGREZXRhaWxzPy52YWx1ZXNcIiBbdmFsdWVdPVwib2JqLnZhbHVlXCIgY2xhc3M9XCJwci01IHBiLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvYmoua2V5IH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1lcmljJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGkxOG4tcGxhY2Vob2xkZXIgcGxhY2Vob2xkZXI9XCJUeXBlIGhlcmUuLi5cIiBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMThcIiAvPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJwdC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvYmpjdCBvZiBmaWVsZERldGFpbHM/LnZhbHVlczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwib2JqY3QuY2hlY2tlZFwiIFt2YWx1ZV09XCJvYmpjdC52YWx1ZVwiIGNsYXNzPVwicHItNSBwYi0yIGN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hlY2tib3hDbGlja2VkKCRldmVudCwgaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb2JqY3Qua2V5IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkRGV0YWlscy5ub3RBcHBsaWNhYmxlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInB0LTJcIiBmb3JtQ29udHJvbE5hbWU9XCJpc05BXCIgKGNoYW5nZSk9XCJzZWN0aW9uQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicHItMTAgcGItMiBteS1yYWlkb1wiIHZhbHVlPVwidHJ1ZVwiPk4vQTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPiJdfQ==
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { SurveyFormQuestionComponent } from '../survey-form-question/survey-form-question.component';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class SurveyFormSectionComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.questionValues = new EventEmitter();
|
|
9
|
-
}
|
|
10
|
-
getField(questionIndex) {
|
|
11
|
-
let field = {};
|
|
12
|
-
if (this.childFields) {
|
|
13
|
-
const filterList = this.childFields.filter((childField) => childField.controlIndex === questionIndex);
|
|
14
|
-
field = filterList ? filterList[0] : {};
|
|
15
|
-
}
|
|
16
|
-
return field;
|
|
17
|
-
}
|
|
18
|
-
updateQuestionValues(event) {
|
|
19
|
-
this.questionValues.emit(event);
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SurveyFormSectionComponent, isStandalone: true, selector: "ws-app-survey-form-section", inputs: { childQuestionsFormArray: "childQuestionsFormArray", childFields: "childFields", sectionField: "sectionField" }, outputs: { questionValues: "questionValues" }, ngImport: i0, template: "<div class=\"section-wrapper\">\n <div class=\"section-title\">\n {{sectionField?.values[0]?.heading}}\n </div>\n <div class=\"section-desc text-xs font-normal pt-2\">{{sectionField?.values[0]?.subHeading}}</div>\n <hr class=\"opacity-50 mb-0\">\n <div class=\"section-content pt-5\">\n <ng-container *ngFor=\"let questionForm of childQuestionsFormArray?.controls\">\n <ws-app-survey-form-question [questionForm]=\"questionForm\"\n [fieldDetails]=\"getField(questionForm.value.questionIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </div>\n </div>", styles: [".section-wrapper{background:#1b4ca114;padding:16px 16px 8px;border-radius:8px}.section-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}\n"], dependencies: [{ kind: "component", type: SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormSectionComponent, decorators: [{
|
|
25
|
-
type: Component,
|
|
26
|
-
args: [{ selector: 'ws-app-survey-form-section', standalone: true, imports: [SurveyFormQuestionComponent, CommonModule], template: "<div class=\"section-wrapper\">\n <div class=\"section-title\">\n {{sectionField?.values[0]?.heading}}\n </div>\n <div class=\"section-desc text-xs font-normal pt-2\">{{sectionField?.values[0]?.subHeading}}</div>\n <hr class=\"opacity-50 mb-0\">\n <div class=\"section-content pt-5\">\n <ng-container *ngFor=\"let questionForm of childQuestionsFormArray?.controls\">\n <ws-app-survey-form-question [questionForm]=\"questionForm\"\n [fieldDetails]=\"getField(questionForm.value.questionIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </div>\n </div>", styles: [".section-wrapper{background:#1b4ca114;padding:16px 16px 8px;border-radius:8px}.section-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}\n"] }]
|
|
27
|
-
}], propDecorators: { childQuestionsFormArray: [{
|
|
28
|
-
type: Input
|
|
29
|
-
}], childFields: [{
|
|
30
|
-
type: Input
|
|
31
|
-
}], sectionField: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], questionValues: [{
|
|
34
|
-
type: Output
|
|
35
|
-
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { SurveyFormQuestionComponent } from '../survey-form-question/survey-form-question.component';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class SurveyFormSectionComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.questionValues = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
getField(questionIndex) {
|
|
11
|
+
let field = {};
|
|
12
|
+
if (this.childFields) {
|
|
13
|
+
const filterList = this.childFields.filter((childField) => childField.controlIndex === questionIndex);
|
|
14
|
+
field = filterList ? filterList[0] : {};
|
|
15
|
+
}
|
|
16
|
+
return field;
|
|
17
|
+
}
|
|
18
|
+
updateQuestionValues(event) {
|
|
19
|
+
this.questionValues.emit(event);
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SurveyFormSectionComponent, isStandalone: true, selector: "ws-app-survey-form-section", inputs: { childQuestionsFormArray: "childQuestionsFormArray", childFields: "childFields", sectionField: "sectionField" }, outputs: { questionValues: "questionValues" }, ngImport: i0, template: "<div class=\"section-wrapper\">\r\n <div class=\"section-title\">\r\n {{sectionField?.values[0]?.heading}}\r\n </div>\r\n <div class=\"section-desc text-xs font-normal pt-2\">{{sectionField?.values[0]?.subHeading}}</div>\r\n <hr class=\"opacity-50 mb-0\">\r\n <div class=\"section-content pt-5\">\r\n <ng-container *ngFor=\"let questionForm of childQuestionsFormArray?.controls\">\r\n <ws-app-survey-form-question [questionForm]=\"questionForm\"\r\n [fieldDetails]=\"getField(questionForm.value.questionIndex)\"\r\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\r\n </ng-container>\r\n </div>\r\n </div>", styles: [".section-wrapper{background:#1b4ca114;padding:16px 16px 8px;border-radius:8px}.section-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}\n"], dependencies: [{ kind: "component", type: SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurveyFormSectionComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'ws-app-survey-form-section', standalone: true, imports: [SurveyFormQuestionComponent, CommonModule], template: "<div class=\"section-wrapper\">\r\n <div class=\"section-title\">\r\n {{sectionField?.values[0]?.heading}}\r\n </div>\r\n <div class=\"section-desc text-xs font-normal pt-2\">{{sectionField?.values[0]?.subHeading}}</div>\r\n <hr class=\"opacity-50 mb-0\">\r\n <div class=\"section-content pt-5\">\r\n <ng-container *ngFor=\"let questionForm of childQuestionsFormArray?.controls\">\r\n <ws-app-survey-form-question [questionForm]=\"questionForm\"\r\n [fieldDetails]=\"getField(questionForm.value.questionIndex)\"\r\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\r\n </ng-container>\r\n </div>\r\n </div>", styles: [".section-wrapper{background:#1b4ca114;padding:16px 16px 8px;border-radius:8px}.section-title{font-family:Montserrat;font-size:16px;font-weight:600;line-height:19.5px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}\n"] }]
|
|
27
|
+
}], propDecorators: { childQuestionsFormArray: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], childFields: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], sectionField: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], questionValues: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS1zZWN0aW9uL3N1cnZleS1mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tc2VjdGlvbi9zdXJ2ZXktZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQWFZLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtLQWU5QztJQWJDLFFBQVEsQ0FBQyxhQUFxQjtRQUM1QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLENBQUE7WUFDMUcsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7U0FDeEM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLENBQUM7K0dBbkJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLCtQQ1p2Qyxtc0JBYVEsd1ZETEksMkJBQTJCLDhJQUFFLFlBQVk7OzRGQUl4QywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLFlBQVksQ0FBQzs4QkFNM0MsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlGb3JtUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9zdXJ2ZXktZm9ybS1xdWVzdGlvbi9zdXJ2ZXktZm9ybS1xdWVzdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3cy1hcHAtc3VydmV5LWZvcm0tc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbU3VydmV5Rm9ybVF1ZXN0aW9uQ29tcG9uZW50LCBDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdXJ2ZXktZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1TZWN0aW9uQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgY2hpbGRRdWVzdGlvbnNGb3JtQXJyYXkhOiBGb3JtQXJyYXlcclxuICBASW5wdXQoKSBjaGlsZEZpZWxkczogYW55XHJcbiAgQElucHV0KCkgc2VjdGlvbkZpZWxkOiBhbnlcclxuXHJcbiAgQE91dHB1dCgpIHF1ZXN0aW9uVmFsdWVzID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcblxyXG4gIGdldEZpZWxkKHF1ZXN0aW9uSW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGZpZWxkID0ge31cclxuICAgIGlmKHRoaXMuY2hpbGRGaWVsZHMpIHtcclxuICAgICAgY29uc3QgZmlsdGVyTGlzdCA9IHRoaXMuY2hpbGRGaWVsZHMuZmlsdGVyKChjaGlsZEZpZWxkOiBhbnkpID0+IGNoaWxkRmllbGQuY29udHJvbEluZGV4ID09PSBxdWVzdGlvbkluZGV4KVxyXG4gICAgICBmaWVsZCA9IGZpbHRlckxpc3QgPyBmaWx0ZXJMaXN0WzBdIDoge31cclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZFxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUXVlc3Rpb25WYWx1ZXMoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5xdWVzdGlvblZhbHVlcy5lbWl0KGV2ZW50KVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlY3Rpb24td3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5cclxuICAgICAge3tzZWN0aW9uRmllbGQ/LnZhbHVlc1swXT8uaGVhZGluZ319XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWRlc2MgdGV4dC14cyBmb250LW5vcm1hbCBwdC0yXCI+e3tzZWN0aW9uRmllbGQ/LnZhbHVlc1swXT8uc3ViSGVhZGluZ319PC9kaXY+XHJcbiAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTUwIG1iLTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNvbnRlbnQgcHQtNVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHF1ZXN0aW9uRm9ybSBvZiBjaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheT8uY29udHJvbHNcIj5cclxuICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24gW3F1ZXN0aW9uRm9ybV09XCJxdWVzdGlvbkZvcm1cIlxyXG4gICAgICAgICAgIFtmaWVsZERldGFpbHNdPVwiZ2V0RmllbGQocXVlc3Rpb25Gb3JtLnZhbHVlLnF1ZXN0aW9uSW5kZXgpXCJcclxuICAgICAgICAgICAocXVlc3Rpb25WYWx1ZXMpPVwidXBkYXRlUXVlc3Rpb25WYWx1ZXMoJGV2ZW50KVwiPjwvd3MtYXBwLXN1cnZleS1mb3JtLXF1ZXN0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1hbmFseXRpY3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvbW9kZWxzL2FwcC10b2MtYW5hbHl0aWNzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbmFtZXNwYWNlIE5zQW5hbHl0aWNzIHtcclxuICBleHBvcnQgaW50ZXJmYWNlIElBbmFseXRpY3NSZXNwb25zZSB7XHJcbiAgICB0b3RhbDogbnVtYmVyXHJcbiAgICBpbmRleGVkT246IHN0cmluZ1xyXG4gICAgdXBkYXRlZE9uOiBzdHJpbmdcclxuICAgIGRldmljZXM6IElPYmpQYWlyW11cclxuICAgIHRyYWluaW5nSG91cnM6IG51bWJlclxyXG4gICAgdW5pcXVlUGFydGljaXBhbnRzOiBJQWN0aXZpdHlPYmpbXVxyXG4gICAgbGV4X2NvdXJzZTogSUNvdXJzZU9ialxyXG4gICAgbGV4X2NvbGxlY3Rpb246IElDb3Vyc2VPYmpcclxuICAgIGxleF9wcm9ncmFtOiBJQ291cnNlT2JqXHJcbiAgICBsZXhfcmVzb3VyY2U6IElDb3Vyc2VPYmpcclxuICAgIHNlYXJjaFJlc3VsdDogSVNlYXJjaE9ialxyXG4gICAgdW5pcXVlUGFydGljaXBhbnRzU3RhZ2luZzogSUFjdGl2aXR5T2JqW11cclxuICAgIGFjdGl2aXR5VHlwZTogSUFjdGl2aXR5T2JqW11cclxuICAgIHBhcnRpY2lwYW50czogSVBhcnRpY2lwYW50UmVzcG9uc2VcclxuICAgIHJlZmluZXJzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBzZXJ2aWNlTGluZTogSU9ialBhaXJbXTtcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG1vZHVsZXNDb21wbGV0ZWQ6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGFja3M6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0b3BpY3M6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBvZmZlcmluZ01vZGU6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbnRlcmZhY2U6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuZXdTZXJ2aWNlTGluZTogSU9ialBhaXJbXTtcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGFiY2Q6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGFja3NDb21wbGV0ZWQ6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBza2lsbE5hbWU6IElPYmpQYWlyW107XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBob3Jpem9uOiBJT2JqUGFpcltdO1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdHJhY2s6IElPYmpQYWlyW107XHJcbiAgICAgIH1cclxuICAgIF1cclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSU9ialBhaXIge1xyXG4gICAga2V5OiBzdHJpbmdcclxuICAgIHZhbHVlOiBudW1iZXJcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSU9iakNvdW50IHtcclxuICAgIGtleTogc3RyaW5nXHJcbiAgICBjb3VudDogbnVtYmVyXHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVBhcnRpY2lwYW50T2JqIHtcclxuICAgIGtleTogc3RyaW5nXHJcbiAgICB2YWx1ZTogSU9ialBhaXJbXVxyXG4gICAgY291bnQ6IG51bWJlclxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQWN0aXZpdHlPYmoge1xyXG4gICAga2V5OiBzdHJpbmdcclxuICAgIHVuaXF1ZUNvdW50OiBudW1iZXJcclxuICAgIG90aGVyQ291bnRzOiBJT2JqQ291bnRbXVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoT2JqIHtcclxuICAgIHJlc3VsdDogSVNlYXJjaFJlc3VsdE9ialtdXHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVJlc3VsdE9iaiB7XHJcbiAgICB0aXRsZTogc3RyaW5nXHJcbiAgICBwYXJ0aWNpcGFudHM6IG51bWJlclxyXG4gIH1cclxuICBleHBvcnQgaW50ZXJmYWNlIElTZWFyY2hSZXN1bHRPYmoge1xyXG4gICAgc291cmNlOiBzdHJpbmdbXVxyXG4gICAgdGl0bGU6IHN0cmluZ1xyXG4gICAgY291cnNlQ29kZTogc3RyaW5nXHJcbiAgICBzdGF0dXM6IHN0cmluZ1xyXG4gICAgb2ZmZXJpbmdNb2RlOiBzdHJpbmdbXVxyXG4gICAgbGV4X2NvbGxlY3Rpb246IHN0cmluZ1xyXG4gICAgbGV4X2NvdXJzZTogc3RyaW5nXHJcbiAgICBsZXhfcHJvZ3JhbTogc3RyaW5nXHJcbiAgICBsZXhfcmVzb3VyY2U6IHN0cmluZ1xyXG4gICAgb2ZmZXJpbmdzOiBudW1iZXJcclxuICAgIHBhcnRpY2lwYW50czogbnVtYmVyXHJcbiAgICBpbnN0cnVjdG9yczogSUluc3RydWN0b3JPYmpbXVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQ291cnNlT2JqIHtcclxuICAgIHJlc3VsdDogSVJlc3VsdE9ialtdXHJcbiAgfVxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSU9uc2l0ZU9mZnNob3JlT2JqIHtcclxuICAgIGtleTogc3RyaW5nXHJcbiAgICB0cmFpbmluZ0hvdXJzOiBudW1iZXJcclxuICAgIHZhbHVlOiBJT2JqUGFpcltdXHJcbiAgICBjb3VudDogbnVtYmVyXHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIElJbnN0cnVjdG9yT2JqIHtcclxuICAgIGtleTogc3RyaW5nXHJcbiAgICBkb2NfY291bnQ6IG51bWJlclxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJUGFydGljaXBhbnRSZXNwb25zZSB7XHJcbiAgICBjb3VudHJ5OiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgZHU6IElQYXJ0aWNpcGFudE9ialtdXHJcbiAgICBjdTogSVBhcnRpY2lwYW50T2JqW11cclxuICAgIGpsOiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgb3ZlcmFsbFBhcnRpY2lwYW50czogSU9ialBhaXJbXVxyXG4gICAgY3VUeXBlOiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgcHU6IElQYXJ0aWNpcGFudE9ialtdXHJcbiAgICBvbnNpdGVPZmZzaG9yZUluZGljYXRvcjogSU9uc2l0ZU9mZnNob3JlT2JqW11cclxuICAgIGxvY2F0aW9uOiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgcHVTQUxTOiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgaWJ1OiBJUGFydGljaXBhbnRPYmpbXVxyXG4gICAgYWNjb3VudDogSVBhcnRpY2lwYW50T2JqW11cclxuICAgIFtrZXk6IHN0cmluZ106IGFueVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQW5hbHl0aWNzIHtcclxuICAgIGVuYWJsZWQ6IGJvb2xlYW5cclxuICAgIGF2YWlsYWJsZTogYm9vbGVhblxyXG4gICAgY291cnNlQW5hbHl0aWNzQ2xpZW50OiBib29sZWFuXHJcbiAgICBjb3Vyc2VBbmFseXRpY3M6IGJvb2xlYW5cclxuICB9XHJcbn1cclxuZXhwb3J0IG5hbWVzcGFjZSBOc0NvdXJzZUFuYWx5dGljcyB7XHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQW5hbHl0aWNzRGF0YSB7XHJcbiAgICBkYXlfd2lzZV91c2VyczogSUJhckNoYXJ0RGF0YVtdXHJcbiAgICBhdmdfdGltZV9zcGVudDogbnVtYmVyXHJcbiAgICBoaXRzOiBudW1iZXJcclxuICAgIHVzZXJDb3VudDogbnVtYmVyXHJcbiAgICBjaXR5OiBJQ2hhcnREYXRhW11cclxuICAgIGRlcGFydG1lbnQ6IElDaGFydERhdGFbXVxyXG4gICAgZGV2aWNlOiBJQ2hhcnREYXRhW11cclxuICAgIFtrZXk6IHN0cmluZ106IGFueVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJQ2hhcnREYXRhIHtcclxuICAgIGtleTogc3RyaW5nXHJcbiAgICBkb2NfY291bnQ6IG51bWJlclxyXG4gICAgdG90YWxfaGl0czogbnVtYmVyXHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIElCYXJDaGFydERhdGEge1xyXG4gICAga2V5X2FzX3N0cmluZzogc3RyaW5nXHJcbiAgICBrZXk6IG51bWJlclxyXG4gICAgZG9jX2NvdW50OiBudW1iZXJcclxuICAgIGhpdHNfY291bnQ6IG51bWJlclxyXG4gIH1cclxufVxyXG4iXX0=
|