@sunbird-cb/toc 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -55
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -126
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -85
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -100
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -48
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -120
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -92
- package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -48
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -89
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -42
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -41
- package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -78
- package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -45
- package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -70
- package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -187
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -86
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -31
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -941
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -183
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -327
- package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -297
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +248 -225
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +1148 -1030
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -16
- package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -43
- package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -133
- package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -66
- package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -278
- package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -21
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -847
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -219
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -209
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -26
- package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -19
- package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -23
- package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -113
- package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -110
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -26
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -19
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -67
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -28
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -77
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -2
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -61
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -20
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +67 -67
- package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -139
- package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -71
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -34
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -56
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -25
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -37
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -32
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -30
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -38
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -115
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -12
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -51
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -61
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -87
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -36
- package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -62
- package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -24
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -192
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -44
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -99
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -58
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -67
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -112
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -2
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -69
- package/esm2022/lib/_collection-api.mjs +57 -57
- package/esm2022/lib/_constants/widget-content.constants.mjs +19 -19
- package/esm2022/lib/_directives/tooltip.directive.mjs +68 -68
- package/esm2022/lib/_models/common.model.mjs +2 -2
- package/esm2022/lib/_models/error.model.mjs +2 -2
- package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -24
- package/esm2022/lib/_services/rating.service.mjs +89 -89
- package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -29
- package/esm2022/lib/_services/viewer-route-util.mjs +103 -103
- package/esm2022/lib/_services/widget-content.model.mjs +247 -247
- package/esm2022/lib/_services/widget-content.service.mjs +594 -594
- package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -9
- package/esm2022/lib/app-toc-lib.module.mjs +499 -499
- package/esm2022/lib/collection.config.mjs +161 -161
- package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -37
- package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -1436
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -475
- package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -119
- package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -80
- package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -249
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -39
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -58
- package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -2229
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2907 -2905
- package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -157
- package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -48
- package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -47
- package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -766
- package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -243
- package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -116
- package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -44
- package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -1838
- package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -236
- package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -213
- package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -36
- package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -256
- package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -133
- package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -36
- package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -2
- package/esm2022/lib/models/app-toc.model.mjs +38 -38
- package/esm2022/lib/models/auto-complete.model.mjs +2 -2
- package/esm2022/lib/models/card-content.model.mjs +13 -13
- package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -2
- package/esm2022/lib/models/discussion-forum.model.mjs +14 -14
- package/esm2022/lib/models/goal.model.mjs +2 -2
- package/esm2022/lib/models/meta-tag.model.mjs +8 -8
- package/esm2022/lib/models/playlist.model.mjs +2 -2
- package/esm2022/lib/models/profile-revamp.model.mjs +2 -2
- package/esm2022/lib/models/rating.model.mjs +2 -2
- package/esm2022/lib/models/user-profile.model.mjs +21 -21
- package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -24
- package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -60
- package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -106
- package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -25
- package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -25
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -51
- package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -16
- package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -18
- package/esm2022/lib/services/access-control.service.mjs +56 -56
- package/esm2022/lib/services/action.service.mjs +23 -23
- package/esm2022/lib/services/app-toc-v2.service.mjs +313 -243
- package/esm2022/lib/services/app-toc.service.mjs +1613 -1387
- package/esm2022/lib/services/certificate.service.mjs +69 -69
- package/esm2022/lib/services/discuss-utils.service.mjs +58 -58
- package/esm2022/lib/services/editor.service.mjs +34 -34
- package/esm2022/lib/services/load-check.service.mjs +21 -21
- package/esm2022/lib/services/loader.service.mjs +33 -33
- package/esm2022/lib/services/mobile-apps.service.mjs +67 -67
- package/esm2022/lib/services/netcore.service.mjs +56 -56
- package/esm2022/lib/services/nps-grid.service.mjs +31 -31
- package/esm2022/lib/services/otp.service.mjs +43 -43
- package/esm2022/lib/services/profile-v2.service.mjs +43 -43
- package/esm2022/lib/services/reset-ratings.service.mjs +19 -19
- package/esm2022/lib/services/resource-download-helper.service.mjs +64 -64
- package/esm2022/lib/services/timer.service.mjs +23 -23
- package/esm2022/lib/services/title-tag.service.mjs +71 -71
- package/esm2022/lib/services/user-profile.service.mjs +55 -55
- package/esm2022/lib/services/viewer-data.service.mjs +64 -64
- package/esm2022/lib/services/viewer-util.service.mjs +590 -500
- package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -291
- package/esm2022/lib/share-toc/share-toc.module.mjs +119 -119
- package/esm2022/public-api.mjs +71 -70
- package/esm2022/sunbird-cb-toc.mjs +4 -4
- package/fesm2022/sunbird-cb-toc.mjs +24777 -24250
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +16 -16
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +31 -31
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +15 -15
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +20 -20
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +22 -22
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +15 -15
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +22 -22
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +22 -22
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +9 -9
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +11 -11
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +12 -12
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +18 -18
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +14 -14
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +11 -11
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +17 -17
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +14 -14
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +199 -199
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +16 -16
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +10 -10
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +38 -38
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +19 -19
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +11 -11
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +183 -183
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +41 -41
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +54 -54
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +47 -47
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -48
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +171 -154
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +8 -8
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +16 -16
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +40 -40
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +21 -21
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +45 -45
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +10 -10
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +128 -128
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +51 -51
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +29 -29
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +9 -9
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +7 -7
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +28 -28
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +24 -24
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +14 -14
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +9 -9
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +12 -12
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +10 -10
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +22 -22
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +8 -8
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +18 -18
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +8 -8
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +15 -15
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +35 -35
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +19 -19
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +14 -14
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +13 -13
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +11 -11
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +11 -11
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +15 -15
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +10 -10
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +16 -16
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +11 -11
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +34 -34
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +17 -17
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +15 -15
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +15 -15
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +21 -21
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +12 -12
- package/lib/_collection/_common/user-image/user-image.component.d.ts +21 -21
- package/lib/_collection/_common/user-image/user-image.module.d.ts +9 -9
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +47 -47
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +14 -14
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +22 -22
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +19 -19
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +15 -15
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +25 -25
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +21 -21
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +18 -18
- package/lib/_collection-api.d.ts +34 -34
- package/lib/_constants/widget-content.constants.d.ts +7 -7
- package/lib/_directives/tooltip.directive.d.ts +17 -17
- package/lib/_models/common.model.d.ts +3 -3
- package/lib/_models/error.model.d.ts +5 -5
- package/lib/_pipes/highlight.pipe.d.ts +10 -10
- package/lib/_services/rating.service.d.ts +18 -18
- package/lib/_services/samuhik-charcha.service.d.ts +13 -13
- package/lib/_services/viewer-route-util.d.ts +8 -8
- package/lib/_services/widget-content.model.d.ts +515 -515
- package/lib/_services/widget-content.service.d.ts +101 -101
- package/lib/_shared/translate-loader.factory.d.ts +7 -7
- package/lib/app-toc-lib.module.d.ts +88 -88
- package/lib/collection.config.d.ts +159 -159
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +17 -17
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +225 -225
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +78 -78
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +22 -22
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +31 -31
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +47 -47
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +14 -14
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +21 -21
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +314 -314
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +408 -408
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +47 -47
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +22 -22
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +14 -14
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +149 -149
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +42 -42
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +27 -27
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +15 -15
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +195 -195
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +44 -44
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +54 -54
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +18 -18
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +43 -43
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +20 -20
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +13 -13
- package/lib/models/app-toc-analytics.model.d.ts +152 -152
- package/lib/models/app-toc.model.d.ts +84 -84
- package/lib/models/auto-complete.model.d.ts +27 -27
- package/lib/models/card-content.model.d.ts +19 -19
- package/lib/models/content-strip-with-tabs.model.d.ts +44 -44
- package/lib/models/discussion-forum.model.d.ts +40 -40
- package/lib/models/goal.model.d.ts +22 -22
- package/lib/models/meta-tag.model.d.ts +6 -6
- package/lib/models/playlist.model.d.ts +23 -23
- package/lib/models/profile-revamp.model.d.ts +14 -14
- package/lib/models/rating.model.d.ts +17 -17
- package/lib/models/user-profile.model.d.ts +37 -37
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +16 -16
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +12 -12
- package/lib/resolvers/app-toc-resolver.service.d.ts +16 -16
- package/lib/resolvers/config-resolver.service.d.ts +11 -11
- package/lib/resolvers/profile-resolver.service.d.ts +11 -11
- package/lib/resolvers/restricted-features-resolver.service.d.ts +11 -11
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +19 -19
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +8 -8
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +8 -8
- package/lib/services/access-control.service.d.ts +29 -29
- package/lib/services/action.service.d.ts +9 -9
- package/lib/services/app-toc-v2.service.d.ts +16 -14
- package/lib/services/app-toc.service.d.ts +235 -177
- package/lib/services/certificate.service.d.ts +42 -42
- package/lib/services/discuss-utils.service.d.ts +33 -33
- package/lib/services/editor.service.d.ts +17 -17
- package/lib/services/load-check.service.d.ts +8 -8
- package/lib/services/loader.service.d.ts +16 -16
- package/lib/services/mobile-apps.service.d.ts +38 -38
- package/lib/services/netcore.service.d.ts +33 -33
- package/lib/services/nps-grid.service.d.ts +15 -15
- package/lib/services/otp.service.d.ts +20 -20
- package/lib/services/profile-v2.service.d.ts +20 -20
- package/lib/services/reset-ratings.service.d.ts +8 -8
- package/lib/services/resource-download-helper.service.d.ts +29 -29
- package/lib/services/timer.service.d.ts +9 -9
- package/lib/services/title-tag.service.d.ts +21 -21
- package/lib/services/user-profile.service.d.ts +24 -24
- package/lib/services/viewer-data.service.d.ts +58 -58
- package/lib/services/viewer-util.service.d.ts +76 -62
- package/lib/share-toc/share-toc/share-toc.component.d.ts +56 -56
- package/lib/share-toc/share-toc.module.d.ts +32 -32
- package/package.json +1 -1
- package/public-api.d.ts +56 -55
|
@@ -1,291 +1,291 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { ENTER } from '@angular/cdk/keycodes';
|
|
4
|
-
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
5
|
-
import { WsEvents } from '@sunbird-cb/utils-v2';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../_collection/_common/user-autocomplete/user-autocomplete.service";
|
|
8
|
-
import * as i2 from "@sunbird-cb/utils-v2";
|
|
9
|
-
import * as i3 from "@ngx-translate/core";
|
|
10
|
-
import * as i4 from "@angular/material/legacy-snack-bar";
|
|
11
|
-
import * as i5 from "../../services/app-toc.service";
|
|
12
|
-
import * as i6 from "@angular/common";
|
|
13
|
-
import * as i7 from "@angular/material/icon";
|
|
14
|
-
import * as i8 from "@angular/material/legacy-button";
|
|
15
|
-
import * as i9 from "@angular/material/legacy-chips";
|
|
16
|
-
import * as i10 from "@angular/material/legacy-progress-spinner";
|
|
17
|
-
import * as i11 from "@angular/material/legacy-form-field";
|
|
18
|
-
import * as i12 from "@angular/material/legacy-core";
|
|
19
|
-
import * as i13 from "@angular/material/legacy-autocomplete";
|
|
20
|
-
import * as i14 from "@angular/forms";
|
|
21
|
-
export class ShareTocComponent {
|
|
22
|
-
constructor(userAutoComplete, langtranslations, translate, snackBar, configSvc, tocSvc, events) {
|
|
23
|
-
this.userAutoComplete = userAutoComplete;
|
|
24
|
-
this.langtranslations = langtranslations;
|
|
25
|
-
this.translate = translate;
|
|
26
|
-
this.snackBar = snackBar;
|
|
27
|
-
this.configSvc = configSvc;
|
|
28
|
-
this.tocSvc = tocSvc;
|
|
29
|
-
this.events = events;
|
|
30
|
-
this.selectable = true;
|
|
31
|
-
this.removable = true;
|
|
32
|
-
this.addOnBlur = true;
|
|
33
|
-
this.separatorKeysCodes = [ENTER];
|
|
34
|
-
this.userCtrl = new UntypedFormControl('');
|
|
35
|
-
this.users = [];
|
|
36
|
-
this.allUsers = [];
|
|
37
|
-
this.maxEmailsLimit = 30;
|
|
38
|
-
this.showLoader = false;
|
|
39
|
-
this.contentLink = '';
|
|
40
|
-
this.resetEnableShare = new EventEmitter();
|
|
41
|
-
this.langtranslations.languageSelectedObservable.subscribe(() => {
|
|
42
|
-
if (localStorage.getItem('websiteLanguage')) {
|
|
43
|
-
this.translate.setDefaultLang('en');
|
|
44
|
-
const lang = localStorage.getItem('websiteLanguage');
|
|
45
|
-
this.translate.use(lang);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
this.shareForm = new UntypedFormGroup({
|
|
49
|
-
review: new UntypedFormControl(null, [Validators.minLength(1), Validators.maxLength(2000)]),
|
|
50
|
-
});
|
|
51
|
-
this.userCtrl.valueChanges.pipe(debounceTime(200), distinctUntilChanged()).subscribe((res) => {
|
|
52
|
-
this.filteredUsers = [];
|
|
53
|
-
if (res) {
|
|
54
|
-
this.getUsersToShare(res);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
}
|
|
60
|
-
getUsersToShare(queryStr) {
|
|
61
|
-
this.showLoader = true;
|
|
62
|
-
this.userAutoComplete.searchUser(queryStr, this.rootOrgId).subscribe(data => {
|
|
63
|
-
if (data.result && data.result.response) {
|
|
64
|
-
this.apiResponse = data.result.response.content;
|
|
65
|
-
let name = '';
|
|
66
|
-
let pEmail = '';
|
|
67
|
-
this.apiResponse.forEach((apiData) => {
|
|
68
|
-
apiData.firstName.split(' ').forEach((d) => {
|
|
69
|
-
name = name + d.substr(0, 1).toUpperCase();
|
|
70
|
-
});
|
|
71
|
-
if (apiData.profileDetails && apiData.profileDetails.personalDetails) {
|
|
72
|
-
pEmail = apiData.profileDetails.personalDetails.primaryEmail;
|
|
73
|
-
if (!this.allUsers.filter(user => user.email.toLowerCase().includes(pEmail.toLowerCase())).length) {
|
|
74
|
-
this.allUsers.push({
|
|
75
|
-
maskedEmail: apiData.maskedEmail,
|
|
76
|
-
id: apiData.identifier,
|
|
77
|
-
name: apiData.firstName,
|
|
78
|
-
iconText: name,
|
|
79
|
-
email: pEmail,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
this.showLoader = false;
|
|
85
|
-
}
|
|
86
|
-
if (this.allUsers.length === 0) {
|
|
87
|
-
this.filteredUsers = [];
|
|
88
|
-
}
|
|
89
|
-
this.filteredUsers = this.filterSharedUsers(queryStr);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
translateLabels(label, type, subtype) {
|
|
93
|
-
return this.langtranslations.translateActualLabel(label, type, subtype);
|
|
94
|
-
}
|
|
95
|
-
add(event) {
|
|
96
|
-
if (event.value && this.matAutocomplete && !this.matAutocomplete.isOpen) {
|
|
97
|
-
const input = event.input;
|
|
98
|
-
const value = event.value;
|
|
99
|
-
if (this.users.length === this.maxEmailsLimit) {
|
|
100
|
-
this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (this.users.includes(value.trim())) {
|
|
104
|
-
this.openSnackbar(this.translateLabels('dulicateEmail', 'contentSharing', ''));
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
// tslint:disable-next-line: max-line-length
|
|
108
|
-
const ePattern = new RegExp(/^(?!.*\.\.)(?!.*\._)(?!.*\._\.)(?!.*\.\.$)(?!.*\.$)[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/);
|
|
109
|
-
if (ePattern.test(value)) {
|
|
110
|
-
if ((value || '').trim()) {
|
|
111
|
-
this.users.push(value.trim());
|
|
112
|
-
}
|
|
113
|
-
if (input) {
|
|
114
|
-
input.value = '';
|
|
115
|
-
}
|
|
116
|
-
this.userCtrl.setValue('');
|
|
117
|
-
const el = document.getElementsByClassName('mat-chip-list-wrapper');
|
|
118
|
-
if (el != null) {
|
|
119
|
-
setTimeout(() => {
|
|
120
|
-
el[0].scrollTop = el[0].scrollHeight;
|
|
121
|
-
}, 200);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
this.openSnackbar(this.translateLabels('invalidEmail', 'contentSharing', ''));
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
remove(user) {
|
|
131
|
-
const index = this.users.indexOf(user);
|
|
132
|
-
if (index >= 0) {
|
|
133
|
-
this.users.splice(index, 1);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
selected(event) {
|
|
137
|
-
if (this.users.length === this.maxEmailsLimit) {
|
|
138
|
-
this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (this.users.includes(event.option.value)) {
|
|
142
|
-
this.openSnackbar(this.translateLabels('dulicateUser', 'contentSharing', ''));
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
this.users.push(event.option.value);
|
|
146
|
-
if (this.userInput) {
|
|
147
|
-
this.userInput.nativeElement.value = '';
|
|
148
|
-
}
|
|
149
|
-
this.userCtrl.setValue('');
|
|
150
|
-
const el = document.getElementsByClassName('mat-chip-list-wrapper');
|
|
151
|
-
if (el != null) {
|
|
152
|
-
setTimeout(() => {
|
|
153
|
-
el[0].scrollTop = el[0].scrollHeight;
|
|
154
|
-
}, 200);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
filterSharedUsers(value) {
|
|
158
|
-
if (value) {
|
|
159
|
-
const filterValue = value.toLowerCase();
|
|
160
|
-
return this.allUsers.filter(user => user.name.toLowerCase().includes(filterValue));
|
|
161
|
-
}
|
|
162
|
-
return [];
|
|
163
|
-
}
|
|
164
|
-
submitSharing() {
|
|
165
|
-
let courseId = '';
|
|
166
|
-
let courseName = '';
|
|
167
|
-
let coursePosterImageUrl = '';
|
|
168
|
-
let courseProvider = '';
|
|
169
|
-
let primaryCategory = '';
|
|
170
|
-
let courseLink = '';
|
|
171
|
-
if (this.content) {
|
|
172
|
-
courseProvider = this.content.organisation && this.content.organisation[0]
|
|
173
|
-
|| this.content.contentPartner && this.content.contentPartner.partnerCode
|
|
174
|
-
|| this.content.source;
|
|
175
|
-
courseId = this.baseContentReadData ? this.baseContentReadData.identifier : this.content.identifier || this.content.contentId,
|
|
176
|
-
courseName = this.content.name,
|
|
177
|
-
coursePosterImageUrl = this.content.posterImage ||
|
|
178
|
-
this.content.appIcon || 'assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg',
|
|
179
|
-
primaryCategory = this.content.primaryCategory || this.content.contentId ? 'External Course' : '',
|
|
180
|
-
courseLink = this.contentLink || '';
|
|
181
|
-
}
|
|
182
|
-
let language = '';
|
|
183
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
184
|
-
if (urlParams.has('ML')) {
|
|
185
|
-
language = urlParams.get('ML') || '';
|
|
186
|
-
}
|
|
187
|
-
const obj = {
|
|
188
|
-
request: {
|
|
189
|
-
courseId,
|
|
190
|
-
courseName,
|
|
191
|
-
coursePosterImageUrl,
|
|
192
|
-
courseProvider,
|
|
193
|
-
primaryCategory,
|
|
194
|
-
courseLink,
|
|
195
|
-
recipients: '',
|
|
196
|
-
...(language && { language }),
|
|
197
|
-
},
|
|
198
|
-
};
|
|
199
|
-
const recipients = [];
|
|
200
|
-
this.users.forEach((selectedUser) => {
|
|
201
|
-
if (selectedUser.includes('@') && selectedUser.includes('.')) {
|
|
202
|
-
recipients.push({ email: selectedUser });
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
const selectedUserObj = this.allUsers.filter(user => user.name === selectedUser);
|
|
206
|
-
if (selectedUserObj.length) {
|
|
207
|
-
recipients.push({ userId: selectedUserObj[0].id, email: selectedUserObj[0].email });
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
if (recipients.length) {
|
|
212
|
-
obj.request.recipients = recipients;
|
|
213
|
-
this.tocSvc.shareContent(obj).subscribe(result => {
|
|
214
|
-
if (result.responseCode === 'OK') {
|
|
215
|
-
this.openSnackbar(this.translateLabels('success', 'contentSharing', ''));
|
|
216
|
-
}
|
|
217
|
-
this.users = [];
|
|
218
|
-
this.resetEnableShareFlag();
|
|
219
|
-
this.filteredUsers = [];
|
|
220
|
-
this.allUsers = [];
|
|
221
|
-
this.userCtrl.setValue('');
|
|
222
|
-
}, error => {
|
|
223
|
-
// tslint:disable
|
|
224
|
-
console.log(error);
|
|
225
|
-
this.openSnackbar(this.translateLabels('error', 'contentSharing', ''));
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
onClose() {
|
|
230
|
-
this.resetEnableShareFlag();
|
|
231
|
-
this.users = [];
|
|
232
|
-
this.filteredUsers = [];
|
|
233
|
-
this.allUsers = [];
|
|
234
|
-
this.userCtrl.setValue('');
|
|
235
|
-
this.raiseTelemetry('shareClose');
|
|
236
|
-
}
|
|
237
|
-
copyToClipboard() {
|
|
238
|
-
const textArea = document.createElement('textarea');
|
|
239
|
-
textArea.value = window.location.href;
|
|
240
|
-
document.body.appendChild(textArea);
|
|
241
|
-
textArea.select();
|
|
242
|
-
document.execCommand('copy');
|
|
243
|
-
document.body.removeChild(textArea);
|
|
244
|
-
this.openSnackbar(this.translateLabels('linkCopied', 'contentSharing', ''));
|
|
245
|
-
this.raiseTelemetry('copyToClipboard');
|
|
246
|
-
}
|
|
247
|
-
raiseTelemetry(subType) {
|
|
248
|
-
this.events.raiseInteractTelemetry({
|
|
249
|
-
type: 'click',
|
|
250
|
-
subType: subType,
|
|
251
|
-
id: this.content ? this.content.identifier : '',
|
|
252
|
-
}, {
|
|
253
|
-
id: this.content ? this.content.identifier : '',
|
|
254
|
-
type: this.content ? this.content.primaryCategory : '',
|
|
255
|
-
}, {
|
|
256
|
-
pageIdExt: `btn-${subType}`,
|
|
257
|
-
module: WsEvents.EnumTelemetrymodules.CONTENT,
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
openSnackbar(primaryMsg, duration = 5000) {
|
|
261
|
-
this.snackBar.open(primaryMsg, 'X', {
|
|
262
|
-
duration,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
resetEnableShareFlag() {
|
|
266
|
-
this.resetEnableShare.emit(false);
|
|
267
|
-
}
|
|
268
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, deps: [{ token: i1.UserAutocompleteService }, { token: i2.MultilingualTranslationsService }, { token: i3.TranslateService }, { token: i4.MatLegacySnackBar }, { token: i2.ConfigurationsService }, { token: i5.AppTocService }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShareTocComponent, selector: "ws-app-share-toc", inputs: { rootOrgId: "rootOrgId", content: "content", contentLink: "contentLink", baseContentReadData: "baseContentReadData" }, outputs: { resetEnableShare: "resetEnableShare" }, viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }, { propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"share-container\">\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\n <div class=\"share-modal\">\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\n <div class=\"content-div\">\n <div class=\"triangle-left hidden md:block\"></div>\n <div class=\"contnet\">\n <section class=\"w-full flex align-center justify-between \">\n <div class=\"mb-2\">\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\n </div>\n </section>\n <form [formGroup]=\"shareForm\">\n <div class=\"mat-body-2\">\n <div class=\"md-5\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\n <mat-chip\n *ngFor=\"let user of users\"\n [selectable]=\"selectable\"\n [removable]=\"removable\"\n (removed)=\"remove(user)\">\n {{user}}\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\n </mat-chip>\n <input\n tabindex=\"-1\"\n class=\"inputTextBox\"\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\n #userInput\n formControlName=\"review\"\n [formControl]=\"userCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\n <div class=\"flex\">\n <div class=\"iconDiv\">\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\n </div>\n <div>\n <div>{{user.name}}</div>\n <div class=\"emailText\">{{user.maskedEmail}}</div>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"flex mt-5\">\n <div class=\"flex flex-1 flex-end\">\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} <mat-icon >link</mat-icon></span>\n <button mat-stroked-button type=\"submit\"\n class=\"text-white flex-auto-display send-btn\"\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\n (click)=\"submitSharing()\">\n {{'contentSharing.send' | translate}} <mat-icon>send</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i9.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i9.MatLegacyChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatLegacyChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLegacyHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i13.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i14.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
270
|
-
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, decorators: [{
|
|
272
|
-
type: Component,
|
|
273
|
-
args: [{ selector: 'ws-app-share-toc', template: "<div class=\"share-container\">\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\n <mat-spinner class=\"inline-block\"></mat-spinner>\n </div>\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\n <div class=\"share-modal\">\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\n <div class=\"content-div\">\n <div class=\"triangle-left hidden md:block\"></div>\n <div class=\"contnet\">\n <section class=\"w-full flex align-center justify-between \">\n <div class=\"mb-2\">\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\n </div>\n </section>\n <form [formGroup]=\"shareForm\">\n <div class=\"mat-body-2\">\n <div class=\"md-5\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\n <mat-chip\n *ngFor=\"let user of users\"\n [selectable]=\"selectable\"\n [removable]=\"removable\"\n (removed)=\"remove(user)\">\n {{user}}\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\n </mat-chip>\n <input\n tabindex=\"-1\"\n class=\"inputTextBox\"\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\n #userInput\n formControlName=\"review\"\n [formControl]=\"userCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"add($event)\">\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\n <div class=\"flex\">\n <div class=\"iconDiv\">\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\n </div>\n <div>\n <div>{{user.name}}</div>\n <div class=\"emailText\">{{user.maskedEmail}}</div>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"flex mt-5\">\n <div class=\"flex flex-1 flex-end\">\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} <mat-icon >link</mat-icon></span>\n <button mat-stroked-button type=\"submit\"\n class=\"text-white flex-auto-display send-btn\"\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\n (click)=\"submitSharing()\">\n {{'contentSharing.send' | translate}} <mat-icon>send</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"] }]
|
|
274
|
-
}], ctorParameters: function () { return [{ type: i1.UserAutocompleteService }, { type: i2.MultilingualTranslationsService }, { type: i3.TranslateService }, { type: i4.MatLegacySnackBar }, { type: i2.ConfigurationsService }, { type: i5.AppTocService }, { type: i2.EventService }]; }, propDecorators: { rootOrgId: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], content: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], contentLink: [{
|
|
279
|
-
type: Input
|
|
280
|
-
}], userInput: [{
|
|
281
|
-
type: ViewChild,
|
|
282
|
-
args: ['userInput']
|
|
283
|
-
}], matAutocomplete: [{
|
|
284
|
-
type: ViewChild,
|
|
285
|
-
args: ['auto']
|
|
286
|
-
}], resetEnableShare: [{
|
|
287
|
-
type: Output
|
|
288
|
-
}], baseContentReadData: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}] } });
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtdG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9zaGFyZS10b2Mvc2hhcmUtdG9jL3NoYXJlLXRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvc2hhcmUtdG9jL3NoYXJlLXRvYy9zaGFyZS10b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFpRCxRQUFRLEVBQXlCLE1BQU0sc0JBQXNCLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjckgsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBb0IsZ0JBQXlDLEVBQ3pDLGdCQUFpRCxFQUNqRCxTQUEyQixFQUMzQixRQUFxQixFQUN0QixTQUFnQyxFQUMvQixNQUFxQixFQUNyQixNQUFvQjtRQU5wQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDakQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixN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Ozs0RkQzRGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjtzVEFtQmxCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSCxlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU07Z0JBQ1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBXc0V2ZW50cywgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXG5cblxuaW1wb3J0IHsgTWF0TGVnYWN5QXV0b2NvbXBsZXRlIGFzIE1hdEF1dG9jb21wbGV0ZSwgTWF0TGVnYWN5QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCBhcyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWF1dG9jb21wbGV0ZSdcbmltcG9ydCB7IE1hdExlZ2FjeUNoaXBJbnB1dEV2ZW50IGFzIE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWNoaXBzJ1xuaW1wb3J0IHsgTWF0TGVnYWN5U25hY2tCYXIgYXMgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc25hY2stYmFyJ1xuaW1wb3J0IHsgVXNlckF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fY29sbGVjdGlvbi9fY29tbW9uL3VzZXItYXV0b2NvbXBsZXRlL3VzZXItYXV0b2NvbXBsZXRlLnNlcnZpY2UnXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtc2hhcmUtdG9jJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLXRvYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLXRvYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZVRvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICBzaGFyZUZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgIHNlbGVjdGFibGUgPSB0cnVlXG4gICByZW1vdmFibGUgPSB0cnVlXG4gICBhZGRPbkJsdXIgPSB0cnVlXG4gICBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSXVxuICAgdXNlckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKVxuICAgZmlsdGVyZWRVc2VyczogYW55IFtdfCB1bmRlZmluZWRcbiAgIHVzZXJzOiBhbnlbXSA9IFtdXG4gICBhbGxVc2VyczogYW55W10gPSBbXVxuICAgYXBpUmVzcG9uc2U6IGFueVxuICAgY291cnNlRGV0YWlsczogYW55XG4gICB1c2VyUHJvZmlsZTogYW55XG4gICBtYXhFbWFpbHNMaW1pdCA9IDMwXG4gICBzaG93TG9hZGVyID0gZmFsc2VcbiAgIEBJbnB1dCgpIHJvb3RPcmdJZDogYW55XG4gICBASW5wdXQoKSBjb250ZW50OiBhbnlcbiAgIEBJbnB1dCgpIGNvbnRlbnRMaW5rOiBhbnkgPSAnJ1xuICAgQFZpZXdDaGlsZCgndXNlcklucHV0JykgdXNlcklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkXG4gICBAVmlld0NoaWxkKCdhdXRvJykgbWF0QXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGUgfCB1bmRlZmluZWRcbiAgIEBPdXRwdXQoKSByZXNldEVuYWJsZVNoYXJlOiBhbnkgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgIEBJbnB1dCgpIGJhc2VDb250ZW50UmVhZERhdGE6IGFueSBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyQXV0b0NvbXBsZXRlOiBVc2VyQXV0b2NvbXBsZXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYW5ndHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2NTdmM6IEFwcFRvY1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLmxhbmd0cmFuc2xhdGlvbnMubGFuZ3VhZ2VTZWxlY3RlZE9ic2VydmFibGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2VuJylcbiAgICAgICAgY29uc3QgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSFcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLnNoYXJlRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIHJldmlldzogbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMDApXSksXG4gICAgfSlcbiAgICB0aGlzLnVzZXJDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLmdldFVzZXJzVG9TaGFyZShyZXMpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgZ2V0VXNlcnNUb1NoYXJlKHF1ZXJ5U3RyOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlXG4gICAgdGhpcy51c2VyQXV0b0NvbXBsZXRlLnNlYXJjaFVzZXIocXVlcnlTdHIsIHRoaXMucm9vdE9yZ0lkKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICBpZiAoZGF0YS5yZXN1bHQgJiYgZGF0YS5yZXN1bHQucmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZSA9IGRhdGEucmVzdWx0LnJlc3BvbnNlLmNvbnRlbnRcbiAgICAgICAgbGV0IG5hbWUgPSAnJ1xuICAgICAgICBsZXQgcEVtYWlsID0gJydcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZS5mb3JFYWNoKChhcGlEYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBhcGlEYXRhLmZpcnN0TmFtZS5zcGxpdCgnICcpLmZvckVhY2goKGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgbmFtZSA9IG5hbWUgKyBkLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoYXBpRGF0YS5wcm9maWxlRGV0YWlscyAmJiBhcGlEYXRhLnByb2ZpbGVEZXRhaWxzLnBlcnNvbmFsRGV0YWlscykge1xuICAgICAgICAgICAgcEVtYWlsID0gYXBpRGF0YS5wcm9maWxlRGV0YWlscy5wZXJzb25hbERldGFpbHMucHJpbWFyeUVtYWlsXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHBFbWFpbC50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWxsVXNlcnMucHVzaChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtYXNrZWRFbWFpbDogYXBpRGF0YS5tYXNrZWRFbWFpbCxcbiAgICAgICAgICAgICAgICAgIGlkOiBhcGlEYXRhLmlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBhcGlEYXRhLmZpcnN0TmFtZSxcbiAgICAgICAgICAgICAgICAgIGljb25UZXh0OiBuYW1lLFxuICAgICAgICAgICAgICAgICAgZW1haWw6IHBFbWFpbCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlXG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hbGxVc2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZFVzZXJzID0gW11cbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IHRoaXMuZmlsdGVyU2hhcmVkVXNlcnMocXVlcnlTdHIpXG4gICAgfSlcbiAgfVxuXG4gIHRyYW5zbGF0ZUxhYmVscyhsYWJlbDogc3RyaW5nLCB0eXBlOiBhbnksIHN1YnR5cGU/OiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5sYW5ndHJhbnNsYXRpb25zLnRyYW5zbGF0ZUFjdHVhbExhYmVsKGxhYmVsLCB0eXBlLCBzdWJ0eXBlKVxuICB9XG5cbiAgYWRkKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC52YWx1ZSAmJiB0aGlzLm1hdEF1dG9jb21wbGV0ZSAmJiAhdGhpcy5tYXRBdXRvY29tcGxldGUuaXNPcGVuKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LmlucHV0XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlXG4gICAgICBpZiAodGhpcy51c2Vycy5sZW5ndGggPT09IHRoaXMubWF4RW1haWxzTGltaXQpIHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ21heExpbWl0JywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnVzZXJzLmluY2x1ZGVzKHZhbHVlLnRyaW0oKSkpIHtcbiAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2R1bGljYXRlRW1haWwnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgIGNvbnN0IGVQYXR0ZXJuID0gbmV3IFJlZ0V4cCgvXig/IS4qXFwuXFwuKSg/IS4qXFwuXykoPyEuKlxcLl9cXC4pKD8hLipcXC5cXC4kKSg/IS4qXFwuJClbYS16QS1aMC05X10rKD86XFwuW2EtekEtWjAtOV9dKykqQCg/OlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8kLylcbiAgICAgIGlmIChlUGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBpZiAoKHZhbHVlIHx8ICcnKS50cmltKCkpIHtcbiAgICAgICAgICB0aGlzLnVzZXJzLnB1c2godmFsdWUudHJpbSgpKVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgIGlucHV0LnZhbHVlID0gJydcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgICAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcbiAgICAgICAgaWYgKGVsICE9IG51bGwpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxuICAgICAgICAgIH0sICAgICAgICAgMjAwKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wZW5TbmFja2Jhcih0aGlzLnRyYW5zbGF0ZUxhYmVscygnaW52YWxpZEVtYWlsJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmUodXNlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnVzZXJzLmluZGV4T2YodXNlcilcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnVzZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICB9XG4gIH1cblxuICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnVzZXJzLmxlbmd0aCA9PT0gdGhpcy5tYXhFbWFpbHNMaW1pdCkge1xuICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ21heExpbWl0JywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmICh0aGlzLnVzZXJzLmluY2x1ZGVzKGV2ZW50Lm9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZVVzZXInLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy51c2Vycy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSlcbiAgICBpZiAodGhpcy51c2VySW5wdXQpIHtcbiAgICAgIHRoaXMudXNlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgIGNvbnN0IGVsOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2hpcC1saXN0LXdyYXBwZXInKVxuICAgIGlmIChlbCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWxbMF0uc2Nyb2xsVG9wID0gZWxbMF0uc2Nyb2xsSGVpZ2h0XG4gICAgICB9LCAgICAgICAgIDIwMClcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJTaGFyZWRVc2Vycyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpXG4gICAgICByZXR1cm4gdGhpcy5hbGxVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpXG4gICAgfVxuICAgIHJldHVybiBbXVxuICB9XG5cbiAgc3VibWl0U2hhcmluZygpIHtcbiAgICBsZXQgY291cnNlSWQgPSAnJ1xuICAgIGxldCBjb3Vyc2VOYW1lID0gJydcbiAgICBsZXQgY291cnNlUG9zdGVySW1hZ2VVcmwgPSAnJ1xuICAgIGxldCBjb3Vyc2VQcm92aWRlciA9ICcnXG4gICAgbGV0IHByaW1hcnlDYXRlZ29yeSA9ICcnXG4gICAgbGV0IGNvdXJzZUxpbmsgPSAnJ1xuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgY291cnNlUHJvdmlkZXIgPSB0aGlzLmNvbnRlbnQub3JnYW5pc2F0aW9uICYmIHRoaXMuY29udGVudC5vcmdhbmlzYXRpb25bMF1cbiAgICAgICAgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRQYXJ0bmVyICYmIHRoaXMuY29udGVudC5jb250ZW50UGFydG5lci5wYXJ0bmVyQ29kZVxuICAgICAgICB8fCB0aGlzLmNvbnRlbnQuc291cmNlXG4gICAgICAgIGNvdXJzZUlkID0gdGhpcy5iYXNlQ29udGVudFJlYWREYXRhID8gdGhpcy5iYXNlQ29udGVudFJlYWREYXRhLmlkZW50aWZpZXIgOiB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciB8fCB0aGlzLmNvbnRlbnQuY29udGVudElkLFxuICAgICAgICBjb3Vyc2VOYW1lID0gdGhpcy5jb250ZW50Lm5hbWUsXG4gICAgICAgIGNvdXJzZVBvc3RlckltYWdlVXJsID0gdGhpcy5jb250ZW50LnBvc3RlckltYWdlIHx8XG4gICAgICAgICB0aGlzLmNvbnRlbnQuYXBwSWNvbiB8fCAgJ2Fzc2V0cy9pbnN0YW5jZXMvZWFnbGUvYXBwX2xvZ29zL0thcm1heW9naUJoYXJhdF9Mb2dvLnN2ZycsXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCA/ICdFeHRlcm5hbCBDb3Vyc2UnIDogJycsXG4gICAgICAgIGNvdXJzZUxpbmsgPSB0aGlzLmNvbnRlbnRMaW5rIHx8ICcnXG4gICAgfVxuICAgIGxldCBsYW5ndWFnZSA9ICcnXG4gICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKVxuICAgIGlmICh1cmxQYXJhbXMuaGFzKCdNTCcpKSB7XG4gICAgICBsYW5ndWFnZSA9IHVybFBhcmFtcy5nZXQoJ01MJykgfHwgJydcbiAgICB9XG4gICAgY29uc3Qgb2JqID0ge1xuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBjb3Vyc2VJZCxcbiAgICAgICAgY291cnNlTmFtZSxcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwsXG4gICAgICAgIGNvdXJzZVByb3ZpZGVyLFxuICAgICAgICBwcmltYXJ5Q2F0ZWdvcnksXG4gICAgICAgIGNvdXJzZUxpbmssXG4gICAgICAgIHJlY2lwaWVudHM6ICcnLFxuICAgICAgICAuLi4obGFuZ3VhZ2UgJiYgeyBsYW5ndWFnZSB9ICksXG4gICAgICB9LFxuICAgIH1cbiAgICBjb25zdCByZWNpcGllbnRzOiBhbnkgPSBbXVxuICAgIHRoaXMudXNlcnMuZm9yRWFjaCgoc2VsZWN0ZWRVc2VyOiBhbnkpID0+IHtcbiAgICAgIGlmIChzZWxlY3RlZFVzZXIuaW5jbHVkZXMoJ0AnKSAmJiBzZWxlY3RlZFVzZXIuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICByZWNpcGllbnRzLnB1c2goeyBlbWFpbDogc2VsZWN0ZWRVc2VyIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFVzZXJPYmo6IGFueSA9IHRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5uYW1lID09PSBzZWxlY3RlZFVzZXIpXG4gICAgICAgIGlmIChzZWxlY3RlZFVzZXJPYmoubGVuZ3RoKSB7XG4gICAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgdXNlcklkOiBzZWxlY3RlZFVzZXJPYmpbMF0uaWQsIGVtYWlsOiBzZWxlY3RlZFVzZXJPYmpbMF0uZW1haWwgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKHJlY2lwaWVudHMubGVuZ3RoKSB7XG4gICAgICBvYmoucmVxdWVzdC5yZWNpcGllbnRzID0gcmVjaXBpZW50c1xuICAgICAgdGhpcy50b2NTdmMuc2hhcmVDb250ZW50KG9iaikuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQucmVzcG9uc2VDb2RlID09PSAnT0snKSB7XG4gICAgICAgICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ3N1Y2Nlc3MnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51c2VycyA9IFtdXG4gICAgICAgIHRoaXMucmVzZXRFbmFibGVTaGFyZUZsYWcoKVxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxuICAgICAgICB0aGlzLmFsbFVzZXJzID0gW11cbiAgICAgICAgdGhpcy51c2VyQ3RybC5zZXRWYWx1ZSgnJylcbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGVcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdlcnJvcicsJ2NvbnRlbnRTaGFyaW5nJywnJykpXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5yZXNldEVuYWJsZVNoYXJlRmxhZygpXG4gICAgdGhpcy51c2VycyA9IFtdXG4gICAgdGhpcy5maWx0ZXJlZFVzZXJzID0gW11cbiAgICB0aGlzLmFsbFVzZXJzID0gW11cbiAgICB0aGlzLnVzZXJDdHJsLnNldFZhbHVlKCcnKVxuICAgIHRoaXMucmFpc2VUZWxlbWV0cnkoJ3NoYXJlQ2xvc2UnKVxuICB9XG5cbiAgY29weVRvQ2xpcGJvYXJkKCkge1xuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxuICAgIHRleHRBcmVhLnZhbHVlID0gd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRBcmVhKVxuICAgIHRleHRBcmVhLnNlbGVjdCgpXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKVxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpXG4gICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2xpbmtDb3BpZWQnLCdjb250ZW50U2hhcmluZycsJycpKVxuICAgIHRoaXMucmFpc2VUZWxlbWV0cnkoJ2NvcHlUb0NsaXBib2FyZCcpXG4gIH1cblxuICByYWlzZVRlbGVtZXRyeShzdWJUeXBlOiBhbnkpIHtcbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICBzdWJUeXBlOiBzdWJUeXBlLFxuICAgICAgICBpZDogdGhpcy5jb250ZW50ID8gdGhpcy5jb250ZW50LmlkZW50aWZpZXIgOiAnJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciA6ICcnLFxuICAgICAgICB0eXBlOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQucHJpbWFyeUNhdGVnb3J5IDogJycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYWdlSWRFeHQ6IGBidG4tJHtzdWJUeXBlfWAsXG4gICAgICAgIG1vZHVsZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeW1vZHVsZXMuQ09OVEVOVCxcbiAgICAgIH1cbiAgICApXG4gIH1cbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xuICAgIHRoaXMuc25hY2tCYXIub3BlbihwcmltYXJ5TXNnLCAnWCcsIHtcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pXG4gIH1cblxuICByZXNldEVuYWJsZVNoYXJlRmxhZygpIHtcbiAgICB0aGlzLnJlc2V0RW5hYmxlU2hhcmUuZW1pdChmYWxzZSk7XG4gIH1cbn1cblxuXG4iLCI8ZGl2IGNsYXNzPVwic2hhcmUtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInNob3dMb2FkZXJcIiBjbGFzcz1cInRleHQtY2VudGVyIG15LTIgbG9hZGVyXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImlubGluZS1ibG9ja1wiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGNsb3NlLXNoYXJlLWRpYWxvZ1wiPjxtYXQtaWNvbiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2xhc3M9XCJjbG9zZS1pY29uXCI+Y2xvc2U8L21hdC1pY29uPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1tb2RhbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwia2FybWFzYWhheW9naS1pY29uXCI+PGltZyBhbHQ9XCJrYXJtYXNhaGF5b2dpLWljb25cIiBzcmM9XCIvYXNzZXRzL2ljb25zL0thcm1hU2FoYXlvZ2kuc3ZnXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29udGVudC1kaXZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRyaWFuZ2xlLWxlZnQgaGlkZGVuIG1kOmJsb2NrXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250bmV0XCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInctZnVsbCBmbGV4IGFsaWduLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWhlYWRsaW5lIG1hcmdpbi1yZW1vdmUtYm90dG9tIHdzLW1hdC1ibGFjay10ZXh0XCI+e3snY29udGVudFNoYXJpbmcuaGVhZGVyJyB8IHRyYW5zbGF0ZX19PC9oMj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2hhcmVGb3JtXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1ib2R5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IGFyaWEtbGFiZWw9XCJ1c2VyIHNlbGVjdGlvblwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUodXNlcilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dXNlcn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cInJlbW92YWJsZVwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRUZXh0Qm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3t1c2Vycy5sZW5ndGggPT09IDAgPyB0cmFuc2xhdGVMYWJlbHMoJ3BsYWNlaG9kZXJUZXh0JywgJ2NvbnRlbnRTaGFyaW5nJykgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN1c2VySW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidXNlckN0cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cImFkZE9uQmx1clwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBmaWx0ZXJlZFVzZXJzXCIgW3ZhbHVlXT1cInVzZXIubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbkRpdlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25UZXh0XCI+e3t1c2VyLmljb25UZXh0LnN1YnN0cmluZygwLDIpfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3VzZXIubmFtZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbFRleHRcIj57e3VzZXIubWFza2VkRW1haWx9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50IGFsaWduPVwic3RhcnRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eydjb250ZW50U2hhcmluZy5ub3RlJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhpbnQgYWxpZ249XCJlbmRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eyB1c2Vycy5sZW5ndGggfX0gL3t7bWF4RW1haWxzTGltaXR9fSB7eydjb250ZW50U2hhcmluZy5yZW1haW5nRW1haWxzJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtdC01XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LTEgZmxleC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvcHktbGluay1idG4gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj57eydjb250ZW50U2hhcmluZy5jb3B5TGluaycgfCB0cmFuc2xhdGV9fSAmbmJzcDsmbmJzcDs8bWF0LWljb24gPmxpbms8L21hdC1pY29uPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdoaXRlIGZsZXgtYXV0by1kaXNwbGF5IHNlbmQtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXQpID8gJ2dyYXktYmFja2dyb3VuZCcgOiAnYWN0aXZlLWJhY2tncm91bmQnIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ1c2VyQ3RybC52YWx1ZS5sZW5ndGggfHwgdXNlcnMubGVuZ3RoID09PSAwIHx8IHVzZXJzLmxlbmd0aCA+IG1heEVtYWlsc0xpbWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdFNoYXJpbmcoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydjb250ZW50U2hhcmluZy5zZW5kJyB8IHRyYW5zbGF0ZX19ICZuYnNwOyA8bWF0LWljb24+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
1
|
+
import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
+
import { ENTER } from '@angular/cdk/keycodes';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
5
|
+
import { WsEvents } from '@sunbird-cb/utils-v2';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../_collection/_common/user-autocomplete/user-autocomplete.service";
|
|
8
|
+
import * as i2 from "@sunbird-cb/utils-v2";
|
|
9
|
+
import * as i3 from "@ngx-translate/core";
|
|
10
|
+
import * as i4 from "@angular/material/legacy-snack-bar";
|
|
11
|
+
import * as i5 from "../../services/app-toc.service";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "@angular/material/icon";
|
|
14
|
+
import * as i8 from "@angular/material/legacy-button";
|
|
15
|
+
import * as i9 from "@angular/material/legacy-chips";
|
|
16
|
+
import * as i10 from "@angular/material/legacy-progress-spinner";
|
|
17
|
+
import * as i11 from "@angular/material/legacy-form-field";
|
|
18
|
+
import * as i12 from "@angular/material/legacy-core";
|
|
19
|
+
import * as i13 from "@angular/material/legacy-autocomplete";
|
|
20
|
+
import * as i14 from "@angular/forms";
|
|
21
|
+
export class ShareTocComponent {
|
|
22
|
+
constructor(userAutoComplete, langtranslations, translate, snackBar, configSvc, tocSvc, events) {
|
|
23
|
+
this.userAutoComplete = userAutoComplete;
|
|
24
|
+
this.langtranslations = langtranslations;
|
|
25
|
+
this.translate = translate;
|
|
26
|
+
this.snackBar = snackBar;
|
|
27
|
+
this.configSvc = configSvc;
|
|
28
|
+
this.tocSvc = tocSvc;
|
|
29
|
+
this.events = events;
|
|
30
|
+
this.selectable = true;
|
|
31
|
+
this.removable = true;
|
|
32
|
+
this.addOnBlur = true;
|
|
33
|
+
this.separatorKeysCodes = [ENTER];
|
|
34
|
+
this.userCtrl = new UntypedFormControl('');
|
|
35
|
+
this.users = [];
|
|
36
|
+
this.allUsers = [];
|
|
37
|
+
this.maxEmailsLimit = 30;
|
|
38
|
+
this.showLoader = false;
|
|
39
|
+
this.contentLink = '';
|
|
40
|
+
this.resetEnableShare = new EventEmitter();
|
|
41
|
+
this.langtranslations.languageSelectedObservable.subscribe(() => {
|
|
42
|
+
if (localStorage.getItem('websiteLanguage')) {
|
|
43
|
+
this.translate.setDefaultLang('en');
|
|
44
|
+
const lang = localStorage.getItem('websiteLanguage');
|
|
45
|
+
this.translate.use(lang);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
this.shareForm = new UntypedFormGroup({
|
|
49
|
+
review: new UntypedFormControl(null, [Validators.minLength(1), Validators.maxLength(2000)]),
|
|
50
|
+
});
|
|
51
|
+
this.userCtrl.valueChanges.pipe(debounceTime(200), distinctUntilChanged()).subscribe((res) => {
|
|
52
|
+
this.filteredUsers = [];
|
|
53
|
+
if (res) {
|
|
54
|
+
this.getUsersToShare(res);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
ngOnInit() {
|
|
59
|
+
}
|
|
60
|
+
getUsersToShare(queryStr) {
|
|
61
|
+
this.showLoader = true;
|
|
62
|
+
this.userAutoComplete.searchUser(queryStr, this.rootOrgId).subscribe(data => {
|
|
63
|
+
if (data.result && data.result.response) {
|
|
64
|
+
this.apiResponse = data.result.response.content;
|
|
65
|
+
let name = '';
|
|
66
|
+
let pEmail = '';
|
|
67
|
+
this.apiResponse.forEach((apiData) => {
|
|
68
|
+
apiData.firstName.split(' ').forEach((d) => {
|
|
69
|
+
name = name + d.substr(0, 1).toUpperCase();
|
|
70
|
+
});
|
|
71
|
+
if (apiData.profileDetails && apiData.profileDetails.personalDetails) {
|
|
72
|
+
pEmail = apiData.profileDetails.personalDetails.primaryEmail;
|
|
73
|
+
if (!this.allUsers.filter(user => user.email.toLowerCase().includes(pEmail.toLowerCase())).length) {
|
|
74
|
+
this.allUsers.push({
|
|
75
|
+
maskedEmail: apiData.maskedEmail,
|
|
76
|
+
id: apiData.identifier,
|
|
77
|
+
name: apiData.firstName,
|
|
78
|
+
iconText: name,
|
|
79
|
+
email: pEmail,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
this.showLoader = false;
|
|
85
|
+
}
|
|
86
|
+
if (this.allUsers.length === 0) {
|
|
87
|
+
this.filteredUsers = [];
|
|
88
|
+
}
|
|
89
|
+
this.filteredUsers = this.filterSharedUsers(queryStr);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
translateLabels(label, type, subtype) {
|
|
93
|
+
return this.langtranslations.translateActualLabel(label, type, subtype);
|
|
94
|
+
}
|
|
95
|
+
add(event) {
|
|
96
|
+
if (event.value && this.matAutocomplete && !this.matAutocomplete.isOpen) {
|
|
97
|
+
const input = event.input;
|
|
98
|
+
const value = event.value;
|
|
99
|
+
if (this.users.length === this.maxEmailsLimit) {
|
|
100
|
+
this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (this.users.includes(value.trim())) {
|
|
104
|
+
this.openSnackbar(this.translateLabels('dulicateEmail', 'contentSharing', ''));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// tslint:disable-next-line: max-line-length
|
|
108
|
+
const ePattern = new RegExp(/^(?!.*\.\.)(?!.*\._)(?!.*\._\.)(?!.*\.\.$)(?!.*\.$)[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/);
|
|
109
|
+
if (ePattern.test(value)) {
|
|
110
|
+
if ((value || '').trim()) {
|
|
111
|
+
this.users.push(value.trim());
|
|
112
|
+
}
|
|
113
|
+
if (input) {
|
|
114
|
+
input.value = '';
|
|
115
|
+
}
|
|
116
|
+
this.userCtrl.setValue('');
|
|
117
|
+
const el = document.getElementsByClassName('mat-chip-list-wrapper');
|
|
118
|
+
if (el != null) {
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
el[0].scrollTop = el[0].scrollHeight;
|
|
121
|
+
}, 200);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.openSnackbar(this.translateLabels('invalidEmail', 'contentSharing', ''));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
remove(user) {
|
|
131
|
+
const index = this.users.indexOf(user);
|
|
132
|
+
if (index >= 0) {
|
|
133
|
+
this.users.splice(index, 1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
selected(event) {
|
|
137
|
+
if (this.users.length === this.maxEmailsLimit) {
|
|
138
|
+
this.openSnackbar(this.translateLabels('maxLimit', 'contentSharing', ''));
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (this.users.includes(event.option.value)) {
|
|
142
|
+
this.openSnackbar(this.translateLabels('dulicateUser', 'contentSharing', ''));
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
this.users.push(event.option.value);
|
|
146
|
+
if (this.userInput) {
|
|
147
|
+
this.userInput.nativeElement.value = '';
|
|
148
|
+
}
|
|
149
|
+
this.userCtrl.setValue('');
|
|
150
|
+
const el = document.getElementsByClassName('mat-chip-list-wrapper');
|
|
151
|
+
if (el != null) {
|
|
152
|
+
setTimeout(() => {
|
|
153
|
+
el[0].scrollTop = el[0].scrollHeight;
|
|
154
|
+
}, 200);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
filterSharedUsers(value) {
|
|
158
|
+
if (value) {
|
|
159
|
+
const filterValue = value.toLowerCase();
|
|
160
|
+
return this.allUsers.filter(user => user.name.toLowerCase().includes(filterValue));
|
|
161
|
+
}
|
|
162
|
+
return [];
|
|
163
|
+
}
|
|
164
|
+
submitSharing() {
|
|
165
|
+
let courseId = '';
|
|
166
|
+
let courseName = '';
|
|
167
|
+
let coursePosterImageUrl = '';
|
|
168
|
+
let courseProvider = '';
|
|
169
|
+
let primaryCategory = '';
|
|
170
|
+
let courseLink = '';
|
|
171
|
+
if (this.content) {
|
|
172
|
+
courseProvider = this.content.organisation && this.content.organisation[0]
|
|
173
|
+
|| this.content.contentPartner && this.content.contentPartner.partnerCode
|
|
174
|
+
|| this.content.source;
|
|
175
|
+
courseId = this.baseContentReadData ? this.baseContentReadData.identifier : this.content.identifier || this.content.contentId,
|
|
176
|
+
courseName = this.content.name,
|
|
177
|
+
coursePosterImageUrl = this.content.posterImage ||
|
|
178
|
+
this.content.appIcon || 'assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg',
|
|
179
|
+
primaryCategory = this.content.primaryCategory || this.content.contentId ? 'External Course' : '',
|
|
180
|
+
courseLink = this.contentLink || '';
|
|
181
|
+
}
|
|
182
|
+
let language = '';
|
|
183
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
184
|
+
if (urlParams.has('ML')) {
|
|
185
|
+
language = urlParams.get('ML') || '';
|
|
186
|
+
}
|
|
187
|
+
const obj = {
|
|
188
|
+
request: {
|
|
189
|
+
courseId,
|
|
190
|
+
courseName,
|
|
191
|
+
coursePosterImageUrl,
|
|
192
|
+
courseProvider,
|
|
193
|
+
primaryCategory,
|
|
194
|
+
courseLink,
|
|
195
|
+
recipients: '',
|
|
196
|
+
...(language && { language }),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const recipients = [];
|
|
200
|
+
this.users.forEach((selectedUser) => {
|
|
201
|
+
if (selectedUser.includes('@') && selectedUser.includes('.')) {
|
|
202
|
+
recipients.push({ email: selectedUser });
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const selectedUserObj = this.allUsers.filter(user => user.name === selectedUser);
|
|
206
|
+
if (selectedUserObj.length) {
|
|
207
|
+
recipients.push({ userId: selectedUserObj[0].id, email: selectedUserObj[0].email });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
if (recipients.length) {
|
|
212
|
+
obj.request.recipients = recipients;
|
|
213
|
+
this.tocSvc.shareContent(obj).subscribe(result => {
|
|
214
|
+
if (result.responseCode === 'OK') {
|
|
215
|
+
this.openSnackbar(this.translateLabels('success', 'contentSharing', ''));
|
|
216
|
+
}
|
|
217
|
+
this.users = [];
|
|
218
|
+
this.resetEnableShareFlag();
|
|
219
|
+
this.filteredUsers = [];
|
|
220
|
+
this.allUsers = [];
|
|
221
|
+
this.userCtrl.setValue('');
|
|
222
|
+
}, error => {
|
|
223
|
+
// tslint:disable
|
|
224
|
+
console.log(error);
|
|
225
|
+
this.openSnackbar(this.translateLabels('error', 'contentSharing', ''));
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
onClose() {
|
|
230
|
+
this.resetEnableShareFlag();
|
|
231
|
+
this.users = [];
|
|
232
|
+
this.filteredUsers = [];
|
|
233
|
+
this.allUsers = [];
|
|
234
|
+
this.userCtrl.setValue('');
|
|
235
|
+
this.raiseTelemetry('shareClose');
|
|
236
|
+
}
|
|
237
|
+
copyToClipboard() {
|
|
238
|
+
const textArea = document.createElement('textarea');
|
|
239
|
+
textArea.value = window.location.href;
|
|
240
|
+
document.body.appendChild(textArea);
|
|
241
|
+
textArea.select();
|
|
242
|
+
document.execCommand('copy');
|
|
243
|
+
document.body.removeChild(textArea);
|
|
244
|
+
this.openSnackbar(this.translateLabels('linkCopied', 'contentSharing', ''));
|
|
245
|
+
this.raiseTelemetry('copyToClipboard');
|
|
246
|
+
}
|
|
247
|
+
raiseTelemetry(subType) {
|
|
248
|
+
this.events.raiseInteractTelemetry({
|
|
249
|
+
type: 'click',
|
|
250
|
+
subType: subType,
|
|
251
|
+
id: this.content ? this.content.identifier : '',
|
|
252
|
+
}, {
|
|
253
|
+
id: this.content ? this.content.identifier : '',
|
|
254
|
+
type: this.content ? this.content.primaryCategory : '',
|
|
255
|
+
}, {
|
|
256
|
+
pageIdExt: `btn-${subType}`,
|
|
257
|
+
module: WsEvents.EnumTelemetrymodules.CONTENT,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
openSnackbar(primaryMsg, duration = 5000) {
|
|
261
|
+
this.snackBar.open(primaryMsg, 'X', {
|
|
262
|
+
duration,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
resetEnableShareFlag() {
|
|
266
|
+
this.resetEnableShare.emit(false);
|
|
267
|
+
}
|
|
268
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, deps: [{ token: i1.UserAutocompleteService }, { token: i2.MultilingualTranslationsService }, { token: i3.TranslateService }, { token: i4.MatLegacySnackBar }, { token: i2.ConfigurationsService }, { token: i5.AppTocService }, { token: i2.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
269
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShareTocComponent, selector: "ws-app-share-toc", inputs: { rootOrgId: "rootOrgId", content: "content", contentLink: "contentLink", baseContentReadData: "baseContentReadData" }, outputs: { resetEnableShare: "resetEnableShare" }, viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }, { propertyName: "matAutocomplete", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div class=\"share-container\">\r\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\r\n <mat-spinner class=\"inline-block\"></mat-spinner>\r\n </div>\r\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\r\n <div class=\"share-modal\">\r\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\r\n <div class=\"content-div\">\r\n <div class=\"triangle-left hidden md:block\"></div>\r\n <div class=\"contnet\">\r\n <section class=\"w-full flex align-center justify-between \">\r\n <div class=\"mb-2\">\r\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\r\n </div>\r\n </section>\r\n <form [formGroup]=\"shareForm\">\r\n <div class=\"mat-body-2\">\r\n <div class=\"md-5\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\r\n <mat-chip\r\n *ngFor=\"let user of users\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"remove(user)\">\r\n {{user}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\r\n </mat-chip>\r\n <input\r\n tabindex=\"-1\"\r\n class=\"inputTextBox\"\r\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\r\n #userInput\r\n formControlName=\"review\"\r\n [formControl]=\"userCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\r\n <div class=\"flex\">\r\n <div class=\"iconDiv\">\r\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\r\n </div>\r\n <div>\r\n <div>{{user.name}}</div>\r\n <div class=\"emailText\">{{user.maskedEmail}}</div>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\r\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex mt-5\">\r\n <div class=\"flex flex-1 flex-end\">\r\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} <mat-icon >link</mat-icon></span>\r\n <button mat-stroked-button type=\"submit\"\r\n class=\"text-white flex-auto-display send-btn\"\r\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\r\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\r\n (click)=\"submitSharing()\">\r\n {{'contentSharing.send' | translate}} <mat-icon>send</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i9.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i9.MatLegacyChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i9.MatLegacyChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatLegacyProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i11.MatLegacyHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i12.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i13.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i13.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i14.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
270
|
+
}
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShareTocComponent, decorators: [{
|
|
272
|
+
type: Component,
|
|
273
|
+
args: [{ selector: 'ws-app-share-toc', template: "<div class=\"share-container\">\r\n <div *ngIf=\"showLoader\" class=\"text-center my-2 loader\">\r\n <mat-spinner class=\"inline-block\"></mat-spinner>\r\n </div>\r\n <div class=\"cursor-pointer close-share-dialog\"><mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon></div>\r\n <div class=\"share-modal\">\r\n <div class=\"karmasahayogi-icon\"><img alt=\"karmasahayogi-icon\" src=\"/assets/icons/KarmaSahayogi.svg\"></div>\r\n <div class=\"content-div\">\r\n <div class=\"triangle-left hidden md:block\"></div>\r\n <div class=\"contnet\">\r\n <section class=\"w-full flex align-center justify-between \">\r\n <div class=\"mb-2\">\r\n <h2 class=\"mat-headline margin-remove-bottom ws-mat-black-text\">{{'contentSharing.header' | translate}}</h2>\r\n </div>\r\n </section>\r\n <form [formGroup]=\"shareForm\">\r\n <div class=\"mat-body-2\">\r\n <div class=\"md-5\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-chip-list #chipList aria-label=\"user selection\" appearance=\"outline\">\r\n <mat-chip\r\n *ngFor=\"let user of users\"\r\n [selectable]=\"selectable\"\r\n [removable]=\"removable\"\r\n (removed)=\"remove(user)\">\r\n {{user}}\r\n <mat-icon matChipRemove *ngIf=\"removable\">close</mat-icon>\r\n </mat-chip>\r\n <input\r\n tabindex=\"-1\"\r\n class=\"inputTextBox\"\r\n placeholder=\"{{users.length === 0 ? translateLabels('placehoderText', 'contentSharing') : ''}}\"\r\n #userInput\r\n formControlName=\"review\"\r\n [formControl]=\"userCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"addOnBlur\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let user of filteredUsers\" [value]=\"user.name\">\r\n <div class=\"flex\">\r\n <div class=\"iconDiv\">\r\n <span class=\"iconText\">{{user.iconText.substring(0,2)}}</span>\r\n </div>\r\n <div>\r\n <div>{{user.name}}</div>\r\n <div class=\"emailText\">{{user.maskedEmail}}</div>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint align=\"start\" class=\"left-over-emails\">{{'contentSharing.note' | translate}}</mat-hint>\r\n <mat-hint align=\"end\" class=\"left-over-emails\">{{ users.length }} /{{maxEmailsLimit}} {{'contentSharing.remaingEmails' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"flex mt-5\">\r\n <div class=\"flex flex-1 flex-end\">\r\n <span class=\"copy-link-btn cursor-pointer\" (click)=\"copyToClipboard()\">{{'contentSharing.copyLink' | translate}} <mat-icon >link</mat-icon></span>\r\n <button mat-stroked-button type=\"submit\"\r\n class=\"text-white flex-auto-display send-btn\"\r\n [ngClass]=\"(userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit) ? 'gray-background' : 'active-background' \"\r\n [disabled]=\"userCtrl.value.length || users.length === 0 || users.length > maxEmailsLimit\"\r\n (click)=\"submitSharing()\">\r\n {{'contentSharing.send' | translate}} <mat-icon>send</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".share-container{position:fixed;height:100vh;background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.share-modal{display:flex;align-items:center;justify-content:center;height:inherit;width:inherit}.karmasahayogi-icon{position:absolute;bottom:-5px;left:calc(50% - 464px)}.triangle-left{transform:translateY(100%);position:absolute;bottom:28%;left:-23px;width:0;height:0;border-top:25px solid transparent;border-right:50px solid #ffffff;border-bottom:25px solid transparent}.contnet{background-color:#fff;width:613px;border-radius:10px;padding:15px}.content-div{position:relative}.copy-link-btn{display:flex;align-items:center;margin-right:20px;color:red;color:#0074b6!important;font-weight:600}.copy-link-btn:hover{background-color:none!important}.send-btn{border-radius:20px}.send-btn .mat-icon{margin-bottom:2.5px}::ng-deep .mat-chip-list-wrapper{height:100px;overflow:auto;display:block!important;scroll-behavior:smooth}.iconText{border-radius:50%;background-color:#000;color:#fff;width:30px;display:inline-block;text-align:center;height:30px;display:flex;align-items:center;justify-content:center}.iconDiv{margin-right:7px}.emailText{opacity:.6}button:disabled{pointer-events:none;opacity:.5;color:#000}::ng-deep .mat-autocomplete-panel{z-index:99999}::ng-deep .cdk-overlay-pane{z-index:9999!important}::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:5px 2px!important}::ng-deep .close-icon{background-color:#000;color:#fff;border-radius:15px;padding:3px}::ng-deep .mat-chip-input{padding-bottom:9px!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip{color:#0074b6!important}::ng-deep .theme-igot.day-mode .mat-chip.mat-standard-chip mat-icon{color:#0074b6!important}::ng-deep .inputTextBox{width:95%!important;overflow-x:hidden}.close-share-dialog{position:absolute;right:30px;top:30px}.left-over-emails{font-weight:600}.loader{position:absolute;top:42%;left:45%;z-index:1000}@media (max-width: 768px){.content-div{width:100%}.contnet{width:unset;margin-bottom:18%}.left-over-emails{display:none}.karmasahayogi-icon{left:8%;bottom:20%}.share-modal{align-items:self-end}}@media only screen and (min-device-width: 820px) and (max-device-width: 1180px){.karmasahayogi-icon{left:calc(50% - 387px)}.content{width:500px}}@media only screen and (min-device-width: 768px) and (max-device-width: 819px){.triangle-left{display:none}}.gray-background{background-color:#000!important;color:#fff!important}.gray-background[disabled]{pointer-events:none;opacity:.5}.active-background{background-color:#1b4ca1!important;color:#fff!important}\n"] }]
|
|
274
|
+
}], ctorParameters: function () { return [{ type: i1.UserAutocompleteService }, { type: i2.MultilingualTranslationsService }, { type: i3.TranslateService }, { type: i4.MatLegacySnackBar }, { type: i2.ConfigurationsService }, { type: i5.AppTocService }, { type: i2.EventService }]; }, propDecorators: { rootOrgId: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], content: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], contentLink: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], userInput: [{
|
|
281
|
+
type: ViewChild,
|
|
282
|
+
args: ['userInput']
|
|
283
|
+
}], matAutocomplete: [{
|
|
284
|
+
type: ViewChild,
|
|
285
|
+
args: ['auto']
|
|
286
|
+
}], resetEnableShare: [{
|
|
287
|
+
type: Output
|
|
288
|
+
}], baseContentReadData: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}] } });
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtdG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9zaGFyZS10b2Mvc2hhcmUtdG9jL3NoYXJlLXRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvc2hhcmUtdG9jL3NoYXJlLXRvYy9zaGFyZS10b2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkUsT0FBTyxFQUFpRCxRQUFRLEVBQXlCLE1BQU0sc0JBQXNCLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjckgsTUFBTSxPQUFPLGlCQUFpQjtJQXNCNUIsWUFBb0IsZ0JBQXlDLEVBQ3pDLGdCQUFpRCxFQUNqRCxTQUEyQixFQUMzQixRQUFxQixFQUN0QixTQUFnQyxFQUMvQixNQUFxQixFQUNyQixNQUFvQjtRQU5wQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUM7UUFDakQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixN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Ozs0RkQzRGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjtzVEFtQmxCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSCxlQUFlO3NCQUFqQyxTQUFTO3VCQUFDLE1BQU07Z0JBQ1AsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2RlcydcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIFdzRXZlbnRzLCBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12MidcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXHJcbmltcG9ydCB7IEFwcFRvY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtdG9jLnNlcnZpY2UnXHJcblxyXG5cclxuaW1wb3J0IHsgTWF0TGVnYWN5QXV0b2NvbXBsZXRlIGFzIE1hdEF1dG9jb21wbGV0ZSwgTWF0TGVnYWN5QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCBhcyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWF1dG9jb21wbGV0ZSdcclxuaW1wb3J0IHsgTWF0TGVnYWN5Q2hpcElucHV0RXZlbnQgYXMgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktY2hpcHMnXHJcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIGFzIE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNuYWNrLWJhcidcclxuaW1wb3J0IHsgVXNlckF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fY29sbGVjdGlvbi9fY29tbW9uL3VzZXItYXV0b2NvbXBsZXRlL3VzZXItYXV0b2NvbXBsZXRlLnNlcnZpY2UnXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3MtYXBwLXNoYXJlLXRvYycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLXRvYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtdG9jLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZVRvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgIHNoYXJlRm9ybTogVW50eXBlZEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxyXG4gICBzZWxlY3RhYmxlID0gdHJ1ZVxyXG4gICByZW1vdmFibGUgPSB0cnVlXHJcbiAgIGFkZE9uQmx1ciA9IHRydWVcclxuICAgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUl1cclxuICAgdXNlckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKVxyXG4gICBmaWx0ZXJlZFVzZXJzOiBhbnkgW118IHVuZGVmaW5lZFxyXG4gICB1c2VyczogYW55W10gPSBbXVxyXG4gICBhbGxVc2VyczogYW55W10gPSBbXVxyXG4gICBhcGlSZXNwb25zZTogYW55XHJcbiAgIGNvdXJzZURldGFpbHM6IGFueVxyXG4gICB1c2VyUHJvZmlsZTogYW55XHJcbiAgIG1heEVtYWlsc0xpbWl0ID0gMzBcclxuICAgc2hvd0xvYWRlciA9IGZhbHNlXHJcbiAgIEBJbnB1dCgpIHJvb3RPcmdJZDogYW55XHJcbiAgIEBJbnB1dCgpIGNvbnRlbnQ6IGFueVxyXG4gICBASW5wdXQoKSBjb250ZW50TGluazogYW55ID0gJydcclxuICAgQFZpZXdDaGlsZCgndXNlcklucHV0JykgdXNlcklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkXHJcbiAgIEBWaWV3Q2hpbGQoJ2F1dG8nKSBtYXRBdXRvY29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZSB8IHVuZGVmaW5lZFxyXG4gICBAT3V0cHV0KCkgcmVzZXRFbmFibGVTaGFyZTogYW55ID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgIEBJbnB1dCgpIGJhc2VDb250ZW50UmVhZERhdGE6IGFueSBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJBdXRvQ29tcGxldGU6IFVzZXJBdXRvY29tcGxldGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgbGFuZ3RyYW5zbGF0aW9uczogTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgICAgICAgICAgICBwdWJsaWMgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0b2NTdmM6IEFwcFRvY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudHM6IEV2ZW50U2VydmljZSkge1xyXG4gICAgdGhpcy5sYW5ndHJhbnNsYXRpb25zLmxhbmd1YWdlU2VsZWN0ZWRPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZW4nKVxyXG4gICAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGxhbmcpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnNoYXJlRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgcmV2aWV3OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjAwMCldKSxcclxuICAgIH0pXHJcbiAgICB0aGlzLnVzZXJDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IFtdXHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmdldFVzZXJzVG9TaGFyZShyZXMpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIGdldFVzZXJzVG9TaGFyZShxdWVyeVN0cjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlXHJcbiAgICB0aGlzLnVzZXJBdXRvQ29tcGxldGUuc2VhcmNoVXNlcihxdWVyeVN0ciwgdGhpcy5yb290T3JnSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgaWYgKGRhdGEucmVzdWx0ICYmIGRhdGEucmVzdWx0LnJlc3BvbnNlKSB7XHJcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZSA9IGRhdGEucmVzdWx0LnJlc3BvbnNlLmNvbnRlbnRcclxuICAgICAgICBsZXQgbmFtZSA9ICcnXHJcbiAgICAgICAgbGV0IHBFbWFpbCA9ICcnXHJcbiAgICAgICAgdGhpcy5hcGlSZXNwb25zZS5mb3JFYWNoKChhcGlEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGFwaURhdGEuZmlyc3ROYW1lLnNwbGl0KCcgJykuZm9yRWFjaCgoZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgZC5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmIChhcGlEYXRhLnByb2ZpbGVEZXRhaWxzICYmIGFwaURhdGEucHJvZmlsZURldGFpbHMucGVyc29uYWxEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgIHBFbWFpbCA9IGFwaURhdGEucHJvZmlsZURldGFpbHMucGVyc29uYWxEZXRhaWxzLnByaW1hcnlFbWFpbFxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsVXNlcnMuZmlsdGVyKHVzZXIgPT4gdXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHBFbWFpbC50b0xvd2VyQ2FzZSgpKSkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGxVc2Vycy5wdXNoKFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBtYXNrZWRFbWFpbDogYXBpRGF0YS5tYXNrZWRFbWFpbCxcclxuICAgICAgICAgICAgICAgICAgaWQ6IGFwaURhdGEuaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgbmFtZTogYXBpRGF0YS5maXJzdE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGljb25UZXh0OiBuYW1lLFxyXG4gICAgICAgICAgICAgICAgICBlbWFpbDogcEVtYWlsLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hbGxVc2Vycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IHRoaXMuZmlsdGVyU2hhcmVkVXNlcnMocXVlcnlTdHIpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSwgc3VidHlwZT86IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3RyYW5zbGF0aW9ucy50cmFuc2xhdGVBY3R1YWxMYWJlbChsYWJlbCwgdHlwZSwgc3VidHlwZSlcclxuICB9XHJcblxyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC52YWx1ZSAmJiB0aGlzLm1hdEF1dG9jb21wbGV0ZSAmJiAhdGhpcy5tYXRBdXRvY29tcGxldGUuaXNPcGVuKSB7XHJcbiAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXRcclxuICAgICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZVxyXG4gICAgICBpZiAodGhpcy51c2Vycy5sZW5ndGggPT09IHRoaXMubWF4RW1haWxzTGltaXQpIHtcclxuICAgICAgICB0aGlzLm9wZW5TbmFja2Jhcih0aGlzLnRyYW5zbGF0ZUxhYmVscygnbWF4TGltaXQnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudXNlcnMuaW5jbHVkZXModmFsdWUudHJpbSgpKSkge1xyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZUVtYWlsJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgIGNvbnN0IGVQYXR0ZXJuID0gbmV3IFJlZ0V4cCgvXig/IS4qXFwuXFwuKSg/IS4qXFwuXykoPyEuKlxcLl9cXC4pKD8hLipcXC5cXC4kKSg/IS4qXFwuJClbYS16QS1aMC05X10rKD86XFwuW2EtekEtWjAtOV9dKykqQCg/OlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8kLylcclxuICAgICAgaWYgKGVQYXR0ZXJuLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnVzZXJzLnB1c2godmFsdWUudHJpbSgpKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gJydcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51c2VyQ3RybC5zZXRWYWx1ZSgnJylcclxuICAgICAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcclxuICAgICAgICBpZiAoZWwgIT0gbnVsbCkge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgfSwgICAgICAgICAyMDApXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdpbnZhbGlkRW1haWwnLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZSh1c2VyOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy51c2Vycy5pbmRleE9mKHVzZXIpXHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy51c2Vycy5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcnMubGVuZ3RoID09PSB0aGlzLm1heEVtYWlsc0xpbWl0KSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdtYXhMaW1pdCcsICdjb250ZW50U2hhcmluZycsICcnKSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy51c2Vycy5pbmNsdWRlcyhldmVudC5vcHRpb24udmFsdWUpKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdkdWxpY2F0ZVVzZXInLCAnY29udGVudFNoYXJpbmcnLCAnJykpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy51c2Vycy5wdXNoKGV2ZW50Lm9wdGlvbi52YWx1ZSlcclxuICAgIGlmICh0aGlzLnVzZXJJbnB1dCkge1xyXG4gICAgICB0aGlzLnVzZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJydcclxuICAgIH1cclxuICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICBjb25zdCBlbDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoaXAtbGlzdC13cmFwcGVyJylcclxuICAgIGlmIChlbCAhPSBudWxsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGVsWzBdLnNjcm9sbFRvcCA9IGVsWzBdLnNjcm9sbEhlaWdodFxyXG4gICAgICB9LCAgICAgICAgIDIwMClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlclNoYXJlZFVzZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIHJldHVybiB0aGlzLmFsbFVzZXJzLmZpbHRlcih1c2VyID0+IHVzZXIubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSlcclxuICAgIH1cclxuICAgIHJldHVybiBbXVxyXG4gIH1cclxuXHJcbiAgc3VibWl0U2hhcmluZygpIHtcclxuICAgIGxldCBjb3Vyc2VJZCA9ICcnXHJcbiAgICBsZXQgY291cnNlTmFtZSA9ICcnXHJcbiAgICBsZXQgY291cnNlUG9zdGVySW1hZ2VVcmwgPSAnJ1xyXG4gICAgbGV0IGNvdXJzZVByb3ZpZGVyID0gJydcclxuICAgIGxldCBwcmltYXJ5Q2F0ZWdvcnkgPSAnJ1xyXG4gICAgbGV0IGNvdXJzZUxpbmsgPSAnJ1xyXG4gICAgaWYgKHRoaXMuY29udGVudCkge1xyXG4gICAgICAgIGNvdXJzZVByb3ZpZGVyID0gdGhpcy5jb250ZW50Lm9yZ2FuaXNhdGlvbiAmJiB0aGlzLmNvbnRlbnQub3JnYW5pc2F0aW9uWzBdXHJcbiAgICAgICAgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRQYXJ0bmVyICYmIHRoaXMuY29udGVudC5jb250ZW50UGFydG5lci5wYXJ0bmVyQ29kZVxyXG4gICAgICAgIHx8IHRoaXMuY29udGVudC5zb3VyY2VcclxuICAgICAgICBjb3Vyc2VJZCA9IHRoaXMuYmFzZUNvbnRlbnRSZWFkRGF0YSA/IHRoaXMuYmFzZUNvbnRlbnRSZWFkRGF0YS5pZGVudGlmaWVyIDogdGhpcy5jb250ZW50LmlkZW50aWZpZXIgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCxcclxuICAgICAgICBjb3Vyc2VOYW1lID0gdGhpcy5jb250ZW50Lm5hbWUsXHJcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwgPSB0aGlzLmNvbnRlbnQucG9zdGVySW1hZ2UgfHxcclxuICAgICAgICAgdGhpcy5jb250ZW50LmFwcEljb24gfHwgICdhc3NldHMvaW5zdGFuY2VzL2VhZ2xlL2FwcF9sb2dvcy9LYXJtYXlvZ2lCaGFyYXRfTG9nby5zdmcnLFxyXG4gICAgICAgIHByaW1hcnlDYXRlZ29yeSA9IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgfHwgdGhpcy5jb250ZW50LmNvbnRlbnRJZCA/ICdFeHRlcm5hbCBDb3Vyc2UnIDogJycsXHJcbiAgICAgICAgY291cnNlTGluayA9IHRoaXMuY29udGVudExpbmsgfHwgJydcclxuICAgIH1cclxuICAgIGxldCBsYW5ndWFnZSA9ICcnXHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpXHJcbiAgICBpZiAodXJsUGFyYW1zLmhhcygnTUwnKSkge1xyXG4gICAgICBsYW5ndWFnZSA9IHVybFBhcmFtcy5nZXQoJ01MJykgfHwgJydcclxuICAgIH1cclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgcmVxdWVzdDoge1xyXG4gICAgICAgIGNvdXJzZUlkLFxyXG4gICAgICAgIGNvdXJzZU5hbWUsXHJcbiAgICAgICAgY291cnNlUG9zdGVySW1hZ2VVcmwsXHJcbiAgICAgICAgY291cnNlUHJvdmlkZXIsXHJcbiAgICAgICAgcHJpbWFyeUNhdGVnb3J5LFxyXG4gICAgICAgIGNvdXJzZUxpbmssXHJcbiAgICAgICAgcmVjaXBpZW50czogJycsXHJcbiAgICAgICAgLi4uKGxhbmd1YWdlICYmIHsgbGFuZ3VhZ2UgfSApLFxyXG4gICAgICB9LFxyXG4gICAgfVxyXG4gICAgY29uc3QgcmVjaXBpZW50czogYW55ID0gW11cclxuICAgIHRoaXMudXNlcnMuZm9yRWFjaCgoc2VsZWN0ZWRVc2VyOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkVXNlci5pbmNsdWRlcygnQCcpICYmIHNlbGVjdGVkVXNlci5pbmNsdWRlcygnLicpKSB7XHJcbiAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgZW1haWw6IHNlbGVjdGVkVXNlciB9KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVXNlck9iajogYW55ID0gdGhpcy5hbGxVc2Vycy5maWx0ZXIodXNlciA9PiB1c2VyLm5hbWUgPT09IHNlbGVjdGVkVXNlcilcclxuICAgICAgICBpZiAoc2VsZWN0ZWRVc2VyT2JqLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmVjaXBpZW50cy5wdXNoKHsgdXNlcklkOiBzZWxlY3RlZFVzZXJPYmpbMF0uaWQsIGVtYWlsOiBzZWxlY3RlZFVzZXJPYmpbMF0uZW1haWwgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAocmVjaXBpZW50cy5sZW5ndGgpIHtcclxuICAgICAgb2JqLnJlcXVlc3QucmVjaXBpZW50cyA9IHJlY2lwaWVudHNcclxuICAgICAgdGhpcy50b2NTdmMuc2hhcmVDb250ZW50KG9iaikuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5yZXNwb25zZUNvZGUgPT09ICdPSycpIHtcclxuICAgICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdzdWNjZXNzJywgJ2NvbnRlbnRTaGFyaW5nJywgJycpKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVzZXJzID0gW11cclxuICAgICAgICB0aGlzLnJlc2V0RW5hYmxlU2hhcmVGbGFnKClcclxuICAgICAgICB0aGlzLmZpbHRlcmVkVXNlcnMgPSBbXVxyXG4gICAgICAgIHRoaXMuYWxsVXNlcnMgPSBbXVxyXG4gICAgICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxyXG4gICAgICAgIHRoaXMub3BlblNuYWNrYmFyKHRoaXMudHJhbnNsYXRlTGFiZWxzKCdlcnJvcicsJ2NvbnRlbnRTaGFyaW5nJywnJykpXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5yZXNldEVuYWJsZVNoYXJlRmxhZygpXHJcbiAgICB0aGlzLnVzZXJzID0gW11cclxuICAgIHRoaXMuZmlsdGVyZWRVc2VycyA9IFtdXHJcbiAgICB0aGlzLmFsbFVzZXJzID0gW11cclxuICAgIHRoaXMudXNlckN0cmwuc2V0VmFsdWUoJycpXHJcbiAgICB0aGlzLnJhaXNlVGVsZW1ldHJ5KCdzaGFyZUNsb3NlJylcclxuICB9XHJcblxyXG4gIGNvcHlUb0NsaXBib2FyZCgpIHtcclxuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxyXG4gICAgdGV4dEFyZWEudmFsdWUgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0QXJlYSlcclxuICAgIHRleHRBcmVhLnNlbGVjdCgpXHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpXHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRleHRBcmVhKVxyXG4gICAgdGhpcy5vcGVuU25hY2tiYXIodGhpcy50cmFuc2xhdGVMYWJlbHMoJ2xpbmtDb3BpZWQnLCdjb250ZW50U2hhcmluZycsJycpKVxyXG4gICAgdGhpcy5yYWlzZVRlbGVtZXRyeSgnY29weVRvQ2xpcGJvYXJkJylcclxuICB9XHJcblxyXG4gIHJhaXNlVGVsZW1ldHJ5KHN1YlR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudHMucmFpc2VJbnRlcmFjdFRlbGVtZXRyeShcclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICdjbGljaycsXHJcbiAgICAgICAgc3ViVHlwZTogc3ViVHlwZSxcclxuICAgICAgICBpZDogdGhpcy5jb250ZW50ID8gdGhpcy5jb250ZW50LmlkZW50aWZpZXIgOiAnJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiB0aGlzLmNvbnRlbnQgPyB0aGlzLmNvbnRlbnQuaWRlbnRpZmllciA6ICcnLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuY29udGVudCA/IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgOiAnJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhZ2VJZEV4dDogYGJ0bi0ke3N1YlR5cGV9YCxcclxuICAgICAgICBtb2R1bGU6IFdzRXZlbnRzLkVudW1UZWxlbWV0cnltb2R1bGVzLkNPTlRFTlQsXHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcbiAgcHJpdmF0ZSBvcGVuU25hY2tiYXIocHJpbWFyeU1zZzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gNTAwMCkge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKHByaW1hcnlNc2csICdYJywge1xyXG4gICAgICBkdXJhdGlvbixcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICByZXNldEVuYWJsZVNoYXJlRmxhZygpIHtcclxuICAgIHRoaXMucmVzZXRFbmFibGVTaGFyZS5lbWl0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwic2hhcmUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0xvYWRlclwiIGNsYXNzPVwidGV4dC1jZW50ZXIgbXktMiBsb2FkZXJcIj5cclxuICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJpbmxpbmUtYmxvY2tcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgY2xvc2Utc2hhcmUtZGlhbG9nXCI+PG1hdC1pY29uIChjbGljayk9XCJvbkNsb3NlKClcIiBjbGFzcz1cImNsb3NlLWljb25cIj5jbG9zZTwvbWF0LWljb24+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hhcmUtbW9kYWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2FybWFzYWhheW9naS1pY29uXCI+PGltZyBhbHQ9XCJrYXJtYXNhaGF5b2dpLWljb25cIiBzcmM9XCIvYXNzZXRzL2ljb25zL0thcm1hU2FoYXlvZ2kuc3ZnXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjb250ZW50LWRpdlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmlhbmdsZS1sZWZ0IGhpZGRlbiBtZDpibG9ja1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250bmV0XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwidy1mdWxsIGZsZXggYWxpZ24tY2VudGVyIGp1c3RpZnktYmV0d2VlbiBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LWhlYWRsaW5lIG1hcmdpbi1yZW1vdmUtYm90dG9tIHdzLW1hdC1ibGFjay10ZXh0XCI+e3snY29udGVudFNoYXJpbmcuaGVhZGVyJyB8IHRyYW5zbGF0ZX19PC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2hhcmVGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWJvZHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3QgYXJpYS1sYWJlbD1cInVzZXIgc2VsZWN0aW9uXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmUodXNlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t1c2VyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmUgKm5nSWY9XCJyZW1vdmFibGVcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRUZXh0Qm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3VzZXJzLmxlbmd0aCA9PT0gMCA/IHRyYW5zbGF0ZUxhYmVscygncGxhY2Vob2RlclRleHQnLCAnY29udGVudFNoYXJpbmcnKSA6ICcnfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjdXNlcklucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ1c2VyQ3RybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJhZGRPbkJsdXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBmaWx0ZXJlZFVzZXJzXCIgW3ZhbHVlXT1cInVzZXIubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb25EaXZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb25UZXh0XCI+e3t1c2VyLmljb25UZXh0LnN1YnN0cmluZygwLDIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57e3VzZXIubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsVGV4dFwiPnt7dXNlci5tYXNrZWRFbWFpbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50IGFsaWduPVwic3RhcnRcIiBjbGFzcz1cImxlZnQtb3Zlci1lbWFpbHNcIj57eydjb250ZW50U2hhcmluZy5ub3RlJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGludCBhbGlnbj1cImVuZFwiIGNsYXNzPVwibGVmdC1vdmVyLWVtYWlsc1wiPnt7IHVzZXJzLmxlbmd0aCB9fSAve3ttYXhFbWFpbHNMaW1pdH19IHt7J2NvbnRlbnRTaGFyaW5nLnJlbWFpbmdFbWFpbHMnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvcHktbGluay1idG4gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj57eydjb250ZW50U2hhcmluZy5jb3B5TGluaycgfCB0cmFuc2xhdGV9fSAmbmJzcDsmbmJzcDs8bWF0LWljb24gPmxpbms8L21hdC1pY29uPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSBmbGV4LWF1dG8tZGlzcGxheSBzZW5kLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiKHVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXQpID8gJ2dyYXktYmFja2dyb3VuZCcgOiAnYWN0aXZlLWJhY2tncm91bmQnIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVzZXJDdHJsLnZhbHVlLmxlbmd0aCB8fCB1c2Vycy5sZW5ndGggPT09IDAgfHwgdXNlcnMubGVuZ3RoID4gbWF4RW1haWxzTGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRTaGFyaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydjb250ZW50U2hhcmluZy5zZW5kJyB8IHRyYW5zbGF0ZX19ICZuYnNwOyA8bWF0LWljb24+c2VuZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|