From 5fa3afe3a5f4a07dffdcf72c6757786ae6d0da18 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 1 Jul 2024 11:01:26 -0400 Subject: [PATCH 001/247] ACS-8256: Move "menu buttons" to Insights where it belongs (#9849) --- docs/README.md | 1 - .../buttons-menu.component.stories.ts | 119 ------------------ .../lib/buttons-menu/buttons-menu.module.ts | 36 ------ lib/core/src/lib/buttons-menu/index.ts | 18 --- lib/core/src/lib/buttons-menu/public-api.ts | 19 --- lib/core/src/lib/core.module.ts | 3 - lib/core/src/public-api.ts | 1 - lib/insights/.eslintrc.json | 8 ++ .../components/buttons-menu.component.md | 14 +-- .../images/adf-buttons-menu-desktop.png | Bin .../images/adf-buttons-menu-mobile.png | Bin .../analytics-report-parameters.component.ts | 7 +- .../buttons-menu/buttons-menu.component.html | 0 .../buttons-menu/buttons-menu.component.scss | 3 +- .../buttons-menu.component.spec.ts | 21 ++-- .../buttons-menu/buttons-menu.component.ts | 11 +- .../src/lib/analytics-process/public-api.ts | 3 + 17 files changed, 41 insertions(+), 223 deletions(-) delete mode 100644 lib/core/src/lib/buttons-menu/buttons-menu.component.stories.ts delete mode 100644 lib/core/src/lib/buttons-menu/buttons-menu.module.ts delete mode 100644 lib/core/src/lib/buttons-menu/index.ts delete mode 100644 lib/core/src/lib/buttons-menu/public-api.ts rename {docs/core => lib/insights/docs}/components/buttons-menu.component.md (67%) rename {docs/docassets => lib/insights/docs/components}/images/adf-buttons-menu-desktop.png (100%) rename {docs/docassets => lib/insights/docs/components}/images/adf-buttons-menu-mobile.png (100%) rename lib/{core/src/lib => insights/src/lib/analytics-process/components}/buttons-menu/buttons-menu.component.html (100%) rename lib/{core/src/lib => insights/src/lib/analytics-process/components}/buttons-menu/buttons-menu.component.scss (82%) rename lib/{core/src/lib => insights/src/lib/analytics-process/components}/buttons-menu/buttons-menu.component.spec.ts (84%) rename lib/{core/src/lib => insights/src/lib/analytics-process/components}/buttons-menu/buttons-menu.component.ts (76%) diff --git a/docs/README.md b/docs/README.md index 5c5650b979..d2cb44fc7e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -87,7 +87,6 @@ for more information about installing and using the source code. | [About GitHub Link Component](core/components/about-github-link.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of the application is running based on the latest GitHub commit, as well as the server settings for the application. | [Source](../lib/core/src/lib/about/about-github-link/about-github-link.component.ts) | | [About Product Version Component](core/components/about-product-version.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Shows which version of Process Services (BPM) and Content Services (ECM) an application is running. It also shows the relevant license information, application status and Alfresco modules running in an application. | [Source](../lib/core/src/lib/about/about-product-version/about-product-version.component.ts) | | [About Component](core/components/about.component.md) | Presentational component to display About information as a set of collapsible panels. | [Source](../lib/core/src/lib/about/about.component.ts) | -| [Buttons Menu Component](core/components/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/src/lib/buttons-menu/buttons-menu.component.ts) | | [Card View component](core/components/card-view.component.md) | Displays a configurable property list renderer. | [Source](../lib/core/src/lib/card-view/components/card-view/card-view.component.ts) | | [Comment list component](core/components/comment-list.component.md) | Shows a list of comments. | [Source](../lib/core/src/lib/comments/comment-list/comment-list.component.ts) | | [Comments Component](core/components/comments.component.md) | Displays comments from users involved in a specified environment and allows an involved user to add a comment to a environment. | [Source](../lib/core/src/lib/comments/comments.component.ts) | diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.component.stories.ts b/lib/core/src/lib/buttons-menu/buttons-menu.component.stories.ts deleted file mode 100644 index 3565fdc63c..0000000000 --- a/lib/core/src/lib/buttons-menu/buttons-menu.component.stories.ts +++ /dev/null @@ -1,119 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Meta, moduleMetadata, Story } from '@storybook/angular'; -import { CoreStoryModule } from '../testing/core.story.module'; -import { ButtonsMenuComponent } from './buttons-menu.component'; -import { ButtonsMenuModule } from './buttons-menu.module'; - -export default { - component: ButtonsMenuComponent, - title: 'Core/Buttons Menu/Buttons Menu', - decorators: [ - moduleMetadata({ - imports: [CoreStoryModule, ButtonsMenuModule] - }) - ], - argTypes: { - mobile: { - type: { name: 'boolean' }, - name: 'isMobile', - description: - 'Determines whether it is displayed on a mobile device', - defaultValue: true, - control: { - disable: false - }, - table: { - category: 'Component methods', - type: { - summary: '() => boolean' - } - } - }, - isMenuEmpty: { - description: 'Determines whether it has anything to display', - table: { - category: 'Component properties', - type: { - summary: 'boolean' - } - } - } - } -} as Meta; - -export const sixButtons: Story = args => ({ - props: { - ...args, - isMenuEmpty: false, - isMobile() { - return args.mobile; - } - }, - template: ` - - - - - - - - -` -}); - -export const oneButton: Story = args => ({ - props: { - ...args, - isMenuEmpty: false, - isMobile() { - return args.mobile; - } - }, - template: ` - - - -` -}); - -export const noButtons: Story = args => ({ - props: { - ...args, - isMenuEmpty: true, - isMobile() { - return args.mobile; - } - }, - template: ` - ` -}); diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.module.ts b/lib/core/src/lib/buttons-menu/buttons-menu.module.ts deleted file mode 100644 index 5215f52e95..0000000000 --- a/lib/core/src/lib/buttons-menu/buttons-menu.module.ts +++ /dev/null @@ -1,36 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { TranslateModule } from '@ngx-translate/core'; -import { MatIconModule } from '@angular/material/icon'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatButtonModule } from '@angular/material/button'; -import { ButtonsMenuComponent } from './buttons-menu.component'; - -@NgModule({ - imports: [ - CommonModule, - MatIconModule, - MatMenuModule, - TranslateModule - ], - declarations: [ButtonsMenuComponent], - exports: [ButtonsMenuComponent, MatIconModule, MatMenuModule, MatButtonModule] -}) -export class ButtonsMenuModule {} diff --git a/lib/core/src/lib/buttons-menu/index.ts b/lib/core/src/lib/buttons-menu/index.ts deleted file mode 100644 index 54beb1a252..0000000000 --- a/lib/core/src/lib/buttons-menu/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './public-api'; diff --git a/lib/core/src/lib/buttons-menu/public-api.ts b/lib/core/src/lib/buttons-menu/public-api.ts deleted file mode 100644 index 1ebde6899b..0000000000 --- a/lib/core/src/lib/buttons-menu/public-api.ts +++ /dev/null @@ -1,19 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './buttons-menu.component'; -export * from './buttons-menu.module'; diff --git a/lib/core/src/lib/core.module.ts b/lib/core/src/lib/core.module.ts index ed20941b27..84a10c0f02 100644 --- a/lib/core/src/lib/core.module.ts +++ b/lib/core/src/lib/core.module.ts @@ -35,7 +35,6 @@ import { FormBaseModule } from './form/form-base.module'; import { SidenavLayoutModule } from './layout/layout.module'; import { CommentsModule } from './comments/comments.module'; import { CommentListModule } from './comments/comment-list/comment-list.module'; -import { ButtonsMenuModule } from './buttons-menu/buttons-menu.module'; import { TemplateModule } from './templates/template.module'; import { ClipboardModule } from './clipboard/clipboard.module'; import { NotificationHistoryModule } from './notifications/notification-history.module'; @@ -95,7 +94,6 @@ import { DynamicChipListModule } from './dynamic-chip-list'; LanguageMenuModule, InfoDrawerModule, DataTableModule, - ButtonsMenuModule, TemplateModule, IconModule, SortingPickerModule, @@ -135,7 +133,6 @@ import { DynamicChipListModule } from './dynamic-chip-list'; InfoDrawerModule, DataTableModule, TranslateModule, - ButtonsMenuModule, TemplateModule, SortingPickerModule, IconModule, diff --git a/lib/core/src/public-api.ts b/lib/core/src/public-api.ts index 45e2eee6a5..7105f0fdd6 100644 --- a/lib/core/src/public-api.ts +++ b/lib/core/src/public-api.ts @@ -32,7 +32,6 @@ export * from './lib/app-config/index'; export * from './lib/form/index'; export * from './lib/layout/index'; export * from './lib/comments/index'; -export * from './lib/buttons-menu/index'; export * from './lib/sorting-picker/index'; export * from './lib/templates/index'; export * from './lib/pipes/index'; diff --git a/lib/insights/.eslintrc.json b/lib/insights/.eslintrc.json index 2d33d91bed..c015ee3a2a 100644 --- a/lib/insights/.eslintrc.json +++ b/lib/insights/.eslintrc.json @@ -7,6 +7,10 @@ "extends": [ "plugin:@nrwl/nx/angular" ], + "parserOptions": { + "project": ["lib/insights/tsconfig.lib.json", "lib/insights/tsconfig.spec.json"], + "createDefaultProgram": true + }, "rules": { "no-underscore-dangle": ["error", { "allowAfterThis": true }], "@angular-eslint/no-output-native": "off", @@ -74,6 +78,10 @@ { "files": ["*.html"], "extends": ["plugin:@nrwl/nx/angular-template"], + "parserOptions": { + "project": ["lib/insights/tsconfig.lib.json", "lib/insights/tsconfig.spec.json"], + "createDefaultProgram": true + }, "rules": { "@angular-eslint/template/no-autofocus": "error", "@angular-eslint/template/no-positive-tabindex": "error" diff --git a/docs/core/components/buttons-menu.component.md b/lib/insights/docs/components/buttons-menu.component.md similarity index 67% rename from docs/core/components/buttons-menu.component.md rename to lib/insights/docs/components/buttons-menu.component.md index b8c881bd12..21e80d5de0 100644 --- a/docs/core/components/buttons-menu.component.md +++ b/lib/insights/docs/components/buttons-menu.component.md @@ -2,19 +2,17 @@ Title: Buttons Menu Component Added: v2.4.0 Status: Active -Last reviewed: 2018-06-08 +Last reviewed: 2024-06-21 --- -# [Buttons Menu Component](../../../lib/core/src/lib/buttons-menu/buttons-menu.component.ts "Defined in buttons-menu.component.ts") +# Buttons Menu Component Displays buttons on a responsive menu. -![adf-buttons-menu-desktop](../../docassets/images/adf-buttons-menu-desktop.png) +![adf-buttons-menu-desktop](images/adf-buttons-menu-desktop.png) ## Basic Usage -### [Transclusions](../../user-guide/transclusion.md) - Place the buttons for the menu inside this component's HTML tags. They must use the following structure: @@ -42,16 +40,16 @@ They also make use of the Angular material directive `mat-menu-item`. ## Details -This component is fully responsive and it will display one of two different layouts +This component is fully responsive, and it will display one of two different layouts depending on the screen size: **Desktop View** -![adf-buttons-menu-desktop](../../docassets/images/adf-buttons-menu-desktop.png) +![adf-buttons-menu-desktop](images/adf-buttons-menu-desktop.png) **Mobile View** -![adf-buttons-menu-mobile](../../docassets/images/adf-buttons-menu-mobile.png) +![adf-buttons-menu-mobile](images/adf-buttons-menu-mobile.png) The component has a property called `isMenuEmpty` that you can access from code. If this is set to true then the component will not show an empty menu with no buttons defined. diff --git a/docs/docassets/images/adf-buttons-menu-desktop.png b/lib/insights/docs/components/images/adf-buttons-menu-desktop.png similarity index 100% rename from docs/docassets/images/adf-buttons-menu-desktop.png rename to lib/insights/docs/components/images/adf-buttons-menu-desktop.png diff --git a/docs/docassets/images/adf-buttons-menu-mobile.png b/lib/insights/docs/components/images/adf-buttons-menu-mobile.png similarity index 100% rename from docs/docassets/images/adf-buttons-menu-mobile.png rename to lib/insights/docs/components/images/adf-buttons-menu-mobile.png diff --git a/lib/insights/src/lib/analytics-process/components/analytics-report-parameters.component.ts b/lib/insights/src/lib/analytics-process/components/analytics-report-parameters.component.ts index 34448d82bf..a717d35ff3 100644 --- a/lib/insights/src/lib/analytics-process/components/analytics-report-parameters.component.ts +++ b/lib/insights/src/lib/analytics-process/components/analytics-report-parameters.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { AdfDateFnsAdapter, ButtonsMenuModule, DownloadService, ToolbarComponent, ToolbarTitleComponent } from '@alfresco/adf-core'; +import { AdfDateFnsAdapter, DownloadService, ToolbarComponent, ToolbarTitleComponent } from '@alfresco/adf-core'; import { AfterContentChecked, Component, @@ -45,6 +45,7 @@ import { MatInputModule } from '@angular/material/input'; import { MatMenuModule } from '@angular/material/menu'; import { WIDGET_DIRECTIVES } from './widgets'; import { MatButtonModule } from '@angular/material/button'; +import { ButtonsMenuComponent } from './buttons-menu/buttons-menu.component'; const FORMAT_DATE_ACTIVITI = 'YYYY-MM-DD'; @@ -113,15 +114,15 @@ export interface ReportFormValues { MatIconModule, ReactiveFormsModule, ToolbarComponent, + ToolbarTitleComponent, MatFormFieldModule, MatInputModule, MatMenuModule, - ToolbarTitleComponent, ...WIDGET_DIRECTIVES, MatDialogModule, FormsModule, MatButtonModule, - ButtonsMenuModule + ButtonsMenuComponent ], templateUrl: './analytics-report-parameters.component.html', styleUrls: ['./analytics-report-parameters.component.scss'], diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.component.html b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.html similarity index 100% rename from lib/core/src/lib/buttons-menu/buttons-menu.component.html rename to lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.html diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.component.scss b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.scss similarity index 82% rename from lib/core/src/lib/buttons-menu/buttons-menu.component.scss rename to lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.scss index 3eba58f956..3e5c76bc10 100644 --- a/lib/core/src/lib/buttons-menu/buttons-menu.component.scss +++ b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.scss @@ -21,7 +21,8 @@ display: none; } - button > mat-icon.mat-icon.material-icons { + /* stylelint-disable selector-class-pattern */ + button > .mat-icon { color: black; margin: 0 10px; } diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.component.spec.ts b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.spec.ts similarity index 84% rename from lib/core/src/lib/buttons-menu/buttons-menu.component.spec.ts rename to lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.spec.ts index d394c27c44..ae290e697d 100644 --- a/lib/core/src/lib/buttons-menu/buttons-menu.component.spec.ts +++ b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.spec.ts @@ -16,15 +16,19 @@ */ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { MaterialModule } from '../material.module'; -import { CoreTestingModule } from '../testing/core.testing.module'; -import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core'; +import { Component } from '@angular/core'; +import { ButtonsMenuComponent } from '@alfresco/adf-insights'; +import { CommonModule } from '@angular/common'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatIconModule } from '@angular/material/icon'; @Component({ selector: 'adf-custom-container', + standalone: true, + imports: [CommonModule, ButtonsMenuComponent, MatMenuModule, MatIconModule], template: ` - + ` }) @@ -50,9 +54,7 @@ describe('ButtonsMenuComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ - imports: [CoreTestingModule, MaterialModule], - declarations: [CustomContainerComponent], - schemas: [CUSTOM_ELEMENTS_SCHEMA] + imports: [ButtonsMenuComponent, CustomContainerComponent] }); fixture = TestBed.createComponent(CustomContainerComponent); element = fixture.debugElement.nativeElement; @@ -93,9 +95,8 @@ describe('ButtonsMenuComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ - imports: [CoreTestingModule, MaterialModule], - declarations: [CustomEmptyContainerComponent], - schemas: [CUSTOM_ELEMENTS_SCHEMA] + imports: [ButtonsMenuComponent], + declarations: [CustomEmptyContainerComponent] }); fixture = TestBed.createComponent(CustomEmptyContainerComponent); element = fixture.nativeElement; diff --git a/lib/core/src/lib/buttons-menu/buttons-menu.component.ts b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.ts similarity index 76% rename from lib/core/src/lib/buttons-menu/buttons-menu.component.ts rename to lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.ts index 9e5ba35cf3..b21d443d08 100644 --- a/lib/core/src/lib/buttons-menu/buttons-menu.component.ts +++ b/lib/insights/src/lib/analytics-process/components/buttons-menu/buttons-menu.component.ts @@ -16,17 +16,20 @@ */ import { Component, ContentChildren, QueryList, AfterContentInit, ViewEncapsulation } from '@angular/core'; -import { MatMenuItem } from '@angular/material/menu'; +import { MatMenuItem, MatMenuModule } from '@angular/material/menu'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { CommonModule } from '@angular/common'; @Component({ selector: 'adf-buttons-action-menu', + standalone: true, + imports: [CommonModule, MatButtonModule, MatMenuModule, MatIconModule], templateUrl: './buttons-menu.component.html', styleUrls: ['./buttons-menu.component.scss'], encapsulation: ViewEncapsulation.None }) - -export class ButtonsMenuComponent implements AfterContentInit { - +export class ButtonsMenuComponent implements AfterContentInit { @ContentChildren(MatMenuItem) buttons: QueryList; isMenuEmpty: boolean; diff --git a/lib/insights/src/lib/analytics-process/public-api.ts b/lib/insights/src/lib/analytics-process/public-api.ts index b8db31a8a0..b31d0424d1 100644 --- a/lib/insights/src/lib/analytics-process/public-api.ts +++ b/lib/insights/src/lib/analytics-process/public-api.ts @@ -21,6 +21,7 @@ import { AnalyticsReportListComponent } from './components/analytics-report-list import { AnalyticsReportParametersComponent } from './components/analytics-report-parameters.component'; import { AnalyticsGeneratorComponent } from './components/analytics-generator.component'; import { AnalyticsReportHeatMapComponent } from './components/analytics-report-heat-map.component'; +import { ButtonsMenuComponent } from './components/buttons-menu/buttons-menu.component'; export * from './components/analytics.component'; export * from './components/analytics-report-heat-map.component'; @@ -28,12 +29,14 @@ export * from './components/analytics-generator.component'; export * from './components/analytics-report-list.component'; export * from './components/analytics-report-parameters.component'; export * from './components/analytics.component'; +export * from './components/buttons-menu/buttons-menu.component'; export * from './services/analytics.service'; export * from './components/widgets'; export const ANALYTICS_PROCESS_DIRECTIVES = [ ...WIDGET_DIRECTIVES, + ButtonsMenuComponent, AnalyticsComponent, AnalyticsReportListComponent, AnalyticsReportParametersComponent, From 0c4259cddf075572d7c9b635b54c36bcb6be1ad7 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 1 Jul 2024 14:25:49 -0400 Subject: [PATCH 002/247] ACS-7403: migrate site dropdown to standalone (#9847) --- docs/README.md | 4 +- .../content-node-selector-panel.component.md | 67 ++++----- .../content-node-selector.component.md | 135 +++++++++--------- .../components/sites-dropdown.component.md | 35 +++-- .../models/image-resolver.model.md | 36 ++--- ...de-selector-panel.component-search.spec.ts | 18 +-- ...content-node-selector-panel.component.html | 0 ...content-node-selector-panel.component.scss | 3 +- ...tent-node-selector-panel.component.spec.ts | 14 +- .../content-node-selector-panel.component.ts | 16 +-- ...ontent-node-selector-panel.service.spec.ts | 5 +- .../content-node-selector-panel.service.ts | 10 +- .../content-node-selector.component.spec.ts | 2 +- .../content-node-selector.module.ts | 22 +-- .../name-location-cell.component.spec.ts | 4 +- .../name-location-cell.component.ts | 2 +- .../lib/content-node-selector/public-api.ts | 5 +- .../sites-dropdown.component.html | 2 - .../sites-dropdown.component.spec.ts | 6 +- .../site-dropdown/sites-dropdown.component.ts | 12 +- .../src/lib/content.module.ts | 6 +- .../services/document-actions.service.ts | 51 +++---- .../services/node-actions.service.ts | 42 +++--- .../search-panel/search-panel.component.ts | 2 +- .../src/lib/site-dropdown/index.ts | 18 --- .../src/lib/site-dropdown/public-api.ts | 20 --- .../site-dropdown/sites-dropdown.module.ts | 41 ------ lib/content-services/src/public-api.ts | 1 - 28 files changed, 244 insertions(+), 335 deletions(-) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.component-search.spec.ts (97%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.component.html (100%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.component.scss (98%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.component.spec.ts (98%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.component.ts (97%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.service.spec.ts (97%) rename lib/content-services/src/lib/content-node-selector/{ => content-node-selector-panel}/content-node-selector-panel.service.ts (92%) rename lib/content-services/src/lib/{ => content-node-selector}/site-dropdown/sites-dropdown.component.html (94%) rename lib/content-services/src/lib/{ => content-node-selector}/site-dropdown/sites-dropdown.component.spec.ts (98%) rename lib/content-services/src/lib/{ => content-node-selector}/site-dropdown/sites-dropdown.component.ts (92%) delete mode 100644 lib/content-services/src/lib/site-dropdown/index.ts delete mode 100644 lib/content-services/src/lib/site-dropdown/public-api.ts delete mode 100644 lib/content-services/src/lib/site-dropdown/sites-dropdown.module.ts diff --git a/docs/README.md b/docs/README.md index d2cb44fc7e..4bcd49f95f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -275,7 +275,7 @@ for more information about installing and using the source code. | [Breadcrumb Component](content-services/components/breadcrumb.component.md) | Indicates the current position within a navigation hierarchy. | [Source](../lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts) | | [Content Action component](content-services/components/content-action.component.md) | Adds options to a Document List actions menu for a particular content type. | [Source](../lib/content-services/src/lib/document-list/components/content-action/content-action.component.ts) | | [Content Metadata Card component](content-services/components/content-metadata-card.component.md) | Displays and edits metadata related to a node. | [Source](../lib/content-services/src/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.ts) | -| [Content Node Selector Panel component](content-services/components/content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts) | +| [Content Node Selector Panel component](content-services/components/content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts) | | [Content Node Selector component](content-services/components/content-node-selector.component.md) | Allows a user to select items from a Content Services repository. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts) | | [Content Type Dialog component](content-services/components/content-type-dialog.component.md) | Confirm dialog when user changes content type of a node. | [Source](../lib/content-services/src/lib/content-type/content-type-dialog.component.ts) | | [Content User Info component](content-services/components/content-user-info.component.md) | Shows user information for CONTENT and CONTENT_SSO mode. | [Source](../lib/content-services/src/lib/content-user-info/content-user-info.component.ts) | @@ -305,7 +305,7 @@ for more information about installing and using the source code. | [Search Sorting Picker Component](content-services/components/search-sorting-picker.component.md) | Provides an ability to select one of the predefined sorting definitions for search results: | [Source](../lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.ts) | | [Search text component](content-services/components/search-text.component.md) | Implements a text input widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-text/search-text.component.ts) | | [Search component](content-services/components/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/src/lib/search/components/search.component.ts) | -| [Sites Dropdown component](content-services/components/sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../lib/content-services/src/lib/site-dropdown/sites-dropdown.component.ts) | +| [Sites Dropdown component](content-services/components/sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.ts) | | [Tag Node Actions List component](content-services/components/tag-actions.component.md) | Shows available actions for tags. | [Source](../lib/content-services/src/lib/tag/tag-actions.component.ts) | | [Tag List component](content-services/components/tag-list.component.md) | Shows tags for an item. | [Source](../lib/content-services/src/lib/tag/tag-list.component.ts) | | [Tag Node List component](content-services/components/tag-node-list.component.md) | Shows tags for a node. | [Source](../lib/content-services/src/lib/tag/tag-node-list.component.ts) | diff --git a/docs/content-services/components/content-node-selector-panel.component.md b/docs/content-services/components/content-node-selector-panel.component.md index c0911b7377..ffa337556d 100644 --- a/docs/content-services/components/content-node-selector-panel.component.md +++ b/docs/content-services/components/content-node-selector-panel.component.md @@ -2,10 +2,10 @@ Title: Content Node Selector Panel component Added: v2.1.0 Status: Active -Last reviewed: 2019-03-20 +Last reviewed: 2024-06-21 --- -# [Content Node Selector Panel component](../../../lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts "Defined in content-node-selector-panel.component.ts") +# Content Node Selector Panel Component Opens a [Content Node Selector](content-node-selector.component.md) in its own dialog window. @@ -28,50 +28,53 @@ Opens a [Content Node Selector](content-node-selector.component.md) in its own ### Properties -| Name | Type | Default value | Description | -| ---- | ---- | ------------- | ----------- | -| breadcrumbTransform | `Function` | | Transformation to be performed on the chosen/folder node before building the breadcrumb UI. Can be useful when custom formatting is needed for the breadcrumb. You can change the path elements from the node that are used to build the breadcrumb using this function. | -| currentFolderId | `string` | null | Node ID of the folder currently listed. | -| dropdownHideMyFiles | `boolean` | false | Hide the "My Files" option added to the site list by default. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | -| dropdownSiteList | [`SitePaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/SitePaging.md) | null | Custom site for site dropdown. This is the same as the `siteList`. property of the Sites Dropdown component (see its doc page for more information). | -| imageResolver | [`ImageResolver`](../../../lib/content-services/src/lib/document-list/data/image-resolver.model.ts) | null | Custom image resolver function. See the [Image Resolver Model](image-resolver.model.md) page for more information. | -| isSelectionValid | [`ValidationFunction`](../../../lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts) | defaultValidation | Function used to decide if the selected node has permission to be selected. Default value is a function that always returns true. | -| pageSize | `number` | | Number of items shown per page in the list. | -| restrictRootToCurrentFolderId | `boolean` | false | If true will restrict the search and breadcrumbs to the currentFolderId | -| selectionMode | `"single" \| "multiple"` | "single" | Define the selection mode for document list. The allowed values are single or multiple | -| where | `string` | | Custom _where_ filter function. See the [Document List component](../../content-services/components/document-list.component.md) for more information. | -| excludeSiteContent | `string[]` | | Custom list of site content componentIds. Used to filter out the corresponding items from the displayed nodes | -| rowFilter | [`RowFilter`](../../../lib/content-services/src/lib/document-list/data/row-filter.model.ts) | | Custom row filter function. See the [Row Filter Model](row-filter.model.md) page for more information. | -| showDropdownSiteList | `boolean` | | Toggle sites list dropdown rendering | -| showFilesInResult | `void` | | Shows the files and folders in the search result | -| showNodeCounter | `boolean` | | Shows the node counter in the breadcrumb | -| showSearch | `boolean` | | Toggle search input rendering | +| Name | Type | Default value | Description | +|-------------------------------|--------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| breadcrumbTransform | `Function` | | Transformation to be performed on the chosen/folder node before building the breadcrumb UI. Can be useful when custom formatting is needed for the breadcrumb. You can change the path elements from the node that are used to build the breadcrumb using this function. | +| currentFolderId | `string` | null | Node ID of the folder currently listed. | +| dropdownHideMyFiles | `boolean` | false | Hide the "My Files" option added to the site list by default. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | +| dropdownSiteList | `SitePaging` | null | Custom site for site dropdown. This is the same as the `siteList`. property of the Sites Dropdown component (see its doc page for more information). | +| imageResolver | `ImageResolver` | null | Custom image resolver function. See the [Image Resolver Model](../models/image-resolver.model.md) page for more information. | +| isSelectionValid | `ValidationFunction` | defaultValidation | Function used to decide if the selected node has permission to be selected. Default value is a function that always returns true. | +| pageSize | `number` | | Number of items shown per page in the list. | +| restrictRootToCurrentFolderId | `boolean` | false | If true will restrict the search and breadcrumbs to the currentFolderId | +| selectionMode | `"single" \| "multiple"` | "single" | Define the selection mode for document list. The allowed values are single or multiple | +| where | `string` | | Custom _where_ filter function. See the [Document List component](../../content-services/components/document-list.component.md) for more information. | +| excludeSiteContent | `string[]` | | Custom list of site content componentIds. Used to filter out the corresponding items from the displayed nodes | +| rowFilter | `RowFilter` | | Custom row filter function. See the [Row Filter Model](row-filter.model.md) page for more information. | +| showDropdownSiteList | `boolean` | | Toggle sites list dropdown rendering | +| showFilesInResult | `void` | | Shows the files and folders in the search result | +| showNodeCounter | `boolean` | | Shows the node counter in the breadcrumb | +| showSearch | `boolean` | | Toggle search input rendering | ### Events -| Name | Type | Description | -| ---- | ---- | ----------- | -| currentFolder | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`` | Emitted when current folder loaded. | -| folderLoaded | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`` | Emitted when folder loaded. | -| navigationChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`NodeEntryEvent`](../../../lib/content-services/src/lib/document-list/components/node.event.ts)`>` | Emitted when the navigation changes. | -| select | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`` | Emitted when the user has chosen an item. | -| showingSearch | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`` | Emitted when search is running. | -| siteChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`` | Emitted when the select site changes. | +| Name | Type | Description | +|------------------|--------------------------------|-------------------------------------------| +| currentFolder | `EventEmitter` | Emitted when current folder loaded. | +| folderLoaded | `EventEmitter` | Emitted when folder loaded. | +| navigationChange | `EventEmitter` | Emitted when the navigation changes. | +| select | `EventEmitter` | Emitted when the user has chosen an item. | +| showingSearch | `EventEmitter` | Emitted when search is running. | +| siteChange | `EventEmitter` | Emitted when the select site changes. | ## Details This component opens a _content node selector_ in its own dialog window. This behaves a lot like the standard file open/save dialogs used by applications to choose files. Full details are given in the [Content Node Selector component](content-node-selector.component.md) page (this is similar but does -not manage the dialog window for you). Also, the -[Content Node Dialog service](../services/content-node-dialog.service.md) has several methods that give you +not manage the dialog window for you). + +Also, the [Content Node Dialog service](../services/content-node-dialog.service.md) has several methods that give you finer control over the behavior of the dialog. ### Using the breadcrumbTransform function -The `breadcrumbTransform` property lets you modify the [`Node`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/Node.md) object that is used to generate the +The `breadcrumbTransform` property lets you modify the `Node` object that is used to generate the list of breadcrumbs. You can use this, for example, to remove path elements that are not -relevant to the use case. See the [Breadcrumb component](breadcrumb.component.md) page for an +relevant to the use case. + +See the [Breadcrumb component](breadcrumb.component.md) page for an example of how to use this function. ## See also diff --git a/docs/content-services/components/content-node-selector.component.md b/docs/content-services/components/content-node-selector.component.md index 9551813a63..0b043e55b9 100644 --- a/docs/content-services/components/content-node-selector.component.md +++ b/docs/content-services/components/content-node-selector.component.md @@ -5,7 +5,7 @@ Status: Active Last reviewed: 2019-01-16 --- -# [Content Node Selector component](../../../lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts "Defined in content-node-selector.component.ts") +# Content Node Selector component Allows a user to select items from a Content Services repository. @@ -15,19 +15,18 @@ Allows a user to select items from a Content Services repository. The [Content Node Selector component](content-node-selector.component.md) works a lot like the standard File Open/Save dialog used by desktop applications except that it chooses items from a Content Services -repository rather than the filesystem. For example, the -[Document List component](document-list.component.md) uses a selector to choose the targets -of Copy/Move actions (see the [Content Action component](content-action.component.md) for -more information). +repository rather than the filesystem. + +For example, the [Document List component](document-list.component.md) uses a selector to choose the targets +of Copy/Move actions (see the [Content Action component](content-action.component.md) for more information). ### Showing the dialog Unlike most components, the [Content Node Selector Component](content-node-selector.component.md) is typically shown in a dialog box -rather than the main page and you are responsible for opening the dialog yourself. You can use the -[Angular Material Dialog](https://material.angular.io/components/dialog/overview) for this, -as shown in the usage example. ADF provides the [`ContentNodeSelectorComponentData`](../../../lib/content-services/src/lib/content-node-selector/content-node-selector.component-data.interface.ts) interface -to work with the Dialog's -[data option](https://material.angular.io/components/dialog/overview#sharing-data-with-the-dialog-component-): +rather than the main page, and you are responsible for opening the dialog yourself. + +You can use the [Angular Material Dialog](https://material.angular.io/components/dialog/overview) for this, as shown in the usage example. +ADF provides the `ContentNodeSelectorComponentData` interface to work with the Dialog [data option](https://material.angular.io/components/dialog/overview#sharing-data-with-the-dialog-component-): ```ts export interface ContentNodeSelectorComponentData { @@ -55,22 +54,22 @@ export interface ContentNodeSelectorComponentData { The properties are described in the table below: -| Name | Type | Default value | Description | -| ---- | ---- | ------------- | ----------- | -| title | `string` | "" | Dialog title | -| actionName | `string` | "" | Text to appear on the dialog's main action button ("Move", "Copy", etc) | -| currentFolderId | `string` | `null` | [`Node`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/Node.md) ID of the folder currently listed. | -| dropdownHideMyFiles | `boolean` | `false` | Hide the "My Files" option added to the site list by default. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | -| dropdownSiteList | [`SitePaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/SitePaging.md) | `null` | Custom site for site dropdown same as siteList. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | -| rowFilter | [`RowFilter`](../../../lib/content-services/src/lib/document-list/data/row-filter.model.ts) | `null` | Custom row filter function. See the [Row Filter Model](../models/row-filter.model.md) page for more information. | -| where | `string` | `null` | Custom _where_ filter function. See the [Document List component](document-list.component.md) for more information. | -| imageResolver | [`ImageResolver`](../../../lib/content-services/src/lib/document-list/data/image-resolver.model.ts) | `null` | Custom image resolver function. See the [Image Resolver Model](../models/image-resolver.model.md) page for more information. | -| pageSize | `number` | | Number of items shown per page in the list. | -| isSelectionValid | [`ValidationFunction`](../../../lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts) | `defaultValidation` | Function used to decide if the selected node has permission to be selected. Default value is a function that always returns true. | -| breadcrumbTransform | `(node: any) => any` | | Transformation to be performed on the chosen/folder node before building the breadcrumb UI. Can be useful when custom formatting is needed for the breadcrumb. You can change the path elements from the node that are used to build the breadcrumb using this function. | -| select | [`Subject`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/Node.md) | | Event emitted with the current node selection when the dialog closes | -| showSearch | `boolean` | `true` | Render search input | -| showDropdownSiteList | `boolean` | `true` | Render sites list dropdown menu | +| Name | Type | Default value | Description | +|----------------------|----------------------|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| title | `string` | "" | Dialog title | +| actionName | `string` | "" | Text to appear on the dialog's main action button ("Move", "Copy", etc) | +| currentFolderId | `string` | `null` | The ID of the folder node currently listed. | +| dropdownHideMyFiles | `boolean` | `false` | Hide the "My Files" option added to the site list by default. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | +| dropdownSiteList | `SitePaging` | `null` | Custom site for site dropdown same as siteList. See the [Sites Dropdown component](sites-dropdown.component.md) for more information. | +| rowFilter | `RowFilter` | `null` | Custom row filter function. See the [Row Filter Model](../models/row-filter.model.md) page for more information. | +| where | `string` | `null` | Custom _where_ filter function. See the [Document List component](document-list.component.md) for more information. | +| imageResolver | `ImageResolver` | `null` | Custom image resolver function. See the [Image Resolver Model](../models/image-resolver.model.md) page for more information. | +| pageSize | `number` | | Number of items shown per page in the list. | +| isSelectionValid | `ValidationFunction` | `defaultValidation` | Function used to decide if the selected node has permission to be selected. Default value is a function that always returns true. | +| breadcrumbTransform | `(node: any) => any` | | Transformation to be performed on the chosen/folder node before building the breadcrumb UI. Can be useful when custom formatting is needed for the breadcrumb. You can change the path elements from the node that are used to build the breadcrumb using this function. | +| select | `Subject` | | Event emitted with the current node selection when the dialog closes | +| showSearch | `boolean` | `true` | Render search input | +| showDropdownSiteList | `boolean` | `true` | Render sites list dropdown menu | If you don't want to manage the dialog yourself then it is easier to use the [Content Node Selector Panel component](content-node-selector-panel.component.md), or the @@ -81,65 +80,65 @@ the dialog for you. ```ts import { MatDialog } from '@angular/material/dialog'; -import { ContentNodeSelectorComponentData, ContentNodeSelectorComponent} from '@adf/content-services' +import { ContentNodeSelectorComponentData, ContentNodeSelectorComponent} from '@adf/content-services'; import { Subject } from 'rxjs/Subject'; - ... -constructor(dialog: MatDialog ... ) {} +export class MyComponent { + constructor(dialog: MatDialog) { + } -openSelectorDialog() { - data: ContentNodeSelectorComponentData = { - title: "Choose an item", - actionName: "Choose", - currentFolderId: someFolderId, - select: new Subject() - }; + openSelectorDialog() { + data: ContentNodeSelectorComponentData = { + title: "Choose an item", + actionName: "Choose", + currentFolderId: someFolderId, + select: new Subject() + }; - this.dialog.open( - ContentNodeSelectorComponent, - { - data, panelClass: 'adf-content-node-selector-dialog', - width: '630px' - } - ); + this.dialog.open( + ContentNodeSelectorComponent, + { + data, panelClass: 'adf-content-node-selector-dialog', + width: '630px' + } + ); - data.select.subscribe((selections: Node[]) => { - // Use or store selection... - }, - (error)=>{ - //your error handling - }, - ()=>{ - //action called when an action or cancel is clicked on the dialog - this.dialog.closeAll(); - }); + data.select.subscribe((selections: Node[]) => { + // Use or store selection... + }, + (error) => { + //your error handling + }, + () => { + //action called when an action or cancel is clicked on the dialog + this.dialog.closeAll(); + }); + } } ``` -All the results will be streamed to the select [subject](http://reactivex.io/rxjs/manual/overview.html#subject) present in the [`ContentNodeSelectorComponentData`](../../../lib/content-services/src/lib/content-node-selector/content-node-selector.component-data.interface.ts) object passed to the dialog. +All the results will be streamed to the select `subject` present in the `ContentNodeSelectorComponentData` object passed to the dialog. When the dialog action is selected by clicking, the `data.select` stream will be completed. ### RowFilter and ImageResolver -The [Content Node Selector](content-node-selector.component.md) uses a -[Document List](document-list.component.md) to display the -items that the user can choose. As with the standard Document List, you can supply a custom -**row filter** function (to hide items that can't be chosen) and a custom **image resolver** -function (to select an image to show in a particular list cell). For example, you could use -a row filter to hide document nodes in a folder selector. See the -[Row Filter Model](../models/row-filter.model.md) and [Image Resolver Model](../models/image-resolver.model.md) -pages for more information. +The [Content Node Selector](content-node-selector.component.md) uses a [Document List](document-list.component.md) to display the items that the user can choose. +As with the standard Document List, you can supply a custom **row filter** function (to hide items that can't be chosen) and a custom **image resolver** +function (to select an image to show in a particular list cell). + +For example, you could use a row filter to hide document nodes in a folder selector. +See the [Row Filter Model](../models/row-filter.model.md) and [Image Resolver Model](../models/image-resolver.model.md) pages for more information. ### Using the breadcrumbTransform function -The `breadcrumbTransform` property of [`ContentNodeSelectorComponentData`](../../../lib/content-services/src/lib/content-node-selector/content-node-selector.component-data.interface.ts) lets you modify -the [`Node`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/Node.md) object that is used to generate the -list of breadcrumbs. You can use this, for example, to remove path elements that are not -relevant to the use case. See the [Breadcrumb component](breadcrumb.component.md) page for an -example of how to use this function. +The `breadcrumbTransform` property of `ContentNodeSelectorComponentData` lets you modify +the `Node` object that is used to generate the list of breadcrumbs. + +You can use this, for example, to remove path elements that are not relevant to the use case. +See the [Breadcrumb component](breadcrumb.component.md) page for an example of how to use this function. ## See also -- [Document list component](document-list.component.md) +- [Document List Component](document-list.component.md) - [Content Node Selector Panel component](content-node-selector-panel.component.md) - [Content Node Dialog service](../services/content-node-dialog.service.md) diff --git a/docs/content-services/components/sites-dropdown.component.md b/docs/content-services/components/sites-dropdown.component.md index 1c558b8c7e..6168333e84 100644 --- a/docs/content-services/components/sites-dropdown.component.md +++ b/docs/content-services/components/sites-dropdown.component.md @@ -1,11 +1,4 @@ ---- -Title: Sites Dropdown component -Added: v2.0.0 -Status: Active -Last reviewed: 2018-11-19 ---- - -# [Sites Dropdown component](../../../lib/content-services/src/lib/site-dropdown/sites-dropdown.component.ts "Defined in sites-dropdown.component.ts") +# Sites Dropdown component Displays a dropdown menu to show and interact with the sites of the current user. @@ -19,20 +12,24 @@ Displays a dropdown menu to show and interact with the sites of the current user ``` -## Class members +## API + +```ts +import { SitesDropdownComponent } from '@alfresco/adf-content-services'; +``` ### Properties -| Name | Type | Default value | Description | -| ---- | ---- | ------------- | ----------- | -| hideMyFiles | `boolean` | false | Hide the "My Files" option. | -| placeholder | `string` | | Text or a translation key to act as a placeholder. Default value is the key "DROPDOWN.PLACEHOLDER_LABEL". | -| relations | `string` | | Filter for the results of the sites query. Possible values are "members" and "containers". When "members" is used, the site list will be restricted to the sites that the user is a member of. | -| siteList | [`SitePaging`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/SitePaging.md) | null | A custom list of sites to be displayed by the dropdown. If no value is given, the sites of the current user are displayed by default. A list of objects only with properties 'title' and 'guid' is enough to be able to display the dropdown. | -| value | `string` | null | Id of the selected site | +| Name | Type | Default value | Description | +|-------------|--------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| hideMyFiles | `boolean` | false | Hide the "My Files" option. | +| placeholder | `string` | | Text or a translation key to act as a placeholder. Default value is the key "DROPDOWN.PLACEHOLDER_LABEL". | +| relations | `string` | | Filter for the results of the sites query. Possible values are "members" and "containers". When "members" is used, the site list will be restricted to the sites that the user is a member of. | +| siteList | `SitePaging` | null | A custom list of sites to be displayed by the dropdown. If no value is given, the sites of the current user are displayed by default. A list of objects only with properties 'title' and 'guid' is enough to be able to display the dropdown. | +| value | `string` | null | Id of the selected site | ### Events -| Name | Type | Description | -| ---- | ---- | ----------- | -| change | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`SiteEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/SiteEntry.md)`>` | Emitted when the user selects a site. When the default option is selected, an empty model is emitted. | +| Name | Type | Description | +|--------|---------------------------|-------------------------------------------------------------------------------------------------------| +| change | `EventEmitter` | Emitted when the user selects a site. When the default option is selected, an empty model is emitted. | diff --git a/docs/content-services/models/image-resolver.model.md b/docs/content-services/models/image-resolver.model.md index 53b0f3309c..0b82271b21 100644 --- a/docs/content-services/models/image-resolver.model.md +++ b/docs/content-services/models/image-resolver.model.md @@ -1,36 +1,30 @@ ---- -Title: Image Resolver Model -Added: v2.0.0 -Status: Active -Last reviewed: 2019-02-08 ---- - -# [Image Resolver Model](../../../lib/content-services/document-list/data/image-resolver.model.ts "Defined in image-resolver.model.ts") +# Image Resolver Model Defines the Image Resolver function used by the [Document List Component](../components/document-list.component.md). ## Definitions -- `type` **[`ImageResolver`](../../../lib/content-services/src/lib/document-list/data/image-resolver.model.ts)** = (row: [`DataRow`](../../../lib/core/src/lib/datatable/data/data-row.model.ts), column: [`DataColumn`](../../../lib/core/src/lib/datatable/data/data-column.model.ts)) => `string` - - _row:_ [`DataRow`](../../../lib/core/src/lib/datatable/data/data-row.model.ts) - Data that defines the row - - _column:_ [`DataColumn`](../../../lib/core/src/lib/datatable/data/data-column.model.ts) - Data that defines the column +- `type` **ImageResolver** = (row: `DataRow`, column: `DataColumn`) => `string` + - _row:_ `DataRow` - Data that defines the row + - _column:_ `DataColumn` - Data that defines the column - **Returns** File path for the image ## Details -An image resolver function selects an image file path for an item in -a [Document List Component](../components/document-list.component.md) -or another component that uses the Document List (such as the -[Content Node Selector Panel Component](../components/content-node-selector-panel.component.md)). You can supply your own image resolver -to manage the way folder/file icons and thumbnails are resolved (ie, which image is shown for which item). +An image resolver function selects an image file path for an item in a [Document List Component](../components/document-list.component.md) +or another component that uses the Document List (such as the [Content Node Selector Panel Component](../components/content-node-selector-panel.component.md)). + +You can supply your own image resolver to manage the way folder/file icons and thumbnails are resolved (ie, which image is shown for which item). **Note:** Image resolvers are executed only for columns of the `image` type. -A typical image resolver implementation receives [`DataRow`](../../../lib/core/src/lib/datatable/data/data-row.model.ts) and [`DataColumn`](../../../lib/core/src/lib/datatable/data/data-column.model.ts) objects as parameters: +A typical image resolver implementation receives `DataRow` and `DataColumn` objects as parameters: ```ts -myImageResolver(row: DataRow, col: DataColumn): string { - return '/path/to/image'; +export class MyComponent { + myImageResolver(row: DataRow, col: DataColumn): string { + return '/path/to/image'; + } } ``` @@ -74,15 +68,13 @@ export class View1 { let name = row.getValue(col.key); // Format image url - return `http:///${name}`; + return `https:///${name}`; } // For the rest of the cases just fallback to default behaviour. return null; }; - } - } ``` diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component-search.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component-search.spec.ts similarity index 97% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component-search.spec.ts rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component-search.spec.ts index 472a0d7492..8068d9c70f 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component-search.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component-search.spec.ts @@ -21,15 +21,15 @@ import { By } from '@angular/platform-browser'; import { Node, NodeEntry, NodePaging, RequestScope, ResultSetPaging, SiteEntry, SitePaging, SitePagingList } from '@alfresco/js-api'; import { of } from 'rxjs'; import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel.component'; -import { ContentTestingModule } from '../testing/content.testing.module'; -import { DocumentListService } from '../document-list/services/document-list.service'; -import { DocumentListComponent } from '../document-list/components/document-list.component'; -import { CustomResourcesService } from '../document-list/services/custom-resources.service'; -import { NodeEntryEvent, ShareDataRow } from '../document-list'; -import { SearchQueryBuilderService } from '../search'; -import { mockSearchRequest } from '../mock/search-query.mock'; -import { SitesService } from '../common/services/sites.service'; -import { NodesApiService } from '../common/services/nodes-api.service'; +import { ContentTestingModule } from '../../testing/content.testing.module'; +import { DocumentListService } from '../../document-list/services/document-list.service'; +import { DocumentListComponent } from '../../document-list/components/document-list.component'; +import { CustomResourcesService } from '../../document-list/services/custom-resources.service'; +import { NodeEntryEvent, ShareDataRow } from '../../document-list'; +import { SearchQueryBuilderService } from '../../search'; +import { mockSearchRequest } from '../../mock/search-query.mock'; +import { SitesService } from '../../common/services/sites.service'; +import { NodesApiService } from '../../common/services/nodes-api.service'; const fakeResultSetPaging: ResultSetPaging = { list: { diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.html similarity index 100% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.html rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.html diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.scss b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.scss similarity index 98% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.scss rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.scss index 080e9260ee..b0162ea442 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.scss +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.scss @@ -147,8 +147,7 @@ h2.adf-search-results-label { .adf-datatable-body .adf-datatable-row { min-height: 40px; - @media screen and (-ms-high-contrast: active), - screen and (-ms-high-contrast: none) { + @media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) { padding-top: 15px; } diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.spec.ts similarity index 98% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.spec.ts index 12d9a27ce5..b5b81badd2 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.spec.ts @@ -20,17 +20,17 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testin import { By } from '@angular/platform-browser'; import { Node, NodeEntry, NodePaging, ResultSetPaging, Site, SiteEntry, SitePaging, SitePagingList, UserInfo } from '@alfresco/js-api'; import { DataRow, ThumbnailService, DataColumn } from '@alfresco/adf-core'; -import { ContentService, UploadService, NodesApiService, SitesService, FileModel, FileUploadStatus, FileUploadCompleteEvent } from '../common'; +import { ContentService, UploadService, NodesApiService, SitesService, FileModel, FileUploadStatus, FileUploadCompleteEvent } from '../../common'; import { of, throwError } from 'rxjs'; -import { DropdownBreadcrumbComponent } from '../breadcrumb'; +import { DropdownBreadcrumbComponent } from '../../breadcrumb'; import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel.component'; -import { ContentTestingModule } from '../testing/content.testing.module'; -import { DocumentListService } from '../document-list/services/document-list.service'; +import { ContentTestingModule } from '../../testing/content.testing.module'; +import { DocumentListService } from '../../document-list/services/document-list.service'; import { DropdownSitesComponent } from '../site-dropdown/sites-dropdown.component'; -import { NodeEntryEvent, ShareDataRow, ShareDataTableAdapter } from '../document-list'; -import { SearchQueryBuilderService } from '../search'; +import { NodeEntryEvent, ShareDataRow, ShareDataTableAdapter } from '../../document-list'; +import { SearchQueryBuilderService } from '../../search'; import { ContentNodeSelectorPanelService } from './content-node-selector-panel.service'; -import { mockContentModelTextProperty } from '../mock/content-model.mock'; +import { mockContentModelTextProperty } from '../../mock/content-model.mock'; const fakeResultSetPaging: ResultSetPaging = { list: { diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts similarity index 97% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts index 93126ff991..43b0fb0c7e 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts @@ -25,18 +25,18 @@ import { DataSorting, ShowHeaderMode } from '@alfresco/adf-core'; -import { NodesApiService, UploadService, FileUploadCompleteEvent, FileUploadDeleteEvent, SitesService } from '../common'; +import { NodesApiService, UploadService, FileUploadCompleteEvent, FileUploadDeleteEvent, SitesService } from '../../common'; import { UntypedFormControl } from '@angular/forms'; import { Node, NodePaging, Pagination, SiteEntry, SitePaging, NodeEntry, SearchRequest, RequestScope } from '@alfresco/js-api'; -import { DocumentListComponent } from '../document-list/components/document-list.component'; -import { RowFilter } from '../document-list/data/row-filter.model'; -import { ImageResolver } from '../document-list/data/image-resolver.model'; -import { CustomResourcesService } from '../document-list/services/custom-resources.service'; -import { ShareDataRow } from '../document-list/data/share-data-row.model'; -import { NodeEntryEvent } from '../document-list/components/node.event'; +import { DocumentListComponent } from '../../document-list/components/document-list.component'; +import { RowFilter } from '../../document-list/data/row-filter.model'; +import { ImageResolver } from '../../document-list/data/image-resolver.model'; +import { CustomResourcesService } from '../../document-list/services/custom-resources.service'; +import { ShareDataRow } from '../../document-list/data/share-data-row.model'; +import { NodeEntryEvent } from '../../document-list/components/node.event'; import { debounceTime, takeUntil } from 'rxjs/operators'; import { Subject } from 'rxjs'; -import { SearchQueryBuilderService } from '../search'; +import { SearchQueryBuilderService } from '../../search'; import { ContentNodeSelectorPanelService } from './content-node-selector-panel.service'; export type ValidationFunction = (entry: Node) => boolean; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.spec.ts similarity index 97% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.spec.ts rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.spec.ts index 6784be9967..861d29e4d9 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.spec.ts @@ -16,10 +16,9 @@ */ import { ContentNodeSelectorPanelService } from './content-node-selector-panel.service'; -import { mockContentModelDateProperty, mockContentModelTextProperty, mockConvertedSearchCategoriesFromModels } from '../mock/content-model.mock'; +import { mockContentModelDateProperty, mockContentModelTextProperty, mockConvertedSearchCategoriesFromModels } from '../../mock/content-model.mock'; describe('ContentNodeSelectorPanelService', () => { - const contentNodeSelectorPanelService = new ContentNodeSelectorPanelService(); it('should support text type', () => { @@ -42,7 +41,7 @@ describe('ContentNodeSelectorPanelService', () => { }); it('should modelPropertyTypeToSearchFilterTypeMap contain only the supported types', () => { - const expectedSupportedTypesMap = new Map (); + const expectedSupportedTypesMap = new Map(); expectedSupportedTypesMap.set('d:text', 'text'); expectedSupportedTypesMap.set('d:date', 'date-range'); expectedSupportedTypesMap.set('d:datetime', 'datetime-range'); diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.ts similarity index 92% rename from lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.ts rename to lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.ts index d2859c02b9..b66f43c660 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.service.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.ts @@ -16,15 +16,14 @@ */ import { Injectable } from '@angular/core'; -import { SearchCategory } from '../search/models/search-category.interface'; +import { SearchCategory } from '../../search/models/search-category.interface'; @Injectable({ providedIn: 'root' }) export class ContentNodeSelectorPanelService { - propertyTypes = ['d:text', 'd:date', 'd:datetime']; - modelPropertyTypeToSearchFilterTypeMap = new Map (); + modelPropertyTypeToSearchFilterTypeMap = new Map(); customModels: any[]; constructor() { @@ -35,7 +34,7 @@ export class ContentNodeSelectorPanelService { convertCustomModelPropertiesToSearchCategories(): SearchCategory[] { const searchConfig: SearchCategory[] = []; - this.customModels?.forEach( (propertyModel) => { + this.customModels?.forEach((propertyModel) => { searchConfig.push(this.convertModelPropertyIntoSearchFilter(propertyModel)); }); @@ -46,7 +45,7 @@ export class ContentNodeSelectorPanelService { let filterSearch: SearchCategory; if (this.isTypeSupported(modelProperty.dataType)) { filterSearch = { - id : modelProperty.prefixedName, + id: modelProperty.prefixedName, name: modelProperty.prefixedName, expanded: false, enabled: true, @@ -66,5 +65,4 @@ export class ContentNodeSelectorPanelService { isTypeSupported(dataType: string): boolean { return this.propertyTypes.includes(dataType); } - } diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts index 71196ec8ac..f27f4fd2b4 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts @@ -29,7 +29,7 @@ import { ContentTestingModule } from '../testing/content.testing.module'; import { DocumentListService } from '../document-list/services/document-list.service'; import { DocumentListComponent } from '../document-list/components/document-list.component'; import { UploadModule } from '../upload'; -import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel.component'; +import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel/content-node-selector-panel.component'; import { NodeAction } from '../document-list/models/node-action.enum'; import { SitesService } from '../common/services/sites.service'; import { NodesApiService } from '../common/services/nodes-api.service'; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.module.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.module.ts index 2d6ec608c2..0d63cf9da8 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.module.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.module.ts @@ -19,10 +19,8 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MaterialModule } from '../material.module'; - -import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel.component'; +import { ContentNodeSelectorPanelComponent } from './content-node-selector-panel/content-node-selector-panel.component'; import { ContentNodeSelectorComponent } from './content-node-selector.component'; -import { SitesDropdownModule } from '../site-dropdown/sites-dropdown.module'; import { BreadcrumbModule } from '../breadcrumb/breadcrumb.module'; import { SearchModule } from '../search/search.module'; import { CoreModule } from '@alfresco/adf-core'; @@ -31,6 +29,7 @@ import { NameLocationCellComponent } from './name-location-cell/name-location-ce import { UploadModule } from '../upload/upload.module'; import { SearchQueryBuilderService } from '../search/services/search-query-builder.service'; import { ContentDirectiveModule } from '../directives/content-directive.module'; +import { DropdownSitesComponent } from './site-dropdown/sites-dropdown.component'; @NgModule({ imports: [ @@ -39,23 +38,16 @@ import { ContentDirectiveModule } from '../directives/content-directive.module'; CoreModule, CommonModule, MaterialModule, - SitesDropdownModule, + DropdownSitesComponent, BreadcrumbModule, SearchModule, DocumentListModule, UploadModule, - ContentDirectiveModule - ], - exports: [ - ContentNodeSelectorPanelComponent, - NameLocationCellComponent, - ContentNodeSelectorComponent - ], - declarations: [ - ContentNodeSelectorPanelComponent, - NameLocationCellComponent, - ContentNodeSelectorComponent + ContentDirectiveModule, + NameLocationCellComponent ], + exports: [ContentNodeSelectorPanelComponent, NameLocationCellComponent, ContentNodeSelectorComponent], + declarations: [ContentNodeSelectorPanelComponent, ContentNodeSelectorComponent], providers: [SearchQueryBuilderService] }) export class ContentNodeSelectorModule {} diff --git a/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.spec.ts b/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.spec.ts index edb2c75598..661c8f1b5b 100644 --- a/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.spec.ts @@ -27,9 +27,7 @@ describe('NameLocationCellComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [ - NameLocationCellComponent - ] + imports: [NameLocationCellComponent] }); fixture = TestBed.createComponent(NameLocationCellComponent); component = fixture.componentInstance; diff --git a/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.ts b/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.ts index d8b7436777..30d504b93a 100644 --- a/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.ts +++ b/lib/content-services/src/lib/content-node-selector/name-location-cell/name-location-cell.component.ts @@ -20,6 +20,7 @@ import { DataRow } from '@alfresco/adf-core'; @Component({ selector: 'adf-name-location-cell', + standalone: true, template: `
{{ name }}
{{ path }}
@@ -30,7 +31,6 @@ import { DataRow } from '@alfresco/adf-core'; host: { class: 'adf-name-location-cell adf-datatable-content-cell' } }) export class NameLocationCellComponent implements OnInit { - name: string = ''; path: string = ''; diff --git a/lib/content-services/src/lib/content-node-selector/public-api.ts b/lib/content-services/src/lib/content-node-selector/public-api.ts index 22b3256a4c..0d3ca209b0 100644 --- a/lib/content-services/src/lib/content-node-selector/public-api.ts +++ b/lib/content-services/src/lib/content-node-selector/public-api.ts @@ -16,10 +16,11 @@ */ export * from './name-location-cell/name-location-cell.component'; +export * from './site-dropdown/sites-dropdown.component'; export * from './content-node-selector.component-data.interface'; -export * from './content-node-selector-panel.component'; +export * from './content-node-selector-panel/content-node-selector-panel.component'; export * from './content-node-selector.component'; export * from './content-node-dialog.service'; -export * from './content-node-selector-panel.service'; +export * from './content-node-selector-panel/content-node-selector-panel.service'; export * from './content-node-selector.module'; diff --git a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.html similarity index 94% rename from lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html rename to lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.html index bb5647dbe6..063037425a 100644 --- a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html +++ b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.html @@ -4,12 +4,10 @@ diff --git a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.spec.ts b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.spec.ts similarity index 98% rename from lib/content-services/src/lib/site-dropdown/sites-dropdown.component.spec.ts rename to lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.spec.ts index 7dc83f66e9..8b5125d48d 100644 --- a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.spec.ts @@ -25,9 +25,9 @@ import { getFakeSitePagingFirstPage, getFakeSitePagingLastPage, getFakeSitePagingWithMembers -} from '../mock'; -import { ContentTestingModule } from '../testing/content.testing.module'; -import { SitesService } from '../common/services/sites.service'; +} from '../../mock'; +import { ContentTestingModule } from '../../testing/content.testing.module'; +import { SitesService } from '../../common/services/sites.service'; import { HarnessLoader } from '@angular/cdk/testing'; import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; import { MatSelectHarness } from '@angular/material/select/testing'; diff --git a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.ts b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.ts similarity index 92% rename from lib/content-services/src/lib/site-dropdown/sites-dropdown.component.ts rename to lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.ts index fa66b00827..0d560fbeba 100644 --- a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.ts +++ b/lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.ts @@ -18,10 +18,12 @@ import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { InfiniteSelectScrollDirective, AuthenticationService } from '@alfresco/adf-core'; import { SitePaging, SiteEntry, Site } from '@alfresco/js-api'; -import { MatSelectChange } from '@angular/material/select'; +import { MatSelectChange, MatSelectModule } from '@angular/material/select'; import { LiveAnnouncer } from '@angular/cdk/a11y'; -import { TranslateService } from '@ngx-translate/core'; -import { SitesService } from '../common/services/sites.service'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; +import { SitesService } from '../../common/services/sites.service'; +import { CommonModule } from '@angular/common'; +import { MatFormFieldModule } from '@angular/material/form-field'; /* eslint-disable no-shadow */ /* eslint-disable @typescript-eslint/naming-convention */ @@ -33,6 +35,8 @@ export enum Relations { @Component({ selector: 'adf-sites-dropdown', + standalone: true, + imports: [CommonModule, TranslateModule, MatFormFieldModule, MatSelectModule, InfiniteSelectScrollDirective], templateUrl: './sites-dropdown.component.html', encapsulation: ViewEncapsulation.None, host: { class: 'adf-sites-dropdown' } @@ -75,7 +79,7 @@ export class DropdownSitesComponent implements OnInit { * an empty model is emitted. */ @Output() - change: EventEmitter = new EventEmitter(); + change = new EventEmitter(); @Output() error = new EventEmitter(); diff --git a/lib/content-services/src/lib/content.module.ts b/lib/content-services/src/lib/content.module.ts index a9d6e844c1..180686686c 100644 --- a/lib/content-services/src/lib/content.module.ts +++ b/lib/content-services/src/lib/content.module.ts @@ -26,7 +26,6 @@ import { TagModule } from './tag/tag.module'; import { DocumentListModule } from './document-list/document-list.module'; import { UploadModule } from './upload/upload.module'; import { SearchModule } from './search/search.module'; -import { SitesDropdownModule } from './site-dropdown/sites-dropdown.module'; import { BreadcrumbModule } from './breadcrumb/breadcrumb.module'; import { VersionManagerModule } from './version-manager/version-manager.module'; import { ContentNodeSelectorModule } from './content-node-selector/content-node-selector.module'; @@ -49,6 +48,7 @@ import { ContentUserInfoModule } from './content-user-info/content-user-info.mod import { CategoriesModule } from './category/category.module'; import { contentAuthLoaderFactory } from './auth-loader/content-auth-loader-factory'; import { ContentAuthLoaderService } from './auth-loader/content-auth-loader.service'; +import { DropdownSitesComponent } from './content-node-selector/site-dropdown/sites-dropdown.component'; @NgModule({ imports: [ @@ -64,7 +64,7 @@ import { ContentAuthLoaderService } from './auth-loader/content-auth-loader.serv ContentUserInfoModule, UploadModule, MaterialModule, - SitesDropdownModule, + DropdownSitesComponent, BreadcrumbModule, ContentNodeSelectorModule, ContentNodeShareModule, @@ -90,7 +90,7 @@ import { ContentAuthLoaderService } from './auth-loader/content-auth-loader.serv ContentUserInfoModule, UploadModule, SearchModule, - SitesDropdownModule, + DropdownSitesComponent, BreadcrumbModule, ContentNodeSelectorModule, ContentNodeShareModule, diff --git a/lib/content-services/src/lib/document-list/services/document-actions.service.ts b/lib/content-services/src/lib/document-list/services/document-actions.service.ts index 3bbb853498..cf9d30a819 100644 --- a/lib/content-services/src/lib/document-list/services/document-actions.service.ts +++ b/lib/content-services/src/lib/document-list/services/document-actions.service.ts @@ -30,18 +30,19 @@ import { ContentNodeDialogService } from '../../content-node-selector/content-no providedIn: 'root' }) export class DocumentActionsService { - permissionEvent = new Subject(); error = new Subject(); success = new Subject(); private handlers: { [id: string]: ContentActionHandler } = {}; - constructor(private nodeActionsService: NodeActionsService, - private contentNodeDialogService: ContentNodeDialogService, - private translation: TranslationService, - private documentListService?: DocumentListService, - private contentService?: ContentService) { + constructor( + private nodeActionsService: NodeActionsService, + private contentNodeDialogService: ContentNodeDialogService, + private translation: TranslationService, + private documentListService?: DocumentListService, + private contentService?: ContentService + ) { this.setupActionHandlers(); } @@ -114,32 +115,34 @@ export class DocumentActionsService { } private prepareHandlers(actionObservable: Subject): void { - actionObservable.subscribe( - (fileOperationMessage) => { - this.success.next(fileOperationMessage); - }, - this.error.next.bind(this.error) - ); + actionObservable.subscribe((fileOperationMessage) => { + this.success.next(fileOperationMessage); + }, this.error.next.bind(this.error)); } private deleteNode(node: NodeEntry, _target?: any, permission?: string): Observable { if (this.canExecuteAction(node)) { if (this.contentService.hasAllowableOperations(node.entry, permission)) { const handlerObservable = this.documentListService.deleteNode(node.entry.id); - handlerObservable.subscribe(() => { - const message = this.translation.instant('CORE.DELETE_NODE.SINGULAR', { name: node.entry.name }); - this.success.next(message); - }, () => { - const message = this.translation.instant('CORE.DELETE_NODE.ERROR_SINGULAR', { name: node.entry.name }); - this.error.next(message); - }); + handlerObservable.subscribe( + () => { + const message = this.translation.instant('CORE.DELETE_NODE.SINGULAR', { name: node.entry.name }); + this.success.next(message); + }, + () => { + const message = this.translation.instant('CORE.DELETE_NODE.ERROR_SINGULAR', { name: node.entry.name }); + this.error.next(message); + } + ); return handlerObservable; } else { - this.permissionEvent.next(new PermissionModel({ - type: 'content', - action: 'delete', - permission - })); + this.permissionEvent.next( + new PermissionModel({ + type: 'content', + action: 'delete', + permission + }) + ); return throwError(new Error('No permission to delete')); } } diff --git a/lib/content-services/src/lib/document-list/services/node-actions.service.ts b/lib/content-services/src/lib/document-list/services/node-actions.service.ts index 256d2b98f1..d1af60ff5d 100644 --- a/lib/content-services/src/lib/document-list/services/node-actions.service.ts +++ b/lib/content-services/src/lib/document-list/services/node-actions.service.ts @@ -32,21 +32,21 @@ import { NodeAction } from '../models/node-action.enum'; }) // eslint-disable-next-line @angular-eslint/directive-class-suffix export class NodeActionsService { - @Output() error = new EventEmitter(); - constructor(private contentDialogService: ContentNodeDialogService, - public dialogRef: MatDialog, - public content: ContentService, - private documentListService?: DocumentListService, - private apiService?: AlfrescoApiService, - private dialog?: MatDialog, - private downloadService?: DownloadService) {} + constructor( + private contentDialogService: ContentNodeDialogService, + public dialogRef: MatDialog, + public content: ContentService, + private documentListService?: DocumentListService, + private apiService?: AlfrescoApiService, + private dialog?: MatDialog, + private downloadService?: DownloadService + ) {} downloadNode(node: NodeEntry) { - new NodeDownloadDirective(this.apiService, this.downloadService, this.dialog) - .downloadNode(node); + new NodeDownloadDirective(this.apiService, this.downloadService, this.dialog).downloadNode(node); } /** @@ -102,23 +102,29 @@ export class NodeActionsService { * @param permission permission which is needed to apply the action * @returns operation result */ - private doFileOperation(action: NodeAction.COPY | NodeAction.MOVE, type: 'content' | 'folder', contentEntry: Node, permission?: string): Subject { + private doFileOperation( + action: NodeAction.COPY | NodeAction.MOVE, + type: 'content' | 'folder', + contentEntry: Node, + permission?: string + ): Subject { const observable = new Subject(); - this.contentDialogService - .openCopyMoveDialog(action, contentEntry, permission) - .subscribe((selections: Node[]) => { + this.contentDialogService.openCopyMoveDialog(action, contentEntry, permission).subscribe( + (selections: Node[]) => { const selection = selections[0]; - this.documentListService[`${action.toLowerCase()}Node`].call(this.documentListService, contentEntry.id, selection.id) + this.documentListService[`${action.toLowerCase()}Node`] + .call(this.documentListService, contentEntry.id, selection.id) .subscribe( - observable.next.bind(observable, `OPERATION.SUCCESS.${type.toUpperCase()}.${action}`), - observable.error.bind(observable) + observable.next.bind(observable, `OPERATION.SUCCESS.${type.toUpperCase()}.${action}`), + observable.error.bind(observable) ); }, (error) => { observable.error(error); return observable; - }); + } + ); return observable; } } diff --git a/lib/content-services/src/lib/search/components/search-panel/search-panel.component.ts b/lib/content-services/src/lib/search/components/search-panel/search-panel.component.ts index a701e83fd4..f43f2950cf 100644 --- a/lib/content-services/src/lib/search/components/search-panel/search-panel.component.ts +++ b/lib/content-services/src/lib/search/components/search-panel/search-panel.component.ts @@ -16,7 +16,7 @@ */ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { ContentNodeSelectorPanelService } from '../../../content-node-selector/content-node-selector-panel.service'; +import { ContentNodeSelectorPanelService } from '../../../content-node-selector/content-node-selector-panel/content-node-selector-panel.service'; import { SearchQueryBuilderService } from '../../services/search-query-builder.service'; @Component({ diff --git a/lib/content-services/src/lib/site-dropdown/index.ts b/lib/content-services/src/lib/site-dropdown/index.ts deleted file mode 100644 index 54beb1a252..0000000000 --- a/lib/content-services/src/lib/site-dropdown/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './public-api'; diff --git a/lib/content-services/src/lib/site-dropdown/public-api.ts b/lib/content-services/src/lib/site-dropdown/public-api.ts deleted file mode 100644 index 701f6a9943..0000000000 --- a/lib/content-services/src/lib/site-dropdown/public-api.ts +++ /dev/null @@ -1,20 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './sites-dropdown.component'; - -export * from './sites-dropdown.module'; diff --git a/lib/content-services/src/lib/site-dropdown/sites-dropdown.module.ts b/lib/content-services/src/lib/site-dropdown/sites-dropdown.module.ts deleted file mode 100644 index 6006f86a5b..0000000000 --- a/lib/content-services/src/lib/site-dropdown/sites-dropdown.module.ts +++ /dev/null @@ -1,41 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { MaterialModule } from '../material.module'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; - -import { DropdownSitesComponent } from './sites-dropdown.component'; -import { CoreModule } from '@alfresco/adf-core'; - -@NgModule({ - imports: [ - CommonModule, - MaterialModule, - FormsModule, - ReactiveFormsModule, - CoreModule - ], - exports: [ - DropdownSitesComponent - ], - declarations: [ - DropdownSitesComponent - ] -}) -export class SitesDropdownModule {} diff --git a/lib/content-services/src/public-api.ts b/lib/content-services/src/public-api.ts index 7a8de43f2d..bd437d50d7 100644 --- a/lib/content-services/src/public-api.ts +++ b/lib/content-services/src/public-api.ts @@ -21,7 +21,6 @@ export * from './lib/document-list/index'; export * from './lib/content-user-info/index'; export * from './lib/upload/index'; export * from './lib/search/index'; -export * from './lib/site-dropdown/index'; export * from './lib/breadcrumb/index'; export * from './lib/version-manager/index'; export * from './lib/content-node-selector/index'; From f3a94bdfa44108082089ed21f79e3a466359344b Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 2 Jul 2024 13:51:40 -0400 Subject: [PATCH 003/247] ACS-8106: (a11y) Replace Material Tooltip with standard tooltip (#9894) --- .../search/search-filter-chips.component.html | 2 +- .../page-object/components/material/index.ts | 1 - .../components/material/material-locators.ts | 9 +-- .../material/validation.component.ts | 29 -------- .../components/group.component.ts | 5 +- .../components/people.component.ts | 4 +- .../specs/groups-cloud.e2e.ts | 4 -- .../specs/people-cloud.e2e.ts | 1 - .../aspect-list/aspect-list.component.html | 2 +- .../src/lib/aspect-list/aspect-list.module.ts | 14 +--- .../content-node-selector.component.html | 2 +- .../content-node-selector.component.spec.ts | 8 +-- .../src/lib/dialogs/node-lock.dialog.html | 6 +- .../search-check-list.component.html | 4 +- ...rch-chip-autocomplete-input.component.html | 14 ++-- ...earch-chip-autocomplete-input.component.ts | 20 +++--- .../search-chip-list.component.html | 3 +- .../search-facet-field.component.html | 3 +- .../search-filter-menu-card.component.html | 3 +- .../search-filter-container.component.html | 2 +- .../search-filter.component.html | 5 +- .../search-radio/search-radio.component.html | 5 +- .../breadcrumb/breadcrumb.component.html | 3 +- .../breadcrumb/breadcrumb.component.ts | 34 +++++---- .../lib/components/flags/flags.component.html | 2 +- .../lib/components/flags/flags.component.ts | 2 - .../src/lib/card-view/card-view.module.ts | 4 +- .../card-view-dateitem.component.html | 3 +- .../card-view-textitem.component.html | 5 +- .../context-menu-list.component.html | 2 +- .../context-menu-list.component.ts | 3 +- .../src/lib/context-menu/context-menu.spec.ts | 23 ------ .../datatable/datatable.component.html | 4 +- .../middlewares/decimal-middleware.service.ts | 9 +-- .../widgets/amount/amount.widget.html | 4 +- .../widgets/amount/amount.widget.spec.ts | 14 +--- .../widgets/amount/amount.widget.ts | 3 +- .../widgets/checkbox/checkbox.widget.html | 6 +- .../widgets/checkbox/checkbox.widget.spec.ts | 17 +---- .../widgets/checkbox/checkbox.widget.ts | 3 +- .../widgets/date-time/date-time.widget.html | 4 +- .../date-time/date-time.widget.spec.ts | 17 +---- .../widgets/date-time/date-time.widget.ts | 12 +--- .../widgets/decimal/decimal.component.html | 6 +- .../widgets/decimal/decimal.component.spec.ts | 14 +--- .../widgets/decimal/decimal.component.ts | 3 +- .../display-text/display-text.widget.html | 5 +- .../display-text/display-text.widget.ts | 3 +- .../widgets/hyperlink/hyperlink.widget.html | 4 +- .../hyperlink/hyperlink.widget.spec.ts | 5 +- .../widgets/hyperlink/hyperlink.widget.ts | 3 +- .../multiline-text/multiline-text.widget.html | 6 +- .../multiline-text.widget.spec.ts | 14 +--- .../multiline-text/multiline-text.widget.ts | 3 +- .../widgets/number/number.widget.html | 6 +- .../widgets/number/number.widget.spec.ts | 14 +--- .../widgets/number/number.widget.ts | 3 +- .../components/widgets/text/text.widget.html | 6 +- .../widgets/text/text.widget.spec.ts | 14 +--- .../components/widgets/text/text.widget.ts | 3 +- lib/core/src/lib/material.module.ts | 71 +++++++++++++++---- .../notification-history.component.html | 3 +- .../notification-history.component.ts | 2 - .../analytics-generator.component.html | 2 +- .../analytics-generator.component.ts | 2 - .../form/components/form-cloud.component.html | 8 +-- .../attach-file-cloud-widget.component.html | 4 +- ...attach-file-cloud-widget.component.spec.ts | 38 ---------- .../attach-file/upload-cloud.widget.html | 3 +- .../widgets/date/date-cloud.widget.html | 4 +- .../widgets/date/date-cloud.widget.spec.ts | 34 --------- .../dropdown/dropdown-cloud.widget.html | 4 +- .../dropdown/dropdown-cloud.widget.spec.ts | 33 --------- .../widgets/group/group-cloud.widget.html | 4 +- .../widgets/group/group-cloud.widget.spec.ts | 24 ++----- .../widgets/people/people-cloud.widget.html | 4 +- .../people/people-cloud.widget.spec.ts | 20 +----- .../radio-buttons-cloud.widget.html | 4 +- .../radio-buttons-cloud.widget.spec.ts | 16 +---- .../components/group-cloud.component.html | 2 +- .../src/lib/material.module.ts | 59 +++++++++++---- .../components/people-cloud.component.html | 2 +- .../edit-process-filter-cloud.component.html | 2 +- ...base-edit-task-filter-cloud.component.html | 2 +- .../src/lib/form/form.component.html | 2 +- .../src/lib/form/form.component.ts | 3 +- .../attach-file-widget.component.html | 2 +- .../attach-file-widget.component.ts | 3 +- .../form/widgets/people/people.widget.html | 4 +- .../form/widgets/people/people.widget.spec.ts | 2 +- .../lib/form/widgets/people/people.widget.ts | 2 - .../radio-buttons/radio-buttons.widget.html | 4 +- .../radio-buttons.widget.spec.ts | 7 +- .../radio-buttons/radio-buttons.widget.ts | 3 +- .../checklist/checklist.component.html | 2 +- .../checklist/checklist.component.ts | 2 - 96 files changed, 254 insertions(+), 561 deletions(-) delete mode 100644 e2e-playwright/page-object/components/material/validation.component.ts diff --git a/demo-shell/src/app/components/search/search-filter-chips.component.html b/demo-shell/src/app/components/search/search-filter-chips.component.html index 9b5de08a00..2b5c03c8b5 100644 --- a/demo-shell/src/app/components/search/search-filter-chips.component.html +++ b/demo-shell/src/app/components/search/search-filter-chips.component.html @@ -12,7 +12,7 @@ - refresh + refresh diff --git a/e2e-playwright/page-object/components/material/index.ts b/e2e-playwright/page-object/components/material/index.ts index e80ddb3820..f3f96ee95e 100644 --- a/e2e-playwright/page-object/components/material/index.ts +++ b/e2e-playwright/page-object/components/material/index.ts @@ -16,4 +16,3 @@ */ export * from './error.component'; -export * from './validation.component'; diff --git a/e2e-playwright/page-object/components/material/material-locators.ts b/e2e-playwright/page-object/components/material/material-locators.ts index fc68a6868f..87d3af572c 100644 --- a/e2e-playwright/page-object/components/material/material-locators.ts +++ b/e2e-playwright/page-object/components/material/material-locators.ts @@ -16,10 +16,7 @@ */ export const materialLocators = { - Error: { - root: 'mat-error' - }, - Tooltip: { - root: 'mat-tooltip-component' - } + Error: { + root: 'mat-error' + } }; diff --git a/e2e-playwright/page-object/components/material/validation.component.ts b/e2e-playwright/page-object/components/material/validation.component.ts deleted file mode 100644 index 347ddb93a8..0000000000 --- a/e2e-playwright/page-object/components/material/validation.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Page } from '@playwright/test'; -import { BaseComponent } from '../base.component'; -import { materialLocators } from './material-locators'; - -export class TooltipComponent extends BaseComponent { - private static rootElement = materialLocators.Tooltip.root; - public content = this.getChild('div'); - - constructor(page: Page) { - super(page, TooltipComponent.rootElement); - } -} diff --git a/e2e-playwright/process-services-cloud/components/group.component.ts b/e2e-playwright/process-services-cloud/components/group.component.ts index 0834dc080d..658c3891b8 100644 --- a/e2e-playwright/process-services-cloud/components/group.component.ts +++ b/e2e-playwright/process-services-cloud/components/group.component.ts @@ -17,13 +17,11 @@ import { Page } from '@playwright/test'; import { BaseComponent } from '../../page-object/components/base.component'; -import { ErrorComponent, TooltipComponent, ListboxComponent } from '../../page-object/components'; +import { ErrorComponent } from '../../page-object/components'; export class GroupComponent extends BaseComponent { private static rootElement = 'adf-cloud-group'; public error = new ErrorComponent(this.page); - public tooltip = new TooltipComponent(this.page); - public listbox = new ListboxComponent(this.page); public groupNaming = this.getChild('[data-automation-id="adf-cloud-group-chip-list"]'); public groupInput = this.getChild('[data-automation-id="adf-group-cloud-search-input"]'); @@ -33,5 +31,4 @@ export class GroupComponent extends BaseComponent { } public getUserLocator = (userName: string) => this.getChild(`[data-automation-id="adf-cloud-group-chip-${userName}"]`); - } diff --git a/e2e-playwright/process-services-cloud/components/people.component.ts b/e2e-playwright/process-services-cloud/components/people.component.ts index c3134b5628..1d5b511c4d 100644 --- a/e2e-playwright/process-services-cloud/components/people.component.ts +++ b/e2e-playwright/process-services-cloud/components/people.component.ts @@ -17,12 +17,11 @@ import { Page } from '@playwright/test'; import { BaseComponent } from '../../page-object/components/base.component'; -import { ErrorComponent, TooltipComponent, ListboxComponent } from '../../page-object/components'; +import { ErrorComponent, ListboxComponent } from '../../page-object/components'; export class PeopleComponent extends BaseComponent { private static rootElement = 'adf-cloud-people'; public error = new ErrorComponent(this.page); - public tooltip = new TooltipComponent(this.page); public listbox = new ListboxComponent(this.page); public usersNaming = this.getChild('[data-automation-id="adf-cloud-people-chip-list"]'); @@ -33,5 +32,4 @@ export class PeopleComponent extends BaseComponent { } public getUserLocator = (userName: string) => this.getChild(`[data-automation-id="adf-people-cloud-chip-${userName}"]`); - } diff --git a/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts b/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts index 2979453305..cf1020a6e9 100644 --- a/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts +++ b/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts @@ -39,9 +39,6 @@ test.describe('Groups component stories tests', () => { await processServicesCloud.navigateTo({ moduleNames: ['group-cloud'], componentName: 'group-cloud', story: 'mandatory-preselected-groups' }); await expect.soft(groupComponent.groupNaming).toContainText(expectedUsersName); - - await groupComponent.getUserLocator('Meat Chicken').hover(); - await expect(groupComponent.tooltip.content).toContainText('Mandatory'); }); test('Invalid Preselected Groups', async ({ processServicesCloud, groupComponent }) => { @@ -52,5 +49,4 @@ test.describe('Groups component stories tests', () => { await expect(groupComponent.error.content).toContainText(expectedWarningIcon + expectedWarningMessage); }); - }); diff --git a/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts b/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts index e3ec3ca256..01cc1267de 100644 --- a/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts +++ b/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts @@ -42,7 +42,6 @@ test.describe('People component stories tests', () => { await peopleComponent.getUserLocator('Kielbasa Sausage').hover(); await expect.soft(peopleComponent.usersNaming).toContainText(expectedUsersName); - await expect(peopleComponent.tooltip.content).toContainText('Mandatory'); }); test('Invalid Preselected Users', async ({ processServicesCloud, peopleComponent }) => { diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.component.html b/lib/content-services/src/lib/aspect-list/aspect-list.component.html index 8877ca36d3..f27daac042 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.component.html +++ b/lib/content-services/src/lib/aspect-list/aspect-list.component.html @@ -16,7 +16,7 @@ + [title]="getTitle(aspect)"> {{getTitle(aspect)}} diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts index 91a57f41e8..03308022a1 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts @@ -26,7 +26,6 @@ import { TranslateModule } from '@ngx-translate/core'; import { MatDialogModule } from '@angular/material/dialog'; import { AspectListDialogComponent } from './aspect-list-dialog.component'; import { MatButtonModule } from '@angular/material/button'; -import { MatTooltipModule } from '@angular/material/tooltip'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { ContentDirectiveModule } from '../directives/content-directive.module'; @@ -40,17 +39,10 @@ import { ContentDirectiveModule } from '../directives/content-directive.module'; TranslateModule, MatDialogModule, MatButtonModule, - MatTooltipModule, MatProgressSpinnerModule, ContentDirectiveModule ], - exports: [ - AspectListComponent, - AspectListDialogComponent - ], - declarations: [ - AspectListComponent, - AspectListDialogComponent - ] + exports: [AspectListComponent, AspectListDialogComponent], + declarations: [AspectListComponent, AspectListDialogComponent] }) -export class AspectListModule { } +export class AspectListModule {} diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html index 93a7145266..00cd590fbf 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html @@ -25,7 +25,7 @@ {{ 'NODE_SELECTOR.UPLOAD_FROM_DEVICE' | translate }} info + title="{{ getWarningMessage() | translate }}">info diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts index f27f4fd2b4..8daaeb7ba3 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts @@ -334,12 +334,12 @@ describe('ContentNodeSelectorComponent', () => { fixture.detectChanges(); const infoMatIcon = getTabInfoButton(); - const iconTooltipMessage = infoMatIcon.attributes['ng-reflect-message']; + const iconTooltipMessage = infoMatIcon.attributes['title']; const expectedMessage = 'NODE_SELECTOR.UPLOAD_BUTTON_SEARCH_WARNING_MESSAGE'; expect(component.getWarningMessage()).toEqual(expectedMessage); - expect(iconTooltipMessage).toEqual(expectedMessage.substring(0, 30)); + expect(iconTooltipMessage).toEqual(expectedMessage); }); it('should not be able to show warning message if it is not in search mode', () => { @@ -394,11 +394,11 @@ describe('ContentNodeSelectorComponent', () => { fixture.detectChanges(); const infoMatIcon = getTabInfoButton(); - const iconTooltipMessage = infoMatIcon.attributes['ng-reflect-message']; + const iconTooltipMessage = infoMatIcon.attributes['title']; const expectedMessage = 'NODE_SELECTOR.UPLOAD_BUTTON_PERMISSION_WARNING_MESSAGE'; expect(component.getWarningMessage()).toEqual(expectedMessage); - expect(iconTooltipMessage).toEqual(expectedMessage.substring(0, 30)); + expect(iconTooltipMessage).toEqual(expectedMessage); }); it('should not be able to show warning message while loading documents', () => { diff --git a/lib/content-services/src/lib/dialogs/node-lock.dialog.html b/lib/content-services/src/lib/dialogs/node-lock.dialog.html index 7effb315cb..23f917f749 100644 --- a/lib/content-services/src/lib/dialogs/node-lock.dialog.html +++ b/lib/content-services/src/lib/dialogs/node-lock.dialog.html @@ -5,13 +5,13 @@
- + {{ 'CORE.FILE_DIALOG.FILE_LOCK_CHECKBOX' | translate }} "{{ nodeName }}"
-
+
{{ 'CORE.FILE_DIALOG.ALLOW_OTHERS_CHECKBOX' | translate }} @@ -24,7 +24,7 @@
- + diff --git a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html index ba34d887f1..d25872d267 100644 --- a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html +++ b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html @@ -8,9 +8,7 @@ [attr.aria-label]="option.name | translate" (change)="changeHandler($event, option)" class="adf-facet-filter"> -
+
{{ option.name | translate }}
diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html index 91b08741e0..ec7c9ef5e0 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html @@ -4,14 +4,11 @@ class="adf-option-chips adf-autocomplete-added-option-chips" *ngFor="let option of selectedOptions" (removed)="remove(option)"> - + {{ option.value }} - @@ -33,10 +30,9 @@ {{ option.fullPath || option.value }} diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts index df7f95df42..030afa23a9 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts @@ -67,7 +67,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, @Input() filter = (options: AutocompleteOption[], value: string): AutocompleteOption[] => { const filterValue = value.toLowerCase(); - return options.filter(option => option.value.toLowerCase().includes(filterValue)).slice(0, 15); + return options.filter((option) => option.value.toLowerCase().includes(filterValue)).slice(0, 15); }; @Output() @@ -80,7 +80,6 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, formCtrl = new FormControl(''); filteredOptions: AutocompleteOption[] = []; selectedOptions: AutocompleteOption[] = []; - tooltipShowDelay = 800; private onDestroy$ = new Subject(); private _activeAnyOption = false; @@ -92,7 +91,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, this.formCtrl.valueChanges .pipe( startWith(''), - tap(() => this.activeAnyOption = false), + tap(() => (this.activeAnyOption = false)), debounce((value: string) => (value ? timer(300) : EMPTY)), takeUntil(this.onDestroy$) ) @@ -105,7 +104,10 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, ngOnChanges(changes: SimpleChanges) { if (changes.autocompleteOptions) { - this.filteredOptions = changes.autocompleteOptions.currentValue?.length > 0 ? this.filter(changes.autocompleteOptions.currentValue, this.formCtrl.value) : []; + this.filteredOptions = + changes.autocompleteOptions.currentValue?.length > 0 + ? this.filter(changes.autocompleteOptions.currentValue, this.formCtrl.value) + : []; } } @@ -123,10 +125,10 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, if (value && this.isExists(value) && !this.isAdded(value)) { if (this.allowOnlyPredefinedValues) { - const index = this.autocompleteOptions.findIndex(option => option.value.toLowerCase() === value.toLowerCase()); + const index = this.autocompleteOptions.findIndex((option) => option.value.toLowerCase() === value.toLowerCase()); this.selectedOptions.push(this.autocompleteOptions[index]); } else { - this.selectedOptions.push({value}); + this.selectedOptions.push({ value }); } this.optionsChanged.emit(this.selectedOptions); event.chipInput.clear(); @@ -153,14 +155,12 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, private isAdded(value: string): boolean { const valueLowerCase = value.toLowerCase(); - return this.selectedOptions.some(option => option.value.toLowerCase() === valueLowerCase); + return this.selectedOptions.some((option) => option.value.toLowerCase() === valueLowerCase); } private isExists(value: string): boolean { const valueLowerCase = value.toLowerCase(); - return this.allowOnlyPredefinedValues - ? this.autocompleteOptions.some(option => option.value.toLowerCase() === valueLowerCase) - : true; + return this.allowOnlyPredefinedValues ? this.autocompleteOptions.some((option) => option.value.toLowerCase() === valueLowerCase) : true; } private reset() { diff --git a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html index 451d5c5e51..876672ba80 100644 --- a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html @@ -5,8 +5,7 @@ color="primary" selected class="adf-search-chip-list-item" - matTooltip="{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}" - matTooltipPosition="right" + title="{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}" (click)="facetFiltersService.resetAllSelectedBuckets()"> {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }} diff --git a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html index 166330f4f0..5c1b56eaf5 100644 --- a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html +++ b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html @@ -34,8 +34,7 @@ class="adf-search-filter-facet-checkbox" >
diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html index 99454f4ae6..8de3b12dcf 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html @@ -4,9 +4,8 @@ @@ -17,7 +16,7 @@ {{ category.name | translate }} - diff --git a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html index 794673eb17..b94574f416 100644 --- a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html +++ b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html @@ -6,10 +6,7 @@ *ngFor="let option of options" [value]="option.value" class="adf-facet-filter"> -
+
{{ option.name | translate }}
diff --git a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html index d976cb278c..42784c14cc 100644 --- a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html +++ b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html @@ -12,8 +12,7 @@ mat-icon-button (click)="toggleCompact()" color="primary" - [matTooltip]="'CORE.BREADCRUMBS.SHOWALL' | translate" - matTooltipClass="adf-tooltip" + [title]="'CORE.BREADCRUMBS.SHOWALL' | translate" [attr.aria-label]="'CORE.BREADCRUMBS.SHOWALL' | translate" > more_vert diff --git a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts index b0738e9546..50d1fe8ab4 100644 --- a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts +++ b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts @@ -15,11 +15,24 @@ * limitations under the License. */ -import { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef, ViewChildren } from '@angular/core'; +import { + AfterContentInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + ContentChildren, + EventEmitter, + Input, + OnChanges, + Output, + QueryList, + SimpleChanges, + TemplateRef, + ViewChildren +} from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; import { map, startWith } from 'rxjs/operators'; import { TranslateModule } from '@ngx-translate/core'; @@ -32,7 +45,7 @@ import { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.comp templateUrl: './breadcrumb.component.html', styleUrls: ['./breadcrumb.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ CommonModule, MatIconModule, TranslateModule, MatButtonModule, MatTooltipModule ] + imports: [CommonModule, MatIconModule, TranslateModule, MatButtonModule, BreadcrumbFocusDirective] }) export class BreadcrumbComponent implements AfterContentInit, OnChanges { private _breadcrumbTemplateRefs: Array> = []; @@ -57,9 +70,7 @@ export class BreadcrumbComponent implements AfterContentInit, OnChanges { this.breadcrumbItems.changes .pipe( startWith(this.breadcrumbItems), - map((breadcrumbItems: QueryList) => - this.mapToTemplateRefs(breadcrumbItems) - ) + map((breadcrumbItems: QueryList) => this.mapToTemplateRefs(breadcrumbItems)) ) .subscribe((templateRefs) => { this._breadcrumbTemplateRefs = templateRefs; @@ -83,16 +94,11 @@ export class BreadcrumbComponent implements AfterContentInit, OnChanges { } private setBreadcrumbs(breadcrumbs: Array>) { - this.selectedBreadcrumbs = - this.compact && breadcrumbs.length > 2 - ? [breadcrumbs[0], breadcrumbs[breadcrumbs.length - 1]] - : [...breadcrumbs]; + this.selectedBreadcrumbs = this.compact && breadcrumbs.length > 2 ? [breadcrumbs[0], breadcrumbs[breadcrumbs.length - 1]] : [...breadcrumbs]; this.cdr.detectChanges(); } - private mapToTemplateRefs( breadcrumbItems: QueryList ) { - return breadcrumbItems - .toArray() - .map((breadcrumbItem) => breadcrumbItem.templateRef); + private mapToTemplateRefs(breadcrumbItems: QueryList) { + return breadcrumbItems.toArray().map((breadcrumbItem) => breadcrumbItem.templateRef); } } diff --git a/lib/core/feature-flags/src/lib/components/flags/flags.component.html b/lib/core/feature-flags/src/lib/components/flags/flags.component.html index 0adcfeed50..9afde84ff7 100644 --- a/lib/core/feature-flags/src/lib/components/flags/flags.component.html +++ b/lib/core/feature-flags/src/lib/components/flags/flags.component.html @@ -45,7 +45,7 @@
-
-
+
- + {{form.taskName}} {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}} diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html index b362837564..83778baea0 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html @@ -12,9 +12,7 @@ class="adf-attach-widget__menu-upload__button" color="primary" [id]="field.id" - [matTooltip]="field.tooltip" - matTooltipPosition="above" - matTooltipShowDelay="1000"> + [title]="field.tooltip"> {{ 'FORM.FIELD.ATTACH' | translate }} {{getWidgetIcon()}} diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts index 92e8fd44ef..1fc5ef56af 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts @@ -71,9 +71,6 @@ import { import { By } from '@angular/platform-browser'; import { of, throwError } from 'rxjs'; import { FormCloudModule } from '../../../form-cloud.module'; -import { HarnessLoader } from '@angular/cdk/testing'; -import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; -import { MatTooltipHarness } from '@angular/material/tooltip/testing'; const mockNodeToBeVersioned: any = { isFile: true, @@ -125,7 +122,6 @@ describe('AttachFileCloudWidgetComponent', () => { let localizedDataPipe: LocalizedDatePipe; let newVersionUploaderService: NewVersionUploaderService; let notificationService: NotificationService; - let loader: HarnessLoader; const createUploadWidgetField = ( form: FormModel, @@ -169,7 +165,6 @@ describe('AttachFileCloudWidgetComponent', () => { contentNodeSelectorPanelService = TestBed.inject(ContentNodeSelectorPanelService); openUploadFileDialogSpy = spyOn(contentCloudNodeSelectorService, 'openUploadFileDialog').and.returnValue(of([fakeNode])); localizedDataPipe = new LocalizedDatePipe(); - loader = TestbedHarnessEnvironment.loader(fixture); }); afterEach(() => { @@ -926,37 +921,4 @@ describe('AttachFileCloudWidgetComponent', () => { expect(spyOnShowError).toHaveBeenCalledWith(mockError.value); }); }); - - describe('when tooltip is set', () => { - beforeEach(() => { - widget.field = new FormFieldModel(new FormModel({ taskId: '' }), { - type: FormFieldTypes.UPLOAD, - tooltip: 'my custom tooltip' - }); - fixture.detectChanges(); - }); - - it('should show tooltip', async () => { - const attachButton = fixture.nativeElement.querySelector('button'); - attachButton.dispatchEvent(new Event('mouseenter')); - - const tooltipElement = await loader.getHarness(MatTooltipHarness); - - expect(await tooltipElement.isOpen()).toBeTrue(); - expect(await tooltipElement.getTooltipText()).toBe('my custom tooltip'); - }); - - it('should hide tooltip', async () => { - const attachButton = fixture.nativeElement.querySelector('.adf-attach-widget__menu-upload__button'); - attachButton.dispatchEvent(new Event('mouseenter')); - fixture.detectChanges(); - - attachButton.dispatchEvent(new Event('mouseleave')); - fixture.detectChanges(); - - const tooltipElement = await loader.getHarness(MatTooltipHarness); - - expect(await tooltipElement.isOpen()).toBeFalse(); - }); - }); }); diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html index b753875a45..cb86bacdfd 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html @@ -20,8 +20,7 @@
- diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html index a250f28f09..5bd7db504c 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html @@ -10,7 +10,7 @@
- + {{form.taskName}} {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}} diff --git a/lib/process-services/src/lib/form/form.component.ts b/lib/process-services/src/lib/form/form.component.ts index 9ca3388f7f..c1469455e3 100644 --- a/lib/process-services/src/lib/form/form.component.ts +++ b/lib/process-services/src/lib/form/form.component.ts @@ -45,13 +45,12 @@ import { CommonModule } from '@angular/common'; import { MatCardModule } from '@angular/material/card'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'adf-form', standalone: true, - imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule, FormRendererComponent, FormatSpacePipe], + imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, TranslateModule, FormRendererComponent, FormatSpacePipe], templateUrl: './form.component.html', encapsulation: ViewEncapsulation.None }) diff --git a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html index 2920c72171..d705beb6e6 100644 --- a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html +++ b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html @@ -72,7 +72,7 @@ matLine id="{{ 'file-' + file.id }}" (click)="onAttachFileClicked(file)" - [matTooltip]="file.name" + [title]="file.name" (keyup.enter)="onAttachFileClicked(file)" tabindex="0" role="button" diff --git a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts index 7fff3594c3..330e481f49 100644 --- a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts +++ b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts @@ -33,12 +33,11 @@ import { MatIconModule } from '@angular/material/icon'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatListModule } from '@angular/material/list'; -import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'attach-widget', standalone: true, - imports: [CommonModule, TranslateModule, MatIconModule, MatButtonModule, MatMenuModule, MatListModule, MatTooltipModule, ErrorWidgetComponent], + imports: [CommonModule, TranslateModule, MatIconModule, MatButtonModule, MatMenuModule, MatListModule, ErrorWidgetComponent], templateUrl: './attach-file-widget.component.html', styleUrls: ['./attach-file-widget.component.scss'], host: { diff --git a/lib/process-services/src/lib/form/widgets/people/people.widget.html b/lib/process-services/src/lib/form/widgets/people/people.widget.html index 0e6b03d9d0..86fe98b3f0 100644 --- a/lib/process-services/src/lib/form/widgets/people/people.widget.html +++ b/lib/process-services/src/lib/form/widgets/people/people.widget.html @@ -14,9 +14,7 @@ [placeholder]="field.placeholder" [matAutocomplete]="auto" (blur)="markAsTouched()" - [matTooltip]="field.tooltip" - matTooltipPosition="above" - matTooltipShowDelay="1000"> + [title]="field.tooltip"> { await fixture.whenStable(); const radioButtonsElement: any = element.querySelector('#people-id'); - const tooltip = radioButtonsElement.getAttribute('ng-reflect-message'); + const tooltip = radioButtonsElement.getAttribute('title'); expect(tooltip).toEqual(widget.field.tooltip); }); diff --git a/lib/process-services/src/lib/form/widgets/people/people.widget.ts b/lib/process-services/src/lib/form/widgets/people/people.widget.ts index 20fccd18ef..c5e9d3381b 100644 --- a/lib/process-services/src/lib/form/widgets/people/people.widget.ts +++ b/lib/process-services/src/lib/form/widgets/people/people.widget.ts @@ -29,7 +29,6 @@ import { TranslateModule } from '@ngx-translate/core'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; -import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'people-widget', @@ -41,7 +40,6 @@ import { MatTooltipModule } from '@angular/material/tooltip'; MatInputModule, ReactiveFormsModule, MatAutocompleteModule, - MatTooltipModule, InitialUsernamePipe, ErrorWidgetComponent ], diff --git a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html index 98d625c023..72b6f00861 100644 --- a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html +++ b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html @@ -4,9 +4,7 @@ { let formService: FormService; @@ -242,9 +241,9 @@ describe('RadioButtonsWidgetComponent', () => { fixture.detectChanges(); - const tooltip = await loader.getHarness(MatTooltipHarness.with({ selector: '#radio-id-opt-1' })); - await tooltip.show(); - expect(await tooltip.getTooltipText()).toEqual(radioButtonWidget.field.tooltip); + const option = await loader.getHarness(MatRadioButtonHarness.with({ selector: '#radio-id-opt-1' })); + const tooltip = await (await option.host()).getAttribute('title'); + expect(tooltip).toEqual(radioButtonWidget.field.tooltip); }); describe('and radioButton is populated via taskId', () => { diff --git a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts index 1db655ff16..288012dd7f 100644 --- a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts +++ b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts @@ -25,12 +25,11 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { MatRadioModule } from '@angular/material/radio'; import { FormsModule } from '@angular/forms'; -import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'radio-buttons-widget', standalone: true, - imports: [CommonModule, TranslateModule, MatRadioModule, FormsModule, MatTooltipModule, ErrorWidgetComponent], + imports: [CommonModule, TranslateModule, MatRadioModule, FormsModule, ErrorWidgetComponent], templateUrl: './radio-buttons.widget.html', styleUrls: ['./radio-buttons.widget.scss'], host: { diff --git a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html index cd654deee5..9f792d4814 100644 --- a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html +++ b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html @@ -5,7 +5,7 @@ - diff --git a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts index 2fa38229ba..c7582f8e76 100644 --- a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts +++ b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts @@ -23,7 +23,6 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { MatChipsModule } from '@angular/material/chips'; import { MatButtonModule } from '@angular/material/button'; -import { MatTooltipModule } from '@angular/material/tooltip'; import { MatIconModule } from '@angular/material/icon'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; @@ -37,7 +36,6 @@ import { FormsModule } from '@angular/forms'; TranslateModule, MatChipsModule, MatButtonModule, - MatTooltipModule, MatIconModule, MatDialogModule, MatFormFieldModule, From e457dd3a78bf9af2e5030d980ef9129bcc6f8e5a Mon Sep 17 00:00:00 2001 From: Chandan Chatterjee <32226301+chndn004@users.noreply.github.com> Date: Tue, 2 Jul 2024 23:24:34 +0530 Subject: [PATCH 004/247] HXCS 3856 File rotation in ADF Viewer (#9873) --- docs/core/components/viewer.component.md | 1 + .../components/alfresco-viewer.component.html | 1 + .../components/alfresco-viewer.component.ts | 4 +++ .../img-viewer/img-viewer.component.html | 6 ++-- .../img-viewer/img-viewer.component.spec.ts | 32 +++++++++++++++++++ .../img-viewer/img-viewer.component.ts | 6 ++++ .../viewer-render.component.html | 1 + .../viewer-render/viewer-render.component.ts | 11 +++++++ .../viewer/components/viewer.component.html | 1 + .../lib/viewer/components/viewer.component.ts | 11 +++++++ 10 files changed, 71 insertions(+), 3 deletions(-) diff --git a/docs/core/components/viewer.component.md b/docs/core/components/viewer.component.md index 83bd0b9ccf..05c9b9e40c 100644 --- a/docs/core/components/viewer.component.md +++ b/docs/core/components/viewer.component.md @@ -75,6 +75,7 @@ See the [Custom layout](#custom-layout) section for full details of all availabl | originalMimeType | `string` | | Overload originalMimeType | | overlayMode | `boolean` | false | If `true` then show the Viewer as a full page over the current content. Otherwise fit inside the parent div. | | readOnly | `boolean` | true | Enable when where is possible the editing functionalities | +| allowedEditActions | `{ [key: string]: boolean }` | `{ rotate: true, crop: true }` | Controls which editing actions are enabled when not in read-only mode. Allows granular control over actions like rotation and cropping. | | showLeftSidebar | `boolean` | false | Toggles left sidebar visibility. Requires `allowLeftSidebar` to be set to `true`. | | showRightSidebar | `boolean` | false | Toggles right sidebar visibility. Requires `allowRightSidebar` to be set to `true`. | | showToolbar | `boolean` | true | Hide or show the toolbar | diff --git a/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.html b/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.html index 62b61b0233..0aa3b92ae4 100644 --- a/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.html +++ b/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.html @@ -24,6 +24,7 @@ [urlFile]="urlFileContent" [tracks]="tracks" [readOnly]="readOnly" + [allowedEditActions]="allowedEditActions" [viewerExtensions]="viewerExtensions" (downloadFile)="onDownloadFile()" (navigateBefore)="onNavigateBeforeClick($event)" diff --git a/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts b/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts index 9ac2dcf2db..ec9fd7c415 100644 --- a/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts +++ b/lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts @@ -215,6 +215,10 @@ export class AlfrescoViewerComponent implements OnChanges, OnInit, OnDestroy { nodeEntry: NodeEntry; tracks: Track[] = []; readOnly: boolean = true; + allowedEditActions: { [key: string]: boolean } = { + rotate: true, + crop: true + }; sidebarRightTemplateContext: { node: Node } = { node: null }; sidebarLeftTemplateContext: { node: Node } = { node: null }; diff --git a/lib/core/src/lib/viewer/components/img-viewer/img-viewer.component.html b/lib/core/src/lib/viewer/components/img-viewer/img-viewer.component.html index b8e26b1412..3ce26e9a02 100644 --- a/lib/core/src/lib/viewer/components/img-viewer/img-viewer.component.html +++ b/lib/core/src/lib/viewer/components/img-viewer/img-viewer.component.html @@ -33,14 +33,14 @@ zoom_in - -
- refresh + refresh
diff --git a/e2e-playwright/page-object/components/material/index.ts b/e2e-playwright/page-object/components/material/index.ts index f3f96ee95e..e80ddb3820 100644 --- a/e2e-playwright/page-object/components/material/index.ts +++ b/e2e-playwright/page-object/components/material/index.ts @@ -16,3 +16,4 @@ */ export * from './error.component'; +export * from './validation.component'; diff --git a/e2e-playwright/page-object/components/material/material-locators.ts b/e2e-playwright/page-object/components/material/material-locators.ts index 87d3af572c..fc68a6868f 100644 --- a/e2e-playwright/page-object/components/material/material-locators.ts +++ b/e2e-playwright/page-object/components/material/material-locators.ts @@ -16,7 +16,10 @@ */ export const materialLocators = { - Error: { - root: 'mat-error' - } + Error: { + root: 'mat-error' + }, + Tooltip: { + root: 'mat-tooltip-component' + } }; diff --git a/e2e-playwright/page-object/components/material/validation.component.ts b/e2e-playwright/page-object/components/material/validation.component.ts new file mode 100644 index 0000000000..347ddb93a8 --- /dev/null +++ b/e2e-playwright/page-object/components/material/validation.component.ts @@ -0,0 +1,29 @@ +/*! + * @license + * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Page } from '@playwright/test'; +import { BaseComponent } from '../base.component'; +import { materialLocators } from './material-locators'; + +export class TooltipComponent extends BaseComponent { + private static rootElement = materialLocators.Tooltip.root; + public content = this.getChild('div'); + + constructor(page: Page) { + super(page, TooltipComponent.rootElement); + } +} diff --git a/e2e-playwright/process-services-cloud/components/group.component.ts b/e2e-playwright/process-services-cloud/components/group.component.ts index 658c3891b8..0834dc080d 100644 --- a/e2e-playwright/process-services-cloud/components/group.component.ts +++ b/e2e-playwright/process-services-cloud/components/group.component.ts @@ -17,11 +17,13 @@ import { Page } from '@playwright/test'; import { BaseComponent } from '../../page-object/components/base.component'; -import { ErrorComponent } from '../../page-object/components'; +import { ErrorComponent, TooltipComponent, ListboxComponent } from '../../page-object/components'; export class GroupComponent extends BaseComponent { private static rootElement = 'adf-cloud-group'; public error = new ErrorComponent(this.page); + public tooltip = new TooltipComponent(this.page); + public listbox = new ListboxComponent(this.page); public groupNaming = this.getChild('[data-automation-id="adf-cloud-group-chip-list"]'); public groupInput = this.getChild('[data-automation-id="adf-group-cloud-search-input"]'); @@ -31,4 +33,5 @@ export class GroupComponent extends BaseComponent { } public getUserLocator = (userName: string) => this.getChild(`[data-automation-id="adf-cloud-group-chip-${userName}"]`); + } diff --git a/e2e-playwright/process-services-cloud/components/people.component.ts b/e2e-playwright/process-services-cloud/components/people.component.ts index 1d5b511c4d..c3134b5628 100644 --- a/e2e-playwright/process-services-cloud/components/people.component.ts +++ b/e2e-playwright/process-services-cloud/components/people.component.ts @@ -17,11 +17,12 @@ import { Page } from '@playwright/test'; import { BaseComponent } from '../../page-object/components/base.component'; -import { ErrorComponent, ListboxComponent } from '../../page-object/components'; +import { ErrorComponent, TooltipComponent, ListboxComponent } from '../../page-object/components'; export class PeopleComponent extends BaseComponent { private static rootElement = 'adf-cloud-people'; public error = new ErrorComponent(this.page); + public tooltip = new TooltipComponent(this.page); public listbox = new ListboxComponent(this.page); public usersNaming = this.getChild('[data-automation-id="adf-cloud-people-chip-list"]'); @@ -32,4 +33,5 @@ export class PeopleComponent extends BaseComponent { } public getUserLocator = (userName: string) => this.getChild(`[data-automation-id="adf-people-cloud-chip-${userName}"]`); + } diff --git a/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts b/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts index cf1020a6e9..2979453305 100644 --- a/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts +++ b/e2e-playwright/process-services-cloud/specs/groups-cloud.e2e.ts @@ -39,6 +39,9 @@ test.describe('Groups component stories tests', () => { await processServicesCloud.navigateTo({ moduleNames: ['group-cloud'], componentName: 'group-cloud', story: 'mandatory-preselected-groups' }); await expect.soft(groupComponent.groupNaming).toContainText(expectedUsersName); + + await groupComponent.getUserLocator('Meat Chicken').hover(); + await expect(groupComponent.tooltip.content).toContainText('Mandatory'); }); test('Invalid Preselected Groups', async ({ processServicesCloud, groupComponent }) => { @@ -49,4 +52,5 @@ test.describe('Groups component stories tests', () => { await expect(groupComponent.error.content).toContainText(expectedWarningIcon + expectedWarningMessage); }); + }); diff --git a/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts b/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts index 01cc1267de..e3ec3ca256 100644 --- a/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts +++ b/e2e-playwright/process-services-cloud/specs/people-cloud.e2e.ts @@ -42,6 +42,7 @@ test.describe('People component stories tests', () => { await peopleComponent.getUserLocator('Kielbasa Sausage').hover(); await expect.soft(peopleComponent.usersNaming).toContainText(expectedUsersName); + await expect(peopleComponent.tooltip.content).toContainText('Mandatory'); }); test('Invalid Preselected Users', async ({ processServicesCloud, peopleComponent }) => { diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.component.html b/lib/content-services/src/lib/aspect-list/aspect-list.component.html index f27daac042..8877ca36d3 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.component.html +++ b/lib/content-services/src/lib/aspect-list/aspect-list.component.html @@ -16,7 +16,7 @@ + [matTooltip]="getTitle(aspect)"> {{getTitle(aspect)}} diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts index 03308022a1..91a57f41e8 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts @@ -26,6 +26,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { MatDialogModule } from '@angular/material/dialog'; import { AspectListDialogComponent } from './aspect-list-dialog.component'; import { MatButtonModule } from '@angular/material/button'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { ContentDirectiveModule } from '../directives/content-directive.module'; @@ -39,10 +40,17 @@ import { ContentDirectiveModule } from '../directives/content-directive.module'; TranslateModule, MatDialogModule, MatButtonModule, + MatTooltipModule, MatProgressSpinnerModule, ContentDirectiveModule ], - exports: [AspectListComponent, AspectListDialogComponent], - declarations: [AspectListComponent, AspectListDialogComponent] + exports: [ + AspectListComponent, + AspectListDialogComponent + ], + declarations: [ + AspectListComponent, + AspectListDialogComponent + ] }) -export class AspectListModule {} +export class AspectListModule { } diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html index 00cd590fbf..93a7145266 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.html @@ -25,7 +25,7 @@ {{ 'NODE_SELECTOR.UPLOAD_FROM_DEVICE' | translate }} info + matTooltip="{{ getWarningMessage() | translate }}">info
diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts index 8daaeb7ba3..f27f4fd2b4 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts @@ -334,12 +334,12 @@ describe('ContentNodeSelectorComponent', () => { fixture.detectChanges(); const infoMatIcon = getTabInfoButton(); - const iconTooltipMessage = infoMatIcon.attributes['title']; + const iconTooltipMessage = infoMatIcon.attributes['ng-reflect-message']; const expectedMessage = 'NODE_SELECTOR.UPLOAD_BUTTON_SEARCH_WARNING_MESSAGE'; expect(component.getWarningMessage()).toEqual(expectedMessage); - expect(iconTooltipMessage).toEqual(expectedMessage); + expect(iconTooltipMessage).toEqual(expectedMessage.substring(0, 30)); }); it('should not be able to show warning message if it is not in search mode', () => { @@ -394,11 +394,11 @@ describe('ContentNodeSelectorComponent', () => { fixture.detectChanges(); const infoMatIcon = getTabInfoButton(); - const iconTooltipMessage = infoMatIcon.attributes['title']; + const iconTooltipMessage = infoMatIcon.attributes['ng-reflect-message']; const expectedMessage = 'NODE_SELECTOR.UPLOAD_BUTTON_PERMISSION_WARNING_MESSAGE'; expect(component.getWarningMessage()).toEqual(expectedMessage); - expect(iconTooltipMessage).toEqual(expectedMessage); + expect(iconTooltipMessage).toEqual(expectedMessage.substring(0, 30)); }); it('should not be able to show warning message while loading documents', () => { diff --git a/lib/content-services/src/lib/dialogs/node-lock.dialog.html b/lib/content-services/src/lib/dialogs/node-lock.dialog.html index 23f917f749..7effb315cb 100644 --- a/lib/content-services/src/lib/dialogs/node-lock.dialog.html +++ b/lib/content-services/src/lib/dialogs/node-lock.dialog.html @@ -5,13 +5,13 @@
- + {{ 'CORE.FILE_DIALOG.FILE_LOCK_CHECKBOX' | translate }} "{{ nodeName }}"
-
+
{{ 'CORE.FILE_DIALOG.ALLOW_OTHERS_CHECKBOX' | translate }} @@ -24,7 +24,7 @@
- + diff --git a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html index d25872d267..ba34d887f1 100644 --- a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html +++ b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.html @@ -8,7 +8,9 @@ [attr.aria-label]="option.name | translate" (change)="changeHandler($event, option)" class="adf-facet-filter"> -
+
{{ option.name | translate }}
diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html index ec7c9ef5e0..91b08741e0 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html @@ -4,11 +4,14 @@ class="adf-option-chips adf-autocomplete-added-option-chips" *ngFor="let option of selectedOptions" (removed)="remove(option)"> - + {{ option.value }} - @@ -30,9 +33,10 @@ {{ option.fullPath || option.value }} diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts index 030afa23a9..df7f95df42 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts @@ -67,7 +67,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, @Input() filter = (options: AutocompleteOption[], value: string): AutocompleteOption[] => { const filterValue = value.toLowerCase(); - return options.filter((option) => option.value.toLowerCase().includes(filterValue)).slice(0, 15); + return options.filter(option => option.value.toLowerCase().includes(filterValue)).slice(0, 15); }; @Output() @@ -80,6 +80,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, formCtrl = new FormControl(''); filteredOptions: AutocompleteOption[] = []; selectedOptions: AutocompleteOption[] = []; + tooltipShowDelay = 800; private onDestroy$ = new Subject(); private _activeAnyOption = false; @@ -91,7 +92,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, this.formCtrl.valueChanges .pipe( startWith(''), - tap(() => (this.activeAnyOption = false)), + tap(() => this.activeAnyOption = false), debounce((value: string) => (value ? timer(300) : EMPTY)), takeUntil(this.onDestroy$) ) @@ -104,10 +105,7 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, ngOnChanges(changes: SimpleChanges) { if (changes.autocompleteOptions) { - this.filteredOptions = - changes.autocompleteOptions.currentValue?.length > 0 - ? this.filter(changes.autocompleteOptions.currentValue, this.formCtrl.value) - : []; + this.filteredOptions = changes.autocompleteOptions.currentValue?.length > 0 ? this.filter(changes.autocompleteOptions.currentValue, this.formCtrl.value) : []; } } @@ -125,10 +123,10 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, if (value && this.isExists(value) && !this.isAdded(value)) { if (this.allowOnlyPredefinedValues) { - const index = this.autocompleteOptions.findIndex((option) => option.value.toLowerCase() === value.toLowerCase()); + const index = this.autocompleteOptions.findIndex(option => option.value.toLowerCase() === value.toLowerCase()); this.selectedOptions.push(this.autocompleteOptions[index]); } else { - this.selectedOptions.push({ value }); + this.selectedOptions.push({value}); } this.optionsChanged.emit(this.selectedOptions); event.chipInput.clear(); @@ -155,12 +153,14 @@ export class SearchChipAutocompleteInputComponent implements OnInit, OnDestroy, private isAdded(value: string): boolean { const valueLowerCase = value.toLowerCase(); - return this.selectedOptions.some((option) => option.value.toLowerCase() === valueLowerCase); + return this.selectedOptions.some(option => option.value.toLowerCase() === valueLowerCase); } private isExists(value: string): boolean { const valueLowerCase = value.toLowerCase(); - return this.allowOnlyPredefinedValues ? this.autocompleteOptions.some((option) => option.value.toLowerCase() === valueLowerCase) : true; + return this.allowOnlyPredefinedValues + ? this.autocompleteOptions.some(option => option.value.toLowerCase() === valueLowerCase) + : true; } private reset() { diff --git a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html index 876672ba80..451d5c5e51 100644 --- a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html @@ -5,7 +5,8 @@ color="primary" selected class="adf-search-chip-list-item" - title="{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}" + matTooltip="{{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.TOOLTIP' | translate }}" + matTooltipPosition="right" (click)="facetFiltersService.resetAllSelectedBuckets()"> {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }} diff --git a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html index 5c1b56eaf5..166330f4f0 100644 --- a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html +++ b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.html @@ -34,7 +34,8 @@ class="adf-search-filter-facet-checkbox" >
diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html index 8de3b12dcf..99454f4ae6 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.html @@ -4,8 +4,9 @@ @@ -16,7 +17,7 @@ {{ category.name | translate }} - diff --git a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html index b94574f416..794673eb17 100644 --- a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html +++ b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.html @@ -6,7 +6,10 @@ *ngFor="let option of options" [value]="option.value" class="adf-facet-filter"> -
+
{{ option.name | translate }}
diff --git a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html index 42784c14cc..d976cb278c 100644 --- a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html +++ b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.html @@ -12,7 +12,8 @@ mat-icon-button (click)="toggleCompact()" color="primary" - [title]="'CORE.BREADCRUMBS.SHOWALL' | translate" + [matTooltip]="'CORE.BREADCRUMBS.SHOWALL' | translate" + matTooltipClass="adf-tooltip" [attr.aria-label]="'CORE.BREADCRUMBS.SHOWALL' | translate" > more_vert diff --git a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts index 50d1fe8ab4..b0738e9546 100644 --- a/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts +++ b/lib/core/breadcrumbs/src/components/breadcrumb/breadcrumb.component.ts @@ -15,24 +15,11 @@ * limitations under the License. */ -import { - AfterContentInit, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - ContentChildren, - EventEmitter, - Input, - OnChanges, - Output, - QueryList, - SimpleChanges, - TemplateRef, - ViewChildren -} from '@angular/core'; +import { AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef, ViewChildren } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { map, startWith } from 'rxjs/operators'; import { TranslateModule } from '@ngx-translate/core'; @@ -45,7 +32,7 @@ import { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.comp templateUrl: './breadcrumb.component.html', styleUrls: ['./breadcrumb.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, MatIconModule, TranslateModule, MatButtonModule, BreadcrumbFocusDirective] + imports: [ CommonModule, MatIconModule, TranslateModule, MatButtonModule, MatTooltipModule ] }) export class BreadcrumbComponent implements AfterContentInit, OnChanges { private _breadcrumbTemplateRefs: Array> = []; @@ -70,7 +57,9 @@ export class BreadcrumbComponent implements AfterContentInit, OnChanges { this.breadcrumbItems.changes .pipe( startWith(this.breadcrumbItems), - map((breadcrumbItems: QueryList) => this.mapToTemplateRefs(breadcrumbItems)) + map((breadcrumbItems: QueryList) => + this.mapToTemplateRefs(breadcrumbItems) + ) ) .subscribe((templateRefs) => { this._breadcrumbTemplateRefs = templateRefs; @@ -94,11 +83,16 @@ export class BreadcrumbComponent implements AfterContentInit, OnChanges { } private setBreadcrumbs(breadcrumbs: Array>) { - this.selectedBreadcrumbs = this.compact && breadcrumbs.length > 2 ? [breadcrumbs[0], breadcrumbs[breadcrumbs.length - 1]] : [...breadcrumbs]; + this.selectedBreadcrumbs = + this.compact && breadcrumbs.length > 2 + ? [breadcrumbs[0], breadcrumbs[breadcrumbs.length - 1]] + : [...breadcrumbs]; this.cdr.detectChanges(); } - private mapToTemplateRefs(breadcrumbItems: QueryList) { - return breadcrumbItems.toArray().map((breadcrumbItem) => breadcrumbItem.templateRef); + private mapToTemplateRefs( breadcrumbItems: QueryList ) { + return breadcrumbItems + .toArray() + .map((breadcrumbItem) => breadcrumbItem.templateRef); } } diff --git a/lib/core/feature-flags/src/lib/components/flags/flags.component.html b/lib/core/feature-flags/src/lib/components/flags/flags.component.html index 9afde84ff7..0adcfeed50 100644 --- a/lib/core/feature-flags/src/lib/components/flags/flags.component.html +++ b/lib/core/feature-flags/src/lib/components/flags/flags.component.html @@ -45,7 +45,7 @@
-
-
+
- + {{form.taskName}} {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}} diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html index 83778baea0..b362837564 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.html @@ -12,7 +12,9 @@ class="adf-attach-widget__menu-upload__button" color="primary" [id]="field.id" - [title]="field.tooltip"> + [matTooltip]="field.tooltip" + matTooltipPosition="above" + matTooltipShowDelay="1000"> {{ 'FORM.FIELD.ATTACH' | translate }} {{getWidgetIcon()}} diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts index 1fc5ef56af..92e8fd44ef 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.spec.ts @@ -71,6 +71,9 @@ import { import { By } from '@angular/platform-browser'; import { of, throwError } from 'rxjs'; import { FormCloudModule } from '../../../form-cloud.module'; +import { HarnessLoader } from '@angular/cdk/testing'; +import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; +import { MatTooltipHarness } from '@angular/material/tooltip/testing'; const mockNodeToBeVersioned: any = { isFile: true, @@ -122,6 +125,7 @@ describe('AttachFileCloudWidgetComponent', () => { let localizedDataPipe: LocalizedDatePipe; let newVersionUploaderService: NewVersionUploaderService; let notificationService: NotificationService; + let loader: HarnessLoader; const createUploadWidgetField = ( form: FormModel, @@ -165,6 +169,7 @@ describe('AttachFileCloudWidgetComponent', () => { contentNodeSelectorPanelService = TestBed.inject(ContentNodeSelectorPanelService); openUploadFileDialogSpy = spyOn(contentCloudNodeSelectorService, 'openUploadFileDialog').and.returnValue(of([fakeNode])); localizedDataPipe = new LocalizedDatePipe(); + loader = TestbedHarnessEnvironment.loader(fixture); }); afterEach(() => { @@ -921,4 +926,37 @@ describe('AttachFileCloudWidgetComponent', () => { expect(spyOnShowError).toHaveBeenCalledWith(mockError.value); }); }); + + describe('when tooltip is set', () => { + beforeEach(() => { + widget.field = new FormFieldModel(new FormModel({ taskId: '' }), { + type: FormFieldTypes.UPLOAD, + tooltip: 'my custom tooltip' + }); + fixture.detectChanges(); + }); + + it('should show tooltip', async () => { + const attachButton = fixture.nativeElement.querySelector('button'); + attachButton.dispatchEvent(new Event('mouseenter')); + + const tooltipElement = await loader.getHarness(MatTooltipHarness); + + expect(await tooltipElement.isOpen()).toBeTrue(); + expect(await tooltipElement.getTooltipText()).toBe('my custom tooltip'); + }); + + it('should hide tooltip', async () => { + const attachButton = fixture.nativeElement.querySelector('.adf-attach-widget__menu-upload__button'); + attachButton.dispatchEvent(new Event('mouseenter')); + fixture.detectChanges(); + + attachButton.dispatchEvent(new Event('mouseleave')); + fixture.detectChanges(); + + const tooltipElement = await loader.getHarness(MatTooltipHarness); + + expect(await tooltipElement.isOpen()).toBeFalse(); + }); + }); }); diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html index cb86bacdfd..b753875a45 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html +++ b/lib/process-services-cloud/src/lib/form/components/widgets/attach-file/upload-cloud.widget.html @@ -20,7 +20,8 @@
- diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html index 5bd7db504c..a250f28f09 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.html @@ -10,7 +10,7 @@
- + {{form.taskName}} {{'FORM.FORM_RENDERER.NAMELESS_TASK' | translate}} diff --git a/lib/process-services/src/lib/form/form.component.ts b/lib/process-services/src/lib/form/form.component.ts index c1469455e3..9ca3388f7f 100644 --- a/lib/process-services/src/lib/form/form.component.ts +++ b/lib/process-services/src/lib/form/form.component.ts @@ -45,12 +45,13 @@ import { CommonModule } from '@angular/common'; import { MatCardModule } from '@angular/material/card'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'adf-form', standalone: true, - imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, TranslateModule, FormRendererComponent, FormatSpacePipe], + imports: [CommonModule, MatCardModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule, FormRendererComponent, FormatSpacePipe], templateUrl: './form.component.html', encapsulation: ViewEncapsulation.None }) diff --git a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html index d705beb6e6..2920c72171 100644 --- a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html +++ b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.html @@ -72,7 +72,7 @@ matLine id="{{ 'file-' + file.id }}" (click)="onAttachFileClicked(file)" - [title]="file.name" + [matTooltip]="file.name" (keyup.enter)="onAttachFileClicked(file)" tabindex="0" role="button" diff --git a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts index 330e481f49..7fff3594c3 100644 --- a/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts +++ b/lib/process-services/src/lib/form/widgets/content-widget/attach-file-widget.component.ts @@ -33,11 +33,12 @@ import { MatIconModule } from '@angular/material/icon'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatListModule } from '@angular/material/list'; +import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'attach-widget', standalone: true, - imports: [CommonModule, TranslateModule, MatIconModule, MatButtonModule, MatMenuModule, MatListModule, ErrorWidgetComponent], + imports: [CommonModule, TranslateModule, MatIconModule, MatButtonModule, MatMenuModule, MatListModule, MatTooltipModule, ErrorWidgetComponent], templateUrl: './attach-file-widget.component.html', styleUrls: ['./attach-file-widget.component.scss'], host: { diff --git a/lib/process-services/src/lib/form/widgets/people/people.widget.html b/lib/process-services/src/lib/form/widgets/people/people.widget.html index 86fe98b3f0..0e6b03d9d0 100644 --- a/lib/process-services/src/lib/form/widgets/people/people.widget.html +++ b/lib/process-services/src/lib/form/widgets/people/people.widget.html @@ -14,7 +14,9 @@ [placeholder]="field.placeholder" [matAutocomplete]="auto" (blur)="markAsTouched()" - [title]="field.tooltip"> + [matTooltip]="field.tooltip" + matTooltipPosition="above" + matTooltipShowDelay="1000"> { await fixture.whenStable(); const radioButtonsElement: any = element.querySelector('#people-id'); - const tooltip = radioButtonsElement.getAttribute('title'); + const tooltip = radioButtonsElement.getAttribute('ng-reflect-message'); expect(tooltip).toEqual(widget.field.tooltip); }); diff --git a/lib/process-services/src/lib/form/widgets/people/people.widget.ts b/lib/process-services/src/lib/form/widgets/people/people.widget.ts index c5e9d3381b..20fccd18ef 100644 --- a/lib/process-services/src/lib/form/widgets/people/people.widget.ts +++ b/lib/process-services/src/lib/form/widgets/people/people.widget.ts @@ -29,6 +29,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'people-widget', @@ -40,6 +41,7 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete'; MatInputModule, ReactiveFormsModule, MatAutocompleteModule, + MatTooltipModule, InitialUsernamePipe, ErrorWidgetComponent ], diff --git a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html index 72b6f00861..98d625c023 100644 --- a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html +++ b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.html @@ -4,7 +4,9 @@ { let formService: FormService; @@ -241,9 +242,9 @@ describe('RadioButtonsWidgetComponent', () => { fixture.detectChanges(); - const option = await loader.getHarness(MatRadioButtonHarness.with({ selector: '#radio-id-opt-1' })); - const tooltip = await (await option.host()).getAttribute('title'); - expect(tooltip).toEqual(radioButtonWidget.field.tooltip); + const tooltip = await loader.getHarness(MatTooltipHarness.with({ selector: '#radio-id-opt-1' })); + await tooltip.show(); + expect(await tooltip.getTooltipText()).toEqual(radioButtonWidget.field.tooltip); }); describe('and radioButton is populated via taskId', () => { diff --git a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts index 288012dd7f..1db655ff16 100644 --- a/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts +++ b/lib/process-services/src/lib/form/widgets/radio-buttons/radio-buttons.widget.ts @@ -25,11 +25,12 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { MatRadioModule } from '@angular/material/radio'; import { FormsModule } from '@angular/forms'; +import { MatTooltipModule } from '@angular/material/tooltip'; @Component({ selector: 'radio-buttons-widget', standalone: true, - imports: [CommonModule, TranslateModule, MatRadioModule, FormsModule, ErrorWidgetComponent], + imports: [CommonModule, TranslateModule, MatRadioModule, FormsModule, MatTooltipModule, ErrorWidgetComponent], templateUrl: './radio-buttons.widget.html', styleUrls: ['./radio-buttons.widget.scss'], host: { diff --git a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html index 9f792d4814..cd654deee5 100644 --- a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html +++ b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.html @@ -5,7 +5,7 @@ - diff --git a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts index c7582f8e76..2fa38229ba 100644 --- a/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts +++ b/lib/process-services/src/lib/task-list/components/checklist/checklist.component.ts @@ -23,6 +23,7 @@ import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; import { MatChipsModule } from '@angular/material/chips'; import { MatButtonModule } from '@angular/material/button'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { MatIconModule } from '@angular/material/icon'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; @@ -36,6 +37,7 @@ import { FormsModule } from '@angular/forms'; TranslateModule, MatChipsModule, MatButtonModule, + MatTooltipModule, MatIconModule, MatDialogModule, MatFormFieldModule, From 55dfc07a24c0018913dcfdbbf6f2bb0f9a19eb4b Mon Sep 17 00:00:00 2001 From: MichalKinas <113341662+MichalKinas@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:29:00 +0200 Subject: [PATCH 006/247] Add new datatable param for checkboxes visibility (#9908) --- .../components/document-list.component.md | 1 + docs/core/components/datatable.component.md | 2 ++ .../components/document-list.component.html | 1 + .../components/document-list.component.ts | 4 +++ .../datatable/datatable.component.html | 3 +- .../datatable/datatable.component.scss | 15 +++++----- .../datatable/datatable.component.spec.ts | 30 +++++++++++++++++++ .../datatable/datatable.component.ts | 6 ++++ 8 files changed, 54 insertions(+), 8 deletions(-) diff --git a/docs/content-services/components/document-list.component.md b/docs/content-services/components/document-list.component.md index a80659351e..83ffaced9c 100644 --- a/docs/content-services/components/document-list.component.md +++ b/docs/content-services/components/document-list.component.md @@ -66,6 +66,7 @@ Displays the documents from a repository. | contentActionsPosition | `string` | "right" | Position of the content actions dropdown menu. Can be set to "left" or "right". | | contextMenuActions | `boolean` | false | Toggles context menus for each row | | currentFolderId | `string` | null | The ID of the folder node to display or a reserved string alias for special sources | +| displayCheckboxesOnHover | `boolean` | false | Enables checkboxes in datatable rows being displayed on hover only. | | emptyFolderImageUrl | `string` | | Custom image for empty folder. Default value: './assets/images/empty_doc_lib.svg' | | filterValue | `any` | | Initial value for filter. | | headerFilters | `boolean` | false | Toggles the header filters mode. | diff --git a/docs/core/components/datatable.component.md b/docs/core/components/datatable.component.md index 7c6bdb5494..9726f4226c 100644 --- a/docs/core/components/datatable.component.md +++ b/docs/core/components/datatable.component.md @@ -429,6 +429,8 @@ Learn more about styling your datatable: [Customizing the component's styles](#c | columns | `any[]` | \[] | The columns that the datatable will show. | | contextMenu | `boolean` | false | Toggles custom context menu for the component. | | data | [`DataTableAdapter`](../../../lib/core/src/lib/datatable/data/datatable-adapter.ts) | | Data source for the table | +| displayCheckboxesOnHover | `boolean` | false | Enables checkboxes in datatable rows being displayed on hover only. | + | fallbackThumbnail | `string` | | Fallback image for rows where the thumbnail is missing. | | isResizingEnabled | `boolean` | false | Flag that indicates if the datatable allows column resizing. | | loading | `boolean` | false | Flag that indicates if the datatable is in loading state and needs to show the loading template (see the docs to learn how to configure a loading template). | diff --git a/lib/content-services/src/lib/document-list/components/document-list.component.html b/lib/content-services/src/lib/document-list/components/document-list.component.html index b6cd66f6d0..c22c63077b 100644 --- a/lib/content-services/src/lib/document-list/components/document-list.component.html +++ b/lib/content-services/src/lib/document-list/components/document-list.component.html @@ -17,6 +17,7 @@ [allowFiltering]="allowFiltering" [isResizingEnabled]="isResizingEnabled" [blurOnResize]="blurOnResize" + [displayCheckboxesOnHover]="displayCheckboxesOnHover" (showRowContextMenu)="onShowRowContextMenu($event)" (showRowActionsMenu)="onShowRowActionsMenu($event)" (executeRowAction)="onExecuteRowAction($event)" diff --git a/lib/content-services/src/lib/document-list/components/document-list.component.ts b/lib/content-services/src/lib/document-list/components/document-list.component.ts index 5624997557..5c159cad41 100644 --- a/lib/content-services/src/lib/document-list/components/document-list.component.ts +++ b/lib/content-services/src/lib/document-list/components/document-list.component.ts @@ -340,6 +340,10 @@ export class DocumentListComponent extends DataTableSchema implements OnInit, On @Input() blurOnResize = true; + /** Display checkboxes in datatable rows on hover only */ + @Input() + displayCheckboxesOnHover = false; + /** Emitted when the user clicks a list node */ @Output() nodeClick = new EventEmitter(); diff --git a/lib/core/src/lib/datatable/components/datatable/datatable.component.html b/lib/core/src/lib/datatable/components/datatable/datatable.component.html index bac4b2e1b6..db797fb04a 100644 --- a/lib/core/src/lib/datatable/components/datatable/datatable.component.html +++ b/lib/core/src/lib/datatable/components/datatable/datatable.component.html @@ -185,7 +185,8 @@
diff --git a/demo-shell/src/app/components/cloud/shared/cloud.shared.module.ts b/demo-shell/src/app/components/cloud/shared/cloud.shared.module.ts index c4bf03d867..00cf011aaf 100644 --- a/demo-shell/src/app/components/cloud/shared/cloud.shared.module.ts +++ b/demo-shell/src/app/components/cloud/shared/cloud.shared.module.ts @@ -18,10 +18,10 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CloudSettingsComponent } from './cloud-settings.component'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; -import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input'; -import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select'; -import { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { CoreModule } from '@alfresco/adf-core'; @NgModule({ diff --git a/demo-shell/src/app/components/files/files.component.ts b/demo-shell/src/app/components/files/files.component.ts index e9962507f3..6b87421254 100644 --- a/demo-shell/src/app/components/files/files.component.ts +++ b/demo-shell/src/app/components/files/files.component.ts @@ -28,7 +28,7 @@ import { Output, ViewEncapsulation } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { NodeEntry, NodePaging, Pagination, Node, SearchEntry } from '@alfresco/js-api'; import { NotificationService, UserPreferencesService, PaginationComponent, ShowHeaderMode, FormRenderingService } from '@alfresco/adf-core'; diff --git a/demo-shell/src/app/components/files/version-manager-dialog-adapter.component.ts b/demo-shell/src/app/components/files/version-manager-dialog-adapter.component.ts index d4563411c3..448d7a1f18 100644 --- a/demo-shell/src/app/components/files/version-manager-dialog-adapter.component.ts +++ b/demo-shell/src/app/components/files/version-manager-dialog-adapter.component.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Node } from '@alfresco/js-api'; import { PreviewService } from '../../services/preview.service'; import { NotificationService } from '@alfresco/adf-core'; diff --git a/demo-shell/src/app/components/settings/host-settings.component.ts b/demo-shell/src/app/components/settings/host-settings.component.ts index a5d54770a9..d5891f2c14 100644 --- a/demo-shell/src/app/components/settings/host-settings.component.ts +++ b/demo-shell/src/app/components/settings/host-settings.component.ts @@ -19,7 +19,7 @@ import { Component, EventEmitter, Output, ViewEncapsulation, OnInit, Input } fro import { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl } from '@angular/forms'; import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, AuthenticationService } from '@alfresco/adf-core'; import { ENTER } from '@angular/cdk/keycodes'; -import { MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS as MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/legacy-form-field'; +import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field'; export const HOST_REGEX = '^(http|https)://.*[^/]$'; diff --git a/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts b/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts index 42b1ca2953..614a8e328f 100644 --- a/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts +++ b/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts @@ -17,7 +17,7 @@ import { Component } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { By } from '@angular/platform-browser'; import { Subject, of } from 'rxjs'; import { FolderCreateDirective } from './folder-create.directive'; diff --git a/demo-shell/src/app/folder-directive/folder-create.directive.ts b/demo-shell/src/app/folder-directive/folder-create.directive.ts index a5d03d546e..3e49d2c532 100644 --- a/demo-shell/src/app/folder-directive/folder-create.directive.ts +++ b/demo-shell/src/app/folder-directive/folder-create.directive.ts @@ -18,7 +18,7 @@ /* eslint-disable */ import { Directive, HostListener, Input, Output, EventEmitter } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Node } from '@alfresco/js-api'; import { ContentService, FolderDialogComponent } from '@alfresco/adf-content-services'; diff --git a/demo-shell/src/app/material.module.ts b/demo-shell/src/app/material.module.ts index 1ebf5e71df..ea97216864 100644 --- a/demo-shell/src/app/material.module.ts +++ b/demo-shell/src/app/material.module.ts @@ -16,17 +16,17 @@ */ import { NgModule } from '@angular/core'; -import { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; +import { MatCardModule } from '@angular/material/card'; +import { MatDialogModule } from '@angular/material/dialog'; import { MatExpansionModule } from '@angular/material/expansion'; -import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input'; -import { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; -import { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar'; -import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select'; +import { MatInputModule } from '@angular/material/input'; +import { MatListModule } from '@angular/material/list'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatSelectModule } from '@angular/material/select'; import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle'; -import { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatToolbarModule } from '@angular/material/toolbar'; @NgModule({ diff --git a/demo-shell/src/custom-style-dev.scss b/demo-shell/src/custom-style-dev.scss index b778643bb3..84213af530 100644 --- a/demo-shell/src/custom-style-dev.scss +++ b/demo-shell/src/custom-style-dev.scss @@ -8,9 +8,9 @@ // If you specify typography styles for the components you use elsewhere, you should delete this line. // If you don't need the default component typographies but still want the hierarchy styles, // you can delete this line and instead use: -// `@include mat.legacy-typography-hierarchy(mat.define-legacy-typography-config());` -@include mat.all-legacy-component-typographies; -@include mat.legacy-core(); +// `@include mat.legacy-typography-hierarchy(mat.define-typography-config());` +@include mat.all-component-typographies; +@include mat.core(); $primary: mat.define-palette($alfresco-accent-orange); $accent: mat.define-palette($alfresco-accent-purple); @@ -26,7 +26,7 @@ $theme: mat.define-light-theme( ) ); -@include mat.all-legacy-component-themes($theme); +@include mat.all-component-themes($theme); @include alfresco-material-theme($theme); $typography: map-get($theme, typography); diff --git a/demo-shell/src/custom-style.scss b/demo-shell/src/custom-style.scss index 046919e107..e5fce7f3a9 100644 --- a/demo-shell/src/custom-style.scss +++ b/demo-shell/src/custom-style.scss @@ -8,8 +8,8 @@ // If you don't need the default component typographies but still want the hierarchy styles, // you can delete this line and instead use: // `@include mat.legacy-typography-hierarchy($alfresco-typography);` -@include mat.all-legacy-component-typographies($alfresco-typography); -@include mat.legacy-core(); +@include mat.all-component-typographies($alfresco-typography); +@include mat.core(); $primary: mat.define-palette($alfresco-accent-orange); $accent: mat.define-palette($alfresco-accent-purple); @@ -23,7 +23,7 @@ $theme: mat.define-light-theme( ) ); -@include mat.all-legacy-component-themes($theme); +@include mat.all-component-themes($theme); @include alfresco-material-theme($theme); body, diff --git a/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.spec.ts b/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.spec.ts index a75e5abb41..88254e3c39 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.spec.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.spec.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogModule as MatDialogModule, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AspectListDialogComponent } from './aspect-list-dialog.component'; import { of, Subject } from 'rxjs'; diff --git a/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts b/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts index 6d86a4c2f3..6d74b92ee3 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AspectListDialogComponentData } from './aspect-list-dialog-data.interface'; @Component({ diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.component.ts b/lib/content-services/src/lib/aspect-list/aspect-list.component.ts index ee6df0f413..55c100741c 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.component.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list.component.ts @@ -20,7 +20,7 @@ import { NodesApiService } from '../common/services/nodes-api.service'; import { Observable, Subject, zip } from 'rxjs'; import { concatMap, map, takeUntil, tap } from 'rxjs/operators'; import { AspectListService } from './services/aspect-list.service'; -import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox'; +import { MatCheckboxChange } from '@angular/material/checkbox'; import { AspectEntry } from '@alfresco/js-api'; @Component({ selector: 'adf-aspect-list', diff --git a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts index 0a876f07e0..91a57f41e8 100644 --- a/lib/content-services/src/lib/aspect-list/aspect-list.module.ts +++ b/lib/content-services/src/lib/aspect-list/aspect-list.module.ts @@ -18,16 +18,16 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { AspectListComponent } from './aspect-list.component'; -import { MatLegacyTableModule as MatTableModule } from '@angular/material/legacy-table'; +import { MatTableModule } from '@angular/material/table'; import { MatExpansionModule } from '@angular/material/expansion'; -import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox'; +import { MatCheckboxModule } from '@angular/material/checkbox'; import { PipeModule } from '@alfresco/adf-core'; import { TranslateModule } from '@ngx-translate/core'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; +import { MatDialogModule } from '@angular/material/dialog'; import { AspectListDialogComponent } from './aspect-list-dialog.component'; -import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'; -import { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip'; -import { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner'; +import { MatButtonModule } from '@angular/material/button'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { ContentDirectiveModule } from '../directives/content-directive.module'; @NgModule({ diff --git a/lib/content-services/src/lib/aspect-list/services/dialog-aspect-list.service.ts b/lib/content-services/src/lib/aspect-list/services/dialog-aspect-list.service.ts index 0c81b59209..8c4cec941c 100644 --- a/lib/content-services/src/lib/aspect-list/services/dialog-aspect-list.service.ts +++ b/lib/content-services/src/lib/aspect-list/services/dialog-aspect-list.service.ts @@ -16,7 +16,7 @@ */ import { Injectable } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Observable, Subject } from 'rxjs'; import { AspectListDialogComponentData } from '../aspect-list-dialog-data.interface'; import { AspectListDialogComponent } from '../aspect-list-dialog.component'; diff --git a/lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts b/lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts index c05bdc6c90..e35cf036ad 100644 --- a/lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts +++ b/lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts @@ -16,7 +16,7 @@ */ import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild, ViewEncapsulation, OnDestroy } from '@angular/core'; -import { MatLegacySelect as MatSelect } from '@angular/material/legacy-select'; +import { MatSelect } from '@angular/material/select'; import { Node, PathElement } from '@alfresco/js-api'; import { DocumentListComponent } from '../document-list/components/document-list.component'; import { Subject } from 'rxjs'; diff --git a/lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts b/lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts index a68da6a136..b7bc520044 100644 --- a/lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts +++ b/lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts @@ -16,7 +16,7 @@ */ import { Component, OnChanges, ViewChild, ViewEncapsulation } from '@angular/core'; -import { MatLegacySelect as MatSelect } from '@angular/material/legacy-select'; +import { MatSelect } from '@angular/material/select'; import { PathElement, Node } from '@alfresco/js-api'; import { BreadcrumbComponent } from './breadcrumb.component'; diff --git a/lib/content-services/src/lib/content-metadata/services/content-type-property.service.ts b/lib/content-services/src/lib/content-metadata/services/content-type-property.service.ts index 90e32f76eb..c035a062fc 100644 --- a/lib/content-services/src/lib/content-metadata/services/content-type-property.service.ts +++ b/lib/content-services/src/lib/content-metadata/services/content-type-property.service.ts @@ -16,7 +16,7 @@ */ import { Injectable } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { CardViewItem, CardViewSelectItemModel, CardViewSelectItemOption, CardViewTextItemModel } from '@alfresco/adf-core'; import { Observable, of, Subject, zip } from 'rxjs'; import { distinctUntilChanged, map } from 'rxjs/operators'; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.spec.ts index c3acfcfe70..e37292c391 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.spec.ts @@ -19,7 +19,7 @@ import { TestBed, fakeAsync, tick } from '@angular/core/testing'; import { NodeEntry, Node, SitePaging, Site } from '@alfresco/js-api'; import { DocumentListService, NodeAction } from '../document-list'; import { ContentNodeDialogService } from './content-node-dialog.service'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Subject, of } from 'rxjs'; import { ContentTestingModule } from '../testing/content.testing.module'; import { SitesService } from '../common'; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.ts b/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.ts index 7d3c74c74b..1851d40903 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-dialog.service.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialog, MatDialogRef } from '@angular/material/dialog'; import { EventEmitter, Injectable, Output } from '@angular/core'; import { ThumbnailService, TranslationService } from '@alfresco/adf-core'; import { Subject, Observable, throwError } from 'rxjs'; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts index 2e3f11cefb..f27f4fd2b4 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.spec.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogModule as MatDialogModule, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { CUSTOM_ELEMENTS_SCHEMA, EventEmitter } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ContentNodeSelectorComponent } from './content-node-selector.component'; diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts index fcc55ea3ef..3785c6741d 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { TranslationService, NotificationService } from '@alfresco/adf-core'; import { Node } from '@alfresco/js-api'; import { AllowableOperationsEnum } from '../common/models/allowable-operations.enum'; diff --git a/lib/content-services/src/lib/content-node-share/content-node-share.dialog.spec.ts b/lib/content-services/src/lib/content-node-share/content-node-share.dialog.spec.ts index 69a8f8176f..d62da9a536 100644 --- a/lib/content-services/src/lib/content-node-share/content-node-share.dialog.spec.ts +++ b/lib/content-services/src/lib/content-node-share/content-node-share.dialog.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog'; import { of } from 'rxjs'; import { NotificationService } from '@alfresco/adf-core'; import { NodesApiService, RenditionService } from '../common'; diff --git a/lib/content-services/src/lib/content-node-share/content-node-share.dialog.ts b/lib/content-services/src/lib/content-node-share/content-node-share.dialog.ts index c7e2ac661e..fe95433518 100644 --- a/lib/content-services/src/lib/content-node-share/content-node-share.dialog.ts +++ b/lib/content-services/src/lib/content-node-share/content-node-share.dialog.ts @@ -16,8 +16,8 @@ */ import { Component, Inject, OnInit, ViewEncapsulation, ViewChild, OnDestroy } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; -import { MatLegacySlideToggleChange as MatSlideToggleChange } from '@angular/material/legacy-slide-toggle'; +import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { Subject } from 'rxjs'; import { ContentService } from '../common/services/content.service'; diff --git a/lib/content-services/src/lib/content-node-share/content-node-share.directive.ts b/lib/content-services/src/lib/content-node-share/content-node-share.directive.ts index d553f7f847..79d2148eae 100644 --- a/lib/content-services/src/lib/content-node-share/content-node-share.directive.ts +++ b/lib/content-services/src/lib/content-node-share/content-node-share.directive.ts @@ -16,7 +16,7 @@ */ import { Directive, Input, HostListener, OnChanges, NgZone, OnDestroy } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { NodeEntry, NodesApi } from '@alfresco/js-api'; import { ShareDialogComponent } from './content-node-share.dialog'; diff --git a/lib/content-services/src/lib/content-type/content-type-dialog.component.spec.ts b/lib/content-services/src/lib/content-type/content-type-dialog.component.spec.ts index d50115b1c7..7ebadbacd9 100644 --- a/lib/content-services/src/lib/content-type/content-type-dialog.component.spec.ts +++ b/lib/content-services/src/lib/content-type/content-type-dialog.component.spec.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogModule as MatDialogModule, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { of, Subject } from 'rxjs'; import { ContentTestingModule } from '../testing/content.testing.module'; diff --git a/lib/content-services/src/lib/content-type/content-type-dialog.component.ts b/lib/content-services/src/lib/content-type/content-type-dialog.component.ts index 09b2e4dab7..52e689c83d 100644 --- a/lib/content-services/src/lib/content-type/content-type-dialog.component.ts +++ b/lib/content-services/src/lib/content-type/content-type-dialog.component.ts @@ -17,7 +17,7 @@ import { TypeEntry } from '@alfresco/js-api'; import { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { ContentTypeDialogComponentData } from './content-type-metadata.interface'; import { ContentTypeService } from './content-type.service'; diff --git a/lib/content-services/src/lib/content-type/content-type.module.ts b/lib/content-services/src/lib/content-type/content-type.module.ts index 661fe7aed7..47c3564d18 100644 --- a/lib/content-services/src/lib/content-type/content-type.module.ts +++ b/lib/content-services/src/lib/content-type/content-type.module.ts @@ -17,12 +17,12 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { MatLegacyTableModule as MatTableModule } from '@angular/material/legacy-table'; +import { MatTableModule } from '@angular/material/table'; import { MatExpansionModule } from '@angular/material/expansion'; -import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox'; +import { MatCheckboxModule } from '@angular/material/checkbox'; import { TranslateModule } from '@ngx-translate/core'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; -import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatButtonModule } from '@angular/material/button'; import { ContentTypeDialogComponent } from './content-type-dialog.component'; @NgModule({ diff --git a/lib/content-services/src/lib/content-user-info/content-user-info.component.spec.ts b/lib/content-services/src/lib/content-user-info/content-user-info.component.spec.ts index ffd5350568..d78bdfe3c7 100644 --- a/lib/content-services/src/lib/content-user-info/content-user-info.component.spec.ts +++ b/lib/content-services/src/lib/content-user-info/content-user-info.component.spec.ts @@ -17,7 +17,7 @@ import { CoreTestingModule, IdentityUserModel, InitialUsernamePipe, UserInfoMode } from '@alfresco/adf-core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; +import { MatMenuModule } from '@angular/material/menu'; import { By, DomSanitizer } from '@angular/platform-browser'; import { fakeEcmEditedUser, fakeEcmUser, fakeEcmUserNoImage } from '../common/mocks/ecm-user.service.mock'; import { ContentTestingModule } from '../testing/content.testing.module'; diff --git a/lib/content-services/src/lib/content-user-info/content-user-info.component.ts b/lib/content-services/src/lib/content-user-info/content-user-info.component.ts index 0c04edc677..91fd28281c 100644 --- a/lib/content-services/src/lib/content-user-info/content-user-info.component.ts +++ b/lib/content-services/src/lib/content-user-info/content-user-info.component.ts @@ -17,7 +17,7 @@ import { IdentityUserModel, UserInfoMode } from '@alfresco/adf-core'; import { Component, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core'; -import { MatLegacyMenuTrigger as MatMenuTrigger, LegacyMenuPositionX as MenuPositionX, LegacyMenuPositionY as MenuPositionY } from '@angular/material/legacy-menu'; +import { MatMenuTrigger, MenuPositionX, MenuPositionY } from '@angular/material/menu'; import { Subject } from 'rxjs'; import { EcmUserModel } from '../common/models/ecm-user.model'; import { PeopleContentService } from '../common/services/people-content.service'; diff --git a/lib/content-services/src/lib/dialogs/confirm.dialog.spec.ts b/lib/content-services/src/lib/dialogs/confirm.dialog.spec.ts index 6bdcf1a35a..bbf8499709 100644 --- a/lib/content-services/src/lib/dialogs/confirm.dialog.spec.ts +++ b/lib/content-services/src/lib/dialogs/confirm.dialog.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { ConfirmDialogComponent } from './confirm.dialog'; import { ContentTestingModule } from '../testing/content.testing.module'; import { By } from '@angular/platform-browser'; diff --git a/lib/content-services/src/lib/dialogs/confirm.dialog.ts b/lib/content-services/src/lib/dialogs/confirm.dialog.ts index 223be52d78..0e3fd5c917 100644 --- a/lib/content-services/src/lib/dialogs/confirm.dialog.ts +++ b/lib/content-services/src/lib/dialogs/confirm.dialog.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, ViewEncapsulation, SecurityContext } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { DomSanitizer } from '@angular/platform-browser'; export interface ConfirmDialogComponentProps { diff --git a/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.module.ts b/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.module.ts index cb0d10707d..14b2ec2bbf 100644 --- a/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.module.ts +++ b/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.module.ts @@ -18,9 +18,9 @@ import { NgModule } from '@angular/core'; import { DownloadZipDialogComponent } from './download-zip.dialog'; import { PipeModule } from '@alfresco/adf-core'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; -import { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar'; -import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatButtonModule } from '@angular/material/button'; import { TranslateModule } from '@ngx-translate/core'; import { CommonModule } from '@angular/common'; diff --git a/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.spec.ts b/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.spec.ts index 6f7963cb98..1dfa6aeb08 100755 --- a/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.spec.ts +++ b/lib/content-services/src/lib/dialogs/download-zip/download-zip.dialog.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { DownloadZipDialogComponent } from './download-zip.dialog'; import { CoreTestingModule } from '@alfresco/adf-core'; import { DownloadZipService } from './services/download-zip.service'; diff --git a/lib/content-services/src/lib/dialogs/folder.dialog.spec.ts b/lib/content-services/src/lib/dialogs/folder.dialog.spec.ts index 0213c5da02..da166d781f 100644 --- a/lib/content-services/src/lib/dialogs/folder.dialog.spec.ts +++ b/lib/content-services/src/lib/dialogs/folder.dialog.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, ComponentFixture } from '@angular/core/testing'; -import { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialogRef } from '@angular/material/dialog'; import { NodesApiService } from '../common/services/nodes-api.service'; import { FolderDialogComponent } from './folder.dialog'; diff --git a/lib/content-services/src/lib/dialogs/folder.dialog.ts b/lib/content-services/src/lib/dialogs/folder.dialog.ts index 41ef9564be..a1a16230eb 100644 --- a/lib/content-services/src/lib/dialogs/folder.dialog.ts +++ b/lib/content-services/src/lib/dialogs/folder.dialog.ts @@ -19,7 +19,7 @@ import { Observable } from 'rxjs'; import { Component, Inject, OnInit, Optional, EventEmitter, Output, ViewEncapsulation } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Node } from '@alfresco/js-api'; import { TranslationService } from '@alfresco/adf-core'; diff --git a/lib/content-services/src/lib/dialogs/library/library.dialog.spec.ts b/lib/content-services/src/lib/dialogs/library/library.dialog.spec.ts index eb883504ed..527e6cc6b8 100644 --- a/lib/content-services/src/lib/dialogs/library/library.dialog.spec.ts +++ b/lib/content-services/src/lib/dialogs/library/library.dialog.spec.ts @@ -18,7 +18,7 @@ import { LibraryDialogComponent } from './library.dialog'; import { TestBed, fakeAsync, tick, flush, ComponentFixture, flushMicrotasks } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialogRef } from '@angular/material/dialog'; import { ContentTestingModule } from '../../testing/content.testing.module'; import { of, throwError } from 'rxjs'; import { delay } from 'rxjs/operators'; diff --git a/lib/content-services/src/lib/dialogs/library/library.dialog.ts b/lib/content-services/src/lib/dialogs/library/library.dialog.ts index 77b74689a6..066a082234 100644 --- a/lib/content-services/src/lib/dialogs/library/library.dialog.ts +++ b/lib/content-services/src/lib/dialogs/library/library.dialog.ts @@ -31,7 +31,7 @@ import { UntypedFormControl, AbstractControl } from '@angular/forms'; -import { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialogRef } from '@angular/material/dialog'; import { QueriesApi, SiteBodyCreate, SiteEntry, SitePaging } from '@alfresco/js-api'; import { AlfrescoApiService, NotificationService } from '@alfresco/adf-core'; import { debounceTime, finalize, mergeMap, takeUntil } from 'rxjs/operators'; diff --git a/lib/content-services/src/lib/dialogs/node-lock.dialog.spec.ts b/lib/content-services/src/lib/dialogs/node-lock.dialog.spec.ts index ed4f03af82..d76a6ea638 100644 --- a/lib/content-services/src/lib/dialogs/node-lock.dialog.spec.ts +++ b/lib/content-services/src/lib/dialogs/node-lock.dialog.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, fakeAsync, tick, ComponentFixture } from '@angular/core/testing'; -import { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialogRef } from '@angular/material/dialog'; import { NodeLockDialogComponent } from './node-lock.dialog'; import { ContentTestingModule } from '../testing/content.testing.module'; import { addMinutes } from 'date-fns'; diff --git a/lib/content-services/src/lib/dialogs/node-lock.dialog.ts b/lib/content-services/src/lib/dialogs/node-lock.dialog.ts index a84d1e45ae..7a200816ad 100644 --- a/lib/content-services/src/lib/dialogs/node-lock.dialog.ts +++ b/lib/content-services/src/lib/dialogs/node-lock.dialog.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, OnInit, Optional, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { differenceInSeconds } from 'date-fns'; import { NodeBodyLock, Node, NodeEntry, NodesApi } from '@alfresco/js-api'; diff --git a/lib/content-services/src/lib/directives/node-download.directive.spec.ts b/lib/content-services/src/lib/directives/node-download.directive.spec.ts index 9ec4213f7d..0de9a9bd8f 100755 --- a/lib/content-services/src/lib/directives/node-download.directive.spec.ts +++ b/lib/content-services/src/lib/directives/node-download.directive.spec.ts @@ -17,7 +17,7 @@ import { TestBed, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Component, DebugElement, ViewChild } from '@angular/core'; import { AlfrescoApiService, CoreTestingModule } from '@alfresco/adf-core'; import { NodeDownloadDirective } from './node-download.directive'; diff --git a/lib/content-services/src/lib/directives/node-download.directive.ts b/lib/content-services/src/lib/directives/node-download.directive.ts index 2cfafc2f4d..23dc1cd7b6 100755 --- a/lib/content-services/src/lib/directives/node-download.directive.ts +++ b/lib/content-services/src/lib/directives/node-download.directive.ts @@ -16,7 +16,7 @@ */ import { Directive, Input, HostListener } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { AlfrescoApiService, DownloadService } from '@alfresco/adf-core'; import { DownloadZipDialogComponent } from '../dialogs/download-zip/download-zip.dialog'; import { ContentApi, NodeEntry, VersionEntry } from '@alfresco/js-api'; diff --git a/lib/content-services/src/lib/document-list/components/document-list.component.spec.ts b/lib/content-services/src/lib/document-list/components/document-list.component.spec.ts index 62425739d2..8c168304ba 100644 --- a/lib/content-services/src/lib/document-list/components/document-list.component.spec.ts +++ b/lib/content-services/src/lib/document-list/components/document-list.component.spec.ts @@ -62,7 +62,7 @@ import { ContentActionModel } from '../models/content-action.model'; import { DocumentLoaderNode } from '../models/document-folder.model'; import { matIconRegistryMock } from '../../testing/mat-icon-registry-mock'; import { domSanitizerMock } from '../../testing/dom-sanitizer-mock'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { FileAutoDownloadComponent } from './file-auto-download/file-auto-download.component'; import { ShareDataTableAdapter } from '../data/share-datatable-adapter'; import { HarnessLoader } from '@angular/cdk/testing'; diff --git a/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.spec.ts b/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.spec.ts index 4ac6e4f3d4..e6471d36e3 100644 --- a/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.spec.ts +++ b/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.spec.ts @@ -18,7 +18,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { FileAutoDownloadComponent } from './file-auto-download.component'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { By } from '@angular/platform-browser'; import { CoreTestingModule } from '@alfresco/adf-core'; import { NO_ERRORS_SCHEMA } from '@angular/core'; diff --git a/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.ts b/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.ts index 55a1c8a388..6ba38dc259 100644 --- a/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.ts +++ b/lib/content-services/src/lib/document-list/components/file-auto-download/file-auto-download.component.ts @@ -16,7 +16,7 @@ */ import { Component, Inject } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { NodeEntry } from '@alfresco/js-api'; @Component({ diff --git a/lib/content-services/src/lib/document-list/services/node-actions.service.spec.ts b/lib/content-services/src/lib/document-list/services/node-actions.service.spec.ts index 1817fa4d4e..0fdb448505 100644 --- a/lib/content-services/src/lib/document-list/services/node-actions.service.spec.ts +++ b/lib/content-services/src/lib/document-list/services/node-actions.service.spec.ts @@ -21,7 +21,7 @@ import { DocumentListService } from './document-list.service'; import { NodeActionsService } from './node-actions.service'; import { ContentNodeDialogService } from '../../content-node-selector/content-node-dialog.service'; import { of, throwError } from 'rxjs'; -import { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MatDialogRef } from '@angular/material/dialog'; import { ContentTestingModule } from '../../testing/content.testing.module'; import { delay } from 'rxjs/operators'; diff --git a/lib/content-services/src/lib/document-list/services/node-actions.service.ts b/lib/content-services/src/lib/document-list/services/node-actions.service.ts index 2cc8628632..d1af60ff5d 100644 --- a/lib/content-services/src/lib/document-list/services/node-actions.service.ts +++ b/lib/content-services/src/lib/document-list/services/node-actions.service.ts @@ -19,7 +19,7 @@ import { Injectable, Output, EventEmitter } from '@angular/core'; import { Node, NodeEntry } from '@alfresco/js-api'; import { Subject } from 'rxjs'; import { AlfrescoApiService, DownloadService } from '@alfresco/adf-core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { ContentService } from '../../common/services/content.service'; import { NodeDownloadDirective } from '../../directives/node-download.directive'; diff --git a/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts b/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts index f53264018b..6b49f20e25 100644 --- a/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts +++ b/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts @@ -17,7 +17,7 @@ import { Component } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { By } from '@angular/platform-browser'; import { Subject, of } from 'rxjs'; import { FolderEditDirective } from './folder-edit.directive'; diff --git a/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts b/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts index d3a72cc4bc..5f19d8f0cf 100644 --- a/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts +++ b/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts @@ -18,7 +18,7 @@ /* eslint-disable @angular-eslint/no-input-rename */ import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Node } from '@alfresco/js-api'; import { FolderDialogComponent } from '../dialogs/folder.dialog'; import { ContentService } from '../common/services/content.service'; diff --git a/lib/content-services/src/lib/material.module.ts b/lib/content-services/src/lib/material.module.ts index a25e867f19..98a3cbe556 100644 --- a/lib/content-services/src/lib/material.module.ts +++ b/lib/content-services/src/lib/material.module.ts @@ -16,26 +16,26 @@ */ import { NgModule } from '@angular/core'; -import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button'; -import { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card'; -import { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox'; -import { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete'; -import { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatChipsModule } from '@angular/material/chips'; import { MatRippleModule } from '@angular/material/core'; -import { MatLegacyOptionModule as MatOptionModule } from '@angular/material/legacy-core'; +import { MatOptionModule } from '@angular/material/core'; import { MatDatepickerModule } from '@angular/material/datepicker'; -import { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog'; +import { MatDialogModule } from '@angular/material/dialog'; import { MatExpansionModule } from '@angular/material/expansion'; import { MatIconModule } from '@angular/material/icon'; -import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input'; -import { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; -import { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar'; -import { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner'; -import { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio'; -import { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select'; -import { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle'; -import { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider'; +import { MatInputModule } from '@angular/material/input'; +import { MatListModule } from '@angular/material/list'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatSelectModule } from '@angular/material/select'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatSliderModule } from '@angular/material/slider'; import { MatTreeModule } from '@angular/material/tree'; import { MatBadgeModule } from '@angular/material/badge'; diff --git a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.spec.ts b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.spec.ts index 5b45aa05de..b4ea37b08f 100644 --- a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.spec.ts +++ b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.spec.ts @@ -17,6 +17,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { TranslateModule } from '@ngx-translate/core'; import { mockFile, mockNode } from '../mock'; import { ContentTestingModule } from '../testing/content.testing.module'; import { UploadVersionButtonComponent } from '../upload'; diff --git a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.ts b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.ts index 6bcc9011df..75133c57cc 100644 --- a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.ts +++ b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.dialog.ts @@ -17,7 +17,7 @@ import { Node } from '@alfresco/js-api'; import { Component, EventEmitter, Inject, OnInit, Output, ViewEncapsulation } from '@angular/core'; -import { MatLegacyDialogRef as MatDialogRef, MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { NewVersionUploaderDialogData, NewVersionUploaderData, NewVersionUploaderDataAction } from './models'; @Component({ diff --git a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.spec.ts b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.spec.ts index bea1733292..d6761d2dfc 100644 --- a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.spec.ts +++ b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.spec.ts @@ -18,6 +18,7 @@ import { Component, EventEmitter, Output } from '@angular/core'; import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; import { MatDialog, MatDialogConfig } from '@angular/material/dialog'; +import { TranslateModule } from '@ngx-translate/core'; import { BehaviorSubject, of, Subject } from 'rxjs'; import { mockFile, mockNewVersionUploaderData, mockNode } from '../mock'; import { ContentTestingModule } from '../testing/content.testing.module'; diff --git a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.ts b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.ts index 942708f75b..aa5ebfedf0 100644 --- a/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.ts +++ b/lib/content-services/src/lib/new-version-uploader/new-version-uploader.service.ts @@ -16,7 +16,7 @@ */ import { Injectable } from '@angular/core'; -import { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog'; +import { MatDialog, MatDialogConfig } from '@angular/material/dialog'; import { AlfrescoApiService } from '@alfresco/adf-core'; import { NewVersionUploaderDialogComponent } from './new-version-uploader.dialog'; diff --git a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.spec.ts b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.spec.ts index ec4674a24f..56399f615c 100644 --- a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.spec.ts +++ b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.spec.ts @@ -16,7 +16,7 @@ */ import { Node, PermissionElement } from '@alfresco/js-api'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { Subject } from 'rxjs'; diff --git a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts index 9599f884a1..20f05fb09f 100644 --- a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts +++ b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts @@ -16,7 +16,7 @@ */ import { Component, Inject, ViewEncapsulation } from '@angular/core'; -import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { NodeEntry, PermissionElement } from '@alfresco/js-api'; import { AddPermissionDialogData } from './add-permission-dialog-data.interface'; import { MemberModel } from '../../models/member.model'; diff --git a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts index 39d33fafff..be466fddb6 100644 --- a/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts +++ b/lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts @@ -23,7 +23,7 @@ import { UntypedFormControl } from '@angular/forms'; import { debounceTime } from 'rxjs/operators'; import { SearchPermissionConfigurationService } from './search-config-permission.service'; import { SearchComponent } from '../../../search/components/search.component'; -import { MatLegacySelectionList as MatSelectionList } from '@angular/material/legacy-list'; +import { MatSelectionList } from '@angular/material/list'; @Component({ selector: 'adf-add-permission-panel', diff --git a/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.html b/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.html index 78dc2b8464..2f3ac115db 100644 --- a/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.html +++ b/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.html @@ -1,4 +1,4 @@ - +
diff --git a/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.service.ts b/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.service.ts index 7ceb78407f..36b2a1e7f8 100644 --- a/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.service.ts +++ b/lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.service.ts @@ -18,7 +18,7 @@ import { NotificationService } from '@alfresco/adf-core'; import { Node, PermissionElement } from '@alfresco/js-api'; import { EventEmitter, Injectable } from '@angular/core'; -import { MatLegacySlideToggleChange as MatSlideToggleChange } from '@angular/material/legacy-slide-toggle'; +import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { BehaviorSubject, forkJoin, Observable, of, Subject } from 'rxjs'; import { finalize, map, switchMap } from 'rxjs/operators'; import { RoleModel } from '../../models/role.model'; diff --git a/lib/content-services/src/lib/permission-manager/components/user-role-column/user-role-column.component.ts b/lib/content-services/src/lib/permission-manager/components/user-role-column/user-role-column.component.ts index 7785184397..83cd323b54 100644 --- a/lib/content-services/src/lib/permission-manager/components/user-role-column/user-role-column.component.ts +++ b/lib/content-services/src/lib/permission-manager/components/user-role-column/user-role-column.component.ts @@ -42,18 +42,18 @@ import { RoleModel } from '../../models/role.model'; host: { class: 'adf-user-role-column adf-datatable-content-cell adf-expand-cell-4' }, styles: [ `.adf-role-selector-field { - width: 100%; - } - - .adf-role-selector-field .mat-form-field { - width: 100%; - max-width: 200px; - } - - .adf-readonly-role { - padding-left: 0 !important; - } - ` + width: 100%; + } + + .adf-role-selector-field .mat-mdc-form-field { + width: 100%; + max-width: 200px; + } + + .adf-readonly-role { + padding-left: 0 !important; + } + ` ] }) export class UserRoleColumnComponent { diff --git a/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.spec.ts b/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.spec.ts index c0913146b4..fbedf8baa5 100644 --- a/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.spec.ts +++ b/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.spec.ts @@ -17,7 +17,7 @@ import { TestBed } from '@angular/core/testing'; import { NodePermissionDialogService } from './node-permission-dialog.service'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { of, Subject, throwError } from 'rxjs'; import { ContentTestingModule } from '../../testing/content.testing.module'; import { NodePermissionService } from './node-permission.service'; diff --git a/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts b/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts index 67411b311d..f489fd82a1 100644 --- a/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts +++ b/lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts @@ -16,7 +16,7 @@ */ import { Node, PermissionElement } from '@alfresco/js-api'; -import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog'; +import { MatDialog } from '@angular/material/dialog'; import { Injectable } from '@angular/core'; import { Observable, Subject, throwError } from 'rxjs'; import { switchMap } from 'rxjs/operators'; diff --git a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts index b3de161122..8a1f7067df 100644 --- a/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts +++ b/lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts @@ -16,7 +16,7 @@ */ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox'; +import { MatCheckboxChange } from '@angular/material/checkbox'; import { SearchWidget } from '../../models/search-widget.interface'; import { SearchWidgetSettings } from '../../models/search-widget-settings.interface'; import { SearchQueryBuilderService } from '../../services/search-query-builder.service'; diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html index 91b08741e0..aea04f5b98 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.html @@ -1,6 +1,6 @@ - - + @@ -14,7 +14,7 @@ [attr.aria-label]="('SEARCH.FILTER.BUTTONS.REMOVE' | translate) + ' ' + option.value"> close - + - + diff --git a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts index f848180628..df7f95df42 100644 --- a/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts +++ b/lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts @@ -30,8 +30,8 @@ import { } from '@angular/core'; import { ENTER } from '@angular/cdk/keycodes'; import { FormControl } from '@angular/forms'; -import { MatLegacyAutocompleteSelectedEvent as MatAutocompleteSelectedEvent } from '@angular/material/legacy-autocomplete'; -import { MatLegacyChipInputEvent as MatChipInputEvent } from '@angular/material/legacy-chips'; +import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; +import { MatChipInputEvent } from '@angular/material/chips'; import { EMPTY, Observable, Subject, timer } from 'rxjs'; import { debounce, startWith, takeUntil, tap } from 'rxjs/operators'; import { AutocompleteOption } from '../../models/autocomplete-option.interface'; diff --git a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html index 451d5c5e51..d4ed55bd52 100644 --- a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html +++ b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.html @@ -1,6 +1,6 @@ - + - {{ 'SEARCH.FILTER.BUTTONS.CLEAR-ALL.LABEL' | translate }} - + - {{ (selection.bucket.display || selection.bucket.label) | translate }} cancel - + - + diff --git a/lib/content-services/src/lib/search/components/search-control.component.ts b/lib/content-services/src/lib/search/components/search-control.component.ts index 5372d0740a..769626de7a 100644 --- a/lib/content-services/src/lib/search/components/search-control.component.ts +++ b/lib/content-services/src/lib/search/components/search-control.component.ts @@ -32,7 +32,7 @@ import { import { NodeEntry } from '@alfresco/js-api'; import { Subject } from 'rxjs'; import { SearchComponent } from './search.component'; -import { MatLegacyListItem as MatListItem } from '@angular/material/legacy-list'; +import { MatListItem } from '@angular/material/list'; import { EmptySearchResultComponent } from './empty-search-result.component'; @Component({ diff --git a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.ts b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.ts index bab8edecf8..94c9b278e3 100644 --- a/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.ts +++ b/lib/content-services/src/lib/search/components/search-facet-field/search-facet-field.component.ts @@ -17,7 +17,7 @@ import { Component, inject, Input, ViewEncapsulation } from '@angular/core'; import { FacetField } from '../../models/facet-field.interface'; -import { MatLegacyCheckboxChange as MatCheckboxChange } from '@angular/material/legacy-checkbox'; +import { MatCheckboxChange } from '@angular/material/checkbox'; import { FacetFieldBucket } from '../../models/facet-field-bucket.interface'; import { SearchQueryBuilderService } from '../../services/search-query-builder.service'; import { SearchFacetFiltersService } from '../../services/search-facet-filters.service'; diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.html index 39a4113fd0..0241ee2274 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.html @@ -1,5 +1,5 @@ - remove - +
diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.ts b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.ts index 5a48c223e7..f5516a1a82 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.ts +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.ts @@ -17,7 +17,7 @@ import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core'; import { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y'; -import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu'; +import { MatMenuTrigger } from '@angular/material/menu'; import { TabbedFacetField } from '../../../models/tabbed-facet-field.interface'; import { Subject } from 'rxjs'; diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.html index 27cc743075..f1756935d0 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.html @@ -1,5 +1,5 @@ - remove - +
diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.ts b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.ts index 296a68c32c..ccf83361d5 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.ts +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.ts @@ -18,7 +18,7 @@ import { Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core'; import { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y'; import { FacetField } from '../../../models/facet-field.interface'; -import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu'; +import { MatMenuTrigger } from '@angular/material/menu'; import { SearchFacetFieldComponent } from '../../search-facet-field/search-facet-field.component'; @Component({ diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.html index bdc178a0e7..aee880d2cd 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.html @@ -1,5 +1,5 @@ - - + + @@ -15,6 +15,6 @@ - + - + diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.html b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.html index c68b5aaed7..f0dd3795f4 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.html +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.html @@ -1,5 +1,5 @@ -  {{ 'SEARCH.FILTER.ANY' | translate }} {{ chipIcon }} - +
diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.spec.ts b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.spec.ts index 0b858f7a24..bc3ef2ff86 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.spec.ts @@ -19,7 +19,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { SearchWidgetChipComponent } from './search-widget-chip.component'; import { simpleCategories } from '../../../../mock'; import { ContentTestingModule } from '../../../../testing/content.testing.module'; -import { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu'; +import { MatMenuModule } from '@angular/material/menu'; import { By } from '@angular/platform-browser'; import { SearchQueryBuilderService } from '../../../services/search-query-builder.service'; import { HarnessLoader } from '@angular/cdk/testing'; diff --git a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.ts b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.ts index 3276e9eddc..642c9dad44 100644 --- a/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.ts +++ b/lib/content-services/src/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.ts @@ -18,7 +18,7 @@ import { Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core'; import { SearchCategory } from '../../../models/search-category.interface'; import { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y'; -import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu'; +import { MatMenuTrigger } from '@angular/material/menu'; import { SearchWidgetContainerComponent } from '../../search-widget-container/search-widget-container.component'; @Component({ @@ -26,10 +26,10 @@ import { SearchWidgetContainerComponent } from '../../search-widget-container/se templateUrl: './search-widget-chip.component.html', styles: [ ` - .adf-search-widget-extra-width { - max-width: 500px; - } - ` + .adf-search-widget-extra-width { + max-width: 500px; + } + ` ], encapsulation: ViewEncapsulation.None }) diff --git a/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts index 4e092d2752..c819fb6d04 100644 --- a/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts +++ b/lib/content-services/src/lib/search/components/search-filter-container/search-filter-container.component.ts @@ -22,7 +22,7 @@ import { SearchWidgetContainerComponent } from '../search-widget-container/searc import { SearchHeaderQueryBuilderService } from '../../services/search-header-query-builder.service'; import { SearchCategory } from '../../models/search-category.interface'; import { Subject } from 'rxjs'; -import { MatLegacyMenuTrigger as MatMenuTrigger } from '@angular/material/legacy-menu'; +import { MatMenuTrigger } from '@angular/material/menu'; import { FilterSearch } from '../../models/filter-search.interface'; @Component({ diff --git a/lib/content-services/src/lib/search/components/search-properties/search-properties.component.scss b/lib/content-services/src/lib/search/components/search-properties/search-properties.component.scss index 09b224fad6..81eb5adfe5 100644 --- a/lib/content-services/src/lib/search/components/search-properties/search-properties.component.scss +++ b/lib/content-services/src/lib/search/components/search-properties/search-properties.component.scss @@ -19,6 +19,7 @@ adf-search-properties { .adf-search-properties-file-size-operator, .adf-search-properties-file-size-unit { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-infix { border: 1px solid var(--adf-theme-mat-grey-color-a400); border-radius: 5px; @@ -26,12 +27,13 @@ adf-search-properties { } &.mat-focused { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-infix { outline: 2px auto -webkit-focus-ring-color; } } } - + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-underline { display: none; } @@ -42,8 +44,10 @@ adf-search-properties { adf-search-chip-autocomplete-input { display: block; - + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-outline { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-outline { &-start, &-end { @@ -62,13 +66,17 @@ adf-search-properties { } .mat-focused { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-outline { outline: 2px auto -webkit-focus-ring-color; } } .mat-form-field-appearance-outline { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-outline-thick { + /* TODO(mdc-migration): The following rule targets internal classes of form-field that may no longer apply for the MDC version. */ .mat-form-field-outline { &-start, &-end { diff --git a/lib/content-services/src/lib/search/components/search-properties/search-properties.component.spec.ts b/lib/content-services/src/lib/search/components/search-properties/search-properties.component.spec.ts index 6efd56acc6..923a1d46fd 100644 --- a/lib/content-services/src/lib/search/components/search-properties/search-properties.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-properties/search-properties.component.spec.ts @@ -19,7 +19,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { SearchPropertiesComponent } from './search-properties.component'; import { ContentTestingModule } from '../../../testing/content.testing.module'; import { By } from '@angular/platform-browser'; -import { MatLegacyOption as MatOption } from '@angular/material/legacy-core'; +import { MatOption } from '@angular/material/core'; import { SearchChipAutocompleteInputComponent, SearchQueryBuilderService } from '@alfresco/adf-content-services'; import { FileSizeUnit } from './file-size-unit.enum'; import { FileSizeOperator } from './file-size-operator.enum'; diff --git a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.ts b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.ts index 74e4668c2c..15f6dcd0c9 100644 --- a/lib/content-services/src/lib/search/components/search-radio/search-radio.component.ts +++ b/lib/content-services/src/lib/search/components/search-radio/search-radio.component.ts @@ -16,7 +16,7 @@ */ import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; -import { MatLegacyRadioChange as MatRadioChange } from '@angular/material/legacy-radio'; +import { MatRadioChange } from '@angular/material/radio'; import { SearchWidget } from '../../models/search-widget.interface'; import { SearchWidgetSettings } from '../../models/search-widget-settings.interface'; diff --git a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.html b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.html index 8de1e24d98..bf615c86ea 100644 --- a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.html +++ b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.html @@ -1,12 +1,10 @@ + data-automation-id="slider-range" #ngSlider>
diff --git a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.spec.ts b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.spec.ts index 63ee37fbcd..483fc56d63 100644 --- a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.spec.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { MatLegacySliderChange as MatSliderChange } from '@angular/material/legacy-slider'; +import { MatSliderChange } from '@angular/material/slider'; import { SearchSliderComponent } from './search-slider.component'; import { ContentTestingModule } from '../../../testing/content.testing.module'; import { ComponentFixture, TestBed } from '@angular/core/testing'; diff --git a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.ts b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.ts index 255b300437..26085e05a8 100644 --- a/lib/content-services/src/lib/search/components/search-slider/search-slider.component.ts +++ b/lib/content-services/src/lib/search/components/search-slider/search-slider.component.ts @@ -19,7 +19,7 @@ import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core'; import { SearchWidget } from '../../models/search-widget.interface'; import { SearchWidgetSettings } from '../../models/search-widget-settings.interface'; import { SearchQueryBuilderService } from '../../services/search-query-builder.service'; -import { MatLegacySliderChange as MatSliderChange } from '@angular/material/legacy-slider'; +import { MatSliderChange } from '@angular/material/slider'; import { Subject } from 'rxjs'; @Component({ diff --git a/lib/content-services/src/lib/tag/tag-list.component.html b/lib/content-services/src/lib/tag/tag-list.component.html index 4a23bc3c12..03d7772a11 100644 --- a/lib/content-services/src/lib/tag/tag-list.component.html +++ b/lib/content-services/src/lib/tag/tag-list.component.html @@ -1,10 +1,10 @@ - +
- + {{currentEntry.entry.tag}} - +
-
+
- + {{ 'ADF_PROCESS_LIST.DETAILS.BUTTON.CANCEL' | translate }}
- + + diff --git a/lib/process-services/src/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.html b/lib/process-services/src/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.html index 2fec2fb6bf..1149c07fd1 100644 --- a/lib/process-services/src/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.html +++ b/lib/process-services/src/lib/process-list/components/process-instance-tasks/process-instance-tasks.component.html @@ -6,10 +6,10 @@ - + {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_ACTIVE'|translate }} - {{activeTasks?.length}} - + {{activeTasks?.length}} + - + {{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_COMPLETED'|translate }} - {{completedTasks?.length}} - + {{completedTasks?.length}} +