├── src ├── assets │ ├── styles │ │ ├── base │ │ │ ├── _sb-icon.scss │ │ │ ├── _borders.scss │ │ │ ├── base.scss │ │ │ ├── _overflows.scss │ │ │ ├── _positions.scss │ │ │ └── _typography.scss │ │ ├── pages │ │ │ └── pages.scss │ │ ├── component │ │ │ ├── _sb-form.scss │ │ │ ├── component.scss │ │ │ ├── _sb-rating.scss │ │ │ └── _sb-offline-comp.scss │ │ ├── layout │ │ │ ├── layout.scss │ │ │ ├── _sb-container.scss │ │ │ └── _sb-header.scss │ │ ├── mixins │ │ │ ├── _mixins.scss │ │ │ ├── bourbon │ │ │ │ ├── helpers │ │ │ │ │ ├── _buttons-list.scss │ │ │ │ │ ├── _text-inputs-list.scss │ │ │ │ │ └── _scales.scss │ │ │ │ ├── validators │ │ │ │ │ ├── _is-color.scss │ │ │ │ │ ├── _is-number.scss │ │ │ │ │ ├── _contains-falsy.scss │ │ │ │ │ ├── _is-length.scss │ │ │ │ │ ├── _is-size.scss │ │ │ │ │ └── _contains.scss │ │ │ │ ├── library │ │ │ │ │ ├── _strip-unit.scss │ │ │ │ │ ├── _clearfix.scss │ │ │ │ │ ├── _hide-text.scss │ │ │ │ │ ├── _overflow-wrap.scss │ │ │ │ │ ├── _border-width.scss │ │ │ │ │ ├── _border-style.scss │ │ │ │ │ ├── _tint.scss │ │ │ │ │ └── _shade.scss │ │ │ │ └── utilities │ │ │ │ │ ├── _fetch-bourbon-setting.scss │ │ │ │ │ ├── _gamma.scss │ │ │ │ │ ├── _assign-inputs.scss │ │ │ │ │ └── _lightness.scss │ │ │ └── _button.scss │ │ ├── styles.scss │ │ └── rtl_helper.scss │ ├── imgs │ │ ├── Help.png │ │ ├── Phone.png │ │ ├── Share.png │ │ ├── book.gif │ │ ├── book.png │ │ ├── close.png │ │ ├── login.png │ │ ├── sort.png │ │ ├── Delete.png │ │ ├── Language.png │ │ ├── Reports.png │ │ ├── SD_card.png │ │ ├── Settings.png │ │ ├── Sign_out.png │ │ ├── Update.png │ │ ├── folder.png │ │ ├── ic_chat.png │ │ ├── ic_home.png │ │ ├── ic_scan.png │ │ ├── Download1.png │ │ ├── cbse_board.png │ │ ├── ic_courses.png │ │ ├── ic_filter.png │ │ ├── ic_import.png │ │ ├── ic_offline.png │ │ ├── ic_profile.png │ │ ├── ic_scanqr.png │ │ ├── ic_search.png │ │ ├── qr_sample.png │ │ ├── timetable.png │ │ ├── Play_disable.png │ │ ├── Rating_star.png │ │ ├── apple_black.png │ │ ├── ic_chat_blue.png │ │ ├── ic_home_blue.png │ │ ├── ic_launcher.png │ │ ├── ic_notebook.png │ │ ├── ic_reference.png │ │ ├── ic_scanqrdemo.png │ │ ├── no_downloads.png │ │ ├── active_download.png │ │ ├── default_circle.png │ │ ├── ic_action_close.png │ │ ├── ic_action_link.png │ │ ├── ic_coming_soon.png │ │ ├── ic_courses_blue.png │ │ ├── ic_folder_open.png │ │ ├── ic_photo_camera.png │ │ ├── ic_profile_blue.png │ │ ├── ic_qr_scanner1.png │ │ ├── ic_scanqr_white.png │ │ ├── ic_share_black.png │ │ ├── Users_and_Groups.png │ │ ├── active_download_2x.png │ │ ├── add_member_step_1.png │ │ ├── ic_action_course.png │ │ ├── ic_action_filter.png │ │ ├── ic_action_search.png │ │ ├── ic_keyboard_voice.png │ │ ├── ic_notebook_blue.png │ │ ├── ic_profile_default.png │ │ ├── ic_settings_error.png │ │ ├── subdirectory_arrow.png │ │ ├── ic_action_attachment.png │ │ ├── ic_courses_disabled.png │ │ ├── ic_download_disabled.png │ │ ├── ic_library_disabled.png │ │ ├── ic_offline_orange_lg.png │ │ ├── ic_offline_white_sm.png │ │ ├── ic_profile_disabled.png │ │ ├── ic_observation_category.png │ │ ├── outline-cloud_download.png │ │ ├── ic_action_filter_applied.png │ │ ├── profile_name_confirmation.png │ │ ├── outline-cloud_download-24px.png │ │ ├── darkmode.svg │ │ ├── ic_course_admin.svg │ │ ├── ic_back.svg │ │ ├── ic_back_black.svg │ │ ├── edit-icon.svg │ │ ├── ic_chat.svg │ │ ├── ic_switch.svg │ │ ├── oval.svg │ │ ├── empty_circle.svg │ │ ├── tab_home.svg │ │ ├── tab_home_selected.svg │ │ └── arrow_down.svg │ ├── dummy │ │ ├── submissionCount.json │ │ ├── reportTypes.json │ │ └── surveylisting.json │ ├── faq │ │ └── resources │ │ │ └── images │ │ │ ├── Arrow.png │ │ │ ├── Report.png │ │ │ ├── UpArrow.png │ │ │ └── Report_blue.png │ └── fonts │ │ └── natosans │ │ └── NotoSans-Regular.ttf ├── app │ ├── components │ │ ├── toc-header │ │ │ ├── toc-header.component.scss │ │ │ └── toc-header.component.ts │ │ ├── content-viewer │ │ │ ├── content-viewer.component.scss │ │ │ └── content-viewer.component.html │ │ ├── popups │ │ │ ├── copy-trace-id-popup.ts │ │ │ │ └── copy-trace-id-popup.component.scss │ │ │ ├── import-popover │ │ │ │ └── import-popover.component.scss │ │ │ ├── toast-navigation │ │ │ │ ├── toast-navigation.component.html │ │ │ │ └── toast-navigation.component.scss │ │ │ ├── sb-progress-loader │ │ │ │ ├── sb-progress-loader.page.scss │ │ │ │ └── sb-progress-loader.page.html │ │ │ ├── sb-download-popup │ │ │ │ └── sb-download-popup.component.scss │ │ │ ├── sb-no-network-popup │ │ │ │ ├── sb-no-network-popup.component.ts │ │ │ │ └── sb-no-network-popup.component.scss │ │ │ ├── group-guidelines-popup │ │ │ │ └── group-guidelines-popup.component.scss │ │ │ ├── year-of-birth-popup │ │ │ │ └── year-of-birth-popup.component.scss │ │ │ ├── sb-insufficient-storage-popup │ │ │ │ ├── sb-insufficient-storage-popup.html │ │ │ │ └── sb-insufficient-storage-popup.scss │ │ │ ├── sb-profile-name-confirmation-popup │ │ │ │ └── sb-profile-name-confirmation-popup.component.scss │ │ │ ├── upgrade-popover │ │ │ │ └── upgrade-popover.component.scss │ │ │ ├── sb-preferences-popup │ │ │ │ └── sb-preferences-popup.component.scss │ │ │ ├── index.ts │ │ │ └── dialog-popup │ │ │ │ └── dialog-popup.component.html │ │ ├── sign-in-card │ │ │ └── event-params.interface.ts │ │ ├── skeleton-item │ │ │ ├── skeleton-item.component.html │ │ │ └── skeleton-item.component.ts │ │ ├── show-vendor-apps │ │ │ └── show-vendor-apps.component.scss │ │ ├── qr-scanner-ios │ │ │ └── qr-scanner-ios.component.scss │ │ ├── dashboard │ │ │ ├── dashboard.component.scss │ │ │ └── dashboard.component.html │ │ ├── add-activity-to-group │ │ │ ├── add-activity-to-group.component.html │ │ │ └── add-activity-to-group.component.scss │ │ ├── pb-horizontal │ │ │ ├── pb-horizontal.component.html │ │ │ └── pb-horizontal.component.ts │ │ ├── acknowledge-response │ │ │ └── acknowledge-response.component.html │ │ ├── profile-avatar │ │ │ └── profile-avatar.component.html │ │ ├── application-header │ │ │ └── application-header-kebab-menu.component.scss │ │ ├── index.ts │ │ ├── discover │ │ │ └── discover.page.scss │ │ ├── access-discussion │ │ │ ├── access-discussion.component.scss │ │ │ └── access-discussion.component.html │ │ ├── detail-card │ │ │ └── detail-card.component.scss │ │ ├── content-actions │ │ │ └── content-actions.component.html │ │ ├── relevant-content-card │ │ │ └── relevant-content-card.component.ts │ │ ├── license-card-component │ │ │ └── license-card-component.component.scss │ │ └── support-acknowledgement │ │ │ └── support-acknowledgement.component.html │ ├── manage-learn │ │ ├── questionnaire │ │ │ ├── questionnaire.page.scss │ │ │ ├── remarks-modal │ │ │ │ ├── remarks-modal.component.scss │ │ │ │ └── remarks-modal.component.html │ │ │ └── matrix-modal │ │ │ │ └── matrix-modal.component.scss │ │ ├── shared │ │ │ ├── components │ │ │ │ ├── chart │ │ │ │ │ ├── chart.component.scss │ │ │ │ │ └── chart.component.html │ │ │ │ ├── audio-list │ │ │ │ │ ├── audio-list.component.scss │ │ │ │ │ ├── audio-list.component.html │ │ │ │ │ └── audio-list.component.ts │ │ │ │ ├── criteria-list │ │ │ │ │ └── criteria-list.component.scss │ │ │ │ ├── download-share │ │ │ │ │ └── download-share.component.scss │ │ │ │ ├── reports-text │ │ │ │ │ └── reports-text.component.scss │ │ │ │ ├── scatter-chart │ │ │ │ │ ├── scatter-chart.component.scss │ │ │ │ │ └── scatter-chart.component.html │ │ │ │ ├── metadata-details │ │ │ │ │ ├── metadata-details.component.scss │ │ │ │ │ ├── metadata-details.component.html │ │ │ │ │ └── metadata-details.component.ts │ │ │ │ ├── text-type-input │ │ │ │ │ └── text-type-input.component.scss │ │ │ │ ├── scrore-report-menus │ │ │ │ │ ├── scrore-report-menus.component.scss │ │ │ │ │ └── scrore-report-menus.component.html │ │ │ │ ├── slider-type-input │ │ │ │ │ └── slider-type-input.component.scss │ │ │ │ ├── submission-actions │ │ │ │ │ ├── submission-actions.component.scss │ │ │ │ │ └── submission-actions.component.html │ │ │ │ ├── percentage-column-charts │ │ │ │ │ ├── percentage-column-charts.component.scss │ │ │ │ │ └── percentage-column-charts.component.html │ │ │ │ ├── remarks │ │ │ │ │ └── remarks.component.scss │ │ │ │ ├── page-questions │ │ │ │ │ └── page-questions.component.scss │ │ │ │ ├── view-detail │ │ │ │ │ ├── view-detail.component.scss │ │ │ │ │ └── view-detail.component.ts │ │ │ │ ├── graph-circle │ │ │ │ │ ├── graph-circle.component.scss │ │ │ │ │ └── graph-circle.component.html │ │ │ │ ├── no-data │ │ │ │ │ ├── no-data.component.html │ │ │ │ │ ├── no-data.component.scss │ │ │ │ │ └── no-data.component.ts │ │ │ │ ├── date-type-input │ │ │ │ │ └── date-type-input.component.scss │ │ │ │ ├── footer-buttons │ │ │ │ │ └── footer-buttons.component.scss │ │ │ │ ├── popover │ │ │ │ │ ├── popover.component.scss │ │ │ │ │ ├── popover.component.html │ │ │ │ │ └── popover.component.ts │ │ │ │ ├── report-modal-filter │ │ │ │ │ └── report.modal.filter.scss │ │ │ │ ├── hint │ │ │ │ │ ├── hint.component.scss │ │ │ │ │ ├── hint.component.html │ │ │ │ │ └── hint.component.ts │ │ │ │ ├── radio-type-input │ │ │ │ │ └── radio-type-input.component.scss │ │ │ │ ├── filter-modal │ │ │ │ │ └── filter-modal.component.scss │ │ │ │ ├── metadata-actions │ │ │ │ │ ├── metadata-actions.component.scss │ │ │ │ │ ├── metadata-actions.component.html │ │ │ │ │ └── metadata-actions.component.ts │ │ │ │ ├── multiple-type-input │ │ │ │ │ └── multiple-type-input.component.scss │ │ │ │ ├── common-header │ │ │ │ │ ├── common-header.component.html │ │ │ │ │ ├── common-header.component.scss │ │ │ │ │ └── common-header.component.ts │ │ │ │ ├── bar-chart │ │ │ │ │ ├── bar-chart.component.scss │ │ │ │ │ └── bar-chart.component.html │ │ │ │ ├── pie-chart │ │ │ │ │ ├── pie-chart.component.scss │ │ │ │ │ └── pie-chart.component.html │ │ │ │ ├── question-heading │ │ │ │ │ ├── question-heading.component.scss │ │ │ │ │ └── question-heading.component.html │ │ │ │ ├── accordion-list │ │ │ │ │ ├── accordion-list.component.scss │ │ │ │ │ └── accordion-list.component.ts │ │ │ │ ├── attachment │ │ │ │ │ └── attachment.component.scss │ │ │ │ ├── create-task │ │ │ │ │ └── create-task.component.scss │ │ │ │ ├── expansion-table │ │ │ │ │ └── expansion-table.component.ts │ │ │ │ ├── image-upload │ │ │ │ │ └── image-upload.component.scss │ │ │ │ ├── matrix-chart │ │ │ │ │ ├── matrix-chart.component.scss │ │ │ │ │ └── matrix-chart.component.ts │ │ │ │ ├── expansion-panel │ │ │ │ │ ├── expansion-panel.component.scss │ │ │ │ │ └── expansion-panel.component.ts │ │ │ │ ├── entityfilter │ │ │ │ │ └── entityfilter.component.scss │ │ │ │ ├── progress-bar │ │ │ │ │ ├── progress-bar.component.ts │ │ │ │ │ └── progress-bar.component.html │ │ │ │ ├── survey-msg │ │ │ │ │ ├── survey-msg.component.scss │ │ │ │ │ └── survey-msg.component.html │ │ │ │ ├── matrix-type-input │ │ │ │ │ └── matrix-type-input.component.scss │ │ │ │ ├── project-details-card │ │ │ │ │ ├── project-details-card.component.ts │ │ │ │ │ └── project-details-card.component.scss │ │ │ │ ├── item-list-card │ │ │ │ │ └── item-list-card.component.scss │ │ │ │ └── add-link-modal │ │ │ │ │ └── add-link-modal.component.ts │ │ │ ├── index.ts │ │ │ ├── pipe │ │ │ │ ├── camel-to-title.pipe.ts │ │ │ │ ├── search.pipe.ts │ │ │ │ └── get-labels.pipe.ts │ │ │ └── fileExtension.ts │ │ ├── core │ │ │ ├── interfaces │ │ │ │ ├── index.js │ │ │ │ └── request-params.ts │ │ │ ├── index.ts │ │ │ ├── constants │ │ │ │ ├── index.ts │ │ │ │ └── localStorageConstants.ts │ │ │ ├── services │ │ │ │ ├── program.service.ts │ │ │ │ ├── project-report.service.ts │ │ │ │ ├── index.ts │ │ │ │ └── api-utils.service.ts │ │ │ └── guards │ │ │ │ └── deactivate.guard.ts │ │ ├── project │ │ │ ├── category-select │ │ │ │ └── category-select.component.scss │ │ │ ├── project-templateview │ │ │ │ ├── project-templateview.page.scss │ │ │ │ └── project-templateview-routing.module.ts │ │ │ ├── learning-resources │ │ │ │ ├── learning-resources.page.scss │ │ │ │ └── learning-resources.page.html │ │ │ ├── add-programs │ │ │ │ └── add-programs.component.scss │ │ │ ├── item-list-header │ │ │ │ ├── item-list-header.component.html │ │ │ │ ├── item-list-header.component.ts │ │ │ │ └── item-list-header.component.scss │ │ │ ├── sync │ │ │ │ └── sync.page.scss │ │ │ ├── project-edit │ │ │ │ └── project-edit.page.scss │ │ │ ├── attachment-listing │ │ │ │ └── attachment-listing-routing.module.ts │ │ │ ├── create-project │ │ │ │ └── create-project.page.scss │ │ │ ├── project-detail │ │ │ │ └── project-detail.page.scss │ │ │ └── add-entity │ │ │ │ └── add-entity.component.scss │ │ ├── observation │ │ │ ├── observation-home │ │ │ │ └── observation-home.component.scss │ │ │ └── observation-detail │ │ │ │ └── observation-detail.component.scss │ │ ├── all-evidence-list │ │ │ └── all-evidence-list │ │ │ │ └── all-evidence-list.component.scss │ │ ├── project-full-report │ │ │ └── project-full-report │ │ │ │ └── project-full-report.component.scss │ │ ├── reports │ │ │ ├── observation-solution-entity-listing │ │ │ │ ├── observation-solution-entity-listing.component.scss │ │ │ │ └── observation-solution-entity-listing.component.html │ │ │ ├── reports-listing │ │ │ │ ├── reports-listing.component.scss │ │ │ │ └── reports-listing.component.html │ │ │ └── observation-solution-listing │ │ │ │ └── observation-solution-listing.component.scss │ │ ├── imp-suggestions │ │ │ ├── imp-suggestions.page.scss │ │ │ ├── imp-suggestions-routing.module.ts │ │ │ └── imp-suggestions.module.ts │ │ ├── section-listing │ │ │ └── section-listing.page.scss │ │ ├── survey │ │ │ └── survey-home │ │ │ │ └── survey-home.component.scss │ │ ├── deeplink-redirect │ │ │ └── deeplink-redirect │ │ │ │ ├── deeplink-redirect.component.html │ │ │ │ └── deeplink-redirect.component.scss │ │ ├── domain-ecm-listing │ │ │ └── domain-ecm-lsiting │ │ │ │ └── domain-ecm-lsiting.component.scss │ │ ├── programs │ │ │ ├── solution-listing │ │ │ │ └── solution-listing.component.scss │ │ │ └── program-listing │ │ │ │ └── program-listing.component.scss │ │ ├── ecm-listing │ │ │ └── ecm-listing.page.scss │ │ ├── submission-preview │ │ │ └── submission-preview-page │ │ │ │ └── submission-preview-page.component.scss │ │ ├── image-listing │ │ │ └── image-listing │ │ │ │ └── image-listing.component.html │ │ └── generic-reports │ │ │ └── reports │ │ │ └── reports.component.scss │ ├── my-groups │ │ ├── view-more-activity │ │ │ └── view-more-activity.page.scss │ │ ├── activity-dashboard │ │ │ ├── activity-dashboard.page.scss │ │ │ └── activity-dashboard.page.html │ │ ├── activity-toc │ │ │ ├── activity-toc.page.scss │ │ │ └── activity-toc.page.html │ │ ├── group.interface.ts │ │ └── add-activity-to-group │ │ │ ├── add-activity-to-group.page.html │ │ │ └── add-activity-to-group.page.scss │ ├── user-type-selection │ │ └── index.ts │ ├── json-typings.d.ts │ ├── tabs │ │ ├── on-tab-view-will-enter.ts │ │ └── tabs.page.html │ ├── settings │ │ ├── data-sync │ │ │ ├── data-sync-type.enum.ts │ │ │ └── data-sync.component.scss │ │ ├── about-us │ │ │ └── about-us.component.scss │ │ └── settings.page.scss │ ├── download-manager │ │ ├── no-downloads │ │ │ ├── no-downloads.component.scss │ │ │ ├── no-downloads.component.ts │ │ │ └── no-downloads.component.html │ │ ├── download-manager.page.scss │ │ ├── downloads-tab │ │ │ └── downloads-header │ │ │ │ ├── downloads-header.component.scss │ │ │ │ ├── downloads-header.component.ts │ │ │ │ └── downloads-header.component.html │ │ └── download-manager.page.html │ ├── profile │ │ ├── overflow-menu │ │ │ ├── overflow-menu.component.html │ │ │ └── overflow-menu.component.scss │ │ └── certificate-view │ │ │ └── certificate-view.module.ts │ ├── textbook-view-more │ │ └── textbook-view-more.page.scss │ ├── player │ │ └── player-action-handler-delegate.ts │ ├── enrolled-course-details-page │ │ └── course.interface.ts │ ├── active-downloads │ │ └── active-downloads.interface.ts │ ├── resources │ │ ├── relevant-contents │ │ │ └── relevant-contents.page.scss │ │ └── resources-routing.module.ts │ ├── storage-settings │ │ └── storage-settings-interface.ts │ ├── faq-help │ │ └── faq-help.page.spec.data.ts │ ├── sign-in │ │ ├── sign-in-routing.module.ts │ │ └── sign-in.module.ts │ ├── search-filter │ │ └── search-filter.module.ts │ ├── notification │ │ └── notification.page.html │ ├── curriculum-courses │ │ ├── curriculum-courses.page.scss │ │ └── curriculum-courses-routing.module.ts │ ├── collection-detail-etb │ │ ├── textbook-toc │ │ │ └── textbook-toc.scss │ │ └── textbook-toc-service.ts │ └── qrscanner-alert │ │ └── qrscanner-alert.module.ts ├── config │ ├── search-history-namespaces.ts │ └── framework.filters.ts ├── configuration │ ├── configuration.debug.ts │ ├── configuration.prod.ts │ ├── configuration.hmr.ts │ └── configuration.ts ├── zone-flags.ts ├── services │ ├── sunbird-splashscreen │ │ └── splashscreen-action-handler-delegate.ts │ ├── content │ │ ├── content-info.ts │ │ └── content-aggregator-namespaces.ts │ ├── container.services.ts │ ├── android-permissions │ │ └── android-permission.ts │ └── scroll-to.service.ts ├── util │ └── object.util.ts ├── tsconfig.app.json ├── tslint.json ├── tsconfig.spec.json ├── pipes │ ├── csa │ │ └── csa.ts │ ├── filter │ │ └── filter.pipe.ts │ ├── initial │ │ └── initial.ts │ └── translate-html │ │ └── translate-html.ts ├── directives │ └── directives.module.ts ├── hmr.ts ├── guards │ └── is-guest-user.guard.ts └── test.ts ├── scripts ├── helpers │ ├── .gitignore │ └── package.json └── application │ └── SunbirdApplication.java ├── typings ├── cordova.d.ts ├── dayjs.d.ts ├── ionic-plugin-keyboard.d.ts ├── cordova-plugin-printer.d.ts ├── cordova-plugin-codePush.d.ts ├── jjdltc-cordova-plugin-zip.d.ts ├── sb-cordova-plugin-sync.d.ts ├── cordova-plugin-sunbirdsplash.d.ts ├── sb-cordova-plugin-customtabs.d.ts ├── cordova-plugin-awesome-shared-preferences.d.ts └── cordova-plugin-fcm-with-dependecy-updated.d.ts ├── resources ├── ios │ ├── icon │ │ ├── icon.png │ │ ├── icon-20.png │ │ ├── icon-29.png │ │ ├── icon-40.png │ │ ├── icon-50.png │ │ ├── icon-60.png │ │ ├── icon-72.png │ │ ├── icon-76.png │ │ ├── icon@2x.png │ │ ├── icon-1024.png │ │ ├── icon-20@2x.png │ │ ├── icon-20@3x.png │ │ ├── icon-24@2x.png │ │ ├── icon-29@2x.png │ │ ├── icon-29@3x.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-44@2x.png │ │ ├── icon-50@2x.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72@2x.png │ │ ├── icon-76@2x.png │ │ ├── icon-76@3x.png │ │ ├── icon-86@2x.png │ │ ├── icon-98@2x.png │ │ ├── icon-small.png │ │ ├── icon-108@2x.png │ │ ├── icon-27.5@2x.png │ │ ├── icon-83.5@2x.png │ │ ├── icon-small@2x.png │ │ └── icon-small@3x.png │ └── splash │ │ ├── Default-2436h.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default~iphone.png │ │ ├── Default@2x~iphone.png │ │ ├── Default-1792h~iphone.png │ │ ├── Default-2688h~iphone.png │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-Landscape-2436h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~ipad~anyany.png │ │ ├── Default@2x~ipad~comany.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait@~ipadpro.png │ │ ├── Default@2x~iphone~anyany.png │ │ ├── Default@2x~iphone~comany.png │ │ ├── Default@2x~iphone~comcom.png │ │ ├── Default@3x~iphone~anyany.png │ │ ├── Default@3x~iphone~anycom.png │ │ ├── Default@3x~iphone~comany.png │ │ ├── Default-Landscape@~ipadpro.png │ │ ├── Default@2x~universal~anyany.png │ │ ├── Default-Landscape-1792h~iphone.png │ │ └── Default-Landscape-2688h~iphone.png └── android │ ├── icon │ ├── mipmap-hdpi-icon.png │ └── drawable-ldpi-icon.png │ ├── splash │ ├── drawable-hdpi-splash.png │ ├── drawable-ldpi-splash.png │ └── drawable-xhdpi-splash.png │ └── xml │ └── network_security_config.xml ├── config └── webpack.config.js ├── ionic.config.json ├── content-player ├── canvas-telemetry-interface.js └── polyfills.js ├── babel.config.js └── sonar-project.properties /src/assets/styles/base/_sb-icon.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/styles/pages/pages.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/styles/component/_sb-form.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/helpers/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /src/app/components/toc-header/toc-header.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/questionnaire/questionnaire.page.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /typings/cordova.d.ts: -------------------------------------------------------------------------------- 1 | declare var cordova: Cordova; 2 | -------------------------------------------------------------------------------- /src/app/components/content-viewer/content-viewer.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/chart/chart.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/my-groups/view-more-activity/view-more-activity.page.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /typings/dayjs.d.ts: -------------------------------------------------------------------------------- 1 | interface Window { 2 | dayjs: any; 3 | } 4 | -------------------------------------------------------------------------------- /src/app/manage-learn/core/interfaces/index.js: -------------------------------------------------------------------------------- 1 | export * from './request-params'; -------------------------------------------------------------------------------- /src/app/manage-learn/project/category-select/category-select.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/questionnaire/remarks-modal/remarks-modal.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/audio-list/audio-list.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/components/popups/copy-trace-id-popup.ts/copy-trace-id-popup.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/observation/observation-home/observation-home.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/project-templateview/project-templateview.page.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/criteria-list/criteria-list.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/download-share/download-share.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/reports-text/reports-text.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/scatter-chart/scatter-chart.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/user-type-selection/index.ts: -------------------------------------------------------------------------------- 1 | export * from './user-type-selection'; 2 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-details/metadata-details.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/text-type-input/text-type-input.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/all-evidence-list/all-evidence-list/all-evidence-list.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/scrore-report-menus/scrore-report-menus.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/slider-type-input/slider-type-input.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/submission-actions/submission-actions.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/core/index.ts: -------------------------------------------------------------------------------- 1 | export * from './services'; 2 | export * from './constants'; -------------------------------------------------------------------------------- /src/app/manage-learn/project-full-report/project-full-report/project-full-report.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/percentage-column-charts/percentage-column-charts.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './components'; 2 | export * from './generic.popup'; -------------------------------------------------------------------------------- /src/app/manage-learn/core/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './statuses.constant'; 2 | export * from './mimTypes'; -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/remarks/remarks.component.scss: -------------------------------------------------------------------------------- 1 | button { 2 | height: 1.5em; 3 | } 4 | -------------------------------------------------------------------------------- /src/app/json-typings.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.json" { 2 | const value: any; 3 | export default value; 4 | } 5 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/learning-resources/learning-resources.page.scss: -------------------------------------------------------------------------------- 1 | .resource-card{ 2 | padding:5px; 3 | } -------------------------------------------------------------------------------- /src/app/manage-learn/reports/observation-solution-entity-listing/observation-solution-entity-listing.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/audio-list/audio-list.component.html: -------------------------------------------------------------------------------- 1 |

2 | audio-list works! 3 |

4 | -------------------------------------------------------------------------------- /src/app/tabs/on-tab-view-will-enter.ts: -------------------------------------------------------------------------------- 1 | export interface OnTabViewWillEnter { 2 | tabViewWillEnter(); 3 | } 4 | -------------------------------------------------------------------------------- /src/assets/imgs/Help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Help.png -------------------------------------------------------------------------------- /src/assets/imgs/Phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Phone.png -------------------------------------------------------------------------------- /src/assets/imgs/Share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Share.png -------------------------------------------------------------------------------- /src/assets/imgs/book.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/book.gif -------------------------------------------------------------------------------- /src/assets/imgs/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/book.png -------------------------------------------------------------------------------- /src/assets/imgs/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/close.png -------------------------------------------------------------------------------- /src/assets/imgs/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/login.png -------------------------------------------------------------------------------- /src/assets/imgs/sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/sort.png -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /src/assets/imgs/Delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Delete.png -------------------------------------------------------------------------------- /src/assets/imgs/Language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Language.png -------------------------------------------------------------------------------- /src/assets/imgs/Reports.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Reports.png -------------------------------------------------------------------------------- /src/assets/imgs/SD_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/SD_card.png -------------------------------------------------------------------------------- /src/assets/imgs/Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Settings.png -------------------------------------------------------------------------------- /src/assets/imgs/Sign_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Sign_out.png -------------------------------------------------------------------------------- /src/assets/imgs/Update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Update.png -------------------------------------------------------------------------------- /src/assets/imgs/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/folder.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_chat.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_home.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_scan.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-20.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-29.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /src/assets/imgs/Download1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Download1.png -------------------------------------------------------------------------------- /src/assets/imgs/cbse_board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/cbse_board.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_courses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_courses.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_filter.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_import.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_offline.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_profile.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_scanqr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_scanqr.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_search.png -------------------------------------------------------------------------------- /src/assets/imgs/qr_sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/qr_sample.png -------------------------------------------------------------------------------- /src/assets/imgs/timetable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/timetable.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-1024.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-20@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-20@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-24@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-24@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-29@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-29@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-40@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-44@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-44@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-76@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-86@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-86@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-98@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-98@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/page-questions/page-questions.component.scss: -------------------------------------------------------------------------------- 1 | .sectionHeader { 2 | padding: 5px 0; 3 | } -------------------------------------------------------------------------------- /src/assets/dummy/submissionCount.json: -------------------------------------------------------------------------------- 1 | { 2 | "result": false, 3 | "data": { 4 | "noOfSubmissions": 0 5 | } 6 | } -------------------------------------------------------------------------------- /src/assets/imgs/Play_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Play_disable.png -------------------------------------------------------------------------------- /src/assets/imgs/Rating_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Rating_star.png -------------------------------------------------------------------------------- /src/assets/imgs/apple_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/apple_black.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_chat_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_chat_blue.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_home_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_home_blue.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_launcher.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_notebook.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_reference.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_reference.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_scanqrdemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_scanqrdemo.png -------------------------------------------------------------------------------- /src/assets/imgs/no_downloads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/no_downloads.png -------------------------------------------------------------------------------- /typings/ionic-plugin-keyboard.d.ts: -------------------------------------------------------------------------------- 1 | interface CordovaPlugins { 2 | Keyboard: { 3 | isVisible: boolean 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /config/webpack.config.js: -------------------------------------------------------------------------------- 1 | var { dev, prod } = require('webpack'); 2 | 3 | module.exports = { 4 | devtool: 'inline-source-map' 5 | } 6 | -------------------------------------------------------------------------------- /resources/ios/icon/icon-108@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-108@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-27.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-27.5@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-83.5@2x.png -------------------------------------------------------------------------------- /src/app/manage-learn/project/add-programs/add-programs.component.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | margin-top: env(safe-area-inset-top); 3 | } -------------------------------------------------------------------------------- /src/assets/imgs/active_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/active_download.png -------------------------------------------------------------------------------- /src/assets/imgs/default_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/default_circle.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_close.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_link.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_coming_soon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_coming_soon.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_courses_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_courses_blue.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_folder_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_folder_open.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_photo_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_photo_camera.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_profile_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_profile_blue.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_qr_scanner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_qr_scanner1.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_scanqr_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_scanqr_white.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_share_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_share_black.png -------------------------------------------------------------------------------- /src/config/search-history-namespaces.ts: -------------------------------------------------------------------------------- 1 | export enum SearchHistoryNamespaces { 2 | LIBRARY = 'LIBRARY', 3 | COURSE = 'COURSE' 4 | } -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-2436h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-2436h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /src/app/manage-learn/core/interfaces/request-params.ts: -------------------------------------------------------------------------------- 1 | export interface RequestParams { 2 | url: string, 3 | payload?: any 4 | } 5 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/view-detail/view-detail.component.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | margin-top: env(safe-area-inset-top); 3 | } -------------------------------------------------------------------------------- /src/assets/imgs/Users_and_Groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/Users_and_Groups.png -------------------------------------------------------------------------------- /src/assets/imgs/active_download_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/active_download_2x.png -------------------------------------------------------------------------------- /src/assets/imgs/add_member_step_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/add_member_step_1.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_course.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_course.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_filter.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_search.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_keyboard_voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_keyboard_voice.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_notebook_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_notebook_blue.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_profile_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_profile_default.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_settings_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_settings_error.png -------------------------------------------------------------------------------- /src/assets/imgs/subdirectory_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/subdirectory_arrow.png -------------------------------------------------------------------------------- /src/configuration/configuration.debug.ts: -------------------------------------------------------------------------------- 1 | export const configuration = { 2 | production: false, 3 | hmr: false, 4 | debug: true 5 | }; 6 | -------------------------------------------------------------------------------- /src/configuration/configuration.prod.ts: -------------------------------------------------------------------------------- 1 | export const configuration = { 2 | production: true, 3 | hmr: false, 4 | debug: false 5 | }; 6 | -------------------------------------------------------------------------------- /ionic.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SunbirdEd-mobile-app", 3 | "integrations": { 4 | "cordova": {} 5 | }, 6 | "type": "angular" 7 | } 8 | -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/chart/chart.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /src/assets/imgs/ic_action_attachment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_attachment.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_courses_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_courses_disabled.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_download_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_download_disabled.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_library_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_library_disabled.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_offline_orange_lg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_offline_orange_lg.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_offline_white_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_offline_white_sm.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_profile_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_profile_disabled.png -------------------------------------------------------------------------------- /src/assets/styles/layout/layout.scss: -------------------------------------------------------------------------------- 1 | @import "./_sb-container"; 2 | @import "./_sb-footer"; 3 | @import "./_sb-header"; 4 | @import "./_sb-sidebar"; -------------------------------------------------------------------------------- /src/assets/styles/mixins/_mixins.scss: -------------------------------------------------------------------------------- 1 | @import "bourbon"; 2 | @import "media-queries"; 3 | @import "radius-shadow-gradient"; 4 | @import "button"; -------------------------------------------------------------------------------- /src/configuration/configuration.hmr.ts: -------------------------------------------------------------------------------- 1 | export const configuration = { 2 | production: false, 3 | hmr: true, 4 | debug: false 5 | }; 6 | -------------------------------------------------------------------------------- /resources/android/icon/mipmap-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/android/icon/mipmap-hdpi-icon.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /src/app/components/sign-in-card/event-params.interface.ts: -------------------------------------------------------------------------------- 1 | export interface EventParams { 2 | skipSession: boolean; 3 | skipProfile: boolean; 4 | } -------------------------------------------------------------------------------- /src/assets/faq/resources/images/Arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/faq/resources/images/Arrow.png -------------------------------------------------------------------------------- /src/assets/faq/resources/images/Report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/faq/resources/images/Report.png -------------------------------------------------------------------------------- /src/assets/faq/resources/images/UpArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/faq/resources/images/UpArrow.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_observation_category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_observation_category.png -------------------------------------------------------------------------------- /src/assets/imgs/outline-cloud_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/outline-cloud_download.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-1792h~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-1792h~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-2688h~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-2688h~iphone.png -------------------------------------------------------------------------------- /src/assets/imgs/ic_action_filter_applied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/ic_action_filter_applied.png -------------------------------------------------------------------------------- /src/assets/imgs/profile_name_confirmation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/profile_name_confirmation.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-2436h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape-2436h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~ipad~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~ipad~anyany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~ipad~comany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~ipad~comany.png -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/graph-circle/graph-circle.component.scss: -------------------------------------------------------------------------------- 1 | canvas { 2 | width: 80vw !important; 3 | height: 40vh !important; 4 | } 5 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/no-data/no-data.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{message | translate}}
3 |
-------------------------------------------------------------------------------- /src/assets/faq/resources/images/Report_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/faq/resources/images/Report_blue.png -------------------------------------------------------------------------------- /src/assets/fonts/natosans/NotoSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/fonts/natosans/NotoSans-Regular.ttf -------------------------------------------------------------------------------- /src/assets/imgs/outline-cloud_download-24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/src/assets/imgs/outline-cloud_download-24px.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-hdpi-splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/android/splash/drawable-hdpi-splash.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-ldpi-splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/android/splash/drawable-ldpi-splash.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-xhdpi-splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/android/splash/drawable-xhdpi-splash.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Portrait@~ipadpro.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~iphone~anyany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone~comany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~iphone~comany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone~comcom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~iphone~comcom.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@3x~iphone~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@3x~iphone~anyany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@3x~iphone~anycom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@3x~iphone~anycom.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@3x~iphone~comany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@3x~iphone~comany.png -------------------------------------------------------------------------------- /src/app/components/skeleton-item/skeleton-item.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape@~ipadpro.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default@2x~universal~anyany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-1792h~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape-1792h~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-2688h~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sphere/SunbirdEd-mobile-app-1/master/resources/ios/splash/Default-Landscape-2688h~iphone.png -------------------------------------------------------------------------------- /src/app/settings/data-sync/data-sync-type.enum.ts: -------------------------------------------------------------------------------- 1 | export enum DataSyncType { 2 | off = 'OFF', 3 | over_wifi = 'OVER_WIFI_ONLY', 4 | always_on = 'ALWAYS_ON' 5 | } 6 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/item-list-header/item-list-header.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{headerLabel}}
3 |
4 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/date-type-input/date-type-input.component.scss: -------------------------------------------------------------------------------- 1 | .capture { 2 | position: absolute; 3 | right: 0; 4 | top: 0; 5 | z-index: 1; 6 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/footer-buttons/footer-buttons.component.scss: -------------------------------------------------------------------------------- 1 | .btn-disabled{ 2 | --background: #999999 !important; 3 | --border-color: #999999 !important; 4 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/popover/popover.component.scss: -------------------------------------------------------------------------------- 1 | .menu-label{ 2 | font-size: 16px; 3 | } 4 | .avatar-style{ 5 | display: contents; 6 | font-size: x-large; 7 | } -------------------------------------------------------------------------------- /src/zone-flags.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Prevents Angular change detection from 3 | * running with certain Web Component callbacks 4 | */ 5 | (window as any).__Zone_disable_customElements = true; 6 | -------------------------------------------------------------------------------- /src/app/settings/about-us/about-us.component.scss: -------------------------------------------------------------------------------- 1 | .settings-item-style { 2 | -webkit-user-select: text; 3 | -moz-user-select: text; 4 | -ms-user-select: text; 5 | user-select: text; 6 | } -------------------------------------------------------------------------------- /src/app/manage-learn/imp-suggestions/imp-suggestions.page.scss: -------------------------------------------------------------------------------- 1 | .flex-box { 2 | display: flex; 3 | align-items: center; 4 | } 5 | 6 | .justify-content-center { 7 | justify-content: center; 8 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/report-modal-filter/report.modal.filter.scss: -------------------------------------------------------------------------------- 1 | .wrap { 2 | white-space: normal !important; 3 | } 4 | .container { 5 | margin-top: env(safe-area-inset-top); 6 | } 7 | -------------------------------------------------------------------------------- /src/app/components/content-viewer/content-viewer.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/app/manage-learn/section-listing/section-listing.page.scss: -------------------------------------------------------------------------------- 1 | .headerText { 2 | font-weight: 500 !important; 3 | font-size: 1.5rem !important; 4 | display: flex; 5 | align-items: center; 6 | } 7 | -------------------------------------------------------------------------------- /src/app/manage-learn/survey/survey-home/survey-home.component.scss: -------------------------------------------------------------------------------- 1 | .dot { 2 | height: 10px; 3 | width: 10px; 4 | border-radius: 50%; 5 | display: inline-block; 6 | margin: 0 6.2px; 7 | } 8 | -------------------------------------------------------------------------------- /src/assets/styles/base/_borders.scss: -------------------------------------------------------------------------------- 1 | /* Border css */ 2 | .br-0{ 3 | border-radius: 0 !important; 4 | } 5 | .br-4{ 6 | border-radius: 4px; 7 | } 8 | .bl-0{ 9 | border-left: none !important; 10 | } -------------------------------------------------------------------------------- /src/app/components/show-vendor-apps/show-vendor-apps.component.scss: -------------------------------------------------------------------------------- 1 | .app-content { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | } 6 | 7 | .not-available { 8 | filter: grayscale(1); 9 | } -------------------------------------------------------------------------------- /src/services/sunbird-splashscreen/splashscreen-action-handler-delegate.ts: -------------------------------------------------------------------------------- 1 | import { Observable } from 'rxjs'; 2 | 3 | export interface SplashscreenActionHandlerDelegate { 4 | onAction(payload: any): Observable; 5 | } 6 | -------------------------------------------------------------------------------- /typings/cordova-plugin-printer.d.ts: -------------------------------------------------------------------------------- 1 | interface CordovaPlugins { 2 | printer: { 3 | print: (url: string) => void; 4 | canPrintItem: (url: string, callback: (canPrint: boolean) => void) => void; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /src/app/manage-learn/core/services/program.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable({ 4 | providedIn: 'root' 5 | }) 6 | export class ProgramService { 7 | 8 | constructor() { } 9 | } 10 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/hint/hint.component.scss: -------------------------------------------------------------------------------- 1 | .closeBtn { 2 | // color: white !important; 3 | font-size: 24px; 4 | padding-right: 10px; 5 | } 6 | ion-content{ 7 | --background: var(--app-white) !important; 8 | } -------------------------------------------------------------------------------- /typings/cordova-plugin-codePush.d.ts: -------------------------------------------------------------------------------- 1 | declare var codePush: { 2 | sync: (a, b, c) => void; 3 | getCurrentPackage: (a) => void 4 | }; 5 | declare var SyncStatus: { 6 | DOWNLOADING_PACKAGE, 7 | INSTALLING_UPDATE, 8 | ERROR 9 | }; -------------------------------------------------------------------------------- /src/app/components/qr-scanner-ios/qr-scanner-ios.component.scss: -------------------------------------------------------------------------------- 1 | .qrscanner { 2 | --background: transparent !important; 3 | background: transparent !important; 4 | } 5 | 6 | .qr-img { 7 | display: block; 8 | margin: auto; 9 | } -------------------------------------------------------------------------------- /src/assets/styles/layout/_sb-container.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/mixins/_media-queries'; 2 | //Container styles 3 | @include respond-between(xl,xxxl) { 4 | 5 | } 6 | 7 | @include respond-above(xxxl) { 8 | 9 | 10 | } -------------------------------------------------------------------------------- /src/assets/styles/styles.scss: -------------------------------------------------------------------------------- 1 | // base structure 2 | //@import "./mixins/mixins"; 3 | @import "./base/base"; 4 | @import "./component/component"; 5 | //@import "./helpers/helpers"; 6 | @import "./layout/layout"; 7 | //@import "./vendors/vendors"; 8 | -------------------------------------------------------------------------------- /src/app/components/popups/import-popover/import-popover.component.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../assets/styles/base/variables"; 2 | 3 | .sb-popover .sb-popover-footer .sb-popover-action-btn.sb-btn-outline-info { 4 | color: $primary-color; 5 | margin: 0 10px; 6 | } -------------------------------------------------------------------------------- /src/app/manage-learn/deeplink-redirect/deeplink-redirect/deeplink-redirect.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /src/app/manage-learn/reports/reports-listing/reports-listing.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | .dot { 3 | height: 50px; 4 | width: 50px; 5 | display: inline-block; 6 | margin: 0 6.2px; 7 | background-color: $gray-100; 8 | } 9 | -------------------------------------------------------------------------------- /src/app/download-manager/no-downloads/no-downloads.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | :host { 3 | .sb-nodownloads-container{ 4 | margin-top: 10vh; 5 | .sb-nodownloads-title{ 6 | color: #{$gray-400}; 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/app/profile/overflow-menu/overflow-menu.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/manage-learn/core/services/project-report.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable({ 4 | providedIn: 'root', 5 | }) 6 | export class ProjectReportService { 7 | filterForReport: any; 8 | 9 | constructor() {} 10 | } 11 | -------------------------------------------------------------------------------- /src/assets/styles/base/base.scss: -------------------------------------------------------------------------------- 1 | 2 | @import "variables"; 3 | @import "typography"; 4 | @import "borders"; 5 | @import "displays"; 6 | @import "flexbox"; 7 | @import "margins"; 8 | @import "overflows"; 9 | @import "paddings"; 10 | @import "positions"; 11 | @import "texts"; -------------------------------------------------------------------------------- /typings/jjdltc-cordova-plugin-zip.d.ts: -------------------------------------------------------------------------------- 1 | declare var JJzip: { 2 | unzip(sourceZip: string, option, successCallback, errorCallback); 3 | 4 | zip(directoryPath: string, option, directoriesToBeSkipped: string[], filesToBeSkipped: string[], successCallback, errorCallback); 5 | }; 6 | -------------------------------------------------------------------------------- /src/util/object.util.ts: -------------------------------------------------------------------------------- 1 | export class ObjectUtil { 2 | 3 | public static isJSON(input): boolean { 4 | try { 5 | JSON.parse(input); 6 | return true; 7 | } catch (e) { 8 | return false; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/radio-type-input/radio-type-input.component.scss: -------------------------------------------------------------------------------- 1 | .help { 2 | font-size: 30px; 3 | z-index: 557; 4 | margin-right: 15px; 5 | position: absolute; 6 | color: grey; 7 | } 8 | 9 | .label { 10 | justify-content: flex-start; 11 | } 12 | -------------------------------------------------------------------------------- /src/assets/imgs/darkmode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /typings/sb-cordova-plugin-sync.d.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | declare var sbsync: { 3 | 4 | sync: (success: 5 | (callbackUrl: any) => void, error: (error: string) => void) => void; 6 | 7 | onSyncSucces: (sucess: (data: any) => void, error?: (error: any) => void) => void; 8 | }; -------------------------------------------------------------------------------- /src/app/download-manager/download-manager.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_variables.scss"; 3 | 4 | .sb-dw-manager{ 5 | background-color: #{$light-blue-bg}; 6 | border-bottom: 2px solid map-get($colors, white); 7 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/filter-modal/filter-modal.component.scss: -------------------------------------------------------------------------------- 1 | .type-filter-container { 2 | display: flex; 3 | justify-content: center; 4 | text-transform: capitalize; 5 | font-size: 22px; 6 | } 7 | .container { 8 | margin-top: env(safe-area-inset-top); 9 | } 10 | -------------------------------------------------------------------------------- /src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "types": [ 6 | "node" 7 | ] 8 | }, 9 | "exclude": [ 10 | "test.ts", 11 | "**/*.spec.ts", 12 | "**/*.spec.data.ts" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-actions/metadata-actions.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .card-icons { 4 | font-size: 30px; 5 | } 6 | 7 | .primary { 8 | color: $blue; 9 | } 10 | 11 | .success { 12 | color: $green; 13 | } -------------------------------------------------------------------------------- /src/assets/styles/base/_overflows.scss: -------------------------------------------------------------------------------- 1 | /* Overflow CSS*/ 2 | .o-y-auto { 3 | overflow-y: auto !important 4 | } 5 | .o-x-hide { 6 | overflow-x: hidden!important 7 | } 8 | .o-y-hide { 9 | overflow-y: hidden!important 10 | } 11 | .o-y-scroll { 12 | overflow-y: scroll!important 13 | } -------------------------------------------------------------------------------- /src/app/components/dashboard/dashboard.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .dashlet-table-container{ 4 | padding: 8px; 5 | } 6 | .ad-dw{ 7 | color: $blue; 8 | font-weight: bold; 9 | } 10 | .ad-csv-btn{ 11 | position: relative; 12 | bottom: 10px; 13 | } -------------------------------------------------------------------------------- /src/app/profile/overflow-menu/overflow-menu.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | 3 | :host { 4 | ion-list { 5 | padding: 0; 6 | ion-item { 7 | --min-height: 40px; 8 | --padding-start: 8px; 9 | --padding-end: 0; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/multiple-type-input/multiple-type-input.component.scss: -------------------------------------------------------------------------------- 1 | .help { 2 | font-size: 30px; 3 | z-index: 557; 4 | margin-right: 15px; 5 | position: absolute; 6 | color: grey; 7 | // right: 0; 8 | } 9 | 10 | .label { 11 | justify-content: flex-start; 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/common-header/common-header.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
{{ title | titlecase }}
5 |
{{ subTitle }}
6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/common-header/common-header.component.scss: -------------------------------------------------------------------------------- 1 | 2 | .desc { 3 | color: #555; 4 | white-space: normal; 5 | padding: 5px 0px 30px 0px; 6 | margin-bottom: 10px; 7 | } 8 | 9 | .title{ 10 | font-size: 16px; 11 | font-weight: bold; 12 | color: black; 13 | } -------------------------------------------------------------------------------- /src/app/textbook-view-more/textbook-view-more.page.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | .sb-textbook-container{ 3 | width: 100% !important; 4 | } 5 | .sb-card-textbook-container { 6 | margin-bottom: 40px; 7 | } 8 | .sb-textbook-title-container{ 9 | margin-left: 1rem; 10 | margin-top: 1rem; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/helpers/_buttons-list.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// A list of all HTML button elements. 4 | /// 5 | /// @type list 6 | /// 7 | /// @access private 8 | 9 | $_buttons-list: ( 10 | "button", 11 | "[type='button']", 12 | "[type='reset']", 13 | "[type='submit']", 14 | ); 15 | -------------------------------------------------------------------------------- /typings/cordova-plugin-sunbirdsplash.d.ts: -------------------------------------------------------------------------------- 1 | declare var splashscreen: { 2 | show: () => void; 3 | hide: () => void; 4 | setImportProgress: (currentCount, totalCount) => void; 5 | getActions: (successCallback: (actions: string) => void) => void; 6 | markImportDone: () => void; 7 | clearPrefs: () => void; 8 | }; 9 | -------------------------------------------------------------------------------- /src/app/download-manager/downloads-tab/downloads-header/downloads-header.component.scss: -------------------------------------------------------------------------------- 1 | .flex-60{ 2 | flex: 0 0 60%; 3 | } 4 | .flex-40{ 5 | flex: 0 0 40%; 6 | } 7 | @media (max-width: 360px) { 8 | .sb-view-all-title{ 9 | .d-flex{ 10 | font-size: 12px; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/deeplink-redirect/deeplink-redirect/deeplink-redirect.component.scss: -------------------------------------------------------------------------------- 1 | page-deep-link-redirect { 2 | .deeplink-container{ 3 | height: 100%; 4 | display: flex; 5 | flex-direction: column; 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/app/manage-learn/domain-ecm-listing/domain-ecm-lsiting/domain-ecm-lsiting.component.scss: -------------------------------------------------------------------------------- 1 | ._completed, 2 | ._inProgress, 3 | ._submitted,._na { 4 | font-size: 11px !important; 5 | } 6 | ._progressIcon { 7 | font-size: 11px !important; 8 | padding-left: 3px; 9 | } 10 | 11 | .restrict{ 12 | pointer-events:none; 13 | } -------------------------------------------------------------------------------- /src/app/components/add-activity-to-group/add-activity-to-group.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
-------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/no-data/no-data.component.scss: -------------------------------------------------------------------------------- 1 | @import "~@project-sunbird/sb-styles/assets/_variables.scss"; 2 | 3 | .message{ 4 | text-align: center; 5 | margin: auto; 6 | } 7 | .text-primary { 8 | color: var(--primary-color); 9 | } 10 | .text-black { 11 | color: var(--app-black); 12 | } 13 | -------------------------------------------------------------------------------- /content-player/canvas-telemetry-interface.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var send = function send(object, apiName) { 4 | return window.parent.handleAction('send', [object, apiName]); 5 | }; 6 | 7 | window.telemetry = function () { 8 | return { 9 | send: send 10 | }; 11 | }(); 12 | 13 | console.log('telemetry loaded', window.telemetry); -------------------------------------------------------------------------------- /src/assets/dummy/reportTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "Report types fetched successfully.", 3 | "status": 200, 4 | "result": [{ 5 | "label": "Weekly", 6 | "value": 0 7 | }, { 8 | "label": "Monthly", 9 | "value": 1 10 | }, { 11 | "label": "Quarterly", 12 | "value": 2 13 | }] 14 | } -------------------------------------------------------------------------------- /src/app/settings/settings.page.scss: -------------------------------------------------------------------------------- 1 | .settings-item-style { 2 | padding-top:5px; 3 | } 4 | 5 | ion-icon{ 6 | font-size: 22px !important; 7 | font-weight: 550 !important; 8 | } 9 | .item-ios h2 { 10 | line-height: 1.7; 11 | } 12 | 13 | .setting-label { 14 | font-size: 18px; 15 | color: var(--app-light-gray) !important; 16 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_is-color.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS color. 4 | /// 5 | /// @argument {string} $color 6 | /// 7 | /// @return {boolean} 8 | /// 9 | /// @access private 10 | 11 | @function _is-color($color) { 12 | @return (type-of($color) == color) or ($color == "currentColor"); 13 | } 14 | -------------------------------------------------------------------------------- /src/services/content/content-info.ts: -------------------------------------------------------------------------------- 1 | import { TelemetryObject, Rollup, CorrelationData, HierarchyInfo , Course} from 'sunbird-sdk'; 2 | 3 | export interface ContentInfo { 4 | telemetryObject: TelemetryObject; 5 | rollUp: Rollup; 6 | correlationList: CorrelationData[]; 7 | hierachyInfo: HierarchyInfo[]; 8 | course?: Course; 9 | } 10 | -------------------------------------------------------------------------------- /src/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "page", 15 | "kebab-case" 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/app/download-manager/no-downloads/no-downloads.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-no-downloads', 5 | templateUrl: './no-downloads.component.html', 6 | styleUrls: ['./no-downloads.component.scss'], 7 | }) 8 | export class NoDownloadsComponent { 9 | 10 | constructor() { } 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/audio-list/audio-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-audio-list', 5 | templateUrl: './audio-list.component.html', 6 | styleUrls: ['./audio-list.component.scss'], 7 | }) 8 | export class AudioListComponent { 9 | 10 | constructor() { } 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "types": [ 6 | "jasmine", 7 | "node" 8 | ] 9 | }, 10 | "files": [ 11 | "test.ts", 12 | "zone-flags.ts", 13 | "polyfills.ts" 14 | ], 15 | "include": [ 16 | "**/*.spec.ts", 17 | "**/*.d.ts" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /src/services/content/content-aggregator-namespaces.ts: -------------------------------------------------------------------------------- 1 | export enum AggregatorPageType { 2 | COURSE = 'course_v3', 3 | LIBRARY = 'library_v4', 4 | HOME = 'home_v5', 5 | DISCOVER = 'discover_v2', 6 | SEARCH = 'search', 7 | ADMIN_HOME = 'adminHome_v2' 8 | } 9 | 10 | export enum Orientation { 11 | HORIZONTAL = 'horizontal', 12 | VERTICAL = 'vertical' 13 | } 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/bar-chart/bar-chart.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | .heading { 5 | background: #f4f4f4; 6 | padding: 15px 10px; 7 | } 8 | .errorMsg { 9 | color: $gray-400; 10 | text-align: center; 11 | padding: 20px 0; 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-details/metadata-details.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{data?.title}} 4 | {{data?.subTitle}} 5 | 6 | 9 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/pie-chart/pie-chart.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | .heading { 5 | background: #f4f4f4; 6 | padding: 15px 10px; 7 | } 8 | .errorMsg { 9 | color: $gray-400; 10 | text-align: center; 11 | padding: 20px 0; 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/popover/popover.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{menu.TITLE | translate}} 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/question-heading/question-heading.component.scss: -------------------------------------------------------------------------------- 1 | .flexbox { 2 | display: flex; 3 | align-items: baseline; 4 | flex-wrap: nowrap; 5 | } 6 | 7 | .noWrap { 8 | white-space: nowrap; 9 | text-align: justify; 10 | } 11 | 12 | .wrapText { 13 | white-space: wrap; 14 | } 15 | 16 | .help { 17 | font-size: 30px; 18 | color: grey; 19 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/accordion-list/accordion-list.component.scss: -------------------------------------------------------------------------------- 1 | .accordian-card{ 2 | ion-card-header{ 3 | padding:0px; 4 | } 5 | ion-card-content{ 6 | padding:0px; 7 | } 8 | ion-item{ 9 | --background: var(--app-white) !important; 10 | ion-icon{ 11 | font-size: 30px; 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/attachment/attachment.component.scss: -------------------------------------------------------------------------------- 1 | .thumbnail-card { 2 | height: 98px; 3 | display: flex; 4 | justify-content: space-around; 5 | flex-direction: column; 6 | align-items: center; 7 | } 8 | .thumbnail-card ion-icon { 9 | font-size: 3.2em; 10 | } 11 | .attachmentIcon { 12 | margin-top: 10px; 13 | font-size: 50px; 14 | // color: $primary-color; 15 | } 16 | -------------------------------------------------------------------------------- /src/app/my-groups/activity-dashboard/activity-dashboard.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .activity-dashboard-container{ 4 | padding: 8px; 5 | } 6 | .ad-timestamp-container{ 7 | padding: 8px; 8 | color: map-get($colors, primary); 9 | 10 | } 11 | .adb-timestamp{ 12 | color: $gray-300; 13 | position: relative; 14 | top: 20px; 15 | padding-left: 8px; 16 | } -------------------------------------------------------------------------------- /src/app/player/player-action-handler-delegate.ts: -------------------------------------------------------------------------------- 1 | export interface HierarchyInfo { 2 | contentType: string; 3 | identifier: string; 4 | primaryCategory: string; 5 | } 6 | export interface User { 7 | uid: string; 8 | } 9 | export interface PlayerActionHandlerDelegate { 10 | onContentNotFound(identifier: string, hierarchyInfo: Array); 11 | onUserSwitch(user: User); 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/core/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './local-storage/local-storage.service'; 2 | export * from './utils.service'; 3 | export * from './loader/loader.service'; 4 | export * from './toast/toast.service'; 5 | export * from './db.service'; 6 | export * from './attachment/attachment.service'; 7 | export * from './network.service'; 8 | export * from './api-utils.service'; 9 | export * from './project.service'; -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/create-task/create-task.component.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../../assets/styles/_variables.scss"; 2 | .close-popup{ 3 | margin: 10px; 4 | font-size: 24px; 5 | right: 0px; 6 | position: absolute; 7 | } 8 | .P16 { 9 | padding: 16px !important; 10 | h5{ 11 | font-weight: 600; 12 | } 13 | } 14 | .task-desc{ 15 | border:1px solid $gray-400; 16 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/expansion-table/expansion-table.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'expansion-table', 5 | templateUrl: './expansion-table.component.html', 6 | styleUrls: ['./expansion-table.component.scss'], 7 | }) 8 | export class ExpansionTableComponent { 9 | @Input() datas; 10 | 11 | constructor() {} 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/image-upload/image-upload.component.scss: -------------------------------------------------------------------------------- 1 | .attachmentIcon { 2 | margin-top: 10px; 3 | font-size: 50px; 4 | } 5 | 6 | .textAdj { 7 | z-index: 3; 8 | } 9 | 10 | ._closeBtn { 11 | position: absolute; 12 | top: 5px; 13 | right: 10px; 14 | color: red; 15 | z-index: 3; 16 | font-weight: 600; 17 | font-size: 25px; 18 | cursor: pointer; 19 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_is-number.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid number. 4 | /// 5 | /// @argument {number} $value 6 | /// 7 | /// @require {function} _contains 8 | /// 9 | /// @return {boolean} 10 | /// 11 | /// @access private 12 | 13 | @function _is-number($value) { 14 | @return _contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); 15 | } 16 | -------------------------------------------------------------------------------- /src/app/components/pb-horizontal/pb-horizontal.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
-------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/matrix-chart/matrix-chart.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | 5 | .heading { 6 | background: #f4f4f4; 7 | padding: 15px 10px; 8 | } 9 | .matrixContainer { 10 | border: 1px solid $gray-400; 11 | 12 | // background: $medium-grey-color; 13 | } 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/pipe/camel-to-title.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'camelToTitle' 5 | }) 6 | export class CamelToTitlePipe implements PipeTransform { 7 | 8 | transform(value: any, ...args: unknown[]): unknown { 9 | let newStr = value.replace(/([A-Z])/g, " $1"); 10 | return newStr.charAt(0).toUpperCase() + newStr.slice(1); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_strip-unit.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Strips the unit from a number. 4 | /// 5 | /// @argument {number} $value 6 | /// 7 | /// @return {number (unitless)} 8 | /// 9 | /// @example scss 10 | /// $dimension: strip-unit(10em); 11 | /// 12 | /// // Output 13 | /// $dimension: 10; 14 | 15 | @function strip-unit($value) { 16 | @return ($value / ($value * 0 + 1)); 17 | } 18 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/no-data/no-data.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-no-data', 5 | templateUrl: './no-data.component.html', 6 | styleUrls: ['./no-data.component.scss'], 7 | }) 8 | export class NoDataComponent { 9 | @Input() message = 'NO_DATA_FOUND'; 10 | @Input() color = 'text-black'; 11 | constructor() { } 12 | 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/app/my-groups/activity-toc/activity-toc.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .activity-toc-container{ 4 | padding: 16px 0; 5 | } 6 | .activity-course{ 7 | padding: 16px; 8 | box-shadow: 0 2px 4px 0 rgba(0,0,0,0.1); 9 | border-radius: 2px; 10 | font-size: 14px; 11 | color: $blue; 12 | &.active{ 13 | background-color: map-get($colors , light_gray_8c); 14 | } 15 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/expansion-panel/expansion-panel.component.scss: -------------------------------------------------------------------------------- 1 | table { 2 | border-collapse: collapse; 3 | border-spacing: 0; 4 | width: 100%; 5 | border: 1px solid #ddd; 6 | background:white 7 | } 8 | 9 | th, 10 | td { 11 | text-align: left; 12 | padding: 16px; 13 | } 14 | 15 | tr:nth-child(even) { 16 | background-color: #f2f2f2; 17 | } 18 | .expansionPanel { 19 | border-radius: 10px; 20 | } 21 | -------------------------------------------------------------------------------- /src/app/manage-learn/programs/solution-listing/solution-listing.component.scss: -------------------------------------------------------------------------------- 1 | .desc { 2 | color: #555; 3 | white-space: normal; 4 | padding: 5px 0px 30px 0px; 5 | margin-bottom: 10px; 6 | } 7 | 8 | .title{ 9 | font-size: 16px; 10 | font-weight: bold; 11 | color: black; 12 | // margin: 16px 16px 8px; 13 | } 14 | 15 | .list-md { 16 | padding-top: 0px !important; 17 | padding-bottom: 0px !important; 18 | } -------------------------------------------------------------------------------- /src/assets/imgs/ic_course_admin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/pipes/csa/csa.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'csa', 5 | }) 6 | export class CSAPipe implements PipeTransform { 7 | 8 | transform(value: string | string[]) { 9 | if (typeof value === 'string') { 10 | return value; 11 | } else if (value instanceof Array) { 12 | return value.join(', '); 13 | } else { 14 | return value; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/fileExtension.ts: -------------------------------------------------------------------------------- 1 | export const FileExtension = { 2 | videoFormats: ["mp4", "WMV", "WEBM", "flv", "avi", "3GP", "OGG", "m4v"], 3 | audioFormats: ["AIF", "cda", "mpa", "ogg", "wav", "wma", "mp3"], 4 | pptFormats: ["ppt", "pptx", "pps", "ppsx"], 5 | wordFormats: ["docx", "doc", "docm", "dotx"], 6 | imageFormats: ["jpg", "png", "jpeg"], 7 | pdfFormats: ["pdf"], 8 | spreadSheetFormats: ["xls", "xlsx"], 9 | }; 10 | -------------------------------------------------------------------------------- /src/assets/imgs/ic_back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | 4 | const presets = [ 5 | "@babel/env", 6 | "@babel/typescript", 7 | ]; 8 | const plugins = [ 9 | ["@babel/plugin-proposal-decorators", { "legacy": true }], 10 | ["@babel/proposal-class-properties", { "loose": true }], 11 | "@babel/proposal-object-rest-spread", 12 | ]; 13 | 14 | return { 15 | presets, 16 | plugins 17 | }; 18 | }; 19 | -------------------------------------------------------------------------------- /src/app/components/acknowledge-response/acknowledge-response.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
{{'FRMELEMNTS_MSG_TICKET_SUBMISSION_SUCCESS' | translate: {'app_name': appName} }}
6 |
7 |
8 |
-------------------------------------------------------------------------------- /src/app/components/profile-avatar/profile-avatar.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | {{initial | titlecase}} 6 | 7 |
8 |
9 | 10 | {{initial | titlecase}} 11 | 12 |
-------------------------------------------------------------------------------- /src/app/download-manager/no-downloads/no-downloads.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 |

7 | {{ 'NO_DOWNLOADS' | translate }} 8 |

9 |

{{ 'NO_DOWNLOADS_INFO' | translate }}

10 |
11 |
-------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/common-header/common-header.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-common-header', 5 | templateUrl: './common-header.component.html', 6 | styleUrls: ['./common-header.component.scss'], 7 | }) 8 | export class CommonHeaderComponent { 9 | @Input() title: any; 10 | @Input() subTitle: any; 11 | 12 | constructor() { } 13 | 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/entityfilter/entityfilter.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/_variables.scss'; 2 | 3 | .seacrhInput { 4 | padding-left: 15px; 5 | border: 1px solid $gray-100 !important; 6 | // background-color: $white-color !important; 7 | } 8 | .toolbar-background-md { 9 | background-color: $white-color; 10 | } 11 | .serachBar { 12 | flex: 1; 13 | } 14 | .labelAdj { 15 | color: $black-color !important; 16 | } 17 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/expansion-panel/expansion-panel.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'expansion-panel', 5 | templateUrl: './expansion-panel.component.html', 6 | styleUrls: ['./expansion-panel.component.scss'], 7 | }) 8 | export class ExpansionPanelComponent { 9 | text: string; 10 | @Input() datas; 11 | isOpenIndex; 12 | 13 | constructor() {} 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/assets/imgs/ic_back_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/graph-circle/graph-circle.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 12 | 13 |
14 |
15 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_contains-falsy.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list does not contain any values. 4 | /// 5 | /// @argument {list} $list 6 | /// The list to check against. 7 | /// 8 | /// @return {boolean} 9 | /// 10 | /// @access private 11 | 12 | @function _contains-falsy($list) { 13 | @each $item in $list { 14 | @if not $item { 15 | @return true; 16 | } 17 | } 18 | 19 | @return false; 20 | } 21 | -------------------------------------------------------------------------------- /typings/sb-cordova-plugin-customtabs.d.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | declare var customtabs: { 3 | isAvailable: (success: () => void, error: (error: string) => void) => void; 4 | launch: (url: string, success: (callbackUrl: string) => void, error: (error: string) => void) => void; 5 | launchInBrowser: (url: string, success: (callbackUrl: string) => void, error: (error: string) => void) => void; 6 | close: (success: () => void, error: (error: string) => void) => void; 7 | }; 8 | -------------------------------------------------------------------------------- /src/app/enrolled-course-details-page/course.interface.ts: -------------------------------------------------------------------------------- 1 | import { Batch, TelemetryObject, Rollup, CorrelationData } from 'sunbird-sdk'; 2 | 3 | 4 | export interface EnrollCourse { 5 | userId: string; 6 | batch: Batch | any; 7 | pageId: string; 8 | courseId?: string; 9 | telemetryObject?: TelemetryObject; 10 | objRollup?: Rollup; 11 | corRelationList?: Array; 12 | channel?: string; 13 | userConsent?: string; 14 | } 15 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/item-list-header/item-list-header.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-item-list-header', 5 | templateUrl: './item-list-header.component.html', 6 | styleUrls: ['./item-list-header.component.scss'], 7 | }) 8 | export class ItemListHeaderComponent implements OnInit { 9 | @Input() headerLabel: any; 10 | constructor() { } 11 | 12 | ngOnInit() {} 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-details/metadata-details.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit,Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-metadata-details', 5 | templateUrl: './metadata-details.component.html', 6 | styleUrls: ['./metadata-details.component.scss'], 7 | }) 8 | export class MetadataDetailsComponent implements OnInit { 9 | @Input() data; 10 | constructor() { } 11 | 12 | ngOnInit() {} 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/popover/popover.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { popoverController } from '@ionic/core'; 3 | @Component({ 4 | selector: 'app-popover', 5 | templateUrl: './popover.component.html', 6 | styleUrls: ['./popover.component.scss'], 7 | }) 8 | export class PopoverComponent { 9 | @Input() menus; 10 | 11 | onEvent(menu) { 12 | popoverController.dismiss(menu.VALUE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/app/components/popups/toast-navigation/toast-navigation.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | {{message}} 5 |
6 |
7 | {{description}} 8 |
9 |
10 | 12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/progress-bar/progress-bar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'progress-bar', 5 | templateUrl: './progress-bar.component.html', 6 | styleUrls: ['./progress-bar.component.scss'], 7 | }) 8 | export class ProgressBarComponent { 9 | 10 | @Input() progress = 0; 11 | @Input()total = 0; 12 | @Input()completed = 0; 13 | @Input() showTracker ; 14 | 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/app/components/add-activity-to-group/add-activity-to-group.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .add-to-group-button { 4 | background-color: $blue; 5 | border: none; 6 | color: white; 7 | text-align: center; 8 | text-decoration: none; 9 | display: inline-block; 10 | font-size: 16px; 11 | cursor: pointer; 12 | outline: none; 13 | margin: 4px 0 8px; 14 | width: 90%; 15 | padding: 16px 0 16px 0; 16 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/survey-msg/survey-msg.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins'; 3 | @import 'src/assets/styles/base/_variables.scss'; 4 | 5 | .top-back-button { 6 | font-size: 20px; 7 | @include rtl() { 8 | float: right; 9 | } 10 | } 11 | img { 12 | width: 70%; 13 | } 14 | 15 | .lightMessage { 16 | font-weight: 200; 17 | color: $gray-400; 18 | text-align: center; 19 | } 20 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-progress-loader/sb-progress-loader.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .content { 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | flex-direction: column; 8 | height: 100vh; 9 | width: 100vw; 10 | 11 | .progress { 12 | width: 70vw; 13 | margin-bottom: 10px; 14 | } 15 | .load-status { 16 | margin-top: 5px; 17 | font-size: 19px; 18 | font-weight: bold; 19 | } 20 | } -------------------------------------------------------------------------------- /src/app/manage-learn/core/constants/localStorageConstants.ts: -------------------------------------------------------------------------------- 1 | export const localStorageConstants = { 2 | PROJECT_META_FORM: "projectForm", 3 | TASK_META_FORM: "taskForm", 4 | PROFILE_DATA:"profileData", 5 | DYNAMIC_LINKS: "dynamicLinks", 6 | SYNC_VARIABLE: "syncSettings", 7 | FIRST_TIME: "FirstTime", 8 | USER_DETAILS:"usersInfo", 9 | SELECTED_LANGUAGE: "selectedLanguage", 10 | LIBRARY_CATEGORIES:"libraryCategories", 11 | FILE_LIMIT:30000000 12 | }; -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_is-length.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS length. 4 | /// 5 | /// @argument {string} $value 6 | /// 7 | /// @return {boolean} 8 | /// 9 | /// @access private 10 | 11 | @function _is-length($value) { 12 | @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc" 13 | or index(auto inherit initial 0, $value) 14 | or (type-of($value) == "number" and not(unitless($value)))); 15 | } 16 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-download-popup/sb-download-popup.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | 3 | :host { 4 | .sb-progress-percent-text { 5 | color: $primary-color; 6 | font-size: $h5-font-size; 7 | line-height: 22px; 8 | } 9 | .p-0 { 10 | padding: 0 !important; 11 | } 12 | .sb-popover-download.collapsed { 13 | z-index: 9; 14 | } 15 | .sb-popover-title-collapsed{ 16 | text-align: left !important; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-progress-loader/sb-progress-loader.page.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | book 4 | 5 |

{{'LOADER_PROGRESS_DESCRIPTION' | translate}}

6 |

{{'LOADER_PROGRESS_DESC_SUB_HEADING' | translate}}

7 |
8 |
9 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_is-size.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS size. 4 | /// 5 | /// @argument {string} $value 6 | /// 7 | /// @return {boolean} 8 | /// 9 | /// @require {function} _contains 10 | /// 11 | /// @require {function} _is-length 12 | /// 13 | /// @access private 14 | 15 | @function _is-size($value) { 16 | @return _is-length($value) 17 | or _contains("fill" "fit-content" "min-content" "max-content", $value); 18 | } 19 | -------------------------------------------------------------------------------- /src/pipes/filter/filter.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'filter', 5 | pure: false 6 | }) 7 | export class FilterPipe implements PipeTransform { 8 | 9 | transform(list: any, searchKey: string, searchValue: string): any { 10 | if (!searchKey || !searchValue || !list) { 11 | return list; 12 | } 13 | return list.filter((item) => item[searchKey].toLowerCase().includes(searchValue.toLowerCase())); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/assets/styles/layout/_sb-header.scss: -------------------------------------------------------------------------------- 1 | /* Sb-Header Component Styling */ 2 | .sb-header { 3 | .bar-buttons-md.sb-hamburger,.bar-buttons-ios.sb-hamburger { 4 | -webkit-box-ordinal-group: 4; 5 | -webkit-order: 3; 6 | -ms-flex-order: 3; 7 | order: 3; 8 | } 9 | .toolbar-ios { 10 | padding:0px; 11 | } 12 | .toolbar-background.toolbar-background-md,.toolbar-background.toolbar-background-ios{ 13 | background: $white; 14 | } 15 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/utilities/_fetch-bourbon-setting.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Return a Bourbon setting. 4 | /// 5 | /// @argument {string} $setting 6 | /// 7 | /// @return {boolean | color | list | number | string} 8 | /// 9 | /// @example scss 10 | /// _fetch-bourbon-setting(rails-asset-pipeline) 11 | /// 12 | /// @access private 13 | 14 | @function _fetch-bourbon-setting($setting) { 15 | @return map-get(map-merge($_bourbon-defaults, $bourbon), $setting); 16 | } 17 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/matrix-type-input/matrix-type-input.component.scss: -------------------------------------------------------------------------------- 1 | ion-fab { 2 | bottom: 80px !important; 3 | position: fixed; 4 | z-index: 1; 5 | } 6 | .deletOption { 7 | color: #808080; 8 | } 9 | .modified { 10 | color: #808080; 11 | font-size: 13px; 12 | margin-top: 5px; 13 | } 14 | .conatiner{ 15 | flex-direction: column; 16 | align-items:flex-start; 17 | flex:1 18 | } 19 | 20 | .alignBtn { 21 | justify-content: flex-end; 22 | } -------------------------------------------------------------------------------- /src/app/components/application-header/application-header-kebab-menu.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_custom-mixins.scss"; 3 | @import "src/assets/styles/_variables.scss"; 4 | 5 | :host { 6 | .item.item-block { 7 | border-bottom: 2px solid map-get($colors, gray_light); 8 | &:last-child { 9 | border-bottom: 0px; 10 | } 11 | } 12 | 13 | .list-md .item-block .item-inner { 14 | border-bottom: 0px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/pipe/search.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'search', 5 | }) 6 | export class SearchPipe implements PipeTransform { 7 | transform(value: any, args?: any): any { 8 | if (!value) return null; 9 | if (!args) return value; 10 | 11 | args = args.toLowerCase(); 12 | 13 | return value.filter(function (item) { 14 | return JSON.stringify(item).toLowerCase().includes(args); 15 | }); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/app/manage-learn/programs/program-listing/program-listing.component.scss: -------------------------------------------------------------------------------- 1 | .desc { 2 | color: #555; 3 | white-space: normal; 4 | padding: 5px 0px 30px 0px; 5 | margin-bottom: 10px; 6 | } 7 | 8 | .title{ 9 | font-size: 16px; 10 | font-weight: bold; 11 | // color: $black; 12 | color: black; 13 | } 14 | 15 | .list-md { 16 | padding-top: 0px !important; 17 | padding-bottom: 0px !important; 18 | } 19 | 20 | .button-native { 21 | background: #DFE7F1 !important; 22 | } -------------------------------------------------------------------------------- /src/app/manage-learn/project/learning-resources/learning-resources.page.html: -------------------------------------------------------------------------------- 1 | 2 | 4 |
5 | 6 |
7 |
8 | 9 |
10 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/project-details-card/project-details-card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit,Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-project-details-card', 5 | templateUrl: './project-details-card.component.html', 6 | styleUrls: ['./project-details-card.component.scss'], 7 | }) 8 | export class ProjectDetailsCardComponent implements OnInit { 9 | @Input() data:any; 10 | @Input() categories = []; 11 | constructor() {} 12 | 13 | ngOnInit() {} 14 | } 15 | -------------------------------------------------------------------------------- /src/app/active-downloads/active-downloads.interface.ts: -------------------------------------------------------------------------------- 1 | import { ContentDownloadRequest, DownloadRequest } from 'sunbird-sdk'; 2 | import { OnInit } from '@angular/core'; 3 | import { Observable } from 'rxjs'; 4 | 5 | export interface ActiveDownloadsInterface extends OnInit { 6 | activeDownloadRequests$: Observable; 7 | 8 | cancelAllDownloads(): void; 9 | cancelDownload(downloadRequest: DownloadRequest): void; 10 | 11 | getContentDownloadProgress(contentId: string): number; 12 | } 13 | -------------------------------------------------------------------------------- /src/app/manage-learn/imp-suggestions/imp-suggestions-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | 4 | import { ImpSuggestionsPage } from './imp-suggestions.page'; 5 | 6 | const routes: Routes = [ 7 | { 8 | path: '', 9 | component: ImpSuggestionsPage 10 | } 11 | ]; 12 | 13 | @NgModule({ 14 | imports: [RouterModule.forChild(routes)], 15 | exports: [RouterModule], 16 | }) 17 | export class ImpSuggestionsPageRoutingModule {} 18 | -------------------------------------------------------------------------------- /src/assets/styles/component/component.scss: -------------------------------------------------------------------------------- 1 | @import "./_sb-breadcrumb"; 2 | @import "./_sb-buttons"; 3 | @import "./_sb-card"; 4 | @import "./_sb-form"; 5 | @import "./_sb-search"; 6 | @import "./sb-slider-pills"; 7 | @import "./sb-popover"; 8 | @import "./_sb-collection-accordian"; 9 | @import "./_sb-content-info"; 10 | @import "./_sb-content-player"; 11 | @import "./_sb-detail-card"; 12 | @import "./_sb-rating"; 13 | @import "./sb-offline-comp"; 14 | @import "./sb-offline-toast"; 15 | @import "./sb-popover-download"; 16 | -------------------------------------------------------------------------------- /src/assets/styles/component/_sb-rating.scss: -------------------------------------------------------------------------------- 1 | /* Sb-Rating Component Styling */ 2 | ul { 3 | @include padding($base-block-space); 4 | &.rating li { 5 | @include padding($base-block-space); 6 | background: none; 7 | color: $info-color; 8 | ion-icon { 9 | font-size: (($font-size-base * 3) - 2); 10 | } 11 | } 12 | } 13 | .sb-line { 14 | box-sizing: border-box; 15 | height: 1px; 16 | border: 0.5px 17 | solid $primary-300; 18 | } -------------------------------------------------------------------------------- /src/pipes/initial/initial.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | import GraphemeSplitter from 'grapheme-splitter'; 3 | 4 | @Pipe( 5 | { name: 'initial' } 6 | ) 7 | 8 | export class InitialPipe implements PipeTransform { 9 | transform(value) { 10 | let initial = ''; 11 | if (value) { 12 | const splitter = new GraphemeSplitter(); 13 | const split: string[] = splitter.splitGraphemes(value.trim()); 14 | initial = split[0]; 15 | } 16 | return initial; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/app/resources/relevant-contents/relevant-contents.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/variables"; 2 | @import "src/assets/styles/_custom-mixins"; 3 | @import "src/assets/styles/fonts"; 4 | 5 | .rc-title { 6 | margin: 8px; 7 | font-weight: bold; 8 | } 9 | 10 | .rc-bg-color { 11 | background-color: map-get($colors, white_f2) 12 | } 13 | 14 | ion-button { 15 | --background: #{$blue} !important; 16 | height: 40px !important; 17 | } 18 | 19 | .no-content-msg { 20 | text-align: center; 21 | padding-top: 30%; 22 | } -------------------------------------------------------------------------------- /src/app/storage-settings/storage-settings-interface.ts: -------------------------------------------------------------------------------- 1 | import { OnInit } from '@angular/core'; 2 | import { Observable } from 'rxjs'; 3 | 4 | export interface StorageSettingsInterface extends OnInit { 5 | 6 | isExternalMemoryAvailable: boolean; 7 | 8 | totalExternalMemorySize: string; 9 | 10 | totalInternalMemorySize: string; 11 | 12 | availableExternalMemorySize: number; 13 | 14 | availableInternalMemorySize: number; 15 | 16 | spaceTakenBySunbird$: Observable; 17 | 18 | attemptTransfer(); 19 | } 20 | -------------------------------------------------------------------------------- /src/app/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './confirm-alert/confirm-alert.component'; 2 | export * from './content-actions/content-actions.component'; 3 | export * from './content-rating-alert/content-rating-alert.component'; 4 | export * from './pb-horizontal/pb-horizontal.component'; 5 | export * from './sign-in-card/sign-in-card.component'; 6 | export * from './collection-child/collection-child.component'; 7 | export * from './rating-alert/rating-alert.component'; 8 | export * from './content-rating-alert/content-rating-alert.component'; 9 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/survey-msg/survey-msg.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 8 |
9 |
10 | Thanks 11 |

{{ data?.msg }}

12 |
13 |
14 | -------------------------------------------------------------------------------- /src/app/components/discover/discover.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .search-info { 4 | display: flex; 5 | .title { 6 | font-size: 24px; 7 | } 8 | .description { 9 | color: #333333; 10 | } 11 | .search-img { 12 | width: 40%; 13 | border-radius: 50%; 14 | background-color: #555; 15 | } 16 | } 17 | 18 | .search-input { 19 | background: white; 20 | border-radius: 4px; 21 | border: 1px solid #555; 22 | } 23 | 24 | .label { 25 | font-size: 18px; 26 | font-weight: 700; 27 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-actions/metadata-actions.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 10 |
11 |
-------------------------------------------------------------------------------- /src/app/manage-learn/project/item-list-header/item-list-header.component.scss: -------------------------------------------------------------------------------- 1 | h5 { 2 | position: relative; 3 | } 4 | 5 | h5 span { 6 | background-color: var(--app-primary-background); 7 | padding-right: 10px; 8 | } 9 | 10 | h5:after { 11 | content: ""; 12 | position: absolute; 13 | bottom: 0; 14 | left: 0; 15 | right: 0; 16 | height: 0.76em; 17 | border-top: 3px solid yellow; 18 | z-index: -1; 19 | } 20 | .projects-labels{ 21 | font-weight: 600; 22 | margin: 20px 0px; 23 | } -------------------------------------------------------------------------------- /src/app/manage-learn/project/project-templateview/project-templateview-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | 4 | import { ProjectTemplateviewPage } from './project-templateview.page'; 5 | 6 | const routes: Routes = [ 7 | { 8 | path: '', 9 | component: ProjectTemplateviewPage 10 | } 11 | ]; 12 | 13 | @NgModule({ 14 | imports: [RouterModule.forChild(routes)], 15 | exports: [RouterModule], 16 | }) 17 | export class ProjectTemplateviewPageRoutingModule {} 18 | -------------------------------------------------------------------------------- /src/assets/dummy/surveylisting.json: -------------------------------------------------------------------------------- 1 | { 2 | "message": "survey list fetched successfully", 3 | "status": 200, 4 | "result": [{ 5 | "name": "Survey and feedback ios test solution", 6 | "status": "active", 7 | "solutionId": "5f992882be0e60389529e345" 8 | }, { 9 | "solutionId": "5fe45212b4eacd03141f89d2", 10 | "surveyId": "5fe45777c567d70331fc46b5", 11 | "status": "started", 12 | "submissionId": "5fe45777c567d70331fc46b6", 13 | "name": "Survey of Diksha awareness - Test" 14 | }] 15 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/hint/hint.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ 'FRMELEMENTS_LBL_HINT' | translate }} 4 | 5 | 6 | 7 | 8 | 9 |   10 | 11 | 12 | 13 | {{ hint }} 14 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/scatter-chart/scatter-chart.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{ questionNumber }}) {{ data?.question }}

4 |
5 |
6 |

{{ questionNumber }}. {{ data?.schoolName }}

7 |
8 |
9 |
10 |
11 | 12 |
No data found
13 |
14 | -------------------------------------------------------------------------------- /src/app/my-groups/activity-toc/activity-toc.page.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | {{mainCourseName}} 4 |
5 |
8 | {{course.name}} 9 |
10 |
-------------------------------------------------------------------------------- /src/app/components/popups/sb-no-network-popup/sb-no-network-popup.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { PopoverController } from '@ionic/angular'; 3 | 4 | @Component({ 5 | selector: 'sb-no-network-popup', 6 | templateUrl: 'sb-no-network-popup.component.html' 7 | }) 8 | export class SbNoNetworkPopupComponent { 9 | sbPopoverHeading = ''; 10 | sbPopoverMessage = ''; 11 | 12 | constructor(private popoverCtrl: PopoverController) { 13 | } 14 | 15 | closePopover() { 16 | this.popoverCtrl.dismiss(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/app/faq-help/faq-help.page.spec.data.ts: -------------------------------------------------------------------------------- 1 | export const mockFaqData = { 2 | constants: {}, 3 | faqs: [ 4 | { 5 | topic: '{{APP_NAME}}', 6 | description: '{{APP_NAME}}', 7 | 8 | },{ 9 | topic: 'AppName', 10 | description: 'AppName', 11 | 12 | } 13 | ] 14 | }; 15 | 16 | export const expectedFaqs = [ 17 | { 18 | topic: 'AppName', 19 | description: 'AppName', 20 | 21 | },{ 22 | topic: 'AppName', 23 | description: 'AppName', 24 | 25 | } 26 | ] -------------------------------------------------------------------------------- /src/app/manage-learn/shared/pipe/get-labels.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | @Pipe({ 4 | name: 'getLabels', 5 | }) 6 | export class GetLabelsPipe implements PipeTransform { 7 | transform(value: string, ...args) { 8 | return this.getLabels(value); 9 | } 10 | getLabels(question) { 11 | const labels = []; 12 | for (const option of question.options) { 13 | if (question.value.indexOf(option.value) > -1) { 14 | labels.push(option.label); 15 | } 16 | } 17 | return labels; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/app/sign-in/sign-in-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | import { SignInWithApple } from '@ionic-native/sign-in-with-apple/ngx'; 4 | 5 | import { SignInPage } from './sign-in.page'; 6 | 7 | const routes: Routes = [ 8 | { 9 | path: '', 10 | component: SignInPage 11 | } 12 | ]; 13 | 14 | @NgModule({ 15 | imports: [RouterModule.forChild(routes)], 16 | exports: [RouterModule], 17 | providers: [SignInWithApple] 18 | }) 19 | export class SignInPageRoutingModule {} 20 | -------------------------------------------------------------------------------- /src/app/download-manager/downloads-tab/downloads-header/downloads-header.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import { AppStorageInfo } from './../../download-manager.interface'; 3 | 4 | 5 | @Component({ 6 | selector: 'app-downloads-header', 7 | templateUrl: './downloads-header.component.html', 8 | styleUrls: ['./downloads-header.component.scss'], 9 | }) 10 | export class DownloadsHeaderComponent { 11 | 12 | @Input() storageInfo: AppStorageInfo; 13 | @Input() appName: string; 14 | 15 | constructor() { } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/app/manage-learn/ecm-listing/ecm-listing.page.scss: -------------------------------------------------------------------------------- 1 | 2 | .doneIcon { 3 | color: green; 4 | } 5 | 6 | // .startSurvey { 7 | // color: $primary-color; 8 | 9 | // } 10 | 11 | ion-icon { 12 | font-size: 2rem; 13 | } 14 | 15 | 16 | .headerText { 17 | font-weight: 500 !important; 18 | font-size: 1.5rem !important; 19 | display: flex; 20 | align-items: center; 21 | 22 | } 23 | 24 | .feedBack { 25 | color: white !important; 26 | font-size: 24px; 27 | padding-right: 10px 28 | } 29 | 30 | .progressWidth { 31 | min-width: 90px; 32 | } -------------------------------------------------------------------------------- /scripts/helpers/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "helpers", 3 | "version": "1.0.0", 4 | "description": "Helper Project for sunbird", 5 | "main": "./dist/index.js", 6 | "scripts": { 7 | "build": "tsc && node ./dist/index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "vinayagasundar", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "ts-simple-ast": "^7.1.0", 14 | "typescript": "^2.7.2", 15 | "xml-parser": "^1.2.1" 16 | }, 17 | "dependencies": { 18 | "@types/xml-parser": "^1.2.29" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/matrix-chart/matrix-chart.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, EventEmitter, Input, Output } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'matrix-chart', 5 | templateUrl: './matrix-chart.component.html', 6 | styleUrls: ['./matrix-chart.component.scss'], 7 | }) 8 | export class MatrixChartComponent { 9 | @Input() data; 10 | @Input() questionNumber; 11 | @Output() allEvidence = new EventEmitter(); 12 | constructor() {} 13 | 14 | 15 | allEvidenceClick($event) { 16 | this.allEvidence.emit($event); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to include a clearfix for containing floats. 4 | /// 5 | /// @link https://goo.gl/yP5hiZ 6 | /// 7 | /// @example scss 8 | /// .element { 9 | /// @include clearfix; 10 | /// } 11 | /// 12 | /// // CSS Output 13 | /// .element::after { 14 | /// clear: both; 15 | /// content: ""; 16 | /// display: block; 17 | /// } 18 | 19 | @mixin clearfix { 20 | &::after { 21 | clear: both; 22 | content: ""; 23 | display: block; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectName=SunbirdEd-mobile-app 2 | sonar.language=ts 3 | sonar.sources=src/app,src/config,src/directives,src/guards,src/pipes,src/services,src/util 4 | #sonar.tests=src/app/client/src/app/ 5 | #sonar.exclusions=src/assets/**,src/thidparty/**,src/app/modules/offline/** 6 | sonar.typescript.lcov.reportPaths=coverage/lcov.info 7 | sonar.projectKey=Sunbird-Ed_SunbirdEd-mobile-app 8 | sonar.host.url=https://sonarcloud.io 9 | sonar.organization=sunbird-ed 10 | sonar.projectVersion=1.0 11 | sonar.coverage.exclusions=**/*.module.ts, src/app/animations/*.ts 12 | -------------------------------------------------------------------------------- /src/app/components/access-discussion/access-discussion.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | .card-icons{ 3 | margin-right: 10px; 4 | position: relative; 5 | top: 2px; 6 | } 7 | .card-text{ 8 | height: 18px; 9 | width: 63px; 10 | color: map-get($colors, granite_gray); 11 | font-family: "Noto Sans", sans-serif; 12 | font-size: 13px !important; 13 | line-height: 20px; 14 | text-align: center; 15 | } 16 | .card-button{ 17 | background-color: transparent !important; 18 | outline: none; 19 | font-size: 30px; 20 | } -------------------------------------------------------------------------------- /src/app/my-groups/group.interface.ts: -------------------------------------------------------------------------------- 1 | import { CorrelationData, Group, GroupActivity } from '@project-sunbird/sunbird-sdk'; 2 | 3 | 4 | export interface AddActivityToGroup { 5 | groupId: string; 6 | activityId: string; 7 | activityType: string; 8 | pageId: string; 9 | corRelationList: Array; 10 | activityList?: GroupActivity[]; 11 | source?: string; 12 | noOfPagesToRevertOnSuccess?: number; 13 | } 14 | 15 | export interface ActivityData { 16 | group: Group, 17 | activity: any, 18 | isGroupCreatorOrAdmin: boolean 19 | } 20 | -------------------------------------------------------------------------------- /src/config/framework.filters.ts: -------------------------------------------------------------------------------- 1 | export const languageList: Array = [ 2 | 'Assamese', 3 | 'Bengali', 4 | 'English', 5 | 'Gujarati', 6 | 'Hindi', 7 | 'Kannada', 8 | 'Marathi', 9 | 'Punjabi', 10 | 'Tamil', 11 | 'Telugu', 12 | 'Urdu' 13 | ]; 14 | 15 | export const domainList: Array = [ 16 | 'numeracy', 17 | 'literacy', 18 | 'science' 19 | ]; 20 | 21 | export const contentTypeList: Array = [ 22 | 'Story', 23 | 'Worksheet', 24 | 'Collection', 25 | 'LessonPlan', 26 | 'TextBook' 27 | ]; 28 | -------------------------------------------------------------------------------- /src/app/components/pb-horizontal/pb-horizontal.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-pb-horizontal', 5 | templateUrl: './pb-horizontal.component.html', 6 | styleUrls: ['./pb-horizontal.component.scss'], 7 | }) 8 | export class PbHorizontalComponent { 9 | // tslint:disable-next-line:no-input-rename 10 | @Input('progress') progress; 11 | // tslint:disable-next-line:no-input-rename 12 | @Input('isOnBoardCard') isOnBoardCard; 13 | @Input('isCourseProgress') isCourseProgress; 14 | 15 | constructor() {} 16 | } 17 | -------------------------------------------------------------------------------- /src/app/components/popups/group-guidelines-popup/group-guidelines-popup.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | .gg-terms-container{ 3 | padding: 0 16px; 4 | font-size: 14px; 5 | .gg-terms-checkbox-label{ 6 | margin-left: 16px; 7 | display: inline-block; 8 | vertical-align: super; 9 | margin-bottom: 0; 10 | } 11 | .gg-terms{ 12 | color: $blue; 13 | } 14 | } 15 | .cr-error{ 16 | margin-top: 8px; 17 | display: block; 18 | font-size: 12px; 19 | color: $red; 20 | line-height: 10px; 21 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/submission-actions/submission-actions.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ 'FRMELEMNTS_BTN_EDIT' | translate }} 4 | 5 | 6 | {{ 'FRMELEMNTS_BTN_DELETE' | translate }} 7 | 8 | 9 | {{ 'FRMELEMNTS_BTN_VIEW_DETAILS' | translate }} 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/app/components/popups/toast-navigation/toast-navigation.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .toast-container{ 4 | --padding-top: 16px; 5 | --padding-bottom: 16px; 6 | --padding-start: 16px; 7 | --padding-end: 16px; 8 | --background: #{$gray-800}; 9 | --color: #{$white}; 10 | } 11 | 12 | .btn-right{ 13 | float: right; 14 | background-color: map-get($colors, primary_black); 15 | padding: 12px; 16 | color: map-get($colors, vivid_orange); 17 | font-family: "Noto Sans", sans-serif; 18 | font-size: 14px; 19 | text-transform: uppercase; 20 | } -------------------------------------------------------------------------------- /src/app/manage-learn/project/sync/sync.page.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | display: flex; 3 | justify-content: center; 4 | background-color: rgba(0,0,0,.5); 5 | align-items: center; 6 | height: 100%; 7 | } 8 | .innerContainer { 9 | width: 90%; 10 | padding: 25px 15px; 11 | display: flex; 12 | justify-content: center; 13 | // align-items: center; 14 | flex-direction: column; 15 | } 16 | .middleSection{ 17 | margin: 10px 0; 18 | } 19 | .centerAlign { 20 | justify-content: center; 21 | align-items: center; 22 | } 23 | .flexBox { 24 | display: flex; 25 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/percentage-column-charts/percentage-column-charts.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /typings/cordova-plugin-awesome-shared-preferences.d.ts: -------------------------------------------------------------------------------- 1 | interface SharedPreferences { 2 | getString: (key: string, 3 | defaultValue: any, 4 | successCallback: (response: string) => void, 5 | errorCallback: (response: string) => void) => void; 6 | putString: (key: string, value: string, 7 | successCallback: (response: string) => void, 8 | errorCallback: (response: string) => void) => void; 9 | } 10 | 11 | declare var plugins: { 12 | SharedPreferences: { 13 | getInstance: (name: string) => SharedPreferences 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /src/app/components/detail-card/detail-card.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | :host { 3 | 4 | .btn-progress-highlight{ 5 | left: 0px; 6 | background: $primary-800; 7 | height: 5px; 8 | position: absolute; 9 | border-radius: inherit; 10 | border: 0px; 11 | } 12 | 13 | .btn-popover-progress-container{ 14 | position: relative; 15 | border-radius: 33px; 16 | display: inline-block; 17 | background: $primary-200; 18 | height: 5px; 19 | width: 56px; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/app/manage-learn/observation/observation-detail/observation-detail.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | 5 | app-observation-detail { 6 | 7 | } 8 | 9 | .title { 10 | font-size: 16px; 11 | font-weight: bold; 12 | color: #{$blue}; 13 | } 14 | 15 | ion-card-header { 16 | padding-bottom: 2px; 17 | } 18 | 19 | .card-container { 20 | padding-top: 8px; 21 | padding-bottom: 8px; 22 | background: #ffffff; 23 | } 24 | .delete-icon{ 25 | font-size: 22px; 26 | } 27 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/validators/_contains.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list contains a value(s). 4 | /// 5 | /// @argument {list} $list 6 | /// The list to check against. 7 | /// 8 | /// @argument {list} $values 9 | /// A single value or list of values to check for. 10 | /// 11 | /// @return {boolean} 12 | /// 13 | /// @access private 14 | 15 | @function _contains( 16 | $list, 17 | $values... 18 | ) { 19 | @each $value in $values { 20 | @if type-of(index($list, $value)) != "number" { 21 | @return false; 22 | } 23 | } 24 | 25 | @return true; 26 | } 27 | -------------------------------------------------------------------------------- /src/app/components/access-discussion/access-discussion.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/manage-learn/submission-preview/submission-preview-page/submission-preview-page.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | 5 | .question { 6 | font-weight: 500; 7 | } 8 | 9 | .instanceQuest { 10 | background: $gray-100; 11 | border: 1px solid $gray-400; 12 | padding: 10px; 13 | margin: 2px 0; 14 | border-radius: 2px; 15 | } 16 | .instacnce { 17 | margin: 10px 0; 18 | font-weight: 600 !important; 19 | } 20 | 21 | .matrixQuestion { 22 | margin: 20px 0; 23 | } 24 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/metadata-actions/metadata-actions.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit,Input,Output, EventEmitter } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-metadata-actions', 5 | templateUrl: './metadata-actions.component.html', 6 | styleUrls: ['./metadata-actions.component.scss'], 7 | }) 8 | export class MetadataActionsComponent implements OnInit { 9 | @Input() actionItems:any; 10 | @Output() actionEvent = new EventEmitter(); 11 | constructor() { } 12 | 13 | ngOnInit() {} 14 | 15 | action(event){ 16 | this.actionEvent.emit(event); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/hint/hint.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { ModalController, NavParams, Platform } from '@ionic/angular'; 3 | 4 | @Component({ 5 | selector: 'app-hint', 6 | templateUrl: './hint.component.html', 7 | styleUrls: ['./hint.component.scss'], 8 | }) 9 | export class HintComponent { 10 | hint: any; 11 | constructor(private modalCtrl: ModalController, public navParams: NavParams, public platform: Platform) { 12 | this.hint = this.navParams.get('hint'); 13 | } 14 | 15 | cancel(): void { 16 | this.modalCtrl.dismiss(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/assets/styles/rtl_helper.scss: -------------------------------------------------------------------------------- 1 | .float-end { 2 | @include ltr() { 3 | float: right; 4 | } 5 | 6 | @include rtl() { 7 | float: left; 8 | } 9 | } 10 | 11 | .float-start { 12 | @include ltr() { 13 | float: left; 14 | } 15 | 16 | @include rtl() { 17 | float: right; 18 | } 19 | } 20 | 21 | .text-align-start { 22 | @include ltr() { 23 | text-align: left; 24 | } 25 | @include rtl() { 26 | text-align: right; 27 | } 28 | } 29 | 30 | .text-align-end { 31 | @include ltr() { 32 | text-align: right; 33 | } 34 | @include rtl() { 35 | text-align: left; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/app/components/dashboard/dashboard.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 | {{'DOWNLOAD_CSV' | translate}} 7 | 8 | 9 |
10 |
11 |
12 |
-------------------------------------------------------------------------------- /src/app/my-groups/add-activity-to-group/add-activity-to-group.page.html: -------------------------------------------------------------------------------- 1 | 2 |

{{ 'SELECT_ACTIVITY' | translate}}

3 |
4 |
5 | 7 |
8 |
9 |
-------------------------------------------------------------------------------- /src/app/my-groups/activity-dashboard/activity-dashboard.page.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 |
7 |
8 |
9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/helpers/_text-inputs-list.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// A list of all _text-based_ HTML inputs. 4 | /// 5 | /// @type list 6 | /// 7 | /// @access private 8 | 9 | $_text-inputs-list: ( 10 | "[type='color']", 11 | "[type='date']", 12 | "[type='datetime']", 13 | "[type='datetime-local']", 14 | "[type='email']", 15 | "[type='month']", 16 | "[type='number']", 17 | "[type='password']", 18 | "[type='search']", 19 | "[type='tel']", 20 | "[type='text']", 21 | "[type='time']", 22 | "[type='url']", 23 | "[type='week']", 24 | "input:not([type])", 25 | "textarea", 26 | ); 27 | -------------------------------------------------------------------------------- /src/app/download-manager/download-manager.page.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 9 | 10 |
11 |
-------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_hide-text.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Hides the text in an element, commonly used to show an image instead. Some 4 | /// elements will need block-level styles applied. 5 | /// 6 | /// @link https://goo.gl/EvLRIu 7 | /// 8 | /// @example scss 9 | /// .element { 10 | /// @include hide-text; 11 | /// } 12 | /// 13 | /// // CSS Output 14 | /// .element { 15 | /// overflow: hidden; 16 | /// text-indent: 101%; 17 | /// white-space: nowrap; 18 | /// } 19 | 20 | @mixin hide-text { 21 | overflow: hidden; 22 | text-indent: 101%; 23 | white-space: nowrap; 24 | } 25 | -------------------------------------------------------------------------------- /src/app/manage-learn/reports/observation-solution-listing/observation-solution-listing.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/variables"; 2 | @import "src/assets/styles/_custom-mixins"; 3 | @import "src/assets/styles/fonts"; 4 | @import "src/assets/styles/_variables.scss"; 5 | 6 | .fixed-container { 7 | width: 100%; 8 | margin-top: 56px; 9 | position: relative; 10 | z-index: 2; 11 | } 12 | 13 | .scrollable-container { 14 | padding-top:210px; 15 | z-index: 1; 16 | background-color: white; 17 | } 18 | 19 | .main-container { 20 | background: map-get($colors, white); 21 | position: relative; 22 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/progress-bar/progress-bar.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |
7 |
{{progress}}%
8 |
9 |
10 | {{completed}} / {{total}} 11 |
12 | -------------------------------------------------------------------------------- /src/app/components/toc-header/toc-header.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import {ContentData} from 'sunbird-sdk'; 3 | import { CommonUtilService } from '@app/services'; 4 | 5 | 6 | @Component({ 7 | selector: 'app-toc-header', 8 | templateUrl: './toc-header.component.html', 9 | styleUrls: ['./toc-header.component.scss'], 10 | }) 11 | export class TocHeaderComponent { 12 | @Input() contentData: ContentData; 13 | 14 | // defaultIcon 15 | defaultAppIcon: string; 16 | constructor(public commonUtil: CommonUtilService) { 17 | this.defaultAppIcon = 'assets/imgs/ic_launcher.png'; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/view-detail/view-detail.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { ModalController, NavParams, Platform } from '@ionic/angular'; 3 | 4 | @Component({ 5 | selector: 'app-view-detail', 6 | templateUrl: './view-detail.component.html', 7 | styleUrls: ['./view-detail.component.scss'], 8 | }) 9 | export class ViewDetailComponent { 10 | submission: any; 11 | 12 | constructor(params: NavParams, private modalCtrl: ModalController, public platform: Platform) { 13 | this.submission = params.get('submission'); 14 | } 15 | 16 | close() { 17 | this.modalCtrl.dismiss(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/app/search-filter/search-filter.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { FormsModule } from '@angular/forms'; 4 | import { Routes, RouterModule } from '@angular/router'; 5 | import { SbSearchFilterModule } from 'common-form-elements'; 6 | 7 | import { IonicModule } from '@ionic/angular'; 8 | 9 | const routes: Routes = []; 10 | 11 | @NgModule({ 12 | imports: [ 13 | CommonModule, 14 | FormsModule, 15 | IonicModule, 16 | RouterModule.forChild(routes), 17 | SbSearchFilterModule 18 | ], 19 | }) 20 | export class SearchFilterPageModule {} 21 | -------------------------------------------------------------------------------- /src/directives/directives.module.ts: -------------------------------------------------------------------------------- 1 | import { CustomIonSelectDirective } from './custom-ion-select/custom-ion-select.directive'; 2 | import { NgModule } from '@angular/core'; 3 | import { ReadMoreDirective } from './read-more/read-more'; 4 | import { HideHeaderFooterDirective } from './hide-header-footer/hide-header-footer'; 5 | 6 | @NgModule({ 7 | declarations: [ 8 | ReadMoreDirective, 9 | HideHeaderFooterDirective, 10 | CustomIonSelectDirective 11 | ], 12 | imports: [], 13 | exports: [ 14 | ReadMoreDirective, 15 | HideHeaderFooterDirective, 16 | CustomIonSelectDirective 17 | ] 18 | }) 19 | export class DirectivesModule {} 20 | -------------------------------------------------------------------------------- /src/services/container.services.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | export interface TabOptions { 4 | root: any; 5 | icon?: string; 6 | label?: string; 7 | index?: number; 8 | isSelected?: boolean; 9 | } 10 | 11 | @Injectable() 12 | export class ContainerService { 13 | 14 | private tabs: Array = []; 15 | 16 | addTab(tab: TabOptions) { 17 | this.tabs.push(tab); 18 | } 19 | 20 | getAllTabs(): Array { 21 | return this.tabs.sort((prev, next) => { 22 | return prev.index - next.index; 23 | }); 24 | } 25 | 26 | removeAllTabs() { 27 | this.tabs = []; 28 | } 29 | 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/app/manage-learn/questionnaire/matrix-modal/matrix-modal.component.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | margin-bottom: 60px; 3 | } 4 | 5 | .closeBtn { 6 | color: white !important; 7 | font-size: 24px; 8 | padding-right: 10px 9 | } 10 | 11 | .customFooter { 12 | padding: 0; 13 | } 14 | 15 | .hideElement { 16 | border: red !important 17 | } 18 | 19 | .sectionHeader { 20 | padding-top: 10px; 21 | } 22 | 23 | .flexbox { 24 | display: flex; 25 | align-items: baseline; 26 | flex-wrap: nowrap; 27 | } 28 | 29 | .noWrap { 30 | white-space: nowrap; 31 | width: fit-content; 32 | 33 | } 34 | 35 | .wrapText { 36 | white-space: wrap; 37 | } -------------------------------------------------------------------------------- /src/app/my-groups/add-activity-to-group/add-activity-to-group.page.scss: -------------------------------------------------------------------------------- 1 | .activity-toc-title{ 2 | font-size: 16px; 3 | margin: 0; 4 | font-weight: bold; 5 | padding: 16px; 6 | } 7 | .add-activity-container{ 8 | display: flex; 9 | flex-direction: row; 10 | flex-wrap: wrap; 11 | .add-activity-content{ 12 | &.disabled-activity{ 13 | opacity: .5; 14 | } 15 | &:nth-child(odd){ 16 | padding: 0 4px 4px 16px; 17 | } 18 | &:nth-child(even){ 19 | padding: 0 16px 4px 4px; 20 | } 21 | flex: 50%; 22 | flex-grow: 0; 23 | flex-shrink: 0; 24 | } 25 | } -------------------------------------------------------------------------------- /src/app/resources/resources-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { RouterLinks } from '../app.constant'; 4 | import { ResourcesComponent } from './resources.component'; 5 | 6 | const routes: Routes = [ 7 | { path: '', component: ResourcesComponent, }, 8 | { path: RouterLinks.RELEVANT_CONTENTS, loadChildren: './relevant-contents/relevant-contents.module#RelevantContentsPageModule' } 9 | ]; 10 | 11 | @NgModule({ 12 | imports: [ 13 | RouterModule.forChild(routes) 14 | ], 15 | exports: [RouterModule] 16 | }) 17 | export class ResourcesRoutingModule { } 18 | -------------------------------------------------------------------------------- /src/assets/imgs/edit-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/android/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | educationportal.mp.gov.in 10 | ehrms.upsdc.gov.in 11 | apekx.ap.gov.in:8080 12 | ops.ntp.net.in 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/app/components/popups/year-of-birth-popup/year-of-birth-popup.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_variables.scss"; 3 | @import "src/assets/styles/_custom-mixins.scss"; 4 | 5 | .submit-btn{ 6 | color: white; 7 | background-color: $blue; 8 | font-size: 16px; 9 | padding: 8px 0; 10 | border: 2px solid $blue; 11 | width: 45%; 12 | } 13 | 14 | .yob-info { 15 | text-align: center; 16 | font-size: 20px; 17 | } 18 | 19 | .sb-color-red { 20 | color: #952833 !important; 21 | } 22 | 23 | .submit-disibled{ 24 | opacity: 0.5 !important; 25 | cursor: default; 26 | } -------------------------------------------------------------------------------- /src/app/manage-learn/project/project-edit/project-edit.page.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../assets/styles/variables"; 2 | @import "../../../../assets/styles/base/variables"; 3 | .project-box { 4 | background: $white; 5 | margin: 10px 8px; 6 | ion-card-header { 7 | padding: 0px 15px; 8 | } 9 | 10 | .custom-filed { 11 | margin: 10px 0px; 12 | ion-label { 13 | font-weight: 600; 14 | // color: $black-color; 15 | } 16 | 17 | ion-icon { 18 | float: right; 19 | font-size: 24px; 20 | } 21 | 22 | ion-col { 23 | padding: 0px; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/app/tabs/tabs.page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/assets/imgs/ic_chat.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/hmr.ts: -------------------------------------------------------------------------------- 1 | import { NgModuleRef, ApplicationRef } from '@angular/core'; 2 | 3 | import { createNewHosts } from '@angularclass/hmr'; 4 | 5 | export const hmrBootstrap = ( 6 | module: any, 7 | bootstrap: () => Promise> 8 | ) => { 9 | let ngModule: NgModuleRef; 10 | module.hot.accept(); 11 | bootstrap().then(mod => (ngModule = mod)); 12 | module.hot.dispose(() => { 13 | const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef); 14 | const elements = appRef.components.map(c => c.location.nativeElement); 15 | const makeVisible = createNewHosts(elements); 16 | ngModule.destroy(); 17 | makeVisible(); 18 | }); 19 | }; -------------------------------------------------------------------------------- /src/app/manage-learn/core/services/api-utils.service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { CommonUtilService } from '@app/services'; 3 | 4 | @Injectable({ 5 | providedIn: 'root' 6 | }) 7 | export class ApiUtilsService { 8 | public assessmentBaseUrl: string; 9 | public projectsBaseUrl: string; 10 | public appVersion; 11 | public appName; 12 | 13 | constructor( 14 | private commonUtilService: CommonUtilService, 15 | 16 | ) { } 17 | 18 | async initilizeML() { 19 | this.appName = !this.appName ? await this.commonUtilService.getAppName() : this.appName 20 | } 21 | 22 | getBaseUrl(key) { 23 | return this[key] 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/app/manage-learn/image-listing/image-listing/image-listing.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
Uploading
5 |
6 | {{ uploadIndex + 1 }} {{ 'FRMELEMNTS_MSG_OF' | translate }} {{ imageList.length }} {{ 'FRMELEMNTS_MSG_IMAGES' | translate }}. 7 |
8 |
{{ 'FRMELEMNTS_MSG_DONOT_CLOSE_APP' | translate }}
9 |
10 |
11 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/attachment-listing/attachment-listing-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { Routes, RouterModule } from '@angular/router'; 3 | import { CoreModule } from '../../core/core.module'; 4 | import { SharedModule } from '../../shared/shared.module'; 5 | 6 | import { AttachmentListingPage } from './attachment-listing.page'; 7 | 8 | const routes: Routes = [ 9 | { 10 | path: '', 11 | component: AttachmentListingPage 12 | } 13 | ]; 14 | 15 | @NgModule({ 16 | imports: [RouterModule.forChild(routes)], 17 | exports: [RouterModule,CoreModule,SharedModule], 18 | }) 19 | export class AttachmentListingPageRoutingModule {} -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/question-heading/question-heading.component.html: -------------------------------------------------------------------------------- 1 |
2 |
{{data?.questionNumber}} .
3 |
4 |
5 |
6 |
{{question}}
7 |
8 |
9 | 10 |
11 |
12 | 13 |
14 | 15 |
-------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/utilities/_gamma.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Performs gamma correction on a single color channel. 4 | /// 5 | /// Note that the calculation is approximate if a `pow()` is not available. 6 | /// 7 | /// @argument {number (0-1)} $channel 8 | /// 9 | /// @return {number (0-1)} 10 | /// 11 | /// @access private 12 | 13 | @function _gamma($channel) { 14 | @if $channel < 0.03928 { 15 | @return $channel / 12.92; 16 | } @else { 17 | $c: ($channel + 0.055) / 1.055; 18 | @if function-exists("pow") { 19 | @return pow($c, 2.4); 20 | } @else { 21 | @return 0.56 * $c * $c * $c + 0.44 * $c * $c; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/pipes/translate-html/translate-html.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | import { CommonUtilService } from '@app/services/common-util.service'; 3 | 4 | @Pipe( 5 | { name: 'translateHtml' } 6 | ) 7 | 8 | export class TranslateHtmlPipe implements PipeTransform { 9 | 10 | constructor(private commonUtilService: CommonUtilService) {} 11 | 12 | transform(value: { contents: string, values: string[] }): string { 13 | 14 | return Object.keys(value.values).reduce((acc, val) => { 15 | return acc.replace(val, value.values[val] ? this.commonUtilService.translateMessage(value.values[val]) : ''); 16 | }, value.contents); 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/create-project/create-project.page.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../assets/styles/base/variables"; 2 | .create_header ::ng-deep .title.w-90 { 3 | color:black; 4 | } 5 | .remove-icon{ 6 | margin-top: -10px; 7 | margin-left: -10px; 8 | font-size: 15px; 9 | margin-right: 10px; 10 | } 11 | .task-board{ 12 | h5{ 13 | margin-left: 10px; 14 | } 15 | } 16 | 17 | .text-feilds{ 18 | margin:15px 10px; 19 | } 20 | 21 | .label-text{ 22 | font-weight: bold; 23 | font-size: 17px; 24 | color:$primary-color; 25 | } 26 | 27 | p .label-hint{ 28 | font-weight: 17px; 29 | font-weight: bold; 30 | } 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/assets/imgs/ic_switch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/guards/is-guest-user.guard.ts: -------------------------------------------------------------------------------- 1 | import { Injectable, Inject } from '@angular/core'; 2 | import { CanLoad, Router } from '@angular/router'; 3 | import { AuthService } from 'sunbird-sdk'; 4 | 5 | @Injectable() 6 | export class IsGuestUserGuard implements CanLoad { 7 | constructor( 8 | @Inject('AUTH_SERVICE') private authService: AuthService, 9 | private router: Router 10 | ) { 11 | } 12 | 13 | async canLoad(): Promise { 14 | if (!(await this.authService.getSession().toPromise())) { 15 | return true; 16 | } 17 | 18 | this.router.navigate(['/', 'profile-settings']); 19 | return false; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/app/sign-in/sign-in.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { FormsModule } from '@angular/forms'; 4 | 5 | import { IonicModule } from '@ionic/angular'; 6 | 7 | import { SignInPageRoutingModule } from './sign-in-routing.module'; 8 | 9 | import { SignInPage } from './sign-in.page'; 10 | import {TranslateModule} from '@ngx-translate/core'; 11 | 12 | @NgModule({ 13 | imports: [ 14 | CommonModule, 15 | FormsModule, 16 | IonicModule, 17 | SignInPageRoutingModule, 18 | TranslateModule 19 | ], 20 | declarations: [SignInPage] 21 | }) 22 | export class SignInPageModule {} 23 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-insufficient-storage-popup/sb-insufficient-storage-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
{{sbPopoverMessage}}
8 |
9 | 10 | 11 | 12 | 13 |
14 | 15 |
16 |
-------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/item-list-card/item-list-card.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_custom-mixins.scss"; 3 | @import "src/assets/styles/_variables.scss"; 4 | 5 | .title{ 6 | font-size: 16px; 7 | font-weight: bold; 8 | color: #{$blue}; 9 | } 10 | 11 | 12 | .ellipsis{ 13 | text-overflow: ellipsis; 14 | overflow: hidden; 15 | width: 1em; 16 | height: 1.4em; 17 | white-space: nowrap; 18 | flex-grow: 1; 19 | } 20 | 21 | ion-card-header { 22 | padding-bottom: 2px; 23 | } 24 | 25 | .card-container{ 26 | padding-top: 8px; 27 | padding-bottom: 8px; 28 | background: #ffffff; 29 | } -------------------------------------------------------------------------------- /src/assets/imgs/oval.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 23B424D8-0702-4608-AB32-6D4734ECA28B@1.5x 5 | Created with sketchtool. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/app/download-manager/downloads-tab/downloads-header/downloads-header.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

{{'TAB_5' | translate}}

5 |
6 |
{{'SPACE_TAKEN' | translate: {'%s': appName } }}: 7 | {{storageInfo?.usedSpace | fileSize}}
8 |
9 | {{'AVAILABLE' | translate}}: {{storageInfo?.availableSpace | fileSize}} 10 |
11 |
12 |
13 |
14 |
-------------------------------------------------------------------------------- /src/assets/imgs/empty_circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0A5AE039-B21E-4EB7-98C2-533D33CCFEB7 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/styles/base/_positions.scss: -------------------------------------------------------------------------------- 1 | /*Position CSS*/ 2 | .relative { 3 | position: relative !important; 4 | } 5 | .absolute { 6 | position: absolute !important; 7 | } 8 | 9 | 10 | *[dir="ltr"]{ 11 | .right-0 { 12 | right: 0 !important; 13 | } 14 | .left-0 { 15 | left: 0 !important; 16 | } 17 | } 18 | 19 | *[dir="rtl"]{ 20 | .right-0 { 21 | left: 0 !important; 22 | } 23 | .left-0 { 24 | right: 0 !important; 25 | } 26 | } 27 | 28 | 29 | .top-50 { 30 | top: 50% !important; 31 | transform: translateY(-50%); 32 | } 33 | 34 | .bottom-0 { 35 | bottom: 0 !important; 36 | } 37 | .bottom-5 { 38 | bottom: 5px !important; 39 | } -------------------------------------------------------------------------------- /src/assets/styles/component/_sb-offline-comp.scss: -------------------------------------------------------------------------------- 1 | /*sb-offline-toast styling div*/ 2 | .sb-offline-msg 3 | { 4 | background-color: $orange; 5 | color: $white; 6 | 7 | ion-icon 8 | { 9 | color: $white; 10 | } 11 | .offline-icon{ 12 | @include padding(($base-block-space), 0, 0,($base-block-space * 4)); 13 | font-size: (($font-size-base * 2) - 4); 14 | display: flex; 15 | align-items: center; 16 | } 17 | .sb-offline-text{ 18 | color: $white; 19 | font-size: ($font-size-base); 20 | font-weight: 500; 21 | line-height: 19px; 22 | @include padding(($base-block-space * 2), 0, 0, 0); 23 | } 24 | } -------------------------------------------------------------------------------- /src/app/components/content-actions/content-actions.component.html: -------------------------------------------------------------------------------- 1 | 2 | {{'FRMELEMNTS_LBL_UNENROLL_FROM_COURSE' | categoryKeyTranslate : content}} 3 | {{'FRMELEMNTS_LBL_SYNC_COURSE_PROGRESS' | translate }} 4 | 5 | 6 | {{ 'DOWNLOAD' | translate }} 7 | {{ 'SHARE' | translate }} 8 | -------------------------------------------------------------------------------- /src/app/notification/notification.page.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 9 |
10 |
11 |
12 | 13 |
14 |

{{'MSG_NO_NEW_NOTIFICATION' | translate}}

15 |
16 |
-------------------------------------------------------------------------------- /src/app/components/popups/sb-no-network-popup/sb-no-network-popup.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_variables.scss"; 3 | .no-net-heading{ 4 | font-size: $font-size-normal; 5 | font-weight: $font-weight-bold; 6 | padding-left: $base-block-space * 0.5; 7 | } 8 | 9 | .no-net-message{ 10 | font-size: $font-size-xs; 11 | padding-left: $base-block-space * 0.5; 12 | } 13 | 14 | .no-net-popup{ 15 | background-color: $orange !important; 16 | color: $white-color !important; 17 | } 18 | 19 | .no-net-close-btn{ 20 | font-size: 24px; 21 | float: right; 22 | } 23 | 24 | -------------------------------------------------------------------------------- /src/app/manage-learn/reports/reports-listing/reports-listing.component.html: -------------------------------------------------------------------------------- 1 | 2 | 6 |
7 | 13 | 14 | 15 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /typings/cordova-plugin-fcm-with-dependecy-updated.d.ts: -------------------------------------------------------------------------------- 1 | declare var FCMPlugin: { 2 | onNotification: ( callback: (data: any) => void, success: (sucess: object) => void, 3 | error: (err: string) => void) => void; 4 | 5 | getToken: (sucess: (token: string) => void, error?: (error: string) => void) => void; 6 | 7 | onTokenRefresh: (sucess: (token: string) => void, error?: (error: string) => void) => void; 8 | 9 | subscribeToTopic: ( callback: (data: any) => void, success: (sucess: object) => void, 10 | error: (err: string) => void) => void; 11 | 12 | unsubscribeFromTopic: ( callback: (data: any) => void, success: (sucess: object) => void, 13 | error: (err: string) => void) => void; 14 | } 15 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/scrore-report-menus/scrore-report-menus.component.html: -------------------------------------------------------------------------------- 1 | 2 | 11 | {{ 'FRMELEMNTS_BTN_REPORT_WITH_SCORE' | translate }} 12 | 13 | 22 | {{ 'FRMELEMNTS_BTN_REPORT_WITHOUT_SCORE' | translate }} 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/project-detail/project-detail.page.scss: -------------------------------------------------------------------------------- 1 | // @import "../../theme/colors.scss"; 2 | @import "src/assets/styles/_variables.scss"; 3 | 4 | ion-button, ion-fab-button { 5 | --background: var(--ion-primary); 6 | } 7 | 8 | .add-task-btn { 9 | color: var(--ion-color-primary); 10 | margin-top: -30px; 11 | } 12 | 13 | .file-container { 14 | margin-left: 15px; 15 | width: 5em; 16 | height: 5em; 17 | text-align: center; 18 | border-radius: 8px; 19 | padding: 5px; 20 | margin-bottom: 2em; 21 | } 22 | 23 | ion-card { 24 | background-color: map-get($colors, white); 25 | } 26 | 27 | .ios .size { 28 | font-size: 16px !important; 29 | } 30 | 31 | .ios .adjust { 32 | margin-left: 5px; 33 | } -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/project-details-card/project-details-card.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | .project-box { 3 | margin: 15px 0px; 4 | box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 6px 6px 0px, 5 | rgba(0, 0, 0, 0.12) 0px 0px 0px 0px; 6 | .custom-filed { 7 | margin: 10px 0px; 8 | 9 | ion-label { 10 | font-weight: 600; 11 | color: #{$black-color}; 12 | } 13 | 14 | ion-icon { 15 | float: right; 16 | font-size: 24px; 17 | margin-top: -5px; 18 | } 19 | 20 | ion-col { 21 | padding: 0px; 22 | } 23 | } 24 | } 25 | 26 | ion-card { 27 | background-color: map-get($colors, white); 28 | } -------------------------------------------------------------------------------- /src/assets/imgs/tab_home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 77FB7E94-B5E4-41C1-A296-C1869A322B29 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/app/manage-learn/generic-reports/reports/reports.component.scss: -------------------------------------------------------------------------------- 1 | @import 'src/assets/styles/base/_variables.scss'; 2 | @import 'src/assets/styles/_custom-mixins.scss'; 3 | @import 'src/assets/styles/_variables.scss'; 4 | .filterIcon { 5 | font-size: 30px; 6 | float: right; 7 | margin: 10px 15px; 8 | color: $primary-color; 9 | } 10 | .reportName { 11 | text-transform: capitalize; 12 | margin-bottom: 0; 13 | padding: 0 15px; 14 | } 15 | .heading { 16 | margin: 10px 15px; 17 | color: $gray-300; 18 | } 19 | 20 | h3 { 21 | font-size: 1.5rem; 22 | } 23 | h4 { 24 | font-size: 1rem; 25 | } 26 | :host ::ng-deep h4 { 27 | font-size: 1rem; 28 | } 29 | .viewReportBtn { 30 | text-transform: none !important; 31 | } 32 | -------------------------------------------------------------------------------- /src/assets/imgs/tab_home_selected.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | F703A5B7-9A9A-4A40-8176-3A7CAA69E48A 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_overflow-wrap.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Outputs the `overflow-wrap` property and its legacy name `word-wrap` to 4 | /// support browsers that do not yet use `overflow-wrap`. 5 | /// 6 | /// @argument {string} $wrap [break-word] 7 | /// Accepted CSS values are `normal`, `break-word`, `inherit`, `initial`, 8 | /// or `unset`. 9 | /// 10 | /// @example scss 11 | /// .wrapper { 12 | /// @include overflow-wrap; 13 | /// } 14 | /// 15 | /// // CSS Output 16 | /// .wrapper { 17 | /// word-wrap: break-word; 18 | /// overflow-wrap: break-word; 19 | /// } 20 | 21 | @mixin overflow-wrap($wrap: break-word) { 22 | word-wrap: $wrap; 23 | overflow-wrap: $wrap; 24 | } 25 | -------------------------------------------------------------------------------- /src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-profile-name-confirmation-popup/sb-profile-name-confirmation-popup.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | ion-content { 4 | background-color: map-get($colors, white ); 5 | } 6 | .pnc-padding-32 { 7 | padding: 16px 32px; 8 | } 9 | .pnc-profile-name { 10 | font-weight: bold; 11 | font-size: 20px; 12 | } 13 | .pnc-checkbox { 14 | display: inline-block; 15 | } 16 | .pnc-checkbox-desc { 17 | display: inline-block; 18 | margin-left: 8px; 19 | margin-bottom: 0px; 20 | vertical-align: super; 21 | } 22 | ion-footer { 23 | border-top: 1px solid map-get($colors, medium_gray ); 24 | 25 | .sb-popover-footer { 26 | padding: 16px; 27 | } 28 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/utilities/_assign-inputs.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Append pseudo-classes to a selector(s). 4 | /// 5 | /// @argument {list | string} $inputs 6 | /// A selector, or list of selectors, to apply the pseudo-class to. 7 | /// 8 | /// @argument {pseudo-class} $pseudo [null] 9 | /// The pseudo-class to be appended. 10 | /// 11 | /// @return {list} 12 | /// 13 | /// @access private 14 | 15 | @function _assign-inputs( 16 | $inputs, 17 | $pseudo: null 18 | ) { 19 | $list: (); 20 | 21 | @each $input in $inputs { 22 | $input: unquote($input); 23 | $input: if($pseudo, $input + ":" + $pseudo, $input); 24 | $list: append($list, $input, comma); 25 | } 26 | 27 | @return $list; 28 | } 29 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/bar-chart/bar-chart.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{ questionNumber }}) {{ data?.question }}

4 |
5 | 6 |
7 |
8 | 18 | 19 |
20 |
21 | 22 |
No data found
23 |
24 | -------------------------------------------------------------------------------- /src/assets/imgs/arrow_down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1965BAD5-EE02-47C0-A7C7-CCB2009C3965 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/assets/styles/base/_typography.scss: -------------------------------------------------------------------------------- 1 | // typography styles 2 | h1 { 3 | font-size: $h1-font-size; 4 | line-height: ($h1-font-size + 8); 5 | } 6 | h2 { 7 | font-size: $h2-font-size; 8 | line-height: ($h2-font-size + 8); 9 | } 10 | h3 { 11 | font-size: $h3-font-size; 12 | line-height: ($h3-font-size * 1.42857); 13 | } 14 | h4 { 15 | font-size: $h4-font-size; 16 | line-height: ($h4-font-size * 1.42857); 17 | } 18 | h5 { 19 | font-size: $h5-font-size; 20 | line-height: ($h5-font-size * 1.42857); 21 | } 22 | h6 { 23 | font-size: $h6-font-size; 24 | line-height: ($h6-font-size * 1.42857); 25 | } 26 | p { 27 | font-size: $p-font-size; 28 | line-height: ($p-font-size * 1.42857); //1.618 29 | } -------------------------------------------------------------------------------- /src/app/settings/data-sync/data-sync.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | 3 | .label { 4 | font-size: 15px; 5 | } 6 | 7 | .ds-m0 { 8 | margin-top: 0px !important; 9 | margin-bottom: 0px !important; 10 | } 11 | 12 | .ds-item{ 13 | --padding-start: 0px 14 | } 15 | 16 | hr { 17 | -webkit-margin-before: 16px; 18 | height: 2px; 19 | border-width: 0; 20 | -webkit-box-sizing: content-box; 21 | box-sizing: content-box; 22 | background-color: map-get($colors, medium_gray); 23 | } 24 | 25 | .item-block { 26 | min-height: unset; 27 | height: 3rem; 28 | } 29 | 30 | .item-radio input[type="radio"] { 31 | display: none; 32 | } 33 | 34 | .item-md { 35 | padding: 0 !important; 36 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/helpers/_scales.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | //// 4 | /// Pre-defined scales for use with the `modular-scale` function. 5 | /// 6 | /// @type number (unitless) 7 | /// 8 | /// @see {function} modular-scale 9 | //// 10 | 11 | $minor-second: 1.067; 12 | $major-second: 1.125; 13 | $minor-third: 1.2; 14 | $major-third: 1.25; 15 | $perfect-fourth: 1.333; 16 | $augmented-fourth: 1.414; 17 | $perfect-fifth: 1.5; 18 | $minor-sixth: 1.6; 19 | $golden: 1.618; 20 | $major-sixth: 1.667; 21 | $minor-seventh: 1.778; 22 | $major-seventh: 1.875; 23 | $octave: 2; 24 | $major-tenth: 2.5; 25 | $major-eleventh: 2.667; 26 | $major-twelfth: 3; 27 | $double-octave: 4; 28 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-insufficient-storage-popup/sb-insufficient-storage-popup.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_variables.scss"; 2 | sb-insufficient-storage-popup { 3 | 4 | .no-net-heading{ 5 | font-size: $font-size-normal; 6 | font-weight: $font-weight-bold; 7 | padding-left: $base-block-space * 0.5; 8 | } 9 | 10 | .no-net-message{ 11 | font-size: $font-size-normal - 2; 12 | padding-left: $base-block-space * 0.5; 13 | } 14 | 15 | .no-net-popup{ 16 | background-color: $orange !important; 17 | color: $white-color !important; 18 | } 19 | 20 | .no-net-close-btn{ 21 | font-size: 24px; 22 | float: right; 23 | padding: 2px; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/app/manage-learn/project/add-entity/add-entity.component.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../assets/styles/variables"; 2 | @import "../../../../assets/styles/base/variables"; 3 | 4 | .entity-name{ 5 | text-align: center; 6 | color: var(--ion-color-primary); 7 | text-transform: capitalize; 8 | } 9 | .enitity-list{ 10 | ion-label{ 11 | text-overflow: unset; 12 | white-space: normal; 13 | } 14 | ion-checkbox{ 15 | margin-right: 15px; 16 | } 17 | } 18 | .footer-btn{ 19 | text-align: center; 20 | padding: 15px; 21 | background: var(--app-primary); 22 | color: $white; 23 | } 24 | .loadmore-btn{ 25 | text-align: center; 26 | ion-button{ 27 | --border-radius:50px; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/add-link-modal/add-link-modal.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Output, EventEmitter } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-add-link-modal', 5 | templateUrl: './add-link-modal.component.html', 6 | styleUrls: ['./add-link-modal.component.scss'], 7 | }) 8 | export class AddLinkModalComponent implements OnInit { 9 | links:string; 10 | isSubmit : boolean = false; 11 | @Output() eventEmit = new EventEmitter(); 12 | constructor() { } 13 | 14 | ngOnInit() {} 15 | cancel(){ 16 | this.eventEmit.emit(); 17 | } 18 | submit() { 19 | if(this.links && !this.isSubmit){ 20 | this.isSubmit = true; 21 | this.eventEmit.emit(this.links); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/app/components/popups/upgrade-popover/upgrade-popover.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_custom-mixins.scss"; 2 | 3 | :host { 4 | .close-container { 5 | position: relative; 6 | height: 56px; 7 | display: flex; 8 | align-items: center; 9 | justify-content: flex-end; 10 | .sb-modal-close { 11 | position: absolute; 12 | right: 16px; 13 | width: 20px; 14 | height: 20px; 15 | } 16 | } 17 | .scroll { 18 | height: 15vh; 19 | overflow: scroll; 20 | overflow-y: visible; 21 | } 22 | ion-app.md [padding-horizontal] .scroll-content { 23 | @include padding(null, 0 !important); 24 | } 25 | ion-app.md [padding-top] .scroll-content { 26 | padding-top: 0 !important; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/app/components/relevant-content-card/relevant-content-card.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, Input } from '@angular/core'; 2 | import {ContentData} from 'sunbird-sdk'; 3 | import { CommonUtilService } from '@app/services'; 4 | 5 | 6 | @Component({ 7 | selector: 'app-relevant-content-card', 8 | templateUrl: './relevant-content-card.component.html', 9 | styleUrls: ['./relevant-content-card.component.scss'], 10 | }) 11 | export class RelevantContentCardComponent { 12 | @Input() contentData: ContentData; 13 | @Input() isAlreadyEnrolled: boolean; 14 | @Input() isCertifiedCourse: boolean; 15 | @Input() certificateDescription: string; 16 | @Input() batchEndDate; 17 | 18 | constructor(public commonUtil: CommonUtilService) { 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/app/profile/certificate-view/certificate-view.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { Routes, RouterModule } from '@angular/router'; 4 | 5 | import { IonicModule } from '@ionic/angular'; 6 | 7 | import { TranslateModule } from '@ngx-translate/core'; 8 | import { CertificateViewPage } from './certificate-view.page'; 9 | 10 | const routes: Routes = [ 11 | { 12 | path: '', 13 | component: CertificateViewPage 14 | } 15 | ]; 16 | 17 | @NgModule({ 18 | imports: [ 19 | CommonModule, 20 | IonicModule, 21 | RouterModule.forChild(routes), 22 | TranslateModule, 23 | ], 24 | declarations: [CertificateViewPage] 25 | }) 26 | export class CertificateViewPageModule {} 27 | -------------------------------------------------------------------------------- /src/app/manage-learn/imp-suggestions/imp-suggestions.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { FormsModule } from '@angular/forms'; 4 | 5 | import { IonicModule } from '@ionic/angular'; 6 | 7 | import { ImpSuggestionsPageRoutingModule } from './imp-suggestions-routing.module'; 8 | 9 | import { ImpSuggestionsPage } from './imp-suggestions.page'; 10 | import { TranslateModule } from '@ngx-translate/core'; 11 | 12 | @NgModule({ 13 | imports: [ 14 | CommonModule, 15 | FormsModule, 16 | IonicModule, 17 | ImpSuggestionsPageRoutingModule, 18 | TranslateModule.forChild(), 19 | 20 | ], 21 | declarations: [ImpSuggestionsPage] 22 | }) 23 | export class ImpSuggestionsPageModule {} 24 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/accordion-list/accordion-list.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input, Output, EventEmitter,ViewChild } from '@angular/core'; 2 | @Component({ 3 | selector: 'app-accordion-list', 4 | templateUrl: './accordion-list.component.html', 5 | styleUrls: ['./accordion-list.component.scss'], 6 | }) 7 | export class AccordionListComponent implements OnInit { 8 | @Input() data: any; 9 | @Input() title: any; 10 | @Output() actionEvent = new EventEmitter(); 11 | isListItemOpened : boolean = false; 12 | constructor() { } 13 | 14 | ngOnInit() { } 15 | 16 | action(event) { 17 | this.actionEvent.emit(event) 18 | } 19 | toggleAccordion(): void { 20 | this.isListItemOpened = !this.isListItemOpened; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/_button.scss: -------------------------------------------------------------------------------- 1 | /*Buttons Css*/ 2 | @mixin btn-theme($btn-color) { 3 | border-color:($btn-color); 4 | background-color: $btn-color; 5 | &:hover { 6 | background-color: darken($btn-color, 6%); 7 | } 8 | &:active { 9 | background-color: darken($btn-color, 15%); 10 | } 11 | } 12 | 13 | @mixin btn-theme-bgwhite($btn-color) { 14 | border-color: darken($btn-color, 2%); 15 | background-color: $white; 16 | color:($btn-color) !important; 17 | &:hover { 18 | //font-weight: bold; 19 | border-color: darken($btn-color, 2%); 20 | } 21 | &:active { 22 | border-color: darken($btn-color, 8%); 23 | } 24 | } 25 | @mixin trans($val...) { 26 | -webkit-transition: $val; 27 | -moz-transition: $val; 28 | -o-transition: $val; 29 | transition: $val; 30 | } -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/utilities/_lightness.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Programatically determines the lightness of a color. 4 | /// 5 | /// @argument {color (hex)} $hex-color 6 | /// 7 | /// @return {number (0-1)} 8 | /// 9 | /// @example scss 10 | /// _lightness($color) 11 | /// 12 | /// @access private 13 | 14 | @function _lightness($hex-color) { 15 | $-local-red-raw: red(rgba($hex-color, 1)); 16 | $-local-green-raw: green(rgba($hex-color, 1)); 17 | $-local-blue-raw: blue(rgba($hex-color, 1)); 18 | 19 | $-local-red: _gamma($-local-red-raw / 255); 20 | $-local-green: _gamma($-local-green-raw / 255); 21 | $-local-blue: _gamma($-local-blue-raw / 255); 22 | 23 | @return $-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722; 24 | } 25 | -------------------------------------------------------------------------------- /src/services/android-permissions/android-permission.ts: -------------------------------------------------------------------------------- 1 | export enum AndroidPermission { 2 | CAMERA = 'android.permission.CAMERA', 3 | WRITE_EXTERNAL_STORAGE = 'android.permission.WRITE_EXTERNAL_STORAGE', 4 | ACCESS_FINE_LOCATION = 'android.permission.ACCESS_FINE_LOCATION', 5 | RECORD_AUDIO = 'android.permission.RECORD_AUDIO' 6 | } 7 | 8 | export interface AndroidPermissionsStatus { 9 | hasPermission?: boolean; 10 | isPermissionAlwaysDenied?: boolean; 11 | } 12 | export interface PermissionAsked { 13 | isCameraAsked: boolean; 14 | isStorageAsked: boolean; 15 | isRecordAudioAsked: boolean; 16 | } 17 | export enum PermissionAskedEnum { 18 | isCameraAsked = 'isCameraAsked', 19 | isStorageAsked = 'isStorageAsked', 20 | isRecordAudioAsked = 'isRecordAudioAsked' 21 | } 22 | -------------------------------------------------------------------------------- /src/app/components/skeleton-item/skeleton-item.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-skeleton-item', 5 | templateUrl: './skeleton-item.component.html', 6 | styleUrls: ['./skeleton-item.component.scss'], 7 | }) 8 | export class SkeletonItemComponent implements OnInit { 9 | @Input() width: any; 10 | @Input() height: any; 11 | @Input() radius: any; 12 | styles: any = {}; 13 | 14 | ngOnInit() { 15 | this.styles = { 16 | width: this.width ? this.width : '100%', 17 | height: this.height ? this.height : '16px' 18 | }; 19 | 20 | if (typeof this.radius !== 'undefined' && this.radius !== '') { 21 | this.styles.borderRadius = this.radius; 22 | } 23 | } 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/app/curriculum-courses/curriculum-courses.page.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/_custom-mixins.scss"; 2 | .cc-header{ 3 | @include clearfix; 4 | background: #FFDFD9; 5 | padding: 16px; 6 | text-align: left; 7 | box-shadow: 0 2px 7px 0 rgba(255,226,222,0.52); 8 | 9 | .cc-header-name{ 10 | font-size: 16px; 11 | font-weight: 600; 12 | color: #EA2E52; 13 | text-transform: capitalize; 14 | } 15 | 16 | .cc-header-desc{ 17 | color: #666666; 18 | font-size: 8px; 19 | text-transform: uppercase; 20 | } 21 | 22 | .cd-header-icon { 23 | img { 24 | height: 36px; 25 | width: 36px; 26 | } 27 | } 28 | } 29 | 30 | .cc-container { 31 | padding: 16px; 32 | } 33 | -------------------------------------------------------------------------------- /src/app/collection-detail-etb/textbook-toc/textbook-toc.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/base/_variables.scss"; 2 | @import "src/assets/styles/_variables.scss"; 3 | :host { 4 | .scroll-content { 5 | padding-bottom: 20% !important; 6 | } 7 | .sb-topic-text{ 8 | width: 90.28%; 9 | color: $blue; 10 | font-size: 14px; 11 | font-weight: bold; 12 | line-height: 20px; 13 | } 14 | .sb-topic-item { 15 | color: $primary-color; 16 | padding: 8px; 17 | } 18 | .sb-accordian-card { 19 | margin: 0 !important; 20 | box-shadow: none; 21 | border-bottom: 1px solid map-get($colors, medium_gray); 22 | } 23 | .sb-play-selected{ 24 | font-weight: normal; 25 | color: $blue; 26 | ion-icon { 27 | display: none; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/app/curriculum-courses/curriculum-courses-routing.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule, Routes } from '@angular/router'; 3 | import { RouterLinks } from '../app.constant'; 4 | import { CurriculumCoursesPage } from './curriculum-courses.page'; 5 | 6 | const routes: Routes = [ 7 | { 8 | path: '', 9 | component: CurriculumCoursesPage 10 | }, 11 | { 12 | path: RouterLinks.CHAPTER_DETAILS, 13 | loadChildren: './chapter-details/chapter-details.module#ChapterDetailsPageModule' 14 | }, 15 | ]; 16 | 17 | @NgModule({ 18 | imports: [ 19 | RouterModule.forChild(routes) 20 | ], 21 | exports: [ 22 | RouterModule 23 | ] 24 | }) 25 | export class CurriculumCoursesRoutingModule { } 26 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_border-width.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a concise, one-line method for setting `border-width` on specific 4 | /// edges of a box. Use a `null` value to “skip” edges of the box with standard 5 | /// CSS shorthand. 6 | /// 7 | /// @argument {list} $values 8 | /// List of border widths; accepts CSS shorthand. 9 | /// 10 | /// @example scss 11 | /// .element { 12 | /// @include border-width(1em null 20px); 13 | /// } 14 | /// 15 | /// // CSS Output 16 | /// .element { 17 | /// border-bottom-width: 20px; 18 | /// border-top-width: 1em; 19 | /// } 20 | /// 21 | /// @require {mixin} _directional-property 22 | 23 | @mixin border-width($values) { 24 | @include _directional-property(border, width, $values); 25 | } 26 | -------------------------------------------------------------------------------- /src/app/collection-detail-etb/textbook-toc-service.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | 3 | @Injectable() 4 | export class TextbookTocService { 5 | 6 | textbookIds = { 7 | contentId: undefined, 8 | rootUnitId: undefined, 9 | unit: undefined, 10 | content: undefined 11 | }; 12 | 13 | constructor( 14 | ) { } 15 | 16 | setTextbookIds(textbookIds) { 17 | this.textbookIds = textbookIds; 18 | console.log('this.TextbookIds in service', this.textbookIds); 19 | } 20 | 21 | resetTextbookIds() { 22 | this.textbookIds = { 23 | contentId: undefined, 24 | rootUnitId: undefined, 25 | unit: undefined, 26 | content: undefined 27 | }; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/app/components/popups/sb-preferences-popup/sb-preferences-popup.component.scss: -------------------------------------------------------------------------------- 1 | .preference-container { 2 | color: var(--app-gray); 3 | padding: 1rem; 4 | font-size: 12px; 5 | 6 | .preference-username { 7 | font-size: 24px; 8 | font-weight: bold; 9 | margin: 0.75rem 0; 10 | } 11 | 12 | .preference-message { 13 | .preference-label{ 14 | color: var(--app-gray); 15 | display: flex; 16 | align-items: center; 17 | hr{ 18 | flex: 1; 19 | background-color: var(--app-primary-header); 20 | } 21 | } 22 | } 23 | 24 | .preference-data { 25 | margin: 0.25rem 0 1rem; 26 | } 27 | 28 | .change-preference{ 29 | text-align: center; 30 | button{ 31 | font-size: 12px !important; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_border-style.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides a concise, one-line method for setting `border-style` on specific 4 | /// edges of a box. Use a `null` value to “skip” edges of the box with standard 5 | /// CSS shorthand. 6 | /// 7 | /// @argument {list} $values 8 | /// List of border styles; accepts CSS shorthand. 9 | /// 10 | /// @example scss 11 | /// .element { 12 | /// @include border-style(dashed null solid); 13 | /// } 14 | /// 15 | /// // CSS Output 16 | /// .element { 17 | /// border-bottom-style: solid; 18 | /// border-top-style: dashed; 19 | /// } 20 | /// 21 | /// @require {mixin} _directional-property 22 | 23 | @mixin border-style($values) { 24 | @include _directional-property(border, style, $values); 25 | } 26 | -------------------------------------------------------------------------------- /src/configuration/configuration.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const configuration = { 6 | production: false, 7 | hmr: false, 8 | debug: false 9 | }; 10 | 11 | /* 12 | * For easier debugging in development mode, you can import the following file 13 | * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. 14 | * 15 | * This import should be commented out in production mode because it will have a negative impact 16 | * on performance if an error is thrown. 17 | */ 18 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 19 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_tint.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with white. 4 | /// 5 | /// @argument {color} $color 6 | /// 7 | /// @argument {number (percentage)} $percent 8 | /// The amount of white to be mixed in. 9 | /// 10 | /// @return {color} 11 | /// 12 | /// @example scss 13 | /// .element { 14 | /// background-color: tint(#6ecaa6, 40%); 15 | /// } 16 | /// 17 | /// // CSS Output 18 | /// .element { 19 | /// background-color: #a8dfc9; 20 | /// } 21 | 22 | @function tint( 23 | $color, 24 | $percent 25 | ) { 26 | @if not _is-color($color) { 27 | @error "`#{$color}` is not a valid color for the `$color` argument in " + 28 | "the `tint` mixin."; 29 | } @else { 30 | @return mix(#fff, $color, $percent); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /content-player/polyfills.js: -------------------------------------------------------------------------------- 1 | //Polyfills for Array, Object Includes and math.trunc 2 | String.prototype.includes || (String.prototype.includes = function (t, r) { "use strict"; return "number" != typeof r && (r = 0), !(r + t.length > this.length) && -1 !== this.indexOf(t, r) }), Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", { value: function (t, r) { if (null == this) throw new TypeError('"this" is null or not defined'); var e = Object(this), n = e.length >>> 0; if (0 === n) return !1; var i, o, u = 0 | r, a = Math.max(u >= 0 ? u : n - Math.abs(u), 0); for (; a < n;) { if ((i = e[a]) === (o = t) || "number" == typeof i && "number" == typeof o && isNaN(i) && isNaN(o)) return !0; a++ } return !1 } }), Math.trunc || (Math.trunc = function (t) { return t < 0 ? Math.ceil(t) : Math.floor(t) }); -------------------------------------------------------------------------------- /src/app/components/popups/index.ts: -------------------------------------------------------------------------------- 1 | export * from './sb-download-popup/sb-download-popup.component'; 2 | export * from './sb-generic-popover/sb-generic-popover.component'; 3 | export * from './sb-no-network-popup/sb-no-network-popup.component'; 4 | export * from './sb-popover/sb-popover.component'; 5 | export * from './upgrade-popover/upgrade-popover.component'; 6 | export * from './dialog-popup/dialog-popup.component'; 7 | export * from './edit-contact-details-popup/edit-contact-details-popup.component'; 8 | export * from './edit-contact-verify-popup/edit-contact-verify-popup.component'; 9 | export * from './sb-insufficient-storage-popup/sb-insufficient-storage-popup'; 10 | export * from './sb-app-share-popup/sb-app-share-popup.component'; 11 | export * from './toast-navigation/toast-navigation.component'; 12 | -------------------------------------------------------------------------------- /src/app/manage-learn/questionnaire/remarks-modal/remarks-modal.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/app/manage-learn/shared/components/pie-chart/pie-chart.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{ questionNumber }}) {{ data?.question }}

4 |
5 |
6 |
7 | 19 | 20 |
21 |
22 |
No data found
23 |
24 | -------------------------------------------------------------------------------- /src/assets/styles/mixins/bourbon/library/_shade.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with black. 4 | /// 5 | /// @argument {color} $color 6 | /// 7 | /// @argument {number (percentage)} $percent 8 | /// The amount of black to be mixed in. 9 | /// 10 | /// @return {color} 11 | /// 12 | /// @example scss 13 | /// .element { 14 | /// background-color: shade(#ffbb52, 60%); 15 | /// } 16 | /// 17 | /// // CSS Output 18 | /// .element { 19 | /// background-color: #664a20; 20 | /// } 21 | 22 | @function shade( 23 | $color, 24 | $percent 25 | ) { 26 | @if not _is-color($color) { 27 | @error "`#{$color}` is not a valid color for the `$color` argument in " + 28 | "the `shade` mixin."; 29 | } @else { 30 | @return mix(#000, $color, $percent); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/app/qrscanner-alert/qrscanner-alert.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { FormsModule } from '@angular/forms'; 4 | import { Routes, RouterModule } from '@angular/router'; 5 | 6 | import { IonicModule } from '@ionic/angular'; 7 | 8 | import { QRScannerAlert } from './qrscanner-alert.page'; 9 | import { TranslateModule } from '@ngx-translate/core'; 10 | 11 | const routes: Routes = [ 12 | { 13 | path: '', 14 | component: QRScannerAlert 15 | } 16 | ]; 17 | 18 | @NgModule({ 19 | imports: [ 20 | CommonModule, 21 | FormsModule, 22 | IonicModule, 23 | TranslateModule, 24 | RouterModule.forChild(routes) 25 | ], 26 | declarations: [QRScannerAlert] 27 | }) 28 | export class QrscannerAlertPageModule {} 29 | -------------------------------------------------------------------------------- /src/services/scroll-to.service.ts: -------------------------------------------------------------------------------- 1 | import {Injectable} from '@angular/core'; 2 | import {IonContent} from '@ionic/angular'; 3 | 4 | @Injectable({ 5 | providedIn: 'root' 6 | }) 7 | export class ScrollToService { 8 | 9 | constructor() { 10 | } 11 | 12 | scrollTo(elementId: string, options?: boolean | ScrollIntoViewOptions): void { 13 | const element = document.getElementById(elementId); 14 | if (!element) { 15 | return; 16 | } 17 | element.scrollIntoView(options || { 18 | behavior: 'smooth' 19 | }); 20 | } 21 | 22 | scrollToWithinContent(content: IonContent, elementId: string): void { 23 | const y = document.getElementById(elementId).offsetTop; 24 | content.scrollToPoint(0, y, 500).then(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/app/manage-learn/reports/observation-solution-entity-listing/observation-solution-entity-listing.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 5 |
6 | 7 |
8 |
9 | 14 | 15 | 16 |
17 |
18 | 19 | 20 | 21 | 22 |
-------------------------------------------------------------------------------- /scripts/application/SunbirdApplication.java: -------------------------------------------------------------------------------- 1 | package org.sunbird; 2 | 3 | import androidx.multidex.MultiDexApplication; 4 | 5 | import com.crashlytics.android.Crashlytics; 6 | 7 | import org.sunbird.config.BuildConfigUtil; 8 | 9 | import io.fabric.sdk.android.Fabric; 10 | 11 | /** 12 | * Created by swayangjit on 12/4/19. 13 | */ 14 | public class SunbirdApplication extends MultiDexApplication { 15 | public static final String PACKAGE_NAME = "org.sunbird.app"; 16 | 17 | @Override 18 | public void onCreate() { 19 | super.onCreate(); 20 | initCrashlytics(); 21 | } 22 | 23 | private void initCrashlytics() { 24 | if (BuildConfigUtil.getBuildConfigValue(PACKAGE_NAME, "USE_CRASHLYTICS")) { 25 | Fabric.with(this, new Crashlytics()); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/app/components/license-card-component/license-card-component.component.scss: -------------------------------------------------------------------------------- 1 | @import "src/assets/styles/variables"; 2 | @import "src/assets/styles/_variables.scss"; 3 | 4 | .view-credits{ 5 | margin-left: 0; 6 | span{ 7 | color: $blue; 8 | ion-icon{ 9 | padding: 0 0 4px 8px; 10 | vertical-align: middle; 11 | font-size: 18px; 12 | margin-right: 2%; 13 | float: right; 14 | } 15 | } 16 | 17 | } 18 | .showLicensce{ 19 | p{ 20 | margin-bottom: 16px; 21 | } 22 | ion-card-title{ 23 | strong{ 24 | font-size: .75rem; 25 | } 26 | } 27 | } 28 | 29 | .label-margin-bottom { 30 | margin-bottom: 3px !important; 31 | } 32 | 33 | .subtitle-color{ 34 | color: map-get($colors, granite_gray); 35 | } 36 | .font-12 { 37 | font-size: 12px !important; 38 | } 39 | -------------------------------------------------------------------------------- /src/app/components/popups/dialog-popup/dialog-popup.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
{{title}}
6 |
7 |
8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | {{body}} 16 | 17 | 18 | {{buttonText}} 19 | 20 |
21 | -------------------------------------------------------------------------------- /src/app/components/support-acknowledgement/support-acknowledgement.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 |
6 |
7 |

{{'RESPONSE_ACKNOWLEGED' | translate}}

8 | {{'FOR_SUPPORT' | translate:{'%s': boardContact.name} }} 9 |
10 | call 11 | {{boardContact.contactinfo.number}} 12 |
13 | {{boardContact.message}} 14 | 15 |
16 |
17 |
-------------------------------------------------------------------------------- /src/app/manage-learn/core/guards/deactivate.guard.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ActivatedRouteSnapshot,CanDeactivate, RouterStateSnapshot } from '@angular/router'; 3 | import { Observable } from 'rxjs'; 4 | 5 | export interface isDeactivatable { 6 | pageExitConfirm: () => Observable | Promise | boolean; 7 | } 8 | 9 | @Injectable({ 10 | providedIn: 'root' 11 | }) 12 | export class DeactivateGuard implements CanDeactivate { 13 | canDeactivate( 14 | component: isDeactivatable, 15 | currentRoute: ActivatedRouteSnapshot, 16 | currentState: RouterStateSnapshot, 17 | nextState: RouterStateSnapshot 18 | ): Observable | Promise | boolean { 19 | return component.pageExitConfirm ? component.pageExitConfirm() : true; 20 | } 21 | } --------------------------------------------------------------------------------