I am using openproject and current package.json is like
{
"name": "openproject-frontend",
"repository": "https://github.com/opf/openproject",
"license": "GPLv3",
"version": "0.1.0",
"private": true,
"devDependencies": {
"@angular-devkit/build-angular": "^14.2.5",
"@angular-eslint/builder": "^13.2.1",
"@angular-eslint/eslint-plugin": "^13.2.1",
"@angular-eslint/eslint-plugin-template": "^13.2.1",
"@angular-eslint/schematics": "13.2.1",
"@angular-eslint/template-parser": "^13.2.1",
"@angular/language-service": "14.0.2",
"@babel/core": "^7.18.5",
"@compodoc/compodoc": "^1.1.23",
"@html-eslint/eslint-plugin": "^0.13.1",
"@html-eslint/parser": "^0.13.1",
"@jsdevtools/coverage-istanbul-loader": "3.0.5",
"@storybook/addon-actions": "^6.5.10",
"@storybook/addon-essentials": "^6.5.10",
"@storybook/addon-interactions": "^6.5.10",
"@storybook/addon-knobs": "^6.4.0",
"@storybook/addon-links": "^6.5.10",
"@storybook/angular": "^6.5.10",
"@storybook/builder-webpack5": "^6.5.10",
"@storybook/manager-webpack5": "^6.5.10",
"@storybook/mdx2-csf": "^0.0.3",
"@storybook/preset-scss": "^1.0.3",
"@storybook/testing-library": "^0.0.13",
"@types/chart.js": "^2.9.20",
"@types/codemirror": "5.60.5",
"@types/dragula": "^3.7.0",
"@types/hammerjs": "^2.0.36",
"@types/jasmine": "~3.6.0",
"@types/jquery": "^3.3.33",
"@types/jqueryui": "^1.12.10",
"@types/lodash": "^4.14.149",
"@types/mime": "^2.0.3",
"@types/mousetrap": "^1.6.3",
"@types/pako": "^1.0.1",
"@types/resize-observer-browser": "^0.1.4",
"@types/swagger-ui": "^3.47.0",
"@types/urijs": "^1.19.6",
"@types/uuid": "^8.3.4",
"@types/webpack-env": "^1.16.0",
"@typescript-eslint/eslint-plugin": "4.23.0",
"@typescript-eslint/parser": "4.23.0",
"babel-loader": "^8.2.5",
"browserslist": "^4.9.1",
"codelyzer": "^6.0.0",
"css-loader": "^6.7.1",
"eslint": "^7.26.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-airbnb-typescript": "^12.3.1",
"eslint-plugin-change-detection-strategy": "^0.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jasmine": "^4.1.2",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-react": "^7.24.0",
"eslint-plugin-react-hooks": "^4.2.0",
"eslint-plugin-storybook": "^0.6.4",
"esprint": "^3.1.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~6.3.16",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~3.3.0",
"karma-jasmine-html-reporter": "^1.5.0",
"karma-spec-reporter": "^0.0.32",
"optimist": "^0.6.1",
"raw-loader": "^4.0.2",
"sass": "^1.52.3",
"sass-loader": "^13.0.0",
"source-map-explorer": "^2.5.2",
"storybook-addon-designs": "^6.3.1",
"style-loader": "^3.3.1",
"theo": "^8.1.5",
"ts-node": "~8.3.0",
"typescript": "~4.7.4",
"webpack-bundle-analyzer": "^4.4.2"
},
"dependencies": {
"@angular/animations": "^14.2.5",
"@angular/cdk": "^14.2.4",
"@angular/cli": "^14.2.5",
"@angular/common": "^14.2.5",
"@angular/compiler": "^14.2.5",
"@angular/compiler-cli": "^14.2.5",
"@angular/core": "^14.2.5",
"@angular/forms": "^14.2.5",
"@angular/platform-browser": "^14.2.5",
"@angular/platform-browser-dynamic": "^14.2.5",
"@angular/router": "^14.2.5",
"@appsignal/javascript": "^1.3.23",
"@appsignal/plugin-breadcrumbs-console": "^1.1.24",
"@appsignal/plugin-breadcrumbs-network": "^1.1.21",
"@datorama/akita": "^6.2.0",
"@fullcalendar/angular": "5.10.1",
"@fullcalendar/common": "5.10.1",
"@fullcalendar/core": "5.10.1",
"@fullcalendar/daygrid": "5.10.1",
"@fullcalendar/interaction": "5.10.1",
"@fullcalendar/resource-common": "^5.10.1",
"@fullcalendar/resource-timeline": "5.10.1",
"@fullcalendar/timegrid": "5.10.1",
"@kolkov/ngx-gallery": "^1.0.11",
"@ng-select/ng-option-highlight": "0.0.5",
"@ng-select/ng-select": "^4.0.4",
"@ngneat/content-loader": "^6.1.0",
"@ngx-formly/core": "^5.10.19",
"@uirouter/angular": "^9.1.0",
"@uirouter/core": "^6.0.8",
"@uirouter/rx": "^0.6.5",
"@w11k/ngx-componentdestroyed": "^5.0.2",
"@xeokit/xeokit-bim-viewer": "2.3.10",
"autoprefixer": "^9.6.1",
"byte-base64": "^1.1.0",
"cdk-drag-scroll": "^0.0.6",
"chart.js": "2.9.4",
"chartjs-plugin-datalabels": "^0.6.0",
"codemirror": "^5.62.0",
"copy-text-to-clipboard": "^3.0.0",
"core-js": "^3.2.1",
"crossvent": "^1.5.4",
"dom-autoscroller": "^2.2.8",
"dom-plane": "^1.0.2",
"dragula": "^3.5.2",
"expose-loader": "^0.7.5",
"flatpickr": "^4.6.13",
"fuse.js": "^3.4.5",
"glob": "^7.1.4",
"hammerjs": "^2.0.8",
"jquery": "^3.5.1",
"jquery-ui": "1.13.2",
"jquery-ujs": "^1.2.2",
"jquery.caret": "^0.3.1",
"json5": "^2.1.0",
"lodash": "^4.17.19",
"mark.js": "^8.11.0",
"mime": "^2.5.2",
"moment": "^2.29.4",
"moment-timezone": "^0.5.35",
"mousetrap": "~1.6.3",
"ng-dynamic-component": "^6.0.0",
"ng2-charts": "^2.3.1",
"ng2-dragula": "^2.1.1",
"ngx-cookie-service": "^14.0.0",
"observable-array": "0.0.4",
"pako": "^2.0.3",
"qr-creator": "^1.0.0",
"reactivestates": "2.0.1",
"reflect-metadata": "^0.1.13",
"rxjs": "^6.6.6",
"screenfull": "^4.2.1",
"swagger-ui": "^4.1.3",
"tablesorter": "^2.31.3",
"ts-action": "^11.0.0",
"ts-action-operators": "^9.1.2",
"typedjson": "^1.5.1",
"urijs": "^1.19.11",
"uuid": "^8.3.2",
"zone.js": "~0.11.4"
},
"optionalDependencies": {
"fsevents": "*"
},
"scripts": {
"analyze": "ng build --configuration production --stats-json && webpack-bundle-analyzer -h 0.0.0.0 -p 9999 ../public/assets/frontend/stats.json",
"build": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --configuration production --named-chunks --source-map",
"build:watch": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --watch --named-chunks",
"tokens:generate": "theo src/app/spot/styles/tokens/tokens.yml --transform web --format sass,json --dest src/app/spot/styles/tokens/dist",
"icon-font:generate": "node ./src/app/spot/icon-font/generate.js ./src/app/spot/icon-font",
"serve": "NG_PERSISTENT_BUILD_CACHE=1 node --max_old_space_size=8096 ./node_modules/@angular/cli/bin/ng serve --host 0.0.0.0 --public-host http://localhost:4200",
"serve:test": "NG_PERSISTENT_BUILD_CACHE=1 node --max_old_space_size=8096 ./node_modules/@angular/cli/bin/ng serve --host 0.0.0.0 --disable-host-check --public-host http://frontend-test:4200",
"test": "ng test --watch=false",
"test:watch": "ng test --watch=true",
"lint": "esprint check",
"lint:fix": "esprint check --fix",
"lint:eslint": "eslint",
"generate-typings": "tsc -d -p src/tsconfig.app.json",
"docs:json": "compodoc -p ./tsconfig.base.json -e json -d .",
"storybook:serve": "npm run docs:json && start-storybook -p 6006 --no-manager-cache",
"storybook:build": "npm run docs:json && build-storybook"
}
}
Right now Boards page is blank and getting console error like,
Transition Rejection($id: 0 type: 6, message: The transition errored, detail: Error: Providers from the `BrowserModule` have already been loaded. If you need access to common directives such as NgIf and NgFor, import the `CommonModule` instead.)
$defaultErrorHandler @ stateService.js:33
(anonymous) @ stateService.js:365
invoke @ zone.js:372
onInvoke @ core.mjs:26250
invoke @ zone.js:371
run @ zone.js:134
(anonymous) @ zone.js:1275
invokeTask @ zone.js:406
onInvokeTask @ core.mjs:26237
invokeTask @ zone.js:405
runTask @ zone.js:178
drainMicroTaskQueue @ zone.js:585
Promise.then (async)
nativeScheduleMicroTask @ zone.js:561
scheduleMicroTask @ zone.js:572
scheduleTask @ zone.js:396
onScheduleTask @ zone.js:283
scheduleTask @ zone.js:386
scheduleTask @ zone.js:221
scheduleMicroTask @ zone.js:241
scheduleResolveOrReject @ zone.js:1265
resolvePromise @ zone.js:1202
(anonymous) @ zone.js:1118
(anonymous) @ zone.js:1134
webpackJsonpCallback @ jsonp chunk loading:77
Error: Providers from the `BrowserModule` have already been loaded. If you need access to common directives such as NgIf and NgFor, import the `CommonModule` instead.
at new BrowserModule (platform-browser.mjs:1139:19)
at Object.BrowserModule_Factory [as useFactory] (platform-browser.mjs:1162:1)
at Object.factory (core.mjs:8792:38)
at R3Injector.hydrate (core.mjs:8705:35)
at R3Injector.get (core.mjs:8593:33)
at injectInjectorOnly (core.mjs:4761:33)
at ɵɵinject (core.mjs:4765:12)
at useValue (core.mjs:8385:65)
at R3Injector.resolveInjectorInitializers (core.mjs:8642:17)
at new NgModuleRef (core.mjs:21625:26)
Boards component is called inside global-dynamic-components.const.ts
import { OptionalBootstrapDefinition } from 'core-app/core/setup/globals/dynamic-bootstrapper';
import { appBaseSelector, ApplicationBaseComponent } from 'core-app/core/routing/base/application-base.component';
import {
EmbeddedTablesMacroComponent,
wpEmbeddedTableMacroSelector,
} from 'core-app/features/work-packages/components/wp-table/embedded/embedded-tables-macro.component';
import {
ColorsAutocompleterComponent,
colorsAutocompleterSelector,
} from 'core-app/shared/components/colors/colors-autocompleter.component';
import {
ZenModeButtonComponent,
zenModeComponentSelector,
} from 'core-app/features/work-packages/components/wp-buttons/zen-mode-toggle-button/zen-mode-toggle-button.component';
import {
OpAttachmentsComponent,
attachmentsSelector,
} from 'core-app/shared/components/attachments/attachments.component';
import {
UserAutocompleterComponent,
usersAutocompleterSelector,
} from 'core-app/shared/components/autocompleter/user-autocompleter/user-autocompleter.component';
import {
GlobalSearchWorkPackagesComponent,
globalSearchWorkPackagesSelector,
} from 'core-app/core/global_search/global-search-work-packages.component';
import {
CustomDateActionAdminComponent,
customDateActionAdminSelector,
} from 'core-app/features/work-packages/components/wp-custom-actions/date-action/custom-date-action-admin.component';
import { BoardsMenuComponent, boardsMenuSelector } from 'core-app/features/boards/boards-sidebar/boards-menu.component';
import {
GlobalSearchWorkPackagesEntryComponent,
globalSearchWorkPackagesSelectorEntry,
} from 'core-app/core/global_search/global-search-work-packages-entry.component';
import {
ToastsContainerComponent,
toastsContainerSelector,
} from 'core-app/shared/components/toaster/toasts-container.component';
import {
OpSidemenuComponent,
sidemenuSelector,
} from 'core-app/shared/components/sidemenu/sidemenu.component';
import {
CkeditorAugmentedTextareaComponent,
ckeditorAugmentedTextareaSelector,
} from 'core-app/shared/components/editor/components/ckeditor-augmented-textarea/ckeditor-augmented-textarea.component';
import {
PersistentToggleComponent,
persistentToggleSelector,
} from 'core-app/shared/components/persistent-toggle/persistent-toggle.component';
import {
OpPrincipalComponent,
principalSelector,
} from 'core-app/shared/components/principal/principal.component';
import {
HideSectionLinkComponent,
hideSectionLinkSelector,
} from 'core-app/shared/components/hide-section/hide-section-link/hide-section-link.component';
import {
ShowSectionDropdownComponent,
showSectionDropdownSelector,
} from 'core-app/shared/components/hide-section/show-section-dropdown.component';
import {
AddSectionDropdownComponent,
addSectionDropdownSelector,
} from 'core-app/shared/components/hide-section/add-section-dropdown/add-section-dropdown.component';
import {
AutocompleteSelectDecorationComponent,
autocompleteSelectDecorationSelector,
} from 'core-app/shared/components/autocompleter/autocomplete-select-decoration/autocomplete-select-decoration.component';
import {
ContentTabsComponent,
contentTabsSelector,
} from 'core-app/shared/components/tabs/content-tabs/content-tabs.component';
import {
CopyToClipboardDirective,
copyToClipboardSelector,
} from 'core-app/shared/components/copy-to-clipboard/copy-to-clipboard.directive';
import {
GlobalSearchInputComponent,
globalSearchSelector,
} from 'core-app/core/global_search/input/global-search-input.component';
import {
CopyUrlComponent,
copyUrlSelector,
} from 'core-app/features/share-url/share-url.component';
import {
collapsibleSectionAugmentSelector,
CollapsibleSectionComponent,
} from 'core-app/shared/components/collapsible-section/collapsible-section.component';
import {
OpHeaderProjectSelectComponent,
headerProjectSelectSelector,
} from 'core-app/shared/components/header-project-select/header-project-select.component';
import {
ProjectAutocompleterComponent,
projectsAutocompleterSelector,
} from 'core-app/shared/components/autocompleter/project-autocompleter/project-autocompleter.component';
import {
RemoteFieldUpdaterComponent,
remoteFieldUpdaterSelector,
} from 'core-app/shared/components/remote-field-updater/remote-field-updater.component';
import {
WorkPackageOverviewGraphComponent,
wpOverviewGraphSelector,
} from 'core-app/shared/components/work-package-graphs/overview/wp-overview-graph.component';
import {
opViewSelectSelector,
ViewSelectComponent,
} from 'core-app/shared/components/op-view-select/op-view-select.component';
import {
GlobalSearchTitleComponent,
globalSearchTitleSelector,
} from 'core-app/core/global_search/title/global-search-title.component';
import {
GlobalSearchTabsComponent,
globalSearchTabsSelector,
} from 'core-app/core/global_search/tabs/global-search-tabs.component';
import {
MembersAutocompleterComponent,
membersAutocompleterSelector,
} from 'core-app/shared/components/autocompleter/members-autocompleter/members-autocompleter.component';
import {
TriggerActionsEntryComponent,
triggerActionsEntryComponentSelector,
} from 'core-app/shared/components/time_entries/edit/trigger-actions-entry.component';
import {
BacklogsPageComponent,
backlogsPageComponentSelector,
} from 'core-app/features/backlogs/backlogs-page/backlogs-page.component';
import {
attributeValueMacro,
AttributeValueMacroComponent,
} from 'core-app/shared/components/fields/macros/attribute-value-macro.component';
import {
attributeLabelMacro,
AttributeLabelMacroComponent,
} from 'core-app/shared/components/fields/macros/attribute-label-macro.component';
import {
AttributeHelpTextComponent,
attributeHelpTextSelector,
} from 'core-app/shared/components/attribute-help-texts/attribute-help-text.component';
import {
quickInfoMacroSelector,
WorkPackageQuickinfoMacroComponent,
} from 'core-app/shared/components/fields/macros/work-package-quickinfo-macro.component';
import {
SpotSwitchComponent,
spotSwitchSelector,
} from 'core-app/spot/components/switch/switch.component';
import { BackupComponent, backupSelector } from 'core-app/core/setup/globals/components/admin/backup.component';
import {
EnterpriseBaseComponent,
enterpriseBaseSelector,
} from 'core-app/features/enterprise/enterprise-base.component';
import {
FreeTrialButtonComponent,
freeTrialButtonSelector,
} from 'core-app/features/enterprise/free-trial-button/free-trial-button.component';
import {
EnterpriseBannerComponent,
enterpriseBannerSelector,
} from 'core-app/shared/components/enterprise-banner/enterprise-banner.component';
import {
EnterprisePageComponent,
enterprisePageSelector,
} from 'core-app/shared/components/enterprise-page/enterprise-page.component';
import {
EEActiveSavedTrialComponent,
enterpriseActiveSavedTrialSelector,
} from 'core-app/features/enterprise/enterprise-active-trial/ee-active-saved-trial.component';
import {
NoResultsComponent,
noResultsSelector,
} from 'app/shared/components/no-results/no-results.component';
import {
HomescreenNewFeaturesBlockComponent,
homescreenNewFeaturesBlockSelector,
} from 'core-app/features/homescreen/blocks/new-features.component';
import { MainMenuToggleComponent, mainMenuToggleSelector } from 'core-app/core/main-menu/main-menu-toggle.component';
import {
MainMenuResizerComponent,
mainMenuResizerSelector,
} from 'core-app/shared/components/resizer/resizer/main-menu-resizer.component';
import {
adminTypeFormConfigurationSelector,
TypeFormConfigurationComponent,
} from 'core-app/features/admin/types/type-form-configuration.component';
import {
EditableQueryPropsComponent,
editableQueryPropsSelector,
} from 'core-app/features/admin/editable-query-props/editable-query-props.component';
import {
InAppNotificationBellComponent,
opInAppNotificationBellSelector,
} from 'core-app/features/in-app-notifications/bell/in-app-notification-bell.component';
import {
IanMenuComponent,
ianMenuSelector,
} from 'core-app/features/in-app-notifications/center/menu/menu.component';
import {
opTeamPlannerSidemenuSelector,
TeamPlannerSidemenuComponent,
} from 'core-app/features/team-planner/team-planner/sidemenu/team-planner-sidemenu.component';
import {
CalendarSidemenuComponent,
opCalendarSidemenuSelector,
} from 'core-app/features/calendar/sidemenu/calendar-sidemenu.component';
import { OpModalOverlayComponent, opModalOverlaySelector } from 'core-app/shared/components/modal/modal-overlay.component';
export const globalDynamicComponents:OptionalBootstrapDefinition[] = [
{ selector: appBaseSelector, cls: ApplicationBaseComponent },
{ selector: attributeHelpTextSelector, cls: AttributeHelpTextComponent },
{ selector: wpEmbeddedTableMacroSelector, cls: EmbeddedTablesMacroComponent, embeddable: true },
{ selector: colorsAutocompleterSelector, cls: ColorsAutocompleterComponent },
{ selector: zenModeComponentSelector, cls: ZenModeButtonComponent },
{ selector: attachmentsSelector, cls: OpAttachmentsComponent, embeddable: true },
{ selector: usersAutocompleterSelector, cls: UserAutocompleterComponent },
{ selector: membersAutocompleterSelector, cls: MembersAutocompleterComponent },
{ selector: globalSearchTabsSelector, cls: GlobalSearchTabsComponent },
{ selector: globalSearchWorkPackagesSelector, cls: GlobalSearchWorkPackagesComponent },
{ selector: homescreenNewFeaturesBlockSelector, cls: HomescreenNewFeaturesBlockComponent },
{ selector: customDateActionAdminSelector, cls: CustomDateActionAdminComponent },
{ selector: boardsMenuSelector, cls: BoardsMenuComponent },
{ selector: globalSearchWorkPackagesSelectorEntry, cls: GlobalSearchWorkPackagesEntryComponent },
{ selector: toastsContainerSelector, cls: ToastsContainerComponent },
{ selector: sidemenuSelector, cls: OpSidemenuComponent },
{ selector: adminTypeFormConfigurationSelector, cls: TypeFormConfigurationComponent },
{ selector: ckeditorAugmentedTextareaSelector, cls: CkeditorAugmentedTextareaComponent, embeddable: true },
{ selector: persistentToggleSelector, cls: PersistentToggleComponent },
{ selector: principalSelector, cls: OpPrincipalComponent },
{ selector: hideSectionLinkSelector, cls: HideSectionLinkComponent },
{ selector: showSectionDropdownSelector, cls: ShowSectionDropdownComponent },
{ selector: addSectionDropdownSelector, cls: AddSectionDropdownComponent },
{ selector: autocompleteSelectDecorationSelector, cls: AutocompleteSelectDecorationComponent },
{ selector: contentTabsSelector, cls: ContentTabsComponent },
{ selector: globalSearchTitleSelector, cls: GlobalSearchTitleComponent },
{ selector: copyToClipboardSelector, cls: CopyToClipboardDirective },
{ selector: mainMenuResizerSelector, cls: MainMenuResizerComponent },
{ selector: mainMenuToggleSelector, cls: MainMenuToggleComponent },
{ selector: globalSearchSelector, cls: GlobalSearchInputComponent },
{ selector: copyUrlSelector, cls: CopyUrlComponent },
{ selector: collapsibleSectionAugmentSelector, cls: CollapsibleSectionComponent },
{ selector: enterpriseBannerSelector, cls: EnterpriseBannerComponent },
{ selector: enterprisePageSelector, cls: EnterprisePageComponent },
{ selector: noResultsSelector, cls: NoResultsComponent },
{ selector: enterpriseBaseSelector, cls: EnterpriseBaseComponent },
{ selector: freeTrialButtonSelector, cls: FreeTrialButtonComponent },
{ selector: enterpriseActiveSavedTrialSelector, cls: EEActiveSavedTrialComponent },
{ selector: headerProjectSelectSelector, cls: OpHeaderProjectSelectComponent },
{ selector: projectsAutocompleterSelector, cls: ProjectAutocompleterComponent },
{ selector: remoteFieldUpdaterSelector, cls: RemoteFieldUpdaterComponent },
{ selector: wpOverviewGraphSelector, cls: WorkPackageOverviewGraphComponent },
{ selector: opViewSelectSelector, cls: ViewSelectComponent },
{ selector: opTeamPlannerSidemenuSelector, cls: TeamPlannerSidemenuComponent },
{ selector: opCalendarSidemenuSelector, cls: CalendarSidemenuComponent },
{ selector: triggerActionsEntryComponentSelector, cls: TriggerActionsEntryComponent, embeddable: true },
{ selector: backlogsPageComponentSelector, cls: BacklogsPageComponent },
{ selector: attributeValueMacro, cls: AttributeValueMacroComponent, embeddable: true },
{ selector: attributeLabelMacro, cls: AttributeLabelMacroComponent, embeddable: true },
{ selector: quickInfoMacroSelector, cls: WorkPackageQuickinfoMacroComponent, embeddable: true },
{ selector: editableQueryPropsSelector, cls: EditableQueryPropsComponent },
{ selector: spotSwitchSelector, cls: SpotSwitchComponent },
{ selector: backupSelector, cls: BackupComponent },
{ selector: opInAppNotificationBellSelector, cls: InAppNotificationBellComponent },
{ selector: ianMenuSelector, cls: IanMenuComponent },
{ selector: opModalOverlaySelector, cls: OpModalOverlayComponent },
];
and in openproject-boards.module.ts
import { NgModule } from '@angular/core';
import { OPSharedModule } from 'core-app/shared/shared.module';
import { OpenprojectWorkPackagesModule } from 'core-app/features/work-packages/openproject-work-packages.module';
import { OpenprojectModalModule } from 'core-app/shared/components/modal/modal.module';
import { UIRouterModule } from '@uirouter/angular';
import { BoardListComponent } from 'core-app/features/boards/board/board-list/board-list.component';
import { BoardsRootComponent } from 'core-app/features/boards/boards-root/boards-root.component';
import { BoardInlineAddAutocompleterComponent } from 'core-app/features/boards/board/inline-add/board-inline-add-autocompleter.component';
import { BoardsToolbarMenuDirective } from 'core-app/features/boards/board/toolbar-menu/boards-toolbar-menu.directive';
import { BoardConfigurationModalComponent } from 'core-app/features/boards/board/configuration-modal/board-configuration.modal';
import { BoardsIndexPageComponent } from 'core-app/features/boards/index-page/boards-index-page.component';
import { BoardsMenuComponent } from 'core-app/features/boards/boards-sidebar/boards-menu.component';
import { NewBoardModalComponent } from 'core-app/features/boards/new-board-modal/new-board-modal.component';
import { AddListModalComponent } from 'core-app/features/boards/board/add-list-modal/add-list-modal.component';
import { BoardHighlightingTabComponent } from 'core-app/features/boards/board/configuration-modal/tabs/highlighting-tab.component';
import { AddCardDropdownMenuDirective } from 'core-app/features/boards/board/add-card-dropdown/add-card-dropdown-menu.directive';
import { BoardFilterComponent } from 'core-app/features/boards/board/board-filter/board-filter.component';
import { DragScrollModule } from 'cdk-drag-scroll';
import { BoardListMenuComponent } from 'core-app/features/boards/board/board-list/board-list-menu.component';
import { VersionBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/version/version-board-header.component';
import { DynamicModule } from 'ng-dynamic-component';
import { BOARDS_ROUTES, uiRouterBoardsConfiguration } from 'core-app/features/boards/openproject-boards.routes';
import { BoardPartitionedPageComponent } from 'core-app/features/boards/board/board-partitioned-page/board-partitioned-page.component';
import { BoardListContainerComponent } from 'core-app/features/boards/board/board-partitioned-page/board-list-container.component';
import { BoardsMenuButtonComponent } from 'core-app/features/boards/board/toolbar-menu/boards-menu-button.component';
import { AssigneeBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/assignee/assignee-board-header.component';
import { SubprojectBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/subproject/subproject-board-header.component';
import { SubtasksBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/subtasks/subtasks-board-header.component';
import { StatusBoardHeaderComponent } from 'core-app/features/boards/board/board-actions/status/status-board-header.component';
import { OpenprojectAutocompleterModule } from 'core-app/shared/components/autocompleter/openproject-autocompleter.module';
import { TileViewComponent } from './tile-view/tile-view.component';
@NgModule({
imports: [
OPSharedModule,
OpenprojectWorkPackagesModule,
OpenprojectModalModule,
DragScrollModule,
OpenprojectAutocompleterModule,
// Dynamic Module for actions
DynamicModule.withComponents([VersionBoardHeaderComponent]),
// Routes for /boards
UIRouterModule.forChild({
states: BOARDS_ROUTES,
config: uiRouterBoardsConfiguration,
}),
],
declarations: [
BoardsIndexPageComponent,
BoardPartitionedPageComponent,
BoardListContainerComponent,
BoardListComponent,
BoardsRootComponent,
BoardInlineAddAutocompleterComponent,
BoardsMenuComponent,
BoardHighlightingTabComponent,
BoardConfigurationModalComponent,
BoardsToolbarMenuDirective,
BoardsMenuButtonComponent,
NewBoardModalComponent,
AddListModalComponent,
AddCardDropdownMenuDirective,
BoardListMenuComponent,
BoardFilterComponent,
VersionBoardHeaderComponent,
AssigneeBoardHeaderComponent,
SubprojectBoardHeaderComponent,
SubtasksBoardHeaderComponent,
StatusBoardHeaderComponent,
TileViewComponent,
],
})
export class OpenprojectBoardsModule {
}
Please help me to fix this error.
Do a global search on your entire project and ensure that
browserModule
is only used at theapp.module.ts
, if its used elsewhere please remove it and replace it withCommonModule
from@angular/common