From bc53211f8715b3a8ae277981672900a88a3bf67a Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Thu, 8 Jan 2026 12:28:13 +0100 Subject: [PATCH] [CST-22299] replace form library, update ng-bootstrap and ng-mask --- package-lock.json | 97 ++++++++++--------- package.json | 15 +-- .../browse/bulk-access-browse.component.ts | 12 ++- .../groups-registry.component.ts | 4 +- .../filtered-items-export-csv.component.ts | 4 +- ...supervision-order-status.component.spec.ts | 4 +- .../supervision-order-status.component.ts | 4 +- src/app/app.config.ts | 5 +- src/app/breadcrumbs/breadcrumbs.component.ts | 4 +- .../collection-item-mapper.component.ts | 14 ++- ...edit-metadata-authority-field.component.ts | 4 +- .../dso-edit-metadata-value.component.ts | 4 +- ...em-metadata-list-element.component.spec.ts | 18 ++-- ...it-item-metadata-list-element.component.ts | 4 +- ...em-metadata-list-element.component.spec.ts | 18 ++-- ...on-item-metadata-list-element.component.ts | 4 +- ...ct-item-metadata-list-element.component.ts | 4 +- .../health-page/health-page.component.spec.ts | 14 ++- src/app/health-page/health-page.component.ts | 14 ++- .../health-status.component.spec.ts | 4 +- .../health-status/health-status.component.ts | 4 +- .../edit-item-page.component.ts | 4 +- .../item-edit-bitstream-bundle.component.ts | 4 +- .../item-collection-mapper.component.ts | 14 ++- .../item-operation.component.ts | 4 +- .../orcid-queue/orcid-queue.component.ts | 4 +- .../quality-assurance-events.component.ts | 4 +- .../process-overview-table.component.spec.ts | 3 +- .../context-help-wrapper.component.spec.ts | 6 +- .../context-help-wrapper.component.ts | 3 +- src/app/shared/context-help.directive.spec.ts | 6 +- ...-edit-menu-expandable-section.component.ts | 4 +- .../dso-edit-menu-section.component.ts | 4 +- ...c-form-control-container.component.spec.ts | 6 +- ...ynamic-form-control-container.component.ts | 4 +- .../dynamic-form-array.component.spec.ts | 4 +- .../custom-switch.component.spec.ts | 2 +- ...namic-date-picker-inline.component.spec.ts | 2 +- .../models/list/dynamic-list.component.html | 5 +- .../list/dynamic-list.component.spec.ts | 2 - .../models/list/dynamic-list.component.ts | 2 - .../lookup/dynamic-lookup.component.spec.ts | 3 - .../models/lookup/dynamic-lookup.component.ts | 4 +- .../onebox/dynamic-onebox.component.spec.ts | 3 - .../dynamic-relation-group.component.spec.ts | 4 +- .../dynamic-relation-group.components.ts | 4 +- ...amic-scrollable-dropdown.component.spec.ts | 3 - .../models/tag/dynamic-tag.component.spec.ts | 3 - src/app/shared/form/chips/chips.component.ts | 7 +- .../vocabulary-treeview.component.ts | 4 +- .../impersonate-navbar.component.ts | 4 +- .../claimed-task-actions-approve.component.ts | 4 +- .../claimed-task-actions.component.ts | 4 +- ...med-task-actions-decline-task.component.ts | 4 +- ...ed-task-actions-edit-metadata.component.ts | 4 +- ...ed-claimed-task-action-rating.component.ts | 4 +- .../claimed-task-actions-reject.component.ts | 4 +- ...d-task-actions-return-to-pool.component.ts | 4 +- ...d-task-action-select-reviewer.component.ts | 4 +- .../item/item-actions.component.ts | 4 +- .../pool-task/pool-task-actions.component.ts | 4 +- .../workflowitem-actions.component.ts | 4 +- .../workspaceitem-actions.component.ts | 4 +- .../orcid-badge-and-tooltip.component.spec.ts | 4 +- .../orcid-badge-and-tooltip.component.ts | 4 +- .../shared/pagination/pagination.component.ts | 4 +- .../resource-policy-form.component.spec.ts | 21 +++- .../form/resource-policy-form.component.ts | 12 ++- .../search-form/search-form.component.ts | 4 +- .../search-export-csv.component.ts | 4 +- ...section-upload-file-edit.component.spec.ts | 4 +- .../app/breadcrumbs/breadcrumbs.component.ts | 4 +- .../search-form/search-form.component.ts | 4 +- tsconfig.json | 8 +- 74 files changed, 281 insertions(+), 221 deletions(-) diff --git a/package-lock.json b/package-lock.json index b694fda607e..af9c5dc64fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "10.0.0-next", "hasInstallScript": true, "dependencies": { + "@4science_ng-dynamic-forms/core": "^19.0.1", + "@4science_ng-dynamic-forms/ui-ng-bootstrap": "^19.0.1", "@angular/animations": "^20.3.14", "@angular/cdk": "^20.2.14", "@angular/common": "^20.3.14", @@ -22,9 +24,7 @@ "@angular/router": "^20.3.14", "@angular/ssr": "^20.3.10", "@kolkov/ngx-gallery": "^2.0.1", - "@ng-bootstrap/ng-bootstrap": "^12.1.2", - "@ng-dynamic-forms/core": "^16.0.0", - "@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0", + "@ng-bootstrap/ng-bootstrap": "^15.1.2", "@ngrx/effects": "^20.1.0", "@ngrx/router-store": "^20.1.0", "@ngrx/store": "^20.1.0", @@ -144,7 +144,7 @@ "karma-mocha-reporter": "2.2.5", "md5": "^2.3.0", "ng-mocks": "^14.14.0", - "ngx-mask": "14.2.4", + "ngx-mask": "^16.0.0", "postcss": "^8.5", "postcss-import": "^14.0.0", "postcss-loader": "^4.0.3", @@ -173,6 +173,37 @@ "version": "0.0.0", "dev": true }, + "node_modules/@4science_ng-dynamic-forms/core": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/@4science_ng-dynamic-forms/core/-/core-19.0.1.tgz", + "integrity": "sha512-4sa5SSGrig/h5QsJ4UPksocCx9bbQicxPY2ACCCbfxBsQImHhlPqd5o2whHMwWP0ByAqQG4JqpInZ0Ff8++/Xg==", + "license": "ISC", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "core-js": "^3.31.0", + "rxjs": "^7.5.7" + } + }, + "node_modules/@4science_ng-dynamic-forms/ui-ng-bootstrap": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/@4science_ng-dynamic-forms/ui-ng-bootstrap/-/ui-ng-bootstrap-19.0.1.tgz", + "integrity": "sha512-+2MOuAXP9gFohf2h1icRSSUL7vGRKbFeeNftKAeT+xn9h7LgCwB0R+ZR6jDSsVKHpBoLLCIdjYmDEXdM4BfTug==", + "license": "ISC", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@4science_ng-dynamic-forms/core": "^19.0.1", + "@ng-bootstrap/ng-bootstrap": "^15.1.2", + "bootstrap": "^5.3.2", + "ngx-mask": "^16.4.2" + } + }, "node_modules/@algolia/abtesting": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.1.0.tgz", @@ -7841,50 +7872,22 @@ } }, "node_modules/@ng-bootstrap/ng-bootstrap": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz", - "integrity": "sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg==", + "version": "15.1.2", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-15.1.2.tgz", + "integrity": "sha512-mM2yiGnt9o7KZLIFp8K1vjfmVfu7HR3d8dhH5SszfArbgn9DvvQ4P5D5TDGygzyBSzeyZe18p7I8rX8vgA6DKw==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": "^13.0.0", - "@angular/core": "^13.0.0", - "@angular/forms": "^13.0.0", - "@angular/localize": "^13.0.0", - "@popperjs/core": "^2.10.2", + "@angular/common": "^16.0.0", + "@angular/core": "^16.0.0", + "@angular/forms": "^16.0.0", + "@angular/localize": "^16.0.0", + "@popperjs/core": "^2.11.6", "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@ng-dynamic-forms/core": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ng-dynamic-forms/core/-/core-16.0.0.tgz", - "integrity": "sha512-fH0OIgFs/bWkVnnOtDoAAXHXb3K2UOQXm7qEgO9hg86keE2x3Tu/G/Ma6tRVi5+RfKRgvI2Q6JlMLHIQHYFAgA==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "^15.0.0", - "@angular/core": "^15.0.0", - "@angular/forms": "^15.0.0", - "core-js": "^3.8.1", - "rxjs": "^7.5.5" - } - }, - "node_modules/@ng-dynamic-forms/ui-ng-bootstrap": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ng-dynamic-forms/ui-ng-bootstrap/-/ui-ng-bootstrap-16.0.0.tgz", - "integrity": "sha512-qopjC+j1wfOaB6a/xSUKEpl5vohEospvhLqPl33BgNH557DQg3x3oI/oPo3caLRhIo2vpKGIeuEN5Itok0B3vg==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@ng-bootstrap/ng-bootstrap": "^11.0.0", - "@ng-dynamic-forms/core": "^16.0.0", - "bootstrap": "^4.0.0", - "ngx-mask": "^13.0.0" - } - }, "node_modules/@ngrx/effects": { "version": "20.1.0", "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-20.1.0.tgz", @@ -19419,17 +19422,17 @@ } }, "node_modules/ngx-mask": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/ngx-mask/-/ngx-mask-14.2.4.tgz", - "integrity": "sha512-158nAe2tyiZa2T8COoI6SvJCQHqpJ4+JW0amGcvVEYUBF6FIoYK66BlnOJURAOy5qry0d0N45w7J/LGsCBgZcg==", + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/ngx-mask/-/ngx-mask-16.4.2.tgz", + "integrity": "sha512-mQjcsTpctGu6HYKLf6/gjEUvW65D+46xvPIMYz0BDZXqHXrqKVluHXR3KF++TNOfdLLXwW6SvuHWd91NZN/C1A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/common": ">=10.0.0", - "@angular/core": ">=10.0.0", - "@angular/forms": ">=10.0.0" + "@angular/common": ">=14.0.0", + "@angular/core": ">=14.0.0", + "@angular/forms": ">=14.0.0" } }, "node_modules/ngx-matomo-client": { diff --git a/package.json b/package.json index c07a955cbc2..6a9a5f58ad8 100644 --- a/package.json +++ b/package.json @@ -66,16 +66,11 @@ "@angular/forms": "^20.3.12", "@angular/localize": "^20.3.12" }, - "@ng-dynamic-forms/core": { + "@4science_ng-dynamic-forms/core": { "@angular/common": "^20.3.12", "@angular/core": "^20.3.12", "@angular/forms": "^20.3.12" }, - "@ng-dynamic-forms/ui-ng-bootstrap": { - "ngx-mask": "14.2.4", - "@ng-bootstrap/ng-bootstrap": "^12.1.2", - "bootstrap": "^5.3" - }, "@nicky-lenaers/ngx-scroll-to": { "@angular/common": "^20.3.12", "@angular/core": "^20.3.12" @@ -95,9 +90,9 @@ "@angular/router": "^20.3.14", "@angular/ssr": "^20.3.10", "@kolkov/ngx-gallery": "^2.0.1", - "@ng-bootstrap/ng-bootstrap": "^12.1.2", - "@ng-dynamic-forms/core": "^16.0.0", - "@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0", + "@ng-bootstrap/ng-bootstrap": "^15.1.2", + "@4science_ng-dynamic-forms/core": "^19.0.1", + "@4science_ng-dynamic-forms/ui-ng-bootstrap": "^19.0.1", "@ngrx/effects": "^20.1.0", "@ngrx/router-store": "^20.1.0", "@ngrx/store": "^20.1.0", @@ -217,7 +212,7 @@ "karma-mocha-reporter": "2.2.5", "md5": "^2.3.0", "ng-mocks": "^14.14.0", - "ngx-mask": "14.2.4", + "ngx-mask": "^16.0.0", "postcss": "^8.5", "postcss-import": "^14.0.0", "postcss-loader": "^4.0.3", diff --git a/src/app/access-control/bulk-access/browse/bulk-access-browse.component.ts b/src/app/access-control/bulk-access/browse/bulk-access-browse.component.ts index 97f625f7c69..e2ca2037b1e 100644 --- a/src/app/access-control/bulk-access/browse/bulk-access-browse.component.ts +++ b/src/app/access-control/bulk-access/browse/bulk-access-browse.component.ts @@ -17,7 +17,11 @@ import { createSuccessfulRemoteDataObject } from '@dspace/core/utilities/remote- import { hasValue } from '@dspace/shared/utils/empty.util'; import { NgbAccordionModule, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { NgxPaginationModule } from 'ngx-pagination'; @@ -55,7 +59,11 @@ import { BrowserOnlyPipe } from '../../../shared/utils/browser-only.pipe'; BrowserOnlyPipe, ListableObjectComponentLoaderComponent, NgbAccordionModule, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, NgxPaginationModule, PaginationComponent, SelectableListItemControlComponent, diff --git a/src/app/access-control/group-registry/groups-registry.component.ts b/src/app/access-control/group-registry/groups-registry.component.ts index 772fa2fc912..d48ff3f492c 100644 --- a/src/app/access-control/group-registry/groups-registry.component.ts +++ b/src/app/access-control/group-registry/groups-registry.component.ts @@ -41,7 +41,7 @@ import { PageInfo } from '@dspace/core/shared/page-info.model'; import { hasValue } from '@dspace/shared/utils/empty.util'; import { NgbModal, - NgbTooltipModule, + NgbTooltip, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, @@ -76,7 +76,7 @@ import { getGroupEditPageRouterLink } from '../access-control-routing-paths'; imports: [ AsyncPipe, BtnDisabledDirective, - NgbTooltipModule, + NgbTooltip, PaginationComponent, ReactiveFormsModule, RouterLink, diff --git a/src/app/admin/admin-reports/filtered-items/filtered-items-export-csv/filtered-items-export-csv.component.ts b/src/app/admin/admin-reports/filtered-items/filtered-items-export-csv/filtered-items-export-csv.component.ts index e407ee995fc..41803e63ca1 100644 --- a/src/app/admin/admin-reports/filtered-items/filtered-items-export-csv/filtered-items-export-csv.component.ts +++ b/src/app/admin/admin-reports/filtered-items/filtered-items-export-csv/filtered-items-export-csv.component.ts @@ -14,7 +14,7 @@ import { NotificationsService } from '@dspace/core/notification-system/notificat import { Process } from '@dspace/core/processes/process.model'; import { getFirstCompletedRemoteData } from '@dspace/core/shared/operators'; import { hasValue } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, TranslateService, @@ -36,7 +36,7 @@ import { QueryPredicate } from '../query-predicate.model'; templateUrl: './filtered-items-export-csv.component.html', imports: [ AsyncPipe, - NgbTooltipModule, + NgbTooltip, TranslateModule, ], }) diff --git a/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.spec.ts b/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.spec.ts index 8549bdfc55d..61a17975d69 100644 --- a/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.spec.ts +++ b/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.spec.ts @@ -9,7 +9,7 @@ import { import { By } from '@angular/platform-browser'; import { supervisionOrderListMock } from '@dspace/core/testing/supervision-order.mock'; import { TranslateLoaderMock } from '@dspace/core/testing/translate-loader.mock'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateLoader, TranslateModule, @@ -25,7 +25,7 @@ describe('SupervisionOrderStatusComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ - NgbTooltipModule, + NgbTooltip, TranslateModule.forRoot({ loader: { provide: TranslateLoader, diff --git a/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.ts b/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.ts index b626b649c38..74a98276182 100644 --- a/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.ts +++ b/src/app/admin/admin-workflow-page/admin-workflow-search-results/actions/workspace-item/supervision-order-status/supervision-order-status.component.ts @@ -13,7 +13,7 @@ import { Group } from '@dspace/core/eperson/models/group.model'; import { getFirstCompletedRemoteData } from '@dspace/core/shared/operators'; import { SupervisionOrder } from '@dspace/core/supervision-order/models/supervision-order.model'; import { isNotEmpty } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { BehaviorSubject, @@ -39,7 +39,7 @@ export interface SupervisionOrderListEntry { styleUrls: ['./supervision-order-status.component.scss'], imports: [ AsyncPipe, - NgbTooltipModule, + NgbTooltip, TranslateModule, VarDirective, ], diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 9a799147fdb..db31dda6811 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -43,7 +43,7 @@ import { USER_PROVIDED_META_REDUCERS, } from '@ngrx/store'; import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; -import { NgxMaskModule } from 'ngx-mask'; +import { provideEnvironmentNgxMask } from 'ngx-mask'; import { environment } from '../environments/environment'; import { EagerThemesModule } from '../themes/eager-themes.module'; @@ -102,7 +102,6 @@ export const commonAppConfig: ApplicationConfig = { EagerThemesModule, RootModule, ListableModule.withEntryComponents(), - NgxMaskModule.forRoot(), ), provideRouter( APP_ROUTES, @@ -161,7 +160,7 @@ export const commonAppConfig: ApplicationConfig = { // DI-composable menus ...MENUS, - + provideEnvironmentNgxMask(), provideCore(), ], }; diff --git a/src/app/breadcrumbs/breadcrumbs.component.ts b/src/app/breadcrumbs/breadcrumbs.component.ts index c76c2489de9..bc8dbf61cab 100644 --- a/src/app/breadcrumbs/breadcrumbs.component.ts +++ b/src/app/breadcrumbs/breadcrumbs.component.ts @@ -5,7 +5,7 @@ import { import { Component } from '@angular/core'; import { RouterLink } from '@angular/router'; import { Breadcrumb } from '@dspace/core/breadcrumbs/models/breadcrumb.model'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { Observable } from 'rxjs'; @@ -21,7 +21,7 @@ import { BreadcrumbsService } from './breadcrumbs.service'; styleUrls: ['./breadcrumbs.component.scss'], imports: [ AsyncPipe, - NgbTooltipModule, + NgbTooltip, NgTemplateOutlet, RouterLink, TranslateModule, diff --git a/src/app/collection-page/collection-item-mapper/collection-item-mapper.component.ts b/src/app/collection-page/collection-item-mapper/collection-item-mapper.component.ts index e4010b271be..4ed8143b0c0 100644 --- a/src/app/collection-page/collection-item-mapper/collection-item-mapper.component.ts +++ b/src/app/collection-page/collection-item-mapper/collection-item-mapper.component.ts @@ -34,7 +34,13 @@ import { } from '@dspace/core/shared/operators'; import { PaginatedSearchOptions } from '@dspace/core/shared/search/models/paginated-search-options.model'; import { isNotEmpty } from '@dspace/shared/utils/empty.util'; -import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; +import { + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, +} from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, TranslateService, @@ -81,7 +87,11 @@ import { BrowserOnlyPipe } from '../../shared/utils/browser-only.pipe'; AsyncPipe, BrowserOnlyPipe, ItemSelectComponent, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, ThemedSearchFormComponent, TranslateModule, ], diff --git a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value-field/dso-edit-metadata-authority-field/dso-edit-metadata-authority-field.component.ts b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value-field/dso-edit-metadata-authority-field/dso-edit-metadata-authority-field.component.ts index 0428c9a7003..226d711e4bc 100644 --- a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value-field/dso-edit-metadata-authority-field/dso-edit-metadata-authority-field.component.ts +++ b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value-field/dso-edit-metadata-authority-field/dso-edit-metadata-authority-field.component.ts @@ -26,7 +26,7 @@ import { import { Vocabulary } from '@dspace/core/submission/vocabularies/models/vocabulary.model'; import { VocabularyOptions } from '@dspace/core/submission/vocabularies/models/vocabulary-options.model'; import { isNotEmpty } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, TranslateService, @@ -73,7 +73,7 @@ import { DsoEditMetadataFieldService } from '../dso-edit-metadata-field.service' DsDynamicOneboxComponent, DsDynamicScrollableDropdownComponent, FormsModule, - NgbTooltipModule, + NgbTooltip, NgClass, TranslateModule, ], diff --git a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts index 051aec9b439..2af25e39c3b 100644 --- a/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts +++ b/src/app/dso-shared/dso-edit-metadata/dso-edit-metadata-value/dso-edit-metadata-value.component.ts @@ -31,7 +31,7 @@ import { } from '@dspace/core/shared/metadata-representation/metadata-representation.model'; import { Vocabulary } from '@dspace/core/submission/vocabularies/models/vocabulary.model'; import { hasValue } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { EMPTY, @@ -64,7 +64,7 @@ import { DsoEditMetadataValueFieldLoaderComponent } from '../dso-edit-metadata-v DebounceDirective, DsoEditMetadataValueFieldLoaderComponent, FormsModule, - NgbTooltipModule, + NgbTooltip, NgClass, RouterLink, ThemedTypeBadgeComponent, diff --git a/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.spec.ts b/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.spec.ts index 3483cbab753..b91cf69534c 100644 --- a/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.spec.ts +++ b/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.spec.ts @@ -1,6 +1,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA, + TemplateRef, } from '@angular/core'; import { ComponentFixture, @@ -12,7 +13,7 @@ import { RouterLink } from '@angular/router'; import { Item } from '@dspace/core/shared/item.model'; import { MetadataValue } from '@dspace/core/shared/metadata.models'; import { ItemMetadataRepresentation } from '@dspace/core/shared/metadata-representation/item/item-metadata-representation.model'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component'; import { OrgUnitItemMetadataListElementComponent } from './org-unit-item-metadata-list-element.component'; @@ -30,7 +31,7 @@ describe('OrgUnitItemMetadataListElementComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ - NgbModule, + NgbTooltip, OrgUnitItemMetadataListElementComponent, ], schemas: [NO_ERRORS_SCHEMA], @@ -56,9 +57,14 @@ describe('OrgUnitItemMetadataListElementComponent', () => { it('should show the description on hover over the link in a tooltip', () => { const link = fixture.debugElement.query(By.css('a')); - link.triggerEventHandler('mouseenter', null); - fixture.detectChanges(); - const tooltip = fixture.debugElement.query(By.css('.item-list-job-title')).nativeElement.textContent; - expect(tooltip).toBe(description); + const tooltipDir = link.injector.get(NgbTooltip); + const viewRef = (tooltipDir.ngbTooltip as TemplateRef).createEmbeddedView({}); + viewRef.detectChanges(); + const textContent = viewRef.rootNodes + .map((node: any) => node.textContent) + .join('') + .trim(); + + expect(textContent).toEqual(description); }); }); diff --git a/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.ts b/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.ts index aa1372ccd42..e54bd167300 100644 --- a/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.ts +++ b/src/app/entity-groups/research-entities/metadata-representations/org-unit/org-unit-item-metadata-list-element.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; import { RouterLink } from '@angular/router'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { ItemMetadataRepresentationListElementComponent } from '../../../../shared/object-list/metadata-representation-list-element/item/item-metadata-representation-list-element.component'; import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component'; @@ -9,7 +9,7 @@ import { TruncatableComponent } from '../../../../shared/truncatable/truncatable selector: 'ds-org-unit-item-metadata-list-element', templateUrl: './org-unit-item-metadata-list-element.component.html', imports: [ - NgbTooltipModule, + NgbTooltip, RouterLink, TruncatableComponent, ], diff --git a/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.spec.ts b/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.spec.ts index 0a15667f291..d545f8a5897 100644 --- a/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.spec.ts +++ b/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.spec.ts @@ -1,6 +1,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA, + TemplateRef, } from '@angular/core'; import { ComponentFixture, @@ -12,7 +13,7 @@ import { RouterLink } from '@angular/router'; import { Item } from '@dspace/core/shared/item.model'; import { MetadataValue } from '@dspace/core/shared/metadata.models'; import { ItemMetadataRepresentation } from '@dspace/core/shared/metadata-representation/item/item-metadata-representation.model'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component'; import { PersonItemMetadataListElementComponent } from './person-item-metadata-list-element.component'; @@ -32,7 +33,7 @@ describe('PersonItemMetadataListElementComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [ - NgbModule, + NgbTooltip, PersonItemMetadataListElementComponent, ], schemas: [NO_ERRORS_SCHEMA], @@ -58,9 +59,14 @@ describe('PersonItemMetadataListElementComponent', () => { it('should show the description on hover over the link in a tooltip', () => { const link = fixture.debugElement.query(By.css('a')); - link.triggerEventHandler('mouseenter', null); - fixture.detectChanges(); - const tooltip = fixture.debugElement.query(By.css('.item-list-job-title')).nativeElement.textContent; - expect(tooltip).toBe(jobTitle); + const tooltipDir = link.injector.get(NgbTooltip); + const viewRef = (tooltipDir.ngbTooltip as TemplateRef).createEmbeddedView({}); + viewRef.detectChanges(); + const textContent = viewRef.rootNodes + .map((node: any) => node.textContent) + .join('') + .trim(); + + expect(textContent).toEqual(jobTitle); }); }); diff --git a/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.ts b/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.ts index 737d63475b4..24d3177ff89 100644 --- a/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.ts +++ b/src/app/entity-groups/research-entities/metadata-representations/person/person-item-metadata-list-element.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { RouterLink } from '@angular/router'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { ItemMetadataRepresentationListElementComponent } from '../../../../shared/object-list/metadata-representation-list-element/item/item-metadata-representation-list-element.component'; import { OrcidBadgeAndTooltipComponent } from '../../../../shared/orcid-badge-and-tooltip/orcid-badge-and-tooltip.component'; @@ -11,7 +11,7 @@ import { TruncatableComponent } from '../../../../shared/truncatable/truncatable selector: 'ds-person-item-metadata-list-element', templateUrl: './person-item-metadata-list-element.component.html', imports: [ - NgbTooltipModule, + NgbTooltip, OrcidBadgeAndTooltipComponent, RouterLink, TruncatableComponent, diff --git a/src/app/entity-groups/research-entities/metadata-representations/project/project-item-metadata-list-element.component.ts b/src/app/entity-groups/research-entities/metadata-representations/project/project-item-metadata-list-element.component.ts index f4f9f2ed34c..d36a39363eb 100644 --- a/src/app/entity-groups/research-entities/metadata-representations/project/project-item-metadata-list-element.component.ts +++ b/src/app/entity-groups/research-entities/metadata-representations/project/project-item-metadata-list-element.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { RouterLink } from '@angular/router'; import { DSONameService } from '@dspace/core/breadcrumbs/dso-name.service'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { ItemMetadataRepresentationListElementComponent } from '../../../../shared/object-list/metadata-representation-list-element/item/item-metadata-representation-list-element.component'; import { TruncatableComponent } from '../../../../shared/truncatable/truncatable.component'; @@ -10,7 +10,7 @@ import { TruncatableComponent } from '../../../../shared/truncatable/truncatable selector: 'ds-project-item-metadata-list-element', templateUrl: './project-item-metadata-list-element.component.html', imports: [ - NgbTooltipModule, + NgbTooltip, RouterLink, TruncatableComponent, ], diff --git a/src/app/health-page/health-page.component.spec.ts b/src/app/health-page/health-page.component.spec.ts index 19b10b3930b..645727ada0a 100644 --- a/src/app/health-page/health-page.component.spec.ts +++ b/src/app/health-page/health-page.component.spec.ts @@ -10,7 +10,13 @@ import { HealthResponseObj, } from '@dspace/core/testing/health-endpoint.mocks'; import { TranslateLoaderMock } from '@dspace/core/testing/translate-loader.mock'; -import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; +import { + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, +} from '@ng-bootstrap/ng-bootstrap'; import { TranslateLoader, TranslateModule, @@ -45,7 +51,11 @@ describe('HealthPageComponent', () => { await TestBed.configureTestingModule({ imports: [ CommonModule, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, TranslateModule.forRoot({ loader: { provide: TranslateLoader, diff --git a/src/app/health-page/health-page.component.ts b/src/app/health-page/health-page.component.ts index ede8f8bc213..be5229b09f7 100644 --- a/src/app/health-page/health-page.component.ts +++ b/src/app/health-page/health-page.component.ts @@ -7,7 +7,13 @@ import { HealthInfoResponse, HealthResponse, } from '@dspace/core/shared/health-component.model'; -import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; +import { + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, +} from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { BehaviorSubject } from 'rxjs'; import { take } from 'rxjs/operators'; @@ -27,7 +33,11 @@ import { HealthPanelComponent } from './health-panel/health-panel.component'; AsyncPipe, HealthInfoComponent, HealthPanelComponent, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, TranslateModule, ], }) diff --git a/src/app/health-page/health-panel/health-status/health-status.component.spec.ts b/src/app/health-page/health-panel/health-status/health-status.component.spec.ts index f5feb8fef9b..be580145a31 100644 --- a/src/app/health-page/health-panel/health-status/health-status.component.spec.ts +++ b/src/app/health-page/health-panel/health-status/health-status.component.spec.ts @@ -5,7 +5,7 @@ import { import { By } from '@angular/platform-browser'; import { HealthStatus } from '@dspace/core/shared/health-component.model'; import { TranslateLoaderMock } from '@dspace/core/testing/translate-loader.mock'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateLoader, TranslateModule, @@ -20,7 +20,7 @@ describe('HealthStatusComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ - NgbTooltipModule, + NgbTooltip, TranslateModule.forRoot({ loader: { provide: TranslateLoader, diff --git a/src/app/health-page/health-panel/health-status/health-status.component.ts b/src/app/health-page/health-panel/health-status/health-status.component.ts index 96db483cac6..d3ee68117a4 100644 --- a/src/app/health-page/health-panel/health-status/health-status.component.ts +++ b/src/app/health-page/health-panel/health-status/health-status.component.ts @@ -4,7 +4,7 @@ import { Input, } from '@angular/core'; import { HealthStatus } from '@dspace/core/shared/health-component.model'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; /** @@ -15,7 +15,7 @@ import { TranslateModule } from '@ngx-translate/core'; templateUrl: './health-status.component.html', styleUrls: ['./health-status.component.scss'], imports: [ - NgbTooltipModule, + NgbTooltip, TranslateModule, ], }) diff --git a/src/app/item-page/edit-item-page/edit-item-page.component.ts b/src/app/item-page/edit-item-page/edit-item-page.component.ts index 9150a03a861..08eebba7feb 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.component.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.component.ts @@ -21,7 +21,7 @@ import { RemoteData } from '@dspace/core/data/remote-data'; import { getItemPageRoute } from '@dspace/core/router/utils/dso-route.utils'; import { Item } from '@dspace/core/shared/item.model'; import { isNotEmpty } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { combineLatest as observableCombineLatest, @@ -45,7 +45,7 @@ import { ], imports: [ AsyncPipe, - NgbTooltipModule, + NgbTooltip, NgClass, RouterLink, RouterOutlet, diff --git a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.ts b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.ts index e0c81159039..18ecc13a8b9 100644 --- a/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.ts +++ b/src/app/item-page/edit-item-page/item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component.ts @@ -40,7 +40,7 @@ import { } from '@dspace/shared/utils/empty.util'; import { NgbDropdownModule, - NgbTooltipModule, + NgbTooltip, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { @@ -81,7 +81,7 @@ import { CdkDropList, CommonModule, NgbDropdownModule, - NgbTooltipModule, + NgbTooltip, PaginationComponent, RouterLink, TranslateModule, diff --git a/src/app/item-page/edit-item-page/item-collection-mapper/item-collection-mapper.component.ts b/src/app/item-page/edit-item-page/item-collection-mapper/item-collection-mapper.component.ts index df0898efb01..b740b5df6b0 100644 --- a/src/app/item-page/edit-item-page/item-collection-mapper/item-collection-mapper.component.ts +++ b/src/app/item-page/edit-item-page/item-collection-mapper/item-collection-mapper.component.ts @@ -33,7 +33,13 @@ import { hasValue, isNotEmpty, } from '@dspace/shared/utils/empty.util'; -import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; +import { + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, +} from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, TranslateService, @@ -74,7 +80,11 @@ import { BrowserOnlyPipe } from '../../../shared/utils/browser-only.pipe'; AsyncPipe, BrowserOnlyPipe, CollectionSelectComponent, - NgbNavModule, + NgbNav, + NgbNavContent, + NgbNavItem, + NgbNavLink, + NgbNavOutlet, ThemedSearchFormComponent, TranslateModule, ], diff --git a/src/app/item-page/edit-item-page/item-operation/item-operation.component.ts b/src/app/item-page/edit-item-page/item-operation/item-operation.component.ts index 8e7ae3553ce..0d1dd6bb246 100644 --- a/src/app/item-page/edit-item-page/item-operation/item-operation.component.ts +++ b/src/app/item-page/edit-item-page/item-operation/item-operation.component.ts @@ -4,7 +4,7 @@ import { Input, } from '@angular/core'; import { RouterLink } from '@angular/router'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { BtnDisabledDirective } from '../../../shared/btn-disabled.directive'; @@ -15,7 +15,7 @@ import { ItemOperation } from './itemOperation.model'; templateUrl: './item-operation.component.html', imports: [ BtnDisabledDirective, - NgbTooltipModule, + NgbTooltip, RouterLink, TranslateModule, ], diff --git a/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts b/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts index 65e1a25ec83..31b84a42f02 100644 --- a/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts +++ b/src/app/item-page/orcid-page/orcid-queue/orcid-queue.component.ts @@ -20,7 +20,7 @@ import { PaginationComponentOptions } from '@dspace/core/pagination/pagination-c import { Item } from '@dspace/core/shared/item.model'; import { getFirstCompletedRemoteData } from '@dspace/core/shared/operators'; import { hasValue } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, TranslateService, @@ -50,7 +50,7 @@ import { PaginationComponent } from '../../../shared/pagination/pagination.compo imports: [ AlertComponent, CommonModule, - NgbTooltipModule, + NgbTooltip, PaginationComponent, ThemedLoadingComponent, TranslateModule, diff --git a/src/app/notifications/qa/events/quality-assurance-events.component.ts b/src/app/notifications/qa/events/quality-assurance-events.component.ts index b7924a70f06..65d24ab1264 100644 --- a/src/app/notifications/qa/events/quality-assurance-events.component.ts +++ b/src/app/notifications/qa/events/quality-assurance-events.component.ts @@ -40,7 +40,7 @@ import { import { hasValue } from '@dspace/shared/utils/empty.util'; import { NgbModal, - NgbTooltipModule, + NgbTooltip, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, @@ -85,7 +85,7 @@ import { EPersonDataComponent } from './ePerson-data/ePerson-data.component'; AsyncPipe, BtnDisabledDirective, EPersonDataComponent, - NgbTooltipModule, + NgbTooltip, PaginationComponent, RouterLink, ThemedLoadingComponent, diff --git a/src/app/process-page/overview/table/process-overview-table.component.spec.ts b/src/app/process-page/overview/table/process-overview-table.component.spec.ts index dca49769442..883e0cfd302 100644 --- a/src/app/process-page/overview/table/process-overview-table.component.spec.ts +++ b/src/app/process-page/overview/table/process-overview-table.component.spec.ts @@ -146,8 +146,7 @@ describe('ProcessOverviewTableComponent', () => { translateServiceSpy = jasmine.createSpyObj('TranslateService', ['get']); void TestBed.configureTestingModule({ - declarations: [NgbCollapse], - imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), VarDirective, ProcessOverviewTableComponent], + imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), VarDirective, ProcessOverviewTableComponent, NgbCollapse], providers: [ { provide: ProcessOverviewService, useValue: processOverviewService }, { provide: ProcessDataService, useValue: processService }, diff --git a/src/app/shared/context-help-wrapper/context-help-wrapper.component.spec.ts b/src/app/shared/context-help-wrapper/context-help-wrapper.component.spec.ts index b7b048245a7..92142903721 100644 --- a/src/app/shared/context-help-wrapper/context-help-wrapper.component.spec.ts +++ b/src/app/shared/context-help-wrapper/context-help-wrapper.component.spec.ts @@ -10,7 +10,7 @@ import { } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { - NgbTooltipModule, + NgbTooltip, Placement, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateService } from '@ngx-translate/core'; @@ -40,7 +40,7 @@ import { PlacementDir } from './placement-dir.model'; `, imports: [ ContextHelpWrapperComponent, - NgbTooltipModule, + NgbTooltip, ], }) class TemplateComponent { @@ -90,7 +90,7 @@ describe('ContextHelpWrapperComponent', () => { ]); TestBed.configureTestingModule({ - imports: [NgbTooltipModule, TemplateComponent, ContextHelpWrapperComponent], + imports: [NgbTooltip, TemplateComponent, ContextHelpWrapperComponent], providers: [ { provide: TranslateService, useValue: translateService }, { provide: ContextHelpService, useValue: contextHelpService }, diff --git a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts index 9e2b4c4eca5..53c9a0009f3 100644 --- a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts +++ b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts @@ -14,7 +14,6 @@ import { import { hasValueOperator } from '@dspace/shared/utils/empty.util'; import { NgbTooltip, - NgbTooltipModule, Placement, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateService } from '@ngx-translate/core'; @@ -46,7 +45,7 @@ type ParsedContent = ({href?: string, text: string})[]; styleUrls: ['./context-help-wrapper.component.scss'], imports: [ AsyncPipe, - NgbTooltipModule, + NgbTooltip, NgClass, NgTemplateOutlet, ], diff --git a/src/app/shared/context-help.directive.spec.ts b/src/app/shared/context-help.directive.spec.ts index ef69da777c7..9d381f408b4 100644 --- a/src/app/shared/context-help.directive.spec.ts +++ b/src/app/shared/context-help.directive.spec.ts @@ -7,7 +7,7 @@ import { TestBed, waitForAsync, } from '@angular/core/testing'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, @@ -26,7 +26,7 @@ import { ContextHelpWrapperComponent } from './context-help-wrapper/context-help template: `
some text
`, imports: [ ContextHelpDirective, - NgbTooltipModule, + NgbTooltip, ], }) class TestComponent { @@ -72,7 +72,7 @@ describe('ContextHelpDirective', () => { ]); TestBed.configureTestingModule({ - imports: [NgbTooltipModule, TestComponent, ContextHelpWrapperComponent, ContextHelpDirective], + imports: [NgbTooltip, TestComponent, ContextHelpWrapperComponent, ContextHelpDirective], providers: [ { provide: TranslateService, useValue: translateService }, { provide: ContextHelpService, useValue: contextHelpService }, diff --git a/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts b/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts index f3959c24fd7..bc8e40b32ef 100644 --- a/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts +++ b/src/app/shared/dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component.ts @@ -15,7 +15,7 @@ import { } from '@dspace/shared/utils/empty.util'; import { NgbDropdownModule, - NgbTooltipModule, + NgbTooltip, } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { Observable } from 'rxjs'; @@ -38,7 +38,7 @@ import { MenuService } from '../../../menu/menu.service'; AsyncPipe, BtnDisabledDirective, NgbDropdownModule, - NgbTooltipModule, + NgbTooltip, NgComponentOutlet, TranslateModule, ], diff --git a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts index ffd312e71c8..666f9c93b78 100644 --- a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts +++ b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component.ts @@ -7,7 +7,7 @@ import { } from '@angular/core'; import { RouterLink } from '@angular/router'; import { isNotEmpty } from '@dspace/shared/utils/empty.util'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { AbstractMenuSectionComponent } from 'src/app/shared/menu/menu-section/abstract-menu-section.component'; @@ -25,7 +25,7 @@ import { MenuSection } from '../../../menu/menu-section.model'; styleUrls: ['./dso-edit-menu-section.component.scss'], imports: [ BtnDisabledDirective, - NgbTooltipModule, + NgbTooltip, RouterLink, TranslateModule, ], diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts index 2721374f4e4..a02d636d7b5 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts @@ -61,7 +61,7 @@ import { } from '@ng-dynamic-forms/ui-ng-bootstrap'; import { Store } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; -import { NgxMaskModule } from 'ngx-mask'; +import { provideEnvironmentNgxMask } from 'ngx-mask'; import { of } from 'rxjs'; import { environment } from '../../../../../environments/environment'; @@ -214,11 +214,11 @@ describe('DsDynamicFormControlContainerComponent test suite', () => { FormsModule, ReactiveFormsModule, NgbModule, - DynamicFormsCoreModule.forRoot(), + DynamicFormsCoreModule, TranslateModule.forRoot(), - NgxMaskModule.forRoot(), ], providers: [ + provideEnvironmentNgxMask(), DsDynamicFormControlContainerComponent, DynamicFormService, { provide: DsDynamicTypeBindRelationService, useValue: getMockDsDynamicTypeBindRelationService() }, diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts index 5a7ebcd34d6..81354b4032e 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts @@ -72,7 +72,7 @@ import { import { NgbModal, NgbModalRef, - NgbTooltipModule, + NgbTooltip, } from '@ng-bootstrap/ng-bootstrap'; import { DYNAMIC_FORM_CONTROL_MAP_FN, @@ -133,7 +133,7 @@ import { NameVariantService } from './relation-lookup-modal/name-variant.service ExistingMetadataListElementComponent, ExistingRelationListElementComponent, FormsModule, - NgbTooltipModule, + NgbTooltip, NgClass, NgTemplateOutlet, ReactiveFormsModule, diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/array-group/dynamic-form-array.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/array-group/dynamic-form-array.component.spec.ts index 576fa609e95..ad8e6045b11 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/array-group/dynamic-form-array.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/array-group/dynamic-form-array.component.spec.ts @@ -21,7 +21,7 @@ import { TranslateModule, TranslateService, } from '@ngx-translate/core'; -import { NgxMaskModule } from 'ngx-mask'; +import { provideEnvironmentNgxMask } from 'ngx-mask'; import { of } from 'rxjs'; import { LiveRegionService } from 'src/app/shared/live-region/live-region.service'; @@ -50,10 +50,10 @@ describe('DsDynamicFormArrayComponent', () => { imports: [ ReactiveFormsModule, DsDynamicFormArrayComponent, - NgxMaskModule.forRoot(), TranslateModule.forRoot(), ], providers: [ + provideEnvironmentNgxMask(), DynamicFormLayoutService, DynamicFormValidationService, provideMockStore(), diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.component.spec.ts index 342e36d7186..51f673a13a8 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.component.spec.ts @@ -36,7 +36,7 @@ describe('CustomSwitchComponent', () => { TranslateModule.forRoot(), ReactiveFormsModule, NoopAnimationsModule, - DynamicFormsCoreModule.forRoot(), + DynamicFormsCoreModule, CustomSwitchComponent, ], }).compileComponents().then(() => { diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker-inline/dynamic-date-picker-inline.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker-inline/dynamic-date-picker-inline.component.spec.ts index c3b488ef76c..3759cf4e7ec 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker-inline/dynamic-date-picker-inline.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/date-picker-inline/dynamic-date-picker-inline.component.spec.ts @@ -38,7 +38,7 @@ describe('DsDatePickerInlineComponent test suite', () => { ReactiveFormsModule, NoopAnimationsModule, NgbDatepickerModule, - DynamicFormsCoreModule.forRoot(), + DynamicFormsCoreModule, DsDatePickerInlineComponent, ], }).compileComponents().then(() => { diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.html b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.html index 3c58f495321..5e21353d364 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.html +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/list/dynamic-list.component.html @@ -37,11 +37,9 @@ @if (!model.repeatable) {
+ [ngClass]="model.layout.element?.control"> @for (columnItems of items; track columnItems) {
@for (item of columnItems; track item) { @@ -52,6 +50,7 @@ [name]="model.id" [required]="model.required" [value]="item.index" + (change)="onChange($event)" (blur)="onBlur($event)" (focus)="onFocus($event)"/>