Skip to content

Commit 8896bf9

Browse files
committed
MOBILE-4759 core: Remove most modules for components and directives
1 parent 949bad6 commit 8896bf9

File tree

24 files changed

+173
-403
lines changed

24 files changed

+173
-403
lines changed

src/core/components/components.module.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ import { CoreCourseImageComponent } from '@components/course-image/course-image'
5757
import { CoreSitesListComponent } from './sites-list/sites-list';
5858

5959
/**
60-
* Get standalone components for site plugins.
60+
* Get deprecated components for site plugins.
6161
*
62-
* @returns Returns core standalone components.
62+
* @returns Returns core deprecated components.
6363
*/
64-
export async function getCoreStandaloneComponents(): Promise<Type<unknown>[]> {
64+
export async function getCoreDeprecatedComponents(): Promise<Type<unknown>[]> {
6565
// eslint-disable-next-line deprecation/deprecation
6666
const { CoreStyleComponent } = await import('@components/style/style');
6767
// eslint-disable-next-line deprecation/deprecation

src/core/features/block/block.module.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,20 @@ export async function getBlockServices(): Promise<Type<unknown>[]> {
2929
];
3030
}
3131

32+
/**
33+
* Get directives and components for site plugins.
34+
*
35+
* @returns Returns directives and components.
36+
*/
37+
export async function getBlockExportedDirectives(): Promise<Type<unknown>[]> {
38+
const { CoreBlockComponent } = await import('@features/block/components/block/block');
39+
const { CoreBlockSideBlocksButtonComponent } = await import('@features/block/components/side-blocks-button/side-blocks-button');
40+
41+
return [
42+
CoreBlockComponent,
43+
CoreBlockSideBlocksButtonComponent,
44+
];
45+
}
46+
3247
@NgModule({})
3348
export class CoreBlockModule {}

src/core/features/block/components/components.module.ts

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/core/features/compile/services/compile.ts

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,16 @@ import { CoreEvents } from '@singletons/events';
4141
import { makeSingleton } from '@singletons';
4242
import { effectWithInjectionContext, modelWithInjectionContext } from '@/core/utils/signals';
4343

44-
// Import core services.
44+
// Import core services and exported directives/objects.
45+
import { CoreSharedModule } from '@/core/shared.module';
46+
import { getCoreDeprecatedComponents } from '@components/components.module';
4547
import { getCoreExportedObjects, getCoreServices } from '@/core/core.module';
46-
import { getBlockServices } from '@features/block/block.module';
48+
import { getBlockExportedDirectives, getBlockServices } from '@features/block/block.module';
4749
import { getCommentsServices } from '@features/comments/comments.module';
4850
import { getContentLinksExportedObjects, getContentLinksServices } from '@features/contentlinks/contentlinks.module';
49-
import { getCourseExportedObjects, getCourseServices, getCourseStandaloneComponents } from '@features/course/course.module';
50-
import { getCoursesExportedObjects, getCoursesServices } from '@features/courses/courses.module';
51-
import { getEditorServices } from '@features/editor/editor.module';
51+
import { getCourseExportedObjects, getCourseServices, getCourseExportedDirectives } from '@features/course/course.module';
52+
import { getCoursesExportedDirectives, getCoursesExportedObjects, getCoursesServices } from '@features/courses/courses.module';
53+
import { getEditorExportedDirectives, getEditorServices } from '@features/editor/editor.module';
5254
import { getEnrolServices } from '@features/enrol/enrol.module';
5355
import { getFileUploadedServices } from '@features/fileuploader/fileuploader.module';
5456
import { getFilterServices } from '@features/filter/filter.module';
@@ -58,15 +60,16 @@ import { getLoginServices } from '@features/login/login.module';
5860
import { getMainMenuExportedObjects, getMainMenuServices } from '@features/mainmenu/mainmenu.module';
5961
import { getNativeServices } from '@features/native/native.module';
6062
import { getPushNotificationsServices } from '@features/pushnotifications/pushnotifications.module';
61-
import { getQuestionServices } from '@features/question/question.module';
63+
import { getQuestionExportedDirectives, getQuestionServices } from '@features/question/question.module';
6264
import { getRatingServices } from '@features/rating/rating.module';
63-
import { getSearchServices } from '@features/search/search.module';
65+
import { getRemindersExportedDirectives, getRemindersServices } from '@features/reminders/reminders.module';
66+
import { getSearchExportedDirectives, getSearchServices } from '@features/search/search.module';
6467
import { getSettingsServices } from '@features/settings/settings.module';
6568
import { getSharedFilesServices } from '@features/sharedfiles/sharedfiles.module';
6669
import { getSiteHomeServices } from '@features/sitehome/sitehome.module';
6770
import { getStyleServices } from '@features/styles/styles.module';
6871
import { getTagServices } from '@features/tag/tag.module';
69-
import { getUsersServices } from '@features/user/user.module';
72+
import { getUsersExportedDirectives, getUsersServices } from '@features/user/user.module';
7073
import { getXAPIServices } from '@features/xapi/xapi.module';
7174

7275
// Import other libraries and providers.
@@ -104,17 +107,6 @@ import { CoreWait } from '@singletons/wait';
104107
import { CoreWindow } from '@singletons/window';
105108
import { getCoreErrorsExportedObjects } from '@classes/errors/errors';
106109

107-
// Import all core modules that define components, directives and pipes.
108-
import { CoreSharedModule } from '@/core/shared.module';
109-
import { CoreCourseComponentsModule } from '@features/course/components/components.module';
110-
import { CoreCourseDirectivesModule } from '@features/course/directives/directives.module';
111-
import { CoreCoursesComponentsModule } from '@features/courses/components/components.module';
112-
import { CoreUserComponentsModule } from '@features/user/components/components.module';
113-
import { CoreQuestionComponentsModule } from '@features/question/components/components.module';
114-
import { CoreBlockComponentsModule } from '@features/block/components/components.module';
115-
import { CoreEditorComponentsModule } from '@features/editor/components/components.module';
116-
import { CoreSearchComponentsModule } from '@features/search/components/components.module';
117-
118110
// Import addon providers. Do not import database module because it causes circular dependencies.
119111
import { getBadgesServices } from '@addons/badges/badges.module';
120112
import { getCalendarServices } from '@addons/calendar/calendar.module';
@@ -129,16 +121,13 @@ import { getNotesServices } from '@addons/notes/notes.module';
129121
import { getNotificationsServices } from '@addons/notifications/notifications.module';
130122
import { getPrivateFilesServices } from '@addons/privatefiles/privatefiles.module';
131123

132-
// Import standalone components used by site plugins.
133-
import { getCoreStandaloneComponents } from '@components/components.module';
134-
135124
// Import some addon modules that define components, directives and pipes. Only import the important ones.
136125
import { CorePromisedValue } from '@classes/promised-value';
137126
import { CorePlatform } from '@services/platform';
138127

139128
import { CoreAutoLogoutService } from '@features/autologout/services/autologout';
140129
import {
141-
getSitePluginsDirectives,
130+
getSitePluginsExportedDirectives,
142131
getSitePluginsExportedObjects,
143132
getSitePluginsServices,
144133
} from '@features/siteplugins/siteplugins.module';
@@ -161,20 +150,19 @@ export class CoreCompileProvider {
161150
// List of imports for dynamic module. Since the template can have any component we need to import all core components modules.
162151
protected readonly IMPORTS = [
163152
CoreSharedModule,
164-
CoreCourseComponentsModule,
165-
CoreCoursesComponentsModule,
166-
CoreUserComponentsModule,
167-
CoreCourseDirectivesModule,
168-
CoreQuestionComponentsModule,
169-
CoreBlockComponentsModule,
170-
CoreEditorComponentsModule,
171-
CoreSearchComponentsModule,
172153
];
173154

174155
protected readonly LAZY_IMPORTS = [
175-
getCoreStandaloneComponents,
176-
getCourseStandaloneComponents,
177-
getSitePluginsDirectives,
156+
getBlockExportedDirectives,
157+
getCoreDeprecatedComponents,
158+
getCourseExportedDirectives,
159+
getCoursesExportedDirectives,
160+
getEditorExportedDirectives,
161+
getQuestionExportedDirectives,
162+
getRemindersExportedDirectives,
163+
getSearchExportedDirectives,
164+
getSitePluginsExportedDirectives,
165+
getUsersExportedDirectives,
178166
];
179167

180168
protected componentId = 0;
@@ -408,6 +396,7 @@ export class CoreCompileProvider {
408396
getNotesServices(),
409397
getNotificationsServices(),
410398
getPrivateFilesServices(),
399+
getRemindersServices(),
411400
getSitePluginsServices(),
412401
]);
413402

src/core/features/course/components/components.module.ts

Lines changed: 0 additions & 54 deletions
This file was deleted.

src/core/features/course/course.module.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,21 @@ export async function getCourseExportedObjects(): Promise<Record<string, unknown
7979
CORE_COURSE_COMPONENT,
8080
CORE_COURSE_CORE_MODULES,
8181
} = await import('@features/course/constants');
82+
83+
// Export components that are used from JS code instead of in templates. E.g. when opening a modal or in a handler.
8284
const { CoreCourseUnsupportedModuleComponent } =
8385
await import ('@features/course/components/unsupported-module/unsupported-module');
8486
const { CoreCourseFormatSingleActivityComponent } =
8587
await import ('@features/course/format/singleactivity/components/singleactivity');
88+
const { CoreCourseCourseIndexComponent } = await import('@features/course/components/course-index/course-index');
8689

8790
/* eslint-disable @typescript-eslint/naming-convention */
8891
return {
8992
CoreCourseActivityPrefetchHandlerBase,
9093
CoreCourseResourcePrefetchHandlerBase,
9194
CoreCourseUnsupportedModuleComponent,
9295
CoreCourseFormatSingleActivityComponent,
96+
CoreCourseCourseIndexComponent,
9397
CoreCourseAccessDataType,
9498
CORE_COURSE_ALL_SECTIONS_ID,
9599
CORE_COURSE_STEALTH_MODULES_SECTION_ID,
@@ -102,24 +106,40 @@ export async function getCourseExportedObjects(): Promise<Record<string, unknown
102106
}
103107

104108
/**
105-
* Get standalone components for site plugins.
109+
* Get directives and components for site plugins.
106110
*
107-
* @returns Returns standalone components.
111+
* @returns Returns directives and components.
108112
*/
109-
export async function getCourseStandaloneComponents(): Promise<Type<unknown>[]> {
113+
export async function getCourseExportedDirectives(): Promise<Type<unknown>[]> {
114+
const { CoreCourseFormatComponent } = await import('@features/course/components/course-format/course-format');
115+
const { CoreCourseSectionComponent } = await import('@features/course/components/course-section/course-section');
116+
const { CoreCourseModuleComponent } = await import('@features/course/components/module/module');
117+
const { CoreCourseModuleCompletionComponent } = await import('@features/course/components/module-completion/module-completion');
118+
const { CoreCourseModuleCompletionLegacyComponent } =
119+
await import('@features/course/components/module-completion-legacy/module-completion-legacy');
120+
const { CoreCourseModuleInfoComponent } = await import('@features/course/components/module-info/module-info');
121+
const { CoreCourseModuleNavigationComponent } = await import('@features/course/components/module-navigation/module-navigation');
122+
123+
const { CoreCourseDownloadModuleMainFileDirective } = await import('@features/course/directives/download-module-main-file');
124+
110125
// eslint-disable-next-line deprecation/deprecation
111126
const { CoreCourseModuleDescriptionComponent } =
112127
await import('@features/course/components/module-description/module-description');
113128
// eslint-disable-next-line deprecation/deprecation
114129
const { CoreCourseModuleManualCompletionComponent } =
115130
await import('@features/course/components/module-manual-completion/module-manual-completion');
116-
const { CoreCourseFormatComponent } =
117-
await import('@features/course/components/course-format/course-format');
118131

119132
return [
120133
CoreCourseModuleDescriptionComponent,
121134
CoreCourseModuleManualCompletionComponent,
122135
CoreCourseFormatComponent,
136+
CoreCourseSectionComponent,
137+
CoreCourseModuleComponent,
138+
CoreCourseModuleCompletionComponent,
139+
CoreCourseModuleCompletionLegacyComponent,
140+
CoreCourseModuleInfoComponent,
141+
CoreCourseModuleNavigationComponent,
142+
CoreCourseDownloadModuleMainFileDirective,
123143
];
124144
}
125145

src/core/features/course/directives/directives.module.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/core/features/courses/components/components.module.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/core/features/courses/courses.module.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,19 @@ export async function getCoursesExportedObjects(): Promise<Record<string, unknow
8888
/* eslint-enable @typescript-eslint/naming-convention */
8989
}
9090

91+
/**
92+
* Get directives and components for site plugins.
93+
*
94+
* @returns Returns directives and components.
95+
*/
96+
export async function getCoursesExportedDirectives(): Promise<Type<unknown>[]> {
97+
const { CoreCoursesCourseListItemComponent } = await import('@features/courses/components/course-list-item/course-list-item');
98+
99+
return [
100+
CoreCoursesCourseListItemComponent,
101+
];
102+
}
103+
91104
const mainMenuHomeChildrenRoutes: Routes = [
92105
{
93106
path: CoreDashboardHomeHandlerService.PAGE_NAME,

0 commit comments

Comments
 (0)