From d7d47722527bcf5bdff7668f695d7e9be7975264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 5 Mar 2024 14:35:55 +0100 Subject: [PATCH 1/8] MOBILE-3947 blocks: Remove unnecessary imports and exports from blocks --- .../block/activitymodules/activitymodules.module.ts | 8 -------- .../block/activitymodules/components/components.module.ts | 3 --- .../block/activityresults/activityresults.module.ts | 8 -------- .../block/activityresults/components/components.module.ts | 3 --- src/addons/block/badges/badges.module.ts | 8 -------- src/addons/block/badges/components/components.module.ts | 3 --- src/addons/block/blogmenu/blogmenu.module.ts | 8 -------- src/addons/block/blogmenu/components/components.module.ts | 3 --- src/addons/block/blogrecent/blogrecent.module.ts | 8 -------- .../block/blogrecent/components/components.module.ts | 3 --- src/addons/block/blogtags/blogtags.module.ts | 8 -------- src/addons/block/blogtags/components/components.module.ts | 3 --- src/addons/block/calendarmonth/calendarmonth.module.ts | 6 ------ .../block/calendarupcoming/calendarupcoming.module.ts | 6 ------ src/addons/block/comments/comments.module.ts | 6 ------ .../block/completionstatus/completionstatus.module.ts | 6 ------ src/addons/block/courselist/courselist.module.ts | 6 ------ src/addons/block/globalsearch/globalsearch.module.ts | 8 -------- src/addons/block/glossaryrandom/glossaryrandom.module.ts | 6 ------ src/addons/block/learningplans/learningplans.module.ts | 8 -------- .../block/myoverview/components/components.module.ts | 3 --- src/addons/block/myoverview/myoverview.module.ts | 8 -------- .../block/newsitems/components/components.module.ts | 3 --- src/addons/block/newsitems/newsitems.module.ts | 8 -------- .../block/onlineusers/components/components.module.ts | 3 --- src/addons/block/onlineusers/onlineusers.module.ts | 8 -------- src/addons/block/privatefiles/privatefiles.module.ts | 6 ------ .../block/recentactivity/components/components.module.ts | 3 --- src/addons/block/recentactivity/recentactivity.module.ts | 8 -------- .../components/components.module.ts | 3 --- .../recentlyaccessedcourses.module.ts | 6 ------ .../recentlyaccesseditems/components/components.module.ts | 3 --- .../recentlyaccesseditems/recentlyaccesseditems.module.ts | 6 ------ .../block/rssclient/components/components.module.ts | 3 --- src/addons/block/rssclient/rssclient.module.ts | 8 -------- src/addons/block/searchforums/searchforums.module.ts | 8 -------- src/addons/block/selfcompletion/selfcompletion.module.ts | 6 ------ .../block/sitemainmenu/components/components.module.ts | 3 --- src/addons/block/sitemainmenu/sitemainmenu.module.ts | 6 ------ .../block/starredcourses/components/components.module.ts | 3 --- src/addons/block/starredcourses/starredcourses.module.ts | 8 -------- src/addons/block/tags/components/components.module.ts | 3 --- src/addons/block/tags/tags.module.ts | 8 -------- src/addons/block/timeline/components/components.module.ts | 4 ---- src/addons/block/timeline/timeline.module.ts | 8 -------- 45 files changed, 254 deletions(-) diff --git a/src/addons/block/activitymodules/activitymodules.module.ts b/src/addons/block/activitymodules/activitymodules.module.ts index a9f7a7faa..1268bf6b0 100644 --- a/src/addons/block/activitymodules/activitymodules.module.ts +++ b/src/addons/block/activitymodules/activitymodules.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockActivityModulesHandler } from './services/block-handler'; -import { AddonBlockActivityModulesComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockActivityModulesComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/activitymodules/components/components.module.ts b/src/addons/block/activitymodules/components/components.module.ts index e01f255d0..5f9ba9269 100644 --- a/src/addons/block/activitymodules/components/components.module.ts +++ b/src/addons/block/activitymodules/components/components.module.ts @@ -25,8 +25,5 @@ import { AddonBlockActivityModulesComponent } from './activitymodules/activitymo imports: [ CoreSharedModule, ], - exports: [ - AddonBlockActivityModulesComponent, - ], }) export class AddonBlockActivityModulesComponentsModule {} diff --git a/src/addons/block/activityresults/activityresults.module.ts b/src/addons/block/activityresults/activityresults.module.ts index 66b745514..cbab687f8 100644 --- a/src/addons/block/activityresults/activityresults.module.ts +++ b/src/addons/block/activityresults/activityresults.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockActivityResultsHandler } from './services/block-handler'; -import { AddonBlockActivityResultsComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockActivityResultsComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/activityresults/components/components.module.ts b/src/addons/block/activityresults/components/components.module.ts index a19585ca9..d088bd579 100644 --- a/src/addons/block/activityresults/components/components.module.ts +++ b/src/addons/block/activityresults/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockActivityResultsComponent } from './activityresults/activityre imports: [ CoreSharedModule, ], - exports: [ - AddonBlockActivityResultsComponent, - ], }) export class AddonBlockActivityResultsComponentsModule {} diff --git a/src/addons/block/badges/badges.module.ts b/src/addons/block/badges/badges.module.ts index 0c221fa10..6a89caa96 100644 --- a/src/addons/block/badges/badges.module.ts +++ b/src/addons/block/badges/badges.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockBadgesHandler } from './services/block-handler'; -import { AddonBlockBadgesComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockBadgesComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/badges/components/components.module.ts b/src/addons/block/badges/components/components.module.ts index 3e1b91d7a..0db4364c0 100644 --- a/src/addons/block/badges/components/components.module.ts +++ b/src/addons/block/badges/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockBadgesComponent } from './badges/badges'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockBadgesComponent, - ], }) export class AddonBlockBadgesComponentsModule {} diff --git a/src/addons/block/blogmenu/blogmenu.module.ts b/src/addons/block/blogmenu/blogmenu.module.ts index ba8442c9f..f4d464d32 100644 --- a/src/addons/block/blogmenu/blogmenu.module.ts +++ b/src/addons/block/blogmenu/blogmenu.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockBlogMenuHandler } from './services/block-handler'; -import { AddonBlockBlogMenuComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockBlogMenuComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/blogmenu/components/components.module.ts b/src/addons/block/blogmenu/components/components.module.ts index 7119d9c29..f2f48abe3 100644 --- a/src/addons/block/blogmenu/components/components.module.ts +++ b/src/addons/block/blogmenu/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockBlogMenuComponent } from './blogmenu/blogmenu'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockBlogMenuComponent, - ], }) export class AddonBlockBlogMenuComponentsModule {} diff --git a/src/addons/block/blogrecent/blogrecent.module.ts b/src/addons/block/blogrecent/blogrecent.module.ts index f870ccac2..a9d636306 100644 --- a/src/addons/block/blogrecent/blogrecent.module.ts +++ b/src/addons/block/blogrecent/blogrecent.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockBlogRecentHandler } from './services/block-handler'; -import { AddonBlockBlogRecentComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockBlogRecentComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/blogrecent/components/components.module.ts b/src/addons/block/blogrecent/components/components.module.ts index f38a8dfa5..e961e8dde 100644 --- a/src/addons/block/blogrecent/components/components.module.ts +++ b/src/addons/block/blogrecent/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockBlogRecentComponent } from './blogrecent/blogrecent'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockBlogRecentComponent, - ], }) export class AddonBlockBlogRecentComponentsModule {} diff --git a/src/addons/block/blogtags/blogtags.module.ts b/src/addons/block/blogtags/blogtags.module.ts index 11236ff57..3a7f9069d 100644 --- a/src/addons/block/blogtags/blogtags.module.ts +++ b/src/addons/block/blogtags/blogtags.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockBlogTagsHandler } from './services/block-handler'; -import { AddonBlockBlogTagsComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockBlogTagsComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/blogtags/components/components.module.ts b/src/addons/block/blogtags/components/components.module.ts index 4b8d24e88..f63845b81 100644 --- a/src/addons/block/blogtags/components/components.module.ts +++ b/src/addons/block/blogtags/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockBlogTagsComponent } from './blogtags/blogtags'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockBlogTagsComponent, - ], }) export class AddonBlockBlogTagsComponentsModule {} diff --git a/src/addons/block/calendarmonth/calendarmonth.module.ts b/src/addons/block/calendarmonth/calendarmonth.module.ts index 34cf9c783..3040049ea 100644 --- a/src/addons/block/calendarmonth/calendarmonth.module.ts +++ b/src/addons/block/calendarmonth/calendarmonth.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockCalendarMonthHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/calendarupcoming/calendarupcoming.module.ts b/src/addons/block/calendarupcoming/calendarupcoming.module.ts index 92e5d1017..8181d8724 100644 --- a/src/addons/block/calendarupcoming/calendarupcoming.module.ts +++ b/src/addons/block/calendarupcoming/calendarupcoming.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockCalendarUpcomingHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/comments/comments.module.ts b/src/addons/block/comments/comments.module.ts index 7f15120bc..45eef8eab 100644 --- a/src/addons/block/comments/comments.module.ts +++ b/src/addons/block/comments/comments.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockCommentsHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/completionstatus/completionstatus.module.ts b/src/addons/block/completionstatus/completionstatus.module.ts index 63f278c79..866a7755b 100644 --- a/src/addons/block/completionstatus/completionstatus.module.ts +++ b/src/addons/block/completionstatus/completionstatus.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockCompletionStatusHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/courselist/courselist.module.ts b/src/addons/block/courselist/courselist.module.ts index e8ae2b06e..e8a0a877e 100644 --- a/src/addons/block/courselist/courselist.module.ts +++ b/src/addons/block/courselist/courselist.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockCourseListHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/globalsearch/globalsearch.module.ts b/src/addons/block/globalsearch/globalsearch.module.ts index 3861622ec..b83946df5 100644 --- a/src/addons/block/globalsearch/globalsearch.module.ts +++ b/src/addons/block/globalsearch/globalsearch.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockGlobalSearchHandler } from './services/block-handler'; -import { CoreBlockComponentsModule } from '@features/block/components/components.module'; @NgModule({ - imports: [ - IonicModule, - CoreBlockComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/glossaryrandom/glossaryrandom.module.ts b/src/addons/block/glossaryrandom/glossaryrandom.module.ts index c08c28f20..6de006d02 100644 --- a/src/addons/block/glossaryrandom/glossaryrandom.module.ts +++ b/src/addons/block/glossaryrandom/glossaryrandom.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockGlossaryRandomHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/learningplans/learningplans.module.ts b/src/addons/block/learningplans/learningplans.module.ts index f461b1dec..3ef15ab3c 100644 --- a/src/addons/block/learningplans/learningplans.module.ts +++ b/src/addons/block/learningplans/learningplans.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockLearningPlansHandler } from './services/block-handler'; -import { CoreBlockComponentsModule } from '@features/block/components/components.module'; @NgModule({ - imports: [ - IonicModule, - CoreBlockComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/myoverview/components/components.module.ts b/src/addons/block/myoverview/components/components.module.ts index c1829bd61..7bfa03f39 100644 --- a/src/addons/block/myoverview/components/components.module.ts +++ b/src/addons/block/myoverview/components/components.module.ts @@ -26,8 +26,5 @@ import { AddonBlockMyOverviewComponent } from './myoverview/myoverview'; CoreSharedModule, CoreCoursesComponentsModule, ], - exports: [ - AddonBlockMyOverviewComponent, - ], }) export class AddonBlockMyOverviewComponentsModule {} diff --git a/src/addons/block/myoverview/myoverview.module.ts b/src/addons/block/myoverview/myoverview.module.ts index b168d1b69..1fcb9ed59 100644 --- a/src/addons/block/myoverview/myoverview.module.ts +++ b/src/addons/block/myoverview/myoverview.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; -import { AddonBlockMyOverviewComponentsModule } from './components/components.module'; import { AddonBlockMyOverviewHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - AddonBlockMyOverviewComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/newsitems/components/components.module.ts b/src/addons/block/newsitems/components/components.module.ts index d4a440bec..1a4db480b 100644 --- a/src/addons/block/newsitems/components/components.module.ts +++ b/src/addons/block/newsitems/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockNewsItemsComponent } from './newsitems/newsitems'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockNewsItemsComponent, - ], }) export class AddonBlockNewsItemsComponentsModule {} diff --git a/src/addons/block/newsitems/newsitems.module.ts b/src/addons/block/newsitems/newsitems.module.ts index b7822c552..3cd22bb69 100644 --- a/src/addons/block/newsitems/newsitems.module.ts +++ b/src/addons/block/newsitems/newsitems.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockNewsItemsHandler } from './services/block-handler'; -import { AddonBlockNewsItemsComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockNewsItemsComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/onlineusers/components/components.module.ts b/src/addons/block/onlineusers/components/components.module.ts index b5444458e..92d9a5861 100644 --- a/src/addons/block/onlineusers/components/components.module.ts +++ b/src/addons/block/onlineusers/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockOnlineUsersComponent } from './onlineusers/onlineusers'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockOnlineUsersComponent, - ], }) export class AddonBlockOnlineUsersComponentsModule {} diff --git a/src/addons/block/onlineusers/onlineusers.module.ts b/src/addons/block/onlineusers/onlineusers.module.ts index 9cfb819dc..0fd540158 100644 --- a/src/addons/block/onlineusers/onlineusers.module.ts +++ b/src/addons/block/onlineusers/onlineusers.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockOnlineUsersHandler } from './services/block-handler'; -import { AddonBlockOnlineUsersComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockOnlineUsersComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/privatefiles/privatefiles.module.ts b/src/addons/block/privatefiles/privatefiles.module.ts index 55d4316ac..0eafcea75 100644 --- a/src/addons/block/privatefiles/privatefiles.module.ts +++ b/src/addons/block/privatefiles/privatefiles.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockPrivateFilesHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/recentactivity/components/components.module.ts b/src/addons/block/recentactivity/components/components.module.ts index fb854c0ae..fb37f28c0 100644 --- a/src/addons/block/recentactivity/components/components.module.ts +++ b/src/addons/block/recentactivity/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockRecentActivityComponent } from './recentactivity/recentactivi imports: [ CoreSharedModule, ], - exports: [ - AddonBlockRecentActivityComponent, - ], }) export class AddonBlockRecentActivityComponentsModule {} diff --git a/src/addons/block/recentactivity/recentactivity.module.ts b/src/addons/block/recentactivity/recentactivity.module.ts index e461c2e01..4bc6895fc 100644 --- a/src/addons/block/recentactivity/recentactivity.module.ts +++ b/src/addons/block/recentactivity/recentactivity.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockRecentActivityHandler } from './services/block-handler'; -import { AddonBlockRecentActivityComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockRecentActivityComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/recentlyaccessedcourses/components/components.module.ts b/src/addons/block/recentlyaccessedcourses/components/components.module.ts index 875fdc377..f2476ec05 100644 --- a/src/addons/block/recentlyaccessedcourses/components/components.module.ts +++ b/src/addons/block/recentlyaccessedcourses/components/components.module.ts @@ -27,8 +27,5 @@ import { AddonBlockRecentlyAccessedCoursesComponent } from './recentlyaccessedco CoreSharedModule, CoreCoursesComponentsModule, ], - exports: [ - AddonBlockRecentlyAccessedCoursesComponent, - ], }) export class AddonBlockRecentlyAccessedCoursesComponentsModule {} diff --git a/src/addons/block/recentlyaccessedcourses/recentlyaccessedcourses.module.ts b/src/addons/block/recentlyaccessedcourses/recentlyaccessedcourses.module.ts index fa26dc333..7717d6e72 100644 --- a/src/addons/block/recentlyaccessedcourses/recentlyaccessedcourses.module.ts +++ b/src/addons/block/recentlyaccessedcourses/recentlyaccessedcourses.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { CoreSharedModule } from '@/core/shared.module'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; -import { AddonBlockRecentlyAccessedCoursesComponentsModule } from './components/components.module'; import { AddonBlockRecentlyAccessedCoursesHandler } from './services/block-handler'; @NgModule({ - imports: [ - CoreSharedModule, - AddonBlockRecentlyAccessedCoursesComponentsModule, - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/recentlyaccesseditems/components/components.module.ts b/src/addons/block/recentlyaccesseditems/components/components.module.ts index 486b86055..d61f5726e 100644 --- a/src/addons/block/recentlyaccesseditems/components/components.module.ts +++ b/src/addons/block/recentlyaccesseditems/components/components.module.ts @@ -27,8 +27,5 @@ import { AddonBlockRecentlyAccessedItemsComponent } from './recentlyaccesseditem CoreSharedModule, CoreCoursesComponentsModule, ], - exports: [ - AddonBlockRecentlyAccessedItemsComponent, - ], }) export class AddonBlockRecentlyAccessedItemsComponentsModule {} diff --git a/src/addons/block/recentlyaccesseditems/recentlyaccesseditems.module.ts b/src/addons/block/recentlyaccesseditems/recentlyaccesseditems.module.ts index 0ab91b252..44e3b190a 100644 --- a/src/addons/block/recentlyaccesseditems/recentlyaccesseditems.module.ts +++ b/src/addons/block/recentlyaccesseditems/recentlyaccesseditems.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { CoreSharedModule } from '@/core/shared.module'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; -import { AddonBlockRecentlyAccessedItemsComponentsModule } from './components/components.module'; import { AddonBlockRecentlyAccessedItemsHandler } from './services/block-handler'; @NgModule({ - imports: [ - CoreSharedModule, - AddonBlockRecentlyAccessedItemsComponentsModule, - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/rssclient/components/components.module.ts b/src/addons/block/rssclient/components/components.module.ts index f0781fccd..3482a995b 100644 --- a/src/addons/block/rssclient/components/components.module.ts +++ b/src/addons/block/rssclient/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockRssClientComponent } from './rssclient/rssclient'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockRssClientComponent, - ], }) export class AddonBlockRssClientComponentsModule {} diff --git a/src/addons/block/rssclient/rssclient.module.ts b/src/addons/block/rssclient/rssclient.module.ts index 72bcc39e8..56b151891 100644 --- a/src/addons/block/rssclient/rssclient.module.ts +++ b/src/addons/block/rssclient/rssclient.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockRssClientHandler } from './services/block-handler'; -import { AddonBlockRssClientComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockRssClientComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/searchforums/searchforums.module.ts b/src/addons/block/searchforums/searchforums.module.ts index d2299d28b..e8970341d 100644 --- a/src/addons/block/searchforums/searchforums.module.ts +++ b/src/addons/block/searchforums/searchforums.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockSearchForumsHandler } from './services/block-handler'; -import { CoreBlockComponentsModule } from '@features/block/components/components.module'; @NgModule({ - imports: [ - IonicModule, - CoreBlockComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/selfcompletion/selfcompletion.module.ts b/src/addons/block/selfcompletion/selfcompletion.module.ts index 42fb3ce44..9ae401796 100644 --- a/src/addons/block/selfcompletion/selfcompletion.module.ts +++ b/src/addons/block/selfcompletion/selfcompletion.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockSelfCompletionHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/sitemainmenu/components/components.module.ts b/src/addons/block/sitemainmenu/components/components.module.ts index f3b670ae4..6b3371beb 100644 --- a/src/addons/block/sitemainmenu/components/components.module.ts +++ b/src/addons/block/sitemainmenu/components/components.module.ts @@ -27,8 +27,5 @@ import { AddonBlockSiteMainMenuComponent } from './sitemainmenu/sitemainmenu'; CoreSharedModule, CoreCourseComponentsModule, ], - exports: [ - AddonBlockSiteMainMenuComponent, - ], }) export class AddonBlockSiteMainMenuComponentsModule {} diff --git a/src/addons/block/sitemainmenu/sitemainmenu.module.ts b/src/addons/block/sitemainmenu/sitemainmenu.module.ts index cf01b58e2..322eacbb8 100644 --- a/src/addons/block/sitemainmenu/sitemainmenu.module.ts +++ b/src/addons/block/sitemainmenu/sitemainmenu.module.ts @@ -13,16 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { CoreSharedModule } from '@/core/shared.module'; -import { AddonBlockSiteMainMenuComponentsModule } from './components/components.module'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockSiteMainMenuHandler } from './services/block-handler'; @NgModule({ - imports: [ - CoreSharedModule, - AddonBlockSiteMainMenuComponentsModule, - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/starredcourses/components/components.module.ts b/src/addons/block/starredcourses/components/components.module.ts index ea8ca89b3..143335439 100644 --- a/src/addons/block/starredcourses/components/components.module.ts +++ b/src/addons/block/starredcourses/components/components.module.ts @@ -27,8 +27,5 @@ import { AddonBlockStarredCoursesComponent } from './starredcourses/starredcours CoreSharedModule, CoreCoursesComponentsModule, ], - exports: [ - AddonBlockStarredCoursesComponent, - ], }) export class AddonBlockStarredCoursesComponentsModule {} diff --git a/src/addons/block/starredcourses/starredcourses.module.ts b/src/addons/block/starredcourses/starredcourses.module.ts index e88ff3b4b..a4611498a 100644 --- a/src/addons/block/starredcourses/starredcourses.module.ts +++ b/src/addons/block/starredcourses/starredcourses.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; -import { AddonBlockStarredCoursesComponentsModule } from './components/components.module'; import { AddonBlockStarredCoursesHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - AddonBlockStarredCoursesComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/tags/components/components.module.ts b/src/addons/block/tags/components/components.module.ts index 966f87551..74384dffe 100644 --- a/src/addons/block/tags/components/components.module.ts +++ b/src/addons/block/tags/components/components.module.ts @@ -24,8 +24,5 @@ import { AddonBlockTagsComponent } from './tags/tags'; imports: [ CoreSharedModule, ], - exports: [ - AddonBlockTagsComponent, - ], }) export class AddonBlockTagsComponentsModule {} diff --git a/src/addons/block/tags/tags.module.ts b/src/addons/block/tags/tags.module.ts index e088c245c..7a3bb4567 100644 --- a/src/addons/block/tags/tags.module.ts +++ b/src/addons/block/tags/tags.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; import { AddonBlockTagsHandler } from './services/block-handler'; -import { AddonBlockTagsComponentsModule } from './components/components.module'; @NgModule({ - imports: [ - IonicModule, - AddonBlockTagsComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, diff --git a/src/addons/block/timeline/components/components.module.ts b/src/addons/block/timeline/components/components.module.ts index 00c06106d..6a951de0a 100644 --- a/src/addons/block/timeline/components/components.module.ts +++ b/src/addons/block/timeline/components/components.module.ts @@ -29,9 +29,5 @@ import { CoreSearchComponentsModule } from '@features/search/components/componen CoreSharedModule, CoreSearchComponentsModule, ], - exports: [ - AddonBlockTimelineComponent, - AddonBlockTimelineEventsComponent, - ], }) export class AddonBlockTimelineComponentsModule {} diff --git a/src/addons/block/timeline/timeline.module.ts b/src/addons/block/timeline/timeline.module.ts index 62cd2d20e..ed84d3438 100644 --- a/src/addons/block/timeline/timeline.module.ts +++ b/src/addons/block/timeline/timeline.module.ts @@ -13,18 +13,10 @@ // limitations under the License. import { APP_INITIALIZER, NgModule } from '@angular/core'; -import { IonicModule } from '@ionic/angular'; -import { TranslateModule } from '@ngx-translate/core'; import { CoreBlockDelegate } from '@features/block/services/block-delegate'; -import { AddonBlockTimelineComponentsModule } from './components/components.module'; import { AddonBlockTimelineHandler } from './services/block-handler'; @NgModule({ - imports: [ - IonicModule, - AddonBlockTimelineComponentsModule, - TranslateModule.forChild(), - ], providers: [ { provide: APP_INITIALIZER, From a05aba6bef2d499ae75c0ceb609f1eb03838dc44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 6 Mar 2024 12:28:47 +0100 Subject: [PATCH 2/8] MOBILE-3947 blocks: Check if blocks are disabled when loading filters --- src/core/features/block/services/block-helper.ts | 6 ++++-- src/core/features/filter/services/filter-helper.ts | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/features/block/services/block-helper.ts b/src/core/features/block/services/block-helper.ts index f1f1288c8..be87ed6fb 100644 --- a/src/core/features/block/services/block-helper.ts +++ b/src/core/features/block/services/block-helper.ts @@ -16,6 +16,7 @@ import { Injectable } from '@angular/core'; import { CoreCourse, CoreCourseBlock } from '@features/course/services/course'; import { CoreBlockDelegate } from './block-delegate'; import { makeSingleton } from '@singletons'; +import { CoreSite } from '@classes/sites/site'; /** * Service that provides helper functions for blocks. @@ -26,10 +27,11 @@ export class CoreBlockHelperProvider { /** * Return if it get course blocks options is enabled for the current site. * + * @param site Site. If not defined, current site. * @returns true if enabled, false otherwise. */ - canGetCourseBlocks(): boolean { - return CoreCourse.canGetCourseBlocks() && !CoreBlockDelegate.areBlocksDisabledInCourses(); + canGetCourseBlocks(site?: CoreSite): boolean { + return CoreCourse.canGetCourseBlocks(site) && !CoreBlockDelegate.areBlocksDisabledInCourses(site); } /** diff --git a/src/core/features/filter/services/filter-helper.ts b/src/core/features/filter/services/filter-helper.ts index 5c0e01051..5fe6845af 100644 --- a/src/core/features/filter/services/filter-helper.ts +++ b/src/core/features/filter/services/filter-helper.ts @@ -32,6 +32,7 @@ import { CoreLogger } from '@singletons/logger'; import { CoreSite } from '@classes/sites/site'; import { CoreCourseHelper } from '@features/course/services/course-helper'; import { firstValueFrom } from 'rxjs'; +import { CoreBlockHelper } from '@features/block/services/block-helper'; /** * Helper service to provide filter functionalities. @@ -246,7 +247,7 @@ export class CoreFilterHelperProvider { const getFilters = () => this.getCourseContexts(instanceId, siteId); return await this.getCacheableFilters(contextLevel, instanceId, getFilters, options, site); - } else if (contextLevel == 'block' && courseId && CoreCourse.canGetCourseBlocks(site)) { + } else if (contextLevel == 'block' && courseId && CoreBlockHelper.canGetCourseBlocks(site)) { // Get all the course blocks filters with a single call to decrease number of WS calls. const getFilters = () => this.getBlocksContexts(courseId, siteId); From a6a31f8e796762043648ce63b5978ef258de8d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 6 Mar 2024 12:30:04 +0100 Subject: [PATCH 3/8] MOBILE-3947 blocks: Check blocks are enabled on blocks delegates --- src/core/classes/delegate-sorted.ts | 4 +--- src/core/features/block/services/block-delegate.ts | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/core/classes/delegate-sorted.ts b/src/core/classes/delegate-sorted.ts index 76910315f..987ed7aab 100644 --- a/src/core/classes/delegate-sorted.ts +++ b/src/core/classes/delegate-sorted.ts @@ -31,9 +31,7 @@ export class CoreSortedDelegate< protected sortedHandlers: DisplayType[] = []; /** - * Constructor of the Delegate. - * - * @param delegateName Delegate name used for logging purposes. + * @inheritdoc */ constructor(delegateName: string) { super(delegateName, true); diff --git a/src/core/features/block/services/block-delegate.ts b/src/core/features/block/services/block-delegate.ts index d492a3dd4..6f5e46f61 100644 --- a/src/core/features/block/services/block-delegate.ts +++ b/src/core/features/block/services/block-delegate.ts @@ -109,6 +109,13 @@ export class CoreBlockDelegateService extends CoreDelegate { this.blocksUpdateObservable = new Subject(); } + /** + * @inheritdoc + */ + async isEnabled(): Promise { + return !this.areBlocksDisabledInSite(); + } + /** * Check if blocks are disabled in a certain site. * From 3bdb936d58574d26df96df894bae779ef78ba76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Wed, 6 Mar 2024 14:04:50 +0100 Subject: [PATCH 4/8] MOBILE-3947 chore: Decouple services from our compiler --- src/addons/badges/badges.module.ts | 16 +- src/addons/calendar/calendar.module.ts | 29 ++- .../messageoutput/messageoutput.module.ts | 16 +- src/addons/messages/messages.module.ts | 25 +- src/addons/mod/assign/assign.module.ts | 35 ++- .../bigbluebuttonbn/bigbluebuttonbn.module.ts | 16 +- src/addons/mod/book/book.module.ts | 16 +- src/addons/mod/chat/chat.module.ts | 19 +- src/addons/mod/choice/choice.module.ts | 23 +- src/addons/mod/data/data.module.ts | 32 ++- src/addons/mod/feedback/feedback.module.ts | 27 +- src/addons/mod/folder/folder.module.ts | 20 +- src/addons/mod/forum/forum.module.ts | 27 +- src/addons/mod/glossary/glossary.module.ts | 27 +- .../mod/h5pactivity/h5pactivity.module.ts | 21 +- src/addons/mod/imscp/imscp.module.ts | 16 +- src/addons/mod/lesson/lesson.module.ts | 27 +- src/addons/mod/lti/lti.module.ts | 21 +- src/addons/mod/page/page.module.ts | 20 +- src/addons/mod/quiz/quiz.module.ts | 31 ++- src/addons/mod/resource/resource.module.ts | 16 +- src/addons/mod/scorm/scorm.module.ts | 27 +- src/addons/mod/survey/survey.module.ts | 29 ++- src/addons/mod/url/url.module.ts | 20 +- src/addons/mod/wiki/wiki.module.ts | 23 +- src/addons/mod/workshop/workshop.module.ts | 8 +- src/addons/notes/notes.module.ts | 25 +- .../notifications/notifications.module.ts | 20 +- .../privatefiles/privatefiles.module.ts | 20 +- src/core/core.module.ts | 124 ++++----- src/core/features/block/block.module.ts | 19 +- src/core/features/compile/services/compile.ts | 235 +++++++++--------- .../contentlinks/contentlinks.module.ts | 20 +- src/core/features/course/course.module.ts | 50 ++-- src/core/features/courses/courses.module.ts | 24 +- src/core/features/editor/editor.module.ts | 16 +- src/core/features/enrol/enrol.module.ts | 23 +- .../fileuploader/fileuploader.module.ts | 25 +- src/core/features/filter/filter.module.ts | 24 +- src/core/features/grades/grades.module.ts | 21 +- src/core/features/h5p/h5p.module.ts | 16 +- src/core/features/login/login.module.ts | 19 +- src/core/features/mainmenu/mainmenu.module.ts | 27 +- src/core/features/native/native.module.ts | 67 ++--- .../pushnotifications.module.ts | 21 +- src/core/features/question/question.module.ts | 28 ++- src/core/features/rating/rating.module.ts | 24 +- .../features/reminders/reminders.module.ts | 8 +- src/core/features/search/search.module.ts | 20 +- src/core/features/settings/settings.module.ts | 21 +- .../sharedfiles/sharedfiles.module.ts | 22 +- src/core/features/sitehome/sitehome.module.ts | 16 +- src/core/features/styles/styles.module.ts | 18 +- src/core/features/user/user.module.ts | 38 +-- src/core/features/xapi/xapi.module.ts | 20 +- 55 files changed, 1015 insertions(+), 583 deletions(-) diff --git a/src/addons/badges/badges.module.ts b/src/addons/badges/badges.module.ts index ed210a21e..d96f6d730 100644 --- a/src/addons/badges/badges.module.ts +++ b/src/addons/badges/badges.module.ts @@ -23,11 +23,19 @@ import { AddonBadgesUserHandler } from './services/handlers/user'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CorePushNotificationsDelegate } from '@features/pushnotifications/services/push-delegate'; import { AddonBadgesPushClickHandler } from './services/handlers/push-click'; -import { AddonBadgesProvider } from './services/badges'; -export const ADDON_BADGES_SERVICES: Type[] = [ - AddonBadgesProvider, -]; +/** + * Get badges services. + * + * @returns Returns badges services. + */ +export async function getBadgesServices(): Promise[]> { + const { AddonBadgesProvider } = await import('@addons/badges/services/badges'); + + return [ + AddonBadgesProvider, + ]; +} const mainMenuRoutes: Routes = [ { diff --git a/src/addons/calendar/calendar.module.ts b/src/addons/calendar/calendar.module.ts index 408011879..2faf6597e 100644 --- a/src/addons/calendar/calendar.module.ts +++ b/src/addons/calendar/calendar.module.ts @@ -27,18 +27,27 @@ import { CORE_SITE_SCHEMAS } from '@services/sites'; import { CALENDAR_SITE_SCHEMA } from './services/database/calendar'; import { CALENDAR_OFFLINE_SITE_SCHEMA } from './services/database/calendar-offline'; import { AddonCalendarComponentsModule } from './components/components.module'; -import { AddonCalendar, AddonCalendarProvider } from './services/calendar'; +import { AddonCalendar } from './services/calendar'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; -import { AddonCalendarOfflineProvider } from './services/calendar-offline'; -import { AddonCalendarHelperProvider } from './services/calendar-helper'; -import { AddonCalendarSyncProvider } from './services/calendar-sync'; -export const ADDON_CALENDAR_SERVICES: Type[] = [ - AddonCalendarProvider, - AddonCalendarOfflineProvider, - AddonCalendarHelperProvider, - AddonCalendarSyncProvider, -]; +/** + * Get calendar services. + * + * @returns Returns calendar services. + */ +export async function getCalendarServices(): Promise[]> { + const { AddonCalendarProvider } = await import('@addons/calendar/services/calendar'); + const { AddonCalendarOfflineProvider } = await import('@addons/calendar/services/calendar-offline'); + const { AddonCalendarHelperProvider } = await import('@addons/calendar/services/calendar-helper'); + const { AddonCalendarSyncProvider } = await import('@addons/calendar/services/calendar-sync'); + + return [ + AddonCalendarProvider, + AddonCalendarOfflineProvider, + AddonCalendarHelperProvider, + AddonCalendarSyncProvider, + ]; +} const mainMenuChildrenRoutes: Routes = [ { diff --git a/src/addons/messageoutput/messageoutput.module.ts b/src/addons/messageoutput/messageoutput.module.ts index dfcc6e78b..a47c07142 100644 --- a/src/addons/messageoutput/messageoutput.module.ts +++ b/src/addons/messageoutput/messageoutput.module.ts @@ -15,11 +15,19 @@ import { NgModule, Type } from '@angular/core'; import { AddonMessageOutputAirnotifierModule } from './airnotifier/airnotifier.module'; -import { AddonMessageOutputDelegateService } from './services/messageoutput-delegate'; -export const ADDON_MESSAGEOUTPUT_SERVICES: Type[] = [ - AddonMessageOutputDelegateService, -]; +/** + * Get message output services. + * + * @returns Returns message output services. + */ +export async function getMessageOutputServices(): Promise[]> { + const { AddonMessageOutputDelegateService } = await import('@addons/messageoutput/services/messageoutput-delegate'); + + return [ + AddonMessageOutputDelegateService, + ]; +} @NgModule({ imports: [ diff --git a/src/addons/messages/messages.module.ts b/src/addons/messages/messages.module.ts index 9f7748ff0..88ee85b75 100644 --- a/src/addons/messages/messages.module.ts +++ b/src/addons/messages/messages.module.ts @@ -34,17 +34,26 @@ import { CoreUserDelegate } from '@features/user/services/user-delegate'; import { AddonMessagesSendMessageUserHandler } from './services/handlers/user-send-message'; import { NgZone } from '@singletons'; import { CoreNetwork } from '@services/network'; -import { AddonMessagesSync, AddonMessagesSyncProvider } from './services/messages-sync'; +import { AddonMessagesSync } from './services/messages-sync'; import { AddonMessagesSyncCronHandler } from './services/handlers/sync-cron'; import { CoreSitePreferencesRoutingModule } from '@features/settings/settings-site-routing.module'; -import { AddonMessagesProvider } from './services/messages'; -import { AddonMessagesOfflineProvider } from './services/messages-offline'; -export const ADDON_MESSAGES_SERVICES: Type[] = [ - AddonMessagesProvider, - AddonMessagesOfflineProvider, - AddonMessagesSyncProvider, -]; +/** + * Get messages services. + * + * @returns Returns messages services. + */ +export async function getMessagesServices(): Promise[]> { + const { AddonMessagesProvider } = await import('@addons/messages/services/messages'); + const { AddonMessagesOfflineProvider } = await import('@addons/messages/services/messages-offline'); + const { AddonMessagesSyncProvider } = await import('@addons/messages/services/messages-sync'); + + return [ + AddonMessagesProvider, + AddonMessagesOfflineProvider, + AddonMessagesSyncProvider, + ]; +} const mainMenuChildrenRoutes: Routes = [ { diff --git a/src/addons/mod/assign/assign.module.ts b/src/addons/mod/assign/assign.module.ts index 62b4a039c..349fa9ee5 100644 --- a/src/addons/mod/assign/assign.module.ts +++ b/src/addons/mod/assign/assign.module.ts @@ -25,28 +25,37 @@ import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModAssignComponentsModule } from './components/components.module'; import { AddonModAssignFeedbackModule } from './feedback/feedback.module'; import { AddonModAssignProvider } from './services/assign'; -import { AddonModAssignHelperProvider } from './services/assign-helper'; -import { AddonModAssignOfflineProvider } from './services/assign-offline'; -import { AddonModAssignSyncProvider } from './services/assign-sync'; import { OFFLINE_SITE_SCHEMA } from './services/database/assign'; -import { AddonModAssignFeedbackDelegateService } from './services/feedback-delegate'; import { AddonModAssignIndexLinkHandler } from './services/handlers/index-link'; import { AddonModAssignListLinkHandler } from './services/handlers/list-link'; import { AddonModAssignModuleHandler, AddonModAssignModuleHandlerService } from './services/handlers/module'; import { AddonModAssignPrefetchHandler } from './services/handlers/prefetch'; import { AddonModAssignPushClickHandler } from './services/handlers/push-click'; import { AddonModAssignSyncCronHandler } from './services/handlers/sync-cron'; -import { AddonModAssignSubmissionDelegateService } from './services/submission-delegate'; import { AddonModAssignSubmissionModule } from './submission/submission.module'; -export const ADDON_MOD_ASSIGN_SERVICES: Type[] = [ - AddonModAssignProvider, - AddonModAssignOfflineProvider, - AddonModAssignSyncProvider, - AddonModAssignHelperProvider, - AddonModAssignFeedbackDelegateService, - AddonModAssignSubmissionDelegateService, -]; +/** + * Get mod assign services. + * + * @returns Returns mod assign services. + */ +export async function getModAssignServices(): Promise[]> { + const { AddonModAssignProvider } = await import('@addons/mod/assign/services/assign'); + const { AddonModAssignOfflineProvider } = await import('@addons/mod/assign/services/assign-offline'); + const { AddonModAssignSyncProvider } = await import('@addons/mod/assign/services/assign-sync'); + const { AddonModAssignHelperProvider } = await import('@addons/mod/assign/services/assign-helper'); + const { AddonModAssignFeedbackDelegateService } = await import('@addons/mod/assign/services/feedback-delegate'); + const { AddonModAssignSubmissionDelegateService } = await import('@addons/mod/assign/services/submission-delegate'); + + return [ + AddonModAssignProvider, + AddonModAssignOfflineProvider, + AddonModAssignSyncProvider, + AddonModAssignHelperProvider, + AddonModAssignFeedbackDelegateService, + AddonModAssignSubmissionDelegateService, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/bigbluebuttonbn/bigbluebuttonbn.module.ts b/src/addons/mod/bigbluebuttonbn/bigbluebuttonbn.module.ts index f80d7b44f..e12818f5a 100644 --- a/src/addons/mod/bigbluebuttonbn/bigbluebuttonbn.module.ts +++ b/src/addons/mod/bigbluebuttonbn/bigbluebuttonbn.module.ts @@ -18,14 +18,22 @@ import { CoreContentLinksDelegate } from '@features/contentlinks/services/conten import { CoreCourseModuleDelegate } from '@features/course/services/module-delegate'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { AddonModBBBComponentsModule } from './components/components.module'; -import { AddonModBBBService } from './services/bigbluebuttonbn'; import { AddonModBBBIndexLinkHandler } from './services/handlers/index-link'; import { AddonModBBBListLinkHandler } from './services/handlers/list-link'; import { AddonModBBBModuleHandler, ADDON_MOD_BBB_MAIN_MENU_PAGE_NAME } from './services/handlers/module'; -export const ADDON_MOD_BBB_SERVICES: Type[] = [ - AddonModBBBService, -]; +/** + * Get mod BBB services. + * + * @returns Returns mod BBB services. + */ +export async function getModBBBServices(): Promise[]> { + const { AddonModBBBService } = await import('@addons/mod/bigbluebuttonbn/services/bigbluebuttonbn'); + + return [ + AddonModBBBService, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/book/book.module.ts b/src/addons/mod/book/book.module.ts index 351e3ee18..08aa7cc42 100644 --- a/src/addons/mod/book/book.module.ts +++ b/src/addons/mod/book/book.module.ts @@ -25,13 +25,21 @@ import { AddonModBookIndexLinkHandler } from './services/handlers/index-link'; import { AddonModBookListLinkHandler } from './services/handlers/list-link'; import { AddonModBookPrefetchHandler } from './services/handlers/prefetch'; import { AddonModBookTagAreaHandler } from './services/handlers/tag-area'; -import { AddonModBookProvider } from './services/book'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { BOOK_SITE_SCHEMA } from './services/database/book'; -export const ADDON_MOD_BOOK_SERVICES: Type[] = [ - AddonModBookProvider, -]; +/** + * Get mod book services. + * + * @returns Returns mod book services. + */ +export async function getModBookServices(): Promise[]> { + const { AddonModBookProvider } = await import('@addons/mod/book/services/book'); + + return [ + AddonModBookProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/chat/chat.module.ts b/src/addons/mod/chat/chat.module.ts index 39466f886..fba327b18 100644 --- a/src/addons/mod/chat/chat.module.ts +++ b/src/addons/mod/chat/chat.module.ts @@ -21,16 +21,25 @@ import { CoreCourseModulePrefetchDelegate } from '@features/course/services/modu import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { AddonModChatComponentsModule } from './components/components.module'; import { AddonModChatProvider } from './services/chat'; -import { AddonModChatHelperProvider } from './services/chat-helper'; import { AddonModChatIndexLinkHandler } from './services/handlers/index-link'; import { AddonModChatListLinkHandler } from './services/handlers/list-link'; import { AddonModChatModuleHandler, AddonModChatModuleHandlerService } from './services/handlers/module'; import { AddonModChatPrefetchHandler } from './services/handlers/prefetch'; -export const ADDON_MOD_CHAT_SERVICES: Type[] = [ - AddonModChatProvider, - AddonModChatHelperProvider, -]; +/** + * Get mod chat services. + * + * @returns Returns mod chat services. + */ +export async function getModChatServices(): Promise[]> { + const { AddonModChatProvider } = await import('@addons/mod/chat/services/chat'); + const { AddonModChatHelperProvider } = await import('@addons/mod/chat/services/chat-helper'); + + return [ + AddonModChatProvider, + AddonModChatHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/choice/choice.module.ts b/src/addons/mod/choice/choice.module.ts index 838dbaa6d..13df56be8 100644 --- a/src/addons/mod/choice/choice.module.ts +++ b/src/addons/mod/choice/choice.module.ts @@ -24,8 +24,6 @@ import { CoreCronDelegate } from '@services/cron'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModChoiceComponentsModule } from './components/components.module'; import { AddonModChoiceProvider } from './services/choice'; -import { AddonModChoiceOfflineProvider } from './services/choice-offline'; -import { AddonModChoiceSyncProvider } from './services/choice-sync'; import { OFFLINE_SITE_SCHEMA } from './services/database/choice'; import { AddonModChoiceIndexLinkHandler } from './services/handlers/index-link'; import { AddonModChoiceListLinkHandler } from './services/handlers/list-link'; @@ -33,11 +31,22 @@ import { AddonModChoiceModuleHandler, AddonModChoiceModuleHandlerService } from import { AddonModChoicePrefetchHandler } from './services/handlers/prefetch'; import { AddonModChoiceSyncCronHandler } from './services/handlers/sync-cron'; -export const ADDON_MOD_CHOICE_SERVICES: Type[] = [ - AddonModChoiceProvider, - AddonModChoiceOfflineProvider, - AddonModChoiceSyncProvider, -]; +/** + * Get mod choice services. + * + * @returns Returns mod choice services. + */ +export async function getModChoiceServices(): Promise[]> { + const { AddonModChoiceProvider } = await import('@addons/mod/choice/services/choice'); + const { AddonModChoiceOfflineProvider } = await import('@addons/mod/choice/services/choice-offline'); + const { AddonModChoiceSyncProvider } = await import('@addons/mod/choice/services/choice-sync'); + + return [ + AddonModChoiceProvider, + AddonModChoiceOfflineProvider, + AddonModChoiceSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/data/data.module.ts b/src/addons/mod/data/data.module.ts index 4db10171d..0075a3193 100644 --- a/src/addons/mod/data/data.module.ts +++ b/src/addons/mod/data/data.module.ts @@ -22,10 +22,6 @@ import { CoreTagAreaDelegate } from '@features/tag/services/tag-area-delegate'; import { CoreCronDelegate } from '@services/cron'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModDataProvider } from './services/data'; -import { AddonModDataFieldsDelegateService } from './services/data-fields-delegate'; -import { AddonModDataHelperProvider } from './services/data-helper'; -import { AddonModDataOfflineProvider } from './services/data-offline'; -import { AddonModDataSyncProvider } from './services/data-sync'; import { ADDON_MOD_DATA_OFFLINE_SITE_SCHEMA } from './services/database/data'; import { AddonModDataApproveLinkHandler } from './services/handlers/approve-link'; import { AddonModDataDeleteLinkHandler } from './services/handlers/delete-link'; @@ -41,14 +37,26 @@ import { AddonModDataFieldModule } from './fields/field.module'; import { AddonModDataComponentsModule } from './components/components.module'; import { CoreCourseHelper } from '@features/course/services/course-helper'; -// List of providers (without handlers). -export const ADDON_MOD_DATA_SERVICES: Type[] = [ - AddonModDataProvider, - AddonModDataHelperProvider, - AddonModDataSyncProvider, - AddonModDataOfflineProvider, - AddonModDataFieldsDelegateService, -]; +/** + * Get mod data services. + * + * @returns Returns mod data services. + */ +export async function getModDataServices(): Promise[]> { + const { AddonModDataProvider } = await import('@addons/mod/data/services/data'); + const { AddonModDataOfflineProvider } = await import('@addons/mod/data/services/data-offline'); + const { AddonModDataSyncProvider } = await import('@addons/mod/data/services/data-sync'); + const { AddonModDataHelperProvider } = await import('@addons/mod/data/services/data-helper'); + const { AddonModDataFieldsDelegateService } = await import('@addons/mod/data/services/data-fields-delegate'); + + return [ + AddonModDataProvider, + AddonModDataHelperProvider, + AddonModDataSyncProvider, + AddonModDataOfflineProvider, + AddonModDataFieldsDelegateService, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/feedback/feedback.module.ts b/src/addons/mod/feedback/feedback.module.ts index f932564cc..efa8c98e3 100644 --- a/src/addons/mod/feedback/feedback.module.ts +++ b/src/addons/mod/feedback/feedback.module.ts @@ -25,9 +25,6 @@ import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModFeedbackComponentsModule } from './components/components.module'; import { OFFLINE_SITE_SCHEMA } from './services/database/feedback'; import { AddonModFeedbackProvider } from './services/feedback'; -import { AddonModFeedbackHelperProvider } from './services/feedback-helper'; -import { AddonModFeedbackOfflineProvider } from './services/feedback-offline'; -import { AddonModFeedbackSyncProvider } from './services/feedback-sync'; import { AddonModFeedbackAnalysisLinkHandler } from './services/handlers/analysis-link'; import { AddonModFeedbackCompleteLinkHandler } from './services/handlers/complete-link'; import { AddonModFeedbackIndexLinkHandler } from './services/handlers/index-link'; @@ -40,12 +37,24 @@ import { AddonModFeedbackShowEntriesLinkHandler } from './services/handlers/show import { AddonModFeedbackShowNonRespondentsLinkHandler } from './services/handlers/show-non-respondents-link'; import { AddonModFeedbackSyncCronHandler } from './services/handlers/sync-cron'; -export const ADDON_MOD_FEEDBACK_SERVICES: Type[] = [ - AddonModFeedbackProvider, - AddonModFeedbackOfflineProvider, - AddonModFeedbackHelperProvider, - AddonModFeedbackSyncProvider, -]; +/** + * Get mod Feedback services. + * + * @returns Returns mod Feedback services. + */ +export async function getModFeedbackServices(): Promise[]> { + const { AddonModFeedbackProvider } = await import('@addons/mod/feedback/services/feedback'); + const { AddonModFeedbackOfflineProvider } = await import('@addons/mod/feedback/services/feedback-offline'); + const { AddonModFeedbackHelperProvider } = await import('@addons/mod/feedback/services/feedback-helper'); + const { AddonModFeedbackSyncProvider } = await import('@addons/mod/feedback/services/feedback-sync'); + + return [ + AddonModFeedbackProvider, + AddonModFeedbackOfflineProvider, + AddonModFeedbackHelperProvider, + AddonModFeedbackSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/folder/folder.module.ts b/src/addons/mod/folder/folder.module.ts index 1094af764..6b7b76677 100644 --- a/src/addons/mod/folder/folder.module.ts +++ b/src/addons/mod/folder/folder.module.ts @@ -20,18 +20,26 @@ import { CoreCourseModulePrefetchDelegate } from '@features/course/services/modu import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CorePluginFileDelegate } from '@services/plugin-file-delegate'; import { AddonModFolderComponentsModule } from './components/components.module'; -import { AddonModFolderProvider } from './services/folder'; -import { AddonModFolderHelperProvider } from './services/folder-helper'; import { AddonModFolderIndexLinkHandler } from './services/handlers/index-link'; import { AddonModFolderListLinkHandler } from './services/handlers/list-link'; import { AddonModFolderModuleHandler, AddonModFolderModuleHandlerService } from './services/handlers/module'; import { AddonModFolderPluginFileHandler } from './services/handlers/pluginfile'; import { AddonModFolderPrefetchHandler } from './services/handlers/prefetch'; -export const ADDON_MOD_FOLDER_SERVICES: Type[] = [ - AddonModFolderProvider, - AddonModFolderHelperProvider, -]; +/** + * Get mod Folder services. + * + * @returns Returns mod Folder services. + */ +export async function getModFolderServices(): Promise[]> { + const { AddonModFolderProvider } = await import('@addons/mod/folder/services/folder'); + const { AddonModFolderHelperProvider } = await import('@addons/mod/folder/services/folder-helper'); + + return [ + AddonModFolderProvider, + AddonModFolderHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/forum/forum.module.ts b/src/addons/mod/forum/forum.module.ts index b0a4a78b0..321aecb6a 100644 --- a/src/addons/mod/forum/forum.module.ts +++ b/src/addons/mod/forum/forum.module.ts @@ -39,18 +39,27 @@ import { AddonModForumTagAreaHandler } from './services/handlers/tag-area'; import { CorePushNotificationsDelegate } from '@features/pushnotifications/services/push-delegate'; import { AddonModForumPushClickHandler } from './services/handlers/push-click'; import { AddonModForumProvider } from './services/forum'; -import { AddonModForumOfflineProvider } from './services/forum-offline'; -import { AddonModForumHelperProvider } from './services/forum-helper'; -import { AddonModForumSyncProvider } from './services/forum-sync'; import { COURSE_CONTENTS_PATH } from '@features/course/course.module'; import { CoreCourseHelper } from '@features/course/services/course-helper'; -export const ADDON_MOD_FORUM_SERVICES: Type[] = [ - AddonModForumProvider, - AddonModForumOfflineProvider, - AddonModForumHelperProvider, - AddonModForumSyncProvider, -]; +/** + * Get mod Forum services. + * + * @returns Returns mod Forum services. + */ +export async function getModForumServices(): Promise[]> { + const { AddonModForumProvider } = await import('@addons/mod/forum/services/forum'); + const { AddonModForumOfflineProvider } = await import('@addons/mod/forum/services/forum-offline'); + const { AddonModForumHelperProvider } = await import('@addons/mod/forum/services/forum-helper'); + const { AddonModForumSyncProvider } = await import('@addons/mod/forum/services/forum-sync'); + + return [ + AddonModForumProvider, + AddonModForumOfflineProvider, + AddonModForumHelperProvider, + AddonModForumSyncProvider, + ]; +} export const FORUM_SEARCH_PAGE_NAME = 'forum/search'; diff --git a/src/addons/mod/glossary/glossary.module.ts b/src/addons/mod/glossary/glossary.module.ts index a4cd4457d..19f4ce909 100644 --- a/src/addons/mod/glossary/glossary.module.ts +++ b/src/addons/mod/glossary/glossary.module.ts @@ -29,9 +29,6 @@ import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModGlossaryComponentsModule } from './components/components.module'; import { SITE_SCHEMA, OFFLINE_SITE_SCHEMA } from './services/database/glossary'; import { AddonModGlossaryProvider } from './services/glossary'; -import { AddonModGlossaryHelperProvider } from './services/glossary-helper'; -import { AddonModGlossaryOfflineProvider } from './services/glossary-offline'; -import { AddonModGlossarySyncProvider } from './services/glossary-sync'; import { AddonModGlossaryEditLinkHandler } from './services/handlers/edit-link'; import { AddonModGlossaryEntryLinkHandler } from './services/handlers/entry-link'; import { AddonModGlossaryIndexLinkHandler } from './services/handlers/index-link'; @@ -41,12 +38,24 @@ import { AddonModGlossaryPrefetchHandler } from './services/handlers/prefetch'; import { AddonModGlossarySyncCronHandler } from './services/handlers/sync-cron'; import { AddonModGlossaryTagAreaHandler } from './services/handlers/tag-area'; -export const ADDON_MOD_GLOSSARY_SERVICES: Type[] = [ - AddonModGlossaryProvider, - AddonModGlossaryOfflineProvider, - AddonModGlossarySyncProvider, - AddonModGlossaryHelperProvider, -]; +/** + * Get mod Glossary services. + * + * @returns Returns mod Glossary services. + */ +export async function getModGlossaryServices(): Promise[]> { + const { AddonModGlossaryProvider } = await import('@addons/mod/glossary/services/glossary'); + const { AddonModGlossaryOfflineProvider } = await import('@addons/mod/glossary/services/glossary-offline'); + const { AddonModGlossarySyncProvider } = await import('@addons/mod/glossary/services/glossary-sync'); + const { AddonModGlossaryHelperProvider } = await import('@addons/mod/glossary/services/glossary-helper'); + + return [ + AddonModGlossaryProvider, + AddonModGlossaryOfflineProvider, + AddonModGlossarySyncProvider, + AddonModGlossaryHelperProvider, + ]; +} const mainMenuRoutes: Routes = [ // Link handlers navigation. diff --git a/src/addons/mod/h5pactivity/h5pactivity.module.ts b/src/addons/mod/h5pactivity/h5pactivity.module.ts index 91b81b124..11cbc8afd 100644 --- a/src/addons/mod/h5pactivity/h5pactivity.module.ts +++ b/src/addons/mod/h5pactivity/h5pactivity.module.ts @@ -20,19 +20,26 @@ import { CoreCourseModulePrefetchDelegate } from '@features/course/services/modu import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CoreCronDelegate } from '@services/cron'; import { AddonModH5PActivityComponentsModule } from './components/components.module'; -import { AddonModH5PActivityProvider } from './services/h5pactivity'; -import { AddonModH5PActivitySyncProvider } from './services/h5pactivity-sync'; import { AddonModH5PActivityIndexLinkHandler } from './services/handlers/index-link'; import { AddonModH5PActivityModuleHandler, AddonModH5PActivityModuleHandlerService } from './services/handlers/module'; import { AddonModH5PActivityPrefetchHandler } from './services/handlers/prefetch'; import { AddonModH5PActivityReportLinkHandler } from './services/handlers/report-link'; import { AddonModH5PActivitySyncCronHandler } from './services/handlers/sync-cron'; -// List of providers (without handlers). -export const ADDON_MOD_H5P_ACTIVITY_SERVICES: Type[] = [ - AddonModH5PActivityProvider, - AddonModH5PActivitySyncProvider, -]; +/** + * Get mod H5P activity services. + * + * @returns Returns mod H5P activity services. + */ +export async function getModH5PActivityServices(): Promise[]> { + const { AddonModH5PActivityProvider } = await import('@addons/mod/h5pactivity/services/h5pactivity'); + const { AddonModH5PActivitySyncProvider } = await import('@addons/mod/h5pactivity/services/h5pactivity-sync'); + + return [ + AddonModH5PActivityProvider, + AddonModH5PActivitySyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/imscp/imscp.module.ts b/src/addons/mod/imscp/imscp.module.ts index b94674269..56489df0e 100644 --- a/src/addons/mod/imscp/imscp.module.ts +++ b/src/addons/mod/imscp/imscp.module.ts @@ -25,11 +25,19 @@ import { AddonModImscpListLinkHandler } from './services/handlers/list-link'; import { AddonModImscpModuleHandler, AddonModImscpModuleHandlerService } from './services/handlers/module'; import { AddonModImscpPluginFileHandler } from './services/handlers/pluginfile'; import { AddonModImscpPrefetchHandler } from './services/handlers/prefetch'; -import { AddonModImscpProvider } from './services/imscp'; -export const ADDON_MOD_IMSCP_SERVICES: Type[] = [ - AddonModImscpProvider, -]; +/** + * Get mod Imscp services. + * + * @returns Returns mod Imscp services. + */ +export async function getModImscpServices(): Promise[]> { + const { AddonModImscpProvider } = await import('@addons/mod/imscp/services/imscp'); + + return [ + AddonModImscpProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/lesson/lesson.module.ts b/src/addons/mod/lesson/lesson.module.ts index cf68ac3c0..e3631d637 100644 --- a/src/addons/mod/lesson/lesson.module.ts +++ b/src/addons/mod/lesson/lesson.module.ts @@ -34,16 +34,25 @@ import { AddonModLessonPushClickHandler } from './services/handlers/push-click'; import { AddonModLessonReportLinkHandler } from './services/handlers/report-link'; import { AddonModLessonSyncCronHandler } from './services/handlers/sync-cron'; import { AddonModLessonProvider } from './services/lesson'; -import { AddonModLessonHelperProvider } from './services/lesson-helper'; -import { AddonModLessonOfflineProvider } from './services/lesson-offline'; -import { AddonModLessonSyncProvider } from './services/lesson-sync'; -export const ADDON_MOD_LESSON_SERVICES: Type[] = [ - AddonModLessonProvider, - AddonModLessonOfflineProvider, - AddonModLessonSyncProvider, - AddonModLessonHelperProvider, -]; +/** + * Get mod Lesson services. + * + * @returns Returns mod Lesson services. + */ +export async function getModLessonServices(): Promise[]> { + const { AddonModLessonProvider } = await import('@addons/mod/lesson/services/lesson'); + const { AddonModLessonOfflineProvider } = await import('@addons/mod/lesson/services/lesson-offline'); + const { AddonModLessonSyncProvider } = await import('@addons/mod/lesson/services/lesson-sync'); + const { AddonModLessonHelperProvider } = await import('@addons/mod/lesson/services/lesson-helper'); + + return [ + AddonModLessonProvider, + AddonModLessonOfflineProvider, + AddonModLessonSyncProvider, + AddonModLessonHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/lti/lti.module.ts b/src/addons/mod/lti/lti.module.ts index fef43da2b..1deaff582 100644 --- a/src/addons/mod/lti/lti.module.ts +++ b/src/addons/mod/lti/lti.module.ts @@ -23,13 +23,22 @@ import { AddonModLtiIndexLinkHandler } from './services/handlers/index-link'; import { AddonModLtiListLinkHandler } from './services/handlers/list-link'; import { AddonModLtiModuleHandler, AddonModLtiModuleHandlerService } from './services/handlers/module'; import { AddonModLtiPrefetchHandler } from './services/handlers/prefetch'; -import { AddonModLtiProvider } from './services/lti'; -import { AddonModLtiHelper, AddonModLtiHelperProvider } from './services/lti-helper'; +import { AddonModLtiHelper } from './services/lti-helper'; -export const ADDON_MOD_LTI_SERVICES: Type[] = [ - AddonModLtiProvider, - AddonModLtiHelperProvider, -]; +/** + * Get mod Lti services. + * + * @returns Returns mod Lti services. + */ +export async function getModLtiServices(): Promise[]> { + const { AddonModLtiProvider } = await import('@addons/mod/lti/services/lti'); + const { AddonModLtiHelperProvider } = await import('@addons/mod/lti/services/lti-helper'); + + return [ + AddonModLtiProvider, + AddonModLtiHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/page/page.module.ts b/src/addons/mod/page/page.module.ts index 0eac77a47..7bc2d58a9 100644 --- a/src/addons/mod/page/page.module.ts +++ b/src/addons/mod/page/page.module.ts @@ -25,13 +25,21 @@ import { AddonModPageListLinkHandler } from './services/handlers/list-link'; import { AddonModPageModuleHandler, AddonModPageModuleHandlerService } from './services/handlers/module'; import { AddonModPagePluginFileHandler } from './services/handlers/pluginfile'; import { AddonModPagePrefetchHandler } from './services/handlers/prefetch'; -import { AddonModPageProvider } from './services/page'; -import { AddonModPageHelperProvider } from './services/page-helper'; -export const ADDON_MOD_PAGE_SERVICES: Type[] = [ - AddonModPageProvider, - AddonModPageHelperProvider, -]; +/** + * Get mod Page services. + * + * @returns Returns mod Page services. + */ +export async function getModPageServices(): Promise[]> { + const { AddonModPageProvider } = await import('@addons/mod/page/services/page'); + const { AddonModPageHelperProvider } = await import('@addons/mod/page/services/page-helper'); + + return [ + AddonModPageProvider, + AddonModPageHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/quiz/quiz.module.ts b/src/addons/mod/quiz/quiz.module.ts index 10dfa6c42..8d7f40ee5 100644 --- a/src/addons/mod/quiz/quiz.module.ts +++ b/src/addons/mod/quiz/quiz.module.ts @@ -25,7 +25,6 @@ import { CoreCronDelegate } from '@services/cron'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { AddonModQuizAccessRulesModule } from './accessrules/accessrules.module'; import { AddonModQuizComponentsModule } from './components/components.module'; -import { AddonModQuizAccessRuleDelegateService } from './services/access-rules-delegate'; import { SITE_SCHEMA } from './services/database/quiz'; import { AddonModQuizGradeLinkHandler } from './services/handlers/grade-link'; import { AddonModQuizIndexLinkHandler } from './services/handlers/index-link'; @@ -36,17 +35,27 @@ import { AddonModQuizPushClickHandler } from './services/handlers/push-click'; import { AddonModQuizReviewLinkHandler } from './services/handlers/review-link'; import { AddonModQuizSyncCronHandler } from './services/handlers/sync-cron'; import { AddonModQuizProvider } from './services/quiz'; -import { AddonModQuizHelperProvider } from './services/quiz-helper'; -import { AddonModQuizOfflineProvider } from './services/quiz-offline'; -import { AddonModQuizSyncProvider } from './services/quiz-sync'; -export const ADDON_MOD_QUIZ_SERVICES: Type[] = [ - AddonModQuizAccessRuleDelegateService, - AddonModQuizProvider, - AddonModQuizOfflineProvider, - AddonModQuizHelperProvider, - AddonModQuizSyncProvider, -]; +/** + * Get mod Quiz services. + * + * @returns Returns mod Quiz services. + */ +export async function getModQuizServices(): Promise[]> { + const { AddonModQuizProvider } = await import('@addons/mod/quiz/services/quiz'); + const { AddonModQuizOfflineProvider } = await import('@addons/mod/quiz/services/quiz-offline'); + const { AddonModQuizHelperProvider } = await import('@addons/mod/quiz/services/quiz-helper'); + const { AddonModQuizSyncProvider } = await import('@addons/mod/quiz/services/quiz-sync'); + const { AddonModQuizAccessRuleDelegateService } = await import('@addons/mod/quiz/services/access-rules-delegate'); + + return [ + AddonModQuizAccessRuleDelegateService, + AddonModQuizProvider, + AddonModQuizOfflineProvider, + AddonModQuizHelperProvider, + AddonModQuizSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/resource/resource.module.ts b/src/addons/mod/resource/resource.module.ts index 5049aa8cd..bb06f3432 100644 --- a/src/addons/mod/resource/resource.module.ts +++ b/src/addons/mod/resource/resource.module.ts @@ -25,11 +25,19 @@ import { AddonModResourceListLinkHandler } from './services/handlers/list-link'; import { AddonModResourceModuleHandlerService, AddonModResourceModuleHandler } from './services/handlers/module'; import { AddonModResourcePluginFileHandler } from './services/handlers/pluginfile'; import { AddonModResourcePrefetchHandler } from './services/handlers/prefetch'; -import { AddonModResourceProvider } from './services/resource'; -export const ADDON_MOD_RESOURCE_SERVICES: Type[] = [ - AddonModResourceProvider, -]; +/** + * Get mod Resource services. + * + * @returns Returns mod Resource services. + */ +export async function getModResourceServices(): Promise[]> { + const { AddonModResourceProvider } = await import('@addons/mod/resource/services/resource'); + + return [ + AddonModResourceProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/scorm/scorm.module.ts b/src/addons/mod/scorm/scorm.module.ts index 84f9221b0..68c9a3266 100644 --- a/src/addons/mod/scorm/scorm.module.ts +++ b/src/addons/mod/scorm/scorm.module.ts @@ -33,16 +33,25 @@ import { AddonModScormPluginFileHandler } from './services/handlers/pluginfile'; import { AddonModScormPrefetchHandler } from './services/handlers/prefetch'; import { AddonModScormSyncCronHandler } from './services/handlers/sync-cron'; import { AddonModScormProvider } from './services/scorm'; -import { AddonModScormHelperProvider } from './services/scorm-helper'; -import { AddonModScormOfflineProvider } from './services/scorm-offline'; -import { AddonModScormSyncProvider } from './services/scorm-sync'; -export const ADDON_MOD_SCORM_SERVICES: Type[] = [ - AddonModScormProvider, - AddonModScormOfflineProvider, - AddonModScormHelperProvider, - AddonModScormSyncProvider, -]; +/** + * Get mod Scorm services. + * + * @returns Returns mod Scorm services. + */ +export async function getModScormServices(): Promise[]> { + const { AddonModScormProvider } = await import('@addons/mod/scorm/services/scorm'); + const { AddonModScormOfflineProvider } = await import('@addons/mod/scorm/services/scorm-offline'); + const { AddonModScormHelperProvider } = await import('@addons/mod/scorm/services/scorm-helper'); + const { AddonModScormSyncProvider } = await import('@addons/mod/scorm/services/scorm-sync'); + + return [ + AddonModScormProvider, + AddonModScormOfflineProvider, + AddonModScormHelperProvider, + AddonModScormSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/survey/survey.module.ts b/src/addons/mod/survey/survey.module.ts index 6c9716d2b..c502e6ef5 100644 --- a/src/addons/mod/survey/survey.module.ts +++ b/src/addons/mod/survey/survey.module.ts @@ -27,18 +27,25 @@ import { AddonModSurveyListLinkHandler } from './services/handlers/list-link'; import { AddonModSurveyModuleHandler, AddonModSurveyModuleHandlerService } from './services/handlers/module'; import { AddonModSurveyPrefetchHandler } from './services/handlers/prefetch'; import { AddonModSurveySyncCronHandler } from './services/handlers/sync-cron'; -import { AddonModSurveyProvider } from './services/survey'; -import { AddonModSurveyHelperProvider } from './services/survey-helper'; -import { AddonModSurveyOfflineProvider } from './services/survey-offline'; -import { AddonModSurveySyncProvider } from './services/survey-sync'; -// List of providers (without handlers). -export const ADDON_MOD_SURVEY_SERVICES: Type[] = [ - AddonModSurveyProvider, - AddonModSurveyHelperProvider, - AddonModSurveySyncProvider, - AddonModSurveyOfflineProvider, -]; +/** + * Get mod Survey services. + * + * @returns Returns mod Survey services. + */ +export async function getModSurveyServices(): Promise[]> { + const { AddonModSurveyProvider } = await import('@addons/mod/survey/services/survey'); + const { AddonModSurveyOfflineProvider } = await import('@addons/mod/survey/services/survey-offline'); + const { AddonModSurveySyncProvider } = await import('@addons/mod/survey/services/survey-sync'); + const { AddonModSurveyHelperProvider } = await import('@addons/mod/survey/services/survey-helper'); + + return [ + AddonModSurveyProvider, + AddonModSurveyHelperProvider, + AddonModSurveySyncProvider, + AddonModSurveyOfflineProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/url/url.module.ts b/src/addons/mod/url/url.module.ts index e943d15ab..0ff0b1720 100644 --- a/src/addons/mod/url/url.module.ts +++ b/src/addons/mod/url/url.module.ts @@ -23,13 +23,21 @@ import { AddonModUrlIndexLinkHandler } from './services/handlers/index-link'; import { AddonModUrlListLinkHandler } from './services/handlers/list-link'; import { AddonModUrlModuleHandler, AddonModUrlModuleHandlerService } from './services/handlers/module'; import { AddonModUrlPrefetchHandler } from './services/handlers/prefetch'; -import { AddonModUrlProvider } from './services/url'; -import { AddonModUrlHelperProvider } from './services/url-helper'; -export const ADDON_MOD_URL_SERVICES: Type[] = [ - AddonModUrlProvider, - AddonModUrlHelperProvider, -]; +/** + * Get mod Url services. + * + * @returns Returns mod Url services. + */ +export async function getModUrlServices(): Promise[]> { + const { AddonModUrlProvider } = await import('@addons/mod/url/services/url'); + const { AddonModUrlHelperProvider } = await import('@addons/mod/url/services/url-helper'); + + return [ + AddonModUrlProvider, + AddonModUrlHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/wiki/wiki.module.ts b/src/addons/mod/wiki/wiki.module.ts index b0cdc6521..2686d4f73 100644 --- a/src/addons/mod/wiki/wiki.module.ts +++ b/src/addons/mod/wiki/wiki.module.ts @@ -34,14 +34,23 @@ import { AddonModWikiPrefetchHandler } from './services/handlers/prefetch'; import { AddonModWikiSyncCronHandler } from './services/handlers/sync-cron'; import { AddonModWikiTagAreaHandler } from './services/handlers/tag-area'; import { AddonModWikiProvider } from './services/wiki'; -import { AddonModWikiOfflineProvider } from './services/wiki-offline'; -import { AddonModWikiSyncProvider } from './services/wiki-sync'; -export const ADDON_MOD_WIKI_SERVICES: Type[] = [ - AddonModWikiProvider, - AddonModWikiOfflineProvider, - AddonModWikiSyncProvider, -]; +/** + * Get mod Wiki services. + * + * @returns Returns mod Wiki services. + */ +export async function getModWikiServices(): Promise[]> { + const { AddonModWikiProvider } = await import('@addons/mod/wiki/services/wiki'); + const { AddonModWikiOfflineProvider } = await import('@addons/mod/wiki/services/wiki-offline'); + const { AddonModWikiSyncProvider } = await import('@addons/mod/wiki/services/wiki-sync'); + + return [ + AddonModWikiProvider, + AddonModWikiOfflineProvider, + AddonModWikiSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/mod/workshop/workshop.module.ts b/src/addons/mod/workshop/workshop.module.ts index 110658fa8..6bc3fabb6 100644 --- a/src/addons/mod/workshop/workshop.module.ts +++ b/src/addons/mod/workshop/workshop.module.ts @@ -31,11 +31,11 @@ import { getPrefetchHandlerInstance } from '@addons/mod/workshop/services/handle import { getCronHandlerInstance } from '@addons/mod/workshop/services/handlers/sync-cron'; /** - * Get workshop services. + * Get modworkshop services. * - * @returns Workshop services. + * @returns modWorkshop services. */ -export async function getWorkshopServices(): Promise[]> { +export async function getModWorkshopServices(): Promise[]> { const { AddonModWorkshopProvider } = await import('@addons/mod/workshop/services/workshop'); const { AddonModWorkshopOfflineProvider } = await import('@addons/mod/workshop/services/workshop-offline'); const { AddonModWorkshopSyncProvider } = await import('@addons/mod/workshop/services/workshop-sync'); @@ -57,7 +57,7 @@ export async function getWorkshopServices(): Promise[]> { * * @returns Workshop component modules. */ -export async function getWorkshopComponentModules(): Promise { +export async function getModWorkshopComponentModules(): Promise { const { AddonModWorkshopComponentsModule } = await import('@addons/mod/workshop/components/components.module'); return [AddonModWorkshopComponentsModule]; diff --git a/src/addons/notes/notes.module.ts b/src/addons/notes/notes.module.ts index a3b1ad092..c7aac6ba1 100644 --- a/src/addons/notes/notes.module.ts +++ b/src/addons/notes/notes.module.ts @@ -13,9 +13,6 @@ // limitations under the License. import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; -import { AddonNotesProvider } from './services/notes'; -import { AddonNotesOfflineProvider } from './services/notes-offline'; -import { AddonNotesSyncProvider } from './services/notes-sync'; import { CoreCronDelegate } from '@services/cron'; import { CoreCourseOptionsDelegate } from '@features/course/services/course-options-delegate'; import { CoreUserDelegate } from '@features/user/services/user-delegate'; @@ -29,12 +26,22 @@ import { Routes } from '@angular/router'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CoreCourseIndexRoutingModule } from '@features/course/course-routing.module'; -// List of providers (without handlers). -export const ADDON_NOTES_SERVICES: Type[] = [ - AddonNotesProvider, - AddonNotesOfflineProvider, - AddonNotesSyncProvider, -]; +/** + * Get notes services. + * + * @returns Returns notes services. + */ +export async function getNotesServices(): Promise[]> { + const { AddonNotesProvider } = await import('@addons/notes/services/notes'); + const { AddonNotesOfflineProvider } = await import('@addons/notes/services/notes-offline'); + const { AddonNotesSyncProvider } = await import('@addons/notes/services/notes-sync'); + + return [ + AddonNotesProvider, + AddonNotesOfflineProvider, + AddonNotesSyncProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/notifications/notifications.module.ts b/src/addons/notifications/notifications.module.ts index d9d8d9118..d6b47baa5 100644 --- a/src/addons/notifications/notifications.module.ts +++ b/src/addons/notifications/notifications.module.ts @@ -26,16 +26,24 @@ import { AddonNotificationsCronHandler } from './services/handlers/cron'; import { AddonNotificationsPushClickHandler } from './services/handlers/push-click'; import { AddonNotificationsSettingsHandler, AddonNotificationsSettingsHandlerService } from './services/handlers/settings'; import { CoreSitePreferencesRoutingModule } from '@features/settings/settings-site-routing.module'; -import { AddonNotificationsProvider } from './services/notifications'; -import { AddonNotificationsHelperProvider } from './services/notifications-helper'; import { CoreContentLinksDelegate } from '@features/contentlinks/services/contentlinks-delegate'; import { AddonNotificationsPreferencesLinkHandler } from './services/handlers/preferences-link'; import { AddonNotificationsLinkHandler } from './services/handlers/notifications-link'; -export const ADDON_NOTIFICATIONS_SERVICES: Type[] = [ - AddonNotificationsProvider, - AddonNotificationsHelperProvider, -]; +/** + * Get notifications services. + * + * @returns Returns notifications services. + */ +export async function getNotificationsServices(): Promise[]> { + const { AddonNotificationsProvider } = await import('@addons/notifications/services/notifications'); + const { AddonNotificationsHelperProvider } = await import('@addons/notifications/services/notifications-helper'); + + return [ + AddonNotificationsProvider, + AddonNotificationsHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/addons/privatefiles/privatefiles.module.ts b/src/addons/privatefiles/privatefiles.module.ts index 8770ae648..99fa913e0 100644 --- a/src/addons/privatefiles/privatefiles.module.ts +++ b/src/addons/privatefiles/privatefiles.module.ts @@ -17,15 +17,23 @@ import { Routes } from '@angular/router'; import { CoreMainMenuRoutingModule } from '@features/mainmenu/mainmenu-routing.module'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; -import { AddonPrivateFilesProvider } from './services/privatefiles'; -import { AddonPrivateFilesHelperProvider } from './services/privatefiles-helper'; import { CoreUserDelegate } from '@features/user/services/user-delegate'; import { AddonPrivateFilesUserHandler, AddonPrivateFilesUserHandlerService } from './services/handlers/user'; -export const ADDON_PRIVATEFILES_SERVICES: Type[] = [ - AddonPrivateFilesProvider, - AddonPrivateFilesHelperProvider, -]; +/** + * Get private files services. + * + * @returns Returns private files services. + */ +export async function getPrivateFilesServices(): Promise[]> { + const { AddonPrivateFilesProvider } = await import('@addons/privatefiles/services/privatefiles'); + const { AddonPrivateFilesHelperProvider } = await import('@addons/privatefiles/services/privatefiles-helper'); + + return [ + AddonPrivateFilesProvider, + AddonPrivateFilesHelperProvider, + ]; +} const routes: Routes = [ { diff --git a/src/core/core.module.ts b/src/core/core.module.ts index e2e7160b0..5a33b79e3 100644 --- a/src/core/core.module.ts +++ b/src/core/core.module.ts @@ -21,65 +21,73 @@ import { CoreInterceptor } from './classes/interceptor'; import { getDatabaseProviders } from './services/database'; import { getInitializerProviders } from './initializers'; -import { CoreAppProvider } from '@services/app'; -import { CoreConfigProvider } from '@services/config'; -import { CoreCronDelegateService } from '@services/cron'; -import { CoreCustomURLSchemesProvider } from '@services/urlschemes'; -import { CoreDbProvider } from '@services/db'; -import { CoreDomUtilsProvider } from '@services/utils/dom'; -import { CoreFileHelperProvider } from '@services/file-helper'; -import { CoreFilepoolProvider } from '@services/filepool'; -import { CoreFileProvider } from '@services/file'; -import { CoreFileSessionProvider } from '@services/file-session'; -import { CoreGeolocationProvider } from '@services/geolocation'; -import { CoreGroupsProvider } from '@services/groups'; -import { CoreIframeUtilsProvider } from '@services/utils/iframe'; -import { CoreLangProvider } from '@services/lang'; -import { CoreLocalNotificationsProvider } from '@services/local-notifications'; -import { CoreMimetypeUtilsProvider } from '@services/utils/mimetype'; -import { CoreNavigatorService } from '@services/navigator'; -import { CorePluginFileDelegateService } from '@services/plugin-file-delegate'; -import { CoreScreenService } from '@services/screen'; -import { CoreSitesProvider } from '@services/sites'; -import { CoreSyncProvider } from '@services/sync'; -import { CoreTextUtilsProvider } from '@services/utils/text'; -import { CoreTimeUtilsProvider } from '@services/utils/time'; -import { CoreUpdateManagerProvider } from '@services/update-manager'; -import { CoreUrlUtilsProvider } from '@services/utils/url'; -import { CoreUtilsProvider } from '@services/utils/utils'; -import { CoreWSProvider } from '@services/ws'; -import { CorePlatformService } from '@services/platform'; +/** + * Get core services. + * + * @returns Core services. + */ +export async function getCoreServices(): Promise[]> { -export const CORE_SERVICES: Type[] = [ - CoreAppProvider, - CoreConfigProvider, - CoreCronDelegateService, - CoreCustomURLSchemesProvider, - CoreDbProvider, - CoreDomUtilsProvider, - CoreFileHelperProvider, - CoreFilepoolProvider, - CoreFileProvider, - CoreFileSessionProvider, - CoreGeolocationProvider, - CoreGroupsProvider, - CoreIframeUtilsProvider, - CoreLangProvider, - CoreLocalNotificationsProvider, - CoreMimetypeUtilsProvider, - CoreNavigatorService, - CorePluginFileDelegateService, - CorePlatformService, - CoreScreenService, - CoreSitesProvider, - CoreSyncProvider, - CoreTextUtilsProvider, - CoreTimeUtilsProvider, - CoreUpdateManagerProvider, - CoreUrlUtilsProvider, - CoreUtilsProvider, - CoreWSProvider, -]; + const { CoreAppProvider } = await import('@services/app'); + const { CoreConfigProvider } = await import('@services/config'); + const { CoreCronDelegateService } = await import('@services/cron'); + const { CoreCustomURLSchemesProvider } = await import('@services/urlschemes'); + const { CoreDbProvider } = await import('@services/db'); + const { CoreDomUtilsProvider } = await import('@services/utils/dom'); + const { CoreFileHelperProvider } = await import('@services/file-helper'); + const { CoreFilepoolProvider } = await import('@services/filepool'); + const { CoreFileProvider } = await import('@services/file'); + const { CoreFileSessionProvider } = await import('@services/file-session'); + const { CoreGeolocationProvider } = await import('@services/geolocation'); + const { CoreGroupsProvider } = await import('@services/groups'); + const { CoreIframeUtilsProvider } = await import('@services/utils/iframe'); + const { CoreLangProvider } = await import('@services/lang'); + const { CoreLocalNotificationsProvider } = await import('@services/local-notifications'); + const { CoreMimetypeUtilsProvider } = await import('@services/utils/mimetype'); + const { CoreNavigatorService } = await import('@services/navigator'); + const { CorePluginFileDelegateService } = await import('@services/plugin-file-delegate'); + const { CoreScreenService } = await import('@services/screen'); + const { CoreSitesProvider } = await import('@services/sites'); + const { CoreSyncProvider } = await import('@services/sync'); + const { CoreTextUtilsProvider } = await import('@services/utils/text'); + const { CoreTimeUtilsProvider } = await import('@services/utils/time'); + const { CoreUpdateManagerProvider } = await import('@services/update-manager'); + const { CoreUrlUtilsProvider } = await import('@services/utils/url'); + const { CoreUtilsProvider } = await import('@services/utils/utils'); + const { CoreWSProvider } = await import('@services/ws'); + const { CorePlatformService } = await import('@services/platform'); + + return [ + CoreAppProvider, + CoreConfigProvider, + CoreCronDelegateService, + CoreCustomURLSchemesProvider, + CoreDbProvider, + CoreDomUtilsProvider, + CoreFileHelperProvider, + CoreFilepoolProvider, + CoreFileProvider, + CoreFileSessionProvider, + CoreGeolocationProvider, + CoreGroupsProvider, + CoreIframeUtilsProvider, + CoreLangProvider, + CoreLocalNotificationsProvider, + CoreMimetypeUtilsProvider, + CoreNavigatorService, + CorePluginFileDelegateService, + CorePlatformService, + CoreScreenService, + CoreSitesProvider, + CoreSyncProvider, + CoreTextUtilsProvider, + CoreTimeUtilsProvider, + CoreUpdateManagerProvider, + CoreUrlUtilsProvider, + CoreUtilsProvider, + CoreWSProvider, + ]; +} @NgModule({ imports: [ diff --git a/src/core/features/block/block.module.ts b/src/core/features/block/block.module.ts index 736c1db78..90f90868b 100644 --- a/src/core/features/block/block.module.ts +++ b/src/core/features/block/block.module.ts @@ -14,13 +14,20 @@ import { NgModule, Type } from '@angular/core'; -import { CoreBlockDelegateService } from './services/block-delegate'; -import { CoreBlockHelperProvider } from './services/block-helper'; +/** + * Get block services. + * + * @returns Block services. + */ +export async function getBlockServices(): Promise[]> { + const { CoreBlockDelegateService } = await import('@features/block/services/block-delegate'); + const { CoreBlockHelperProvider } = await import('@features/block/services/block-helper'); -export const CORE_BLOCK_SERVICES: Type[] = [ - CoreBlockDelegateService, - CoreBlockHelperProvider, -]; + return [ + CoreBlockDelegateService, + CoreBlockHelperProvider, + ]; +} @NgModule({}) export class CoreBlockModule {} diff --git a/src/core/features/compile/services/compile.ts b/src/core/features/compile/services/compile.ts index 93ebfd090..3158b6448 100644 --- a/src/core/features/compile/services/compile.ts +++ b/src/core/features/compile/services/compile.ts @@ -40,33 +40,32 @@ import { CoreEvents } from '@singletons/events'; import { makeSingleton } from '@singletons'; // Import core services. -import { CORE_SERVICES } from '@/core/core.module'; -import { CORE_BLOCK_SERVICES } from '@features/block/block.module'; +import { getCoreServices } from '@/core/core.module'; +import { getBlockServices } from '@features/block/block.module'; import { getCommentsServices } from '@features/comments/comments.module'; -import { CORE_CONTENTLINKS_SERVICES } from '@features/contentlinks/contentlinks.module'; -import { CORE_COURSE_SERVICES } from '@features/course/course.module'; -import { CORE_COURSES_SERVICES } from '@features/courses/courses.module'; -import { CORE_EDITOR_SERVICES } from '@features/editor/editor.module'; -import { CORE_ENROL_SERVICES } from '@features/enrol/enrol.module'; -import { CORE_NATIVE_SERVICES } from '@features/native/native.module'; -import { CORE_FILEUPLOADER_SERVICES } from '@features/fileuploader/fileuploader.module'; -import { CORE_FILTER_SERVICES } from '@features/filter/filter.module'; -import { CORE_GRADES_SERVICES } from '@features/grades/grades.module'; -import { CORE_H5P_SERVICES } from '@features/h5p/h5p.module'; -import { CORE_LOGIN_SERVICES } from '@features/login/login.module'; -import { CORE_MAINMENU_SERVICES } from '@features/mainmenu/mainmenu.module'; -import { CORE_PUSHNOTIFICATIONS_SERVICES } from '@features/pushnotifications/pushnotifications.module'; -import { CORE_QUESTION_SERVICES } from '@features/question/question.module'; -import { CORE_SHAREDFILES_SERVICES } from '@features/sharedfiles/sharedfiles.module'; -import { CORE_RATING_SERVICES } from '@features/rating/rating.module'; -import { CORE_SEARCH_SERVICES } from '@features/search/search.module'; -import { CORE_SETTINGS_SERVICES } from '@features/settings/settings.module'; -import { CORE_SITEHOME_SERVICES } from '@features/sitehome/sitehome.module'; +import { getContentLinksServices } from '@features/contentlinks/contentlinks.module'; +import { getCourseServices } from '@features/course/course.module'; +import { getCoursesServices } from '@features/courses/courses.module'; +import { getEditorServices } from '@features/editor/editor.module'; +import { getEnrolServices } from '@features/enrol/enrol.module'; +import { getFileUploadedServices } from '@features/fileuploader/fileuploader.module'; +import { getFilterServices } from '@features/filter/filter.module'; +import { getGradesServices } from '@features/grades/grades.module'; +import { getH5PServices } from '@features/h5p/h5p.module'; +import { getLoginServices } from '@features/login/login.module'; +import { getMainMenuServices } from '@features/mainmenu/mainmenu.module'; +import { getNativeServices } from '@features/native/native.module'; +import { getPushNotificationsServices } from '@features/pushnotifications/pushnotifications.module'; +import { getQuestionServices } from '@features/question/question.module'; +import { getRatingServices } from '@features/rating/rating.module'; +import { getSearchServices } from '@features/search/search.module'; +import { getSettingsServices } from '@features/settings/settings.module'; +import { getSharedFilesServices } from '@features/sharedfiles/sharedfiles.module'; +import { getSiteHomeServices } from '@features/sitehome/sitehome.module'; +import { getStyleServices } from '@features/styles/styles.module'; import { getTagServices } from '@features/tag/tag.module'; -import { CORE_STYLE_SERVICES } from '@features/styles/styles.module'; -import { CORE_USER_SERVICES } from '@features/user/user.module'; -import { CORE_XAPI_SERVICES } from '@features/xapi/xapi.module'; -import { CoreSitePluginsProvider } from '@features/siteplugins/services/siteplugins'; +import { getUsersServices } from '@features/user/user.module'; +import { getXAPIServices } from '@features/xapi/xapi.module'; // Import other libraries and providers. import { DomSanitizer } from '@angular/platform-browser'; @@ -124,41 +123,43 @@ import { CoreSitePluginsAssignFeedbackComponent } from '@features/siteplugins/co import { CoreSitePluginsAssignSubmissionComponent } from '@features/siteplugins/components/assign-submission/assign-submission'; // Import addon providers. Do not import database module because it causes circular dependencies. -import { ADDON_BADGES_SERVICES } from '@addons/badges/badges.module'; -import { ADDON_CALENDAR_SERVICES } from '@addons/calendar/calendar.module'; -import { getCourseCompletionServices } from '@addons/coursecompletion/coursecompletion.module'; +import { getBadgesServices } from '@addons/badges/badges.module'; +import { getCalendarServices } from '@addons/calendar/calendar.module'; import { getCompetencyServices } from '@addons/competency/competency.module'; -import { ADDON_MESSAGEOUTPUT_SERVICES } from '@addons/messageoutput/messageoutput.module'; -import { ADDON_MESSAGES_SERVICES } from '@addons/messages/messages.module'; -import { ADDON_MOD_ASSIGN_SERVICES } from '@addons/mod/assign/assign.module'; -import { ADDON_MOD_BOOK_SERVICES } from '@addons/mod/book/book.module'; -import { ADDON_MOD_CHAT_SERVICES } from '@addons/mod/chat/chat.module'; -import { ADDON_MOD_CHOICE_SERVICES } from '@addons/mod/choice/choice.module'; -import { ADDON_MOD_FEEDBACK_SERVICES } from '@addons/mod/feedback/feedback.module'; -import { ADDON_MOD_FOLDER_SERVICES } from '@addons/mod/folder/folder.module'; -import { ADDON_MOD_FORUM_SERVICES } from '@addons/mod/forum/forum.module'; -import { ADDON_MOD_GLOSSARY_SERVICES } from '@addons/mod/glossary/glossary.module'; -import { ADDON_MOD_H5P_ACTIVITY_SERVICES } from '@addons/mod/h5pactivity/h5pactivity.module'; -import { ADDON_MOD_IMSCP_SERVICES } from '@addons/mod/imscp/imscp.module'; -import { ADDON_MOD_LESSON_SERVICES } from '@addons/mod/lesson/lesson.module'; -import { ADDON_MOD_LTI_SERVICES } from '@addons/mod/lti/lti.module'; -import { ADDON_MOD_PAGE_SERVICES } from '@addons/mod/page/page.module'; -import { ADDON_MOD_QUIZ_SERVICES } from '@addons/mod/quiz/quiz.module'; -import { ADDON_MOD_RESOURCE_SERVICES } from '@addons/mod/resource/resource.module'; -import { ADDON_MOD_SCORM_SERVICES } from '@addons/mod/scorm/scorm.module'; -import { ADDON_MOD_SURVEY_SERVICES } from '@addons/mod/survey/survey.module'; -import { ADDON_MOD_URL_SERVICES } from '@addons/mod/url/url.module'; -import { ADDON_MOD_WIKI_SERVICES } from '@addons/mod/wiki/wiki.module'; -import { getWorkshopComponentModules, getWorkshopServices } from '@addons/mod/workshop/workshop.module'; -import { ADDON_NOTES_SERVICES } from '@addons/notes/notes.module'; -import { ADDON_NOTIFICATIONS_SERVICES } from '@addons/notifications/notifications.module'; -import { ADDON_PRIVATEFILES_SERVICES } from '@addons/privatefiles/privatefiles.module'; +import { getCourseCompletionServices } from '@addons/coursecompletion/coursecompletion.module'; +import { getMessageOutputServices } from '@addons/messageoutput/messageoutput.module'; +import { getMessagesServices } from '@addons/messages/messages.module'; +import { getModAssignServices } from '@addons/mod/assign/assign.module'; +import { getModBookServices } from '@addons/mod/book/book.module'; +import { getModChatServices } from '@addons/mod/chat/chat.module'; +import { getModChoiceServices } from '@addons/mod/choice/choice.module'; +import { getModFeedbackServices } from '@addons/mod/feedback/feedback.module'; +import { getModFolderServices } from '@addons/mod/folder/folder.module'; +import { getModForumServices } from '@addons/mod/forum/forum.module'; +import { getModGlossaryServices } from '@addons/mod/glossary/glossary.module'; +import { getModH5PActivityServices } from '@addons/mod/h5pactivity/h5pactivity.module'; +import { getModImscpServices } from '@addons/mod/imscp/imscp.module'; +import { getModLessonServices } from '@addons/mod/lesson/lesson.module'; +import { getModLtiServices } from '@addons/mod/lti/lti.module'; +import { getModPageServices } from '@addons/mod/page/page.module'; +import { getModQuizServices } from '@addons/mod/quiz/quiz.module'; +import { getModResourceServices } from '@addons/mod/resource/resource.module'; +import { getModScormServices } from '@addons/mod/scorm/scorm.module'; +import { getModSurveyServices } from '@addons/mod/survey/survey.module'; +import { getModUrlServices } from '@addons/mod/url/url.module'; +import { getModWikiServices } from '@addons/mod/wiki/wiki.module'; +import { getModWorkshopComponentModules, getModWorkshopServices } from '@addons/mod/workshop/workshop.module'; +import { getNotesServices } from '@addons/notes/notes.module'; +import { getNotificationsServices } from '@addons/notifications/notifications.module'; +import { getPrivateFilesServices } from '@addons/privatefiles/privatefiles.module'; // Import some addon modules that define components, directives and pipes. Only import the important ones. import { AddonModAssignComponentsModule } from '@addons/mod/assign/components/components.module'; import { CorePromisedValue } from '@classes/promised-value'; import { CorePlatform } from '@services/platform'; + import { CoreAutoLogoutService } from '@features/autologout/services/autologout'; +import { CoreSitePluginsProvider } from '@features/siteplugins/services/siteplugins'; /** * Service to provide functionalities regarding compiling dynamic HTML and Javascript. @@ -182,7 +183,7 @@ export class CoreCompileProvider { ]; protected readonly LAZY_IMPORTS = [ - getWorkshopComponentModules, + getModWorkshopComponentModules, ]; constructor(protected injector: Injector) { @@ -277,60 +278,10 @@ export class CoreCompileProvider { // eslint-disable-next-line @typescript-eslint/no-explicit-any injectLibraries(instance: any, extraProviders: Type[] = []): void { const providers = [ - ...CORE_SERVICES, - CoreAutoLogoutService, - ...CORE_BLOCK_SERVICES, - ...CORE_CONTENTLINKS_SERVICES, - ...CORE_COURSE_SERVICES, - ...CORE_COURSES_SERVICES, - ...CORE_EDITOR_SERVICES, - ...CORE_ENROL_SERVICES, - ...CORE_FILEUPLOADER_SERVICES, - ...CORE_FILTER_SERVICES, - ...CORE_GRADES_SERVICES, - ...CORE_H5P_SERVICES, - ...CORE_MAINMENU_SERVICES, - ...CORE_LOGIN_SERVICES, - ...CORE_QUESTION_SERVICES, - ...CORE_PUSHNOTIFICATIONS_SERVICES, - ...CORE_RATING_SERVICES, - ...CORE_SEARCH_SERVICES, - ...CORE_SETTINGS_SERVICES, - ...CORE_SHAREDFILES_SERVICES, - ...CORE_SITEHOME_SERVICES, - CoreSitePluginsProvider, - ...CORE_STYLE_SERVICES, - ...CORE_USER_SERVICES, - ...CORE_XAPI_SERVICES, - ...CORE_NATIVE_SERVICES, - ...this.OTHER_SERVICES, ...extraProviders, - ...ADDON_BADGES_SERVICES, - ...ADDON_CALENDAR_SERVICES, - ...ADDON_MESSAGEOUTPUT_SERVICES, - ...ADDON_MESSAGES_SERVICES, - ...ADDON_MOD_ASSIGN_SERVICES, - ...ADDON_MOD_BOOK_SERVICES, - ...ADDON_MOD_CHAT_SERVICES, - ...ADDON_MOD_CHOICE_SERVICES, - ...ADDON_MOD_FEEDBACK_SERVICES, - ...ADDON_MOD_FOLDER_SERVICES, - ...ADDON_MOD_FORUM_SERVICES, - ...ADDON_MOD_GLOSSARY_SERVICES, - ...ADDON_MOD_H5P_ACTIVITY_SERVICES, - ...ADDON_MOD_IMSCP_SERVICES, - ...ADDON_MOD_LESSON_SERVICES, - ...ADDON_MOD_LTI_SERVICES, - ...ADDON_MOD_PAGE_SERVICES, - ...ADDON_MOD_QUIZ_SERVICES, - ...ADDON_MOD_RESOURCE_SERVICES, - ...ADDON_MOD_SCORM_SERVICES, - ...ADDON_MOD_SURVEY_SERVICES, - ...ADDON_MOD_URL_SERVICES, - ...ADDON_MOD_WIKI_SERVICES, - ...ADDON_NOTES_SERVICES, - ...ADDON_NOTIFICATIONS_SERVICES, - ...ADDON_PRIVATEFILES_SERVICES, + CoreAutoLogoutService, + CoreSitePluginsProvider, + ...this.OTHER_SERVICES, ]; // We cannot inject anything to this constructor. Use the Injector to inject all the providers into the instance. @@ -405,20 +356,66 @@ export class CoreCompileProvider { * @returns Lazy libraries. */ async getLazyLibraries(): Promise[]> { - const ADDON_MOD_WORKSHOP_SERVICES = await getWorkshopServices(); - const ADDON_COMPETENCY_SERVICES = await getCompetencyServices(); - const ADDON_COURSECOMPLETION_SERVICES = await getCourseCompletionServices(); + const services = await Promise.all([ + getCoreServices(), + getBlockServices(), + getCommentsServices(), + getContentLinksServices(), + getCourseServices(), + getCoursesServices(), + getEditorServices(), + getEnrolServices(), + getFileUploadedServices(), + getFilterServices(), + getGradesServices(), + getH5PServices(), + getLoginServices(), + getMainMenuServices(), + getNativeServices(), + getPushNotificationsServices(), + getQuestionServices(), + getRatingServices(), + getSearchServices(), + getSettingsServices(), + getSharedFilesServices(), + getSiteHomeServices(), + getStyleServices(), + getTagServices(), + getUsersServices(), + getXAPIServices(), - const CORE_COMMENTS_SERVICES = await getCommentsServices(); - const CORE_TAG_SERVICES = await getTagServices(); + getBadgesServices(), + getCalendarServices(), + getCompetencyServices(), + getCourseCompletionServices(), + getMessageOutputServices(), + getMessagesServices(), + getModAssignServices(), + getModBookServices(), + getModChatServices(), + getModChoiceServices(), + getModFeedbackServices(), + getModFolderServices(), + getModForumServices(), + getModGlossaryServices(), + getModH5PActivityServices(), + getModImscpServices(), + getModLessonServices(), + getModLtiServices(), + getModPageServices(), + getModQuizServices(), + getModResourceServices(), + getModScormServices(), + getModSurveyServices(), + getModUrlServices(), + getModWikiServices(), + getModWorkshopServices(), + getNotesServices(), + getNotificationsServices(), + getPrivateFilesServices(), + ]); - return [ - ...ADDON_MOD_WORKSHOP_SERVICES, - ...ADDON_COMPETENCY_SERVICES, - ...ADDON_COURSECOMPLETION_SERVICES, - ...CORE_COMMENTS_SERVICES, - ...CORE_TAG_SERVICES, - ]; + return services.flat(); } } diff --git a/src/core/features/contentlinks/contentlinks.module.ts b/src/core/features/contentlinks/contentlinks.module.ts index a46c2e828..f76c6f09d 100644 --- a/src/core/features/contentlinks/contentlinks.module.ts +++ b/src/core/features/contentlinks/contentlinks.module.ts @@ -14,13 +14,21 @@ import { NgModule, Type } from '@angular/core'; import { CoreContentLinksComponentsModule } from './components/components.module'; -import { CoreContentLinksDelegateService } from './services/contentlinks-delegate'; -import { CoreContentLinksHelperProvider } from './services/contentlinks-helper'; -export const CORE_CONTENTLINKS_SERVICES: Type[] = [ - CoreContentLinksDelegateService, - CoreContentLinksHelperProvider, -]; +/** + * Get content links services. + * + * @returns Content links services. + */ +export async function getContentLinksServices(): Promise[]> { + const { CoreContentLinksDelegateService } = await import('@features/contentlinks/services/contentlinks-delegate'); + const { CoreContentLinksHelperProvider } = await import('@features/contentlinks/services/contentlinks-helper'); + + return [ + CoreContentLinksDelegateService, + CoreContentLinksHelperProvider, + ]; +} @NgModule({ imports: [ diff --git a/src/core/features/course/course.module.ts b/src/core/features/course/course.module.ts index 3f43fed5f..227b3852e 100644 --- a/src/core/features/course/course.module.ts +++ b/src/core/features/course/course.module.ts @@ -21,36 +21,46 @@ import { CoreCourseFormatModule } from '@features/course/format/formats.module'; import { SITE_SCHEMA, OFFLINE_SITE_SCHEMA } from './services/database/course'; import { SITE_SCHEMA as LOG_SITE_SCHEMA } from './services/database/log'; import { SITE_SCHEMA as PREFETCH_SITE_SCHEMA } from './services/database/module-prefetch'; -import { CoreCourseModulePrefetchDelegate, CoreCourseModulePrefetchDelegateService } from './services/module-prefetch-delegate'; +import { CoreCourseModulePrefetchDelegate } from './services/module-prefetch-delegate'; import { CoreCronDelegate } from '@services/cron'; import { CoreCourseLogCronHandler } from './services/handlers/log-cron'; import { CoreCourseSyncCronHandler } from './services/handlers/sync-cron'; import { CoreTagAreaDelegate } from '@features/tag/services/tag-area-delegate'; import { CoreCourseTagAreaHandler } from './services/handlers/course-tag-area'; import { CoreCourseModulesTagAreaHandler } from './services/handlers/modules-tag-area'; -import { CoreCourse, CoreCourseProvider } from './services/course'; -import { CoreCourseHelperProvider } from './services/course-helper'; -import { CoreCourseLogHelperProvider } from './services/log-helper'; -import { CoreCourseFormatDelegateService } from './services/format-delegate'; -import { CoreCourseModuleDelegateService } from './services/module-delegate'; -import { CoreCourseOptionsDelegateService } from './services/course-options-delegate'; -import { CoreCourseOfflineProvider } from './services/course-offline'; -import { CoreCourseSyncProvider } from './services/sync'; +import { CoreCourse } from './services/course'; import { COURSE_INDEX_PATH } from '@features/course/course-lazy.module'; import { buildRegExpUrlMatcher } from '@/app/app-routing.module'; import { CoreCourseIndexRoutingModule } from '@features/course/course-routing.module'; -export const CORE_COURSE_SERVICES: Type[] = [ - CoreCourseProvider, - CoreCourseHelperProvider, - CoreCourseLogHelperProvider, - CoreCourseFormatDelegateService, - CoreCourseModuleDelegateService, - CoreCourseModulePrefetchDelegateService, - CoreCourseOptionsDelegateService, - CoreCourseOfflineProvider, - CoreCourseSyncProvider, -]; +/** + * Get course services. + * + * @returns Course services. + */ +export async function getCourseServices(): Promise[]> { + const { CoreCourseProvider } = await import('@features/course/services/course'); + const { CoreCourseHelperProvider } = await import('@features/course/services/course-helper'); + const { CoreCourseLogHelperProvider } = await import('@features/course/services/log-helper'); + const { CoreCourseFormatDelegateService } = await import('@features/course/services/format-delegate'); + const { CoreCourseModuleDelegateService } = await import('@features/course/services/module-delegate'); + const { CoreCourseModulePrefetchDelegateService } = await import('@features/course/services/module-prefetch-delegate'); + const { CoreCourseOptionsDelegateService } = await import('@features/course/services/course-options-delegate'); + const { CoreCourseOfflineProvider } = await import('@features/course/services/course-offline'); + const { CoreCourseSyncProvider } = await import('@features/course/services/sync'); + + return [ + CoreCourseProvider, + CoreCourseHelperProvider, + CoreCourseLogHelperProvider, + CoreCourseFormatDelegateService, + CoreCourseModuleDelegateService, + CoreCourseModulePrefetchDelegateService, + CoreCourseOptionsDelegateService, + CoreCourseOfflineProvider, + CoreCourseSyncProvider, + ]; +} export const COURSE_PAGE_NAME = 'course'; export const CONTENTS_PAGE_NAME = 'contents'; diff --git a/src/core/features/courses/courses.module.ts b/src/core/features/courses/courses.module.ts index 425f959ef..418638d3b 100644 --- a/src/core/features/courses/courses.module.ts +++ b/src/core/features/courses/courses.module.ts @@ -26,9 +26,6 @@ import { CorePushNotificationsDelegate } from '@features/pushnotifications/servi import { CoreRemindersPushNotificationData } from '@features/reminders/services/reminders'; import { CoreLocalNotifications } from '@services/local-notifications'; import { ApplicationInit } from '@singletons'; -import { CoreCoursesProvider } from './services/courses'; -import { CoreCoursesHelperProvider } from './services/courses-helper'; -import { CoreCoursesDashboardProvider } from './services/dashboard'; import { CoreCoursesCourseLinkHandler } from './services/handlers/course-link'; import { CoreCoursesIndexLinkHandler } from './services/handlers/courses-index-link'; @@ -42,11 +39,22 @@ import { import { CoreCoursesRequestPushClickHandler } from './services/handlers/request-push-click'; import { CoreCoursesMyCoursesLinkHandler } from './services/handlers/my-courses-link'; -export const CORE_COURSES_SERVICES: Type[] = [ - CoreCoursesProvider, - CoreCoursesDashboardProvider, - CoreCoursesHelperProvider, -]; +/** + * Get courses services. + * + * @returns Returns courses services. + */ +export async function getCoursesServices(): Promise[]> { + const { CoreCoursesProvider } = await import('@features/courses/services/courses'); + const { CoreCoursesDashboardProvider } = await import('@features/courses/services/dashboard'); + const { CoreCoursesHelperProvider } = await import('@features/courses/services/courses-helper'); + + return [ + CoreCoursesProvider, + CoreCoursesDashboardProvider, + CoreCoursesHelperProvider, + ]; +} const mainMenuHomeChildrenRoutes: Routes = [ { diff --git a/src/core/features/editor/editor.module.ts b/src/core/features/editor/editor.module.ts index d179f925f..d6717c388 100644 --- a/src/core/features/editor/editor.module.ts +++ b/src/core/features/editor/editor.module.ts @@ -17,11 +17,19 @@ import { NgModule, Type } from '@angular/core'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { CoreEditorComponentsModule } from './components/components.module'; import { SITE_SCHEMA } from './services/database/editor'; -import { CoreEditorOfflineProvider } from './services/editor-offline'; -export const CORE_EDITOR_SERVICES: Type[] = [ - CoreEditorOfflineProvider, -]; +/** + * Get editor services. + * + * @returns Returns editor services. + */ +export async function getEditorServices(): Promise[]> { + const { CoreEditorOfflineProvider } = await import('@features/editor/services/editor-offline'); + + return [ + CoreEditorOfflineProvider, + ]; +} @NgModule({ imports: [ diff --git a/src/core/features/enrol/enrol.module.ts b/src/core/features/enrol/enrol.module.ts index d1f8472b6..9efb8f9a1 100644 --- a/src/core/features/enrol/enrol.module.ts +++ b/src/core/features/enrol/enrol.module.ts @@ -14,15 +14,22 @@ import { NgModule, Type } from '@angular/core'; -import { CoreEnrolDelegateService } from './services/enrol-delegate'; -import { CoreEnrolService } from './services/enrol'; -import { CoreEnrolHelperService } from './services/enrol-helper'; +/** + * Get enrol services. + * + * @returns Returns enrol services. + */ +export async function getEnrolServices(): Promise[]> { + const { CoreEnrolDelegateService } = await import('@features/enrol/services/enrol-delegate'); + const { CoreEnrolService } = await import('@features/enrol/services/enrol'); + const { CoreEnrolHelperService } = await import('@features/enrol/services/enrol-helper'); -export const CORE_ENROL_SERVICES: Type[] = [ - CoreEnrolService, - CoreEnrolHelperService, - CoreEnrolDelegateService, -]; + return [ + CoreEnrolService, + CoreEnrolHelperService, + CoreEnrolDelegateService, + ]; +} @NgModule({}) export class CoreEnrolModule {} diff --git a/src/core/features/fileuploader/fileuploader.module.ts b/src/core/features/fileuploader/fileuploader.module.ts index c0774617d..aafee73b3 100644 --- a/src/core/features/fileuploader/fileuploader.module.ts +++ b/src/core/features/fileuploader/fileuploader.module.ts @@ -14,20 +14,29 @@ import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; -import { CoreFileUploaderProvider } from './services/fileuploader'; -import { CoreFileUploaderDelegate, CoreFileUploaderDelegateService } from './services/fileuploader-delegate'; -import { CoreFileUploaderHelperProvider } from './services/fileuploader-helper'; +import { CoreFileUploaderDelegate } from './services/fileuploader-delegate'; import { CoreFileUploaderAlbumHandler } from './services/handlers/album'; import { CoreFileUploaderAudioHandler } from './services/handlers/audio'; import { CoreFileUploaderCameraHandler } from './services/handlers/camera'; import { CoreFileUploaderFileHandler } from './services/handlers/file'; import { CoreFileUploaderVideoHandler } from './services/handlers/video'; -export const CORE_FILEUPLOADER_SERVICES: Type[] = [ - CoreFileUploaderProvider, - CoreFileUploaderHelperProvider, - CoreFileUploaderDelegateService, -]; +/** + * Get file uploaded services. + * + * @returns Returns file uploaded services. + */ +export async function getFileUploadedServices(): Promise[]> { + const { CoreFileUploaderProvider } = await import('@features/fileuploader/services/fileuploader'); + const { CoreFileUploaderDelegateService } = await import('@features/fileuploader/services/fileuploader-delegate'); + const { CoreFileUploaderHelperProvider } = await import('@features/fileuploader/services/fileuploader-helper'); + + return [ + CoreFileUploaderProvider, + CoreFileUploaderHelperProvider, + CoreFileUploaderDelegateService, + ]; +} @NgModule({ providers: [ diff --git a/src/core/features/filter/filter.module.ts b/src/core/features/filter/filter.module.ts index ff4e475ef..d1633a7d6 100644 --- a/src/core/features/filter/filter.module.ts +++ b/src/core/features/filter/filter.module.ts @@ -13,15 +13,23 @@ // limitations under the License. import { NgModule, Type } from '@angular/core'; -import { CoreFilterProvider } from './services/filter'; -import { CoreFilterDelegateService } from './services/filter-delegate'; -import { CoreFilterHelperProvider } from './services/filter-helper'; -export const CORE_FILTER_SERVICES: Type[] = [ - CoreFilterProvider, - CoreFilterDelegateService, - CoreFilterHelperProvider, -]; +/** + * Get filter services. + * + * @returns Returns filter services. + */ +export async function getFilterServices(): Promise[]> { + const { CoreFilterProvider } = await import('@features/filter/services/filter'); + const { CoreFilterDelegateService } = await import('@features/filter/services/filter-delegate'); + const { CoreFilterHelperProvider } = await import('@features/filter/services/filter-helper'); + + return [ + CoreFilterProvider, + CoreFilterDelegateService, + CoreFilterHelperProvider, + ]; +} @NgModule({}) export class CoreFilterModule {} diff --git a/src/core/features/grades/grades.module.ts b/src/core/features/grades/grades.module.ts index 13858a21b..e2d47b742 100644 --- a/src/core/features/grades/grades.module.ts +++ b/src/core/features/grades/grades.module.ts @@ -21,8 +21,7 @@ import { CoreCourseOptionsDelegate } from '@features/course/services/course-opti import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CoreUserDelegate } from '@features/user/services/user-delegate'; import { PARTICIPANTS_PAGE_NAME } from '@features/user/user.module'; -import { CoreGradesProvider } from './services/grades'; -import { CoreGradesHelperProvider, GRADES_PAGE_NAME, GRADES_PARTICIPANTS_PAGE_NAME } from './services/grades-helper'; +import { GRADES_PAGE_NAME, GRADES_PARTICIPANTS_PAGE_NAME } from './services/grades-helper'; import { CoreGradesCourseOptionHandler } from './services/handlers/course-option'; import { CoreGradesOverviewLinkHandler } from './services/handlers/overview-link'; import { CoreGradesUserHandler } from './services/handlers/user'; @@ -33,10 +32,20 @@ import { conditionalRoutes } from '@/app/app-routing.module'; import { COURSE_INDEX_PATH } from '@features/course/course-lazy.module'; import { CoreScreen } from '@services/screen'; -export const CORE_GRADES_SERVICES: Type[] = [ - CoreGradesProvider, - CoreGradesHelperProvider, -]; +/** + * Get grades services. + * + * @returns Returns grades services. + */ +export async function getGradesServices(): Promise[]> { + const { CoreGradesProvider } = await import('@features/grades/services/grades'); + const { CoreGradesHelperProvider } = await import('@features/grades/services/grades-helper'); + + return [ + CoreGradesProvider, + CoreGradesHelperProvider, + ]; +} const mainMenuChildrenRoutes: Routes = [ { diff --git a/src/core/features/h5p/h5p.module.ts b/src/core/features/h5p/h5p.module.ts index 89b5a494a..1ce0f31a2 100644 --- a/src/core/features/h5p/h5p.module.ts +++ b/src/core/features/h5p/h5p.module.ts @@ -18,12 +18,20 @@ import { CorePluginFileDelegate } from '@services/plugin-file-delegate'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { CoreH5PComponentsModule } from './components/components.module'; import { SITE_SCHEMA } from './services/database/h5p'; -import { CoreH5PProvider } from './services/h5p'; import { CoreH5PPluginFileHandler } from './services/handlers/pluginfile'; -export const CORE_H5P_SERVICES: Type[] = [ - CoreH5PProvider, -]; +/** + * Get H5P services. + * + * @returns Returns H5P services. + */ +export async function getH5PServices(): Promise[]> { + const { CoreH5PProvider } = await import('@features/h5p/services/h5p'); + + return [ + CoreH5PProvider, + ]; +} @NgModule({ imports: [ diff --git a/src/core/features/login/login.module.ts b/src/core/features/login/login.module.ts index a395dbe74..4a1e6244d 100644 --- a/src/core/features/login/login.module.ts +++ b/src/core/features/login/login.module.ts @@ -12,19 +12,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; import { Routes } from '@angular/router'; import { AppRoutingModule } from '@/app/app-routing.module'; -import { CoreLoginHelper, CoreLoginHelperProvider } from './services/login-helper'; +import { CoreLoginHelper } from './services/login-helper'; import { redirectGuard } from '@guards/redirect'; import { CoreLoginCronHandler } from './services/handlers/cron'; import { CoreCronDelegate } from '@services/cron'; import { CoreEvents } from '@singletons/events'; -export const CORE_LOGIN_SERVICES = [ - CoreLoginHelperProvider, -]; +/** + * Get login services. + * + * @returns Returns login services. + */ +export async function getLoginServices(): Promise[]> { + const { CoreLoginHelperProvider } = await import('@features/login/services/login-helper'); + + return [ + CoreLoginHelperProvider, + ]; +} const appRoutes: Routes = [ { diff --git a/src/core/features/mainmenu/mainmenu.module.ts b/src/core/features/mainmenu/mainmenu.module.ts index 1f1d308c0..4f423f833 100644 --- a/src/core/features/mainmenu/mainmenu.module.ts +++ b/src/core/features/mainmenu/mainmenu.module.ts @@ -12,22 +12,31 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; import { Routes } from '@angular/router'; import { authGuard } from '@features/mainmenu/guards/auth'; import { AppRoutingModule } from '@/app/app-routing.module'; -import { CoreMainMenuDelegate, CoreMainMenuDelegateService } from './services/mainmenu-delegate'; +import { CoreMainMenuDelegate } from './services/mainmenu-delegate'; import { CoreMainMenuHomeHandler } from './services/handlers/mainmenu'; -import { CoreMainMenuProvider } from './services/mainmenu'; -import { CoreMainMenuHomeDelegateService } from './services/home-delegate'; -export const CORE_MAINMENU_SERVICES = [ - CoreMainMenuHomeDelegateService, - CoreMainMenuDelegateService, - CoreMainMenuProvider, -]; +/** + * Get main menu services. + * + * @returns Returns main menu services. + */ +export async function getMainMenuServices(): Promise[]> { + const { CoreMainMenuHomeDelegateService } = await import('@features/mainmenu/services/home-delegate'); + const { CoreMainMenuDelegateService } = await import('@features/mainmenu/services/mainmenu-delegate'); + const { CoreMainMenuProvider } = await import('@features/mainmenu/services/mainmenu'); + + return [ + CoreMainMenuHomeDelegateService, + CoreMainMenuDelegateService, + CoreMainMenuProvider, + ]; +} const appRoutes: Routes = [ { diff --git a/src/core/features/native/native.module.ts b/src/core/features/native/native.module.ts index 39ab66004..61645cf9c 100644 --- a/src/core/features/native/native.module.ts +++ b/src/core/features/native/native.module.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { NgModule } from '@angular/core'; +import { NgModule, Type } from '@angular/core'; import { Badge } from '@awesome-cordova-plugins/badge/ngx'; import { Camera } from '@awesome-cordova-plugins/camera/ngx'; @@ -24,7 +24,6 @@ import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx'; import { HTTP } from '@awesome-cordova-plugins/http/ngx'; import { InAppBrowser } from '@awesome-cordova-plugins/in-app-browser/ngx'; -import { WebView } from '@awesome-cordova-plugins/ionic-webview/ngx'; import { Keyboard } from '@awesome-cordova-plugins/keyboard/ngx'; import { LocalNotifications } from '@awesome-cordova-plugins/local-notifications/ngx'; import { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx'; @@ -34,36 +33,19 @@ import { SplashScreen } from '@awesome-cordova-plugins/splash-screen/ngx'; import { SQLite } from '@awesome-cordova-plugins/sqlite/ngx'; import { StatusBar } from '@awesome-cordova-plugins/status-bar/ngx'; import { WebIntent } from '@awesome-cordova-plugins/web-intent/ngx'; +import { WebView } from '@awesome-cordova-plugins/ionic-webview/ngx'; import { Zip } from '@features/native/plugins/zip'; -export const CORE_NATIVE_SERVICES = [ - Badge, - Camera, - Chooser, - Clipboard, - Device, - File, - FileOpener, - Geolocation, - HTTP, - InAppBrowser, - Keyboard, - LocalNotifications, - MediaCapture, - Push, - QRScanner, - SplashScreen, - StatusBar, - SQLite, - WebIntent, - WebView, - Zip, -]; - -@NgModule({ - providers: [ +/** + * Get native services. + * + * @returns Returns native services. + */ +export async function getNativeServices(): Promise[]> { + return [ Badge, Camera, + Chooser, Clipboard, Device, File, @@ -74,11 +56,40 @@ export const CORE_NATIVE_SERVICES = [ Keyboard, LocalNotifications, MediaCapture, + Push, + QRScanner, SplashScreen, SQLite, StatusBar, WebIntent, WebView, + Zip, + ]; +} + +@NgModule({ + providers: [ + Badge, + Camera, + Chooser, + Clipboard, + Device, + File, + FileOpener, + Geolocation, + HTTP, + InAppBrowser, + Keyboard, + LocalNotifications, + MediaCapture, + Push, + QRScanner, + SplashScreen, + SQLite, + StatusBar, + WebIntent, + WebView, + Zip, ], }) export class CoreNativeModule {} diff --git a/src/core/features/pushnotifications/pushnotifications.module.ts b/src/core/features/pushnotifications/pushnotifications.module.ts index b765e6fb8..9185b1398 100644 --- a/src/core/features/pushnotifications/pushnotifications.module.ts +++ b/src/core/features/pushnotifications/pushnotifications.module.ts @@ -19,13 +19,22 @@ import { CORE_SITE_SCHEMAS } from '@services/sites'; import { SITE_SCHEMA } from './services/database/pushnotifications'; import { CorePushNotificationsRegisterCronHandler } from './services/handlers/register-cron'; import { CorePushNotificationsUnregisterCronHandler } from './services/handlers/unregister-cron'; -import { CorePushNotificationsDelegateService } from './services/push-delegate'; -import { CorePushNotifications, CorePushNotificationsProvider } from './services/pushnotifications'; +import { CorePushNotifications } from './services/pushnotifications'; -export const CORE_PUSHNOTIFICATIONS_SERVICES: Type[] = [ - CorePushNotificationsProvider, - CorePushNotificationsDelegateService, -]; +/** + * Get push notifications services. + * + * @returns Returns push notifications services. + */ +export async function getPushNotificationsServices(): Promise[]> { + const { CorePushNotificationsProvider } = await import('@features/pushnotifications/services/pushnotifications'); + const { CorePushNotificationsDelegateService } = await import('@features/pushnotifications/services/push-delegate'); + + return [ + CorePushNotificationsProvider, + CorePushNotificationsDelegateService, + ]; +} @NgModule({ declarations: [ diff --git a/src/core/features/question/question.module.ts b/src/core/features/question/question.module.ts index 6ec2601d5..99187a31e 100644 --- a/src/core/features/question/question.module.ts +++ b/src/core/features/question/question.module.ts @@ -14,18 +14,26 @@ import { NgModule, Type } from '@angular/core'; import { CORE_SITE_SCHEMAS } from '@services/sites'; -import { CoreQuestionBehaviourDelegateService } from './services/behaviour-delegate'; import { QUESTION_SITE_SCHEMA } from './services/database/question'; -import { CoreQuestionProvider } from './services/question'; -import { CoreQuestionDelegateService } from './services/question-delegate'; -import { CoreQuestionHelperProvider } from './services/question-helper'; -export const CORE_QUESTION_SERVICES: Type[] = [ - CoreQuestionProvider, - CoreQuestionDelegateService, - CoreQuestionBehaviourDelegateService, - CoreQuestionHelperProvider, -]; +/** + * Get question services. + * + * @returns Returns question services. + */ +export async function getQuestionServices(): Promise[]> { + const { CoreQuestionProvider } = await import('@features/question/services/question'); + const { CoreQuestionDelegateService } = await import('@features/question/services/question-delegate'); + const { CoreQuestionBehaviourDelegateService } = await import('@features/question/services/behaviour-delegate'); + const { CoreQuestionHelperProvider } = await import('@features/question/services/question-helper'); + + return [ + CoreQuestionProvider, + CoreQuestionDelegateService, + CoreQuestionBehaviourDelegateService, + CoreQuestionHelperProvider, + ]; +} @NgModule({ providers: [ diff --git a/src/core/features/rating/rating.module.ts b/src/core/features/rating/rating.module.ts index 331449676..53fda26f6 100644 --- a/src/core/features/rating/rating.module.ts +++ b/src/core/features/rating/rating.module.ts @@ -15,15 +15,23 @@ import { NgModule, Type } from '@angular/core'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { RATINGS_SITE_SCHEMA } from './services/database/rating'; -import { CoreRatingProvider } from './services/rating'; -import { CoreRatingOfflineProvider } from './services/rating-offline'; -import { CoreRatingSyncProvider } from './services/rating-sync'; -export const CORE_RATING_SERVICES: Type[] = [ - CoreRatingProvider, - CoreRatingSyncProvider, - CoreRatingOfflineProvider, -]; +/** + * Get rating services. + * + * @returns Returns rating services. + */ +export async function getRatingServices(): Promise[]> { + const { CoreRatingProvider } = await import('@features/rating/services/rating'); + const { CoreRatingOfflineProvider } = await import('@features/rating/services/rating-offline'); + const { CoreRatingSyncProvider } = await import('@features/rating/services/rating-sync'); + + return [ + CoreRatingProvider, + CoreRatingSyncProvider, + CoreRatingOfflineProvider, + ]; +} @NgModule({ providers: [ diff --git a/src/core/features/reminders/reminders.module.ts b/src/core/features/reminders/reminders.module.ts index 1155eac0e..3bc471dd5 100644 --- a/src/core/features/reminders/reminders.module.ts +++ b/src/core/features/reminders/reminders.module.ts @@ -12,15 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; +import { APP_INITIALIZER, NgModule } from '@angular/core'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { CoreRemindersComponentsModule } from './components/components.module'; import { REMINDERS_SITE_SCHEMA } from './services/database/reminders'; -import { CoreReminders, CoreRemindersService } from './services/reminders'; - -export const CORE_REMINDERS_SERVICES: Type[] = [ - CoreRemindersService, -]; +import { CoreReminders } from './services/reminders'; @NgModule({ imports: [ diff --git a/src/core/features/search/search.module.ts b/src/core/features/search/search.module.ts index d5c7510cc..c7fc4375c 100644 --- a/src/core/features/search/search.module.ts +++ b/src/core/features/search/search.module.ts @@ -17,21 +17,29 @@ import { Routes } from '@angular/router'; import { CoreMainMenuRoutingModule } from '@features/mainmenu/mainmenu-routing.module'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; import { CoreMainMenuDelegate } from '@features/mainmenu/services/mainmenu-delegate'; -import { CoreSearchGlobalSearchService } from '@features/search/services/global-search'; import { CoreSearchMainMenuHandler, CORE_SEARCH_PAGE_NAME } from '@features/search/services/handlers/mainmenu'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { CoreSearchComponentsModule } from './components/components.module'; import { SITE_SCHEMA } from './services/search-history-db'; -import { CoreSearchHistoryProvider } from './services/search-history.service'; import { CoreContentLinksDelegate } from '@features/contentlinks/services/contentlinks-delegate'; import { CoreSearchGlobalSearchLinkHandler } from '@features/search/services/handlers/global-search-link'; -export const CORE_SEARCH_SERVICES: Type[] = [ - CoreSearchHistoryProvider, - CoreSearchGlobalSearchService, -]; +/** + * Get search services. + * + * @returns Returns search services. + */ +export async function getSearchServices(): Promise[]> { + const { CoreSearchHistoryProvider } = await import('@features/search/services/search-history.service'); + const { CoreSearchGlobalSearchService } = await import('@features/search/services/global-search'); + + return [ + CoreSearchHistoryProvider, + CoreSearchGlobalSearchService, + ]; +} const mainMenuChildrenRoutes: Routes = [ { diff --git a/src/core/features/settings/settings.module.ts b/src/core/features/settings/settings.module.ts index 8f4d8b6b4..dd77dbf1b 100644 --- a/src/core/features/settings/settings.module.ts +++ b/src/core/features/settings/settings.module.ts @@ -17,13 +17,22 @@ import { Routes } from '@angular/router'; import { AppRoutingModule } from '@/app/app-routing.module'; import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module'; -import { CoreSettingsHelper, CoreSettingsHelperProvider } from './services/settings-helper'; -import { CoreSettingsDelegateService } from './services/settings-delegate'; +import { CoreSettingsHelper } from './services/settings-helper'; -export const CORE_SETTINGS_SERVICES: Type[] = [ - CoreSettingsDelegateService, - CoreSettingsHelperProvider, -]; +/** + * Get settings services. + * + * @returns Returns settings services. + */ +export async function getSettingsServices(): Promise[]> { + const { CoreSettingsDelegateService } = await import('@features/settings/services/settings-delegate'); + const { CoreSettingsHelperProvider } = await import('@features/settings/services/settings-helper'); + + return [ + CoreSettingsDelegateService, + CoreSettingsHelperProvider, + ]; +} const appRoutes: Routes = [ { diff --git a/src/core/features/sharedfiles/sharedfiles.module.ts b/src/core/features/sharedfiles/sharedfiles.module.ts index af5dbd2b9..348850f63 100644 --- a/src/core/features/sharedfiles/sharedfiles.module.ts +++ b/src/core/features/sharedfiles/sharedfiles.module.ts @@ -23,13 +23,23 @@ import { CoreSettingsDelegate } from '@features/settings/services/settings-deleg import { CoreSharedFilesComponentsModule } from './components/components.module'; import { CoreSharedFilesSettingsHandler } from './services/handlers/settings'; import { CoreSharedFilesUploadHandler } from './services/handlers/upload'; -import { CoreSharedFiles, CoreSharedFilesProvider } from './services/sharedfiles'; -import { CoreSharedFilesHelper, CoreSharedFilesHelperProvider } from './services/sharedfiles-helper'; +import { CoreSharedFiles } from './services/sharedfiles'; +import { CoreSharedFilesHelper } from './services/sharedfiles-helper'; -export const CORE_SHAREDFILES_SERVICES: Type[] = [ - CoreSharedFilesProvider, - CoreSharedFilesHelperProvider, -]; +/** + * Get shared files services. + * + * @returns Returns shared files services. + */ +export async function getSharedFilesServices(): Promise[]> { + const { CoreSharedFilesProvider } = await import('@features/sharedfiles/services/sharedfiles'); + const { CoreSharedFilesHelperProvider } = await import('@features/sharedfiles/services/sharedfiles-helper'); + + return [ + CoreSharedFilesProvider, + CoreSharedFilesHelperProvider, + ]; +} export const SHAREDFILES_PAGE_NAME = 'sharedfiles'; diff --git a/src/core/features/sitehome/sitehome.module.ts b/src/core/features/sitehome/sitehome.module.ts index c8d6164e9..8000557c2 100644 --- a/src/core/features/sitehome/sitehome.module.ts +++ b/src/core/features/sitehome/sitehome.module.ts @@ -20,11 +20,19 @@ import { CoreContentLinksDelegate } from '@features/contentlinks/services/conten import { CoreSiteHomeHomeHandler, CoreSiteHomeHomeHandlerService } from './services/handlers/sitehome-home'; import { CoreMainMenuHomeDelegate } from '@features/mainmenu/services/home-delegate'; import { CoreMainMenuHomeRoutingModule } from '@features/mainmenu/mainmenu-home-routing.module'; -import { CoreSiteHomeProvider } from './services/sitehome'; -export const CORE_SITEHOME_SERVICES: Type[] = [ - CoreSiteHomeProvider, -]; +/** + * Get site home services. + * + * @returns Returns site home services. + */ +export async function getSiteHomeServices(): Promise[]> { + const { CoreSiteHomeProvider } = await import('@features/sitehome/services/sitehome'); + + return [ + CoreSiteHomeProvider, + ]; +} const mainMenuHomeRoutes: Routes = [ { diff --git a/src/core/features/styles/styles.module.ts b/src/core/features/styles/styles.module.ts index f085b0d67..b2876fa44 100644 --- a/src/core/features/styles/styles.module.ts +++ b/src/core/features/styles/styles.module.ts @@ -13,12 +13,20 @@ // limitations under the License. import { APP_INITIALIZER, NgModule, Type } from '@angular/core'; -import { CoreStyles, CoreStylesService } from './services/styles'; +import { CoreStyles } from './services/styles'; -// List of providers (without handlers). -export const CORE_STYLE_SERVICES: Type[] = [ - CoreStylesService, -]; +/** + * Get style services. + * + * @returns Returns style services. + */ +export async function getStyleServices(): Promise[]> { + const { CoreStylesService } = await import('@features/styles/services/styles'); + + return [ + CoreStylesService, + ]; +} @NgModule({ providers: [ diff --git a/src/core/features/user/user.module.ts b/src/core/features/user/user.module.ts index d28b91aaa..893a456b0 100644 --- a/src/core/features/user/user.module.ts +++ b/src/core/features/user/user.module.ts @@ -19,7 +19,7 @@ import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-ro import { CORE_SITE_SCHEMAS } from '@services/sites'; import { SITE_SCHEMA, OFFLINE_SITE_SCHEMA } from './services/database/user'; import { CoreUserComponentsModule } from './components/components.module'; -import { CoreUserDelegate, CoreUserDelegateService } from './services/user-delegate'; +import { CoreUserDelegate } from './services/user-delegate'; import { CoreUserProfileMailHandler } from './services/handlers/profile-mail'; import { CoreContentLinksDelegate } from '@features/contentlinks/services/contentlinks-delegate'; import { CoreUserProfileLinkHandler } from './services/handlers/profile-link'; @@ -30,25 +30,35 @@ import { CoreTagAreaDelegate } from '@features/tag/services/tag-area-delegate'; import { CoreCourseIndexRoutingModule } from '@features/course/course-routing.module'; import { CoreCourseOptionsDelegate } from '@features/course/services/course-options-delegate'; import { CoreUserCourseOptionHandler } from './services/handlers/course-option'; -import { CoreUserProfileFieldDelegateService } from './services/user-profile-field-delegate'; -import { CoreUserProvider } from './services/user'; -import { CoreUserHelper, CoreUserHelperProvider } from './services/user-helper'; -import { CoreUserOfflineProvider } from './services/user-offline'; -import { CoreUserSyncProvider } from './services/user-sync'; +import { CoreUserHelper } from './services/user-helper'; import { AppRoutingModule, conditionalRoutes } from '@/app/app-routing.module'; import { CoreScreen } from '@services/screen'; import { COURSE_PAGE_NAME } from '@features/course/course.module'; import { COURSE_INDEX_PATH } from '@features/course/course-lazy.module'; import { CoreEvents } from '@singletons/events'; -export const CORE_USER_SERVICES: Type[] = [ - CoreUserDelegateService, - CoreUserProfileFieldDelegateService, - CoreUserProvider, - CoreUserHelperProvider, - CoreUserOfflineProvider, - CoreUserSyncProvider, -]; +/** + * Get user services. + * + * @returns Returns user services. + */ +export async function getUsersServices(): Promise[]> { + const { CoreUserProvider } = await import('@features/user/services/user'); + const { CoreUserHelperProvider } = await import('@features/user/services/user-helper'); + const { CoreUserDelegateService } = await import('@features/user/services/user-delegate'); + const { CoreUserProfileFieldDelegateService } = await import('@features/user/services/user-profile-field-delegate'); + const { CoreUserOfflineProvider } = await import('@features/user/services/user-offline'); + const { CoreUserSyncProvider } = await import('@features/user/services/user-sync'); + + return [ + CoreUserProvider, + CoreUserHelperProvider, + CoreUserDelegateService, + CoreUserProfileFieldDelegateService, + CoreUserOfflineProvider, + CoreUserSyncProvider, + ]; +} export const PARTICIPANTS_PAGE_NAME = 'participants'; diff --git a/src/core/features/xapi/xapi.module.ts b/src/core/features/xapi/xapi.module.ts index 6f8e34f6a..79d1b711f 100644 --- a/src/core/features/xapi/xapi.module.ts +++ b/src/core/features/xapi/xapi.module.ts @@ -16,13 +16,21 @@ import { NgModule, Type } from '@angular/core'; import { CORE_SITE_SCHEMAS } from '@services/sites'; import { SITE_SCHEMA } from './services/database/xapi'; -import { CoreXAPIOfflineProvider } from './services/offline'; -import { CoreXAPIProvider } from './services/xapi'; -export const CORE_XAPI_SERVICES: Type[] = [ - CoreXAPIProvider, - CoreXAPIOfflineProvider, -]; +/** + * Get XAPI services. + * + * @returns Returns XAPI services. + */ +export async function getXAPIServices(): Promise[]> { + const { CoreXAPIProvider } = await import('@features/xapi/services/xapi'); + const { CoreXAPIOfflineProvider } = await import('@features/xapi/services/offline'); + + return [ + CoreXAPIProvider, + CoreXAPIOfflineProvider, + ]; +} @NgModule({ providers: [ From ccd9c0585586da92349a3cddc4ef8c477d7d3aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 7 Mar 2024 10:49:49 +0100 Subject: [PATCH 5/8] MOBILE-3947 chore: Remove direct usage of is('cordova') --- src/core/features/emulator/emulator.module.ts | 20 +++++++++---------- src/core/services/local-notifications.ts | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/core/features/emulator/emulator.module.ts b/src/core/features/emulator/emulator.module.ts index 098ef3e9e..f09a70e09 100644 --- a/src/core/features/emulator/emulator.module.ts +++ b/src/core/features/emulator/emulator.module.ts @@ -61,35 +61,35 @@ import { CoreDbProviderMock } from '@features/emulator/services/db'; providers: [ { provide: Camera, - useFactory: (): Camera => CorePlatform.is('cordova') ? new Camera() : new CameraMock(), + useFactory: (): Camera => CorePlatform.isMobile() ? new Camera() : new CameraMock(), }, { provide: Clipboard, - useFactory: (): Clipboard => CorePlatform.is('cordova') ? new Clipboard() : new ClipboardMock(), + useFactory: (): Clipboard => CorePlatform.isMobile() ? new Clipboard() : new ClipboardMock(), }, { provide: File, - useFactory: (): File => CorePlatform.is('cordova') ? new File() : new FileMock(), + useFactory: (): File => CorePlatform.isMobile() ? new File() : new FileMock(), }, { provide: FileOpener, - useFactory: (): FileOpener => CorePlatform.is('cordova') ? new FileOpener() : new FileOpenerMock(), + useFactory: (): FileOpener => CorePlatform.isMobile() ? new FileOpener() : new FileOpenerMock(), }, { provide: Geolocation, - useFactory: (): Geolocation => CorePlatform.is('cordova') ? new Geolocation() : new GeolocationMock(), + useFactory: (): Geolocation => CorePlatform.isMobile() ? new Geolocation() : new GeolocationMock(), }, { provide: InAppBrowser, - useFactory: (): InAppBrowser => CorePlatform.is('cordova') ? new InAppBrowser() : new InAppBrowserMock(), + useFactory: (): InAppBrowser => CorePlatform.isMobile() ? new InAppBrowser() : new InAppBrowserMock(), }, { provide: MediaCapture, - useFactory: (): MediaCapture => CorePlatform.is('cordova') ? new MediaCapture() : new MediaCaptureMock(), + useFactory: (): MediaCapture => CorePlatform.isMobile() ? new MediaCapture() : new MediaCaptureMock(), }, { provide: Zip, - useFactory: (): Zip => CorePlatform.is('cordova') ? new Zip() : new ZipMock(), + useFactory: (): Zip => CorePlatform.isMobile() ? new Zip() : new ZipMock(), }, { provide: LocalNotifications, @@ -99,12 +99,12 @@ import { CoreDbProviderMock } from '@features/emulator/services/db'; }, { provide: CoreDbProvider, - useFactory: (): CoreDbProvider => CorePlatform.is('cordova') ? new CoreDbProvider() : new CoreDbProviderMock(), + useFactory: (): CoreDbProvider => CorePlatform.isMobile() ? new CoreDbProvider() : new CoreDbProviderMock(), }, { provide: APP_INITIALIZER, useValue: async () => { - if (CorePlatform.is('cordova')) { + if (CorePlatform.isMobile()) { return; } diff --git a/src/core/services/local-notifications.ts b/src/core/services/local-notifications.ts index 9fd4145f7..6ce207f53 100644 --- a/src/core/services/local-notifications.ts +++ b/src/core/services/local-notifications.ts @@ -445,7 +445,7 @@ export class CoreLocalNotificationsProvider { * @returns Whether local notifications plugin is available. */ isPluginAvailable(): boolean { - return !!this.getCordovaPlugin() && CorePlatform.is('cordova'); + return !!this.getCordovaPlugin() && CorePlatform.isMobile(); } /** From 6f371abbdb9f0f7d3fc527808977e43cc733bfab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 7 Mar 2024 10:49:43 +0100 Subject: [PATCH 6/8] MOBILE-3947 chore: Deprecate CoreArray.flatten in favor native flat --- src/addons/mod/assign/services/assign-offline.ts | 4 +--- src/addons/mod/forum/pages/discussion/discussion.ts | 3 +-- .../pages/courses-storage/courses-storage.ts | 2 +- src/app/app-routing.module.ts | 8 +++----- src/core/features/comments/services/comments-offline.ts | 3 +-- src/core/features/compile/services/compile.ts | 2 +- src/core/features/course/services/course-helper.ts | 3 +-- src/core/features/mainmenu/services/mainmenu.ts | 3 +-- src/core/services/sites.ts | 3 +-- src/core/singletons/array.ts | 6 +++++- src/core/singletons/tests/array.test.ts | 5 ----- 11 files changed, 16 insertions(+), 26 deletions(-) diff --git a/src/addons/mod/assign/services/assign-offline.ts b/src/addons/mod/assign/services/assign-offline.ts index cf8d095f0..305092943 100644 --- a/src/addons/mod/assign/services/assign-offline.ts +++ b/src/addons/mod/assign/services/assign-offline.ts @@ -28,7 +28,6 @@ import { SUBMISSIONS_GRADES_TABLE, SUBMISSIONS_TABLE, } from './database/assign'; -import { CoreArray } from '@singletons/array'; /** * Service to handle offline assign. @@ -87,8 +86,7 @@ export class AddonModAssignOfflineProvider { const results = await Promise.all(promises); // Flatten array. - const flatten = CoreArray - .flatten(results); + const flatten = results.flat(); // Get assign id. let assignIds: number[] = flatten.map((assign) => assign.assignid); diff --git a/src/addons/mod/forum/pages/discussion/discussion.ts b/src/addons/mod/forum/pages/discussion/discussion.ts index bf0f77308..54b10890e 100644 --- a/src/addons/mod/forum/pages/discussion/discussion.ts +++ b/src/addons/mod/forum/pages/discussion/discussion.ts @@ -31,7 +31,6 @@ import { CoreSites } from '@services/sites'; import { CoreDomUtils } from '@services/utils/dom'; import { CoreUtils } from '@services/utils/utils'; import { NgZone, Translate } from '@singletons'; -import { CoreArray } from '@singletons/array'; import { CoreDom } from '@singletons/dom'; import { CoreEventObserver, CoreEvents } from '@singletons/events'; import { Subscription } from 'rxjs'; @@ -826,7 +825,7 @@ export class AddonModForumDiscussionPage implements OnInit, AfterViewInit, OnDes protected getAllPosts(): Post[] { const allPosts = this.posts.map(post => this.flattenPostHierarchy(post)); - return CoreArray.flatten(allPosts); + return allPosts.flat(); } /** diff --git a/src/addons/storagemanager/pages/courses-storage/courses-storage.ts b/src/addons/storagemanager/pages/courses-storage/courses-storage.ts index 9e9eb145e..cde85d50a 100644 --- a/src/addons/storagemanager/pages/courses-storage/courses-storage.ts +++ b/src/addons/storagemanager/pages/courses-storage/courses-storage.ts @@ -231,7 +231,7 @@ export class AddonStorageManagerCoursesStoragePage implements OnInit, OnDestroy */ private async calculateDownloadedCourseSize(courseId: number): Promise { const sections = await CoreCourse.getSections(courseId); - const modules = CoreArray.flatten(sections.map((section) => section.modules)); + const modules = sections.map((section) => section.modules).flat(); const promisedModuleSizes = modules.map(async (module) => { const size = await CoreCourseModulePrefetchDelegate.getModuleStoredSize(module, courseId); diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 9409e6768..fca7c6f00 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -24,8 +24,6 @@ import { UrlSegmentGroup, } from '@angular/router'; -import { CoreArray } from '@singletons/array'; - const modulesRoutes: WeakMap, ModuleRoutes> = new WeakMap(); /** @@ -35,7 +33,7 @@ const modulesRoutes: WeakMap, ModuleRoutes> = new WeakMa * @returns App routes. */ function buildAppRoutes(injector: Injector): Routes { - return CoreArray.flatten(injector.get(APP_ROUTES, [])); + return injector.get(APP_ROUTES, []).flat(); } /** @@ -210,8 +208,8 @@ export function resolveModuleRoutes(injector: Injector, token: InjectionToken r.children)), - siblings: CoreArray.flatten(routes.map(r => r.siblings)), + children: routes.map(r => r.children).flat(), + siblings: routes.map(r => r.siblings).flat(), }; modulesRoutes.set(token, moduleRoutes); diff --git a/src/core/features/comments/services/comments-offline.ts b/src/core/features/comments/services/comments-offline.ts index 766c72b3e..8199163d3 100644 --- a/src/core/features/comments/services/comments-offline.ts +++ b/src/core/features/comments/services/comments-offline.ts @@ -17,7 +17,6 @@ import { CoreSites } from '@services/sites'; import { CoreTimeUtils } from '@services/utils/time'; import { makeSingleton } from '@singletons'; import { COMMENTS_TABLE, COMMENTS_DELETED_TABLE, CoreCommentsDBRecord, CoreCommentsDeletedDBRecord } from './database/comments'; -import { CoreArray } from '@singletons/array'; /** * Service to handle offline comments. @@ -38,7 +37,7 @@ export class CoreCommentsOfflineProvider { site.getDb().getRecords(COMMENTS_DELETED_TABLE), ]); - return CoreArray.flatten(results); + return results.flat(); } /** diff --git a/src/core/features/compile/services/compile.ts b/src/core/features/compile/services/compile.ts index 3158b6448..732cba1ff 100644 --- a/src/core/features/compile/services/compile.ts +++ b/src/core/features/compile/services/compile.ts @@ -213,7 +213,7 @@ export class CoreCompileProvider { const lazyImports = await Promise.all(this.LAZY_IMPORTS.map(getModules => getModules())); const imports = [ - ...CoreArray.flatten(lazyImports), + ...lazyImports.flat(), ...this.IMPORTS, ...extraImports, TranslatePipeForCompile, diff --git a/src/core/features/course/services/course-helper.ts b/src/core/features/course/services/course-helper.ts index e2594b104..d80fa7fbb 100644 --- a/src/core/features/course/services/course-helper.ts +++ b/src/core/features/course/services/course-helper.ts @@ -41,7 +41,6 @@ import { CoreCourseSearchedData, CoreEnrolledCourseData, } from '@features/courses/services/courses'; -import { CoreArray } from '@singletons/array'; import { CoreCourseOffline } from './course-offline'; import { CoreCourseOptionsDelegate, @@ -1909,7 +1908,7 @@ export class CoreCourseHelperProvider { */ async deleteCourseFiles(courseId: number): Promise { const sections = await CoreCourse.getSections(courseId); - const modules = CoreArray.flatten(sections.map((section) => section.modules)); + const modules = sections.map((section) => section.modules).flat(); await Promise.all( modules.map((module) => this.removeModuleStoredData(module, courseId)), diff --git a/src/core/features/mainmenu/services/mainmenu.ts b/src/core/features/mainmenu/services/mainmenu.ts index e08b87f0c..d48451d56 100644 --- a/src/core/features/mainmenu/services/mainmenu.ts +++ b/src/core/features/mainmenu/services/mainmenu.ts @@ -19,7 +19,6 @@ import { CoreSites } from '@services/sites'; import { CoreConstants } from '@/core/constants'; import { CoreMainMenuDelegate, CoreMainMenuHandlerToDisplay } from './mainmenu-delegate'; import { Device, makeSingleton } from '@singletons'; -import { CoreArray } from '@singletons/array'; import { CoreTextUtils } from '@services/utils/text'; import { CoreScreen } from '@services/screen'; import { CorePlatform } from '@services/platform'; @@ -73,7 +72,7 @@ export class CoreMainMenuProvider { this.getCustomItemsFromConfig(), ]); - return CoreArray.flatten(customItems); + return customItems.flat(); } /** diff --git a/src/core/services/sites.ts b/src/core/services/sites.ts index 4119500de..d16dbb053 100644 --- a/src/core/services/sites.ts +++ b/src/core/services/sites.ts @@ -41,7 +41,6 @@ import { SiteDBEntry, SchemaVersionsDBEntry, } from '@services/database/sites'; -import { CoreArray } from '../singletons/array'; import { CoreNetworkError } from '@classes/errors/network-error'; import { CoreNavigator, CoreRedirectPayload } from './navigator'; import { CoreSitesFactory } from './sites-factory'; @@ -98,7 +97,7 @@ export class CoreSitesProvider { constructor(@Optional() @Inject(CORE_SITE_SCHEMAS) siteSchemas: CoreSiteSchema[][] | null) { this.logger = CoreLogger.getInstance('CoreSitesProvider'); - this.siteSchemas = CoreArray.flatten(siteSchemas ?? []).reduce( + this.siteSchemas = (siteSchemas ?? []).flat().reduce( (siteSchemas, schema) => { siteSchemas[schema.name] = schema; diff --git a/src/core/singletons/array.ts b/src/core/singletons/array.ts index 9cae5fa13..711313ef6 100644 --- a/src/core/singletons/array.ts +++ b/src/core/singletons/array.ts @@ -39,9 +39,13 @@ export class CoreArray { * * @param arr Original array. * @returns Flattened array. + * @deprecated since 4.4 Use Array.prototype.flat() instead. */ static flatten(arr: T[][]): T[] { - return ( []).concat(...arr); + // eslint-disable-next-line no-console + console.warn('CoreArray.flatten is deprecated and will be removed soon. Please use array \'flat\' instead.'); + + return arr.flat(); } /** diff --git a/src/core/singletons/tests/array.test.ts b/src/core/singletons/tests/array.test.ts index 0aee9eb92..c09225cf1 100644 --- a/src/core/singletons/tests/array.test.ts +++ b/src/core/singletons/tests/array.test.ts @@ -16,11 +16,6 @@ import { CoreArray } from '@singletons/array'; describe('CoreArray singleton', () => { - it('flattens arrays', () => { - expect(CoreArray.flatten([])).toEqual([]); - expect(CoreArray.flatten([[1, 2], [3, 4], [5, 6]])).toEqual([1, 2, 3, 4, 5, 6]); - }); - it('gets array without an item', () => { const originalArray = ['foo', 'bar', 'baz']; From dd2f22226d9e33789446ed82de6545d64419fa29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 7 Mar 2024 11:00:34 +0100 Subject: [PATCH 7/8] MOBILE-3947 chore: Add version of deprecation in emulator file --- src/core/features/emulator/services/file.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/core/features/emulator/services/file.ts b/src/core/features/emulator/services/file.ts index da8dfd3fb..8dd430a36 100644 --- a/src/core/features/emulator/services/file.ts +++ b/src/core/features/emulator/services/file.ts @@ -55,11 +55,13 @@ class FileError { /** * Native APIs used in webkit window. + * + * @deprecated since 4.4 */ interface WebkitWindow { /** - * @deprecated + * @deprecated since 4.4 * @see https://www.w3.org/TR/2012/WD-file-system-api-20120417/ */ // eslint-disable-next-line @typescript-eslint/naming-convention @@ -69,7 +71,7 @@ interface WebkitWindow { }; /** - * @deprecated + * @deprecated since 4.4 * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/requestFileSystem */ requestFileSystem( @@ -80,7 +82,7 @@ interface WebkitWindow { ): void; /** - * @deprecated + * @deprecated since 4.4 */ webkitRequestFileSystem( type: LocalFileSystem, @@ -90,7 +92,7 @@ interface WebkitWindow { ): void; /** - * @deprecated + * @deprecated since 4.4 * @see https://www.w3.org/TR/2012/WD-file-system-api-20120417/ */ resolveLocalFileSystemURL( @@ -100,7 +102,7 @@ interface WebkitWindow { ): void; /** - * @deprecated + * @deprecated since 4.4 */ webkitResolveLocalFileSystemURL( url: string, @@ -112,11 +114,13 @@ interface WebkitWindow { /** * Native APIs used in webkit navigator. + * + * @deprecated since 4.4 */ interface WebkitNavigator { /** - * @deprecated + * @deprecated since 4.4 * @see https://developer.chrome.com/docs/apps/offline_storage/ */ webkitPersistentStorage: { From 2e023cee719ab8c282d1cac3d26e6a6755dd44f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Thu, 7 Mar 2024 11:54:52 +0100 Subject: [PATCH 8/8] MOBILE-3947 ionic: Update ionic to 7.7.4 --- package-lock.json | 22 ++++++++++++---------- package.json | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9666d5811..0971fe3bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "@awesome-cordova-plugins/sqlite": "^6.6.0", "@awesome-cordova-plugins/status-bar": "^6.6.0", "@awesome-cordova-plugins/web-intent": "^6.6.0", - "@ionic/angular": "^7.6.5", + "@ionic/angular": "^7.7.4", "@ionic/cordova-builders": "^10.1.1", "@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1", "@moodlehq/cordova-plugin-file-opener": "4.0.0-moodle.1", @@ -5124,11 +5124,11 @@ "license": "BSD-3-Clause" }, "node_modules/@ionic/angular": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-7.6.5.tgz", - "integrity": "sha512-c1LIAwDuDtaEhMA91m+CqzLOgMY8V4DPPiTdHl6xB2ohmC3er+PpZQx87wpLcSjO7Yl+S3470/+FGGqDAjc8cQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-7.7.4.tgz", + "integrity": "sha512-uj51zQoqEnDSnanv4D6AlVS1MuVjJSTFTbS0sMeSwK8D9Ads+fZ761VnCU/oTEK8hw4BgmxIGBRsOhA/gaYnvw==", "dependencies": { - "@ionic/core": "7.6.5", + "@ionic/core": "7.7.4", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -6674,10 +6674,11 @@ } }, "node_modules/@ionic/core": { - "version": "7.6.5", - "license": "MIT", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.7.4.tgz", + "integrity": "sha512-zThio3ZfbTu+3eM6QBdyeEk5OBc7M0ApFwSlP/G7rrFVcTPm12FNvG9VPD+aN5NwnYy0EsV3hlMkxbawoqjVLw==", "dependencies": { - "@stencil/core": "^4.10.0", + "@stencil/core": "^4.12.2", "ionicons": "^7.2.2", "tslib": "^2.1.0" } @@ -8989,8 +8990,9 @@ } }, "node_modules/@stencil/core": { - "version": "4.10.0", - "license": "MIT", + "version": "4.12.5", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.5.tgz", + "integrity": "sha512-vSyFjY7XSEx0ufa9SebOd437CvnneaTXlCpuGDhjUDxAjGBlu6ie5qHyubobVGBth//aErc6wZPHc6W75Vp3iQ==", "bin": { "stencil": "bin/stencil" }, diff --git a/package.json b/package.json index d6931d9ba..6de706636 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@awesome-cordova-plugins/sqlite": "^6.6.0", "@awesome-cordova-plugins/status-bar": "^6.6.0", "@awesome-cordova-plugins/web-intent": "^6.6.0", - "@ionic/angular": "^7.6.5", + "@ionic/angular": "^7.7.4", "@ionic/cordova-builders": "^10.1.1", "@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1", "@moodlehq/cordova-plugin-file-opener": "4.0.0-moodle.1",