@sunbird-cb/toc 0.0.2 → 0.0.3-2.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/ai-tutor/ai-tutor.component.mjs +1169 -0
- package/esm2022/lib/_collection/_common/ai-tutor/socket.service.mjs +121 -0
- package/esm2022/lib/_collection/_common/card-competency/card-competency.component.mjs +58 -0
- package/esm2022/lib/_collection/_common/card-competency/card-competency.module.mjs +22 -0
- package/esm2022/lib/_collection/_common/card-content-v2/card-content-v2.model.mjs +23 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +108 -7
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +5 -1
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +3 -3
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +18 -8
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +88 -7
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +393 -51
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +16 -34
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +7 -2
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +5 -2
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +2 -8
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +3 -3
- package/esm2022/lib/_services/widget-content.model.mjs +8 -1
- package/esm2022/lib/_services/widget-content.service.mjs +3 -3
- package/esm2022/lib/app-toc-lib.module.mjs +7 -3
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +37 -8
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +3 -3
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +3 -3
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +224 -67
- package/esm2022/lib/registration-toc-lib.config.mjs +14 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +1 -1
- package/esm2022/lib/services/app-toc-v2.service.mjs +192 -54
- package/esm2022/lib/services/app-toc.service.mjs +381 -104
- package/esm2022/lib/services/certificate.service.mjs +54 -9
- package/esm2022/lib/services/root.service.mjs +106 -0
- package/esm2022/lib/services/viewer-data.service.mjs +1 -1
- package/esm2022/lib/services/viewer-util.service.mjs +150 -23
- package/esm2022/public-api.mjs +11 -1
- package/fesm2022/sunbird-cb-toc.mjs +9093 -6348
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts +139 -0
- package/lib/_collection/_common/ai-tutor/socket.service.d.ts +19 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +0 -1
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +0 -1
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +0 -1
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +0 -1
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +0 -1
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +0 -1
- package/lib/_collection/_common/card-competency/card-competency.component.d.ts +14 -0
- package/lib/_collection/_common/card-competency/card-competency.module.d.ts +8 -0
- package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts +44 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +8 -1
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +12 -12
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +0 -1
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +0 -1
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +0 -1
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +0 -1
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +0 -1
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +0 -1
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +0 -1
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +0 -1
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +0 -1
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +0 -1
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +1 -2
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +2 -1
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +8 -1
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +64 -5
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +0 -1
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +0 -1
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +2 -2
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +29 -29
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +0 -1
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +0 -1
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +0 -1
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +0 -1
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +0 -1
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +0 -1
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +0 -1
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +0 -1
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +0 -1
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +0 -1
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +0 -2
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +0 -1
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +0 -1
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +0 -1
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +0 -1
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +0 -1
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +0 -1
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +0 -1
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +0 -1
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +0 -1
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +0 -1
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +0 -1
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +0 -1
- package/lib/_collection/_common/user-image/user-image.component.d.ts +0 -1
- package/lib/_collection/_common/user-image/user-image.module.d.ts +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +0 -1
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +0 -1
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +0 -1
- package/lib/_collection-api.d.ts +0 -1
- package/lib/_constants/widget-content.constants.d.ts +0 -1
- package/lib/_directives/tooltip.directive.d.ts +0 -1
- package/lib/_models/common.model.d.ts +0 -1
- package/lib/_models/error.model.d.ts +0 -1
- package/lib/_pipes/highlight.pipe.d.ts +0 -1
- package/lib/_services/rating.service.d.ts +0 -1
- package/lib/_services/samuhik-charcha.service.d.ts +0 -1
- package/lib/_services/viewer-route-util.d.ts +0 -1
- package/lib/_services/widget-content.model.d.ts +6 -1
- package/lib/_services/widget-content.service.d.ts +0 -1
- package/lib/_shared/translate-loader.factory.d.ts +0 -1
- package/lib/app-toc-lib.module.d.ts +2 -2
- package/lib/collection.config.d.ts +0 -1
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +0 -1
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +0 -1
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +3 -1
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +0 -1
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +0 -1
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +0 -1
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +0 -1
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +0 -1
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +0 -1
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +28 -4
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +0 -1
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +0 -1
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +0 -1
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +0 -1
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +0 -1
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +0 -1
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +0 -1
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +0 -1
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +0 -1
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +0 -1
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +0 -1
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +0 -1
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +0 -1
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +0 -1
- package/lib/models/app-toc-analytics.model.d.ts +0 -1
- package/lib/models/app-toc.model.d.ts +0 -1
- package/lib/models/auto-complete.model.d.ts +0 -1
- package/lib/models/card-content.model.d.ts +0 -1
- package/lib/models/content-strip-with-tabs.model.d.ts +0 -1
- package/lib/models/discussion-forum.model.d.ts +0 -1
- package/lib/models/goal.model.d.ts +0 -1
- package/lib/models/meta-tag.model.d.ts +0 -1
- package/lib/models/playlist.model.d.ts +0 -1
- package/lib/models/profile-revamp.model.d.ts +0 -1
- package/lib/models/rating.model.d.ts +0 -1
- package/lib/models/user-profile.model.d.ts +0 -1
- package/lib/registration-toc-lib.config.d.ts +4 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +0 -1
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +0 -1
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +0 -1
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +0 -1
- package/lib/resolvers/app-toc-resolver.service.d.ts +0 -1
- package/lib/resolvers/config-resolver.service.d.ts +0 -1
- package/lib/resolvers/profile-resolver.service.d.ts +0 -1
- package/lib/resolvers/restricted-features-resolver.service.d.ts +0 -1
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +0 -1
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +0 -1
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +0 -1
- package/lib/services/access-control.service.d.ts +0 -1
- package/lib/services/action.service.d.ts +0 -1
- package/lib/services/app-toc-v2.service.d.ts +3 -1
- package/lib/services/app-toc.service.d.ts +41 -13
- package/lib/services/certificate.service.d.ts +5 -7
- package/lib/services/discuss-utils.service.d.ts +0 -1
- package/lib/services/editor.service.d.ts +0 -1
- package/lib/services/load-check.service.d.ts +0 -1
- package/lib/services/loader.service.d.ts +0 -1
- package/lib/services/mobile-apps.service.d.ts +0 -1
- package/lib/services/netcore.service.d.ts +0 -1
- package/lib/services/nps-grid.service.d.ts +0 -1
- package/lib/services/otp.service.d.ts +0 -1
- package/lib/services/profile-v2.service.d.ts +0 -1
- package/lib/services/reset-ratings.service.d.ts +0 -1
- package/lib/services/resource-download-helper.service.d.ts +0 -1
- package/lib/services/root.service.d.ts +26 -0
- package/lib/services/timer.service.d.ts +0 -1
- package/lib/services/title-tag.service.d.ts +0 -1
- package/lib/services/user-profile.service.d.ts +0 -1
- package/lib/services/viewer-data.service.d.ts +9 -6
- package/lib/services/viewer-util.service.d.ts +14 -1
- package/lib/share-toc/share-toc/share-toc.component.d.ts +0 -1
- package/lib/share-toc/share-toc.module.d.ts +0 -1
- package/package.json +3 -5
- package/public-api.d.ts +9 -1
- package/sunbird-cb-toc-0.0.32.1.tgz +0 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +0 -1
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +0 -1
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +0 -1
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +0 -1
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +0 -1
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +0 -1
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +0 -1
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +0 -1
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +0 -1
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +0 -1
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +0 -1
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +0 -1
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +0 -1
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +0 -1
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +0 -1
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +0 -1
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +0 -1
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +0 -1
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +0 -1
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +0 -1
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +0 -1
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +0 -1
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +0 -1
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +0 -1
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +0 -1
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +0 -1
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +0 -1
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +0 -1
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +0 -1
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +0 -1
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +0 -1
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +0 -1
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +0 -1
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +0 -1
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +0 -1
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +0 -1
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +0 -1
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +0 -1
- package/lib/_collection/_common/user-image/user-image.component.d.ts.map +0 -1
- package/lib/_collection/_common/user-image/user-image.module.d.ts.map +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +0 -1
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +0 -1
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +0 -1
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +0 -1
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +0 -1
- package/lib/_collection-api.d.ts.map +0 -1
- package/lib/_constants/widget-content.constants.d.ts.map +0 -1
- package/lib/_directives/tooltip.directive.d.ts.map +0 -1
- package/lib/_models/common.model.d.ts.map +0 -1
- package/lib/_models/error.model.d.ts.map +0 -1
- package/lib/_pipes/highlight.pipe.d.ts.map +0 -1
- package/lib/_services/rating.service.d.ts.map +0 -1
- package/lib/_services/samuhik-charcha.service.d.ts.map +0 -1
- package/lib/_services/viewer-route-util.d.ts.map +0 -1
- package/lib/_services/widget-content.model.d.ts.map +0 -1
- package/lib/_services/widget-content.service.d.ts.map +0 -1
- package/lib/_shared/translate-loader.factory.d.ts.map +0 -1
- package/lib/app-toc-lib.module.d.ts.map +0 -1
- package/lib/collection.config.d.ts.map +0 -1
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +0 -1
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +0 -1
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +0 -1
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +0 -1
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +0 -1
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +0 -1
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +0 -1
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +0 -1
- package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +0 -1
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +0 -1
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +0 -1
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +0 -1
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +0 -1
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +0 -1
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +0 -1
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +0 -1
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +0 -1
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +0 -1
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +0 -1
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +0 -1
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +0 -1
- package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +0 -1
- package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +0 -1
- package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +0 -1
- package/lib/models/app-toc-analytics.model.d.ts.map +0 -1
- package/lib/models/app-toc.model.d.ts.map +0 -1
- package/lib/models/auto-complete.model.d.ts.map +0 -1
- package/lib/models/card-content.model.d.ts.map +0 -1
- package/lib/models/content-strip-with-tabs.model.d.ts.map +0 -1
- package/lib/models/discussion-forum.model.d.ts.map +0 -1
- package/lib/models/goal.model.d.ts.map +0 -1
- package/lib/models/meta-tag.model.d.ts.map +0 -1
- package/lib/models/playlist.model.d.ts.map +0 -1
- package/lib/models/profile-revamp.model.d.ts.map +0 -1
- package/lib/models/rating.model.d.ts.map +0 -1
- package/lib/models/user-profile.model.d.ts.map +0 -1
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/app-toc-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/config-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/profile-resolver.service.d.ts.map +0 -1
- package/lib/resolvers/restricted-features-resolver.service.d.ts.map +0 -1
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +0 -1
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +0 -1
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +0 -1
- package/lib/services/access-control.service.d.ts.map +0 -1
- package/lib/services/action.service.d.ts.map +0 -1
- package/lib/services/app-toc-v2.service.d.ts.map +0 -1
- package/lib/services/app-toc.service.d.ts.map +0 -1
- package/lib/services/certificate.service.d.ts.map +0 -1
- package/lib/services/discuss-utils.service.d.ts.map +0 -1
- package/lib/services/editor.service.d.ts.map +0 -1
- package/lib/services/load-check.service.d.ts.map +0 -1
- package/lib/services/loader.service.d.ts.map +0 -1
- package/lib/services/mobile-apps.service.d.ts.map +0 -1
- package/lib/services/netcore.service.d.ts.map +0 -1
- package/lib/services/nps-grid.service.d.ts.map +0 -1
- package/lib/services/otp.service.d.ts.map +0 -1
- package/lib/services/profile-v2.service.d.ts.map +0 -1
- package/lib/services/reset-ratings.service.d.ts.map +0 -1
- package/lib/services/resource-download-helper.service.d.ts.map +0 -1
- package/lib/services/timer.service.d.ts.map +0 -1
- package/lib/services/title-tag.service.d.ts.map +0 -1
- package/lib/services/user-profile.service.d.ts.map +0 -1
- package/lib/services/viewer-data.service.d.ts.map +0 -1
- package/lib/services/viewer-util.service.d.ts.map +0 -1
- package/lib/share-toc/share-toc/share-toc.component.d.ts.map +0 -1
- package/lib/share-toc/share-toc.module.d.ts.map +0 -1
- package/public-api.d.ts.map +0 -1
- package/sunbird-cb-toc.d.ts.map +0 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { take } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
const PROXY_CREATE_V8 = '/apis/proxies/v8';
|
|
7
|
+
const API_END_POINTS = {
|
|
8
|
+
GET_JWT_TOCKEN: `${PROXY_CREATE_V8}/fetchUserToken`
|
|
9
|
+
};
|
|
10
|
+
export class WebSocketService {
|
|
11
|
+
constructor(http) {
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.messageSubject = new Subject();
|
|
14
|
+
}
|
|
15
|
+
// Establish a connection to the WebSocket
|
|
16
|
+
connect(url) {
|
|
17
|
+
this.socket = new WebSocket(url);
|
|
18
|
+
// console.log('this.socket', this.socket)
|
|
19
|
+
this.socket.onopen = () => {
|
|
20
|
+
try {
|
|
21
|
+
console.log('WebSocket connection established');
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.log('error', error);
|
|
25
|
+
}
|
|
26
|
+
this.startClientPing();
|
|
27
|
+
};
|
|
28
|
+
this.socket.onmessage = (event) => {
|
|
29
|
+
//console.log('event', event)
|
|
30
|
+
try {
|
|
31
|
+
const data = JSON.parse(event.data);
|
|
32
|
+
// console.log('data', data)
|
|
33
|
+
if (data.type === 'connection' && data.clientId) {
|
|
34
|
+
this.clientId = data.clientId;
|
|
35
|
+
// clientIdDisplay.textContent = `Assigned Client ID: ${this.clientId}`;
|
|
36
|
+
// console.log('Server', `Connected. Assigned Client ID: ${this.clientId}`);
|
|
37
|
+
}
|
|
38
|
+
else if (data.type === 'answer') {
|
|
39
|
+
this.messageSubject.next(JSON.parse(event.data));
|
|
40
|
+
// console.log('Server', `Answer: ${data.answer}`);
|
|
41
|
+
// if (data.sources && data.sources.length > 0) {
|
|
42
|
+
// // console.log('Server', `Sources: ${data.sources.join(', ')}`);
|
|
43
|
+
// }
|
|
44
|
+
// if (data.retrievedChunks && data.retrievedChunks.length > 0) {
|
|
45
|
+
// data.retrievedChunks.forEach((chunk:any) => {
|
|
46
|
+
// if (chunk.uri && chunk.uri.length > 0) {
|
|
47
|
+
// console.log('Server', `Retrieved URI: ${chunk.uri.join(', ')}`);
|
|
48
|
+
// }
|
|
49
|
+
// if (chunk.content && chunk.content.length > 0) {
|
|
50
|
+
// console.log('Server', `Retrieved Content: ${chunk.content.join('...')}`);
|
|
51
|
+
// }
|
|
52
|
+
// });
|
|
53
|
+
// }
|
|
54
|
+
}
|
|
55
|
+
else if (data.type === 'error' && data.error) {
|
|
56
|
+
console.log('Server', `Error: ${data.error}`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
//console.log('Server', `Received: ${event.data}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
// console.log('Server', `Received raw: ${event.data}`);
|
|
64
|
+
// console.error('Error processing message:', error);
|
|
65
|
+
}
|
|
66
|
+
//this.messageSubject.next(event.data);
|
|
67
|
+
};
|
|
68
|
+
this.socket.onerror = (error) => {
|
|
69
|
+
// console.log('error', error)
|
|
70
|
+
console.error('WebSocket error:', error);
|
|
71
|
+
};
|
|
72
|
+
this.socket.onclose = () => {
|
|
73
|
+
console.log('WebSocket connection closed');
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
// Send message to the WebSocket server
|
|
77
|
+
sendMessage(message) {
|
|
78
|
+
// console.log(message)
|
|
79
|
+
// console.log(this.socket)
|
|
80
|
+
if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
81
|
+
this.socket.send(JSON.stringify(message));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.error('WebSocket is not open');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Observable for receiving messages from WebSocket
|
|
88
|
+
getMessages() {
|
|
89
|
+
return this.messageSubject.asObservable().pipe(take(1));
|
|
90
|
+
}
|
|
91
|
+
startClientPing() {
|
|
92
|
+
clearInterval(this.pingIntervalId);
|
|
93
|
+
this.pingIntervalId = setInterval(() => {
|
|
94
|
+
if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
95
|
+
// console.log('in')
|
|
96
|
+
this.socket.send(JSON.stringify({ type: 'ping' })); // Send a ping message
|
|
97
|
+
// console.log('Client sent ping');
|
|
98
|
+
}
|
|
99
|
+
}, 25000); // Send ping every 25 seconds (slightly less than server's 30s)
|
|
100
|
+
}
|
|
101
|
+
// Close the WebSocket connection
|
|
102
|
+
closeConnection() {
|
|
103
|
+
if (this.socket) {
|
|
104
|
+
this.socket.close();
|
|
105
|
+
clearInterval(this.pingIntervalId);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
getJWTToken() {
|
|
109
|
+
// console.log('get token')
|
|
110
|
+
return this.http.get(`${API_END_POINTS.GET_JWT_TOCKEN}`);
|
|
111
|
+
}
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebSocketService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
113
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebSocketService, providedIn: 'root' }); }
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WebSocketService, decorators: [{
|
|
116
|
+
type: Injectable,
|
|
117
|
+
args: [{
|
|
118
|
+
providedIn: 'root',
|
|
119
|
+
}]
|
|
120
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9haS10dXRvci9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFHLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFdkMsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUE7QUFDMUMsTUFBTSxjQUFjLEdBQUc7SUFDckIsY0FBYyxFQUFFLEdBQUcsZUFBZSxpQkFBaUI7Q0FDcEQsQ0FBQTtBQUtELE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsWUFDUyxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSmpCLG1CQUFjLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFLdkQsQ0FBQztJQUVKLDBDQUEwQztJQUMxQyxPQUFPLENBQUMsR0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDeEIsSUFBSTtnQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7YUFDakQ7WUFBQyxPQUFNLEtBQUssRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTthQUM1QjtZQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxD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QW1DO2FBQ3RDO1FBQ0wsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsK0RBQStEO0lBQzlFLENBQUM7SUFFQyxpQ0FBaUM7SUFDakMsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsMkJBQTJCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQTtJQUMvRCxDQUFDOytHQTlHVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyAgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmNvbnN0IFBST1hZX0NSRUFURV9WOCA9ICcvYXBpcy9wcm94aWVzL3Y4J1xuY29uc3QgQVBJX0VORF9QT0lOVFMgPSB7XG4gIEdFVF9KV1RfVE9DS0VOOiBgJHtQUk9YWV9DUkVBVEVfVjh9L2ZldGNoVXNlclRva2VuYFxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0U2VydmljZSB7XG4gIHByaXZhdGUgc29ja2V0OiBXZWJTb2NrZXQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgbWVzc2FnZVN1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcGluZ0ludGVydmFsSWQ6YW55XG4gIGNsaWVudElkOmFueVxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudFxuICApIHt9XG5cbiAgLy8gRXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byB0aGUgV2ViU29ja2V0XG4gIGNvbm5lY3QodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTtcbiAgICAvLyBjb25zb2xlLmxvZygndGhpcy5zb2NrZXQnLCB0aGlzLnNvY2tldClcbiAgICB0aGlzLnNvY2tldC5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yJywgZXJyb3IpXG4gICAgICB9XG4gICAgICBcbiAgICAgIHRoaXMuc3RhcnRDbGllbnRQaW5nKCk7XG4gICAgfTtcblxuICAgIHRoaXMuc29ja2V0Lm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgICAvL2NvbnNvbGUubG9nKCdldmVudCcsIGV2ZW50KVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnZGF0YScsIGRhdGEpXG4gICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ2Nvbm5lY3Rpb24nICYmIGRhdGEuY2xpZW50SWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5jbGllbnRJZCA9IGRhdGEuY2xpZW50SWQ7XG4gICAgICAgICAgICAgLy8gY2xpZW50SWREaXNwbGF5LnRleHRDb250ZW50ID0gYEFzc2lnbmVkIENsaWVudCBJRDogJHt0aGlzLmNsaWVudElkfWA7XG4gICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1NlcnZlcicsIGBDb25uZWN0ZWQuIEFzc2lnbmVkIENsaWVudCBJRDogJHt0aGlzLmNsaWVudElkfWApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAnYW5zd2VyJykge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU3ViamVjdC5uZXh0KEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpO1xuICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTZXJ2ZXInLCBgQW5zd2VyOiAke2RhdGEuYW5zd2VyfWApO1xuICAgICAgICAgICAgICAvLyBpZiAoZGF0YS5zb3VyY2VzICYmIGRhdGEuc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIC8vICAgIC8vIGNvbnNvbGUubG9nKCdTZXJ2ZXInLCBgU291cmNlczogJHtkYXRhLnNvdXJjZXMuam9pbignLCAnKX1gKTtcbiAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAvLyBpZiAoZGF0YS5yZXRyaWV2ZWRDaHVua3MgJiYgZGF0YS5yZXRyaWV2ZWRDaHVua3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAvLyAgICAgZGF0YS5yZXRyaWV2ZWRDaHVua3MuZm9yRWFjaCgoY2h1bms6YW55KSA9PiB7XG4gICAgICAgICAgICAgIC8vICAgICAgICAgaWYgKGNodW5rLnVyaSAmJiBjaHVuay51cmkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2VydmVyJywgYFJldHJpZXZlZCBVUkk6ICR7Y2h1bmsudXJpLmpvaW4oJywgJyl9YCk7XG4gICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChjaHVuay5jb250ZW50ICYmIGNodW5rLmNvbnRlbnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2VydmVyJywgYFJldHJpZXZlZCBDb250ZW50OiAke2NodW5rLmNvbnRlbnQuam9pbignLi4uJyl9YCk7XG4gICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gJ2Vycm9yJyAmJiBkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZXJ2ZXInLCBgRXJyb3I6ICR7ZGF0YS5lcnJvcn1gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdTZXJ2ZXInLCBgUmVjZWl2ZWQ6ICR7ZXZlbnQuZGF0YX1gKTtcbiAgICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdTZXJ2ZXInLCBgUmVjZWl2ZWQgcmF3OiAke2V2ZW50LmRhdGF9YCk7XG4gICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICAgIC8vdGhpcy5tZXNzYWdlU3ViamVjdC5uZXh0KGV2ZW50LmRhdGEpO1xuICAgIH07XG5cbiAgICB0aGlzLnNvY2tldC5vbmVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcilcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBlcnJvcjonLCBlcnJvcik7XG4gICAgfTtcblxuICAgIHRoaXMuc29ja2V0Lm9uY2xvc2UgPSAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNvbm5lY3Rpb24gY2xvc2VkJyk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIFNlbmQgbWVzc2FnZSB0byB0aGUgV2ViU29ja2V0IHNlcnZlclxuICBzZW5kTWVzc2FnZShtZXNzYWdlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBjb25zb2xlLmxvZyhtZXNzYWdlKVxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc29ja2V0KVxuICAgIFxuICAgIGlmICh0aGlzLnNvY2tldCAmJiB0aGlzLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBpcyBub3Qgb3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE9ic2VydmFibGUgZm9yIHJlY2VpdmluZyBtZXNzYWdlcyBmcm9tIFdlYlNvY2tldFxuICBnZXRNZXNzYWdlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZSgxKSk7XG4gIH1cblxuICBzdGFydENsaWVudFBpbmcoKSB7XG5cbiAgICBjbGVhckludGVydmFsKHRoaXMucGluZ0ludGVydmFsSWQpO1xuICAgIHRoaXMucGluZ0ludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNvY2tldCAmJiB0aGlzLnNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbicpXG4gICAgICAgICAgdGhpcy5zb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdwaW5nJyB9KSk7IC8vIFNlbmQgYSBwaW5nIG1lc3NhZ2VcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdDbGllbnQgc2VudCBwaW5nJyk7XG4gICAgICAgIH1cbiAgICB9LCAyNTAwMCk7IC8vIFNlbmQgcGluZyBldmVyeSAyNSBzZWNvbmRzIChzbGlnaHRseSBsZXNzIHRoYW4gc2VydmVyJ3MgMzBzKVxufVxuXG4gIC8vIENsb3NlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvblxuICBjbG9zZUNvbm5lY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc29ja2V0KSB7XG4gICAgICB0aGlzLnNvY2tldC5jbG9zZSgpO1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnBpbmdJbnRlcnZhbElkKTtcbiAgICB9XG4gIH1cblxuICBnZXRKV1RUb2tlbigpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnZ2V0IHRva2VuJylcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkdFVF9KV1RfVE9DS0VOfWApXG4gIH1cblxuXG59XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { trigger, state, style, animate, transition } from '@angular/animations';
|
|
3
|
+
import { WidgetBaseComponent } from '@sunbird-cb/resolver-v2';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
export class CardCompetencyComponent extends WidgetBaseComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.competencyArea = '';
|
|
10
|
+
this.isExpanded = false;
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
handleToggleSize(_viewMore) {
|
|
15
|
+
this.isExpanded = !this.isExpanded;
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CardCompetencyComponent, selector: "ws-widget-card-competency", inputs: { widgetData: "widgetData", competencyArea: "competencyArea" }, usesInheritance: true, ngImport: i0, template: "<div [@expandCollapse]=\"isExpanded ? 'expanded' : 'collapsed'\" [ngClass]=\"{'expanded': isExpanded}\" >\n <div class=\"competency-passbook-theme\" [ngClass]=\"{'behavioural': (widgetData?.competencyArea?.toLowerCase() === 'behavioural' || widgetData?.competencyArea?.toLowerCase() === 'behavioral'), 'functional': widgetData?.competencyArea?.toLowerCase() === 'functional', 'domain': widgetData?.competencyArea?.toLowerCase() === 'domain', 'shadow-md': isExpanded}\">\n <div class=\"detail\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-base font-bold ellipsis\" title=\"{{ widgetData?.content?.key }}\">{{ widgetData?.content?.key }}</div>\n <div class=\"flex flex-wrap gap-4 chip-container\">\n <ng-container *ngFor=\"let subTheme of widgetData?.content?.value; let i = index\">\n <div class=\"chip rounded-full text-xs\" [ngClass]=\"{'hidden': (i >= 1 && !isExpanded), 'chip-ellipsis': !isExpanded && widgetData?.content?.value?.length > 1 }\" title=\"{{ subTheme }}\">\n {{ subTheme }}\n </div>\n </ng-container>\n <div class=\"flex items-center ws-mat-default-text underline cursor-pointer text-xs\" *ngIf=\"widgetData?.content?.value?.length > 1 && !isExpanded\" (click)=\"handleToggleSize()\">\n View more\n </div>\n <div class=\"flex items-center ws-mat-default-text underline cursor-pointer text-xs\" *ngIf=\"isExpanded\" (click)=\"handleToggleSize()\">\n View less\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".behavioural{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}.competency-passbook-theme{width:100%;max-width:344px;min-width:320px;height:92px;border-radius:8px 8px 12px 12px}.ellipsis{white-space:nowrap;width:280px;overflow:hidden;text-overflow:ellipsis}.detail{width:100%;max-width:344px;background-color:#fff;border-radius:8px;position:relative;top:4px;height:inherit;border:1px solid rgba(0,0,0,.08)}.detail>div{padding:12px 16px 16px}.detail .chip-container .chip{border:1px solid #1b4ca1;color:#1b4ca1;line-height:14px;padding:4px 8px;white-space:normal}.chip-ellipsis{white-space:nowrap!important;max-width:100px;overflow:hidden;text-overflow:ellipsis}.expanded{padding-bottom:12px}.expanded .competency-passbook-theme{max-width:372px;width:100%;min-height:92px;height:auto}.expanded .competency-passbook-theme .detail{width:100%;max-width:inherit;min-height:inherit;height:inherit}\n"], dependencies: [{ 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"] }], animations: [
|
|
19
|
+
trigger('expandCollapse', [
|
|
20
|
+
state('collapsed', style({
|
|
21
|
+
height: '104px',
|
|
22
|
+
width: '320px',
|
|
23
|
+
})),
|
|
24
|
+
state('expanded', style({
|
|
25
|
+
minHeight: '120px',
|
|
26
|
+
width: '372px',
|
|
27
|
+
height: 'auto',
|
|
28
|
+
})),
|
|
29
|
+
transition('collapsed <=> expanded', [
|
|
30
|
+
animate('0.5s'),
|
|
31
|
+
]),
|
|
32
|
+
]),
|
|
33
|
+
] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'ws-widget-card-competency', animations: [
|
|
38
|
+
trigger('expandCollapse', [
|
|
39
|
+
state('collapsed', style({
|
|
40
|
+
height: '104px',
|
|
41
|
+
width: '320px',
|
|
42
|
+
})),
|
|
43
|
+
state('expanded', style({
|
|
44
|
+
minHeight: '120px',
|
|
45
|
+
width: '372px',
|
|
46
|
+
height: 'auto',
|
|
47
|
+
})),
|
|
48
|
+
transition('collapsed <=> expanded', [
|
|
49
|
+
animate('0.5s'),
|
|
50
|
+
]),
|
|
51
|
+
]),
|
|
52
|
+
], template: "<div [@expandCollapse]=\"isExpanded ? 'expanded' : 'collapsed'\" [ngClass]=\"{'expanded': isExpanded}\" >\n <div class=\"competency-passbook-theme\" [ngClass]=\"{'behavioural': (widgetData?.competencyArea?.toLowerCase() === 'behavioural' || widgetData?.competencyArea?.toLowerCase() === 'behavioral'), 'functional': widgetData?.competencyArea?.toLowerCase() === 'functional', 'domain': widgetData?.competencyArea?.toLowerCase() === 'domain', 'shadow-md': isExpanded}\">\n <div class=\"detail\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-base font-bold ellipsis\" title=\"{{ widgetData?.content?.key }}\">{{ widgetData?.content?.key }}</div>\n <div class=\"flex flex-wrap gap-4 chip-container\">\n <ng-container *ngFor=\"let subTheme of widgetData?.content?.value; let i = index\">\n <div class=\"chip rounded-full text-xs\" [ngClass]=\"{'hidden': (i >= 1 && !isExpanded), 'chip-ellipsis': !isExpanded && widgetData?.content?.value?.length > 1 }\" title=\"{{ subTheme }}\">\n {{ subTheme }}\n </div>\n </ng-container>\n <div class=\"flex items-center ws-mat-default-text underline cursor-pointer text-xs\" *ngIf=\"widgetData?.content?.value?.length > 1 && !isExpanded\" (click)=\"handleToggleSize()\">\n View more\n </div>\n <div class=\"flex items-center ws-mat-default-text underline cursor-pointer text-xs\" *ngIf=\"isExpanded\" (click)=\"handleToggleSize()\">\n View less\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".behavioural{background-color:#f8b861}.functional{background-color:#e24577}.domain{background-color:#7b47a4}.competency-passbook-theme{width:100%;max-width:344px;min-width:320px;height:92px;border-radius:8px 8px 12px 12px}.ellipsis{white-space:nowrap;width:280px;overflow:hidden;text-overflow:ellipsis}.detail{width:100%;max-width:344px;background-color:#fff;border-radius:8px;position:relative;top:4px;height:inherit;border:1px solid rgba(0,0,0,.08)}.detail>div{padding:12px 16px 16px}.detail .chip-container .chip{border:1px solid #1b4ca1;color:#1b4ca1;line-height:14px;padding:4px 8px;white-space:normal}.chip-ellipsis{white-space:nowrap!important;max-width:100px;overflow:hidden;text-overflow:ellipsis}.expanded{padding-bottom:12px}.expanded .competency-passbook-theme{max-width:372px;width:100%;min-height:92px;height:auto}.expanded .competency-passbook-theme .detail{width:100%;max-width:inherit;min-height:inherit;height:inherit}\n"] }]
|
|
53
|
+
}], ctorParameters: function () { return []; }, propDecorators: { widgetData: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], competencyArea: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb21wZXRlbmN5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NhcmQtY29tcGV0ZW5jeS9jYXJkLWNvbXBldGVuY3kuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY2FyZC1jb21wZXRlbmN5L2NhcmQtY29tcGV0ZW5jeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWhGLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTs7O0FBd0IvRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsbUJBQW1CO0lBTTlEO1FBQ0UsS0FBSyxFQUFFLENBQUE7UUFKQSxtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQUM1QixlQUFVLEdBQUcsS0FBSyxDQUFBO0lBSWxCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUE7SUFDcEMsQ0FBQzsrR0FmVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixnS0MzQnBDLHF1REFxQk0scXhDRFpRO1lBQ1YsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUN4QixLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztvQkFDdkIsTUFBTSxFQUFFLE9BQU87b0JBQ2YsS0FBSyxFQUFFLE9BQU87aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO29CQUN0QixTQUFTLEVBQUUsT0FBTztvQkFDbEIsS0FBSyxFQUFFLE9BQU87b0JBQ2QsTUFBTSxFQUFFLE1BQU07aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILFVBQVUsQ0FBQyx3QkFBd0IsRUFBRTtvQkFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQztpQkFDaEIsQ0FBQzthQUNILENBQUM7U0FDSDs7NEZBR1UsdUJBQXVCO2tCQXRCbkMsU0FBUzsrQkFDRSwyQkFBMkIsY0FHekI7d0JBQ1YsT0FBTyxDQUFDLGdCQUFnQixFQUFFOzRCQUN4QixLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztnQ0FDdkIsTUFBTSxFQUFFLE9BQU87Z0NBQ2YsS0FBSyxFQUFFLE9BQU87NkJBQ2YsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO2dDQUN0QixTQUFTLEVBQUUsT0FBTztnQ0FDbEIsS0FBSyxFQUFFLE9BQU87Z0NBQ2QsTUFBTSxFQUFFLE1BQU07NkJBQ2YsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyx3QkFBd0IsRUFBRTtnQ0FDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBQzs2QkFDaEIsQ0FBQzt5QkFDSCxDQUFDO3FCQUNIOzBFQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIGFuaW1hdGUsIHRyYW5zaXRpb24gfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgTnNDYXJkQ29udGVudCB9IGZyb20gJy4vLi4vY2FyZC1jb250ZW50LXYyL2NhcmQtY29udGVudC12Mi5tb2RlbCdcbmltcG9ydCB7IE5zV2lkZ2V0UmVzb2x2ZXIsIFdpZGdldEJhc2VDb21wb25lbnQgfSBmcm9tICdAc3VuYmlyZC1jYi9yZXNvbHZlci12MidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3Mtd2lkZ2V0LWNhcmQtY29tcGV0ZW5jeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvbXBldGVuY3kuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWNvbXBldGVuY3kuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2V4cGFuZENvbGxhcHNlJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHtcbiAgICAgICAgaGVpZ2h0OiAnMTA0cHgnLFxuICAgICAgICB3aWR0aDogJzMyMHB4JyxcbiAgICAgIH0pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHtcbiAgICAgICAgbWluSGVpZ2h0OiAnMTIwcHgnLFxuICAgICAgICB3aWR0aDogJzM3MnB4JyxcbiAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgW1xuICAgICAgICBhbmltYXRlKCcwLjVzJyksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBDYXJkQ29tcGV0ZW5jeUNvbXBvbmVudCBleHRlbmRzIFdpZGdldEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE5zV2lkZ2V0UmVzb2x2ZXIuSVdpZGdldERhdGE8TnNDYXJkQ29udGVudC5JQ2FyZD4ge1xuXG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NhcmRDb250ZW50LklDb21wZXRlbmN5XG4gIEBJbnB1dCgpIGNvbXBldGVuY3lBcmVhID0gJydcbiAgaXNFeHBhbmRlZCA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBoYW5kbGVUb2dnbGVTaXplKF92aWV3TW9yZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZFxuICB9XG59XG4iLCI8ZGl2IFtAZXhwYW5kQ29sbGFwc2VdPVwiaXNFeHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiIFtuZ0NsYXNzXT1cInsnZXhwYW5kZWQnOiBpc0V4cGFuZGVkfVwiID5cbiAgICA8ZGl2IGNsYXNzPVwiY29tcGV0ZW5jeS1wYXNzYm9vay10aGVtZVwiIFtuZ0NsYXNzXT1cInsnYmVoYXZpb3VyYWwnOiAod2lkZ2V0RGF0YT8uY29tcGV0ZW5jeUFyZWE/LnRvTG93ZXJDYXNlKCkgPT09ICdiZWhhdmlvdXJhbCcgfHwgd2lkZ2V0RGF0YT8uY29tcGV0ZW5jeUFyZWE/LnRvTG93ZXJDYXNlKCkgPT09ICdiZWhhdmlvcmFsJyksICdmdW5jdGlvbmFsJzogd2lkZ2V0RGF0YT8uY29tcGV0ZW5jeUFyZWE/LnRvTG93ZXJDYXNlKCkgPT09ICdmdW5jdGlvbmFsJywgJ2RvbWFpbic6IHdpZGdldERhdGE/LmNvbXBldGVuY3lBcmVhPy50b0xvd2VyQ2FzZSgpID09PSAnZG9tYWluJywgJ3NoYWRvdy1tZCc6IGlzRXhwYW5kZWR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgZWxsaXBzaXNcIiB0aXRsZT1cInt7IHdpZGdldERhdGE/LmNvbnRlbnQ/LmtleSB9fVwiPnt7IHdpZGdldERhdGE/LmNvbnRlbnQ/LmtleSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtNCBjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJUaGVtZSBvZiB3aWRnZXREYXRhPy5jb250ZW50Py52YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAgcm91bmRlZC1mdWxsIHRleHQteHNcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IChpID49IDEgJiYgIWlzRXhwYW5kZWQpLCAnY2hpcC1lbGxpcHNpcyc6ICFpc0V4cGFuZGVkICYmIHdpZGdldERhdGE/LmNvbnRlbnQ/LnZhbHVlPy5sZW5ndGggPiAxIH1cIiB0aXRsZT1cInt7IHN1YlRoZW1lIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3ViVGhlbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHdzLW1hdC1kZWZhdWx0LXRleHQgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIHRleHQteHNcIiAqbmdJZj1cIndpZGdldERhdGE/LmNvbnRlbnQ/LnZhbHVlPy5sZW5ndGggPiAxICYmICFpc0V4cGFuZGVkXCIgKGNsaWNrKT1cImhhbmRsZVRvZ2dsZVNpemUoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBtb3JlXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgd3MtbWF0LWRlZmF1bHQtdGV4dCB1bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgdGV4dC14c1wiICpuZ0lmPVwiaXNFeHBhbmRlZFwiIChjbGljayk9XCJoYW5kbGVUb2dnbGVTaXplKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgbGVzc1xuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { CardCompetencyComponent } from './card-competency.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CardCompetencyModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyModule, declarations: [CardCompetencyComponent], imports: [CommonModule], exports: [CardCompetencyComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyModule, imports: [CommonModule] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CardCompetencyModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
declarations: [CardCompetencyComponent],
|
|
14
|
+
imports: [
|
|
15
|
+
CommonModule,
|
|
16
|
+
],
|
|
17
|
+
exports: [
|
|
18
|
+
CardCompetencyComponent,
|
|
19
|
+
]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb21wZXRlbmN5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NhcmQtY29tcGV0ZW5jeS9jYXJkLWNvbXBldGVuY3kubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRTlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBOztBQVlyRSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFUZCx1QkFBdUIsYUFFbEMsWUFBWSxhQUdaLHVCQUF1QjtnSEFJbEIsb0JBQW9CLFlBUHpCLFlBQVk7OzRGQU9QLG9CQUFvQjtrQkFWaEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFO3dCQUNMLFlBQVk7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHVCQUF1QjtxQkFDMUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbmltcG9ydCB7IENhcmRDb21wZXRlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWNvbXBldGVuY3kuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0NhcmRDb21wZXRlbmN5Q29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQ2FyZENvbXBldGVuY3lDb21wb25lbnQsXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIENhcmRDb21wZXRlbmN5TW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export var NsCardContent;
|
|
2
|
+
(function (NsCardContent) {
|
|
3
|
+
let EContentStatus;
|
|
4
|
+
(function (EContentStatus) {
|
|
5
|
+
EContentStatus["LIVE"] = "Live";
|
|
6
|
+
EContentStatus["EXPIRED"] = "Expired";
|
|
7
|
+
EContentStatus["DELETED"] = "Deleted";
|
|
8
|
+
EContentStatus["MARK_FOR_DELETION"] = "MarkedForDeletion";
|
|
9
|
+
})(EContentStatus = NsCardContent.EContentStatus || (NsCardContent.EContentStatus = {}));
|
|
10
|
+
let ACBPConst;
|
|
11
|
+
(function (ACBPConst) {
|
|
12
|
+
ACBPConst["UPCOMING"] = "upcoming";
|
|
13
|
+
ACBPConst["ALL"] = "All";
|
|
14
|
+
ACBPConst["OVERDUE"] = "overdue";
|
|
15
|
+
ACBPConst["SUCCESS"] = "success";
|
|
16
|
+
})(ACBPConst = NsCardContent.ACBPConst || (NsCardContent.ACBPConst = {}));
|
|
17
|
+
let IGOTConst;
|
|
18
|
+
(function (IGOTConst) {
|
|
19
|
+
IGOTConst["COMPETENCIES"] = "competencies_v6";
|
|
20
|
+
IGOTConst["RETIRED"] = "Retired";
|
|
21
|
+
})(IGOTConst = NsCardContent.IGOTConst || (NsCardContent.IGOTConst = {}));
|
|
22
|
+
})(NsCardContent || (NsCardContent = {}));
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb250ZW50LXYyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY2FyZC1jb250ZW50LXYyL2NhcmQtY29udGVudC12Mi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLEtBQVcsYUFBYSxDQXNEN0I7QUF0REQsV0FBaUIsYUFBYTtJQW1DNUIsSUFBWSxjQUtYO0lBTEQsV0FBWSxjQUFjO1FBQ3hCLCtCQUFhLENBQUE7UUFDYixxQ0FBbUIsQ0FBQTtRQUNuQixxQ0FBbUIsQ0FBQTtRQUNuQix5REFBdUMsQ0FBQTtJQUN6QyxDQUFDLEVBTFcsY0FBYyxHQUFkLDRCQUFjLEtBQWQsNEJBQWMsUUFLekI7SUFFRCxJQUFZLFNBS1g7SUFMRCxXQUFZLFNBQVM7UUFDbkIsa0NBQXFCLENBQUE7UUFDckIsd0JBQVcsQ0FBQTtRQUNYLGdDQUFtQixDQUFBO1FBQ25CLGdDQUFtQixDQUFBO0lBQ3JCLENBQUMsRUFMVyxTQUFTLEdBQVQsdUJBQVMsS0FBVCx1QkFBUyxRQUtwQjtJQUVELElBQVksU0FHWDtJQUhELFdBQVksU0FBUztRQUNuQiw2Q0FBZ0MsQ0FBQTtRQUNoQyxnQ0FBbUIsQ0FBQTtJQUNyQixDQUFDLEVBSFcsU0FBUyxHQUFULHVCQUFTLEtBQVQsdUJBQVMsUUFHcEI7QUFFSCxDQUFDLEVBdERnQixhQUFhLEtBQWIsYUFBYSxRQXNEN0IiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IE5zQ29udGVudCB9IGZyb20gXCJAc3VuYmlyZC1jYi91dGlscy12MlwiO1xuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBOc0NhcmRDb250ZW50IHtcbiAgZXhwb3J0IGludGVyZmFjZSBJQ2FyZCB7XG4gICAgY29udGVudDogTnNDb250ZW50LklDb250ZW50XG4gICAgY2FyZFN1YlR5cGU6IFRDYXJkU3ViVHlwZVxuICAgIGNvbnRleHQ6IHsgcGFnZVNlY3Rpb246IHN0cmluZzsgcG9zaXRpb24/OiBudW1iZXIgfVxuICAgIGludHJhbmV0TW9kZT86ICdncmV5T3V0JyB8ICdoaWRlJ1xuICAgIGRlbGV0ZWRNb2RlPzogJ2dyZXlPdXQnIHwgJ2hpZGUnXG4gICAgbGlrZXM/OiBudW1iZXJcbiAgICBjb250ZW50VGFncz86IElDb250ZW50VGFnc1xuICAgIHN0YXRlRGF0YTogYW55XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElDb250ZW50VGFncyB7XG4gICAgZGF5c1NwYW4/OiBudW1iZXJcbiAgICBleGNsdWRlQ29udGVudFR5cGU/OiBOc0NvbnRlbnQuRUNvbnRlbnRUeXBlc1tdXG4gICAgZXhjbHVkZU1pbWVUeXBlPzogc3RyaW5nW11cbiAgICB0YWc6IHN0cmluZ1xuICAgIGNyaXRlcmlhRmllbGQ/OiBzdHJpbmdcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUNvbXBldGVuY3kgZXh0ZW5kcyBJQ2FyZCB7XG4gICAgY29tcGV0ZW5jeUFyZWE6ICcnXG4gICAgY29tcGV0ZW5jeU9iamVjdDoge31cbiAgfVxuXG4gIGV4cG9ydCB0eXBlIFRDYXJkU3ViVHlwZSA9XG4gICAgfCAnc3RhbmRhcmQnXG4gICAgfCAnbWluaW1hbCdcbiAgICB8ICdzcGFjZS1zYXZpbmcnXG4gICAgfCAnY2FyZC11c2VyLWRldGFpbHMnXG4gICAgfCAnYmFzaWMtaW5mbydcbiAgICB8ICdiYXNpYy1kZXRhaWxzJ1xuICAgIHwgJ2NhcmQtZGVzY3JpcHRpb24tYmFjaydcbiAgICB8ICduZXR3b3JrLWNhcmQnXG5cbiAgZXhwb3J0IGVudW0gRUNvbnRlbnRTdGF0dXMge1xuICAgIExJVkUgPSAnTGl2ZScsXG4gICAgRVhQSVJFRCA9ICdFeHBpcmVkJyxcbiAgICBERUxFVEVEID0gJ0RlbGV0ZWQnLFxuICAgIE1BUktfRk9SX0RFTEVUSU9OID0gJ01hcmtlZEZvckRlbGV0aW9uJyxcbiAgfVxuXG4gIGV4cG9ydCBlbnVtIEFDQlBDb25zdCB7XG4gICAgVVBDT01JTkcgPSAndXBjb21pbmcnLFxuICAgIEFMTCA9ICdBbGwnLFxuICAgIE9WRVJEVUUgPSAnb3ZlcmR1ZScsXG4gICAgU1VDQ0VTUyA9ICdzdWNjZXNzJyxcbiAgfVxuXG4gIGV4cG9ydCBlbnVtIElHT1RDb25zdCB7XG4gICAgQ09NUEVURU5DSUVTID0gJ2NvbXBldGVuY2llc192NicsXG4gICAgUkVUSVJFRCA9ICdSZXRpcmVkJyxcbiAgfVxuXG59XG4iXX0=
|
|
@@ -7,9 +7,10 @@ import * as i1 from "@sunbird-cb/utils-v2";
|
|
|
7
7
|
import * as i2 from "@angular/material/legacy-dialog";
|
|
8
8
|
import * as i3 from "@angular/material/legacy-button";
|
|
9
9
|
import * as i4 from "@angular/material/legacy-card";
|
|
10
|
-
import * as i5 from "@angular/material/
|
|
11
|
-
import * as i6 from "@angular/material/
|
|
12
|
-
import * as i7 from "@
|
|
10
|
+
import * as i5 from "@angular/material/divider";
|
|
11
|
+
import * as i6 from "@angular/material/icon";
|
|
12
|
+
import * as i7 from "@angular/material/legacy-menu";
|
|
13
|
+
import * as i8 from "@ngx-translate/core";
|
|
13
14
|
export class CertificateDialogComponent {
|
|
14
15
|
constructor(events, dialogRef, data, environment) {
|
|
15
16
|
this.events = events;
|
|
@@ -20,8 +21,12 @@ export class CertificateDialogComponent {
|
|
|
20
21
|
}
|
|
21
22
|
ngOnInit() {
|
|
22
23
|
this.url = this.data.cet;
|
|
24
|
+
// Determine the certificate URL based on whether it's an achievement/milestone certificate
|
|
25
|
+
const certDownloadUrl = this.data?.isAchievement
|
|
26
|
+
? `${this.environment.contentHost}/apis/public/v8/milestone/cert/download/${this.data.certId}`
|
|
27
|
+
: `${this.environment.contentHost}/apis/public/v8/cert/download/${this.data.certId}`;
|
|
23
28
|
// tslint:disable-next-line:max-line-length
|
|
24
|
-
this.navUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${
|
|
29
|
+
this.navUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(certDownloadUrl)}`;
|
|
25
30
|
}
|
|
26
31
|
downloadCert() {
|
|
27
32
|
this.raiseIntreactTelemetry('svg');
|
|
@@ -80,10 +85,106 @@ export class CertificateDialogComponent {
|
|
|
80
85
|
}
|
|
81
86
|
};
|
|
82
87
|
}
|
|
88
|
+
getCertificateUrl() {
|
|
89
|
+
return this.data?.isAchievement
|
|
90
|
+
? `${this.environment.contentHost}/apis/public/v8/milestone/cert/download/${this.data.certId}`
|
|
91
|
+
: `${this.environment.contentHost}/apis/public/v8/cert/download/${this.data.certId}`;
|
|
92
|
+
}
|
|
83
93
|
shareCert() {
|
|
84
94
|
this.raiseShareIntreactTelemetry('share');
|
|
85
95
|
return window.open(this.navUrl, '_blank');
|
|
86
96
|
}
|
|
97
|
+
shareOnLinkedIn() {
|
|
98
|
+
this.raiseShareIntreactTelemetry('share', 'linkedin');
|
|
99
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
100
|
+
// LinkedIn's current sharing endpoint
|
|
101
|
+
// Note: LinkedIn requires the URL to be publicly accessible
|
|
102
|
+
const linkedInUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(certDownloadUrl)}`;
|
|
103
|
+
// Open LinkedIn share dialog
|
|
104
|
+
const popup = window.open(linkedInUrl, '_blank', 'width=600,height=600,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1');
|
|
105
|
+
// Check if popup was blocked
|
|
106
|
+
if (!popup || popup.closed || typeof popup.closed === 'undefined') {
|
|
107
|
+
// Fallback: try opening in same tab
|
|
108
|
+
window.open(linkedInUrl, '_blank');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
shareOnFacebook() {
|
|
112
|
+
this.raiseShareIntreactTelemetry('share', 'facebook');
|
|
113
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
114
|
+
const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(certDownloadUrl)}`;
|
|
115
|
+
window.open(facebookUrl, '_blank', 'width=600,height=600');
|
|
116
|
+
}
|
|
117
|
+
shareOnTwitter() {
|
|
118
|
+
this.raiseShareIntreactTelemetry('share', 'twitter');
|
|
119
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
120
|
+
const text = this.data?.isAchievement
|
|
121
|
+
? 'I have achieved a milestone! Check out my certificate.'
|
|
122
|
+
: 'I have completed a course! Check out my certificate.';
|
|
123
|
+
const twitterUrl = `https://twitter.com/intent/tweet?url=${encodeURIComponent(certDownloadUrl)}&text=${encodeURIComponent(text)}`;
|
|
124
|
+
window.open(twitterUrl, '_blank', 'width=600,height=600');
|
|
125
|
+
}
|
|
126
|
+
shareOnWhatsApp() {
|
|
127
|
+
this.raiseShareIntreactTelemetry('share', 'whatsapp');
|
|
128
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
129
|
+
const text = this.data?.isAchievement
|
|
130
|
+
? 'I have achieved a milestone! Check out my certificate: '
|
|
131
|
+
: `I have completed a course! Check out my certificate: `;
|
|
132
|
+
const whatsappUrl = `https://api.whatsapp.com/send?text=${encodeURIComponent(text + certDownloadUrl)}`;
|
|
133
|
+
window.open(whatsappUrl, '_blank');
|
|
134
|
+
}
|
|
135
|
+
shareViaEmail() {
|
|
136
|
+
this.raiseShareIntreactTelemetry('share', 'email');
|
|
137
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
138
|
+
const subject = this.data?.isAchievement
|
|
139
|
+
? 'Milestone Achievement Certificate'
|
|
140
|
+
: 'Course Completion Certificate';
|
|
141
|
+
const body = this.data?.isAchievement
|
|
142
|
+
? `I have achieved a milestone! You can view my certificate here: ${certDownloadUrl}`
|
|
143
|
+
: `I have completed a course! You can view my certificate here: ${certDownloadUrl}`;
|
|
144
|
+
const mailtoUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
|
145
|
+
window.location.href = mailtoUrl;
|
|
146
|
+
}
|
|
147
|
+
copyCertificateLink() {
|
|
148
|
+
this.raiseShareIntreactTelemetry('share', 'copy');
|
|
149
|
+
const certDownloadUrl = this.getCertificateUrl();
|
|
150
|
+
if (navigator.clipboard && navigator.clipboard.writeText) {
|
|
151
|
+
navigator.clipboard.writeText(certDownloadUrl).then(() => {
|
|
152
|
+
console.log('Certificate link copied to clipboard');
|
|
153
|
+
// You can add a snackbar notification here if needed
|
|
154
|
+
}).catch(err => {
|
|
155
|
+
console.error('Failed to copy certificate link:', err);
|
|
156
|
+
this.fallbackCopyTextToClipboard(certDownloadUrl);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.fallbackCopyTextToClipboard(certDownloadUrl);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
fallbackCopyTextToClipboard(text) {
|
|
164
|
+
const textArea = document.createElement('textarea');
|
|
165
|
+
textArea.value = text;
|
|
166
|
+
textArea.style.position = 'fixed';
|
|
167
|
+
textArea.style.top = '0';
|
|
168
|
+
textArea.style.left = '0';
|
|
169
|
+
textArea.style.width = '2em';
|
|
170
|
+
textArea.style.height = '2em';
|
|
171
|
+
textArea.style.padding = '0';
|
|
172
|
+
textArea.style.border = 'none';
|
|
173
|
+
textArea.style.outline = 'none';
|
|
174
|
+
textArea.style.boxShadow = 'none';
|
|
175
|
+
textArea.style.background = 'transparent';
|
|
176
|
+
document.body.appendChild(textArea);
|
|
177
|
+
textArea.focus();
|
|
178
|
+
textArea.select();
|
|
179
|
+
try {
|
|
180
|
+
document.execCommand('copy');
|
|
181
|
+
console.log('Certificate link copied to clipboard (fallback)');
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
console.error('Fallback: Failed to copy', err);
|
|
185
|
+
}
|
|
186
|
+
document.body.removeChild(textArea);
|
|
187
|
+
}
|
|
87
188
|
raiseShareIntreactTelemetry(type, action) {
|
|
88
189
|
this.events.raiseInteractTelemetry({
|
|
89
190
|
type: WsEvents.EnumInteractTypes.CLICK,
|
|
@@ -105,11 +206,11 @@ export class CertificateDialogComponent {
|
|
|
105
206
|
});
|
|
106
207
|
}
|
|
107
208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CertificateDialogComponent, deps: [{ token: i1.EventService }, { token: i2.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CertificateDialogComponent, selector: "ws-widget-certificate-dialog", host: { classAttribute: "certificate-inner-dialog-panel" }, ngImport: i0, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex flex-row-reverse gap-4\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button (click)=\"shareCert()\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}::ng-deep .close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}::ng-deep .close-icon{transition:1s ease-in-out;color:#fff!important}::ng-deep .close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;position:absolute;top:19px;right:18px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-button{position:absolute!important;top:19px!important;right:18px!important}@media screen and (max-width: 1200px){.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 8px;border-radius:4px;overflow:visible}.gap-4{grid-gap:0rem;gap:0rem}}\n"], dependencies: [{ kind: "component", type: i3.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: i3.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i4.MatLegacyCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i6.MatLegacyMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatLegacyMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatLegacyMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i1.PipeSafeSanitizerPipe, name: "pipeSafeSanitizer" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CertificateDialogComponent, selector: "ws-widget-certificate-dialog", host: { classAttribute: "certificate-inner-dialog-panel" }, ngImport: i0, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex flex-row-reverse gap-4\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button [matMenuTriggerFor]=\"shareMenu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <mat-menu #shareMenu=\"matMenu\">\n <button mat-menu-item (click)='shareOnLinkedIn()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"/>\n </svg>\n </mat-icon>\n <span>LinkedIn</span>\n </button>\n <button mat-menu-item (click)='shareOnFacebook()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z\"/>\n </svg>\n </mat-icon>\n <span>Facebook</span>\n </button>\n <button mat-menu-item (click)='shareOnTwitter()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.70,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z\"/>\n </svg>\n </mat-icon>\n <span>Twitter</span>\n </button>\n <button mat-menu-item (click)='shareOnWhatsApp()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z\"/>\n </svg>\n </mat-icon>\n <span>WhatsApp</span>\n </button>\n <button mat-menu-item (click)='shareViaEmail()'>\n <mat-icon>email</mat-icon>\n <span>Email</span>\n </button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)='copyCertificateLink()'>\n <mat-icon>content_copy</mat-icon>\n <span>Copy Link</span>\n </button>\n </mat-menu>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}::ng-deep .close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}::ng-deep .close-icon{transition:1s ease-in-out;color:#fff!important}::ng-deep .close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;position:absolute;top:19px;right:18px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-button{position:absolute!important;top:19px!important;right:18px!important}@media screen and (max-width: 1200px){.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 8px;border-radius:4px;overflow:visible}.gap-4{grid-gap:0rem;gap:0rem}}\n"], dependencies: [{ kind: "component", type: i3.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: i3.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i4.MatLegacyCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i7.MatLegacyMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatLegacyMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatLegacyMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: i1.PipeSafeSanitizerPipe, name: "pipeSafeSanitizer" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
109
210
|
}
|
|
110
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CertificateDialogComponent, decorators: [{
|
|
111
212
|
type: Component,
|
|
112
|
-
args: [{ selector: 'ws-widget-certificate-dialog', host: { class: 'certificate-inner-dialog-panel' }, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex flex-row-reverse gap-4\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button
|
|
213
|
+
args: [{ selector: 'ws-widget-certificate-dialog', host: { class: 'certificate-inner-dialog-panel' }, template: "<mat-card class=\"no-shadow certificate-img-box\">\n <button mat-icon-button class=\"close-button\" [mat-dialog-close]=\"true\">\n <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n </button>\n <!-- <mat-card-title>\n\n </mat-card-title> -->\n <mat-card-content class=\"certificate-img-content\">\n <img #certificate [src]=\"url| pipeSafeSanitizer: 'url'\" alt=\"Certificate\" role=\"image\" class=\"certificate-banner-image\">\n </mat-card-content>\n <mat-card-actions class=\"flex flex-row-reverse gap-4\">\n <!-- <ws-widget-svg-to-pdf></ws-widget-svg-to-pdf> -->\n <a mat-button [matMenuTriggerFor]=\"shareMenu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">share</mat-icon>\n Share\n </a>\n <mat-menu #shareMenu=\"matMenu\">\n <button mat-menu-item (click)='shareOnLinkedIn()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"/>\n </svg>\n </mat-icon>\n <span>LinkedIn</span>\n </button>\n <button mat-menu-item (click)='shareOnFacebook()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z\"/>\n </svg>\n </mat-icon>\n <span>Facebook</span>\n </button>\n <button mat-menu-item (click)='shareOnTwitter()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.70,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z\"/>\n </svg>\n </mat-icon>\n <span>Twitter</span>\n </button>\n <button mat-menu-item (click)='shareOnWhatsApp()'>\n <mat-icon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">\n <path fill=\"currentColor\" d=\"M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z\"/>\n </svg>\n </mat-icon>\n <span>WhatsApp</span>\n </button>\n <button mat-menu-item (click)='shareViaEmail()'>\n <mat-icon>email</mat-icon>\n <span>Email</span>\n </button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)='copyCertificateLink()'>\n <mat-icon>content_copy</mat-icon>\n <span>Copy Link</span>\n </button>\n </mat-menu>\n <a mat-button [matMenuTriggerFor]=\"menu\" class=\"ws-mat-accent-border-active mat-accent btn-custom\" (click)=\"raiseIntreactTelemetry()\">\n <mat-icon class=\"mat-icon material-icons-outlined download_icon margin-right-xs\">cloud_download</mat-icon>\n {{'certificatedialog.download' | translate}}\n </a>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)='downloadCertPdf()'>\n <mat-icon>picture_as_pdf</mat-icon>\n <span>{{'certificatedialog.pdf' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCertPng()'>\n <mat-icon>photo</mat-icon>\n <span>{{'certificatedialog.png' | translate}}</span>\n </button>\n <button mat-menu-item (click)='downloadCert()'>\n <mat-icon>photo_size_select_actual</mat-icon>\n <span>{{'certificatedialog.svg' | translate}}</span>\n </button>\n </mat-menu>\n </mat-card-actions>\n</mat-card>\n", styles: [".no-shadow{box-shadow:none!important}.certificate-banner-image{height:30rem;display:flex;width:auto;margin:0 auto}@media only screen and (max-width: 1279px){.certificate-banner-image{width:100%;height:auto;flex:1}}.certificate-img-box{max-height:35rem;overflow-y:auto;overflow-x:hidden}.certificate-img-content{overflow:hidden}a.download_btn{background-color:#f0f0f0;border-radius:4px;float:right;height:40px;padding:0 16px;text-align:center;line-height:40px;text-decoration:none;color:#0009;font-size:14px;font-weight:600;margin-top:16px;margin-right:0}.download_icon{font-size:16px;vertical-align:text-top}::ng-deep .close-button{float:right;top:-16px;right:-12px;height:30px;width:30px;line-height:30px;background:#000!important;color:#fff!important}::ng-deep .close-icon{transition:1s ease-in-out;color:#fff!important}::ng-deep .close-icon:hover{transform:rotate(180deg)}::ng-deep .icon-outside .close-button{float:right;position:absolute;top:19px;right:18px}::ng-deep .icon-outside .mat-dialog-container{overflow:unset}::ng-deep .cdk-overlay-pane{max-height:96%!important;overflow-y:auto!important}.certificate-banner-image svg{width:500;height:500}@media only screen and (max-width: 1279px){.certificate-banner-image svg{width:auto;height:auto;flex:1}}.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.close-button{position:absolute!important;top:19px!important;right:18px!important}@media screen and (max-width: 1200px){.btn-custom{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 8px;border-radius:4px;overflow:visible}.gap-4{grid-gap:0rem;gap:0rem}}\n"] }]
|
|
113
214
|
}], ctorParameters: function () { return [{ type: i1.EventService }, { type: i2.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
114
215
|
type: Inject,
|
|
115
216
|
args: [MAT_DIALOG_DATA]
|
|
@@ -117,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
117
218
|
type: Inject,
|
|
118
219
|
args: ['environment']
|
|
119
220
|
}] }]; } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NlcnRpZmljYXRlLWRpYWxvZy9jZXJ0aWZpY2F0ZS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY2VydGlmaWNhdGUtZGlhbG9nL2NlcnRpZmljYXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUN6RCxPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9ILE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQTs7Ozs7Ozs7O0FBVTdCLE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFDVSxNQUFvQixFQUNyQixTQUFtRCxFQUMxQixJQUFTLEVBQ1YsV0FBZ0I7UUFIdkMsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1YsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMakQsV0FBTSxHQUFHLEVBQUUsQ0FBQTtJQVFYLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQTtRQUN4QiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyx1REFBdUQsSUFBSSxDQUFDLFdB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QUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFO1lBQzFELE9BQU8sRUFBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUMvQixFQUNEO1lBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNwQixJQUFJLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFdBQVc7U0FDaEQsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQWU7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDaEM7WUFDRSxJQUFJLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7WUFDdEMsRUFBRSxFQUFFLHNCQUFzQjtZQUMxQixPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUIsRUFDRDtZQUNFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDcEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXO1NBQ2hELENBQ0YsQ0FBQTtJQUNILENBQUM7K0dBOUdVLDBCQUEwQixnRkFNM0IsZUFBZSxhQUNmLGFBQWE7bUdBUFosMEJBQTBCLGdJQ2J2Qyw0NURBb0NBOzs0RkR2QmEsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLDhCQUE4QixRQUlqQyxFQUFFLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRTs7MEJBUy9DLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiwgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJ1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlLCBXc0V2ZW50cyB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xuaW1wb3J0IHsganNQREYgfSBmcm9tICdqc3BkZidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3Mtd2lkZ2V0LWNlcnRpZmljYXRlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZXJ0aWZpY2F0ZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZXJ0aWZpY2F0ZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgIC8qIHRzbGludDpkaXNhYmxlICovXG4gICBob3N0OiB7IGNsYXNzOiAnY2VydGlmaWNhdGUtaW5uZXItZGlhbG9nLXBhbmVsJyB9LFxuICAgLyogdHNsaW50OmVuYWJsZSAqL1xufSlcbmV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHVybCE6IHN0cmluZ1xuICBuYXZVcmwgPSAnJ1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGV2ZW50czogRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDZXJ0aWZpY2F0ZURpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXJsID0gdGhpcy5kYXRhLmNldFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICB0aGlzLm5hdlVybCA9IGBodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmluZy9zaGFyZS1vZmZzaXRlLz91cmw9JHt0aGlzLmVudmlyb25tZW50LmNvbnRlbnRIb3N0fS9hcGlzL3B1YmxpYy92OC9jZXJ0L2Rvd25sb2FkLyR7dGhpcy5kYXRhLmNlcnRJZH1gXG4gIH1cblxuICBkb3dubG9hZENlcnQoKSB7XG4gICAgdGhpcy5yYWlzZUludHJlYWN0VGVsZW1ldHJ5KCdzdmcnKVxuICAgIGNvbnN0IGE6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGEuaHJlZiA9IHRoaXMuZGF0YS5jZXRcbiAgICBhLmRvd25sb2FkID0gJ0NlcnRpZmljYXRlJ1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcbiAgICBhLnN0eWxlID0gJ2Rpc3BsYXk6IG5vbmUnXG4gICAgYS5jbGljaygpXG4gICAgYS5yZW1vdmUoKVxuICB9XG5cbiAgZG93bmxvYWRDZXJ0UG5nKCkge1xuICAgIHRoaXMucmFpc2VJbnRyZWFjdFRlbGVtZXRyeSgncG5nJylcbiAgICBjb25zdCB1cmlEYXRhID0gdGhpcy5kYXRhLmNldFxuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpXG4gICAgaW1nLnNyYyA9IHVyaURhdGFcbiAgICBpbWcud2lkdGggPSAxODIwXG4gICAgaW1nLmhlaWdodCA9IDEwMDBcbiAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICBbY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0XSA9IFtpbWcud2lkdGgsIGltZy5oZWlnaHRdXG4gICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxuICAgICAgaWYgKGN0eCkge1xuICAgICAgICAvLyBjdHguaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0gdHJ1ZVxuICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCwgaW1nLndpZHRoLCBpbWcuaGVpZ2h0KVxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXG4gICAgICAgIGNvbnN0IHF1YWxpdHkgPSAxLjAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC9pbWFnZVNtb290aGluZ1F1YWxpdHlcbiAgICAgICAgYS5ocmVmID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJywgcXVhbGl0eSlcbiAgICAgICAgYS5kb3dubG9hZCA9ICdDZXJ0aWZpY2F0ZSdcbiAgICAgICAgYS5hcHBlbmQoY2FudmFzKVxuICAgICAgICBhLmNsaWNrKClcbiAgICAgICAgYS5yZW1vdmUoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBhc3luYyBkb3dubG9hZENlcnRQZGYoKSB7XG4gICAgdGhpcy5yYWlzZUludHJlYWN0VGVsZW1ldHJ5KCdwZGYnKVxuICAgIGNvbnN0IHVyaURhdGEgPSB0aGlzLmRhdGEuY2V0XG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKClcbiAgICBpbWcuc3JjID0gdXJpRGF0YVxuICAgIGltZy53aWR0aCA9IDE4MjBcbiAgICBpbWcuaGVpZ2h0ID0gMTAwMFxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIFtjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHRdID0gW2ltZy53aWR0aCwgaW1nLmhlaWdodF1cbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG4gICAgICBpZiAoY3R4KSB7XG4gICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXG4gICAgICAgIGNvbnN0IHF1YWxpdHkgPSAxLjAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC9pbWFnZVNtb290aGluZ1F1YWxpdHlcbiAgICAgICAgY29uc3QgZGF0YUltZyA9IGNhbnZhcy50b0RhdGFVUkwoJ2FwcGxpY2F0aW9uL3BkZicsIHF1YWxpdHkpXG4gICAgICAgIGNvbnN0IHBkZiA9IG5ldyBqc1BERignbGFuZHNjYXBlJywgJ3B4JywgJ2E0JylcblxuICAgICAgICAvLyBhZGQgdGhlIGltYWdlIHRvIHRoZSBQREZcbiAgICAgICAgcGRmLmFkZEltYWdlKGRhdGFJbWcsIDEwLCAyMCwgNjAwLCAzNTApXG5cbiAgICAgICAgLy8gZG93bmxvYWQgdGhlIFBERlxuICAgICAgICBwZGYuc2F2ZSgnQ2VydGlmaWNhdGUucGRmJylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaGFyZUNlcnQoKSB7XG4gICAgdGhpcy5yYWlzZVNoYXJlSW50cmVhY3RUZWxlbWV0cnkoJ3NoYXJlJylcbiAgICByZXR1cm4gd2luZG93Lm9wZW4odGhpcy5uYXZVcmwsICdfYmxhbmsnKVxuICB9XG5cbiAgcmFpc2VTaGFyZUludHJlYWN0VGVsZW1ldHJ5KHR5cGU/OiBzdHJpbmcsIGFjdGlvbj86IHN0cmluZykge1xuICAgIHRoaXMuZXZlbnRzLnJhaXNlSW50ZXJhY3RUZWxlbWV0cnkoXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFdzRXZlbnRzLkVudW1JbnRlcmFjdFR5cGVzLkNMSUNLLFxuICAgICAgICBpZDogYCR7dHlwZX0tJHtXc0V2ZW50cy5FbnVtSW50ZXJhY3RTdWJUeXBlcy5DRVJUSUZJQ0FURX1gLFxuICAgICAgICBzdWJUeXBlOiAgYWN0aW9uID8gYWN0aW9uIDogJycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogdGhpcy5kYXRhLmNlcnRJZCwgICAvLyBpZCBvZiB0aGUgY2VydGlmaWNhdGVcbiAgICAgICAgdHlwZTogV3NFdmVudHMuRW51bUludGVyYWN0U3ViVHlwZXMuQ0VSVElGSUNBVEUsXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcmFpc2VJbnRyZWFjdFRlbGVtZXRyeShhY3Rpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiBXc0V2ZW50cy5FbnVtSW50ZXJhY3RUeXBlcy5DTElDSyxcbiAgICAgICAgaWQ6ICdkb3dubG9hZC1jZXJ0aWZpY2F0ZScsXG4gICAgICAgIHN1YlR5cGU6IGFjdGlvbiA/IGFjdGlvbiA6ICcnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IHRoaXMuZGF0YS5jZXJ0SWQsICAgLy8gaWQgb2YgdGhlIGNlcnRpZmljYXRlXG4gICAgICAgIHR5cGU6IFdzRXZlbnRzLkVudW1JbnRlcmFjdFN1YlR5cGVzLkNFUlRJRklDQVRFLFxuICAgICAgfVxuICAgIClcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJuby1zaGFkb3cgY2VydGlmaWNhdGUtaW1nLWJveFwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uXCIgY29sb3I9XCJ3YXJuXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gPG1hdC1jYXJkLXRpdGxlPlxuXG4gICAgPC9tYXQtY2FyZC10aXRsZT4gLS0+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJjZXJ0aWZpY2F0ZS1pbWctY29udGVudFwiPlxuICAgICAgICA8aW1nICNjZXJ0aWZpY2F0ZSBbc3JjXT1cInVybHwgcGlwZVNhZmVTYW5pdGl6ZXI6ICd1cmwnXCIgYWx0PVwiQ2VydGlmaWNhdGVcIiByb2xlPVwiaW1hZ2VcIiBjbGFzcz1cImNlcnRpZmljYXRlLWJhbm5lci1pbWFnZVwiPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBjbGFzcz1cImZsZXggZmxleC1yb3ctcmV2ZXJzZSBnYXAtNFwiPlxuICAgICAgICA8IS0tIDx3cy13aWRnZXQtc3ZnLXRvLXBkZj48L3dzLXdpZGdldC1zdmctdG8tcGRmPiAtLT5cbiAgICAgICAgPGEgbWF0LWJ1dHRvbiAoY2xpY2spPVwic2hhcmVDZXJ0KClcIiBjbGFzcz1cIndzLW1hdC1hY2NlbnQtYm9yZGVyLWFjdGl2ZSBtYXQtYWNjZW50IGJ0bi1jdXN0b21cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uIG1hdGVyaWFsLWljb25zLW91dGxpbmVkIGRvd25sb2FkX2ljb24gbWFyZ2luLXJpZ2h0LXhzXCI+c2hhcmU8L21hdC1pY29uPlxuICAgICAgICAgICAgU2hhcmVcbiAgICAgICAgPC9hPlxuICAgICAgICA8YSBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LWJvcmRlci1hY3RpdmUgbWF0LWFjY2VudCBidG4tY3VzdG9tXCIgKGNsaWNrKT1cInJhaXNlSW50cmVhY3RUZWxlbWV0cnkoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24gbWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgZG93bmxvYWRfaWNvbiBtYXJnaW4tcmlnaHQteHNcIj5jbG91ZF9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICB7eydjZXJ0aWZpY2F0ZWRpYWxvZy5kb3dubG9hZCcgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPSdkb3dubG9hZENlcnRQZGYoKSc+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnBpY3R1cmVfYXNfcGRmPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eydjZXJ0aWZpY2F0ZWRpYWxvZy5wZGYnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPSdkb3dubG9hZENlcnRQbmcoKSc+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnBob3RvPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eydjZXJ0aWZpY2F0ZWRpYWxvZy5wbmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPSdkb3dubG9hZENlcnQoKSc+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPnBob3RvX3NpemVfc2VsZWN0X2FjdHVhbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3snY2VydGlmaWNhdGVkaWFsb2cuc3ZnJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NlcnRpZmljYXRlLWRpYWxvZy9jZXJ0aWZpY2F0ZS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY2VydGlmaWNhdGUtZGlhbG9nL2NlcnRpZmljYXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUN6RCxPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9ILE9BQU8sRUFBZ0IsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQTs7Ozs7Ozs7OztBQVU3QixNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLFlBQ1UsTUFBb0IsRUFDckIsU0FBbUQsRUFDMUIsSUFBUyxFQUNWLFdBQWdCO1FBSHZDLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBMEM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNWLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTGpELFdBQU0sR0FBRyxFQUFFLENBQUE7SUFRWCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUE7UUFFeEIsMkZBQTJGO1FBQzNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFB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bnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcbmltcG9ydCB7IEV2ZW50U2VydmljZSwgV3NFdmVudHMgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcbmltcG9ydCB7IGpzUERGIH0gZnJvbSAnanNwZGYnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLXdpZGdldC1jZXJ0aWZpY2F0ZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VydGlmaWNhdGUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VydGlmaWNhdGUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICAgaG9zdDogeyBjbGFzczogJ2NlcnRpZmljYXRlLWlubmVyLWRpYWxvZy1wYW5lbCcgfSxcbiAgIC8qIHRzbGludDplbmFibGUgKi9cbn0pXG5leHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB1cmwhOiBzdHJpbmdcbiAgbmF2VXJsID0gJydcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudHM6IEV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q2VydGlmaWNhdGVEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVybCA9IHRoaXMuZGF0YS5jZXRcbiAgICBcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGNlcnRpZmljYXRlIFVSTCBiYXNlZCBvbiB3aGV0aGVyIGl0J3MgYW4gYWNoaWV2ZW1lbnQvbWlsZXN0b25lIGNlcnRpZmljYXRlXG4gICAgY29uc3QgY2VydERvd25sb2FkVXJsID0gdGhpcy5kYXRhPy5pc0FjaGlldmVtZW50IFxuICAgICAgPyBgJHt0aGlzLmVudmlyb25tZW50LmNvbnRlbnRIb3N0fS9hcGlzL3B1YmxpYy92OC9taWxlc3RvbmUvY2VydC9kb3dubG9hZC8ke3RoaXMuZGF0YS5jZXJ0SWR9YFxuICAgICAgOiBgJHt0aGlzLmVudmlyb25tZW50LmNvbnRlbnRIb3N0fS9hcGlzL3B1YmxpYy92OC9jZXJ0L2Rvd25sb2FkLyR7dGhpcy5kYXRhLmNlcnRJZH1gXG4gICAgXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgIHRoaXMubmF2VXJsID0gYGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9zaGFyaW5nL3NoYXJlLW9mZnNpdGUvP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudChjZXJ0RG93bmxvYWRVcmwpfWBcbiAgfVxuXG4gIGRvd25sb2FkQ2VydCgpIHtcbiAgICB0aGlzLnJhaXNlSW50cmVhY3RUZWxlbWV0cnkoJ3N2ZycpXG4gICAgY29uc3QgYTogYW55ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXG4gICAgYS5ocmVmID0gdGhpcy5kYXRhLmNldFxuICAgIGEuZG93bmxvYWQgPSAnQ2VydGlmaWNhdGUnXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKVxuICAgIGEuc3R5bGUgPSAnZGlzcGxheTogbm9uZSdcbiAgICBhLmNsaWNrKClcbiAgICBhLnJlbW92ZSgpXG4gIH1cblxuICBkb3dubG9hZENlcnRQbmcoKSB7XG4gICAgdGhpcy5yYWlzZUludHJlYWN0VGVsZW1ldHJ5KCdwbmcnKVxuICAgIGNvbnN0IHVyaURhdGEgPSB0aGlzLmRhdGEuY2V0XG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKClcbiAgICBpbWcuc3JjID0gdXJpRGF0YVxuICAgIGltZy53aWR0aCA9IDE4MjBcbiAgICBpbWcuaGVpZ2h0ID0gMTAwMFxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIFtjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHRdID0gW2ltZy53aWR0aCwgaW1nLmhlaWdodF1cbiAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpXG4gICAgICBpZiAoY3R4KSB7XG4gICAgICAgIC8vIGN0eC5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSB0cnVlXG4gICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICAgICAgY29uc3QgcXVhbGl0eSA9IDEuMCAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEL2ltYWdlU21vb3RoaW5nUXVhbGl0eVxuICAgICAgICBhLmhyZWYgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnLCBxdWFsaXR5KVxuICAgICAgICBhLmRvd25sb2FkID0gJ0NlcnRpZmljYXRlJ1xuICAgICAgICBhLmFwcGVuZChjYW52YXMpXG4gICAgICAgIGEuY2xpY2soKVxuICAgICAgICBhLnJlbW92ZSgpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGFzeW5jIGRvd25sb2FkQ2VydFBkZigpIHtcbiAgICB0aGlzLnJhaXNlSW50cmVhY3RUZWxlbWV0cnkoJ3BkZicpXG4gICAgY29uc3QgdXJpRGF0YSA9IHRoaXMuZGF0YS5jZXRcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxuICAgIGltZy5zcmMgPSB1cmlEYXRhXG4gICAgaW1nLndpZHRoID0gMTgyMFxuICAgIGltZy5oZWlnaHQgPSAxMDAwXG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgW2NhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodF0gPSBbaW1nLndpZHRoLCBpbWcuaGVpZ2h0XVxuICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcbiAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGltZy53aWR0aCwgaW1nLmhlaWdodClcbiAgICAgICAgY29uc3QgcXVhbGl0eSA9IDEuMCAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEL2ltYWdlU21vb3RoaW5nUXVhbGl0eVxuICAgICAgICBjb25zdCBkYXRhSW1nID0gY2FudmFzLnRvRGF0YVVSTCgnYXBwbGljYXRpb24vcGRmJywgcXVhbGl0eSlcbiAgICAgICAgY29uc3QgcGRmID0gbmV3IGpzUERGKCdsYW5kc2NhcGUnLCAncHgnLCAnYTQnKVxuXG4gICAgICAgIC8vIGFkZCB0aGUgaW1hZ2UgdG8gdGhlIFBERlxuICAgICAgICBwZGYuYWRkSW1hZ2UoZGF0YUltZywgMTAsIDIwLCA2MDAsIDM1MClcblxuICAgICAgICAvLyBkb3dubG9hZCB0aGUgUERGXG4gICAgICAgIHBkZi5zYXZlKCdDZXJ0aWZpY2F0ZS5wZGYnKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldENlcnRpZmljYXRlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YT8uaXNBY2hpZXZlbWVudCBcbiAgICAgID8gYCR7dGhpcy5lbnZpcm9ubWVudC5jb250ZW50SG9zdH0vYXBpcy9wdWJsaWMvdjgvbWlsZXN0b25lL2NlcnQvZG93bmxvYWQvJHt0aGlzLmRhdGEuY2VydElkfWBcbiAgICAgIDogYCR7dGhpcy5lbnZpcm9ubWVudC5jb250ZW50SG9zdH0vYXBpcy9wdWJsaWMvdjgvY2VydC9kb3dubG9hZC8ke3RoaXMuZGF0YS5jZXJ0SWR9YFxuICB9XG5cbiAgc2hhcmVDZXJ0KCkge1xuICAgIHRoaXMucmFpc2VTaGFyZUludHJlYWN0VGVsZW1ldHJ5KCdzaGFyZScpXG4gICAgcmV0dXJuIHdpbmRvdy5vcGVuKHRoaXMubmF2VXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHNoYXJlT25MaW5rZWRJbigpIHtcbiAgICB0aGlzLnJhaXNlU2hhcmVJbnRyZWFjdFRlbGVtZXRyeSgnc2hhcmUnLCAnbGlua2VkaW4nKVxuICAgIGNvbnN0IGNlcnREb3dubG9hZFVybCA9IHRoaXMuZ2V0Q2VydGlmaWNhdGVVcmwoKVxuICAgIFxuICAgIFxuICAgIC8vIExpbmtlZEluJ3MgY3VycmVudCBzaGFyaW5nIGVuZHBvaW50XG4gICAgLy8gTm90ZTogTGlua2VkSW4gcmVxdWlyZXMgdGhlIFVSTCB0byBiZSBwdWJsaWNseSBhY2Nlc3NpYmxlXG4gICAgY29uc3QgbGlua2VkSW5VcmwgPSBgaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3NoYXJpbmcvc2hhcmUtb2Zmc2l0ZS8/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNlcnREb3dubG9hZFVybCl9YFxuICAgIFxuICAgIFxuICAgIC8vIE9wZW4gTGlua2VkSW4gc2hhcmUgZGlhbG9nXG4gICAgY29uc3QgcG9wdXAgPSB3aW5kb3cub3BlbihsaW5rZWRJblVybCwgJ19ibGFuaycsICd3aWR0aD02MDAsaGVpZ2h0PTYwMCx0b29sYmFyPTAsbWVudWJhcj0wLGxvY2F0aW9uPTAsc3RhdHVzPTEsc2Nyb2xsYmFycz0xLHJlc2l6YWJsZT0xJylcbiAgICBcbiAgICAvLyBDaGVjayBpZiBwb3B1cCB3YXMgYmxvY2tlZFxuICAgIGlmICghcG9wdXAgfHwgcG9wdXAuY2xvc2VkIHx8IHR5cGVvZiBwb3B1cC5jbG9zZWQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBGYWxsYmFjazogdHJ5IG9wZW5pbmcgaW4gc2FtZSB0YWJcbiAgICAgIHdpbmRvdy5vcGVuKGxpbmtlZEluVXJsLCAnX2JsYW5rJylcbiAgICB9XG4gIH1cblxuICBzaGFyZU9uRmFjZWJvb2soKSB7XG4gICAgdGhpcy5yYWlzZVNoYXJlSW50cmVhY3RUZWxlbWV0cnkoJ3NoYXJlJywgJ2ZhY2Vib29rJylcbiAgICBjb25zdCBjZXJ0RG93bmxvYWRVcmwgPSB0aGlzLmdldENlcnRpZmljYXRlVXJsKClcbiAgICBjb25zdCBmYWNlYm9va1VybCA9IGBodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT0ke2VuY29kZVVSSUNvbXBvbmVudChjZXJ0RG93bmxvYWRVcmwpfWBcbiAgICB3aW5kb3cub3BlbihmYWNlYm9va1VybCwgJ19ibGFuaycsICd3aWR0aD02MDAsaGVpZ2h0PTYwMCcpXG4gIH1cblxuICBzaGFyZU9uVHdpdHRlcigpIHtcbiAgICB0aGlzLnJhaXNlU2hhcmVJbnRyZWFjdFRlbGVtZXRyeSgnc2hhcmUnLCAndHdpdHRlcicpXG4gICAgY29uc3QgY2VydERvd25sb2FkVXJsID0gdGhpcy5nZXRDZXJ0aWZpY2F0ZVVybCgpXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZGF0YT8uaXNBY2hpZXZlbWVudCBcbiAgICAgID8gJ0kgaGF2ZSBhY2hpZXZlZCBhIG1pbGVzdG9uZSEgQ2hlY2sgb3V0IG15IGNlcnRpZmljYXRlLidcbiAgICAgIDogJ0kgaGF2ZSBjb21wbGV0ZWQgYSBjb3Vyc2UhIENoZWNrIG91dCBteSBjZXJ0aWZpY2F0ZS4nXG4gICAgY29uc3QgdHdpdHRlclVybCA9IGBodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9JHtlbmNvZGVVUklDb21wb25lbnQoY2VydERvd25sb2FkVXJsKX0mdGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudCh0ZXh0KX1gXG4gICAgd2luZG93Lm9wZW4odHdpdHRlclVybCwgJ19ibGFuaycsICd3aWR0aD02MDAsaGVpZ2h0PTYwMCcpXG4gIH1cblxuICBzaGFyZU9uV2hhdHNBcHAoKSB7XG4gICAgdGhpcy5yYWlzZVNoYXJlSW50cmVhY3RUZWxlbWV0cnkoJ3NoYXJlJywgJ3doYXRzYXBwJylcbiAgICBjb25zdCBjZXJ0RG93bmxvYWRVcmwgPSB0aGlzLmdldENlcnRpZmljYXRlVXJsKClcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5kYXRhPy5pc0FjaGlldmVtZW50IFxuICAgICAgPyAnSSBoYXZlIGFjaGlldmVkIGEgbWlsZXN0b25lISBDaGVjayBvdXQgbXkgY2VydGlmaWNhdGU6ICdcbiAgICAgIDogYEkgaGF2ZSBjb21wbGV0ZWQgYSBjb3Vyc2UhIENoZWNrIG91dCBteSBjZXJ0aWZpY2F0ZTogYFxuICAgIGNvbnN0IHdoYXRzYXBwVXJsID0gYGh0dHBzOi8vYXBpLndoYXRzYXBwLmNvbS9zZW5kP3RleHQ9JHtlbmNvZGVVUklDb21wb25lbnQodGV4dCArIGNlcnREb3dubG9hZFVybCl9YFxuICAgIHdpbmRvdy5vcGVuKHdoYXRzYXBwVXJsLCAnX2JsYW5rJylcbiAgfVxuXG4gIHNoYXJlVmlhRW1haWwoKSB7XG4gICAgdGhpcy5yYWlzZVNoYXJlSW50cmVhY3RUZWxlbWV0cnkoJ3NoYXJlJywgJ2VtYWlsJylcbiAgICBjb25zdCBjZXJ0RG93bmxvYWRVcmwgPSB0aGlzLmdldENlcnRpZmljYXRlVXJsKClcbiAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5kYXRhPy5pc0FjaGlldmVtZW50IFxuICAgICAgPyAnTWlsZXN0b25lIEFjaGlldmVtZW50IENlcnRpZmljYXRlJ1xuICAgICAgOiAnQ291cnNlIENvbXBsZXRpb24gQ2VydGlmaWNhdGUnXG4gICAgY29uc3QgYm9keSA9IHRoaXMuZGF0YT8uaXNBY2hpZXZlbWVudCBcbiAgICAgID8gYEkgaGF2ZSBhY2hpZXZlZCBhIG1pbGVzdG9uZSEgWW91IGNhbiB2aWV3IG15IGNlcnRpZmljYXRlIGhlcmU6ICR7Y2VydERvd25sb2FkVXJsfWBcbiAgICAgIDogYEkgaGF2ZSBjb21wbGV0ZWQgYSBjb3Vyc2UhIFlvdSBjYW4gdmlldyBteSBjZXJ0aWZpY2F0ZSBoZXJlOiAke2NlcnREb3dubG9hZFVybH1gXG4gICAgY29uc3QgbWFpbHRvVXJsID0gYG1haWx0bzo/c3ViamVjdD0ke2VuY29kZVVSSUNvbXBvbmVudChzdWJqZWN0KX0mYm9keT0ke2VuY29kZVVSSUNvbXBvbmVudChib2R5KX1gXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBtYWlsdG9VcmxcbiAgfVxuXG4gIGNvcHlDZXJ0aWZpY2F0ZUxpbmsoKSB7XG4gICAgdGhpcy5yYWlzZVNoYXJlSW50cmVhY3RUZWxlbWV0cnkoJ3NoYXJlJywgJ2NvcHknKVxuICAgIGNvbnN0IGNlcnREb3dubG9hZFVybCA9IHRoaXMuZ2V0Q2VydGlmaWNhdGVVcmwoKVxuICAgIFxuICAgIGlmIChuYXZpZ2F0b3IuY2xpcGJvYXJkICYmIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KSB7XG4gICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjZXJ0RG93bmxvYWRVcmwpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnQ2VydGlmaWNhdGUgbGluayBjb3BpZWQgdG8gY2xpcGJvYXJkJylcbiAgICAgICAgLy8gWW91IGNhbiBhZGQgYSBzbmFja2JhciBub3RpZmljYXRpb24gaGVyZSBpZiBuZWVkZWRcbiAgICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5IGNlcnRpZmljYXRlIGxpbms6JywgZXJyKVxuICAgICAgICB0aGlzLmZhbGxiYWNrQ29weVRleHRUb0NsaXBib2FyZChjZXJ0RG93bmxvYWRVcmwpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZhbGxiYWNrQ29weVRleHRUb0NsaXBib2FyZChjZXJ0RG93bmxvYWRVcmwpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmYWxsYmFja0NvcHlUZXh0VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpXG4gICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0XG4gICAgdGV4dEFyZWEuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gICAgdGV4dEFyZWEuc3R5bGUudG9wID0gJzAnXG4gICAgdGV4dEFyZWEuc3R5bGUubGVmdCA9ICcwJ1xuICAgIHRleHRBcmVhLnN0eWxlLndpZHRoID0gJzJlbSdcbiAgICB0ZXh0QXJlYS5zdHlsZS5oZWlnaHQgPSAnMmVtJ1xuICAgIHRleHRBcmVhLnN0eWxlLnBhZGRpbmcgPSAnMCdcbiAgICB0ZXh0QXJlYS5zdHlsZS5ib3JkZXIgPSAnbm9uZSdcbiAgICB0ZXh0QXJlYS5zdHlsZS5vdXRsaW5lID0gJ25vbmUnXG4gICAgdGV4dEFyZWEuc3R5bGUuYm94U2hhZG93ID0gJ25vbmUnXG4gICAgdGV4dEFyZWEuc3R5bGUuYmFja2dyb3VuZCA9ICd0cmFuc3BhcmVudCdcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKVxuICAgIHRleHRBcmVhLmZvY3VzKClcbiAgICB0ZXh0QXJlYS5zZWxlY3QoKVxuICAgIHRyeSB7XG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpXG4gICAgICBjb25zb2xlLmxvZygnQ2VydGlmaWNhdGUgbGluayBjb3BpZWQgdG8gY2xpcGJvYXJkIChmYWxsYmFjayknKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFsbGJhY2s6IEZhaWxlZCB0byBjb3B5JywgZXJyKVxuICAgIH1cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRBcmVhKVxuICB9XG5cbiAgcmFpc2VTaGFyZUludHJlYWN0VGVsZW1ldHJ5KHR5cGU/OiBzdHJpbmcsIGFjdGlvbj86IHN0cmluZykge1xuICAgIHRoaXMuZXZlbnRzLnJhaXNlSW50ZXJhY3RUZWxlbWV0cnkoXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFdzRXZlbnRzLkVudW1JbnRlcmFjdFR5cGVzLkNMSUNLLFxuICAgICAgICBpZDogYCR7dHlwZX0tJHtXc0V2ZW50cy5FbnVtSW50ZXJhY3RTdWJUeXBlcy5DRVJUSUZJQ0FURX1gLFxuICAgICAgICBzdWJUeXBlOiAgYWN0aW9uID8gYWN0aW9uIDogJycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogdGhpcy5kYXRhLmNlcnRJZCwgICAvLyBpZCBvZiB0aGUgY2VydGlmaWNhdGVcbiAgICAgICAgdHlwZTogV3NFdmVudHMuRW51bUludGVyYWN0U3ViVHlwZXMuQ0VSVElGSUNBVEUsXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcmFpc2VJbnRyZWFjdFRlbGVtZXRyeShhY3Rpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiBXc0V2ZW50cy5FbnVtSW50ZXJhY3RUeXBlcy5DTElDSyxcbiAgICAgICAgaWQ6ICdkb3dubG9hZC1jZXJ0aWZpY2F0ZScsXG4gICAgICAgIHN1YlR5cGU6IGFjdGlvbiA/IGFjdGlvbiA6ICcnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IHRoaXMuZGF0YS5jZXJ0SWQsICAgLy8gaWQgb2YgdGhlIGNlcnRpZmljYXRlXG4gICAgICAgIHR5cGU6IFdzRXZlbnRzLkVudW1JbnRlcmFjdFN1YlR5cGVzLkNFUlRJRklDQVRFLFxuICAgICAgfVxuICAgIClcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJuby1zaGFkb3cgY2VydGlmaWNhdGUtaW1nLWJveFwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uXCIgY29sb3I9XCJ3YXJuXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDwhLS0gPG1hdC1jYXJkLXRpdGxlPlxuXG4gICAgPC9tYXQtY2FyZC10aXRsZT4gLS0+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJjZXJ0aWZpY2F0ZS1pbWctY29udGVudFwiPlxuICAgICAgICA8aW1nICNjZXJ0aWZpY2F0ZSBbc3JjXT1cInVybHwgcGlwZVNhZmVTYW5pdGl6ZXI6ICd1cmwnXCIgYWx0PVwiQ2VydGlmaWNhdGVcIiByb2xlPVwiaW1hZ2VcIiBjbGFzcz1cImNlcnRpZmljYXRlLWJhbm5lci1pbWFnZVwiPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBjbGFzcz1cImZsZXggZmxleC1yb3ctcmV2ZXJzZSBnYXAtNFwiPlxuICAgICAgICA8IS0tIDx3cy13aWRnZXQtc3ZnLXRvLXBkZj48L3dzLXdpZGdldC1zdmctdG8tcGRmPiAtLT5cbiAgICAgICAgPGEgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic2hhcmVNZW51XCIgY2xhc3M9XCJ3cy1tYXQtYWNjZW50LWJvcmRlci1hY3RpdmUgbWF0LWFjY2VudCBidG4tY3VzdG9tXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbiBtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBkb3dubG9hZF9pY29uIG1hcmdpbi1yaWdodC14c1wiPnNoYXJlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIFNoYXJlXG4gICAgICAgIDwvYT5cbiAgICAgICAgPG1hdC1tZW51ICNzaGFyZU1lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT0nc2hhcmVPbkxpbmtlZEluKCknPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMTkgM2EyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxNG0tLjUgMTUuNXYtNS4zYTMuMjYgMy4yNiAwIDAgMC0zLjI2LTMuMjZjLS44NSAwLTEuODQuNTItMi4zMiAxLjN2LTEuMTFoLTIuNzl2OC4zN2gyLjc5di00LjkzYzAtLjc3LjYyLTEuNCAxLjM5LTEuNGExLjQgMS40IDAgMCAxIDEuNCAxLjR2NC45M2gyLjc5TTYuODggOC41NmExLjY4IDEuNjggMCAwIDAgMS42OC0xLjY4YzAtLjkzLS43NS0xLjY5LTEuNjgtMS42OWExLjY5IDEuNjkgMCAwIDAtMS42OSAxLjY5YzAgLjkzLjc2IDEuNjggMS42OSAxLjY4bTEuMzkgOS45NHYtOC4zN0g1LjV2OC4zN2gyLjc3elwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5MaW5rZWRJbjwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J3NoYXJlT25GYWNlYm9vaygpJz5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTEyIDIuMDRDNi41IDIuMDQgMiA2LjUzIDIgMTIuMDZDMiAxNy4wNiA1LjY2IDIxLjIxIDEwLjQ0IDIxLjk2VjE0Ljk2SDcuOVYxMi4wNkgxMC40NFY5Ljg1QzEwLjQ0IDcuMzQgMTEuOTMgNS45NiAxNC4yMiA1Ljk2QzE1LjMxIDUuOTYgMTYuNDUgNi4xNSAxNi40NSA2LjE1VjguNjJIMTUuMTlDMTMuOTUgOC42MiAxMy41NiA5LjM5IDEzLjU2IDEwLjE4VjEyLjA2SDE2LjM0TDE1Ljg5IDE0Ljk2SDEzLjU2VjIxLjk2QTEwIDEwIDAgMCAwIDIyIDEyLjA2QzIyIDYuNTMgMTcuNSAyLjA0IDEyIDIuMDRaXCIvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPkZhY2Vib29rPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT0nc2hhcmVPblR3aXR0ZXIoKSc+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yMi40Niw2QzIxLjY5LDYuMzUgMjAuODYsNi41OCAyMCw2LjY5QzIwLjg4LDYuMTYgMjEuNTYsNS4zMiAyMS44OCw0LjMxQzIxLjA1LDQuODEgMjAuMTMsNS4xNiAxOS4xNiw1LjM2QzE4LjM3LDQuNSAxNy4yNiw0IDE2LDRDMTMuNjUsNCAxMS43Myw1LjkyIDExLjczLDguMjlDMTEuNzMsOC42MyAxMS43Nyw4Ljk2IDExLjg0LDkuMjdDOC4yOCw5LjA5IDUuMTEsNy4zOCAzLDQuNzlDMi42Myw1LjQyIDIuNDIsNi4xNiAyLjQyLDYuOTRDMi40Miw4LjQzIDMuMTcsOS43NSA0LjMzLDEwLjVDMy42MiwxMC41IDIuOTYsMTAuMyAyLjM4LDEwQzIuMzgsMTAgMi4zOCwxMCAyLjM4LDEwLjAzQzIuMzgsMTIuMTEgMy44NiwxMy44NSA1LjgyLDE0LjI0QzUuNDYsMTQuMzQgNS4wOCwxNC4zOSA0LjY5LDE0LjM5QzQuNDIsMTQuMzkgNC4xNSwxNC4zNiAzLjg5LDE0LjMxQzQuNDMsMTYgNiwxNy4yNiA3Ljg5LDE3LjI5QzYuNDMsMTguNDUgNC41OCwxOS4xMyAyLjU2LDE5LjEzQzIuMjIsMTkuMTMgMS44OCwxOS4xMSAxLjU0LDE5LjA3QzMuNDQsMjAuMjkgNS43MCwyMSA4LjEyLDIxQzE2LDIxIDIwLjMzLDE0LjQ2IDIwLjMzLDguNzlDMjAuMzMsOC42IDIwLjMzLDguNDIgMjAuMzIsOC4yM0MyMS4xNiw3LjYzIDIxLjg4LDYuODcgMjIuNDYsNlpcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+VHdpdHRlcjwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J3NoYXJlT25XaGF0c0FwcCgpJz5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTEyLjA0IDJDNi41OCAyIDIuMTMgNi40NSAyLjEzIDExLjkxQzIuMTMgMTMuNjYgMi41OSAxNS4zNiAzLjQ1IDE2Ljg2TDIuMDUgMjJMNy4zIDIwLjYyQzguNzUgMjEuNDEgMTAuMzggMjEuODMgMTIuMDQgMjEuODNDMTcuNSAyMS44MyAyMS45NSAxNy4zOCAyMS45NSAxMS45MkMyMS45NSA5LjI3IDIwLjkyIDYuNzggMTkuMDUgNC45MUMxNy4xOCAzLjAzIDE0LjY5IDIgMTIuMDQgMk0xMi4wNSAzLjY3QzE0LjI1IDMuNjcgMTYuMzEgNC41MyAxNy44NyA2LjA5QzE5LjQyIDcuNjUgMjAuMjggOS43MiAyMC4yOCAxMS45MkMyMC4yOCAxNi40NiAxNi41OCAyMC4xNSAxMi4wNCAyMC4xNUMxMC41NiAyMC4xNSA5LjExIDE5Ljc2IDcuODUgMTlMNy41NSAxOC44M0w0LjQzIDE5LjY1TDUuMjYgMTYuNjFMNS4wNiAxNi4yOUM0LjI0IDE1IDMuOCAxMy40NyAzLjggMTEuOTFDMy44MSA3LjM3IDcuNSAzLjY3IDEyLjA1IDMuNjdNOC41MyA3LjMzQzguMzcgNy4zMyA4LjEgNy4zOSA3Ljg3IDcuNjRDNy42NSA3Ljg5IDcgOC41IDcgOS43MUM3IDEwLjkzIDcuODkgMTIuMSA4IDEyLjI3QzguMTQgMTIuNDQgOS43NiAxNC45NCAxMi4yNSAxNkMxMi44NCAxNi4yNyAxMy4zIDE2LjQyIDEzLjY2IDE2LjUzQzE0LjI1IDE2LjcyIDE0Ljc5IDE2LjY5IDE1LjIyIDE2LjYzQzE1LjcgMTYuNTYgMTYuNjggMTYuMDMgMTYuODkgMTUuNDVDMTcuMSAxNC44NyAxNy4xIDE0LjM4IDE3LjA0IDE0LjI3QzE2Ljk3IDE0LjE3IDE2LjgxIDE0LjExIDE2LjU2IDE0QzE2LjMxIDEzLjg2IDE1LjA5IDEzLjI2IDE0Ljg3IDEzLjE4QzE0LjY0IDEzLjEgMTQuNSAxMy4wNiAxNC4zMSAxMy4zQzE0LjE1IDEzLjU1IDEzLjY3IDE0LjExIDEzLjUzIDE0LjI3QzEzLjM4IDE0LjQ0IDEzLjI0IDE0LjQ2IDEzIDE0LjM0QzEyLjc0IDE0LjIxIDExLjk0IDEzLjk1IDExIDEzLjExQzEwLjI2IDEyLjQ1IDkuNzcgMTEuNjQgOS42MiAxMS4zOUM5LjUgMTEuMTUgOS42MSAxMSA5LjczIDEwLjg5QzkuODQgMTAuNzggMTAgMTAuNiAxMC4xIDEwLjQ1QzEwLjIzIDEwLjMxIDEwLjI3IDEwLjIgMTAuMzUgMTAuMDRDMTAuNDMgOS44NyAxMC4zOSA5LjczIDEwLjMzIDkuNjFDMTAuMjcgOS41IDkuNzcgOC4yNiA5LjU2IDcuNzdDOS4zNiA3LjI5IDkuMTYgNy4zNSA5IDcuMzRDOC44NiA3LjM0IDguNyA3LjMzIDguNTMgNy4zM1pcIi8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+V2hhdHNBcHA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPSdzaGFyZVZpYUVtYWlsKCknPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lbWFpbDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+RW1haWw8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J2NvcHlDZXJ0aWZpY2F0ZUxpbmsoKSc+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+Q29weSBMaW5rPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDxhIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cIndzLW1hdC1hY2NlbnQtYm9yZGVyLWFjdGl2ZSBtYXQtYWNjZW50IGJ0bi1jdXN0b21cIiAoY2xpY2spPVwicmFpc2VJbnRyZWFjdFRlbGVtZXRyeSgpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbiBtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBkb3dubG9hZF9pY29uIG1hcmdpbi1yaWdodC14c1wiPmNsb3VkX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIHt7J2NlcnRpZmljYXRlZGlhbG9nLmRvd25sb2FkJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvYT5cbiAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J2Rvd25sb2FkQ2VydFBkZigpJz5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+cGljdHVyZV9hc19wZGY8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7J2NlcnRpZmljYXRlZGlhbG9nLnBkZicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J2Rvd25sb2FkQ2VydFBuZygpJz5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+cGhvdG88L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7J2NlcnRpZmljYXRlZGlhbG9nLnBuZycgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9J2Rvd25sb2FkQ2VydCgpJz5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+cGhvdG9fc2l6ZV9zZWxlY3RfYWN0dWFsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eydjZXJ0aWZpY2F0ZWRpYWxvZy5zdmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG48L21hdC1jYXJkPlxuIl19
|