@sunbird-cb/toc 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.component.mjs +55 -0
- package/esm2022/lib/_collection/_common/attendance-card/attendance-card.module.mjs +126 -0
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.component.mjs +32 -0
- package/esm2022/lib/_collection/_common/attendance-helper/attendance-helper.module.mjs +85 -0
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.component.mjs +100 -0
- package/esm2022/lib/_collection/_common/avatar-photo/avatar-photo.module.mjs +48 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.component.mjs +120 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/certificate-dialog.module.mjs +92 -0
- package/esm2022/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.mjs +48 -0
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.component.mjs +25 -0
- package/esm2022/lib/_collection/_common/confirm-dialog/confirm-dialog.module.mjs +41 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover-card.component.mjs +89 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.module.mjs +42 -0
- package/esm2022/lib/_collection/_common/connection-hover-card/connection-hover.servive.mjs +41 -0
- package/esm2022/lib/_collection/_common/connection-name/connection-name.component.mjs +78 -0
- package/esm2022/lib/_collection/_common/connection-name/connection-name.module.mjs +45 -0
- package/esm2022/lib/_collection/_common/connection-name/profile-v2.model.mjs +2 -0
- package/esm2022/lib/_collection/_common/content-progress/content-progress.component.mjs +70 -0
- package/esm2022/lib/_collection/_common/content-progress/content-progress.module.mjs +28 -0
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.mjs +187 -0
- package/esm2022/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.mjs +86 -0
- package/esm2022/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.mjs +31 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +941 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.mjs +183 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.mjs +327 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.mjs +297 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.mjs +223 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.mjs +591 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.mjs +16 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.mjs +43 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.mjs +133 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.mjs +66 -0
- package/esm2022/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.mjs +278 -0
- package/esm2022/lib/_collection/_common/content-toc/content-services/handle-claim.service.mjs +21 -0
- package/esm2022/lib/_collection/_common/content-toc/content-services/review-component-data.service.mjs +21 -0
- package/esm2022/lib/_collection/_common/content-toc/content-toc.component.mjs +847 -0
- package/esm2022/lib/_collection/_common/content-toc/content-toc.module.mjs +219 -0
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +209 -0
- package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.module.mjs +26 -0
- package/esm2022/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.mjs +19 -0
- package/esm2022/lib/_collection/_common/content-toc/pipes/truncate.pipe.mjs +23 -0
- package/esm2022/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.mjs +113 -0
- package/esm2022/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.mjs +110 -0
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.component.mjs +26 -0
- package/esm2022/lib/_collection/_common/display-content-type/display-content-type.module.mjs +19 -0
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.mjs +67 -0
- package/esm2022/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.mjs +28 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.component.mjs +77 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.model.mjs +2 -0
- package/esm2022/lib/_collection/_common/mark-as-complete/mark-as-complete.module.mjs +61 -0
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.module.mjs +20 -0
- package/esm2022/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.mjs +73 -0
- package/esm2022/lib/_collection/_common/player-brief/player-brief.component.mjs +139 -0
- package/esm2022/lib/_collection/_common/player-brief/player-brief.module.mjs +71 -0
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.component.mjs +34 -0
- package/esm2022/lib/_collection/_common/rating-summary/rating-summary.module.mjs +56 -0
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.component.mjs +25 -0
- package/esm2022/lib/_collection/_common/skeleton-loader/skeleton-loader.module.mjs +37 -0
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.mjs +32 -0
- package/esm2022/lib/_collection/_common/tips-for-learner/tips-for-learner.module.mjs +30 -0
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.mjs +38 -0
- package/esm2022/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.mjs +51 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.component.mjs +115 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.model.mjs +12 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.module.mjs +51 -0
- package/esm2022/lib/_collection/_common/user-autocomplete/user-autocomplete.service.mjs +61 -0
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.component.mjs +87 -0
- package/esm2022/lib/_collection/_common/user-content-rating/user-content-rating.module.mjs +36 -0
- package/esm2022/lib/_collection/_common/user-image/user-image.component.mjs +62 -0
- package/esm2022/lib/_collection/_common/user-image/user-image.module.mjs +24 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.component.mjs +192 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.module.mjs +44 -0
- package/esm2022/lib/_collection/btn-page-back/btn-page-back.service.mjs +99 -0
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.component.mjs +58 -0
- package/esm2022/lib/_collection/card-rating-comment/card-rating-comment.module.mjs +67 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +112 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.model.mjs +2 -0
- package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.module.mjs +69 -0
- package/esm2022/lib/_collection-api.mjs +57 -0
- package/esm2022/lib/_constants/widget-content.constants.mjs +19 -0
- package/esm2022/lib/_directives/tooltip.directive.mjs +68 -0
- package/esm2022/lib/_models/common.model.mjs +2 -0
- package/esm2022/lib/_models/error.model.mjs +2 -0
- package/esm2022/lib/_pipes/highlight.pipe.mjs +24 -0
- package/esm2022/lib/_services/rating.service.mjs +89 -0
- package/esm2022/lib/_services/samuhik-charcha.service.mjs +29 -0
- package/esm2022/lib/_services/viewer-route-util.mjs +103 -0
- package/esm2022/lib/_services/widget-content.model.mjs +246 -0
- package/esm2022/lib/_services/widget-content.service.mjs +589 -0
- package/esm2022/lib/_shared/translate-loader.factory.mjs +9 -0
- package/esm2022/lib/app-toc-lib.module.mjs +499 -0
- package/esm2022/lib/collection.config.mjs +161 -0
- package/esm2022/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.mjs +37 -0
- package/esm2022/lib/components/app-toc-banner/app-toc-banner.component.mjs +1436 -0
- package/esm2022/lib/components/app-toc-cios-home/app-toc-cios-home.component.mjs +475 -0
- package/esm2022/lib/components/app-toc-cios-home/consent-dialog.component.mjs +119 -0
- package/esm2022/lib/components/app-toc-cohorts/app-toc-cohorts.component.mjs +80 -0
- package/esm2022/lib/components/app-toc-content-card/app-toc-content-card.component.mjs +249 -0
- package/esm2022/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.mjs +39 -0
- package/esm2022/lib/components/app-toc-discussion/app-toc-discussion.component.mjs +58 -0
- package/esm2022/lib/components/app-toc-home/app-toc-home.component.mjs +2229 -0
- package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +2796 -0
- package/esm2022/lib/components/app-toc-overview/app-toc-overview.component.mjs +157 -0
- package/esm2022/lib/components/app-toc-session-card/app-toc-session-card.component.mjs +48 -0
- package/esm2022/lib/components/app-toc-sessions/app-toc-sessions.component.mjs +47 -0
- package/esm2022/lib/components/app-toc-single-page/app-toc-single-page.component.mjs +766 -0
- package/esm2022/lib/components/completion-survey-form/completion-survey-form.component.mjs +243 -0
- package/esm2022/lib/components/create-batch-dialog/create-batch-dialog.component.mjs +116 -0
- package/esm2022/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.mjs +44 -0
- package/esm2022/lib/components/enroll-profile-form/enroll-profile-form.component.mjs +1838 -0
- package/esm2022/lib/components/enroll-questionnaire/enroll-questionnaire.component.mjs +236 -0
- package/esm2022/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.mjs +213 -0
- package/esm2022/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.mjs +36 -0
- package/esm2022/lib/components/public-survey-form/public-survey-form.component.mjs +256 -0
- package/esm2022/lib/components/survey-form-question/survey-form-question.component.mjs +133 -0
- package/esm2022/lib/components/survey-form-section/survey-form-section.component.mjs +36 -0
- package/esm2022/lib/models/app-toc-analytics.model.mjs +2 -0
- package/esm2022/lib/models/app-toc.model.mjs +38 -0
- package/esm2022/lib/models/auto-complete.model.mjs +2 -0
- package/esm2022/lib/models/card-content.model.mjs +13 -0
- package/esm2022/lib/models/content-strip-with-tabs.model.mjs +2 -0
- package/esm2022/lib/models/discussion-forum.model.mjs +14 -0
- package/esm2022/lib/models/goal.model.mjs +2 -0
- package/esm2022/lib/models/meta-tag.model.mjs +8 -0
- package/esm2022/lib/models/playlist.model.mjs +2 -0
- package/esm2022/lib/models/profile-revamp.model.mjs +2 -0
- package/esm2022/lib/models/rating.model.mjs +2 -0
- package/esm2022/lib/models/user-profile.model.mjs +21 -0
- package/esm2022/lib/resolvers/app-toc-cios-resolver.service.mjs +24 -0
- package/esm2022/lib/resolvers/app-toc-cios-user-enroll-resolver.service.mjs +24 -0
- package/esm2022/lib/resolvers/app-toc-content-read-resolver.service.mjs +60 -0
- package/esm2022/lib/resolvers/app-toc-ext-public-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/app-toc-resolver.service.mjs +106 -0
- package/esm2022/lib/resolvers/config-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/profile-resolver.service.mjs +25 -0
- package/esm2022/lib/resolvers/restricted-features-resolver.service.mjs +25 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.component.mjs +51 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.directive.mjs +16 -0
- package/esm2022/lib/routes/app-toc-home/app-toc-home.service.mjs +18 -0
- package/esm2022/lib/services/access-control.service.mjs +56 -0
- package/esm2022/lib/services/action.service.mjs +23 -0
- package/esm2022/lib/services/app-toc-v2.service.mjs +47 -0
- package/esm2022/lib/services/app-toc.service.mjs +1001 -0
- package/esm2022/lib/services/certificate.service.mjs +69 -0
- package/esm2022/lib/services/discuss-utils.service.mjs +58 -0
- package/esm2022/lib/services/editor.service.mjs +34 -0
- package/esm2022/lib/services/load-check.service.mjs +21 -0
- package/esm2022/lib/services/loader.service.mjs +33 -0
- package/esm2022/lib/services/mobile-apps.service.mjs +67 -0
- package/esm2022/lib/services/netcore.service.mjs +56 -0
- package/esm2022/lib/services/nps-grid.service.mjs +31 -0
- package/esm2022/lib/services/otp.service.mjs +43 -0
- package/esm2022/lib/services/profile-v2.service.mjs +43 -0
- package/esm2022/lib/services/reset-ratings.service.mjs +19 -0
- package/esm2022/lib/services/resource-download-helper.service.mjs +64 -0
- package/esm2022/lib/services/timer.service.mjs +23 -0
- package/esm2022/lib/services/title-tag.service.mjs +71 -0
- package/esm2022/lib/services/user-profile.service.mjs +55 -0
- package/esm2022/lib/services/viewer-data.service.mjs +64 -0
- package/esm2022/lib/services/viewer-util.service.mjs +500 -0
- package/esm2022/lib/share-toc/share-toc/share-toc.component.mjs +291 -0
- package/esm2022/lib/share-toc/share-toc.module.mjs +119 -0
- package/esm2022/public-api.mjs +56 -0
- package/esm2022/sunbird-cb-toc.mjs +5 -0
- package/fesm2022/sunbird-cb-toc.mjs +23517 -0
- package/fesm2022/sunbird-cb-toc.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +17 -0
- package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +32 -0
- package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +16 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +1 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +21 -0
- package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +23 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +1 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +16 -0
- package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +23 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +23 -0
- package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +10 -0
- package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +12 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +13 -0
- package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +19 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +15 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +12 -0
- package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts +18 -0
- package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts +15 -0
- package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +1 -0
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +200 -0
- package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts +17 -0
- package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts +11 -0
- package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +39 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +20 -0
- package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +12 -0
- package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +184 -0
- package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +42 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +55 -0
- package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +48 -0
- package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +49 -0
- package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +92 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +9 -0
- package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +17 -0
- package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +41 -0
- package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +22 -0
- package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +46 -0
- package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +11 -0
- package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +11 -0
- package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts +129 -0
- package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts +52 -0
- package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +30 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +10 -0
- package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +8 -0
- package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +8 -0
- package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +29 -0
- package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +25 -0
- package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +15 -0
- package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +10 -0
- package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +13 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +1 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +11 -0
- package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +23 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +9 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +1 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +19 -0
- package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +9 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +1 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +17 -0
- package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts +36 -0
- package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +1 -0
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts +20 -0
- package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +15 -0
- package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +1 -0
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +14 -0
- package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +12 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +12 -0
- package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +16 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +1 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +11 -0
- package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +17 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +1 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +12 -0
- package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +35 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +18 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +16 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +16 -0
- package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +22 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +13 -0
- package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.component.d.ts +22 -0
- package/lib/_collection/_common/user-image/user-image.component.d.ts.map +1 -0
- package/lib/_collection/_common/user-image/user-image.module.d.ts +10 -0
- package/lib/_collection/_common/user-image/user-image.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +48 -0
- package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +15 -0
- package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +1 -0
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +23 -0
- package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +20 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +1 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +16 -0
- package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +26 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +22 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +1 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +19 -0
- package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
- package/lib/_collection-api.d.ts +35 -0
- package/lib/_collection-api.d.ts.map +1 -0
- package/lib/_constants/widget-content.constants.d.ts +8 -0
- package/lib/_constants/widget-content.constants.d.ts.map +1 -0
- package/lib/_directives/tooltip.directive.d.ts +18 -0
- package/lib/_directives/tooltip.directive.d.ts.map +1 -0
- package/lib/_models/common.model.d.ts +4 -0
- package/lib/_models/common.model.d.ts.map +1 -0
- package/lib/_models/error.model.d.ts +6 -0
- package/lib/_models/error.model.d.ts.map +1 -0
- package/lib/_pipes/highlight.pipe.d.ts +11 -0
- package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
- package/lib/_services/rating.service.d.ts +19 -0
- package/lib/_services/rating.service.d.ts.map +1 -0
- package/lib/_services/samuhik-charcha.service.d.ts +14 -0
- package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
- package/lib/_services/viewer-route-util.d.ts +9 -0
- package/lib/_services/viewer-route-util.d.ts.map +1 -0
- package/lib/_services/widget-content.model.d.ts +515 -0
- package/lib/_services/widget-content.model.d.ts.map +1 -0
- package/lib/_services/widget-content.service.d.ts +101 -0
- package/lib/_services/widget-content.service.d.ts.map +1 -0
- package/lib/_shared/translate-loader.factory.d.ts +8 -0
- package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
- package/lib/app-toc-lib.module.d.ts +89 -0
- package/lib/app-toc-lib.module.d.ts.map +1 -0
- package/lib/collection.config.d.ts +160 -0
- package/lib/collection.config.d.ts.map +1 -0
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +18 -0
- package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +1 -0
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +226 -0
- package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +79 -0
- package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +23 -0
- package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +1 -0
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +32 -0
- package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +1 -0
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +48 -0
- package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +15 -0
- package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +1 -0
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +22 -0
- package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +1 -0
- package/lib/components/app-toc-home/app-toc-home.component.d.ts +315 -0
- package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +386 -0
- package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +1 -0
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +48 -0
- package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +1 -0
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +23 -0
- package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +1 -0
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +15 -0
- package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +1 -0
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +150 -0
- package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +1 -0
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +43 -0
- package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +1 -0
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +28 -0
- package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +1 -0
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +16 -0
- package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +1 -0
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +196 -0
- package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +1 -0
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +45 -0
- package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +1 -0
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +55 -0
- package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +1 -0
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +19 -0
- package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +1 -0
- package/lib/components/public-survey-form/public-survey-form.component.d.ts +44 -0
- package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +1 -0
- package/lib/components/survey-form-question/survey-form-question.component.d.ts +21 -0
- package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +1 -0
- package/lib/components/survey-form-section/survey-form-section.component.d.ts +14 -0
- package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +1 -0
- package/lib/models/app-toc-analytics.model.d.ts +153 -0
- package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
- package/lib/models/app-toc.model.d.ts +85 -0
- package/lib/models/app-toc.model.d.ts.map +1 -0
- package/lib/models/auto-complete.model.d.ts +28 -0
- package/lib/models/auto-complete.model.d.ts.map +1 -0
- package/lib/models/card-content.model.d.ts +20 -0
- package/lib/models/card-content.model.d.ts.map +1 -0
- package/lib/models/content-strip-with-tabs.model.d.ts +45 -0
- package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
- package/lib/models/discussion-forum.model.d.ts +41 -0
- package/lib/models/discussion-forum.model.d.ts.map +1 -0
- package/lib/models/goal.model.d.ts +23 -0
- package/lib/models/goal.model.d.ts.map +1 -0
- package/lib/models/meta-tag.model.d.ts +7 -0
- package/lib/models/meta-tag.model.d.ts.map +1 -0
- package/lib/models/playlist.model.d.ts +24 -0
- package/lib/models/playlist.model.d.ts.map +1 -0
- package/lib/models/profile-revamp.model.d.ts +15 -0
- package/lib/models/profile-revamp.model.d.ts.map +1 -0
- package/lib/models/rating.model.d.ts +18 -0
- package/lib/models/rating.model.d.ts.map +1 -0
- package/lib/models/user-profile.model.d.ts +38 -0
- package/lib/models/user-profile.model.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +17 -0
- package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +13 -0
- package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/app-toc-resolver.service.d.ts +17 -0
- package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/config-resolver.service.d.ts +12 -0
- package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/profile-resolver.service.d.ts +12 -0
- package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
- package/lib/resolvers/restricted-features-resolver.service.d.ts +12 -0
- package/lib/resolvers/restricted-features-resolver.service.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts +20 -0
- package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +9 -0
- package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +1 -0
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts +9 -0
- package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +1 -0
- package/lib/services/access-control.service.d.ts +30 -0
- package/lib/services/access-control.service.d.ts.map +1 -0
- package/lib/services/action.service.d.ts +10 -0
- package/lib/services/action.service.d.ts.map +1 -0
- package/lib/services/app-toc-v2.service.d.ts +8 -0
- package/lib/services/app-toc-v2.service.d.ts.map +1 -0
- package/lib/services/app-toc.service.d.ts +131 -0
- package/lib/services/app-toc.service.d.ts.map +1 -0
- package/lib/services/certificate.service.d.ts +43 -0
- package/lib/services/certificate.service.d.ts.map +1 -0
- package/lib/services/discuss-utils.service.d.ts +34 -0
- package/lib/services/discuss-utils.service.d.ts.map +1 -0
- package/lib/services/editor.service.d.ts +18 -0
- package/lib/services/editor.service.d.ts.map +1 -0
- package/lib/services/load-check.service.d.ts +9 -0
- package/lib/services/load-check.service.d.ts.map +1 -0
- package/lib/services/loader.service.d.ts +17 -0
- package/lib/services/loader.service.d.ts.map +1 -0
- package/lib/services/mobile-apps.service.d.ts +39 -0
- package/lib/services/mobile-apps.service.d.ts.map +1 -0
- package/lib/services/netcore.service.d.ts +34 -0
- package/lib/services/netcore.service.d.ts.map +1 -0
- package/lib/services/nps-grid.service.d.ts +16 -0
- package/lib/services/nps-grid.service.d.ts.map +1 -0
- package/lib/services/otp.service.d.ts +21 -0
- package/lib/services/otp.service.d.ts.map +1 -0
- package/lib/services/profile-v2.service.d.ts +21 -0
- package/lib/services/profile-v2.service.d.ts.map +1 -0
- package/lib/services/reset-ratings.service.d.ts +9 -0
- package/lib/services/reset-ratings.service.d.ts.map +1 -0
- package/lib/services/resource-download-helper.service.d.ts +30 -0
- package/lib/services/resource-download-helper.service.d.ts.map +1 -0
- package/lib/services/timer.service.d.ts +10 -0
- package/lib/services/timer.service.d.ts.map +1 -0
- package/lib/services/title-tag.service.d.ts +22 -0
- package/lib/services/title-tag.service.d.ts.map +1 -0
- package/lib/services/user-profile.service.d.ts +25 -0
- package/lib/services/user-profile.service.d.ts.map +1 -0
- package/lib/services/viewer-data.service.d.ts +59 -0
- package/lib/services/viewer-data.service.d.ts.map +1 -0
- package/lib/services/viewer-util.service.d.ts +63 -0
- package/lib/services/viewer-util.service.d.ts.map +1 -0
- package/lib/share-toc/share-toc/share-toc.component.d.ts +57 -0
- package/lib/share-toc/share-toc/share-toc.component.d.ts.map +1 -0
- package/lib/share-toc/share-toc.module.d.ts +33 -0
- package/lib/share-toc/share-toc.module.d.ts.map +1 -0
- package/package.json +36 -0
- package/public-api.d.ts +44 -0
- package/public-api.d.ts.map +1 -0
- package/sunbird-cb-toc.d.ts.map +1 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { NsContent } from '../../_services/widget-content.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "../../services/app-toc.service";
|
|
6
|
+
import * as i3 from "@sunbird-cb/utils-v2";
|
|
7
|
+
import * as i4 from "@angular/platform-browser";
|
|
8
|
+
import * as i5 from "../../services/access-control.service";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
10
|
+
import * as i7 from "@angular/material/icon";
|
|
11
|
+
import * as i8 from "@angular/material/legacy-button";
|
|
12
|
+
import * as i9 from "@angular/material/legacy-card";
|
|
13
|
+
import * as i10 from "@angular/material/legacy-chips";
|
|
14
|
+
import * as i11 from "@angular/material/divider";
|
|
15
|
+
import * as i12 from "@angular/material/expansion";
|
|
16
|
+
import * as i13 from "../../_collection/_common/user-image/user-image.component";
|
|
17
|
+
import * as i14 from "../../_collection/_common/player-brief/player-brief.component";
|
|
18
|
+
export class AppTocOverviewComponent {
|
|
19
|
+
constructor(route, tocSharedSvc, configSvc, domSanitizer, authAccessControlSvc) {
|
|
20
|
+
this.route = route;
|
|
21
|
+
this.tocSharedSvc = tocSharedSvc;
|
|
22
|
+
this.configSvc = configSvc;
|
|
23
|
+
this.domSanitizer = domSanitizer;
|
|
24
|
+
this.authAccessControlSvc = authAccessControlSvc;
|
|
25
|
+
this.content = null;
|
|
26
|
+
this.routeSubscription = null;
|
|
27
|
+
this.viewMoreRelatedTopics = false;
|
|
28
|
+
this.hasTocStructure = false;
|
|
29
|
+
this.tocStructure = null;
|
|
30
|
+
this.askAuthorEnabled = true;
|
|
31
|
+
this.trainingLHubEnabled = false;
|
|
32
|
+
this.body = null;
|
|
33
|
+
this.forPreview = false;
|
|
34
|
+
this.tocConfig = null;
|
|
35
|
+
this.contentParents = {};
|
|
36
|
+
this.objKeys = Object.keys;
|
|
37
|
+
if (this.configSvc.restrictedFeatures) {
|
|
38
|
+
this.askAuthorEnabled = !this.configSvc.restrictedFeatures.has('askAuthor');
|
|
39
|
+
this.trainingLHubEnabled = !this.configSvc.restrictedFeatures.has('trainingLHub');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
if (!this.forPreview) {
|
|
44
|
+
this.forPreview = window.location.href.includes('/author/');
|
|
45
|
+
}
|
|
46
|
+
if (this.route && this.route.parent) {
|
|
47
|
+
this.routeSubscription = this.route.parent.data.subscribe((data) => {
|
|
48
|
+
this.initData(data);
|
|
49
|
+
this.tocConfig = data.pageData.data;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
if (this.routeSubscription) {
|
|
55
|
+
this.routeSubscription.unsubscribe();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get showSubtitleOnBanner() {
|
|
59
|
+
return this.tocSharedSvc.subtitleOnBanners;
|
|
60
|
+
}
|
|
61
|
+
get showDescription() {
|
|
62
|
+
if (this.content && !this.content.body) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return this.tocSharedSvc.showDescription;
|
|
66
|
+
}
|
|
67
|
+
initData(data) {
|
|
68
|
+
const initData = this.tocSharedSvc.initData(data);
|
|
69
|
+
this.content = initData.content;
|
|
70
|
+
this.body = this.domSanitizer.bypassSecurityTrustHtml(this.content && this.content.body
|
|
71
|
+
? this.forPreview
|
|
72
|
+
? this.authAccessControlSvc.proxyToAuthoringUrl(this.content.body)
|
|
73
|
+
: this.content.body
|
|
74
|
+
: '');
|
|
75
|
+
this.contentParents = {};
|
|
76
|
+
this.resetAndFetchTocStructure();
|
|
77
|
+
this.getTrainingCount();
|
|
78
|
+
this.getContentParent();
|
|
79
|
+
}
|
|
80
|
+
getContentParent() {
|
|
81
|
+
if (this.content) {
|
|
82
|
+
const contentParentReq = {
|
|
83
|
+
fields: ['contentType', 'name'],
|
|
84
|
+
};
|
|
85
|
+
this.tocSharedSvc
|
|
86
|
+
.fetchContentParent(this.content.identifier, contentParentReq, this.forPreview)
|
|
87
|
+
.subscribe(res => {
|
|
88
|
+
this.parseContentParent(res);
|
|
89
|
+
}, _err => {
|
|
90
|
+
this.contentParents = {};
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
parseContentParent(content) {
|
|
95
|
+
content.collections.forEach(collection => {
|
|
96
|
+
if (!this.contentParents.hasOwnProperty(collection.contentType)) {
|
|
97
|
+
this.contentParents[collection.contentType] = [];
|
|
98
|
+
}
|
|
99
|
+
this.contentParents[collection.contentType].push(collection);
|
|
100
|
+
this.parseContentParent(collection);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
resetAndFetchTocStructure() {
|
|
104
|
+
this.tocStructure = {
|
|
105
|
+
assessment: 0,
|
|
106
|
+
finalTest: 0,
|
|
107
|
+
course: 0,
|
|
108
|
+
handsOn: 0,
|
|
109
|
+
interactiveVideo: 0,
|
|
110
|
+
learningModule: 0,
|
|
111
|
+
other: 0,
|
|
112
|
+
pdf: 0,
|
|
113
|
+
survey: 0,
|
|
114
|
+
podcast: 0,
|
|
115
|
+
practiceTest: 0,
|
|
116
|
+
quiz: 0,
|
|
117
|
+
video: 0,
|
|
118
|
+
webModule: 0,
|
|
119
|
+
webPage: 0,
|
|
120
|
+
youtube: 0,
|
|
121
|
+
interactivecontent: 0,
|
|
122
|
+
offlineSession: 0,
|
|
123
|
+
};
|
|
124
|
+
if (this.content) {
|
|
125
|
+
this.hasTocStructure = false;
|
|
126
|
+
this.tocStructure.learningModule = this.content.primaryCategory === NsContent.EPrimaryCategory.MODULE ? -1 : 0;
|
|
127
|
+
this.tocStructure.course = this.content.primaryCategory === NsContent.EPrimaryCategory.COURSE ? -1 : 0;
|
|
128
|
+
this.tocStructure = this.tocSharedSvc.getTocStructure(this.content, this.tocStructure);
|
|
129
|
+
for (const progType in this.tocStructure) {
|
|
130
|
+
if (this.tocStructure[progType] > 0) {
|
|
131
|
+
this.hasTocStructure = true;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// For Learning Hub trainings
|
|
138
|
+
getTrainingCount() {
|
|
139
|
+
if (this.trainingLHubEnabled &&
|
|
140
|
+
this.content &&
|
|
141
|
+
// this.trainingSvc.isValidTrainingContent(this.content) &&
|
|
142
|
+
!this.forPreview) {
|
|
143
|
+
// this.trainingLHubCount$ = this.trainingApi
|
|
144
|
+
// .getTrainingCount(this.content.identifier)
|
|
145
|
+
// .pipe(retry(2))
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocOverviewComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.AppTocService }, { token: i3.ConfigurationsService }, { token: i4.DomSanitizer }, { token: i5.AccessControlService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
149
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppTocOverviewComponent, selector: "ws-app-app-toc-overview", inputs: { forPreview: "forPreview" }, ngImport: i0, template: "<div class=\"flex flex-between flex-wrapped mt-4\">\n <div class=\"meta-section\">\n <!-- Description : Conditional : If not shown here, will be shown over banner -->\n <mat-card *ngIf=\"\n tocConfig?.overview?.description?.enabled &&\n showDescription &&\n showSubtitleOnBanner &&\n content?.description\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.description?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1\" [innerHTML]=\"content?.description\"></div>\n </mat-card-content>\n </mat-card>\n <!-- Content Body -->\n <mat-card *ngIf=\"tocConfig?.overview?.body?.enabled && content?.body\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.body?.displayName }}</h2>\n <mat-card-content>\n <div class=\"break-words\" [innerHTML]=\"body\"></div>\n </mat-card-content>\n </mat-card>\n <!-- Learning objective -->\n <mat-card *ngIf=\"tocConfig?.overview?.learningObjective?.enabled && content?.learningObjective\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.learningObjective?.displayName }}</h2>\n <mat-card-content>\n <p class=\"mat-subheading-1\" [innerHTML]=\"content?.learningObjective\"></p>\n </mat-card-content>\n </mat-card>\n\n <!-- Registration instructions -->\n <mat-card *ngIf=\"\n tocConfig?.overview?.registrationInstructions?.enabled &&\n content?.registrationInstructions?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.registrationInstructions?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1 break-words\" [innerHTML]=\"content?.registrationInstructions\"></div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.preContents?.enabled && content?.preContents?.length\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.preContents?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let preContent of content?.preContents\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + preContent.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ preContent.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.postContents?.enabled && content?.postContents?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.postContents?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let postContent of content?.postContents\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + postContent.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ postContent.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.certificationList?.enabled && content?.certificationList?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.certificationList?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let certification of content?.certificationList\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + certification.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ certification.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.studyMaterials?.enabled && content?.studyMaterials?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.studyMaterials?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let studyitem of content?.studyMaterials\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + studyitem.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ studyitem.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.playgroundResources?.enabled && content?.playgroundResources?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.playgroundResources?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let playgroundResource of content?.playgroundResources\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + playgroundResource.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ playgroundResource.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.kArtifacts?.enabled && content?.kArtifacts?.length\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.kArtifacts?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let kArtifact of content?.kArtifacts\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + kArtifact.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ kArtifact.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.equivalentCertifications?.enabled &&\n content?.equivalentCertifications?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.equivalentCertifications?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let equivalentCertification of content?.equivalentCertifications\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + equivalentCertification.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ equivalentCertification.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.softwareRequirements?.enabled && content?.softwareRequirements?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.softwareRequirements?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let softwareRequirement of content?.softwareRequirements\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [href]=\"softwareRequirement.url\" target=\"blank\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ softwareRequirement.title }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <!-- Skills -->\n <mat-card *ngIf=\"tocConfig?.overview?.skills?.enabled && content?.skills?.length\"\n class=\"unit-meta-item mat-app-background\">\n <h2>{{ tocConfig?.overview?.skills?.displayName }}</h2>\n <mat-chip-list>\n <mat-chip *ngFor=\"let skill of content?.skills\">{{ skill.name }}</mat-chip>\n </mat-chip-list>\n </mat-card>\n <!-- Requirements -->\n <mat-card *ngIf=\"tocConfig?.overview?.preRequisites?.enabled && content?.preRequisites\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.preRequisites?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1\" [innerHTML]=\"content?.preRequisites\"></div>\n <div class=\"margin-top-s\" *ngIf=\"content?.softwareRequirements?.length\">\n <h3 class=\"mat-h3 margin-bottom-xs\" >Software Requirements</h3>\n <ng-container *ngFor=\"let requirement of content?.softwareRequirements\">\n <a *ngIf=\"requirement.url\" class=\"margin-right-s\" mat-stroked-button target=\"_blank\"\n [href]=\"requirement.url\">\n {{ requirement.title }}\n </a>\n <a mat-stroked-button class=\"margin-right-s\" *ngIf=\"!requirement?.url\">{{ requirement.title }}\n </a>\n </ng-container>\n </div>\n </mat-card-content>\n </mat-card>\n\n <!-- Training (LHub) -->\n <mat-card *ngIf=\"trainingLHubEnabled && trainingLHubCount$ | async as trainingLHubCount\" class=\"unit-meta-item\">\n <h2 >Trainings</h2>\n <h4 class=\"mat-h4\">\n <ng-container>{{ trainingLHubCount }}</ng-container>\n <ng-container i18n=\"x trainings available\" *ngIf=\"trainingLHubCount > 1\">\n trainings available</ng-container>\n <ng-container i18n=\"1 training available\" *ngIf=\"trainingLHubCount === 1\">\n training available</ng-container>\n </h4>\n <div>\n \n </div>\n </mat-card>\n\n <!-- Related Topics -->\n <mat-card class=\"unit-meta-item\" *ngIf=\"tocConfig?.overview?.topics?.enabled && content?.topics?.length\">\n <h2>{{ tocConfig?.overview?.topics?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex flex-between flex-wrapped\">\n <a mat-stroked-button class=\"topic-button text-truncate\"\n *ngFor=\"let topic of content?.topics | pipeLimitTo: (viewMoreRelatedTopics ? 24 : 6)\" [title]=\"topic?.name\"\n [routerLink]=\"'/app/concept-graph/' + topic.identifier\">\n {{ topic?.name }}\n </a>\n </div>\n <div *ngIf=\"content?.topics?.length > 6\" class=\"text-right margin-top-xs\">\n <a mat-button (click)=\"viewMoreRelatedTopics = !viewMoreRelatedTopics\">\n <span *ngIf=\"!viewMoreRelatedTopics\" >View More</span>\n <span *ngIf=\"viewMoreRelatedTopics\" >View Less</span>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <!-- Authors on small screen -->\n <div class=\"block sm:hidden margin-bottom-m\" *ngIf=\"content?.creatorDetails?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorDetails,\n title: 'AUTHOR'\n }\">\n </ng-container>\n </div>\n <!-- Contacts on small screen -->\n <div class=\"block sm:hidden margin-bottom-m\" *ngIf=\"content?.creatorContacts?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorContacts,\n title: 'CONTACT'\n }\">\n </ng-container>\n </div>\n <div class=\"margin-bottom-m\" *ngIf=\"objKeys(contentParents).length\">\n <mat-card>\n <h2 >This content is part of</h2>\n </mat-card>\n <mat-accordion>\n <ng-container *ngFor=\"let key of objKeys(contentParents)\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n {{ key }}\n </mat-expansion-panel-header>\n <div class=\"flex mb-1\" *ngFor=\"let content of contentParents[key]\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"\n content.status !== 'Live'\n ? '/author' + '/toc/' + content.identifier\n : '/app' + '/toc/' + content.identifier\n \">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ content.name }}</p>\n </a>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n </div>\n </div>\n <!-- At a glance section -->\n <div class=\"info-section\">\n <ws-widget-player-brief [forPreview]=\"forPreview\" [content]=\"content\" [hasTocStructure]=\"hasTocStructure\"\n [tocStructure]=\"tocStructure\">\n </ws-widget-player-brief>\n </div>\n</div>\n\n<ng-template #creators let-authors=\"authors\" let-title=\"title\">\n <mat-card>\n <h2 *ngIf=\"title === 'AUTHOR'\">Authors</h2>\n <h2 *ngIf=\"title === 'CONTACT'\">Curator/Contact</h2>\n <mat-divider></mat-divider>\n <div *ngFor=\"let author of authors\" class=\"author\">\n <ws-widget-user-image class=\"author-image\" [imageType]=\"'name-initial'\" [userName]=\"author.name || ''\"\n [email]=\"author.email\"></ws-widget-user-image>\n <div class=\"width-expand flex flex-middle flex-between\">\n <p class=\"margin-remove text-md font-normal\">{{ author.name }}</p>\n <ws-widget-btn-mail-user *ngIf=\"askAuthorEnabled\" [widgetData]=\"{ content: content, emails: [author.email] }\">\n </ws-widget-btn-mail-user>\n </div>\n </div>\n </mat-card>\n</ng-template>\n", styles: [".meta-section{flex:1;min-width:1px}.meta-section .unit-meta-item{border-radius:2px;box-sizing:border-box;margin-bottom:16px}@media only screen and (max-width: 599px){.meta-section{width:100%}}.topic-button{display:block;width:32%;margin:4px 0}@media only screen and (max-width: 599px){.topic-button{width:100%}}.info-section{width:28%;min-width:250px;margin-left:24px}@media only screen and (max-width: 599px){.info-section{width:100%;margin-left:0}}.info-section2{width:28%;min-width:250px;margin-right:24px}@media only screen and (max-width: 599px){.info-section2{width:100%;margin-right:0}}.info-container{padding:12px 16px;margin-bottom:16px}.info-container .item-icon{width:20px;height:20px;font-size:20px;margin-left:8px}.author{padding:12px 0;display:flex}.author .author-image{margin-right:12px;height:44px;width:44px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i10.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "component", type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i12.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i12.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i12.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "component", type: i13.UserImageComponent, selector: "ws-widget-user-image", inputs: ["email", "userId", "userName", "imageType", "imageUrl", "imageSize"] }, { kind: "component", type: i14.PlayerBriefComponent, selector: "ws-widget-player-brief", inputs: ["content", "hasTocStructure", "tocStructure", "isPreviewMode", "forPreview", "askAuthorEnabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PipeLimitToPipe, name: "pipeLimitTo" }] }); }
|
|
150
|
+
}
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocOverviewComponent, decorators: [{
|
|
152
|
+
type: Component,
|
|
153
|
+
args: [{ selector: 'ws-app-app-toc-overview', template: "<div class=\"flex flex-between flex-wrapped mt-4\">\n <div class=\"meta-section\">\n <!-- Description : Conditional : If not shown here, will be shown over banner -->\n <mat-card *ngIf=\"\n tocConfig?.overview?.description?.enabled &&\n showDescription &&\n showSubtitleOnBanner &&\n content?.description\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.description?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1\" [innerHTML]=\"content?.description\"></div>\n </mat-card-content>\n </mat-card>\n <!-- Content Body -->\n <mat-card *ngIf=\"tocConfig?.overview?.body?.enabled && content?.body\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.body?.displayName }}</h2>\n <mat-card-content>\n <div class=\"break-words\" [innerHTML]=\"body\"></div>\n </mat-card-content>\n </mat-card>\n <!-- Learning objective -->\n <mat-card *ngIf=\"tocConfig?.overview?.learningObjective?.enabled && content?.learningObjective\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.learningObjective?.displayName }}</h2>\n <mat-card-content>\n <p class=\"mat-subheading-1\" [innerHTML]=\"content?.learningObjective\"></p>\n </mat-card-content>\n </mat-card>\n\n <!-- Registration instructions -->\n <mat-card *ngIf=\"\n tocConfig?.overview?.registrationInstructions?.enabled &&\n content?.registrationInstructions?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.registrationInstructions?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1 break-words\" [innerHTML]=\"content?.registrationInstructions\"></div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.preContents?.enabled && content?.preContents?.length\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.preContents?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let preContent of content?.preContents\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + preContent.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ preContent.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.postContents?.enabled && content?.postContents?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.postContents?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let postContent of content?.postContents\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + postContent.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ postContent.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.certificationList?.enabled && content?.certificationList?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.certificationList?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let certification of content?.certificationList\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + certification.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ certification.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.studyMaterials?.enabled && content?.studyMaterials?.length\"\n class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.studyMaterials?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let studyitem of content?.studyMaterials\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + studyitem.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ studyitem.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.playgroundResources?.enabled && content?.playgroundResources?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.playgroundResources?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let playgroundResource of content?.playgroundResources\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + playgroundResource.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ playgroundResource.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"tocConfig?.overview?.kArtifacts?.enabled && content?.kArtifacts?.length\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.kArtifacts?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let kArtifact of content?.kArtifacts\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + kArtifact.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ kArtifact.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.equivalentCertifications?.enabled &&\n content?.equivalentCertifications?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.equivalentCertifications?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let equivalentCertification of content?.equivalentCertifications\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"'/app/toc/' + equivalentCertification.identifier\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ equivalentCertification.name }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"\n tocConfig?.overview?.softwareRequirements?.enabled && content?.softwareRequirements?.length\n \" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.softwareRequirements?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex mb-1\" *ngFor=\"let softwareRequirement of content?.softwareRequirements\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [href]=\"softwareRequirement.url\" target=\"blank\">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ softwareRequirement.title }}</p>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <!-- Skills -->\n <mat-card *ngIf=\"tocConfig?.overview?.skills?.enabled && content?.skills?.length\"\n class=\"unit-meta-item mat-app-background\">\n <h2>{{ tocConfig?.overview?.skills?.displayName }}</h2>\n <mat-chip-list>\n <mat-chip *ngFor=\"let skill of content?.skills\">{{ skill.name }}</mat-chip>\n </mat-chip-list>\n </mat-card>\n <!-- Requirements -->\n <mat-card *ngIf=\"tocConfig?.overview?.preRequisites?.enabled && content?.preRequisites\" class=\"unit-meta-item\">\n <h2>{{ tocConfig?.overview?.preRequisites?.displayName }}</h2>\n <mat-card-content>\n <div class=\"mat-subheading-1\" [innerHTML]=\"content?.preRequisites\"></div>\n <div class=\"margin-top-s\" *ngIf=\"content?.softwareRequirements?.length\">\n <h3 class=\"mat-h3 margin-bottom-xs\" >Software Requirements</h3>\n <ng-container *ngFor=\"let requirement of content?.softwareRequirements\">\n <a *ngIf=\"requirement.url\" class=\"margin-right-s\" mat-stroked-button target=\"_blank\"\n [href]=\"requirement.url\">\n {{ requirement.title }}\n </a>\n <a mat-stroked-button class=\"margin-right-s\" *ngIf=\"!requirement?.url\">{{ requirement.title }}\n </a>\n </ng-container>\n </div>\n </mat-card-content>\n </mat-card>\n\n <!-- Training (LHub) -->\n <mat-card *ngIf=\"trainingLHubEnabled && trainingLHubCount$ | async as trainingLHubCount\" class=\"unit-meta-item\">\n <h2 >Trainings</h2>\n <h4 class=\"mat-h4\">\n <ng-container>{{ trainingLHubCount }}</ng-container>\n <ng-container i18n=\"x trainings available\" *ngIf=\"trainingLHubCount > 1\">\n trainings available</ng-container>\n <ng-container i18n=\"1 training available\" *ngIf=\"trainingLHubCount === 1\">\n training available</ng-container>\n </h4>\n <div>\n \n </div>\n </mat-card>\n\n <!-- Related Topics -->\n <mat-card class=\"unit-meta-item\" *ngIf=\"tocConfig?.overview?.topics?.enabled && content?.topics?.length\">\n <h2>{{ tocConfig?.overview?.topics?.displayName }}</h2>\n <mat-card-content>\n <div class=\"flex flex-between flex-wrapped\">\n <a mat-stroked-button class=\"topic-button text-truncate\"\n *ngFor=\"let topic of content?.topics | pipeLimitTo: (viewMoreRelatedTopics ? 24 : 6)\" [title]=\"topic?.name\"\n [routerLink]=\"'/app/concept-graph/' + topic.identifier\">\n {{ topic?.name }}\n </a>\n </div>\n <div *ngIf=\"content?.topics?.length > 6\" class=\"text-right margin-top-xs\">\n <a mat-button (click)=\"viewMoreRelatedTopics = !viewMoreRelatedTopics\">\n <span *ngIf=\"!viewMoreRelatedTopics\" >View More</span>\n <span *ngIf=\"viewMoreRelatedTopics\" >View Less</span>\n </a>\n </div>\n </mat-card-content>\n </mat-card>\n <!-- Authors on small screen -->\n <div class=\"block sm:hidden margin-bottom-m\" *ngIf=\"content?.creatorDetails?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorDetails,\n title: 'AUTHOR'\n }\">\n </ng-container>\n </div>\n <!-- Contacts on small screen -->\n <div class=\"block sm:hidden margin-bottom-m\" *ngIf=\"content?.creatorContacts?.length\">\n <ng-container [ngTemplateOutlet]=\"creators\" [ngTemplateOutletContext]=\"{\n authors: content?.creatorContacts,\n title: 'CONTACT'\n }\">\n </ng-container>\n </div>\n <div class=\"margin-bottom-m\" *ngIf=\"objKeys(contentParents).length\">\n <mat-card>\n <h2 >This content is part of</h2>\n </mat-card>\n <mat-accordion>\n <ng-container *ngFor=\"let key of objKeys(contentParents)\">\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n {{ key }}\n </mat-expansion-panel-header>\n <div class=\"flex mb-1\" *ngFor=\"let content of contentParents[key]\">\n <span class=\"mr-1\">\n <mat-icon class=\"align-bottom\">web_asset</mat-icon>\n </span>\n <a class=\"ws-mat-primary-text\" [routerLink]=\"\n content.status !== 'Live'\n ? '/author' + '/toc/' + content.identifier\n : '/app' + '/toc/' + content.identifier\n \">\n <p class=\"margin-remove-bottom mat-subheading-1\">{{ content.name }}</p>\n </a>\n </div>\n </mat-expansion-panel>\n </ng-container>\n </mat-accordion>\n </div>\n </div>\n <!-- At a glance section -->\n <div class=\"info-section\">\n <ws-widget-player-brief [forPreview]=\"forPreview\" [content]=\"content\" [hasTocStructure]=\"hasTocStructure\"\n [tocStructure]=\"tocStructure\">\n </ws-widget-player-brief>\n </div>\n</div>\n\n<ng-template #creators let-authors=\"authors\" let-title=\"title\">\n <mat-card>\n <h2 *ngIf=\"title === 'AUTHOR'\">Authors</h2>\n <h2 *ngIf=\"title === 'CONTACT'\">Curator/Contact</h2>\n <mat-divider></mat-divider>\n <div *ngFor=\"let author of authors\" class=\"author\">\n <ws-widget-user-image class=\"author-image\" [imageType]=\"'name-initial'\" [userName]=\"author.name || ''\"\n [email]=\"author.email\"></ws-widget-user-image>\n <div class=\"width-expand flex flex-middle flex-between\">\n <p class=\"margin-remove text-md font-normal\">{{ author.name }}</p>\n <ws-widget-btn-mail-user *ngIf=\"askAuthorEnabled\" [widgetData]=\"{ content: content, emails: [author.email] }\">\n </ws-widget-btn-mail-user>\n </div>\n </div>\n </mat-card>\n</ng-template>\n", styles: [".meta-section{flex:1;min-width:1px}.meta-section .unit-meta-item{border-radius:2px;box-sizing:border-box;margin-bottom:16px}@media only screen and (max-width: 599px){.meta-section{width:100%}}.topic-button{display:block;width:32%;margin:4px 0}@media only screen and (max-width: 599px){.topic-button{width:100%}}.info-section{width:28%;min-width:250px;margin-left:24px}@media only screen and (max-width: 599px){.info-section{width:100%;margin-left:0}}.info-section2{width:28%;min-width:250px;margin-right:24px}@media only screen and (max-width: 599px){.info-section2{width:100%;margin-right:0}}.info-container{padding:12px 16px;margin-bottom:16px}.info-container .item-icon{width:20px;height:20px;font-size:20px;margin-left:8px}.author{padding:12px 0;display:flex}.author .author-image{margin-right:12px;height:44px;width:44px}\n"] }]
|
|
154
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.AppTocService }, { type: i3.ConfigurationsService }, { type: i4.DomSanitizer }, { type: i5.AccessControlService }]; }, propDecorators: { forPreview: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}] } });
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9hcHAtdG9jLW92ZXJ2aWV3L2FwcC10b2Mtb3ZlcnZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXRvYy1vdmVydmlldy9hcHAtdG9jLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUluRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVaEUsTUFBTSxPQUFPLHVCQUF1QjtJQWVsQyxZQUNVLEtBQXFCLEVBQ3JCLFlBQTJCLEVBQzNCLFNBQWdDLEVBQ2hDLFlBQTBCLEVBQzFCLG9CQUEwQztRQUoxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBbkJwRCxZQUFPLEdBQThCLElBQUksQ0FBQTtRQUN6QyxzQkFBaUIsR0FBd0IsSUFBSSxDQUFBO1FBQzdDLDBCQUFxQixHQUFHLEtBQUssQ0FBQTtRQUM3QixvQkFBZSxHQUFHLEtBQUssQ0FBQTtRQUN2QixpQkFBWSxHQUFrQyxJQUFJLENBQUE7UUFDbEQscUJBQWdCLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLHdCQUFtQixHQUFHLEtBQUssQ0FBQTtRQUUzQixTQUFJLEdBQW9CLElBQUksQ0FBQTtRQUNuQixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQzNCLGNBQVMsR0FBUSxJQUFJLENBQUE7UUFDckIsbUJBQWMsR0FBeUQsRUFBRSxDQUFBO1FBQ3pFLFlBQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO1FBU25CLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUMzRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUNsRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7U0FDNUQ7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQTtZQUNyQyxDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDckM7SUFDSCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFBO0lBQzVDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUE7SUFDMUMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFVO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQ25ELElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFDZixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3JCLENBQUMsQ0FBQyxFQUFFLENBQ1AsQ0FBQTtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxnQkFBZ0IsR0FBK0I7Z0JBQ25ELE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7YUFDaEMsQ0FBQTtZQUNELElBQUksQ0FBQyxZQUFZO2lCQUNkLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQzlFLFNBQVMsQ0FDUixHQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDOUIsQ0FBQyxFQUNELElBQUksQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFBO1lBQzFCLENBQUMsQ0FDRixDQUFBO1NBQ0o7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBd0M7UUFDekQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO2FBQ2pEO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixVQUFVLEVBQUUsQ0FBQztZQUNiLFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztZQUNWLGdCQUFnQixFQUFFLENBQUM7WUFDbkIsY0FBYyxFQUFFLENBQUM7WUFDakIsS0FBSyxFQUFFLENBQUM7WUFDUixHQUFHLEVBQUUsQ0FBQztZQUNOLE1BQU0sRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUM7WUFDVixZQUFZLEVBQUUsQ0FBQztZQUNmLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLEVBQUUsQ0FBQztZQUNaLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7WUFDVixrQkFBa0IsRUFBRSxDQUFDO1lBQ3JCLGNBQWMsRUFBRSxDQUFDO1NBQ2xCLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM5RyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3RHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtvQkFDM0IsTUFBSztpQkFDTjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO0lBQ3JCLGdCQUFnQjtRQUN0QixJQUNFLElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsSUFBSSxDQUFDLE9BQU87WUFDWiwyREFBMkQ7WUFDM0QsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUNoQjtZQUNBLDZDQUE2QztZQUM3QywrQ0FBK0M7WUFDL0Msb0JBQW9CO1NBQ3JCO0lBQ0gsQ0FBQzsrR0FuSlUsdUJBQXVCO21HQUF2Qix1QkFBdUIscUdDZnBDLHdyYUEwUkE7OzRGRDNRYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UseUJBQXlCO21PQWMxQixVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY2Nlc3MtY29udHJvbC5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE5zQXBwVG9jIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcC10b2MubW9kZWwnXG5pbXBvcnQgeyBBcHBUb2NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLXRvYy5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtYXBwLXRvYy1vdmVydmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtdG9jLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLXRvYy1vdmVydmlldy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBUb2NPdmVydmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29udGVudDogTnNDb250ZW50LklDb250ZW50IHwgbnVsbCA9IG51bGxcbiAgcm91dGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsXG4gIHZpZXdNb3JlUmVsYXRlZFRvcGljcyA9IGZhbHNlXG4gIGhhc1RvY1N0cnVjdHVyZSA9IGZhbHNlXG4gIHRvY1N0cnVjdHVyZTogTnNBcHBUb2MuSVRvY1N0cnVjdHVyZSB8IG51bGwgPSBudWxsXG4gIGFza0F1dGhvckVuYWJsZWQgPSB0cnVlXG4gIHRyYWluaW5nTEh1YkVuYWJsZWQgPSBmYWxzZVxuICB0cmFpbmluZ0xIdWJDb3VudCQ/OiBPYnNlcnZhYmxlPG51bWJlcj5cbiAgYm9keTogU2FmZUh0bWwgfCBudWxsID0gbnVsbFxuICBASW5wdXQoKSBmb3JQcmV2aWV3ID0gZmFsc2VcbiAgdG9jQ29uZmlnOiBhbnkgPSBudWxsXG4gIGNvbnRlbnRQYXJlbnRzOiB7IFtrZXk6IHN0cmluZ106IE5zQXBwVG9jLklDb250ZW50UGFyZW50UmVzcG9uc2VbXSB9ID0ge31cbiAgb2JqS2V5cyA9IE9iamVjdC5rZXlzXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSB0b2NTaGFyZWRTdmM6IEFwcFRvY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHByaXZhdGUgYXV0aEFjY2Vzc0NvbnRyb2xTdmM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLFxuICApIHtcbiAgICBpZiAodGhpcy5jb25maWdTdmMucmVzdHJpY3RlZEZlYXR1cmVzKSB7XG4gICAgICB0aGlzLmFza0F1dGhvckVuYWJsZWQgPSAhdGhpcy5jb25maWdTdmMucmVzdHJpY3RlZEZlYXR1cmVzLmhhcygnYXNrQXV0aG9yJylcbiAgICAgIHRoaXMudHJhaW5pbmdMSHViRW5hYmxlZCA9ICF0aGlzLmNvbmZpZ1N2Yy5yZXN0cmljdGVkRmVhdHVyZXMuaGFzKCd0cmFpbmluZ0xIdWInKVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mb3JQcmV2aWV3KSB7XG4gICAgICB0aGlzLmZvclByZXZpZXcgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnL2F1dGhvci8nKVxuICAgIH1cbiAgICBpZiAodGhpcy5yb3V0ZSAmJiB0aGlzLnJvdXRlLnBhcmVudCkge1xuICAgICAgdGhpcy5yb3V0ZVN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGUucGFyZW50LmRhdGEuc3Vic2NyaWJlKChkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdERhdGEoZGF0YSlcbiAgICAgICAgdGhpcy50b2NDb25maWcgPSBkYXRhLnBhZ2VEYXRhLmRhdGFcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucm91dGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucm91dGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93U3VidGl0bGVPbkJhbm5lcigpIHtcbiAgICByZXR1cm4gdGhpcy50b2NTaGFyZWRTdmMuc3VidGl0bGVPbkJhbm5lcnNcbiAgfVxuICBnZXQgc2hvd0Rlc2NyaXB0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbnRlbnQgJiYgIXRoaXMuY29udGVudC5ib2R5KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50b2NTaGFyZWRTdmMuc2hvd0Rlc2NyaXB0aW9uXG4gIH1cblxuICBwcml2YXRlIGluaXREYXRhKGRhdGE6IERhdGEpIHtcbiAgICBjb25zdCBpbml0RGF0YSA9IHRoaXMudG9jU2hhcmVkU3ZjLmluaXREYXRhKGRhdGEpXG4gICAgdGhpcy5jb250ZW50ID0gaW5pdERhdGEuY29udGVudFxuICAgIHRoaXMuYm9keSA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxuICAgICAgdGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudC5ib2R5XG4gICAgICAgID8gdGhpcy5mb3JQcmV2aWV3XG4gICAgICAgICAgPyB0aGlzLmF1dGhBY2Nlc3NDb250cm9sU3ZjLnByb3h5VG9BdXRob3JpbmdVcmwodGhpcy5jb250ZW50LmJvZHkpXG4gICAgICAgICAgOiB0aGlzLmNvbnRlbnQuYm9keVxuICAgICAgICA6ICcnLFxuICAgIClcbiAgICB0aGlzLmNvbnRlbnRQYXJlbnRzID0ge31cbiAgICB0aGlzLnJlc2V0QW5kRmV0Y2hUb2NTdHJ1Y3R1cmUoKVxuICAgIHRoaXMuZ2V0VHJhaW5pbmdDb3VudCgpXG4gICAgdGhpcy5nZXRDb250ZW50UGFyZW50KClcbiAgfVxuXG4gIGdldENvbnRlbnRQYXJlbnQoKSB7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgY29uc3QgY29udGVudFBhcmVudFJlcTogTnNBcHBUb2MuSUNvbnRlbnRQYXJlbnRSZXEgPSB7XG4gICAgICAgIGZpZWxkczogWydjb250ZW50VHlwZScsICduYW1lJ10sXG4gICAgICB9XG4gICAgICB0aGlzLnRvY1NoYXJlZFN2Y1xuICAgICAgICAuZmV0Y2hDb250ZW50UGFyZW50KHRoaXMuY29udGVudC5pZGVudGlmaWVyLCBjb250ZW50UGFyZW50UmVxLCB0aGlzLmZvclByZXZpZXcpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFyc2VDb250ZW50UGFyZW50KHJlcylcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9lcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50UGFyZW50cyA9IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHBhcnNlQ29udGVudFBhcmVudChjb250ZW50OiBOc0FwcFRvYy5JQ29udGVudFBhcmVudFJlc3BvbnNlKSB7XG4gICAgY29udGVudC5jb2xsZWN0aW9ucy5mb3JFYWNoKGNvbGxlY3Rpb24gPT4ge1xuICAgICAgaWYgKCF0aGlzLmNvbnRlbnRQYXJlbnRzLmhhc093blByb3BlcnR5KGNvbGxlY3Rpb24uY29udGVudFR5cGUpKSB7XG4gICAgICAgIHRoaXMuY29udGVudFBhcmVudHNbY29sbGVjdGlvbi5jb250ZW50VHlwZV0gPSBbXVxuICAgICAgfVxuICAgICAgdGhpcy5jb250ZW50UGFyZW50c1tjb2xsZWN0aW9uLmNvbnRlbnRUeXBlXS5wdXNoKGNvbGxlY3Rpb24pXG4gICAgICB0aGlzLnBhcnNlQ29udGVudFBhcmVudChjb2xsZWN0aW9uKVxuICAgIH0pXG4gIH1cblxuICByZXNldEFuZEZldGNoVG9jU3RydWN0dXJlKCkge1xuICAgIHRoaXMudG9jU3RydWN0dXJlID0ge1xuICAgICAgYXNzZXNzbWVudDogMCxcbiAgICAgIGZpbmFsVGVzdDogMCxcbiAgICAgIGNvdXJzZTogMCxcbiAgICAgIGhhbmRzT246IDAsXG4gICAgICBpbnRlcmFjdGl2ZVZpZGVvOiAwLFxuICAgICAgbGVhcm5pbmdNb2R1bGU6IDAsXG4gICAgICBvdGhlcjogMCxcbiAgICAgIHBkZjogMCxcbiAgICAgIHN1cnZleTogMCxcbiAgICAgIHBvZGNhc3Q6IDAsXG4gICAgICBwcmFjdGljZVRlc3Q6IDAsXG4gICAgICBxdWl6OiAwLFxuICAgICAgdmlkZW86IDAsXG4gICAgICB3ZWJNb2R1bGU6IDAsXG4gICAgICB3ZWJQYWdlOiAwLFxuICAgICAgeW91dHViZTogMCxcbiAgICAgIGludGVyYWN0aXZlY29udGVudDogMCxcbiAgICAgIG9mZmxpbmVTZXNzaW9uOiAwLFxuICAgIH1cbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICB0aGlzLmhhc1RvY1N0cnVjdHVyZSA9IGZhbHNlXG4gICAgICB0aGlzLnRvY1N0cnVjdHVyZS5sZWFybmluZ01vZHVsZSA9IHRoaXMuY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5Lk1PRFVMRSA/IC0xIDogMFxuICAgICAgdGhpcy50b2NTdHJ1Y3R1cmUuY291cnNlID0gdGhpcy5jb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuQ09VUlNFID8gLTEgOiAwXG4gICAgICB0aGlzLnRvY1N0cnVjdHVyZSA9IHRoaXMudG9jU2hhcmVkU3ZjLmdldFRvY1N0cnVjdHVyZSh0aGlzLmNvbnRlbnQsIHRoaXMudG9jU3RydWN0dXJlKVxuICAgICAgZm9yIChjb25zdCBwcm9nVHlwZSBpbiB0aGlzLnRvY1N0cnVjdHVyZSkge1xuICAgICAgICBpZiAodGhpcy50b2NTdHJ1Y3R1cmVbcHJvZ1R5cGVdID4gMCkge1xuICAgICAgICAgIHRoaXMuaGFzVG9jU3RydWN0dXJlID0gdHJ1ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBGb3IgTGVhcm5pbmcgSHViIHRyYWluaW5nc1xuICBwcml2YXRlIGdldFRyYWluaW5nQ291bnQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50cmFpbmluZ0xIdWJFbmFibGVkICYmXG4gICAgICB0aGlzLmNvbnRlbnQgJiZcbiAgICAgIC8vIHRoaXMudHJhaW5pbmdTdmMuaXNWYWxpZFRyYWluaW5nQ29udGVudCh0aGlzLmNvbnRlbnQpICYmXG4gICAgICAhdGhpcy5mb3JQcmV2aWV3XG4gICAgKSB7XG4gICAgICAvLyB0aGlzLnRyYWluaW5nTEh1YkNvdW50JCA9IHRoaXMudHJhaW5pbmdBcGlcbiAgICAgIC8vICAgLmdldFRyYWluaW5nQ291bnQodGhpcy5jb250ZW50LmlkZW50aWZpZXIpXG4gICAgICAvLyAgIC5waXBlKHJldHJ5KDIpKVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1iZXR3ZWVuIGZsZXgtd3JhcHBlZCBtdC00XCI+XG4gIDxkaXYgY2xhc3M9XCJtZXRhLXNlY3Rpb25cIj5cbiAgICA8IS0tIERlc2NyaXB0aW9uIDogQ29uZGl0aW9uYWwgOiBJZiBub3Qgc2hvd24gaGVyZSwgd2lsbCBiZSBzaG93biBvdmVyIGJhbm5lciAtLT5cbiAgICA8bWF0LWNhcmQgKm5nSWY9XCJcbiAgICAgICAgdG9jQ29uZmlnPy5vdmVydmlldz8uZGVzY3JpcHRpb24/LmVuYWJsZWQgJiZcbiAgICAgICAgc2hvd0Rlc2NyaXB0aW9uICYmXG4gICAgICAgIHNob3dTdWJ0aXRsZU9uQmFubmVyICYmXG4gICAgICAgIGNvbnRlbnQ/LmRlc2NyaXB0aW9uXG4gICAgICBcIiBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8uZGVzY3JpcHRpb24/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LXN1YmhlYWRpbmctMVwiIFtpbm5lckhUTUxdPVwiY29udGVudD8uZGVzY3JpcHRpb25cIj48L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDwhLS0gQ29udGVudCBCb2R5IC0tPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LmJvZHk/LmVuYWJsZWQgJiYgY29udGVudD8uYm9keVwiIGNsYXNzPVwidW5pdC1tZXRhLWl0ZW1cIj5cbiAgICAgIDxoMj57eyB0b2NDb25maWc/Lm92ZXJ2aWV3Py5ib2R5Py5kaXNwbGF5TmFtZSB9fTwvaDI+XG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJyZWFrLXdvcmRzXCIgW2lubmVySFRNTF09XCJib2R5XCI+PC9kaXY+XG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8IS0tIExlYXJuaW5nIG9iamVjdGl2ZSAtLT5cbiAgICA8bWF0LWNhcmQgKm5nSWY9XCJ0b2NDb25maWc/Lm92ZXJ2aWV3Py5sZWFybmluZ09iamVjdGl2ZT8uZW5hYmxlZCAmJiBjb250ZW50Py5sZWFybmluZ09iamVjdGl2ZVwiXG4gICAgICBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8ubGVhcm5pbmdPYmplY3RpdmU/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8cCBjbGFzcz1cIm1hdC1zdWJoZWFkaW5nLTFcIiBbaW5uZXJIVE1MXT1cImNvbnRlbnQ/LmxlYXJuaW5nT2JqZWN0aXZlXCI+PC9wPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG5cbiAgICA8IS0tIFJlZ2lzdHJhdGlvbiBpbnN0cnVjdGlvbnMgLS0+XG4gICAgPG1hdC1jYXJkICpuZ0lmPVwiXG4gICAgICAgIHRvY0NvbmZpZz8ub3ZlcnZpZXc/LnJlZ2lzdHJhdGlvbkluc3RydWN0aW9ucz8uZW5hYmxlZCAmJlxuICAgICAgICBjb250ZW50Py5yZWdpc3RyYXRpb25JbnN0cnVjdGlvbnM/Lmxlbmd0aFxuICAgICAgXCIgY2xhc3M9XCJ1bml0LW1ldGEtaXRlbVwiPlxuICAgICAgPGgyPnt7IHRvY0NvbmZpZz8ub3ZlcnZpZXc/LnJlZ2lzdHJhdGlvbkluc3RydWN0aW9ucz8uZGlzcGxheU5hbWUgfX08L2gyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0xIGJyZWFrLXdvcmRzXCIgW2lubmVySFRNTF09XCJjb250ZW50Py5yZWdpc3RyYXRpb25JbnN0cnVjdGlvbnNcIj48L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LnByZUNvbnRlbnRzPy5lbmFibGVkICYmIGNvbnRlbnQ/LnByZUNvbnRlbnRzPy5sZW5ndGhcIiBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8ucHJlQ29udGVudHM/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYi0xXCIgKm5nRm9yPVwibGV0IHByZUNvbnRlbnQgb2YgY29udGVudD8ucHJlQ29udGVudHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhIGNsYXNzPVwid3MtbWF0LXByaW1hcnktdGV4dFwiIFtyb3V0ZXJMaW5rXT1cIicvYXBwL3RvYy8nICsgcHJlQ29udGVudC5pZGVudGlmaWVyXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUtYm90dG9tIG1hdC1zdWJoZWFkaW5nLTFcIj57eyBwcmVDb250ZW50Lm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LnBvc3RDb250ZW50cz8uZW5hYmxlZCAmJiBjb250ZW50Py5wb3N0Q29udGVudHM/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8ucG9zdENvbnRlbnRzPy5kaXNwbGF5TmFtZSB9fTwvaDI+XG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItMVwiICpuZ0Zvcj1cImxldCBwb3N0Q29udGVudCBvZiBjb250ZW50Py5wb3N0Q29udGVudHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhIGNsYXNzPVwid3MtbWF0LXByaW1hcnktdGV4dFwiIFtyb3V0ZXJMaW5rXT1cIicvYXBwL3RvYy8nICsgcG9zdENvbnRlbnQuaWRlbnRpZmllclwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJtYXJnaW4tcmVtb3ZlLWJvdHRvbSBtYXQtc3ViaGVhZGluZy0xXCI+e3sgcG9zdENvbnRlbnQubmFtZSB9fTwvcD5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkICpuZ0lmPVwidG9jQ29uZmlnPy5vdmVydmlldz8uY2VydGlmaWNhdGlvbkxpc3Q/LmVuYWJsZWQgJiYgY29udGVudD8uY2VydGlmaWNhdGlvbkxpc3Q/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8uY2VydGlmaWNhdGlvbkxpc3Q/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYi0xXCIgKm5nRm9yPVwibGV0IGNlcnRpZmljYXRpb24gb2YgY29udGVudD8uY2VydGlmaWNhdGlvbkxpc3RcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhIGNsYXNzPVwid3MtbWF0LXByaW1hcnktdGV4dFwiIFtyb3V0ZXJMaW5rXT1cIicvYXBwL3RvYy8nICsgY2VydGlmaWNhdGlvbi5pZGVudGlmaWVyXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUtYm90dG9tIG1hdC1zdWJoZWFkaW5nLTFcIj57eyBjZXJ0aWZpY2F0aW9uLm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LnN0dWR5TWF0ZXJpYWxzPy5lbmFibGVkICYmIGNvbnRlbnQ/LnN0dWR5TWF0ZXJpYWxzPy5sZW5ndGhcIlxuICAgICAgY2xhc3M9XCJ1bml0LW1ldGEtaXRlbVwiPlxuICAgICAgPGgyPnt7IHRvY0NvbmZpZz8ub3ZlcnZpZXc/LnN0dWR5TWF0ZXJpYWxzPy5kaXNwbGF5TmFtZSB9fTwvaDI+XG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItMVwiICpuZ0Zvcj1cImxldCBzdHVkeWl0ZW0gb2YgY29udGVudD8uc3R1ZHlNYXRlcmlhbHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhIGNsYXNzPVwid3MtbWF0LXByaW1hcnktdGV4dFwiIFtyb3V0ZXJMaW5rXT1cIicvYXBwL3RvYy8nICsgc3R1ZHlpdGVtLmlkZW50aWZpZXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWFyZ2luLXJlbW92ZS1ib3R0b20gbWF0LXN1YmhlYWRpbmctMVwiPnt7IHN0dWR5aXRlbS5uYW1lIH19PC9wPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQgKm5nSWY9XCJcbiAgICAgICAgdG9jQ29uZmlnPy5vdmVydmlldz8ucGxheWdyb3VuZFJlc291cmNlcz8uZW5hYmxlZCAmJiBjb250ZW50Py5wbGF5Z3JvdW5kUmVzb3VyY2VzPy5sZW5ndGhcbiAgICAgIFwiIGNsYXNzPVwidW5pdC1tZXRhLWl0ZW1cIj5cbiAgICAgIDxoMj57eyB0b2NDb25maWc/Lm92ZXJ2aWV3Py5wbGF5Z3JvdW5kUmVzb3VyY2VzPy5kaXNwbGF5TmFtZSB9fTwvaDI+XG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggbWItMVwiICpuZ0Zvcj1cImxldCBwbGF5Z3JvdW5kUmVzb3VyY2Ugb2YgY29udGVudD8ucGxheWdyb3VuZFJlc291cmNlc1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWxpZ24tYm90dG9tXCI+d2ViX2Fzc2V0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGEgY2xhc3M9XCJ3cy1tYXQtcHJpbWFyeS10ZXh0XCIgW3JvdXRlckxpbmtdPVwiJy9hcHAvdG9jLycgKyBwbGF5Z3JvdW5kUmVzb3VyY2UuaWRlbnRpZmllclwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJtYXJnaW4tcmVtb3ZlLWJvdHRvbSBtYXQtc3ViaGVhZGluZy0xXCI+e3sgcGxheWdyb3VuZFJlc291cmNlLm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LmtBcnRpZmFjdHM/LmVuYWJsZWQgJiYgY29udGVudD8ua0FydGlmYWN0cz8ubGVuZ3RoXCIgY2xhc3M9XCJ1bml0LW1ldGEtaXRlbVwiPlxuICAgICAgPGgyPnt7IHRvY0NvbmZpZz8ub3ZlcnZpZXc/LmtBcnRpZmFjdHM/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYi0xXCIgKm5nRm9yPVwibGV0IGtBcnRpZmFjdCBvZiBjb250ZW50Py5rQXJ0aWZhY3RzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhbGlnbi1ib3R0b21cIj53ZWJfYXNzZXQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YSBjbGFzcz1cIndzLW1hdC1wcmltYXJ5LXRleHRcIiBbcm91dGVyTGlua109XCInL2FwcC90b2MvJyArIGtBcnRpZmFjdC5pZGVudGlmaWVyXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUtYm90dG9tIG1hdC1zdWJoZWFkaW5nLTFcIj57eyBrQXJ0aWZhY3QubmFtZSB9fTwvcD5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkICpuZ0lmPVwiXG4gICAgICAgIHRvY0NvbmZpZz8ub3ZlcnZpZXc/LmVxdWl2YWxlbnRDZXJ0aWZpY2F0aW9ucz8uZW5hYmxlZCAmJlxuICAgICAgICBjb250ZW50Py5lcXVpdmFsZW50Q2VydGlmaWNhdGlvbnM/Lmxlbmd0aFxuICAgICAgXCIgY2xhc3M9XCJ1bml0LW1ldGEtaXRlbVwiPlxuICAgICAgPGgyPnt7IHRvY0NvbmZpZz8ub3ZlcnZpZXc/LmVxdWl2YWxlbnRDZXJ0aWZpY2F0aW9ucz8uZGlzcGxheU5hbWUgfX08L2gyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1iLTFcIiAqbmdGb3I9XCJsZXQgZXF1aXZhbGVudENlcnRpZmljYXRpb24gb2YgY29udGVudD8uZXF1aXZhbGVudENlcnRpZmljYXRpb25zXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0xXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhbGlnbi1ib3R0b21cIj53ZWJfYXNzZXQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YSBjbGFzcz1cIndzLW1hdC1wcmltYXJ5LXRleHRcIiBbcm91dGVyTGlua109XCInL2FwcC90b2MvJyArIGVxdWl2YWxlbnRDZXJ0aWZpY2F0aW9uLmlkZW50aWZpZXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWFyZ2luLXJlbW92ZS1ib3R0b20gbWF0LXN1YmhlYWRpbmctMVwiPnt7IGVxdWl2YWxlbnRDZXJ0aWZpY2F0aW9uLm5hbWUgfX08L3A+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cIlxuICAgICAgICB0b2NDb25maWc/Lm92ZXJ2aWV3Py5zb2Z0d2FyZVJlcXVpcmVtZW50cz8uZW5hYmxlZCAmJiBjb250ZW50Py5zb2Z0d2FyZVJlcXVpcmVtZW50cz8ubGVuZ3RoXG4gICAgICBcIiBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8uc29mdHdhcmVSZXF1aXJlbWVudHM/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYi0xXCIgKm5nRm9yPVwibGV0IHNvZnR3YXJlUmVxdWlyZW1lbnQgb2YgY29udGVudD8uc29mdHdhcmVSZXF1aXJlbWVudHNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTFcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhIGNsYXNzPVwid3MtbWF0LXByaW1hcnktdGV4dFwiIFtocmVmXT1cInNvZnR3YXJlUmVxdWlyZW1lbnQudXJsXCIgdGFyZ2V0PVwiYmxhbmtcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWFyZ2luLXJlbW92ZS1ib3R0b20gbWF0LXN1YmhlYWRpbmctMVwiPnt7IHNvZnR3YXJlUmVxdWlyZW1lbnQudGl0bGUgfX08L3A+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDwhLS0gU2tpbGxzIC0tPlxuICAgIDxtYXQtY2FyZCAqbmdJZj1cInRvY0NvbmZpZz8ub3ZlcnZpZXc/LnNraWxscz8uZW5hYmxlZCAmJiBjb250ZW50Py5za2lsbHM/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInVuaXQtbWV0YS1pdGVtIG1hdC1hcHAtYmFja2dyb3VuZFwiPlxuICAgICAgPGgyPnt7IHRvY0NvbmZpZz8ub3ZlcnZpZXc/LnNraWxscz8uZGlzcGxheU5hbWUgfX08L2gyPlxuICAgICAgPG1hdC1jaGlwLWxpc3Q+XG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgc2tpbGwgb2YgY29udGVudD8uc2tpbGxzXCI+e3sgc2tpbGwubmFtZSB9fTwvbWF0LWNoaXA+XG4gICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8IS0tIFJlcXVpcmVtZW50cyAtLT5cbiAgICA8bWF0LWNhcmQgKm5nSWY9XCJ0b2NDb25maWc/Lm92ZXJ2aWV3Py5wcmVSZXF1aXNpdGVzPy5lbmFibGVkICYmIGNvbnRlbnQ/LnByZVJlcXVpc2l0ZXNcIiBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCI+XG4gICAgICA8aDI+e3sgdG9jQ29uZmlnPy5vdmVydmlldz8ucHJlUmVxdWlzaXRlcz8uZGlzcGxheU5hbWUgfX08L2gyPlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0xXCIgW2lubmVySFRNTF09XCJjb250ZW50Py5wcmVSZXF1aXNpdGVzXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tdG9wLXNcIiAqbmdJZj1cImNvbnRlbnQ/LnNvZnR3YXJlUmVxdWlyZW1lbnRzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJtYXQtaDMgbWFyZ2luLWJvdHRvbS14c1wiID5Tb2Z0d2FyZSBSZXF1aXJlbWVudHM8L2gzPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlcXVpcmVtZW50IG9mIGNvbnRlbnQ/LnNvZnR3YXJlUmVxdWlyZW1lbnRzXCI+XG4gICAgICAgICAgICA8YSAqbmdJZj1cInJlcXVpcmVtZW50LnVybFwiIGNsYXNzPVwibWFyZ2luLXJpZ2h0LXNcIiBtYXQtc3Ryb2tlZC1idXR0b24gdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgW2hyZWZdPVwicmVxdWlyZW1lbnQudXJsXCI+XG4gICAgICAgICAgICAgIHt7IHJlcXVpcmVtZW50LnRpdGxlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJtYXJnaW4tcmlnaHQtc1wiICpuZ0lmPVwiIXJlcXVpcmVtZW50Py51cmxcIj57eyByZXF1aXJlbWVudC50aXRsZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuXG4gICAgPCEtLSBUcmFpbmluZyAoTEh1YikgLS0+XG4gICAgPG1hdC1jYXJkICpuZ0lmPVwidHJhaW5pbmdMSHViRW5hYmxlZCAmJiB0cmFpbmluZ0xIdWJDb3VudCQgfCBhc3luYyBhcyB0cmFpbmluZ0xIdWJDb3VudFwiIGNsYXNzPVwidW5pdC1tZXRhLWl0ZW1cIj5cbiAgICAgIDxoMiA+VHJhaW5pbmdzPC9oMj5cbiAgICAgIDxoNCBjbGFzcz1cIm1hdC1oNFwiPlxuICAgICAgICA8bmctY29udGFpbmVyPnt7IHRyYWluaW5nTEh1YkNvdW50IH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgaTE4bj1cInggdHJhaW5pbmdzIGF2YWlsYWJsZVwiICpuZ0lmPVwidHJhaW5pbmdMSHViQ291bnQgPiAxXCI+XG4gICAgICAgICAgdHJhaW5pbmdzIGF2YWlsYWJsZTwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIGkxOG49XCIxIHRyYWluaW5nIGF2YWlsYWJsZVwiICpuZ0lmPVwidHJhaW5pbmdMSHViQ291bnQgPT09IDFcIj5cbiAgICAgICAgICB0cmFpbmluZyBhdmFpbGFibGU8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvaDQ+XG4gICAgICA8ZGl2PlxuICAgICAgICBcbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQ+XG5cbiAgICA8IS0tIFJlbGF0ZWQgVG9waWNzIC0tPlxuICAgIDxtYXQtY2FyZCBjbGFzcz1cInVuaXQtbWV0YS1pdGVtXCIgKm5nSWY9XCJ0b2NDb25maWc/Lm92ZXJ2aWV3Py50b3BpY3M/LmVuYWJsZWQgJiYgY29udGVudD8udG9waWNzPy5sZW5ndGhcIj5cbiAgICAgIDxoMj57eyB0b2NDb25maWc/Lm92ZXJ2aWV3Py50b3BpY3M/LmRpc3BsYXlOYW1lIH19PC9oMj5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWJldHdlZW4gZmxleC13cmFwcGVkXCI+XG4gICAgICAgICAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9waWMtYnV0dG9uIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRvcGljIG9mIGNvbnRlbnQ/LnRvcGljcyB8IHBpcGVMaW1pdFRvOiAodmlld01vcmVSZWxhdGVkVG9waWNzID8gMjQgOiA2KVwiIFt0aXRsZV09XCJ0b3BpYz8ubmFtZVwiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCInL2FwcC9jb25jZXB0LWdyYXBoLycgKyB0b3BpYy5pZGVudGlmaWVyXCI+XG4gICAgICAgICAgICB7eyB0b3BpYz8ubmFtZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py50b3BpY3M/Lmxlbmd0aCA+IDZcIiBjbGFzcz1cInRleHQtcmlnaHQgbWFyZ2luLXRvcC14c1wiPlxuICAgICAgICAgIDxhIG1hdC1idXR0b24gKGNsaWNrKT1cInZpZXdNb3JlUmVsYXRlZFRvcGljcyA9ICF2aWV3TW9yZVJlbGF0ZWRUb3BpY3NcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXZpZXdNb3JlUmVsYXRlZFRvcGljc1wiID5WaWV3IE1vcmU8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInZpZXdNb3JlUmVsYXRlZFRvcGljc1wiID5WaWV3IExlc3M8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuICAgIDwhLS0gQXV0aG9ycyBvbiBzbWFsbCBzY3JlZW4gLS0+XG4gICAgPGRpdiBjbGFzcz1cImJsb2NrIHNtOmhpZGRlbiBtYXJnaW4tYm90dG9tLW1cIiAqbmdJZj1cImNvbnRlbnQ/LmNyZWF0b3JEZXRhaWxzPy5sZW5ndGhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3JlYXRvcnNcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIGF1dGhvcnM6IGNvbnRlbnQ/LmNyZWF0b3JEZXRhaWxzLFxuICAgICAgICAgIHRpdGxlOiAnQVVUSE9SJ1xuICAgICAgICB9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENvbnRhY3RzIG9uIHNtYWxsIHNjcmVlbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgc206aGlkZGVuIG1hcmdpbi1ib3R0b20tbVwiICpuZ0lmPVwiY29udGVudD8uY3JlYXRvckNvbnRhY3RzPy5sZW5ndGhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3JlYXRvcnNcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgIGF1dGhvcnM6IGNvbnRlbnQ/LmNyZWF0b3JDb250YWN0cyxcbiAgICAgICAgICB0aXRsZTogJ0NPTlRBQ1QnXG4gICAgICAgIH1cIj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tYm90dG9tLW1cIiAqbmdJZj1cIm9iaktleXMoY29udGVudFBhcmVudHMpLmxlbmd0aFwiPlxuICAgICAgPG1hdC1jYXJkPlxuICAgICAgICA8aDIgPlRoaXMgY29udGVudCBpcyBwYXJ0IG9mPC9oMj5cbiAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICA8bWF0LWFjY29yZGlvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIG9iaktleXMoY29udGVudFBhcmVudHMpXCI+XG4gICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWw+XG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgICAgICAgIHt7IGtleSB9fVxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1iLTFcIiAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBjb250ZW50UGFyZW50c1trZXldXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItMVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFsaWduLWJvdHRvbVwiPndlYl9hc3NldDwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJ3cy1tYXQtcHJpbWFyeS10ZXh0XCIgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgICAgICAgICAgICBjb250ZW50LnN0YXR1cyAhPT0gJ0xpdmUnXG4gICAgICAgICAgICAgICAgICAgID8gJy9hdXRob3InICsgJy90b2MvJyArIGNvbnRlbnQuaWRlbnRpZmllclxuICAgICAgICAgICAgICAgICAgICA6ICcvYXBwJyArICcvdG9jLycgKyBjb250ZW50LmlkZW50aWZpZXJcbiAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUtYm90dG9tIG1hdC1zdWJoZWFkaW5nLTFcIj57eyBjb250ZW50Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L21hdC1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEF0IGEgZ2xhbmNlIHNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJpbmZvLXNlY3Rpb25cIj5cbiAgICA8d3Mtd2lkZ2V0LXBsYXllci1icmllZiBbZm9yUHJldmlld109XCJmb3JQcmV2aWV3XCIgW2NvbnRlbnRdPVwiY29udGVudFwiIFtoYXNUb2NTdHJ1Y3R1cmVdPVwiaGFzVG9jU3RydWN0dXJlXCJcbiAgICAgIFt0b2NTdHJ1Y3R1cmVdPVwidG9jU3RydWN0dXJlXCI+XG4gICAgPC93cy13aWRnZXQtcGxheWVyLWJyaWVmPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NyZWF0b3JzIGxldC1hdXRob3JzPVwiYXV0aG9yc1wiIGxldC10aXRsZT1cInRpdGxlXCI+XG4gIDxtYXQtY2FyZD5cbiAgICA8aDIgKm5nSWY9XCJ0aXRsZSA9PT0gJ0FVVEhPUidcIj5BdXRob3JzPC9oMj5cbiAgICA8aDIgKm5nSWY9XCJ0aXRsZSA9PT0gJ0NPTlRBQ1QnXCI+Q3VyYXRvci9Db250YWN0PC9oMj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhdXRob3Igb2YgYXV0aG9yc1wiIGNsYXNzPVwiYXV0aG9yXCI+XG4gICAgICA8d3Mtd2lkZ2V0LXVzZXItaW1hZ2UgY2xhc3M9XCJhdXRob3ItaW1hZ2VcIiBbaW1hZ2VUeXBlXT1cIiduYW1lLWluaXRpYWwnXCIgW3VzZXJOYW1lXT1cImF1dGhvci5uYW1lIHx8ICcnXCJcbiAgICAgICAgW2VtYWlsXT1cImF1dGhvci5lbWFpbFwiPjwvd3Mtd2lkZ2V0LXVzZXItaW1hZ2U+XG4gICAgICA8ZGl2IGNsYXNzPVwid2lkdGgtZXhwYW5kIGZsZXggZmxleC1taWRkbGUgZmxleC1iZXR3ZWVuXCI+XG4gICAgICAgIDxwIGNsYXNzPVwibWFyZ2luLXJlbW92ZSB0ZXh0LW1kIGZvbnQtbm9ybWFsXCI+e3sgYXV0aG9yLm5hbWUgfX08L3A+XG4gICAgICAgIDx3cy13aWRnZXQtYnRuLW1haWwtdXNlciAqbmdJZj1cImFza0F1dGhvckVuYWJsZWRcIiBbd2lkZ2V0RGF0YV09XCJ7IGNvbnRlbnQ6IGNvbnRlbnQsIGVtYWlsczogW2F1dGhvci5lbWFpbF0gfVwiPlxuICAgICAgICA8L3dzLXdpZGdldC1idG4tbWFpbC11c2VyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWNhcmQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
5
|
+
import * as i3 from "@angular/material/legacy-tooltip";
|
|
6
|
+
import * as i4 from "../../_collection/_common/attendance-card/attendance-card.component";
|
|
7
|
+
import * as i5 from "ng-circle-progress";
|
|
8
|
+
import * as i6 from "@ngx-translate/core";
|
|
9
|
+
export class AppTocSessionCardComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.session = null;
|
|
12
|
+
this.expandAll = false;
|
|
13
|
+
this.forPreview = false;
|
|
14
|
+
this.isEnabled = true;
|
|
15
|
+
this.isAllowed = true;
|
|
16
|
+
this.viewChildren = true;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
}
|
|
20
|
+
raiseTelemetry() { }
|
|
21
|
+
progressColor() {
|
|
22
|
+
return '#1D8923';
|
|
23
|
+
}
|
|
24
|
+
progressColor2() {
|
|
25
|
+
return '#f27d00';
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppTocSessionCardComponent, selector: "ws-app-toc-session-card", inputs: { session: "session", expandAll: "expandAll", rootId: "rootId", rootContentType: "rootContentType", forPreview: "forPreview", batchData: "batchData", config: "config" }, ngImport: i0, template: "<div class=\"flex flex-col sm:flex-row flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <a [class.disabled]=\"(forPreview || !isEnabled) ? true : null\"\n [routerLink]=\"(isAllowed && !forPreview && !isEnabled) ? resourceLink.url : null\"\n [queryParams]=\"(isAllowed && !forPreview && !isEnabled) ? resourceLink.queryParams : null\">\n <div class=\"text-truncate \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren; raiseTelemetry()\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <p class=\"margin-remove text-truncate mat-subheading-1 flex-auto\">\n <!-- <mat-icon class=\"margin-right-xs radiobtn time-icon\">radio_button_unchecked </mat-icon> -->\n {{ session?.title }}\n </p>\n\n <span class=\"content-type optional-span\" *ngIf=\"session?.optionalReading\">{{'apptocsessionscards.optional' | translate }} </span>\n <!-- <span class=\"mat-body-strong content-type\">{{ content?.identifier }}</span> -->\n\n\n </div>\n <div class=\"mat-body-2 ws-mat-black60-text\">\n <div class=\"flex flex-1 flex-row\">\n <div class=\"flex margin-right-s capitalize\">{{session?.sessionType || ''}}</div>\n <div class=\"flex margin-right-s bullet-span\">{{session?.startDate | date: 'dd-MM-yyyy' }}</div>\n <div class=\"flex bullet-span\">{{session?.sessionDuration || '_'}}, {{session?.startTime || '_' }} -\n {{session?.endTime || '_'}}\n </div>\n </div>\n <!-- <span class=\"ws-mat-black60-text\">{{ (content?.duration || 120)| pipeDurationTransform: 'hms' }}</span> -->\n <!-- </span> -->\n </div>\n </div>\n </a>\n <div class=\"flex flex-wrap items-center justify-start sm:justify-end\">\n <ng-container *ngIf=\"!forPreview && session?.sessionId && session?.completionPercentage; else elseBlock\">\n <ng-container *ngIf=\"session?.completionStatus == 2\">\n <circle-progress class=\"flex items-center progress\" [percent]=\"100\" [radius]=\"12\" [outerStrokeWidth]=\"3\"\n [innerStrokeWidth]=\"3\" [space]=\"-3\" [outerStrokeColor]=\"progressColor()\"\n [innerStrokeColor]=\"'rgba(0, 0, 0, 0.16)'\" [animation]=\"true\" [animationDuration]=\"300\"\n [showTitle]=\"false\" [showUnits]=\"false\" [showSubtitle]=\"false\" [showInnerStroke]=\"true\"\n [clockwise]=\"true\" [backgroundOpacity]=\"0\" [backgroundGradient]=\"false\" [backgroundStrokeWidth]=\"3\"\n matTooltip=\"Completed\" [showZeroOuterStroke]=false [backgroundPadding]=\"-9\" [startFromZero]=\"false\"\n [backgroundPadding]=\"0\" [imageHeight]=\"24\" [imageWidth]=\"24\" [showBackground]=\"false\"\n [outerStrokeLinecap]=\"'butt'\">\n </circle-progress>\n </ng-container>\n <ng-container *ngIf=\"session?.completionStatus < 2\">\n <circle-progress class=\"flex items-center progress\" [percent]=\"session?.completionPercentage\"\n [radius]=\"12\" [outerStrokeWidth]=\"3\" [innerStrokeWidth]=\"3\" [space]=\"-3\"\n [outerStrokeColor]=\"progressColor2()\" [innerStrokeColor]=\"'rgba(0, 0, 0, 0.16)'\" [animation]=\"true\"\n [animationDuration]=\"300\" [showTitle]=\"false\" [showUnits]=\"false\" [showSubtitle]=\"false\"\n [showInnerStroke]=\"true\" [clockwise]=\"true\" [backgroundOpacity]=\"0\" [backgroundGradient]=\"false\"\n [backgroundStrokeWidth]=\"3\" matTooltip=\"In progress\" [showZeroOuterStroke]=false\n [backgroundPadding]=\"-9\" [startFromZero]=\"false\" [backgroundPadding]=\"0\" [imageHeight]=\"24\"\n [imageWidth]=\"24\" [showBackground]=\"false\" [outerStrokeLinecap]=\"'butt'\">\n </circle-progress>\n </ng-container>\n\n </ng-container>\n <ng-template #elseBlock>\n <circle-progress class=\"flex items-center progress\" [percent]=\"0\" [radius]=\"12\" [outerStrokeWidth]=\"3\"\n [innerStrokeWidth]=\"3\" [outerStrokeColor]=\"'#808080'\" [innerStrokeColor]=\"'#808080'\" [animation]=\"true\"\n [space]=\"-3\" [showUnits]=\"false\" [animationDuration]=\"300\" [showTitle]=\"false\" [backgroundPadding]=\"0\"\n [backgroundPadding]=\"-9\" [outerStrokeLinecap]=\"'butt'\" matTooltip=\"Not started\" [showSubtitle]=\"false\"\n [showInnerStroke]=\"true\" [clockwise]=\"true\" [imageHeight]=\"24\" [imageWidth]=\"24\"\n [showBackground]=\"false\"></circle-progress>\n <!-- <p>no data</p> -->\n </ng-template>\n </div>\n</div>\n<ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"session?.sessionHandouts?.length > 0\">\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">{{'apptocsessionscards.sessionHandouts' | translate }}</p>\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <ng-container *ngFor=\"let handout of session?.sessionHandouts\">\n <div class=\"\">\n <span class=\"mr-4\">{{handout.title}}</span>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container>\n <ws-widget-attendance-card [session]=\"session\" [config]=\"config\"></ws-widget-attendance-card>\n</ng-container>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:14px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.AttendanceCardComponent, selector: "ws-widget-attendance-card", inputs: ["session", "status", "config", "showInfo"] }, { kind: "component", type: i5.CircleProgressComponent, selector: "circle-progress", inputs: ["name", "class", "backgroundGradient", "backgroundColor", "backgroundGradientStopColor", "backgroundOpacity", "backgroundStroke", "backgroundStrokeWidth", "backgroundPadding", "radius", "space", "percent", "toFixed", "maxPercent", "renderOnClick", "units", "unitsFontSize", "unitsFontWeight", "unitsColor", "outerStrokeGradient", "outerStrokeWidth", "outerStrokeColor", "outerStrokeGradientStopColor", "outerStrokeLinecap", "innerStrokeColor", "innerStrokeWidth", "titleFormat", "title", "titleColor", "titleFontSize", "titleFontWeight", "subtitleFormat", "subtitle", "subtitleColor", "subtitleFontSize", "subtitleFontWeight", "imageSrc", "imageHeight", "imageWidth", "animation", "animateTitle", "animateSubtitle", "animationDuration", "showTitle", "showSubtitle", "showUnits", "showImage", "showBackground", "showInnerStroke", "clockwise", "responsive", "startFromZero", "showZeroOuterStroke", "lazy", "options"], outputs: ["onClick"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionCardComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'ws-app-toc-session-card', template: "<div class=\"flex flex-col sm:flex-row flex-between width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <a [class.disabled]=\"(forPreview || !isEnabled) ? true : null\"\n [routerLink]=\"(isAllowed && !forPreview && !isEnabled) ? resourceLink.url : null\"\n [queryParams]=\"(isAllowed && !forPreview && !isEnabled) ? resourceLink.queryParams : null\">\n <div class=\"text-truncate \" [ngClass]=\"{'cursor-pointer': !isEnabled}\"\n (click)=\"viewChildren = !viewChildren; raiseTelemetry()\">\n <div class=\"flex flex-col sm:flex-row flex-wrap\">\n <p class=\"margin-remove text-truncate mat-subheading-1 flex-auto\">\n <!-- <mat-icon class=\"margin-right-xs radiobtn time-icon\">radio_button_unchecked </mat-icon> -->\n {{ session?.title }}\n </p>\n\n <span class=\"content-type optional-span\" *ngIf=\"session?.optionalReading\">{{'apptocsessionscards.optional' | translate }} </span>\n <!-- <span class=\"mat-body-strong content-type\">{{ content?.identifier }}</span> -->\n\n\n </div>\n <div class=\"mat-body-2 ws-mat-black60-text\">\n <div class=\"flex flex-1 flex-row\">\n <div class=\"flex margin-right-s capitalize\">{{session?.sessionType || ''}}</div>\n <div class=\"flex margin-right-s bullet-span\">{{session?.startDate | date: 'dd-MM-yyyy' }}</div>\n <div class=\"flex bullet-span\">{{session?.sessionDuration || '_'}}, {{session?.startTime || '_' }} -\n {{session?.endTime || '_'}}\n </div>\n </div>\n <!-- <span class=\"ws-mat-black60-text\">{{ (content?.duration || 120)| pipeDurationTransform: 'hms' }}</span> -->\n <!-- </span> -->\n </div>\n </div>\n </a>\n <div class=\"flex flex-wrap items-center justify-start sm:justify-end\">\n <ng-container *ngIf=\"!forPreview && session?.sessionId && session?.completionPercentage; else elseBlock\">\n <ng-container *ngIf=\"session?.completionStatus == 2\">\n <circle-progress class=\"flex items-center progress\" [percent]=\"100\" [radius]=\"12\" [outerStrokeWidth]=\"3\"\n [innerStrokeWidth]=\"3\" [space]=\"-3\" [outerStrokeColor]=\"progressColor()\"\n [innerStrokeColor]=\"'rgba(0, 0, 0, 0.16)'\" [animation]=\"true\" [animationDuration]=\"300\"\n [showTitle]=\"false\" [showUnits]=\"false\" [showSubtitle]=\"false\" [showInnerStroke]=\"true\"\n [clockwise]=\"true\" [backgroundOpacity]=\"0\" [backgroundGradient]=\"false\" [backgroundStrokeWidth]=\"3\"\n matTooltip=\"Completed\" [showZeroOuterStroke]=false [backgroundPadding]=\"-9\" [startFromZero]=\"false\"\n [backgroundPadding]=\"0\" [imageHeight]=\"24\" [imageWidth]=\"24\" [showBackground]=\"false\"\n [outerStrokeLinecap]=\"'butt'\">\n </circle-progress>\n </ng-container>\n <ng-container *ngIf=\"session?.completionStatus < 2\">\n <circle-progress class=\"flex items-center progress\" [percent]=\"session?.completionPercentage\"\n [radius]=\"12\" [outerStrokeWidth]=\"3\" [innerStrokeWidth]=\"3\" [space]=\"-3\"\n [outerStrokeColor]=\"progressColor2()\" [innerStrokeColor]=\"'rgba(0, 0, 0, 0.16)'\" [animation]=\"true\"\n [animationDuration]=\"300\" [showTitle]=\"false\" [showUnits]=\"false\" [showSubtitle]=\"false\"\n [showInnerStroke]=\"true\" [clockwise]=\"true\" [backgroundOpacity]=\"0\" [backgroundGradient]=\"false\"\n [backgroundStrokeWidth]=\"3\" matTooltip=\"In progress\" [showZeroOuterStroke]=false\n [backgroundPadding]=\"-9\" [startFromZero]=\"false\" [backgroundPadding]=\"0\" [imageHeight]=\"24\"\n [imageWidth]=\"24\" [showBackground]=\"false\" [outerStrokeLinecap]=\"'butt'\">\n </circle-progress>\n </ng-container>\n\n </ng-container>\n <ng-template #elseBlock>\n <circle-progress class=\"flex items-center progress\" [percent]=\"0\" [radius]=\"12\" [outerStrokeWidth]=\"3\"\n [innerStrokeWidth]=\"3\" [outerStrokeColor]=\"'#808080'\" [innerStrokeColor]=\"'#808080'\" [animation]=\"true\"\n [space]=\"-3\" [showUnits]=\"false\" [animationDuration]=\"300\" [showTitle]=\"false\" [backgroundPadding]=\"0\"\n [backgroundPadding]=\"-9\" [outerStrokeLinecap]=\"'butt'\" matTooltip=\"Not started\" [showSubtitle]=\"false\"\n [showInnerStroke]=\"true\" [clockwise]=\"true\" [imageHeight]=\"24\" [imageWidth]=\"24\"\n [showBackground]=\"false\"></circle-progress>\n <!-- <p>no data</p> -->\n </ng-template>\n </div>\n</div>\n<ng-container *ngIf=\"batchData?.enrolled\">\n <div *ngIf=\"session?.sessionHandouts?.length > 0\">\n <p class=\" font-bold mat-body-1 margin-bottom-xs ws-mat-black60-text\">{{'apptocsessionscards.sessionHandouts' | translate }}</p>\n <div class=\"flex flex-col flex-wrapped margin-bottom-s width-expand pr-0 w-100 sm:pr-4 sm:w-auto mb-4\">\n <ng-container *ngFor=\"let handout of session?.sessionHandouts\">\n <div class=\"\">\n <span class=\"mr-4\">{{handout.title}}</span>\n <a class=\"download-link\" target=\u201D_blank\u201D download href=\"{{handout.url}}\">{{'apptocsessionscards.download' | translate }}</a>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n<ng-container>\n <ws-widget-attendance-card [session]=\"session\" [config]=\"config\"></ws-widget-attendance-card>\n</ng-container>", styles: ["@charset \"UTF-8\";.customicon{position:absolute;top:-.5em;right:0}a.disabled{pointer-events:none;cursor:default}span.optional-span{margin-left:8px;padding:0 6px;border-radius:2px;display:inline-block;background-color:#0074b6;color:#fff;font-size:12px}.card-collection{display:flex;align-items:center;border-radius:8px}.card-collection .card-thumbnail{height:100%;margin-right:12px;cursor:pointer;border-radius:8px 0 0}@media only screen and (max-width: 469px){.card-collection{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.card-collection .card-thumbnail{height:100%!important;width:100%!important}.card-collection .text-truncate{white-space:unset!important}}.tab:focus{outline:1px solid!important}.resource-container .card-thumbnail{height:100%;cursor:pointer}.resource-container .img-container{position:relative;margin-right:12px}.resource-container .img-container ws-widget-content-progress{position:absolute;left:0;right:0;bottom:5px}@media only screen and (max-width: 469px){.resource-container{flex-direction:column;margin:8px 8px 16px!important;align-items:flex-start!important}.resource-container .card-thumbnail{height:100%!important;width:100%!important}.resource-container .text-truncate{white-space:unset!important}}.child-meta-container{margin-top:8px;display:flex}.child-meta-container .child-structure{display:flex;align-items:center;flex-wrap:wrap}.child-meta-container .child-structure span{margin-right:12px;text-align:center;margin-bottom:8px}.child-meta-container .child-structure .structure-icon{margin-right:12px}@media only screen and (max-width: 469px){.child-meta-container{margin-left:.5rem;justify-content:space-between}}.resource-container{display:flex;align-items:center;border-radius:8px}.resource-container ws-display-content-type-icon{display:flex;align-items:center}.resource-container .resource-meta{margin-left:12px;display:flex;justify-content:space-between;align-items:center}.children-container .mat-subheading-1{font:400 16px/24px Lato!important}.children-container .resource-container{margin-bottom:20px;margin-right:8px}.children-container .resource-container .card-thumbnail{height:65px;align-self:center}.content-heading{letter-spacing:0px;color:#222}.content-type{letter-spacing:0px}.time-icon{vertical-align:middle}.time-value{letter-spacing:0px;color:#222;text-transform:lowercase}.see-all-container{position:absolute;right:2px;top:5px}.oval-white{background:#fff 0% 0% no-repeat padding-box;border-radius:8px;padding:2px 8px}.type-container{letter-spacing:0px;display:flex;align-items:center}.type-container .rotate-90{transform:rotate(-90deg)}.type-container .custom-icon{width:18px;height:18px;font-size:18px;margin-right:8px}.type-container.resource{color:#00a9f4}.type-container.module{color:#34d6a4}.type-container.course{color:#f58634}.no-mb{margin-bottom:0!important}.w-100{width:100%}.w-auto{width:auto}.progress-bar-thin{height:5px!important}.progress-bar-thin ::ng-deep .mat-progress-bar{height:5px}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-buffer{background-color:transparent!important}.progress-bar-thin ::ng-deep .theme-igot.day-mode .mat-progress-bar-background{fill:transparent}.radiobtn{color:#00000029}.resicons img{width:22px;opacity:.5;margin-top:2px;vertical-align:sub}.bullet-span:before{content:\"\\2022\";padding-right:12px}.download-link{opacity:1;color:#0074b6;font-size:14px;font-weight:700;font-style:normal;letter-spacing:.5px;line-height:20px;text-transform:uppercase}\n"] }]
|
|
33
|
+
}], ctorParameters: function () { return []; }, propDecorators: { session: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], expandAll: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], rootId: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], rootContentType: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], forPreview: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], batchData: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], config: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1zZXNzaW9uLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXRvYy1zZXNzaW9uLWNhcmQvYXBwLXRvYy1zZXNzaW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXRvYy1zZXNzaW9uLWNhcmQvYXBwLXRvYy1zZXNzaW9uLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7O0FBT3hELE1BQU0sT0FBTywwQkFBMEI7SUFhckM7UUFaUyxZQUFPLEdBQVEsSUFBSSxDQUFBO1FBQ25CLGNBQVMsR0FBRyxLQUFLLENBQUE7UUFHakIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUczQixjQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDaEIsaUJBQVksR0FBRyxJQUFJLENBQUE7SUFHSCxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBQ0QsY0FBYyxLQUFLLENBQUM7SUFDYixhQUFhO1FBQ2xCLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFDTSxjQUFjO1FBQ25CLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7K0dBdkJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlQQ1B2QyxtekxBa0ZlOzs0RkQzRUYsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjswRUFLMUIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dzLWFwcC10b2Mtc2Vzc2lvbi1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC10b2Mtc2Vzc2lvbi1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLXRvYy1zZXNzaW9uLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwVG9jU2Vzc2lvbkNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZXNzaW9uOiBhbnkgPSBudWxsXG4gIEBJbnB1dCgpIGV4cGFuZEFsbCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJvb3RJZCE6IHN0cmluZ1xuICBASW5wdXQoKSByb290Q29udGVudFR5cGUhOiBzdHJpbmdcbiAgQElucHV0KCkgZm9yUHJldmlldyA9IGZhbHNlXG4gIEBJbnB1dCgpIGJhdGNoRGF0YSE6IGFueVxuICBASW5wdXQoKSBjb25maWchOiBzdHJpbmdcbiAgaXNFbmFibGVkID0gdHJ1ZVxuICBpc0FsbG93ZWQgPSB0cnVlXG4gIHZpZXdDaGlsZHJlbiA9IHRydWVcbiAgcmVzb3VyY2VMaW5rOiBhbnlcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG4gIHJhaXNlVGVsZW1ldHJ5KCkgeyB9XG4gIHB1YmxpYyBwcm9ncmVzc0NvbG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcjMUQ4OTIzJ1xuICB9XG4gIHB1YmxpYyBwcm9ncmVzc0NvbG9yMigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnI2YyN2QwMCdcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZmxleC1iZXR3ZWVuIHdpZHRoLWV4cGFuZCBwci0wIHctMTAwIHNtOnByLTQgc206dy1hdXRvIG1iLTRcIj5cbiAgICA8YSBbY2xhc3MuZGlzYWJsZWRdPVwiKGZvclByZXZpZXcgfHwgIWlzRW5hYmxlZCkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIihpc0FsbG93ZWQgJiYgIWZvclByZXZpZXcgJiYgIWlzRW5hYmxlZCkgPyByZXNvdXJjZUxpbmsudXJsIDogbnVsbFwiXG4gICAgICAgIFtxdWVyeVBhcmFtc109XCIoaXNBbGxvd2VkICYmICFmb3JQcmV2aWV3ICYmICFpc0VuYWJsZWQpICA/IHJlc291cmNlTGluay5xdWVyeVBhcmFtcyA6IG51bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdHJ1bmNhdGUgXCIgW25nQ2xhc3NdPVwieydjdXJzb3ItcG9pbnRlcic6ICFpc0VuYWJsZWR9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJ2aWV3Q2hpbGRyZW4gPSAhdmlld0NoaWxkcmVuOyByYWlzZVRlbGVtZXRyeSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBmbGV4LXdyYXBcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hcmdpbi1yZW1vdmUgdGV4dC10cnVuY2F0ZSBtYXQtc3ViaGVhZGluZy0xIGZsZXgtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cIm1hcmdpbi1yaWdodC14cyByYWRpb2J0biB0aW1lLWljb25cIj5yYWRpb19idXR0b25fdW5jaGVja2VkIDwvbWF0LWljb24+IC0tPlxuICAgICAgICAgICAgICAgICAgICB7eyBzZXNzaW9uPy50aXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudC10eXBlIG9wdGlvbmFsLXNwYW5cIiAqbmdJZj1cInNlc3Npb24/Lm9wdGlvbmFsUmVhZGluZ1wiPnt7J2FwcHRvY3Nlc3Npb25zY2FyZHMub3B0aW9uYWwnIHwgdHJhbnNsYXRlIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibWF0LWJvZHktc3Ryb25nIGNvbnRlbnQtdHlwZVwiPnt7IGNvbnRlbnQ/LmlkZW50aWZpZXIgfX08L3NwYW4+IC0tPlxuXG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1ib2R5LTIgd3MtbWF0LWJsYWNrNjAtdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYXJnaW4tcmlnaHQtcyBjYXBpdGFsaXplXCI+e3tzZXNzaW9uPy5zZXNzaW9uVHlwZSB8fCAnJ319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG1hcmdpbi1yaWdodC1zIGJ1bGxldC1zcGFuXCI+e3tzZXNzaW9uPy5zdGFydERhdGUgfCBkYXRlOiAnZGQtTU0teXl5eScgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYnVsbGV0LXNwYW5cIj57e3Nlc3Npb24/LnNlc3Npb25EdXJhdGlvbiB8fCAnXyd9fSwge3tzZXNzaW9uPy5zdGFydFRpbWUgfHwgJ18nIH19IC1cbiAgICAgICAgICAgICAgICAgICAgICB7e3Nlc3Npb24/LmVuZFRpbWUgfHwgJ18nfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIndzLW1hdC1ibGFjazYwLXRleHRcIj57eyAoY29udGVudD8uZHVyYXRpb24gfHwgMTIwKXwgcGlwZUR1cmF0aW9uVHJhbnNmb3JtOiAnaG1zJyB9fTwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgPCEtLSA8L3NwYW4+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmb3JQcmV2aWV3ICYmIHNlc3Npb24/LnNlc3Npb25JZCAmJiBzZXNzaW9uPy5jb21wbGV0aW9uUGVyY2VudGFnZTsgZWxzZSBlbHNlQmxvY2tcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZXNzaW9uPy5jb21wbGV0aW9uU3RhdHVzID09IDJcIj5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlLXByb2dyZXNzIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHJvZ3Jlc3NcIiBbcGVyY2VudF09XCIxMDBcIiBbcmFkaXVzXT1cIjEyXCIgW291dGVyU3Ryb2tlV2lkdGhdPVwiM1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lclN0cm9rZVdpZHRoXT1cIjNcIiBbc3BhY2VdPVwiLTNcIiBbb3V0ZXJTdHJva2VDb2xvcl09XCJwcm9ncmVzc0NvbG9yKClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJTdHJva2VDb2xvcl09XCIncmdiYSgwLCAwLCAwLCAwLjE2KSdcIiBbYW5pbWF0aW9uXT1cInRydWVcIiBbYW5pbWF0aW9uRHVyYXRpb25dPVwiMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiIFtzaG93VW5pdHNdPVwiZmFsc2VcIiBbc2hvd1N1YnRpdGxlXT1cImZhbHNlXCIgW3Nob3dJbm5lclN0cm9rZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Nsb2Nrd2lzZV09XCJ0cnVlXCIgW2JhY2tncm91bmRPcGFjaXR5XT1cIjBcIiBbYmFja2dyb3VuZEdyYWRpZW50XT1cImZhbHNlXCIgW2JhY2tncm91bmRTdHJva2VXaWR0aF09XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbXBsZXRlZFwiIFtzaG93WmVyb091dGVyU3Ryb2tlXT1mYWxzZSBbYmFja2dyb3VuZFBhZGRpbmddPVwiLTlcIiBbc3RhcnRGcm9tWmVyb109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kUGFkZGluZ109XCIwXCIgW2ltYWdlSGVpZ2h0XT1cIjI0XCIgW2ltYWdlV2lkdGhdPVwiMjRcIiBbc2hvd0JhY2tncm91bmRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbb3V0ZXJTdHJva2VMaW5lY2FwXT1cIididXR0J1wiPlxuICAgICAgICAgICAgICAgIDwvY2lyY2xlLXByb2dyZXNzPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vzc2lvbj8uY29tcGxldGlvblN0YXR1cyA8IDJcIj5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlLXByb2dyZXNzIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHJvZ3Jlc3NcIiBbcGVyY2VudF09XCJzZXNzaW9uPy5jb21wbGV0aW9uUGVyY2VudGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtyYWRpdXNdPVwiMTJcIiBbb3V0ZXJTdHJva2VXaWR0aF09XCIzXCIgW2lubmVyU3Ryb2tlV2lkdGhdPVwiM1wiIFtzcGFjZV09XCItM1wiXG4gICAgICAgICAgICAgICAgICAgIFtvdXRlclN0cm9rZUNvbG9yXT1cInByb2dyZXNzQ29sb3IyKClcIiBbaW5uZXJTdHJva2VDb2xvcl09XCIncmdiYSgwLCAwLCAwLCAwLjE2KSdcIiBbYW5pbWF0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbYW5pbWF0aW9uRHVyYXRpb25dPVwiMzAwXCIgW3Nob3dUaXRsZV09XCJmYWxzZVwiIFtzaG93VW5pdHNdPVwiZmFsc2VcIiBbc2hvd1N1YnRpdGxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dJbm5lclN0cm9rZV09XCJ0cnVlXCIgW2Nsb2Nrd2lzZV09XCJ0cnVlXCIgW2JhY2tncm91bmRPcGFjaXR5XT1cIjBcIiBbYmFja2dyb3VuZEdyYWRpZW50XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRTdHJva2VXaWR0aF09XCIzXCIgbWF0VG9vbHRpcD1cIkluIHByb2dyZXNzXCIgW3Nob3daZXJvT3V0ZXJTdHJva2VdPWZhbHNlXG4gICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kUGFkZGluZ109XCItOVwiIFtzdGFydEZyb21aZXJvXT1cImZhbHNlXCIgW2JhY2tncm91bmRQYWRkaW5nXT1cIjBcIiBbaW1hZ2VIZWlnaHRdPVwiMjRcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VXaWR0aF09XCIyNFwiIFtzaG93QmFja2dyb3VuZF09XCJmYWxzZVwiIFtvdXRlclN0cm9rZUxpbmVjYXBdPVwiJ2J1dHQnXCI+XG4gICAgICAgICAgICAgICAgPC9jaXJjbGUtcHJvZ3Jlc3M+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlQmxvY2s+XG4gICAgICAgICAgICA8Y2lyY2xlLXByb2dyZXNzIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcHJvZ3Jlc3NcIiBbcGVyY2VudF09XCIwXCIgW3JhZGl1c109XCIxMlwiIFtvdXRlclN0cm9rZVdpZHRoXT1cIjNcIlxuICAgICAgICAgICAgICAgIFtpbm5lclN0cm9rZVdpZHRoXT1cIjNcIiBbb3V0ZXJTdHJva2VDb2xvcl09XCInIzgwODA4MCdcIiBbaW5uZXJTdHJva2VDb2xvcl09XCInIzgwODA4MCdcIiBbYW5pbWF0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzcGFjZV09XCItM1wiIFtzaG93VW5pdHNdPVwiZmFsc2VcIiBbYW5pbWF0aW9uRHVyYXRpb25dPVwiMzAwXCIgW3Nob3dUaXRsZV09XCJmYWxzZVwiIFtiYWNrZ3JvdW5kUGFkZGluZ109XCIwXCJcbiAgICAgICAgICAgICAgICBbYmFja2dyb3VuZFBhZGRpbmddPVwiLTlcIiBbb3V0ZXJTdHJva2VMaW5lY2FwXT1cIididXR0J1wiIG1hdFRvb2x0aXA9XCJOb3Qgc3RhcnRlZFwiIFtzaG93U3VidGl0bGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtzaG93SW5uZXJTdHJva2VdPVwidHJ1ZVwiIFtjbG9ja3dpc2VdPVwidHJ1ZVwiIFtpbWFnZUhlaWdodF09XCIyNFwiIFtpbWFnZVdpZHRoXT1cIjI0XCJcbiAgICAgICAgICAgICAgICBbc2hvd0JhY2tncm91bmRdPVwiZmFsc2VcIj48L2NpcmNsZS1wcm9ncmVzcz5cbiAgICAgICAgICAgIDwhLS0gPHA+bm8gZGF0YTwvcD4gLS0+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJiYXRjaERhdGE/LmVucm9sbGVkXCI+XG4gICAgPGRpdiAqbmdJZj1cInNlc3Npb24/LnNlc3Npb25IYW5kb3V0cz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICA8cCBjbGFzcz1cIiBmb250LWJvbGQgbWF0LWJvZHktMSBtYXJnaW4tYm90dG9tLXhzICB3cy1tYXQtYmxhY2s2MC10ZXh0XCI+e3snYXBwdG9jc2Vzc2lvbnNjYXJkcy5zZXNzaW9uSGFuZG91dHMnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LXdyYXBwZWQgbWFyZ2luLWJvdHRvbS1zIHdpZHRoLWV4cGFuZCBwci0wIHctMTAwIHNtOnByLTQgc206dy1hdXRvIG1iLTRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhhbmRvdXQgb2Ygc2Vzc2lvbj8uc2Vzc2lvbkhhbmRvdXRzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTRcIj57e2hhbmRvdXQudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkb3dubG9hZC1saW5rXCIgdGFyZ2V0PeKAnV9ibGFua+KAnSBkb3dubG9hZCBocmVmPVwie3toYW5kb3V0LnVybH19XCI+e3snYXBwdG9jc2Vzc2lvbnNjYXJkcy5kb3dubG9hZCcgfCB0cmFuc2xhdGUgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXI+XG4gICAgPHdzLXdpZGdldC1hdHRlbmRhbmNlLWNhcmQgW3Nlc3Npb25dPVwic2Vzc2lvblwiIFtjb25maWddPVwiY29uZmlnXCI+PC93cy13aWRnZXQtYXR0ZW5kYW5jZS1jYXJkPlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../app-toc-session-card/app-toc-session-card.component";
|
|
6
|
+
import * as i3 from "@ngx-translate/core";
|
|
7
|
+
export class AppTocSessionsComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.content = null;
|
|
10
|
+
this.forPreview = false;
|
|
11
|
+
this.config = null;
|
|
12
|
+
this.sessionList = [];
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
if (this.batchData) {
|
|
16
|
+
// tslint:disable-next-line:max-line-length
|
|
17
|
+
if (this.batchData.content[0] && this.batchData.content[0].batchAttributes && this.batchData.content[0].batchAttributes.sessionDetails_v2 && this.batchData.content[0].batchAttributes.sessionDetails_v2.length > 0) {
|
|
18
|
+
this.sessionList = this.batchData.content[0].batchAttributes.sessionDetails_v2;
|
|
19
|
+
this.sessionList = this.sessionList.sort((a, b) => {
|
|
20
|
+
const dateA = new Date(a.startDate);
|
|
21
|
+
const dateB = new Date(b.startDate);
|
|
22
|
+
if (moment(a.startDate).isSame(b.startDate)) {
|
|
23
|
+
const atime = moment(a.startTime, 'hh:mm A').format('HH');
|
|
24
|
+
const btime = moment(b.startTime, 'hh:mm A').format('HH');
|
|
25
|
+
return atime - btime;
|
|
26
|
+
}
|
|
27
|
+
return dateA - dateB;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AppTocSessionsComponent, selector: "ws-app-app-toc-sessions", inputs: { batchData: "batchData", content: "content", forPreview: "forPreview", config: "config" }, ngImport: i0, template: "<div class=\"contents-container\">\n <div class=\"main-container\">\n <ng-container *ngIf=\"batchData?.content[0]?.batchAttributes?.sessionDetails_v2?.length > 0; else noChildren\">\n <div class=\"content-card padding-right-m padding-left-m padding-top-s padding-bottom-s margin-bottom-m\" *ngFor=\"let session of sessionList; trackBy: contentTrackBy\">\n <ws-app-toc-session-card [forPreview]=\"forPreview\" [rootId]=\"contextId\" [batchData]=\"batchData\" [config]=\"config\"\n [session]=\"session\"></ws-app-toc-session-card>\n </div>\n </ng-container>\n <ng-template #noChildren>\n <div>\n {{'apptocsessions.noSessionsAvailable' | translate }}\n </div>\n </ng-template>\n </div>\n </div>", styles: [".contents-container{display:flex;justify-content:space-between;flex-wrap:wrap;margin:16px 0 24px}.contents-container .main-container{width:100%;box-sizing:border-box}.contents-container .main-container .toc-section{display:flex;justify-content:space-between;padding-bottom:12px}.contents-container .main-container .content-card{background:#fff;border-radius:8px;border:1px solid #F5F6FA;overflow:hidden;position:relative}.contents-container .main-container .noChildren{color:#222!important}@media only screen and (max-width: 959px){.contents-container .main-container{width:100%;padding-right:0;margin-bottom:32px}}.contents-container .side-container{flex:1;min-width:250px}@media only screen and (max-width: 959px){.contents-container .side-container{width:100%}}.playgrounds-container{margin:0 0 24px}.playgrounds-container .plg-card{position:relative;margin-bottom:12px;margin-right:24px}.playgrounds-container .plg-card .plg-img{display:block;width:265px;height:150px}.playgrounds-container .plg-card .plg-overlay{position:absolute;bottom:0;padding:8px 12px;box-sizing:border-box;left:0;right:0;background:linear-gradient(90deg,#000000,transparent);color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AppTocSessionCardComponent, selector: "ws-app-toc-session-card", inputs: ["session", "expandAll", "rootId", "rootContentType", "forPreview", "batchData", "config"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppTocSessionsComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'ws-app-app-toc-sessions', template: "<div class=\"contents-container\">\n <div class=\"main-container\">\n <ng-container *ngIf=\"batchData?.content[0]?.batchAttributes?.sessionDetails_v2?.length > 0; else noChildren\">\n <div class=\"content-card padding-right-m padding-left-m padding-top-s padding-bottom-s margin-bottom-m\" *ngFor=\"let session of sessionList; trackBy: contentTrackBy\">\n <ws-app-toc-session-card [forPreview]=\"forPreview\" [rootId]=\"contextId\" [batchData]=\"batchData\" [config]=\"config\"\n [session]=\"session\"></ws-app-toc-session-card>\n </div>\n </ng-container>\n <ng-template #noChildren>\n <div>\n {{'apptocsessions.noSessionsAvailable' | translate }}\n </div>\n </ng-template>\n </div>\n </div>", styles: [".contents-container{display:flex;justify-content:space-between;flex-wrap:wrap;margin:16px 0 24px}.contents-container .main-container{width:100%;box-sizing:border-box}.contents-container .main-container .toc-section{display:flex;justify-content:space-between;padding-bottom:12px}.contents-container .main-container .content-card{background:#fff;border-radius:8px;border:1px solid #F5F6FA;overflow:hidden;position:relative}.contents-container .main-container .noChildren{color:#222!important}@media only screen and (max-width: 959px){.contents-container .main-container{width:100%;padding-right:0;margin-bottom:32px}}.contents-container .side-container{flex:1;min-width:250px}@media only screen and (max-width: 959px){.contents-container .side-container{width:100%}}.playgrounds-container{margin:0 0 24px}.playgrounds-container .plg-card{position:relative;margin-bottom:12px;margin-right:24px}.playgrounds-container .plg-card .plg-img{display:block;width:265px;height:150px}.playgrounds-container .plg-card .plg-overlay{position:absolute;bottom:0;padding:8px 12px;box-sizing:border-box;left:0;right:0;background:linear-gradient(90deg,#000000,transparent);color:#fff}\n"] }]
|
|
38
|
+
}], ctorParameters: function () { return []; }, propDecorators: { batchData: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], content: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], forPreview: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], config: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXRvYy1zZXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdG9jL3NyYy9saWIvY29tcG9uZW50cy9hcHAtdG9jLXNlc3Npb25zL2FwcC10b2Mtc2Vzc2lvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RvYy9zcmMvbGliL2NvbXBvbmVudHMvYXBwLXRvYy1zZXNzaW9ucy9hcHAtdG9jLXNlc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBRXhELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTs7Ozs7QUFPM0IsTUFBTSxPQUFPLHVCQUF1QjtJQU9sQztRQUxTLFlBQU8sR0FBOEIsSUFBSSxDQUFBO1FBQ3pDLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsV0FBTSxHQUFHLElBQUksQ0FBQTtRQUN0QixnQkFBVyxHQUFRLEVBQUUsQ0FBQTtJQUVMLENBQUM7SUFFakIsUUFBUTtRQUVOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQiwyQ0FBMkM7WUFDM0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDOUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRTtvQkFDMUQsTUFBTSxLQUFLLEdBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO29CQUN4QyxNQUFNLEtBQUssR0FBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7b0JBQ3hDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUMzQyxNQUFNLEtBQUssR0FBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBQzlELE1BQU0sS0FBSyxHQUFRLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDOUQsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFBO3FCQUNyQjtvQkFDRCxPQUFPLEtBQUssR0FBRyxLQUFLLENBQUE7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFBO2FBQ0g7U0FDRjtJQUNILENBQUM7K0dBM0JVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG1LQ1RwQywrd0JBY1E7OzRGRExLLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx5QkFBeUI7MEVBSzFCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE5zQ29udGVudCB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5tb2RlbCdcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy1hcHAtYXBwLXRvYy1zZXNzaW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtdG9jLXNlc3Npb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLXRvYy1zZXNzaW9ucy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBUb2NTZXNzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGJhdGNoRGF0YTogYW55XG4gIEBJbnB1dCgpIGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCB8IG51bGwgPSBudWxsXG4gIEBJbnB1dCgpIGZvclByZXZpZXcgPSBmYWxzZVxuICBASW5wdXQoKSBjb25maWcgPSBudWxsXG4gIHNlc3Npb25MaXN0OiBhbnkgPSBbXVxuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICBpZiAodGhpcy5iYXRjaERhdGEpIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIGlmICh0aGlzLmJhdGNoRGF0YS5jb250ZW50WzBdICYmIHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF0uYmF0Y2hBdHRyaWJ1dGVzICYmIHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF0uYmF0Y2hBdHRyaWJ1dGVzLnNlc3Npb25EZXRhaWxzX3YyICYmIHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF0uYmF0Y2hBdHRyaWJ1dGVzLnNlc3Npb25EZXRhaWxzX3YyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uTGlzdCA9IHRoaXMuYmF0Y2hEYXRhLmNvbnRlbnRbMF0uYmF0Y2hBdHRyaWJ1dGVzLnNlc3Npb25EZXRhaWxzX3YyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkxpc3QgPSB0aGlzLnNlc3Npb25MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0ZUE6IGFueSA9IG5ldyBEYXRlKGEuc3RhcnREYXRlKVxuICAgICAgICAgIGNvbnN0IGRhdGVCOiBhbnkgPSBuZXcgRGF0ZShiLnN0YXJ0RGF0ZSlcbiAgICAgICAgICBpZiAobW9tZW50KGEuc3RhcnREYXRlKS5pc1NhbWUoYi5zdGFydERhdGUpKSB7XG4gICAgICAgICAgICBjb25zdCBhdGltZTogYW55ID0gbW9tZW50KGEuc3RhcnRUaW1lLCAnaGg6bW0gQScpLmZvcm1hdCgnSEgnKVxuICAgICAgICAgICAgY29uc3QgYnRpbWU6IGFueSA9IG1vbWVudChiLnN0YXJ0VGltZSwgJ2hoOm1tIEEnKS5mb3JtYXQoJ0hIJylcbiAgICAgICAgICAgIHJldHVybiBhdGltZSAtIGJ0aW1lXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBkYXRlQSAtIGRhdGVCXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudHMtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmF0Y2hEYXRhPy5jb250ZW50WzBdPy5iYXRjaEF0dHJpYnV0ZXM/LnNlc3Npb25EZXRhaWxzX3YyPy5sZW5ndGggPiAwOyBlbHNlIG5vQ2hpbGRyZW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2FyZCBwYWRkaW5nLXJpZ2h0LW0gcGFkZGluZy1sZWZ0LW0gcGFkZGluZy10b3AtcyBwYWRkaW5nLWJvdHRvbS1zIG1hcmdpbi1ib3R0b20tbVwiICpuZ0Zvcj1cImxldCBzZXNzaW9uIG9mIHNlc3Npb25MaXN0OyB0cmFja0J5OiBjb250ZW50VHJhY2tCeVwiPlxuICAgICAgICAgICAgPHdzLWFwcC10b2Mtc2Vzc2lvbi1jYXJkIFtmb3JQcmV2aWV3XT1cImZvclByZXZpZXdcIiBbcm9vdElkXT1cImNvbnRleHRJZFwiIFtiYXRjaERhdGFdPVwiYmF0Y2hEYXRhXCIgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgICAgICBbc2Vzc2lvbl09XCJzZXNzaW9uXCI+PC93cy1hcHAtdG9jLXNlc3Npb24tY2FyZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7J2FwcHRvY3Nlc3Npb25zLm5vU2Vzc2lvbnNBdmFpbGFibGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+Il19
|