@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,19 +1,19 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ReplaceNbspPipe {
|
|
4
|
-
transform(value) {
|
|
5
|
-
if (value && value.includes(' ')) {
|
|
6
|
-
return value.replace(/ /g, ' ');
|
|
7
|
-
}
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, name: "replaceNbsp" }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, decorators: [{
|
|
14
|
-
type: Pipe,
|
|
15
|
-
args: [{
|
|
16
|
-
name: 'replaceNbsp',
|
|
17
|
-
}]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ReplaceNbspPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
if (value && value.includes(' ')) {
|
|
6
|
+
return value.replace(/ /g, ' ');
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, name: "replaceNbsp" }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReplaceNbspPipe, decorators: [{
|
|
14
|
+
type: Pipe,
|
|
15
|
+
args: [{
|
|
16
|
+
name: 'replaceNbsp',
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1uYnNwLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvX2NvbGxlY3Rpb24vX2NvbW1vbi9jb250ZW50LXRvYy9waXBlcy9yZXBsYWNlLW5ic3AucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQTs7QUFLbkQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsU0FBUyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1NBQ3JDO1FBQ0MsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQzsrR0FQVSxlQUFlOzZHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3JlcGxhY2VOYnNwJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGxhY2VOYnNwUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUuaW5jbHVkZXMoJyZuYnNwOycpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mbmJzcDsvZywgJyAnKVxyXG4gICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TruncatePipe {
|
|
4
|
-
transform(value, limit) {
|
|
5
|
-
if (!value) {
|
|
6
|
-
return '';
|
|
7
|
-
}
|
|
8
|
-
// const words = value.split(' ')
|
|
9
|
-
// const newWord = words.slice(0, limit).join(' ')
|
|
10
|
-
const charLen = value.trim();
|
|
11
|
-
const newWord = value.substring(0, limit);
|
|
12
|
-
return charLen.length > limit ? (`${newWord}...`) : value;
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
15
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, name: "truncate" }); }
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, decorators: [{
|
|
18
|
-
type: Pipe,
|
|
19
|
-
args: [{
|
|
20
|
-
name: 'truncate',
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TruncatePipe {
|
|
4
|
+
transform(value, limit) {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
// const words = value.split(' ')
|
|
9
|
+
// const newWord = words.slice(0, limit).join(' ')
|
|
10
|
+
const charLen = value.trim();
|
|
11
|
+
const newWord = value.substring(0, limit);
|
|
12
|
+
return charLen.length > limit ? (`${newWord}...`) : value;
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
15
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, name: "truncate" }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatePipe, decorators: [{
|
|
18
|
+
type: Pipe,
|
|
19
|
+
args: [{
|
|
20
|
+
name: 'truncate',
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL3BpcGVzL3RydW5jYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUE7O0FBS25ELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUE7U0FDVjtRQUNELGlDQUFpQztRQUNqQyxrREFBa0Q7UUFDbEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQzVCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7SUFDM0QsQ0FBQzsrR0FWVSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3RydW5jYXRlJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydW5jYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsaW1pdDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgICAvLyBjb25zdCB3b3JkcyA9IHZhbHVlLnNwbGl0KCcgJylcclxuICAgIC8vIGNvbnN0IG5ld1dvcmQgPSB3b3Jkcy5zbGljZSgwLCBsaW1pdCkuam9pbignICcpXHJcbiAgICBjb25zdCBjaGFyTGVuID0gdmFsdWUudHJpbSgpXHJcbiAgICBjb25zdCBuZXdXb3JkID0gdmFsdWUuc3Vic3RyaW5nKDAsIGxpbWl0KVxyXG4gICAgcmV0dXJuIGNoYXJMZW4ubGVuZ3RoID4gbGltaXQgPyAoYCR7bmV3V29yZH0uLi5gKSA6IHZhbHVlXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
import { Component, ViewChild, Inject, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
|
|
4
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
-
import * as i2 from "../content-services/review-component-data.service";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "@angular/material/icon";
|
|
10
|
-
import * as i5 from "@angular/material/menu";
|
|
11
|
-
import * as i6 from "@angular/material/progress-spinner";
|
|
12
|
-
import * as i7 from "../../avatar-photo/avatar-photo.component";
|
|
13
|
-
import * as i8 from "../../rating-summary/rating-summary.component";
|
|
14
|
-
import * as i9 from "ngx-infinite-scroll";
|
|
15
|
-
import * as i10 from "@sunbird-cb/utils-v2";
|
|
16
|
-
import * as i11 from "@ngx-translate/core";
|
|
17
|
-
export class ReviewsContentComponent {
|
|
18
|
-
constructor(dialogRef, reviewDataService, data) {
|
|
19
|
-
this.dialogRef = dialogRef;
|
|
20
|
-
this.reviewDataService = reviewDataService;
|
|
21
|
-
this.data = data;
|
|
22
|
-
this.initiateLoadMore = new EventEmitter();
|
|
23
|
-
this.loadLatestReviews = new EventEmitter();
|
|
24
|
-
this.clearIcon = false;
|
|
25
|
-
this.disableLoadMore = false;
|
|
26
|
-
this.reviews = [];
|
|
27
|
-
this.showFilterIndicator = 'Top';
|
|
28
|
-
this.displayLoader = false;
|
|
29
|
-
this.reviewDataService.getReviewData().subscribe((_review) => {
|
|
30
|
-
this.reviews = _review;
|
|
31
|
-
this.data.reviews = _review;
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
if (this.data && this.data.reviews) {
|
|
36
|
-
this.reviews = Object.values(this.data.reviews);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
ngAfterViewInit() {
|
|
40
|
-
fromEvent(this.searchInput.nativeElement, 'keyup')
|
|
41
|
-
.pipe(
|
|
42
|
-
// get value
|
|
43
|
-
map((event) => {
|
|
44
|
-
return event.target.value.trim();
|
|
45
|
-
}),
|
|
46
|
-
// Time in milliseconds between key events
|
|
47
|
-
debounceTime(150),
|
|
48
|
-
// If previous query is different from current
|
|
49
|
-
distinctUntilChanged())
|
|
50
|
-
// subscription for response
|
|
51
|
-
.subscribe((text) => {
|
|
52
|
-
this.clearIcon = (text.length) ? true : false;
|
|
53
|
-
if (text) {
|
|
54
|
-
this.reviews = Object.values(this.reviews).filter((_obj) => {
|
|
55
|
-
return _obj.review && _obj.review.toLowerCase().includes(text.toLowerCase())
|
|
56
|
-
|| _obj.firstName && _obj.firstName.toLowerCase().includes(text.toLowerCase());
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.reviews = Object.values(this.data.reviews);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
handleCloseModal() {
|
|
65
|
-
this.dialogRef.close();
|
|
66
|
-
}
|
|
67
|
-
handleFocus() {
|
|
68
|
-
this.searchInput.nativeElement.focus();
|
|
69
|
-
}
|
|
70
|
-
handleClear() {
|
|
71
|
-
this.clearIcon = false;
|
|
72
|
-
this.searchInput.nativeElement.value = '';
|
|
73
|
-
this.reviews = Object.values(this.data.reviews);
|
|
74
|
-
}
|
|
75
|
-
handleCapitalize(str, type) {
|
|
76
|
-
let returnValue = '';
|
|
77
|
-
if (str && type === 'name') {
|
|
78
|
-
returnValue = str.split(' ').map(_str => {
|
|
79
|
-
return _str.charAt(0).toUpperCase() + _str.slice(1);
|
|
80
|
-
}).join(' ');
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
returnValue = str && (str.charAt(0).toUpperCase() + str.slice(1));
|
|
84
|
-
}
|
|
85
|
-
return returnValue;
|
|
86
|
-
}
|
|
87
|
-
handleReviewsFilter(str) {
|
|
88
|
-
this.showFilterIndicator = str;
|
|
89
|
-
this.loadLatestReviews.emit(str);
|
|
90
|
-
this.handleClear();
|
|
91
|
-
}
|
|
92
|
-
handleLoadMore() {
|
|
93
|
-
this.displayLoader = true;
|
|
94
|
-
this.initiateLoadMore.emit(this.showFilterIndicator);
|
|
95
|
-
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewsContentComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.ReviewComponentDataService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ReviewsContentComponent, selector: "ws-widget-reviews-content", outputs: { initiateLoadMore: "initiateLoadMore", loadLatestReviews: "loadLatestReviews" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"rating-modal-container\">\n <div class=\"flex flex-row ratings-container\">\n <div class=\"flex-1\">\n <ws-widget-rating-summary [ratingSummary]=\"data?.ratings\"></ws-widget-rating-summary>\n </div>\n <div class=\"flex\">\n <mat-icon class=\"cursor-pointer\" (click)=\"handleCloseModal()\" >close</mat-icon>\n </div>\n </div>\n <div class=\"flex flex-col p-6\">\n <div class=\"flex flex-col gap-4\">\n <div class=\"font-base font-bold\">\n <span *ngIf=\"showFilterIndicator === 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\n <span *ngIf=\"showFilterIndicator !== 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\n </div>\n <div class=\"flex flex-row gap-3\">\n <div class=\"flex-1\">\n <div class=\"flex flex-row search-div\">\n <mat-icon (click)=\"handleFocus()\" class=\"cursor-pointer\">search</mat-icon>\n <input #searchInput type=\"text\" class=\"search-input flex\" placeholder=\"Search\" maxlength=\"50\" />\n <ng-container *ngIf=\"clearIcon\">\n <mat-icon (click)=\"handleClear()\" class=\"cursor-pointer\">close</mat-icon>\n </ng-container>\n </div>\n </div>\n <div class=\"flex items-center justify-center w-8\">\n <mat-icon class=\"cursor-pointer\" [matMenuTriggerFor]=\"filter\">filter_list</mat-icon>\n <mat-menu #filter=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Latest'}\"\n (click)=\"handleReviewsFilter('Latest')\">\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\n </button>\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Top'}\"\n (click)=\"handleReviewsFilter('Top')\">\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!reviews || !reviews.length\">\n <div class=\"flex justify-center items-center no-reviews-found text-lg\">\n <div class=\"p-4 nodtranslate\">\n {{ 'apptocsinglepage.noReviewsFound' | translate }}\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"reviews?.length\">\n <div class=\"flex flex-col reviews\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"150\" [infiniteScrollContainer]=\"'.reviews'\" [fromRoot]=\"true\" [scrollWindow]=\"false\" (scrolled)=\"handleLoadMore()\">\n <ng-container *ngFor=\"let eachReview of reviews; let i = index\">\n <div class=\"flex flex-row gap-3 p-4\">\n <div class=\"flex-1\">\n <div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-row gap-2\">\n <div class=\"flex-1\">\n <div class=\"flex text-sm nodtranslate\">{{ handleCapitalize(eachReview?.review, 'comment') }}</div>\n </div>\n <div class=\"flex flex-row gap-1 rating-start-value\">\n <mat-icon>star</mat-icon>\n <div class=\"text-sm nodtranslate\">{{ eachReview?.rating }}</div>\n </div>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <ws-widget-avatar-photo [randomColor]=\"true\" [datalen]=\"1\" [size]=\"'round-m'\" [photoUrl]=\"eachReview?.photo || ''\" [name]=\"eachReview?.firstName\"></ws-widget-avatar-photo>\n <div class=\"flex flex-wrap\">\n <div class=\"text-sm nodtranslate\">{{ handleCapitalize(eachReview?.firstName.toLowerCase(), 'name') }}</div>\n <div class=\"flex items-center mx-2\">\n <span class=\"period\"></span>\n </div>\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.date\">{{ eachReview?.date | pipeRelativeTime }}</div>\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.updatedon\">{{ eachReview?.updatedon | pipeRelativeTime }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"separator\" *ngIf=\"reviews.length > (i + 1)\" ></div>\n </ng-container>\n <div *ngIf=\"displayLoader\" class=\"flex items-center justify-center mt-6\">\n <mat-spinner [diameter]=\"30\"></mat-spinner>\n </div>\n </div>\n </ng-container>\n </div>\n \n</div>\n\n", styles: [".search-div{border:1px solid rgba(0,0,0,.16);border-radius:4px;background:#fff}.search-div .mat-icon{padding:8px}.search-div .search-input{padding:8px 0;border:none;border-radius:8px;width:100%;font-family:Lato}.search-div .search-input:focus{outline:none}.search-div .search-input:focus-visible{outline:none!important}.ratings-container{padding:24px;background-color:#1b4ca114}.separator{border-bottom:2px solid rgba(0,0,0,.1)}.reviews{max-height:320px;overflow-y:auto}.rating-start-value mat-icon{color:#ff9800}::ng-deep .mat-menu-panel{min-width:12em!important;padding:8px 0!important;border-radius:12px;margin-top:4px}::ng-deep .mat-menu-panel .mat-menu-content{padding-top:0!important}::ng-deep .mat-menu-panel .mat-menu-content button{padding:0 16px!important}.no-reviews-found{background-color:#fff;margin-top:16px;border-radius:8px;border:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i7.AvatarPhotoComponent, selector: "ws-widget-avatar-photo", inputs: ["datalen", "photoUrl", "name", "size", "randomColor", "initials", "showBadge"] }, { kind: "component", type: i8.RatingSummaryComponent, selector: "ws-widget-rating-summary", inputs: ["ratingSummary"] }, { kind: "directive", type: i9.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i10.PipeRelativeTimePipe, name: "pipeRelativeTime" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
|
98
|
-
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewsContentComponent, decorators: [{
|
|
100
|
-
type: Component,
|
|
101
|
-
args: [{ selector: 'ws-widget-reviews-content', template: "<div class=\"rating-modal-container\">\n <div class=\"flex flex-row ratings-container\">\n <div class=\"flex-1\">\n <ws-widget-rating-summary [ratingSummary]=\"data?.ratings\"></ws-widget-rating-summary>\n </div>\n <div class=\"flex\">\n <mat-icon class=\"cursor-pointer\" (click)=\"handleCloseModal()\" >close</mat-icon>\n </div>\n </div>\n <div class=\"flex flex-col p-6\">\n <div class=\"flex flex-col gap-4\">\n <div class=\"font-base font-bold\">\n <span *ngIf=\"showFilterIndicator === 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\n <span *ngIf=\"showFilterIndicator !== 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\n </div>\n <div class=\"flex flex-row gap-3\">\n <div class=\"flex-1\">\n <div class=\"flex flex-row search-div\">\n <mat-icon (click)=\"handleFocus()\" class=\"cursor-pointer\">search</mat-icon>\n <input #searchInput type=\"text\" class=\"search-input flex\" placeholder=\"Search\" maxlength=\"50\" />\n <ng-container *ngIf=\"clearIcon\">\n <mat-icon (click)=\"handleClear()\" class=\"cursor-pointer\">close</mat-icon>\n </ng-container>\n </div>\n </div>\n <div class=\"flex items-center justify-center w-8\">\n <mat-icon class=\"cursor-pointer\" [matMenuTriggerFor]=\"filter\">filter_list</mat-icon>\n <mat-menu #filter=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Latest'}\"\n (click)=\"handleReviewsFilter('Latest')\">\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\n </button>\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Top'}\"\n (click)=\"handleReviewsFilter('Top')\">\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"!reviews || !reviews.length\">\n <div class=\"flex justify-center items-center no-reviews-found text-lg\">\n <div class=\"p-4 nodtranslate\">\n {{ 'apptocsinglepage.noReviewsFound' | translate }}\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"reviews?.length\">\n <div class=\"flex flex-col reviews\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"150\" [infiniteScrollContainer]=\"'.reviews'\" [fromRoot]=\"true\" [scrollWindow]=\"false\" (scrolled)=\"handleLoadMore()\">\n <ng-container *ngFor=\"let eachReview of reviews; let i = index\">\n <div class=\"flex flex-row gap-3 p-4\">\n <div class=\"flex-1\">\n <div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-row gap-2\">\n <div class=\"flex-1\">\n <div class=\"flex text-sm nodtranslate\">{{ handleCapitalize(eachReview?.review, 'comment') }}</div>\n </div>\n <div class=\"flex flex-row gap-1 rating-start-value\">\n <mat-icon>star</mat-icon>\n <div class=\"text-sm nodtranslate\">{{ eachReview?.rating }}</div>\n </div>\n </div>\n <div class=\"flex flex-row gap-2 items-center\">\n <ws-widget-avatar-photo [randomColor]=\"true\" [datalen]=\"1\" [size]=\"'round-m'\" [photoUrl]=\"eachReview?.photo || ''\" [name]=\"eachReview?.firstName\"></ws-widget-avatar-photo>\n <div class=\"flex flex-wrap\">\n <div class=\"text-sm nodtranslate\">{{ handleCapitalize(eachReview?.firstName.toLowerCase(), 'name') }}</div>\n <div class=\"flex items-center mx-2\">\n <span class=\"period\"></span>\n </div>\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.date\">{{ eachReview?.date | pipeRelativeTime }}</div>\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.updatedon\">{{ eachReview?.updatedon | pipeRelativeTime }}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"separator\" *ngIf=\"reviews.length > (i + 1)\" ></div>\n </ng-container>\n <div *ngIf=\"displayLoader\" class=\"flex items-center justify-center mt-6\">\n <mat-spinner [diameter]=\"30\"></mat-spinner>\n </div>\n </div>\n </ng-container>\n </div>\n \n</div>\n\n", styles: [".search-div{border:1px solid rgba(0,0,0,.16);border-radius:4px;background:#fff}.search-div .mat-icon{padding:8px}.search-div .search-input{padding:8px 0;border:none;border-radius:8px;width:100%;font-family:Lato}.search-div .search-input:focus{outline:none}.search-div .search-input:focus-visible{outline:none!important}.ratings-container{padding:24px;background-color:#1b4ca114}.separator{border-bottom:2px solid rgba(0,0,0,.1)}.reviews{max-height:320px;overflow-y:auto}.rating-start-value mat-icon{color:#ff9800}::ng-deep .mat-menu-panel{min-width:12em!important;padding:8px 0!important;border-radius:12px;margin-top:4px}::ng-deep .mat-menu-panel .mat-menu-content{padding-top:0!important}::ng-deep .mat-menu-panel .mat-menu-content button{padding:0 16px!important}.no-reviews-found{background-color:#fff;margin-top:16px;border-radius:8px;border:none}\n"] }]
|
|
102
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.ReviewComponentDataService }, { type: undefined, decorators: [{
|
|
103
|
-
type: Inject,
|
|
104
|
-
args: [MAT_DIALOG_DATA]
|
|
105
|
-
}] }]; }, propDecorators: { searchInput: [{
|
|
106
|
-
type: ViewChild,
|
|
107
|
-
args: ['searchInput', { static: true }]
|
|
108
|
-
}], initiateLoadMore: [{
|
|
109
|
-
type: Output
|
|
110
|
-
}], loadLatestReviews: [{
|
|
111
|
-
type: Output
|
|
112
|
-
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL3Jldmlld3MtY29udGVudC9yZXZpZXdzLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvcmV2aWV3cy1jb250ZW50L3Jldmlld3MtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBc0Msc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFZL0gsTUFBTSxPQUFPLHVCQUF1QjtJQVdsQyxZQUNTLFNBQWdELEVBQy9DLGlCQUE2QyxFQUNyQixJQUFTO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQXVDO1FBQy9DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNEI7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBSztRQVhqQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3JDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFDaEQsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQixvQkFBZSxHQUFH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IE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBJbmplY3QsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJ1xuXG5pbXBvcnQgeyBSZXZpZXdDb21wb25lbnREYXRhU2VydmljZSB9IGZyb20gJy4uL2NvbnRlbnQtc2VydmljZXMvcmV2aWV3LWNvbXBvbmVudC1kYXRhLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLXdpZGdldC1yZXZpZXdzLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmV2aWV3cy1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmV2aWV3cy1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuXG5leHBvcnQgY2xhc3MgUmV2aWV3c0NvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+XG4gIEBPdXRwdXQoKSBpbml0aWF0ZUxvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBsb2FkTGF0ZXN0UmV2aWV3cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBjbGVhckljb24gPSBmYWxzZVxuICBkaXNhYmxlTG9hZE1vcmUgPSBmYWxzZVxuICByZXZpZXdzOiBhbnlbXSA9IFtdXG4gIHNob3dGaWx0ZXJJbmRpY2F0b3IgPSAnVG9wJ1xuICBkaXNwbGF5TG9hZGVyID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmV2aWV3c0NvbnRlbnRDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgcmV2aWV3RGF0YVNlcnZpY2U6IFJldmlld0NvbXBvbmVudERhdGFTZXJ2aWNlLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55XG4gICkge1xuICAgIHRoaXMucmV2aWV3RGF0YVNlcnZpY2UuZ2V0UmV2aWV3RGF0YSgpLnN1YnNjcmliZSgoX3JldmlldzogYW55KSA9PiB7XG4gICAgICB0aGlzLnJldmlld3MgPSBfcmV2aWV3XG4gICAgICB0aGlzLmRhdGEucmV2aWV3cyA9IF9yZXZpZXdcbiAgICB9KVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEucmV2aWV3cykge1xuICAgICAgdGhpcy5yZXZpZXdzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEucmV2aWV3cylcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAucGlwZShcbiAgICAgICAgLy8gZ2V0IHZhbHVlXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWUudHJpbSgpXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBUaW1lIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIGtleSBldmVudHNcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgIC8vIElmIHByZXZpb3VzIHF1ZXJ5IGlzIGRpZmZlcmVudCBmcm9tIGN1cnJlbnRcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIClcbiAgICAgIC8vIHN1YnNjcmlwdGlvbiBmb3IgcmVzcG9uc2VcbiAgICAgIC5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmNsZWFySWNvbiA9ICh0ZXh0Lmxlbmd0aCkgPyB0cnVlIDogZmFsc2VcblxuICAgICAgICBpZiAodGV4dCkge1xuICAgICAgICAgIHRoaXMucmV2aWV3cyA9IE9iamVjdC52YWx1ZXModGhpcy5yZXZpZXdzKS5maWx0ZXIoKF9vYmo6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIF9vYmoucmV2aWV3ICYmIF9vYmoucmV2aWV3LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgfHwgX29iai5maXJzdE5hbWUgJiYgX29iai5maXJzdE5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJldmlld3MgPSBPYmplY3QudmFsdWVzKHRoaXMuZGF0YS5yZXZpZXdzKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlQ2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpXG4gIH1cblxuICBoYW5kbGVGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgaGFuZGxlQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckljb24gPSBmYWxzZVxuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnXG4gICAgdGhpcy5yZXZpZXdzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEucmV2aWV3cylcbiAgfVxuXG4gIGhhbmRsZUNhcGl0YWxpemUoc3RyOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gICAgbGV0IHJldHVyblZhbHVlID0gJydcbiAgICBpZiAoc3RyICYmIHR5cGUgPT09ICduYW1lJykge1xuICAgICAgcmV0dXJuVmFsdWUgPSBzdHIuc3BsaXQoJyAnKS5tYXAoX3N0ciA9PiB7XG4gICAgICAgIHJldHVybiBfc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgX3N0ci5zbGljZSgxKVxuICAgICAgfSkuam9pbignICcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVyblZhbHVlID0gc3RyICYmIChzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkpXG4gICAgfVxuICAgIHJldHVybiByZXR1cm5WYWx1ZVxuICB9XG5cbiAgaGFuZGxlUmV2aWV3c0ZpbHRlcihzdHI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0ZpbHRlckluZGljYXRvciA9IHN0clxuICAgIHRoaXMubG9hZExhdGVzdFJldmlld3MuZW1pdChzdHIpXG4gICAgdGhpcy5oYW5kbGVDbGVhcigpXG4gIH1cblxuICBoYW5kbGVMb2FkTW9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlMb2FkZXIgPSB0cnVlXG4gICAgdGhpcy5pbml0aWF0ZUxvYWRNb3JlLmVtaXQodGhpcy5zaG93RmlsdGVySW5kaWNhdG9yKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmF0aW5nLW1vZGFsLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHJhdGluZ3MtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgIDx3cy13aWRnZXQtcmF0aW5nLXN1bW1hcnkgW3JhdGluZ1N1bW1hcnldPVwiZGF0YT8ucmF0aW5nc1wiPjwvd3Mtd2lkZ2V0LXJhdGluZy1zdW1tYXJ5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImhhbmRsZUNsb3NlTW9kYWwoKVwiID5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHAtNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYmFzZSBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dGaWx0ZXJJbmRpY2F0b3IgPT09ICdUb3AnXCIgY2xhc3M9XCJub2R0cmFuc2xhdGVcIj57eyAnYXBwdG9jc2luZ2xlcGFnZS50b3BSZXZpZXdzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dGaWx0ZXJJbmRpY2F0b3IgIT09ICdUb3AnXCIgY2xhc3M9XCJub2R0cmFuc2xhdGVcIj57eyAnYXBwdG9jc2luZ2xlcGFnZS5sYXRlc3RSZXZpZXdzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IHNlYXJjaC1kaXZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiaGFuZGxlRm9jdXMoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNzZWFyY2hJbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwic2VhcmNoLWlucHV0IGZsZXhcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIG1heGxlbmd0aD1cIjUwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbGVhckljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImhhbmRsZUNsZWFyKClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LThcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZmlsdGVyXCI+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI2ZpbHRlcj1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInB4LTNcIiBbbmdDbGFzc109XCJ7J2hpZ2hsaWdodEZpbHRlcic6IHNob3dGaWx0ZXJJbmRpY2F0b3IgPT09ICdMYXRlc3QnfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVJldmlld3NGaWx0ZXIoJ0xhdGVzdCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2R0cmFuc2xhdGVcIj57eyAnYXBwdG9jc2luZ2xlcGFnZS5sYXRlc3RSZXZpZXdzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwicHgtM1wiIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0RmlsdGVyJzogc2hvd0ZpbHRlckluZGljYXRvciA9PT0gJ1RvcCd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlUmV2aWV3c0ZpbHRlcignVG9wJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vZHRyYW5zbGF0ZVwiPnt7ICdhcHB0b2NzaW5nbGVwYWdlLnRvcFJldmlld3MnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmV2aWV3cyB8fCAhcmV2aWV3cy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBuby1yZXZpZXdzLWZvdW5kIHRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC00IG5vZHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnYXBwdG9jc2luZ2xlcGFnZS5ub1Jldmlld3NGb3VuZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJldmlld3M/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcmV2aWV3c1wiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCIxNTBcIiBbaW5maW5pdGVTY3JvbGxDb250YWluZXJdPVwiJy5yZXZpZXdzJ1wiIFtmcm9tUm9vdF09XCJ0cnVlXCIgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiIChzY3JvbGxlZCk9XCJoYW5kbGVMb2FkTW9yZSgpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWFjaFJldmlldyBvZiByZXZpZXdzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0zIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdGV4dC1zbSBub2R0cmFuc2xhdGVcIj57eyBoYW5kbGVDYXBpdGFsaXplKGVhY2hSZXZpZXc/LnJldmlldywgJ2NvbW1lbnQnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMSByYXRpbmctc3RhcnQtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+c3RhcjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbm9kdHJhbnNsYXRlXCI+e3sgZWFjaFJldmlldz8ucmF0aW5nIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHdzLXdpZGdldC1hdmF0YXItcGhvdG8gW3JhbmRvbUNvbG9yXT1cInRydWVcIiBbZGF0YWxlbl09XCIxXCIgW3NpemVdPVwiJ3JvdW5kLW0nXCIgW3Bob3RvVXJsXT1cImVhY2hSZXZpZXc/LnBob3RvIHx8ICcnXCIgW25hbWVdPVwiZWFjaFJldmlldz8uZmlyc3ROYW1lXCI+PC93cy13aWRnZXQtYXZhdGFyLXBob3RvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbm9kdHJhbnNsYXRlXCI+e3sgaGFuZGxlQ2FwaXRhbGl6ZShlYWNoUmV2aWV3Py5maXJzdE5hbWUudG9Mb3dlckNhc2UoKSwgJ25hbWUnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBteC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVyaW9kXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG5vZHRyYW5zbGF0ZVwiICpuZ0lmPVwiZWFjaFJldmlldz8uZGF0ZVwiPnt7IGVhY2hSZXZpZXc/LmRhdGUgfCBwaXBlUmVsYXRpdmVUaW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbm9kdHJhbnNsYXRlXCIgKm5nSWY9XCJlYWNoUmV2aWV3Py51cGRhdGVkb25cIj57eyBlYWNoUmV2aWV3Py51cGRhdGVkb24gfCBwaXBlUmVsYXRpdmVUaW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIiAqbmdJZj1cInJldmlld3MubGVuZ3RoID4gKGkgKyAxKVwiID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUxvYWRlclwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXQtNlwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjMwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICBcbjwvZGl2PlxuXG4iXX0=
|
|
1
|
+
import { Component, ViewChild, Inject, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { fromEvent } from 'rxjs';
|
|
3
|
+
import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
|
|
4
|
+
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
+
import * as i2 from "../content-services/review-component-data.service";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/material/icon";
|
|
10
|
+
import * as i5 from "@angular/material/menu";
|
|
11
|
+
import * as i6 from "@angular/material/progress-spinner";
|
|
12
|
+
import * as i7 from "../../avatar-photo/avatar-photo.component";
|
|
13
|
+
import * as i8 from "../../rating-summary/rating-summary.component";
|
|
14
|
+
import * as i9 from "ngx-infinite-scroll";
|
|
15
|
+
import * as i10 from "@sunbird-cb/utils-v2";
|
|
16
|
+
import * as i11 from "@ngx-translate/core";
|
|
17
|
+
export class ReviewsContentComponent {
|
|
18
|
+
constructor(dialogRef, reviewDataService, data) {
|
|
19
|
+
this.dialogRef = dialogRef;
|
|
20
|
+
this.reviewDataService = reviewDataService;
|
|
21
|
+
this.data = data;
|
|
22
|
+
this.initiateLoadMore = new EventEmitter();
|
|
23
|
+
this.loadLatestReviews = new EventEmitter();
|
|
24
|
+
this.clearIcon = false;
|
|
25
|
+
this.disableLoadMore = false;
|
|
26
|
+
this.reviews = [];
|
|
27
|
+
this.showFilterIndicator = 'Top';
|
|
28
|
+
this.displayLoader = false;
|
|
29
|
+
this.reviewDataService.getReviewData().subscribe((_review) => {
|
|
30
|
+
this.reviews = _review;
|
|
31
|
+
this.data.reviews = _review;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
if (this.data && this.data.reviews) {
|
|
36
|
+
this.reviews = Object.values(this.data.reviews);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ngAfterViewInit() {
|
|
40
|
+
fromEvent(this.searchInput.nativeElement, 'keyup')
|
|
41
|
+
.pipe(
|
|
42
|
+
// get value
|
|
43
|
+
map((event) => {
|
|
44
|
+
return event.target.value.trim();
|
|
45
|
+
}),
|
|
46
|
+
// Time in milliseconds between key events
|
|
47
|
+
debounceTime(150),
|
|
48
|
+
// If previous query is different from current
|
|
49
|
+
distinctUntilChanged())
|
|
50
|
+
// subscription for response
|
|
51
|
+
.subscribe((text) => {
|
|
52
|
+
this.clearIcon = (text.length) ? true : false;
|
|
53
|
+
if (text) {
|
|
54
|
+
this.reviews = Object.values(this.reviews).filter((_obj) => {
|
|
55
|
+
return _obj.review && _obj.review.toLowerCase().includes(text.toLowerCase())
|
|
56
|
+
|| _obj.firstName && _obj.firstName.toLowerCase().includes(text.toLowerCase());
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.reviews = Object.values(this.data.reviews);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
handleCloseModal() {
|
|
65
|
+
this.dialogRef.close();
|
|
66
|
+
}
|
|
67
|
+
handleFocus() {
|
|
68
|
+
this.searchInput.nativeElement.focus();
|
|
69
|
+
}
|
|
70
|
+
handleClear() {
|
|
71
|
+
this.clearIcon = false;
|
|
72
|
+
this.searchInput.nativeElement.value = '';
|
|
73
|
+
this.reviews = Object.values(this.data.reviews);
|
|
74
|
+
}
|
|
75
|
+
handleCapitalize(str, type) {
|
|
76
|
+
let returnValue = '';
|
|
77
|
+
if (str && type === 'name') {
|
|
78
|
+
returnValue = str.split(' ').map(_str => {
|
|
79
|
+
return _str.charAt(0).toUpperCase() + _str.slice(1);
|
|
80
|
+
}).join(' ');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
returnValue = str && (str.charAt(0).toUpperCase() + str.slice(1));
|
|
84
|
+
}
|
|
85
|
+
return returnValue;
|
|
86
|
+
}
|
|
87
|
+
handleReviewsFilter(str) {
|
|
88
|
+
this.showFilterIndicator = str;
|
|
89
|
+
this.loadLatestReviews.emit(str);
|
|
90
|
+
this.handleClear();
|
|
91
|
+
}
|
|
92
|
+
handleLoadMore() {
|
|
93
|
+
this.displayLoader = true;
|
|
94
|
+
this.initiateLoadMore.emit(this.showFilterIndicator);
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewsContentComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.ReviewComponentDataService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ReviewsContentComponent, selector: "ws-widget-reviews-content", outputs: { initiateLoadMore: "initiateLoadMore", loadLatestReviews: "loadLatestReviews" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"rating-modal-container\">\r\n <div class=\"flex flex-row ratings-container\">\r\n <div class=\"flex-1\">\r\n <ws-widget-rating-summary [ratingSummary]=\"data?.ratings\"></ws-widget-rating-summary>\r\n </div>\r\n <div class=\"flex\">\r\n <mat-icon class=\"cursor-pointer\" (click)=\"handleCloseModal()\" >close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col p-6\">\r\n <div class=\"flex flex-col gap-4\">\r\n <div class=\"font-base font-bold\">\r\n <span *ngIf=\"showFilterIndicator === 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\r\n <span *ngIf=\"showFilterIndicator !== 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\r\n </div>\r\n <div class=\"flex flex-row gap-3\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex flex-row search-div\">\r\n <mat-icon (click)=\"handleFocus()\" class=\"cursor-pointer\">search</mat-icon>\r\n <input #searchInput type=\"text\" class=\"search-input flex\" placeholder=\"Search\" maxlength=\"50\" />\r\n <ng-container *ngIf=\"clearIcon\">\r\n <mat-icon (click)=\"handleClear()\" class=\"cursor-pointer\">close</mat-icon>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center justify-center w-8\">\r\n <mat-icon class=\"cursor-pointer\" [matMenuTriggerFor]=\"filter\">filter_list</mat-icon>\r\n <mat-menu #filter=\"matMenu\" xPosition=\"before\">\r\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Latest'}\"\r\n (click)=\"handleReviewsFilter('Latest')\">\r\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\r\n </button>\r\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Top'}\"\r\n (click)=\"handleReviewsFilter('Top')\">\r\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!reviews || !reviews.length\">\r\n <div class=\"flex justify-center items-center no-reviews-found text-lg\">\r\n <div class=\"p-4 nodtranslate\">\r\n {{ 'apptocsinglepage.noReviewsFound' | translate }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"reviews?.length\">\r\n <div class=\"flex flex-col reviews\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"150\" [infiniteScrollContainer]=\"'.reviews'\" [fromRoot]=\"true\" [scrollWindow]=\"false\" (scrolled)=\"handleLoadMore()\">\r\n <ng-container *ngFor=\"let eachReview of reviews; let i = index\">\r\n <div class=\"flex flex-row gap-3 p-4\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex flex-col gap-4\">\r\n <div class=\"flex flex-row gap-2\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex text-sm nodtranslate\">{{ handleCapitalize(eachReview?.review, 'comment') }}</div>\r\n </div>\r\n <div class=\"flex flex-row gap-1 rating-start-value\">\r\n <mat-icon>star</mat-icon>\r\n <div class=\"text-sm nodtranslate\">{{ eachReview?.rating }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row gap-2 items-center\">\r\n <ws-widget-avatar-photo [randomColor]=\"true\" [datalen]=\"1\" [size]=\"'round-m'\" [photoUrl]=\"eachReview?.photo || ''\" [name]=\"eachReview?.firstName\"></ws-widget-avatar-photo>\r\n <div class=\"flex flex-wrap\">\r\n <div class=\"text-sm nodtranslate\">{{ handleCapitalize(eachReview?.firstName.toLowerCase(), 'name') }}</div>\r\n <div class=\"flex items-center mx-2\">\r\n <span class=\"period\"></span>\r\n </div>\r\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.date\">{{ eachReview?.date | pipeRelativeTime }}</div>\r\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.updatedon\">{{ eachReview?.updatedon | pipeRelativeTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"separator\" *ngIf=\"reviews.length > (i + 1)\" ></div>\r\n </ng-container>\r\n <div *ngIf=\"displayLoader\" class=\"flex items-center justify-center mt-6\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n</div>\r\n\r\n", styles: [".search-div{border:1px solid rgba(0,0,0,.16);border-radius:4px;background:#fff}.search-div .mat-icon{padding:8px}.search-div .search-input{padding:8px 0;border:none;border-radius:8px;width:100%;font-family:Lato}.search-div .search-input:focus{outline:none}.search-div .search-input:focus-visible{outline:none!important}.ratings-container{padding:24px;background-color:#1b4ca114}.separator{border-bottom:2px solid rgba(0,0,0,.1)}.reviews{max-height:320px;overflow-y:auto}.rating-start-value mat-icon{color:#ff9800}::ng-deep .mat-menu-panel{min-width:12em!important;padding:8px 0!important;border-radius:12px;margin-top:4px}::ng-deep .mat-menu-panel .mat-menu-content{padding-top:0!important}::ng-deep .mat-menu-panel .mat-menu-content button{padding:0 16px!important}.no-reviews-found{background-color:#fff;margin-top:16px;border-radius:8px;border:none}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i7.AvatarPhotoComponent, selector: "ws-widget-avatar-photo", inputs: ["datalen", "photoUrl", "name", "size", "randomColor", "initials", "showBadge"] }, { kind: "component", type: i8.RatingSummaryComponent, selector: "ws-widget-rating-summary", inputs: ["ratingSummary"] }, { kind: "directive", type: i9.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i10.PipeRelativeTimePipe, name: "pipeRelativeTime" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] }); }
|
|
98
|
+
}
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ReviewsContentComponent, decorators: [{
|
|
100
|
+
type: Component,
|
|
101
|
+
args: [{ selector: 'ws-widget-reviews-content', template: "<div class=\"rating-modal-container\">\r\n <div class=\"flex flex-row ratings-container\">\r\n <div class=\"flex-1\">\r\n <ws-widget-rating-summary [ratingSummary]=\"data?.ratings\"></ws-widget-rating-summary>\r\n </div>\r\n <div class=\"flex\">\r\n <mat-icon class=\"cursor-pointer\" (click)=\"handleCloseModal()\" >close</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col p-6\">\r\n <div class=\"flex flex-col gap-4\">\r\n <div class=\"font-base font-bold\">\r\n <span *ngIf=\"showFilterIndicator === 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\r\n <span *ngIf=\"showFilterIndicator !== 'Top'\" class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\r\n </div>\r\n <div class=\"flex flex-row gap-3\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex flex-row search-div\">\r\n <mat-icon (click)=\"handleFocus()\" class=\"cursor-pointer\">search</mat-icon>\r\n <input #searchInput type=\"text\" class=\"search-input flex\" placeholder=\"Search\" maxlength=\"50\" />\r\n <ng-container *ngIf=\"clearIcon\">\r\n <mat-icon (click)=\"handleClear()\" class=\"cursor-pointer\">close</mat-icon>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center justify-center w-8\">\r\n <mat-icon class=\"cursor-pointer\" [matMenuTriggerFor]=\"filter\">filter_list</mat-icon>\r\n <mat-menu #filter=\"matMenu\" xPosition=\"before\">\r\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Latest'}\"\r\n (click)=\"handleReviewsFilter('Latest')\">\r\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.latestReviews' | translate }}</span>\r\n </button>\r\n <button mat-menu-item class=\"px-3\" [ngClass]=\"{'highlightFilter': showFilterIndicator === 'Top'}\"\r\n (click)=\"handleReviewsFilter('Top')\">\r\n <span class=\"nodtranslate\">{{ 'apptocsinglepage.topReviews' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!reviews || !reviews.length\">\r\n <div class=\"flex justify-center items-center no-reviews-found text-lg\">\r\n <div class=\"p-4 nodtranslate\">\r\n {{ 'apptocsinglepage.noReviewsFound' | translate }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"reviews?.length\">\r\n <div class=\"flex flex-col reviews\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"150\" [infiniteScrollContainer]=\"'.reviews'\" [fromRoot]=\"true\" [scrollWindow]=\"false\" (scrolled)=\"handleLoadMore()\">\r\n <ng-container *ngFor=\"let eachReview of reviews; let i = index\">\r\n <div class=\"flex flex-row gap-3 p-4\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex flex-col gap-4\">\r\n <div class=\"flex flex-row gap-2\">\r\n <div class=\"flex-1\">\r\n <div class=\"flex text-sm nodtranslate\">{{ handleCapitalize(eachReview?.review, 'comment') }}</div>\r\n </div>\r\n <div class=\"flex flex-row gap-1 rating-start-value\">\r\n <mat-icon>star</mat-icon>\r\n <div class=\"text-sm nodtranslate\">{{ eachReview?.rating }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row gap-2 items-center\">\r\n <ws-widget-avatar-photo [randomColor]=\"true\" [datalen]=\"1\" [size]=\"'round-m'\" [photoUrl]=\"eachReview?.photo || ''\" [name]=\"eachReview?.firstName\"></ws-widget-avatar-photo>\r\n <div class=\"flex flex-wrap\">\r\n <div class=\"text-sm nodtranslate\">{{ handleCapitalize(eachReview?.firstName.toLowerCase(), 'name') }}</div>\r\n <div class=\"flex items-center mx-2\">\r\n <span class=\"period\"></span>\r\n </div>\r\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.date\">{{ eachReview?.date | pipeRelativeTime }}</div>\r\n <div class=\"text-sm nodtranslate\" *ngIf=\"eachReview?.updatedon\">{{ eachReview?.updatedon | pipeRelativeTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"separator\" *ngIf=\"reviews.length > (i + 1)\" ></div>\r\n </ng-container>\r\n <div *ngIf=\"displayLoader\" class=\"flex items-center justify-center mt-6\">\r\n <mat-spinner [diameter]=\"30\"></mat-spinner>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n</div>\r\n\r\n", styles: [".search-div{border:1px solid rgba(0,0,0,.16);border-radius:4px;background:#fff}.search-div .mat-icon{padding:8px}.search-div .search-input{padding:8px 0;border:none;border-radius:8px;width:100%;font-family:Lato}.search-div .search-input:focus{outline:none}.search-div .search-input:focus-visible{outline:none!important}.ratings-container{padding:24px;background-color:#1b4ca114}.separator{border-bottom:2px solid rgba(0,0,0,.1)}.reviews{max-height:320px;overflow-y:auto}.rating-start-value mat-icon{color:#ff9800}::ng-deep .mat-menu-panel{min-width:12em!important;padding:8px 0!important;border-radius:12px;margin-top:4px}::ng-deep .mat-menu-panel .mat-menu-content{padding-top:0!important}::ng-deep .mat-menu-panel .mat-menu-content button{padding:0 16px!important}.no-reviews-found{background-color:#fff;margin-top:16px;border-radius:8px;border:none}\n"] }]
|
|
102
|
+
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.ReviewComponentDataService }, { type: undefined, decorators: [{
|
|
103
|
+
type: Inject,
|
|
104
|
+
args: [MAT_DIALOG_DATA]
|
|
105
|
+
}] }]; }, propDecorators: { searchInput: [{
|
|
106
|
+
type: ViewChild,
|
|
107
|
+
args: ['searchInput', { static: true }]
|
|
108
|
+
}], initiateLoadMore: [{
|
|
109
|
+
type: Output
|
|
110
|
+
}], loadLatestReviews: [{
|
|
111
|
+
type: Output
|
|
112
|
+
}] } });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aWV3cy1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9fY29tbW9uL2NvbnRlbnQtdG9jL3Jldmlld3MtY29udGVudC9yZXZpZXdzLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL19jb2xsZWN0aW9uL19jb21tb24vY29udGVudC10b2MvcmV2aWV3cy1jb250ZW50L3Jldmlld3MtY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNoQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFBc0Msc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUE7Ozs7Ozs7Ozs7Ozs7QUFZL0gsTUFBTSxPQUFPLHVCQUF1QjtJQVdsQyxZQUNTLFNBQWdELEVBQy9DLGlCQUE2QyxFQUNyQixJQUFTO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQXVDO1FBQy9DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNEI7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBSztRQVhqQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3JDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFDaEQsY0FBUyxHQUFHLEtBQUssQ0FBQTtRQUNqQixvQkFBZSxHQUFH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IE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBJbmplY3QsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZydcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcclxuXHJcbmltcG9ydCB7IFJldmlld0NvbXBvbmVudERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGVudC1zZXJ2aWNlcy9yZXZpZXctY29tcG9uZW50LWRhdGEuc2VydmljZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd3Mtd2lkZ2V0LXJldmlld3MtY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jldmlld3MtY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmV2aWV3cy1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgUmV2aWV3c0NvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHNlYXJjaElucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxyXG4gIEBPdXRwdXQoKSBpbml0aWF0ZUxvYWRNb3JlID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgQE91dHB1dCgpIGxvYWRMYXRlc3RSZXZpZXdzID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgY2xlYXJJY29uID0gZmFsc2VcclxuICBkaXNhYmxlTG9hZE1vcmUgPSBmYWxzZVxyXG4gIHJldmlld3M6IGFueVtdID0gW11cclxuICBzaG93RmlsdGVySW5kaWNhdG9yID0gJ1RvcCdcclxuICBkaXNwbGF5TG9hZGVyID0gZmFsc2VcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmV2aWV3c0NvbnRlbnRDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZXZpZXdEYXRhU2VydmljZTogUmV2aWV3Q29tcG9uZW50RGF0YVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5yZXZpZXdEYXRhU2VydmljZS5nZXRSZXZpZXdEYXRhKCkuc3Vic2NyaWJlKChfcmV2aWV3OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5yZXZpZXdzID0gX3Jldmlld1xyXG4gICAgICB0aGlzLmRhdGEucmV2aWV3cyA9IF9yZXZpZXdcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLnJldmlld3MpIHtcclxuICAgICAgdGhpcy5yZXZpZXdzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEucmV2aWV3cylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGZyb21FdmVudCh0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXHJcbiAgICAucGlwZShcclxuICAgICAgICAvLyBnZXQgdmFsdWVcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWUudHJpbSgpXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXHJcbiAgICAgICAgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIClcclxuICAgICAgLy8gc3Vic2NyaXB0aW9uIGZvciByZXNwb25zZVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFySWNvbiA9ICh0ZXh0Lmxlbmd0aCkgPyB0cnVlIDogZmFsc2VcclxuXHJcbiAgICAgICAgaWYgKHRleHQpIHtcclxuICAgICAgICAgIHRoaXMucmV2aWV3cyA9IE9iamVjdC52YWx1ZXModGhpcy5yZXZpZXdzKS5maWx0ZXIoKF9vYmo6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gX29iai5yZXZpZXcgJiYgX29iai5yZXZpZXcudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgICAgIHx8IF9vYmouZmlyc3ROYW1lICYmIF9vYmouZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGV4dC50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZXZpZXdzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEucmV2aWV3cylcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbG9zZU1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFySWNvbiA9IGZhbHNlXHJcbiAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xyXG4gICAgdGhpcy5yZXZpZXdzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEucmV2aWV3cylcclxuICB9XHJcblxyXG4gIGhhbmRsZUNhcGl0YWxpemUoc3RyOiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIGxldCByZXR1cm5WYWx1ZSA9ICcnXHJcbiAgICBpZiAoc3RyICYmIHR5cGUgPT09ICduYW1lJykge1xyXG4gICAgICByZXR1cm5WYWx1ZSA9IHN0ci5zcGxpdCgnICcpLm1hcChfc3RyID0+IHtcclxuICAgICAgICByZXR1cm4gX3N0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIF9zdHIuc2xpY2UoMSlcclxuICAgICAgfSkuam9pbignICcpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm5WYWx1ZSA9IHN0ciAmJiAoc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJldHVyblZhbHVlXHJcbiAgfVxyXG5cclxuICBoYW5kbGVSZXZpZXdzRmlsdGVyKHN0cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJJbmRpY2F0b3IgPSBzdHJcclxuICAgIHRoaXMubG9hZExhdGVzdFJldmlld3MuZW1pdChzdHIpXHJcbiAgICB0aGlzLmhhbmRsZUNsZWFyKClcclxuICB9XHJcblxyXG4gIGhhbmRsZUxvYWRNb3JlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNwbGF5TG9hZGVyID0gdHJ1ZVxyXG4gICAgdGhpcy5pbml0aWF0ZUxvYWRNb3JlLmVtaXQodGhpcy5zaG93RmlsdGVySW5kaWNhdG9yKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicmF0aW5nLW1vZGFsLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgcmF0aW5ncy1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XHJcbiAgICAgICAgICAgIDx3cy13aWRnZXQtcmF0aW5nLXN1bW1hcnkgW3JhdGluZ1N1bW1hcnldPVwiZGF0YT8ucmF0aW5nc1wiPjwvd3Mtd2lkZ2V0LXJhdGluZy1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImhhbmRsZUNsb3NlTW9kYWwoKVwiID5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHAtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJhc2UgZm9udC1ib2xkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dGaWx0ZXJJbmRpY2F0b3IgPT09ICdUb3AnXCIgY2xhc3M9XCJub2R0cmFuc2xhdGVcIj57eyAnYXBwdG9jc2luZ2xlcGFnZS50b3BSZXZpZXdzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0ZpbHRlckluZGljYXRvciAhPT0gJ1RvcCdcIiBjbGFzcz1cIm5vZHRyYW5zbGF0ZVwiPnt7ICdhcHB0b2NzaW5nbGVwYWdlLmxhdGVzdFJldmlld3MnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBzZWFyY2gtZGl2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiaGFuZGxlRm9jdXMoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJzZWFyY2gtaW5wdXQgZmxleFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgbWF4bGVuZ3RoPVwiNTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2xlYXJJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImhhbmRsZUNsZWFyKClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZpbHRlclwiPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI2ZpbHRlcj1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwicHgtM1wiIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0RmlsdGVyJzogc2hvd0ZpbHRlckluZGljYXRvciA9PT0gJ0xhdGVzdCd9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVSZXZpZXdzRmlsdGVyKCdMYXRlc3QnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub2R0cmFuc2xhdGVcIj57eyAnYXBwdG9jc2luZ2xlcGFnZS5sYXRlc3RSZXZpZXdzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInB4LTNcIiBbbmdDbGFzc109XCJ7J2hpZ2hsaWdodEZpbHRlcic6IHNob3dGaWx0ZXJJbmRpY2F0b3IgPT09ICdUb3AnfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlUmV2aWV3c0ZpbHRlcignVG9wJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9kdHJhbnNsYXRlXCI+e3sgJ2FwcHRvY3NpbmdsZXBhZ2UudG9wUmV2aWV3cycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZXZpZXdzIHx8ICFyZXZpZXdzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbm8tcmV2aWV3cy1mb3VuZCB0ZXh0LWxnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC00IG5vZHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdhcHB0b2NzaW5nbGVwYWdlLm5vUmV2aWV3c0ZvdW5kJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXZpZXdzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcmV2aWV3c1wiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCIxNTBcIiBbaW5maW5pdGVTY3JvbGxDb250YWluZXJdPVwiJy5yZXZpZXdzJ1wiIFtmcm9tUm9vdF09XCJ0cnVlXCIgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiIChzY3JvbGxlZCk9XCJoYW5kbGVMb2FkTW9yZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlYWNoUmV2aWV3IG9mIHJldmlld3M7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMyBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB0ZXh0LXNtIG5vZHRyYW5zbGF0ZVwiPnt7IGhhbmRsZUNhcGl0YWxpemUoZWFjaFJldmlldz8ucmV2aWV3LCAnY29tbWVudCcpIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMSByYXRpbmctc3RhcnQtdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5zdGFyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG5vZHRyYW5zbGF0ZVwiPnt7IGVhY2hSZXZpZXc/LnJhdGluZyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMiBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHdzLXdpZGdldC1hdmF0YXItcGhvdG8gW3JhbmRvbUNvbG9yXT1cInRydWVcIiBbZGF0YWxlbl09XCIxXCIgW3NpemVdPVwiJ3JvdW5kLW0nXCIgW3Bob3RvVXJsXT1cImVhY2hSZXZpZXc/LnBob3RvIHx8ICcnXCIgW25hbWVdPVwiZWFjaFJldmlldz8uZmlyc3ROYW1lXCI+PC93cy13aWRnZXQtYXZhdGFyLXBob3RvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG5vZHRyYW5zbGF0ZVwiPnt7IGhhbmRsZUNhcGl0YWxpemUoZWFjaFJldmlldz8uZmlyc3ROYW1lLnRvTG93ZXJDYXNlKCksICduYW1lJykgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJpb2RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG5vZHRyYW5zbGF0ZVwiICpuZ0lmPVwiZWFjaFJldmlldz8uZGF0ZVwiPnt7IGVhY2hSZXZpZXc/LmRhdGUgfCBwaXBlUmVsYXRpdmVUaW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBub2R0cmFuc2xhdGVcIiAqbmdJZj1cImVhY2hSZXZpZXc/LnVwZGF0ZWRvblwiPnt7IGVhY2hSZXZpZXc/LnVwZGF0ZWRvbiB8IHBpcGVSZWxhdGl2ZVRpbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiICpuZ0lmPVwicmV2aWV3cy5sZW5ndGggPiAoaSArIDEpXCIgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUxvYWRlclwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBbZGlhbWV0ZXJdPVwiMzBcIj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuPC9kaXY+XHJcblxyXG4iXX0=
|