@sunbird-cb/toc 0.0.1
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 -0
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -0
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -0
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -0
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -0
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -0
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -0
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -0
- package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -0
- package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -0
- package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -0
- package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -0
- package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -0
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -0
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -0
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +223 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +591 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -0
- package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -0
- package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -0
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -0
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -0
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -0
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -0
- package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -0
- package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -0
- package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -0
- package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -0
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -0
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -0
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -0
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -0
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -0
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +73 -0
- package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -0
- package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -0
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -0
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -0
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -0
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -0
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -0
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -0
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -0
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -0
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -0
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -0
- package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -0
- package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -0
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -0
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -0
- package/esm2022/lib/_collection-api.mjs +57 -0
- package/esm2022/lib/_constants/widget-content.constants.mjs +19 -0
- package/esm2022/lib/_directives/tooltip.directive.mjs +68 -0
- package/esm2022/lib/_models/common.model.mjs +2 -0
- package/esm2022/lib/_models/error.model.mjs +2 -0
- package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -0
- package/esm2022/lib/_services/rating.service.mjs +89 -0
- package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -0
- package/esm2022/lib/_services/viewer-route-util.mjs +103 -0
- package/esm2022/lib/_services/widget-content.model.mjs +246 -0
- package/esm2022/lib/_services/widget-content.service.mjs +589 -0
- package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -0
- package/esm2022/lib/app-toc-lib.module.mjs +499 -0
- package/esm2022/lib/collection.config.mjs +161 -0
- package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -0
- package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -0
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -0
- package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -0
- package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -0
- package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -0
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -0
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -0
- package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -0
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2796 -0
- package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -0
- package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -0
- package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -0
- package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -0
- package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -0
- package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -0
- package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -0
- package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -0
- package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -0
- package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -0
- package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -0
- package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -0
- package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -0
- package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -0
- package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -0
- package/esm2022/lib/models/app-toc.model.mjs +38 -0
- package/esm2022/lib/models/auto-complete.model.mjs +2 -0
- package/esm2022/lib/models/card-content.model.mjs +13 -0
- package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -0
- package/esm2022/lib/models/discussion-forum.model.mjs +14 -0
- package/esm2022/lib/models/goal.model.mjs +2 -0
- package/esm2022/lib/models/meta-tag.model.mjs +8 -0
- package/esm2022/lib/models/playlist.model.mjs +2 -0
- package/esm2022/lib/models/profile-revamp.model.mjs +2 -0
- package/esm2022/lib/models/rating.model.mjs +2 -0
- package/esm2022/lib/models/user-profile.model.mjs +21 -0
- package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -0
- package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -0
- package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -0
- package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -0
- package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -0
- package/esm2022/lib/services/access-control.service.mjs +56 -0
- package/esm2022/lib/services/action.service.mjs +23 -0
- package/esm2022/lib/services/app-toc-v2.service.mjs +47 -0
- package/esm2022/lib/services/app-toc.service.mjs +1001 -0
- package/esm2022/lib/services/certificate.service.mjs +69 -0
- package/esm2022/lib/services/discuss-utils.service.mjs +58 -0
- package/esm2022/lib/services/editor.service.mjs +34 -0
- package/esm2022/lib/services/load-check.service.mjs +21 -0
- package/esm2022/lib/services/loader.service.mjs +33 -0
- package/esm2022/lib/services/mobile-apps.service.mjs +67 -0
- package/esm2022/lib/services/netcore.service.mjs +56 -0
- package/esm2022/lib/services/nps-grid.service.mjs +31 -0
- package/esm2022/lib/services/otp.service.mjs +43 -0
- package/esm2022/lib/services/profile-v2.service.mjs +43 -0
- package/esm2022/lib/services/reset-ratings.service.mjs +19 -0
- package/esm2022/lib/services/resource-download-helper.service.mjs +64 -0
- package/esm2022/lib/services/timer.service.mjs +23 -0
- package/esm2022/lib/services/title-tag.service.mjs +71 -0
- package/esm2022/lib/services/user-profile.service.mjs +55 -0
- package/esm2022/lib/services/viewer-data.service.mjs +64 -0
- package/esm2022/lib/services/viewer-util.service.mjs +500 -0
- package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -0
- package/esm2022/lib/share-toc/share-toc.module.mjs +119 -0
- package/esm2022/public-api.mjs +56 -0
- package/esm2022/sunbird-cb-toc.mjs +5 -0
- package/fesm2022/sunbird-cb-toc.mjs +23517 -0
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +17 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +32 -0
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +16 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +21 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +23 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +16 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +23 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +23 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +10 -0
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +12 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +13 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +19 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +15 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +12 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +18 -0
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +15 -0
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +200 -0
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +17 -0
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +11 -0
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +39 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +20 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +12 -0
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +184 -0
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +42 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +55 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +48 -0
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -0
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +92 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +9 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +17 -0
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +41 -0
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +22 -0
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +46 -0
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +11 -0
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +11 -0
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +129 -0
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +52 -0
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +30 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +10 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +8 -0
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +8 -0
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +29 -0
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +25 -0
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +15 -0
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +10 -0
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +13 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +11 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +23 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +9 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +19 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +9 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +17 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +36 -0
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +20 -0
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +15 -0
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +14 -0
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +12 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +12 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +16 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +11 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +17 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +12 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +35 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +18 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +16 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +16 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +22 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +13 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.component.d.ts +22 -0
- package/lib/_collection/_common/user-image/user-image.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.module.d.ts +10 -0
- package/lib/_collection/_common/user-image/user-image.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +48 -0
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +15 -0
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +23 -0
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +20 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +16 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +26 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +22 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +19 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
- package/lib/_collection-api.d.ts +35 -0
- package/lib/_collection-api.d.ts.map +1 -0
- package/lib/_constants/widget-content.constants.d.ts +8 -0
- package/lib/_constants/widget-content.constants.d.ts.map +1 -0
- package/lib/_directives/tooltip.directive.d.ts +18 -0
- package/lib/_directives/tooltip.directive.d.ts.map +1 -0
- package/lib/_models/common.model.d.ts +4 -0
- package/lib/_models/common.model.d.ts.map +1 -0
- package/lib/_models/error.model.d.ts +6 -0
- package/lib/_models/error.model.d.ts.map +1 -0
- package/lib/_pipes/highlight.pipe.d.ts +11 -0
- package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
- package/lib/_services/rating.service.d.ts +19 -0
- package/lib/_services/rating.service.d.ts.map +1 -0
- package/lib/_services/samuhik-charcha.service.d.ts +14 -0
- package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
- package/lib/_services/viewer-route-util.d.ts +9 -0
- package/lib/_services/viewer-route-util.d.ts.map +1 -0
- package/lib/_services/widget-content.model.d.ts +515 -0
- package/lib/_services/widget-content.model.d.ts.map +1 -0
- package/lib/_services/widget-content.service.d.ts +101 -0
- package/lib/_services/widget-content.service.d.ts.map +1 -0
- package/lib/_shared/translate-loader.factory.d.ts +8 -0
- package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
- package/lib/app-toc-lib.module.d.ts +89 -0
- package/lib/app-toc-lib.module.d.ts.map +1 -0
- package/lib/collection.config.d.ts +160 -0
- package/lib/collection.config.d.ts.map +1 -0
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +18 -0
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +1 -0
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +226 -0
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +79 -0
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +23 -0
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +1 -0
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +32 -0
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +1 -0
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +48 -0
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +15 -0
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +1 -0
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +22 -0
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +1 -0
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +315 -0
- package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +386 -0
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +1 -0
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +48 -0
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +1 -0
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +23 -0
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +15 -0
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +1 -0
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +150 -0
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +1 -0
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +43 -0
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +1 -0
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +28 -0
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +1 -0
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +16 -0
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +1 -0
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +196 -0
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +1 -0
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +45 -0
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +1 -0
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +55 -0
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +1 -0
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +19 -0
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +1 -0
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +44 -0
- package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +1 -0
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +21 -0
- package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +1 -0
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +14 -0
- package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +1 -0
- package/lib/models/app-toc-analytics.model.d.ts +153 -0
- package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
- package/lib/models/app-toc.model.d.ts +85 -0
- package/lib/models/app-toc.model.d.ts.map +1 -0
- package/lib/models/auto-complete.model.d.ts +28 -0
- package/lib/models/auto-complete.model.d.ts.map +1 -0
- package/lib/models/card-content.model.d.ts +20 -0
- package/lib/models/card-content.model.d.ts.map +1 -0
- package/lib/models/content-strip-with-tabs.model.d.ts +45 -0
- package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
- package/lib/models/discussion-forum.model.d.ts +41 -0
- package/lib/models/discussion-forum.model.d.ts.map +1 -0
- package/lib/models/goal.model.d.ts +23 -0
- package/lib/models/goal.model.d.ts.map +1 -0
- package/lib/models/meta-tag.model.d.ts +7 -0
- package/lib/models/meta-tag.model.d.ts.map +1 -0
- package/lib/models/playlist.model.d.ts +24 -0
- package/lib/models/playlist.model.d.ts.map +1 -0
- package/lib/models/profile-revamp.model.d.ts +15 -0
- package/lib/models/profile-revamp.model.d.ts.map +1 -0
- package/lib/models/rating.model.d.ts +18 -0
- package/lib/models/rating.model.d.ts.map +1 -0
- package/lib/models/user-profile.model.d.ts +38 -0
- package/lib/models/user-profile.model.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +17 -0
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-resolver.service.d.ts +17 -0
- package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/config-resolver.service.d.ts +12 -0
- package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/profile-resolver.service.d.ts +12 -0
- package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/restricted-features-resolver.service.d.ts +12 -0
- package/lib/resolvers/restricted-features-resolver.service.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +20 -0
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +9 -0
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +9 -0
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +1 -0
- package/lib/services/access-control.service.d.ts +30 -0
- package/lib/services/access-control.service.d.ts.map +1 -0
- package/lib/services/action.service.d.ts +10 -0
- package/lib/services/action.service.d.ts.map +1 -0
- package/lib/services/app-toc-v2.service.d.ts +8 -0
- package/lib/services/app-toc-v2.service.d.ts.map +1 -0
- package/lib/services/app-toc.service.d.ts +131 -0
- package/lib/services/app-toc.service.d.ts.map +1 -0
- package/lib/services/certificate.service.d.ts +43 -0
- package/lib/services/certificate.service.d.ts.map +1 -0
- package/lib/services/discuss-utils.service.d.ts +34 -0
- package/lib/services/discuss-utils.service.d.ts.map +1 -0
- package/lib/services/editor.service.d.ts +18 -0
- package/lib/services/editor.service.d.ts.map +1 -0
- package/lib/services/load-check.service.d.ts +9 -0
- package/lib/services/load-check.service.d.ts.map +1 -0
- package/lib/services/loader.service.d.ts +17 -0
- package/lib/services/loader.service.d.ts.map +1 -0
- package/lib/services/mobile-apps.service.d.ts +39 -0
- package/lib/services/mobile-apps.service.d.ts.map +1 -0
- package/lib/services/netcore.service.d.ts +34 -0
- package/lib/services/netcore.service.d.ts.map +1 -0
- package/lib/services/nps-grid.service.d.ts +16 -0
- package/lib/services/nps-grid.service.d.ts.map +1 -0
- package/lib/services/otp.service.d.ts +21 -0
- package/lib/services/otp.service.d.ts.map +1 -0
- package/lib/services/profile-v2.service.d.ts +21 -0
- package/lib/services/profile-v2.service.d.ts.map +1 -0
- package/lib/services/reset-ratings.service.d.ts +9 -0
- package/lib/services/reset-ratings.service.d.ts.map +1 -0
- package/lib/services/resource-download-helper.service.d.ts +30 -0
- package/lib/services/resource-download-helper.service.d.ts.map +1 -0
- package/lib/services/timer.service.d.ts +10 -0
- package/lib/services/timer.service.d.ts.map +1 -0
- package/lib/services/title-tag.service.d.ts +22 -0
- package/lib/services/title-tag.service.d.ts.map +1 -0
- package/lib/services/user-profile.service.d.ts +25 -0
- package/lib/services/user-profile.service.d.ts.map +1 -0
- package/lib/services/viewer-data.service.d.ts +59 -0
- package/lib/services/viewer-data.service.d.ts.map +1 -0
- package/lib/services/viewer-util.service.d.ts +63 -0
- package/lib/services/viewer-util.service.d.ts.map +1 -0
- package/lib/share-toc/share-toc/share-toc.component.d.ts +57 -0
- package/lib/share-toc/share-toc/share-toc.component.d.ts.map +1 -0
- package/lib/share-toc/share-toc.module.d.ts +33 -0
- package/lib/share-toc/share-toc.module.d.ts.map +1 -0
- package/package.json +36 -0
- package/public-api.d.ts +44 -0
- package/public-api.d.ts.map +1 -0
- package/sunbird-cb-toc.d.ts.map +1 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
//#region (imports)
|
|
2
|
+
import { Component, Inject } from '@angular/core';
|
|
3
|
+
import { MAT_LEGACY_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
4
|
+
import { Validators } from '@angular/forms';
|
|
5
|
+
import * as _ from 'lodash';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/material/legacy-snack-bar";
|
|
8
|
+
import * as i2 from "@angular/material/legacy-dialog";
|
|
9
|
+
import * as i3 from "@angular/forms";
|
|
10
|
+
import * as i4 from "../../services/app-toc.service";
|
|
11
|
+
import * as i5 from "@ngx-translate/core";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@angular/material/icon";
|
|
14
|
+
import * as i8 from "@angular/material/legacy-button";
|
|
15
|
+
import * as i9 from "@angular/material/legacy-progress-spinner";
|
|
16
|
+
import * as i10 from "../survey-form-question/survey-form-question.component";
|
|
17
|
+
import * as i11 from "../survey-form-section/survey-form-section.component";
|
|
18
|
+
//#endregion (imports)
|
|
19
|
+
const EMAIL_PATTERN = /^[a-zA-Z0-9]+[a-zA-Z0-9._-]*[a-zA-Z0-9]+@[a-zA-Z0-9]+([-a-zA-Z0-9]*[a-zA-Z0-9]+)?(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,4}$/;
|
|
20
|
+
const MOBILE_PATTERN = /^[0]?[6789]\d{9}$/;
|
|
21
|
+
export class PublicSurveyFormComponent {
|
|
22
|
+
//#endregion (properties)
|
|
23
|
+
//#region (constructor)
|
|
24
|
+
constructor(snackBar, dialogRef, data, fb, appTocSvc, translate) {
|
|
25
|
+
this.snackBar = snackBar;
|
|
26
|
+
this.dialogRef = dialogRef;
|
|
27
|
+
this.data = data;
|
|
28
|
+
this.fb = fb;
|
|
29
|
+
this.appTocSvc = appTocSvc;
|
|
30
|
+
this.translate = translate;
|
|
31
|
+
//#region (properties)
|
|
32
|
+
this.rating = 0;
|
|
33
|
+
this.stars = Array(5).fill(0);
|
|
34
|
+
this.otherFieldType = [];
|
|
35
|
+
this.selectedOption = false;
|
|
36
|
+
this.surveyId = '';
|
|
37
|
+
this.parentalFields = [];
|
|
38
|
+
this.childFields = [];
|
|
39
|
+
this.surveyFormIsValid = true;
|
|
40
|
+
this.addLoader = 0;
|
|
41
|
+
this.surveyId = data.surveyId;
|
|
42
|
+
if (localStorage.getItem('websiteLanguage')) {
|
|
43
|
+
this.translate.setDefaultLang('en');
|
|
44
|
+
const lang = localStorage.getItem('websiteLanguage');
|
|
45
|
+
this.translate.use(lang);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//#endregion (constructor)
|
|
49
|
+
//#region (initialization)
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
this.getSurveyFormData();
|
|
52
|
+
}
|
|
53
|
+
getSurveyFormData() {
|
|
54
|
+
this.addLoader = this.addLoader + 1;
|
|
55
|
+
this.appTocSvc.getFormByIdPublic(this.surveyId).subscribe((result) => {
|
|
56
|
+
this.addLoader = this.addLoader - 1;
|
|
57
|
+
this.formDetails = {
|
|
58
|
+
title: _.get(result, 'result.response.title', ''),
|
|
59
|
+
fields: _.get(result, 'result.response.fields', []),
|
|
60
|
+
contextType: _.get(result, 'result.response.contextType', 'form'),
|
|
61
|
+
};
|
|
62
|
+
this.buildForm();
|
|
63
|
+
}, (error) => {
|
|
64
|
+
if (error) {
|
|
65
|
+
this.addLoader = this.addLoader - 1;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
buildForm() {
|
|
70
|
+
if (this.formDetails) {
|
|
71
|
+
this.surveyForm = this.fb.group({
|
|
72
|
+
fields: this.fb.array([])
|
|
73
|
+
});
|
|
74
|
+
const questionsArray = this.questionsArray;
|
|
75
|
+
if (this.formDetails.fields) {
|
|
76
|
+
this.formDetails.fields.forEach((field) => {
|
|
77
|
+
if (field.fieldType !== 'separator' && field.fieldType !== 'heading') {
|
|
78
|
+
const validatorsArray = [];
|
|
79
|
+
if (field.isRequired) {
|
|
80
|
+
validatorsArray.push(Validators.required);
|
|
81
|
+
}
|
|
82
|
+
switch (field.fieldType) {
|
|
83
|
+
case 'phone number':
|
|
84
|
+
validatorsArray.push(Validators.pattern(MOBILE_PATTERN));
|
|
85
|
+
validatorsArray.push(Validators.minLength(10));
|
|
86
|
+
validatorsArray.push(Validators.maxLength(10));
|
|
87
|
+
break;
|
|
88
|
+
case 'email':
|
|
89
|
+
validatorsArray.push(Validators.pattern(EMAIL_PATTERN));
|
|
90
|
+
break;
|
|
91
|
+
case 'numeric':
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
const questionGroup = this.fb.group({
|
|
95
|
+
question: [field.name],
|
|
96
|
+
parentId: [field.parentId],
|
|
97
|
+
questionIndex: [questionsArray.length],
|
|
98
|
+
fieldType: [field.fieldType],
|
|
99
|
+
answer: ['', validatorsArray],
|
|
100
|
+
isNA: [false],
|
|
101
|
+
questionId: [field.id]
|
|
102
|
+
});
|
|
103
|
+
field['controlIndex'] = questionsArray.length;
|
|
104
|
+
field['validatorsArray'] = validatorsArray;
|
|
105
|
+
questionsArray.push(questionGroup);
|
|
106
|
+
if (validatorsArray.length) {
|
|
107
|
+
this.surveyFormIsValid = false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (field.parentId) {
|
|
111
|
+
this.childFields.push(field);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.parentalFields.push(field);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
get questionsArray() {
|
|
121
|
+
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
122
|
+
return this.surveyForm.controls.fields;
|
|
123
|
+
}
|
|
124
|
+
return this.fb.array([]);
|
|
125
|
+
}
|
|
126
|
+
//#endregion (initialization)
|
|
127
|
+
//#region (UI Interactions)
|
|
128
|
+
getChildQuestionsFormArray(sectionId) {
|
|
129
|
+
if (this.surveyForm && this.surveyForm.controls.fields) {
|
|
130
|
+
const questionsArray = this.questionsArray;
|
|
131
|
+
const childQuestionsArray = questionsArray.controls.filter((question) => {
|
|
132
|
+
return question.value && question.value.parentId === sectionId;
|
|
133
|
+
});
|
|
134
|
+
if (childQuestionsArray.length > 0) {
|
|
135
|
+
return this.fb.array(childQuestionsArray);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return this.fb.array([]);
|
|
139
|
+
}
|
|
140
|
+
getChildFields(sectionId) {
|
|
141
|
+
let sectionChilds = [];
|
|
142
|
+
if (this.childFields) {
|
|
143
|
+
sectionChilds = this.childFields.filter((field) => field.parentId === sectionId);
|
|
144
|
+
}
|
|
145
|
+
return sectionChilds;
|
|
146
|
+
}
|
|
147
|
+
getQuestionControl(index) {
|
|
148
|
+
if (this.questionsArray.controls[index]) {
|
|
149
|
+
return this.questionsArray.controls[index];
|
|
150
|
+
}
|
|
151
|
+
return this.fb.group({});
|
|
152
|
+
}
|
|
153
|
+
getEmailFromsurvey() {
|
|
154
|
+
const answerObj = this.dataObject.find((a) => a.question && a.question.toLowerCase() === 'email');
|
|
155
|
+
return answerObj ? answerObj.answer : '';
|
|
156
|
+
}
|
|
157
|
+
submitForm() {
|
|
158
|
+
console.log('dataObject', this.dataObject);
|
|
159
|
+
this.surveyForm.markAllAsTouched();
|
|
160
|
+
this.surveyForm.updateValueAndValidity();
|
|
161
|
+
if (this.surveyFormIsValid) {
|
|
162
|
+
const formBody = {
|
|
163
|
+
formId: this.surveyId,
|
|
164
|
+
version: 4,
|
|
165
|
+
status: 'SUBMITTED',
|
|
166
|
+
responses: this.dataObject,
|
|
167
|
+
contextId: _.get(this.data, 'courseId'),
|
|
168
|
+
contextType: _.get(this.formDetails, 'contextType', ''),
|
|
169
|
+
contextName: _.get(this.data, 'courseName', ''),
|
|
170
|
+
emailId: this.getEmailFromsurvey(),
|
|
171
|
+
contextOrgId: _.get(this.data, 'contextOrgId'),
|
|
172
|
+
};
|
|
173
|
+
// Remove existing survey data from local storage if present
|
|
174
|
+
const storageKey = `survey_${this.surveyId}_${_.get(this.data, 'courseId')}`;
|
|
175
|
+
if (localStorage.getItem(storageKey)) {
|
|
176
|
+
localStorage.removeItem(storageKey);
|
|
177
|
+
}
|
|
178
|
+
// Store fresh dataObject in local storage
|
|
179
|
+
localStorage.setItem(storageKey, JSON.stringify(this.dataObject));
|
|
180
|
+
this.addLoader = this.addLoader + 1;
|
|
181
|
+
this.appTocSvc.submitFormPublic(formBody).subscribe({
|
|
182
|
+
next: res => {
|
|
183
|
+
this.addLoader = this.addLoader - 1;
|
|
184
|
+
if (_.get(res, 'params.status') === 'success') {
|
|
185
|
+
this.openSnackbar('Form is submitted successfully');
|
|
186
|
+
this.dialogRef.close(true);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
this.openSnackbar(_.get(res, 'errorMessage', 'Something went wrong please try again'));
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
error: (error) => {
|
|
193
|
+
this.addLoader = this.addLoader - 1;
|
|
194
|
+
if (error) {
|
|
195
|
+
this.openSnackbar('Something went wrong please try again');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//#region (data processing)
|
|
202
|
+
get dataObject() {
|
|
203
|
+
const dataObject = [];
|
|
204
|
+
const fields = _.get(this.surveyForm, 'value.fields', []);
|
|
205
|
+
if (fields) {
|
|
206
|
+
fields.forEach((field) => {
|
|
207
|
+
let value = field.isNA ? 'N/A' : field.answer;
|
|
208
|
+
if (!field.isNA && field.fieldType === 'date' && value) {
|
|
209
|
+
const formattedYear = value.getFullYear();
|
|
210
|
+
const formattedMonth = String(value.getMonth() + 1).padStart(2, '0');
|
|
211
|
+
const formattedDay = String(value.getDate()).padStart(2, '0');
|
|
212
|
+
value = `${formattedYear}-${formattedMonth}-${formattedDay}`;
|
|
213
|
+
}
|
|
214
|
+
dataObject.push({
|
|
215
|
+
questionId: field.questionId,
|
|
216
|
+
question: field.question,
|
|
217
|
+
answer: value,
|
|
218
|
+
answerType: field.fieldType
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return dataObject;
|
|
223
|
+
}
|
|
224
|
+
closeDialog() {
|
|
225
|
+
this.dialogRef.close(false);
|
|
226
|
+
}
|
|
227
|
+
//#endregion (data processing)
|
|
228
|
+
updateQuestionValues(event) {
|
|
229
|
+
this.questionsArray.value[event.questionIndex] = event;
|
|
230
|
+
this.updateSurveyFormValidity();
|
|
231
|
+
}
|
|
232
|
+
updateSurveyFormValidity() {
|
|
233
|
+
this.surveyFormIsValid = true;
|
|
234
|
+
this.questionsArray.controls.forEach((form) => {
|
|
235
|
+
if (!form.controls.answer.valid) {
|
|
236
|
+
this.surveyFormIsValid = false;
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
//#endregion (UI Interactions)
|
|
241
|
+
openSnackbar(primaryMsg, duration = 5000) {
|
|
242
|
+
this.snackBar.open(primaryMsg, 'X', {
|
|
243
|
+
duration,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublicSurveyFormComponent, deps: [{ token: i1.MatLegacySnackBar }, { token: i2.MatLegacyDialogRef }, { token: MAT_LEGACY_DIALOG_DATA }, { token: i3.FormBuilder }, { token: i4.AppTocService }, { token: i5.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PublicSurveyFormComponent, selector: "ws-app-public-survey-form", ngImport: i0, template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.SurveyFormQuestionComponent, selector: "ws-app-survey-form-question", inputs: ["questionForm", "fieldDetails"], outputs: ["questionValues"] }, { kind: "component", type: i11.SurveyFormSectionComponent, selector: "ws-app-survey-form-section", inputs: ["childQuestionsFormArray", "childFields", "sectionField"], outputs: ["questionValues"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
|
|
248
|
+
}
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PublicSurveyFormComponent, decorators: [{
|
|
250
|
+
type: Component,
|
|
251
|
+
args: [{ selector: 'ws-app-public-survey-form', template: "<div class=\"preview-container\">\n <div class=\"form-header flex\">\n <div class=\"flex flex-1 justify-start items-center\">\n <div>{{'apptoc.AGKCaseStudySurveyForm' | translate}} </div>\n </div>\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"false\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n </div>\n <div class=\"form-content\">\n <ng-container *ngIf=\"surveyForm\">\n <form [formGroup]=\"surveyForm\">\n <ng-container *ngFor=\"let parentField of parentalFields\">\n <ng-container [ngSwitch]=\"parentField.fieldType\">\n <ng-container *ngSwitchCase=\"'heading'\">\n <ws-app-survey-form-section [childFields]=\"getChildFields(parentField.sectionId)\"\n [sectionField]=\"parentField\"\n [childQuestionsFormArray]=\"getChildQuestionsFormArray(parentField.sectionId)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-section>\n </ng-container>\n <ng-container *ngSwitchCase=\"'separator'\">\n <hr class=\"opacity-50 elment-separator\">\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ws-app-survey-form-question [fieldDetails]=\"parentField\"\n [questionForm]=\"getQuestionControl(parentField.controlIndex)\"\n (questionValues)=\"updateQuestionValues($event)\"></ws-app-survey-form-question>\n </ng-container>\n </ng-container>\n </ng-container>\n <div class=\"flex justify-end m-4\">\n <!-- <button mat-button class=\"do-later-btn\" (click)=\"closeDialog()\">{{'apptoc.doItLater' | translate}}</button> -->\n <button mat-button class=\"submit-btn\" [disabled]=\"!surveyFormIsValid\" (click)=\"submitForm()\">{{'apptoc.submit'\n | translate}}</button>\n </div>\n </form>\n </ng-container>\n </div>\n</div>\n\n<ng-container *ngIf=\"addLoader > 0\">\n <div class=\"text-center my-2 loader flex justify-center items-center\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n</ng-container>", styles: [".preview-container{max-height:700px}.preview-container .form-content{background:#f4f8ff}.preview-container .form-header{font-family:Montserrat;font-size:24px;font-weight:600;line-height:29.26px;text-align:center;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;padding:15px 24px;border-bottom:1px solid #c3c3c3}.preview-container .q-element{padding:16px;background:#fff;border-radius:8px}.preview-container .form-content{padding:15px 24px}.preview-container .elment-separator{margin:16px 0}.preview-container .feedback-text{color:#1b4ca1;font:400 16px/20px Lato}.do-later-btn{height:40px;color:#1b4ca1!important;background-color:#fff!important;border-radius:20px;border:1px solid #1b4ca1!important;margin-right:10px}.submit-btn{height:40px;color:#fff!important;background-color:#1b4ca1!important;border-radius:20px}.submit-btn:disabled{opacity:.6!important}.loader{position:absolute;top:0;left:0;z-index:1000;height:100vh;width:100vw;background-color:#80808045}.info-icon{color:#d13924;font-size:20px;height:20px;width:26px;margin-top:2px}.close-button{height:30px;width:30px;line-height:24px;background:#00000040!important;color:#fff!important;align-self:end;margin-right:-24px}\n"] }]
|
|
252
|
+
}], ctorParameters: function () { return [{ type: i1.MatLegacySnackBar }, { type: i2.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
253
|
+
type: Inject,
|
|
254
|
+
args: [MAT_LEGACY_DIALOG_DATA]
|
|
255
|
+
}] }, { type: i3.FormBuilder }, { type: i4.AppTocService }, { type: i5.TranslateService }]; } });
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9jb21wb25lbnRzL3B1YmxpYy1zdXJ2ZXktZm9ybS9wdWJsaWMtc3VydmV5LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljLXN1cnZleS1mb3JtL3B1YmxpYy1zdXJ2ZXktZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUI7QUFDbkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFFekQsT0FBTyxFQUFFLHNCQUFzQixFQUFzQixNQUFNLGlDQUFpQyxDQUFBO0FBQzVGLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDOUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFJM0Isc0JBQXNCO0FBRXRCLE1BQU0sYUFBYSxHQUFHLHFIQUFxSCxDQUFBO0FBQzNJLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFBO0FBTzFDLE1BQU0sT0FBTyx5QkFBeUI7SUFjcEMseUJBQXlCO0lBRXpCLHVCQUF1QjtJQUN2QixZQUNVLFFBQTJCLEVBQzVCLFNBQXdELEVBQ3hCLElBQVMsRUFDeEMsRUFBZSxFQUNmLFNBQXdCLEVBQ3hCLFNBQTJCO1FBTDNCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQStDO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDeEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7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LFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsOEJBQThCO0lBRXRCLFlBQVksQ0FBQyxVQUFrQixFQUFFLFdBQW1CLElBQUk7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNsQyxRQUFRO1NBQ1QsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExUFUseUJBQXlCLHFGQW9CMUIsc0JBQXNCO21HQXBCckIseUJBQXlCLGlFQ25CdEMscXBFQTRDZTs7NEZEekJGLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQXdCbEMsTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gKGltcG9ydHMpXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcbmltcG9ydCB7IE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgQXBwVG9jU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC10b2Muc2VydmljZSdcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbi8vI2VuZHJlZ2lvbiAoaW1wb3J0cylcblxuY29uc3QgRU1BSUxfUEFUVEVSTiA9IC9eW2EtekEtWjAtOV0rW2EtekEtWjAtOS5fLV0qW2EtekEtWjAtOV0rQFthLXpBLVowLTldKyhbLWEtekEtWjAtOV0qW2EtekEtWjAtOV0rKT8oXFwuW2EtekEtWjAtOS1dKykqXFwuW2EtekEtWl17Miw0fSQvXG5jb25zdCBNT0JJTEVfUEFUVEVSTiA9IC9eWzBdP1s2Nzg5XVxcZHs5fSQvXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLWFwcC1wdWJsaWMtc3VydmV5LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHVibGljLXN1cnZleS1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHVibGljU3VydmV5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8jcmVnaW9uIChwcm9wZXJ0aWVzKVxuICByYXRpbmcgPSAwXG4gIHN0YXJzID0gQXJyYXkoNSkuZmlsbCgwKVxuICBvdGhlckZpZWxkVHlwZTogYW55ID0gW11cbiAgc2VsZWN0ZWRPcHRpb24gPSBmYWxzZVxuICBmb3JtRGV0YWlsczogYW55XG4gIHN1cnZleUlkID0gJydcbiAgc3VydmV5Rm9ybSE6IEZvcm1Hcm91cFxuICBwYXJlbnRhbEZpZWxkczogYW55W10gPSBbXVxuICBjaGlsZEZpZWxkczogYW55W10gPSBbXVxuICBzdXJ2ZXlGb3JtSXNWYWxpZCA9IHRydWVcbiAgYWRkTG9hZGVyID0gMFxuICAvLyNlbmRyZWdpb24gKHByb3BlcnRpZXMpXG5cbiAgLy8jcmVnaW9uIChjb25zdHJ1Y3RvcilcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0TGVnYWN5U25hY2tCYXIsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0TGVnYWN5RGlhbG9nUmVmPFB1YmxpY1N1cnZleUZvcm1Db21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0xFR0FDWV9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGFwcFRvY1N2YzogQXBwVG9jU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcblxuICApIHtcbiAgICB0aGlzLnN1cnZleUlkID0gZGF0YS5zdXJ2ZXlJZFxuICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdlbicpXG4gICAgICBjb25zdCBsYW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dlYnNpdGVMYW5ndWFnZScpIVxuICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgfVxuICB9XG4gIC8vI2VuZHJlZ2lvbiAoY29uc3RydWN0b3IpXG5cblxuICAvLyNyZWdpb24gKGluaXRpYWxpemF0aW9uKVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN1cnZleUZvcm1EYXRhKClcbiAgfVxuXG4gIGdldFN1cnZleUZvcm1EYXRhKCkge1xuICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgKyAxXG4gICAgdGhpcy5hcHBUb2NTdmMuZ2V0Rm9ybUJ5SWRQdWJsaWModGhpcy5zdXJ2ZXlJZCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5hZGRMb2FkZXIgPSB0aGlzLmFkZExvYWRlciAtIDFcbiAgICAgIHRoaXMuZm9ybURldGFpbHMgPSB7XG4gICAgICAgIHRpdGxlOiBfLmdldChyZXN1bHQsICdyZXN1bHQucmVzcG9uc2UudGl0bGUnLCAnJyksXG4gICAgICAgIGZpZWxkczogXy5nZXQocmVzdWx0LCAncmVzdWx0LnJlc3BvbnNlLmZpZWxkcycsIFtdKSxcbiAgICAgICAgY29udGV4dFR5cGU6IF8uZ2V0KHJlc3VsdCwgJ3Jlc3VsdC5yZXNwb25zZS5jb250ZXh0VHlwZScsICdmb3JtJyksXG4gICAgICB9XG4gICAgICB0aGlzLmJ1aWxkRm9ybSgpXG4gICAgfSwgKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHRoaXMuYWRkTG9hZGVyID0gdGhpcy5hZGRMb2FkZXIgLSAxXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGJ1aWxkRm9ybSgpIHtcbiAgICBpZiAodGhpcy5mb3JtRGV0YWlscykge1xuICAgICAgdGhpcy5zdXJ2ZXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGZpZWxkczogdGhpcy5mYi5hcnJheShbXSlcbiAgICAgIH0pXG4gICAgICBjb25zdCBxdWVzdGlvbnNBcnJheSA9IHRoaXMucXVlc3Rpb25zQXJyYXlcbiAgICAgIGlmICh0aGlzLmZvcm1EZXRhaWxzLmZpZWxkcykge1xuICAgICAgICB0aGlzLmZvcm1EZXRhaWxzLmZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkVHlwZSAhPT0gJ3NlcGFyYXRvcicgJiYgZmllbGQuZmllbGRUeXBlICE9PSAnaGVhZGluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnNBcnJheTogYW55ID0gW11cbiAgICAgICAgICAgIGlmIChmaWVsZC5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAoZmllbGQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bob25lIG51bWJlcic6XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKE1PQklMRV9QQVRURVJOKSlcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMCkpXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oRU1BSUxfUEFUVEVSTikpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgY2FzZSAnbnVtZXJpYyc6XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgICBxdWVzdGlvbjogW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgICBwYXJlbnRJZDogW2ZpZWxkLnBhcmVudElkXSxcbiAgICAgICAgICAgICAgcXVlc3Rpb25JbmRleDogW3F1ZXN0aW9uc0FycmF5Lmxlbmd0aF0sXG4gICAgICAgICAgICAgIGZpZWxkVHlwZTogW2ZpZWxkLmZpZWxkVHlwZV0sXG4gICAgICAgICAgICAgIGFuc3dlcjogWycnLCB2YWxpZGF0b3JzQXJyYXldLFxuICAgICAgICAgICAgICBpc05BOiBbZmFsc2VdLFxuICAgICAgICAgICAgICBxdWVzdGlvbklkOiBbZmllbGQuaWRdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgZmllbGRbJ2NvbnRyb2xJbmRleCddID0gcXVlc3Rpb25zQXJyYXkubGVuZ3RoXG4gICAgICAgICAgICBmaWVsZFsndmFsaWRhdG9yc0FycmF5J10gPSB2YWxpZGF0b3JzQXJyYXlcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2gocXVlc3Rpb25Hcm91cClcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3JzQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC5wYXJlbnRJZCkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZEZpZWxkcy5wdXNoKGZpZWxkKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudGFsRmllbGRzLnB1c2goZmllbGQpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBxdWVzdGlvbnNBcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIGlmICh0aGlzLnN1cnZleUZvcm0gJiYgdGhpcy5zdXJ2ZXlGb3JtLmNvbnRyb2xzLmZpZWxkcykge1xuICAgICAgcmV0dXJuIHRoaXMuc3VydmV5Rm9ybS5jb250cm9scy5maWVsZHMgYXMgRm9ybUFycmF5XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KFtdKVxuICB9XG4gIC8vI2VuZHJlZ2lvbiAoaW5pdGlhbGl6YXRpb24pXG5cbiAgLy8jcmVnaW9uIChVSSBJbnRlcmFjdGlvbnMpXG4gIGdldENoaWxkUXVlc3Rpb25zRm9ybUFycmF5KHNlY3Rpb25JZDogc3RyaW5nKTogRm9ybUFycmF5IHtcbiAgICBpZiAodGhpcy5zdXJ2ZXlGb3JtICYmIHRoaXMuc3VydmV5Rm9ybS5jb250cm9scy5maWVsZHMpIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uc0FycmF5ID0gdGhpcy5xdWVzdGlvbnNBcnJheVxuICAgICAgY29uc3QgY2hpbGRRdWVzdGlvbnNBcnJheSA9IHF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzLmZpbHRlcigocXVlc3Rpb246IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gcXVlc3Rpb24udmFsdWUgJiYgcXVlc3Rpb24udmFsdWUucGFyZW50SWQgPT09IHNlY3Rpb25JZFxuICAgICAgfSlcblxuICAgICAgaWYgKGNoaWxkUXVlc3Rpb25zQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5hcnJheShjaGlsZFF1ZXN0aW9uc0FycmF5KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShbXSkgYXMgRm9ybUFycmF5XG4gIH1cblxuICBnZXRDaGlsZEZpZWxkcyhzZWN0aW9uSWQ6IHN0cmluZykge1xuICAgIGxldCBzZWN0aW9uQ2hpbGRzOiBhbnkgPSBbXVxuICAgIGlmICh0aGlzLmNoaWxkRmllbGRzKSB7XG4gICAgICBzZWN0aW9uQ2hpbGRzID0gdGhpcy5jaGlsZEZpZWxkcy5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLnBhcmVudElkID09PSBzZWN0aW9uSWQpXG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9uQ2hpbGRzXG4gIH1cblxuICBnZXRRdWVzdGlvbkNvbnRyb2woaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uc0FycmF5LmNvbnRyb2xzW2luZGV4XSkge1xuICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb25zQXJyYXkuY29udHJvbHNbaW5kZXhdXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHt9KVxuICB9XG5cbiAgZ2V0RW1haWxGcm9tc3VydmV5KCkge1xuICAgIGNvbnN0IGFuc3dlck9iaiA9IHRoaXMuZGF0YU9iamVjdC5maW5kKChhOiBhbnkpID0+IGEucXVlc3Rpb24gJiYgYS5xdWVzdGlvbi50b0xvd2VyQ2FzZSgpID09PSAnZW1haWwnKVxuICAgIHJldHVybiBhbnN3ZXJPYmogPyBhbnN3ZXJPYmouYW5zd2VyIDogJydcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oKSB7XG4gICAgY29uc29sZS5sb2coJ2RhdGFPYmplY3QnLCB0aGlzLmRhdGFPYmplY3QpXG4gICAgdGhpcy5zdXJ2ZXlGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIHRoaXMuc3VydmV5Rm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcbiAgICBpZiAodGhpcy5zdXJ2ZXlGb3JtSXNWYWxpZCkge1xuICAgICAgY29uc3QgZm9ybUJvZHk6IGFueSA9IHtcbiAgICAgICAgZm9ybUlkOiB0aGlzLnN1cnZleUlkLFxuICAgICAgICB2ZXJzaW9uOiA0LFxuICAgICAgICBzdGF0dXM6ICdTVUJNSVRURUQnLFxuICAgICAgICByZXNwb25zZXM6IHRoaXMuZGF0YU9iamVjdCxcbiAgICAgICAgY29udGV4dElkOiBfLmdldCh0aGlzLmRhdGEsICdjb3Vyc2VJZCcpLFxuICAgICAgICBjb250ZXh0VHlwZTogXy5nZXQodGhpcy5mb3JtRGV0YWlscywgJ2NvbnRleHRUeXBlJywgJycpLFxuICAgICAgICBjb250ZXh0TmFtZTogXy5nZXQodGhpcy5kYXRhLCAnY291cnNlTmFtZScsICcnKSxcbiAgICAgICAgZW1haWxJZDogdGhpcy5nZXRFbWFpbEZyb21zdXJ2ZXkoKSxcbiAgICAgICAgY29udGV4dE9yZ0lkOiBfLmdldCh0aGlzLmRhdGEsICdjb250ZXh0T3JnSWQnKSxcbiAgICAgIH1cblxuICAgICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHN1cnZleSBkYXRhIGZyb20gbG9jYWwgc3RvcmFnZSBpZiBwcmVzZW50XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gYHN1cnZleV8ke3RoaXMuc3VydmV5SWR9XyR7Xy5nZXQodGhpcy5kYXRhLCAnY291cnNlSWQnKX1gXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSkpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleSlcbiAgICAgIH1cblxuICAgICAgLy8gU3RvcmUgZnJlc2ggZGF0YU9iamVjdCBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxuXG4gICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyICsgMVxuICAgICAgdGhpcy5hcHBUb2NTdmMuc3VibWl0Rm9ybVB1YmxpYyhmb3JtQm9keSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChfLmdldChyZXMsICdwYXJhbXMuc3RhdHVzJykgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ0Zvcm0gaXMgc3VibWl0dGVkIHN1Y2Nlc3NmdWxseScpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5TbmFja2JhcihfLmdldChyZXMsICdlcnJvck1lc3NhZ2UnLCAnU29tZXRoaW5nIHdlbnQgd3JvbmcgcGxlYXNlIHRyeSBhZ2FpbicpKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmFkZExvYWRlciA9IHRoaXMuYWRkTG9hZGVyIC0gMVxuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHBsZWFzZSB0cnkgYWdhaW4nKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gKGRhdGEgcHJvY2Vzc2luZylcbiAgZ2V0IGRhdGFPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCBkYXRhT2JqZWN0OiBhbnkgPSBbXVxuICAgIGNvbnN0IGZpZWxkcyA9IF8uZ2V0KHRoaXMuc3VydmV5Rm9ybSwgJ3ZhbHVlLmZpZWxkcycsIFtdKVxuICAgIGlmIChmaWVsZHMpIHtcbiAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGZpZWxkLmlzTkEgPyAnTi9BJyA6IGZpZWxkLmFuc3dlclxuICAgICAgICBpZiAoIWZpZWxkLmlzTkEgJiYgZmllbGQuZmllbGRUeXBlID09PSAnZGF0ZScgJiYgdmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRZZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKVxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE1vbnRoID0gU3RyaW5nKHZhbHVlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkRGF5ID0gU3RyaW5nKHZhbHVlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKVxuICAgICAgICAgIHZhbHVlID0gYCR7Zm9ybWF0dGVkWWVhcn0tJHtmb3JtYXR0ZWRNb250aH0tJHtmb3JtYXR0ZWREYXl9YFxuICAgICAgICB9XG4gICAgICAgIGRhdGFPYmplY3QucHVzaCh7XG4gICAgICAgICAgcXVlc3Rpb25JZDogZmllbGQucXVlc3Rpb25JZCxcbiAgICAgICAgICBxdWVzdGlvbjogZmllbGQucXVlc3Rpb24sXG4gICAgICAgICAgYW5zd2VyOiB2YWx1ZSxcbiAgICAgICAgICBhbnN3ZXJUeXBlOiBmaWVsZC5maWVsZFR5cGVcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBkYXRhT2JqZWN0XG4gIH1cblxuICBjbG9zZURpYWxvZygpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSlcbiAgfVxuICAvLyNlbmRyZWdpb24gKGRhdGEgcHJvY2Vzc2luZylcblxuICB1cGRhdGVRdWVzdGlvblZhbHVlcyhldmVudDogYW55KSB7XG4gICAgdGhpcy5xdWVzdGlvbnNBcnJheS52YWx1ZVtldmVudC5xdWVzdGlvbkluZGV4XSA9IGV2ZW50XG4gICAgdGhpcy51cGRhdGVTdXJ2ZXlGb3JtVmFsaWRpdHkoKVxuICB9XG5cbiAgdXBkYXRlU3VydmV5Rm9ybVZhbGlkaXR5KCkgeyAvLyBzb21lIHRpbWVzIHJlYWN0aXZlIGZvcm1zIG5vdCBhYmFsZSB0byBkZXRlY3QgdmFsdWUgY2hhbmdlcyBhbmQgdmFsaWRpdHkgaW4gZHluYW1pYyBmb3JtQXJyYXlcbiAgICB0aGlzLnN1cnZleUZvcm1Jc1ZhbGlkID0gdHJ1ZVxuICAgIHRoaXMucXVlc3Rpb25zQXJyYXkuY29udHJvbHMuZm9yRWFjaCgoZm9ybTogYW55KSA9PiB7XG4gICAgICBpZiAoIWZvcm0uY29udHJvbHMuYW5zd2VyLnZhbGlkKSB7XG4gICAgICAgIHRoaXMuc3VydmV5Rm9ybUlzVmFsaWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLy8jZW5kcmVnaW9uIChVSSBJbnRlcmFjdGlvbnMpXG5cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwcmV2aWV3LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXIgZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBqdXN0aWZ5LXN0YXJ0IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdj57eydhcHB0b2MuQUdLQ2FzZVN0dWR5U3VydmV5Rm9ybScgfCB0cmFuc2xhdGV9fSA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uXCIgY29sb3I9XCJ3YXJuXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdXJ2ZXlGb3JtXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInN1cnZleUZvcm1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFyZW50RmllbGQgb2YgcGFyZW50YWxGaWVsZHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJwYXJlbnRGaWVsZC5maWVsZFR5cGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidoZWFkaW5nJ1wiPlxuICAgICAgICAgICAgICA8d3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24gW2NoaWxkRmllbGRzXT1cImdldENoaWxkRmllbGRzKHBhcmVudEZpZWxkLnNlY3Rpb25JZClcIlxuICAgICAgICAgICAgICAgIFtzZWN0aW9uRmllbGRdPVwicGFyZW50RmllbGRcIlxuICAgICAgICAgICAgICAgIFtjaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheV09XCJnZXRDaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheShwYXJlbnRGaWVsZC5zZWN0aW9uSWQpXCJcbiAgICAgICAgICAgICAgICAocXVlc3Rpb25WYWx1ZXMpPVwidXBkYXRlUXVlc3Rpb25WYWx1ZXMoJGV2ZW50KVwiPjwvd3MtYXBwLXN1cnZleS1mb3JtLXNlY3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZXBhcmF0b3InXCI+XG4gICAgICAgICAgICAgIDxociBjbGFzcz1cIm9wYWNpdHktNTAgZWxtZW50LXNlcGFyYXRvclwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24gW2ZpZWxkRGV0YWlsc109XCJwYXJlbnRGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3F1ZXN0aW9uRm9ybV09XCJnZXRRdWVzdGlvbkNvbnRyb2wocGFyZW50RmllbGQuY29udHJvbEluZGV4KVwiXG4gICAgICAgICAgICAgICAgKHF1ZXN0aW9uVmFsdWVzKT1cInVwZGF0ZVF1ZXN0aW9uVmFsdWVzKCRldmVudClcIj48L3dzLWFwcC1zdXJ2ZXktZm9ybS1xdWVzdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgbS00XCI+XG4gICAgICAgICAgPCEtLSA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJkby1sYXRlci1idG5cIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPnt7J2FwcHRvYy5kb0l0TGF0ZXInIHwgdHJhbnNsYXRlfX08L2J1dHRvbj4gLS0+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwic3VibWl0LWJ0blwiIFtkaXNhYmxlZF09XCIhc3VydmV5Rm9ybUlzVmFsaWRcIiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCI+e3snYXBwdG9jLnN1Ym1pdCdcbiAgICAgICAgICAgIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRMb2FkZXIgPiAwXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBteS0yIGxvYWRlciBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImlubGluZS1ibG9ja1wiPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -0,0 +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
|
|
@@ -0,0 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS1zZWN0aW9uL3N1cnZleS1mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvc3VydmV5LWZvcm0tc2VjdGlvbi9zdXJ2ZXktZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQWFZLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtLQWU5QztJQWJDLFFBQVEsQ0FBQyxhQUFxQjtRQUM1QixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDZCxJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLENBQUE7WUFDMUcsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7U0FDeEM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLENBQUM7K0dBbkJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLCtQQ1p2Qyx5cUJBYVEsd1ZETEksMkJBQTJCLDhJQUFFLFlBQVk7OzRGQUl4QywwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLFlBQVksQ0FBQzs4QkFNM0MsdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleUZvcm1RdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1cnZleS1mb3JtLXF1ZXN0aW9uL3N1cnZleS1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtc3VydmV5LWZvcm0tc2VjdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTdXJ2ZXlGb3JtUXVlc3Rpb25Db21wb25lbnQsIENvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWZvcm0tc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1TZWN0aW9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBjaGlsZFF1ZXN0aW9uc0Zvcm1BcnJheSE6IEZvcm1BcnJheVxuICBASW5wdXQoKSBjaGlsZEZpZWxkczogYW55XG4gIEBJbnB1dCgpIHNlY3Rpb25GaWVsZDogYW55XG5cbiAgQE91dHB1dCgpIHF1ZXN0aW9uVmFsdWVzID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgZ2V0RmllbGQocXVlc3Rpb25JbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IGZpZWxkID0ge31cbiAgICBpZih0aGlzLmNoaWxkRmllbGRzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJMaXN0ID0gdGhpcy5jaGlsZEZpZWxkcy5maWx0ZXIoKGNoaWxkRmllbGQ6IGFueSkgPT4gY2hpbGRGaWVsZC5jb250cm9sSW5kZXggPT09IHF1ZXN0aW9uSW5kZXgpXG4gICAgICBmaWVsZCA9IGZpbHRlckxpc3QgPyBmaWx0ZXJMaXN0WzBdIDoge31cbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkXG4gIH1cblxuICB1cGRhdGVRdWVzdGlvblZhbHVlcyhldmVudDogYW55KSB7XG4gICAgdGhpcy5xdWVzdGlvblZhbHVlcy5lbWl0KGV2ZW50KVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uLXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlxuICAgICAge3tzZWN0aW9uRmllbGQ/LnZhbHVlc1swXT8uaGVhZGluZ319XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZGVzYyB0ZXh0LXhzIGZvbnQtbm9ybWFsIHB0LTJcIj57e3NlY3Rpb25GaWVsZD8udmFsdWVzWzBdPy5zdWJIZWFkaW5nfX08L2Rpdj5cbiAgICA8aHIgY2xhc3M9XCJvcGFjaXR5LTUwIG1iLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jb250ZW50IHB0LTVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVlc3Rpb25Gb3JtIG9mIGNoaWxkUXVlc3Rpb25zRm9ybUFycmF5Py5jb250cm9sc1wiPlxuICAgICAgICAgIDx3cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24gW3F1ZXN0aW9uRm9ybV09XCJxdWVzdGlvbkZvcm1cIlxuICAgICAgICAgICBbZmllbGREZXRhaWxzXT1cImdldEZpZWxkKHF1ZXN0aW9uRm9ybS52YWx1ZS5xdWVzdGlvbkluZGV4KVwiXG4gICAgICAgICAgIChxdWVzdGlvblZhbHVlcyk9XCJ1cGRhdGVRdWVzdGlvblZhbHVlcygkZXZlbnQpXCI+PC93cy1hcHAtc3VydmV5LWZvcm0tcXVlc3Rpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1hbmFseXRpY3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvbW9kZWxzL2FwcC10b2MtYW5hbHl0aWNzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbmFtZXNwYWNlIE5zQW5hbHl0aWNzIHtcbiAgZXhwb3J0IGludGVyZmFjZSBJQW5hbHl0aWNzUmVzcG9uc2Uge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBpbmRleGVkT246IHN0cmluZ1xuICAgIHVwZGF0ZWRPbjogc3RyaW5nXG4gICAgZGV2aWNlczogSU9ialBhaXJbXVxuICAgIHRyYWluaW5nSG91cnM6IG51bWJlclxuICAgIHVuaXF1ZVBhcnRpY2lwYW50czogSUFjdGl2aXR5T2JqW11cbiAgICBsZXhfY291cnNlOiBJQ291cnNlT2JqXG4gICAgbGV4X2NvbGxlY3Rpb246IElDb3Vyc2VPYmpcbiAgICBsZXhfcHJvZ3JhbTogSUNvdXJzZU9ialxuICAgIGxleF9yZXNvdXJjZTogSUNvdXJzZU9ialxuICAgIHNlYXJjaFJlc3VsdDogSVNlYXJjaE9ialxuICAgIHVuaXF1ZVBhcnRpY2lwYW50c1N0YWdpbmc6IElBY3Rpdml0eU9ialtdXG4gICAgYWN0aXZpdHlUeXBlOiBJQWN0aXZpdHlPYmpbXVxuICAgIHBhcnRpY2lwYW50czogSVBhcnRpY2lwYW50UmVzcG9uc2VcbiAgICByZWZpbmVyczogW1xuICAgICAge1xuICAgICAgICBzZXJ2aWNlTGluZTogSU9ialBhaXJbXTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1vZHVsZXNDb21wbGV0ZWQ6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGFja3M6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0b3BpY3M6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvZmZlcmluZ01vZGU6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbnRlcmZhY2U6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuZXdTZXJ2aWNlTGluZTogSU9ialBhaXJbXTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFiY2Q6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGFja3NDb21wbGV0ZWQ6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBza2lsbE5hbWU6IElPYmpQYWlyW107XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBob3Jpem9uOiBJT2JqUGFpcltdO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHJhY2s6IElPYmpQYWlyW107XG4gICAgICB9XG4gICAgXVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJT2JqUGFpciB7XG4gICAga2V5OiBzdHJpbmdcbiAgICB2YWx1ZTogbnVtYmVyXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElPYmpDb3VudCB7XG4gICAga2V5OiBzdHJpbmdcbiAgICBjb3VudDogbnVtYmVyXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJUGFydGljaXBhbnRPYmoge1xuICAgIGtleTogc3RyaW5nXG4gICAgdmFsdWU6IElPYmpQYWlyW11cbiAgICBjb3VudDogbnVtYmVyXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElBY3Rpdml0eU9iaiB7XG4gICAga2V5OiBzdHJpbmdcbiAgICB1bmlxdWVDb3VudDogbnVtYmVyXG4gICAgb3RoZXJDb3VudHM6IElPYmpDb3VudFtdXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElTZWFyY2hPYmoge1xuICAgIHJlc3VsdDogSVNlYXJjaFJlc3VsdE9ialtdXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJUmVzdWx0T2JqIHtcbiAgICB0aXRsZTogc3RyaW5nXG4gICAgcGFydGljaXBhbnRzOiBudW1iZXJcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElTZWFyY2hSZXN1bHRPYmoge1xuICAgIHNvdXJjZTogc3RyaW5nW11cbiAgICB0aXRsZTogc3RyaW5nXG4gICAgY291cnNlQ29kZTogc3RyaW5nXG4gICAgc3RhdHVzOiBzdHJpbmdcbiAgICBvZmZlcmluZ01vZGU6IHN0cmluZ1tdXG4gICAgbGV4X2NvbGxlY3Rpb246IHN0cmluZ1xuICAgIGxleF9jb3Vyc2U6IHN0cmluZ1xuICAgIGxleF9wcm9ncmFtOiBzdHJpbmdcbiAgICBsZXhfcmVzb3VyY2U6IHN0cmluZ1xuICAgIG9mZmVyaW5nczogbnVtYmVyXG4gICAgcGFydGljaXBhbnRzOiBudW1iZXJcbiAgICBpbnN0cnVjdG9yczogSUluc3RydWN0b3JPYmpbXVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJQ291cnNlT2JqIHtcbiAgICByZXN1bHQ6IElSZXN1bHRPYmpbXVxuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgSU9uc2l0ZU9mZnNob3JlT2JqIHtcbiAgICBrZXk6IHN0cmluZ1xuICAgIHRyYWluaW5nSG91cnM6IG51bWJlclxuICAgIHZhbHVlOiBJT2JqUGFpcltdXG4gICAgY291bnQ6IG51bWJlclxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJSW5zdHJ1Y3Rvck9iaiB7XG4gICAga2V5OiBzdHJpbmdcbiAgICBkb2NfY291bnQ6IG51bWJlclxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJUGFydGljaXBhbnRSZXNwb25zZSB7XG4gICAgY291bnRyeTogSVBhcnRpY2lwYW50T2JqW11cbiAgICBkdTogSVBhcnRpY2lwYW50T2JqW11cbiAgICBjdTogSVBhcnRpY2lwYW50T2JqW11cbiAgICBqbDogSVBhcnRpY2lwYW50T2JqW11cbiAgICBvdmVyYWxsUGFydGljaXBhbnRzOiBJT2JqUGFpcltdXG4gICAgY3VUeXBlOiBJUGFydGljaXBhbnRPYmpbXVxuICAgIHB1OiBJUGFydGljaXBhbnRPYmpbXVxuICAgIG9uc2l0ZU9mZnNob3JlSW5kaWNhdG9yOiBJT25zaXRlT2Zmc2hvcmVPYmpbXVxuICAgIGxvY2F0aW9uOiBJUGFydGljaXBhbnRPYmpbXVxuICAgIHB1U0FMUzogSVBhcnRpY2lwYW50T2JqW11cbiAgICBpYnU6IElQYXJ0aWNpcGFudE9ialtdXG4gICAgYWNjb3VudDogSVBhcnRpY2lwYW50T2JqW11cbiAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUFuYWx5dGljcyB7XG4gICAgZW5hYmxlZDogYm9vbGVhblxuICAgIGF2YWlsYWJsZTogYm9vbGVhblxuICAgIGNvdXJzZUFuYWx5dGljc0NsaWVudDogYm9vbGVhblxuICAgIGNvdXJzZUFuYWx5dGljczogYm9vbGVhblxuICB9XG59XG5leHBvcnQgbmFtZXNwYWNlIE5zQ291cnNlQW5hbHl0aWNzIHtcbiAgZXhwb3J0IGludGVyZmFjZSBJQ291cnNlQW5hbHl0aWNzRGF0YSB7XG4gICAgZGF5X3dpc2VfdXNlcnM6IElCYXJDaGFydERhdGFbXVxuICAgIGF2Z190aW1lX3NwZW50OiBudW1iZXJcbiAgICBoaXRzOiBudW1iZXJcbiAgICB1c2VyQ291bnQ6IG51bWJlclxuICAgIGNpdHk6IElDaGFydERhdGFbXVxuICAgIGRlcGFydG1lbnQ6IElDaGFydERhdGFbXVxuICAgIGRldmljZTogSUNoYXJ0RGF0YVtdXG4gICAgW2tleTogc3RyaW5nXTogYW55XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElDaGFydERhdGEge1xuICAgIGtleTogc3RyaW5nXG4gICAgZG9jX2NvdW50OiBudW1iZXJcbiAgICB0b3RhbF9oaXRzOiBudW1iZXJcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUJhckNoYXJ0RGF0YSB7XG4gICAga2V5X2FzX3N0cmluZzogc3RyaW5nXG4gICAga2V5OiBudW1iZXJcbiAgICBkb2NfY291bnQ6IG51bWJlclxuICAgIGhpdHNfY291bnQ6IG51bWJlclxuICB9XG59XG4iXX0=
|