[ACS-5627] migrate to standalone components (#3339)

* standalone preview component

* remove deprecated routes

* remove preview routes

* standalone viewer

* toggle favorite

* edit offline

* fix tests

* toggle info drawer

* toggle join library

* toggle favorite library

* view node

* convert app toolbar module to standalone directives

* convert sidenav module to standalone

* convert search module to standalone

* shared link view

* shared files

* reduce module files

* files component

* files component cleanup

* cleanup directives module

* favorite libraries

* favorites component

* recent files component

* libraries component

* cleanup

* remove material module barrel

* open in app component

* cleanup modules

* migrate toolbar module to standalone

* split page layout module

* remove incorrect import

* remove incorrect import

* rule list

* folder rules module

* folder rules module

* backwards compatibility for ADW

* reduce core module usage
This commit is contained in:
Denys Vuika
2023-07-17 09:52:29 +01:00
committed by GitHub
parent 48a502b805
commit 9cf317dfbc
136 changed files with 986 additions and 915 deletions

View File

@@ -22,17 +22,18 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { SearchActionMenuComponent } from './search-action-menu/search-action-menu.component';
import { SearchLibrariesResultsComponent } from './search-libraries-results/search-libraries-results.component';
import { SearchResultsComponent } from './search-results/search-results.component';
import { SearchResultsRowComponent } from './search-results-row/search-results-row.component';
import { SearchInputComponent } from './search-input/search-input.component';
import { SearchInputControlComponent } from './search-input-control/search-input-control.component';
import { ContentModule } from '@alfresco/adf-content-services';
import { A11yModule } from '@angular/cdk/a11y';
@NgModule({
imports: [CommonModule, CoreModule.forChild(), ContentModule.forChild(), A11yModule],
declarations: [SearchInputComponent, SearchInputControlComponent],
exports: [SearchInputComponent, SearchInputControlComponent]
})
export class AppSearchInputModule {}
export const APP_SEARCH_DIRECTIVES = [
SearchActionMenuComponent,
SearchLibrariesResultsComponent,
SearchResultsComponent,
SearchResultsRowComponent,
SearchInputComponent,
SearchInputControlComponent
] as const;

View File

@@ -27,7 +27,6 @@ import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/sear
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { SearchActionMenuComponent } from './search-action-menu.component';
import { MatMenuModule } from '@angular/material/menu';
const mockSortingData: SearchSortingDefinition[] = [
{
@@ -53,8 +52,7 @@ describe('SearchActionMenuComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, MatMenuModule],
declarations: [SearchActionMenuComponent],
imports: [AppTestingModule, SearchActionMenuComponent],
providers: [SearchQueryBuilderService]
});

View File

@@ -25,8 +25,15 @@
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/search/models/search-sorting-definition.interface';
import { Component, OnInit, Output, ViewEncapsulation, EventEmitter } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatMenuModule, MatIconModule, MatButtonModule],
selector: 'aca-search-action-menu',
templateUrl: './search-action-menu.component.html',
encapsulation: ViewEncapsulation.None

View File

@@ -33,8 +33,7 @@ describe('SearchInputControlComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule],
declarations: [SearchInputControlComponent],
imports: [AppTestingModule, SearchInputControlComponent],
schemas: [NO_ERRORS_SCHEMA]
});

View File

@@ -24,8 +24,17 @@
import { Component, EventEmitter, Input, OnDestroy, Output, ViewEncapsulation, ViewChild, ElementRef } from '@angular/core';
import { Subject } from 'rxjs';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { FormsModule } from '@angular/forms';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatButtonModule, MatIconModule, MatFormFieldModule, MatInputModule, FormsModule],
selector: 'app-search-input-control',
templateUrl: './search-input-control.component.html',
styleUrls: ['./search-input-control.component.scss'],

View File

@@ -33,8 +33,6 @@ import { map } from 'rxjs/operators';
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { SearchNavigationService } from '../search-navigation.service';
import { BehaviorSubject, Subject } from 'rxjs';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatMenuModule } from '@angular/material/menu';
describe('SearchInputComponent', () => {
let fixture: ComponentFixture<SearchInputComponent>;
@@ -49,8 +47,7 @@ describe('SearchInputComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, MatSnackBarModule, MatMenuModule],
declarations: [SearchInputComponent],
imports: [AppTestingModule, SearchInputComponent],
providers: [
{
provide: AppService,

View File

@@ -27,7 +27,7 @@ import { AppStore, SearchByTermAction, SearchOptionIds, SearchOptionModel, Snack
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { AppConfigService } from '@alfresco/adf-core';
import { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
import { MatMenuTrigger } from '@angular/material/menu';
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
import { NavigationEnd, PRIMARY_OUTLET, Router, RouterEvent, UrlSegment, UrlSegmentGroup, UrlTree } from '@angular/router';
import { Store } from '@ngrx/store';
import { Subject } from 'rxjs';
@@ -35,8 +35,31 @@ import { filter, takeUntil } from 'rxjs/operators';
import { SearchInputControlComponent } from '../search-input-control/search-input-control.component';
import { SearchNavigationService } from '../search-navigation.service';
import { SearchLibrariesQueryBuilderService } from '../search-libraries-results/search-libraries-query-builder.service';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { A11yModule } from '@angular/cdk/a11y';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { FormsModule } from '@angular/forms';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
MatMenuModule,
MatButtonModule,
MatIconModule,
MatFormFieldModule,
MatInputModule,
A11yModule,
MatCheckboxModule,
FormsModule,
SearchInputControlComponent
],
selector: 'aca-search-input',
templateUrl: './search-input.component.html',
styleUrls: ['./search-input.component.scss'],

View File

@@ -13,7 +13,7 @@
<div class="main-content">
<div class="adf-search-results">
<div class="adf-search-results__content">
<mat-progress-bar *ngIf="isLoading" color="primary" mode="indeterminate"> </mat-progress-bar>
<mat-progress-bar *ngIf="isLoading" color="primary" mode="indeterminate"></mat-progress-bar>
<div class="adf-search-results__content-header content" *ngIf="data?.list.entries.length">
<div class="content__side--left">
<div class="adf-search-results--info-text" *ngIf="totalResults !== 1">

View File

@@ -24,15 +24,11 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { DataTableComponent } from '@alfresco/adf-core';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { SearchLibrariesResultsComponent } from './search-libraries-results.component';
import { SearchLibrariesQueryBuilderService } from './search-libraries-query-builder.service';
import { DocumentListComponent } from '@alfresco/adf-content-services';
import { BehaviorSubject, Subject } from 'rxjs';
import { AppService } from '@alfresco/aca-shared';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
describe('SearchLibrariesResultsComponent', () => {
let component: SearchLibrariesResultsComponent;
@@ -46,8 +42,7 @@ describe('SearchLibrariesResultsComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, DocumentListComponent, SearchLibrariesResultsComponent],
imports: [AppTestingModule, SearchLibrariesResultsComponent],
schemas: [NO_ERRORS_SCHEMA],
providers: [
{

View File

@@ -27,10 +27,48 @@ import { NodePaging, Pagination, SiteEntry } from '@alfresco/js-api';
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { SearchLibrariesQueryBuilderService } from './search-libraries-query-builder.service';
import { AppHookService, AppService, PageComponent } from '@alfresco/aca-shared';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import {
AppHookService,
AppService,
ContextActionsDirective,
InfoDrawerComponent,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PaginationDirective,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { DocumentListPresetRef, ExtensionsModule } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { SearchInputComponent } from '../search-input/search-input.component';
import { DataTableModule, PaginationModule, ToolbarModule } from '@alfresco/adf-core';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { DocumentListModule } from '@alfresco/adf-content-services';
import { DocumentListDirective } from '../../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
SearchInputComponent,
ToolbarModule,
MatProgressBarModule,
DocumentListModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
InfoDrawerComponent,
ContextActionsDirective,
DocumentListDirective,
ToolbarActionComponent,
PaginationDirective,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PageLayoutComponent
],
selector: 'aca-search-results',
templateUrl: './search-libraries-results.component.html',
styleUrls: ['./search-libraries-results.component.scss'],

View File

@@ -23,10 +23,9 @@
*/
import { TestBed } from '@angular/core/testing';
import { CoreModule } from '@alfresco/adf-core';
import { TranslateModule } from '@ngx-translate/core';
import { SearchNavigationService } from './search-navigation.service';
import { Router } from '@angular/router';
import { AppTestingModule } from '../../testing/app-testing.module';
describe('SearchNavigationService', () => {
let service: SearchNavigationService;
@@ -34,7 +33,7 @@ describe('SearchNavigationService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), CoreModule.forRoot()]
imports: [AppTestingModule]
});
service = TestBed.inject(SearchNavigationService);
router = TestBed.inject(Router);

View File

@@ -31,8 +31,13 @@ import { NodesApiService } from '@alfresco/adf-content-services';
import { takeUntil } from 'rxjs/operators';
import { Router } from '@angular/router';
import { AcaFileAutoDownloadService } from '@alfresco/aca-shared';
import { CommonModule } from '@angular/common';
import { LocationLinkComponent } from '../../common/location-link/location-link.component';
import { MatDialogModule } from '@angular/material/dialog';
@Component({
standalone: true,
imports: [CommonModule, LocationLinkComponent, MatDialogModule],
selector: 'aca-search-results-row',
templateUrl: './search-results-row.component.html',
styleUrls: ['./search-results-row.component.scss'],

View File

@@ -24,9 +24,7 @@
import { NodeEntry } from '@alfresco/js-api';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreModule } from '@alfresco/adf-core';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { AppSearchResultsModule } from '../search-results.module';
import { SearchResultsRowComponent } from './search-results-row.component';
describe('SearchResultsRowComponent', () => {
@@ -44,7 +42,7 @@ describe('SearchResultsRowComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreModule, AppTestingModule, AppSearchResultsModule]
imports: [AppTestingModule, SearchResultsRowComponent]
});
fixture = TestBed.createComponent(SearchResultsRowComponent);

View File

@@ -1,64 +0,0 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { ContentModule } from '@alfresco/adf-content-services';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { LockedByComponent, PageLayoutModule } from '@alfresco/aca-shared';
import { SearchResultsComponent } from './search-results/search-results.component';
import { SearchResultsRowComponent } from './search-results-row/search-results-row.component';
import { SearchLibrariesResultsComponent } from './search-libraries-results/search-libraries-results.component';
import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module';
import { AppToolbarModule } from '../toolbar/toolbar.module';
import { DirectivesModule } from '../../directives/directives.module';
import { SearchActionMenuComponent } from './search-action-menu/search-action-menu.component';
import { AppSearchInputModule } from './search-input.module';
import { LocationLinkComponent } from '../common/location-link/location-link.component';
import { ThumbnailColumnComponent } from '../dl-custom-components/thumbnail-column/thumbnail-column.component';
import { TagsColumnComponent } from '../dl-custom-components/tags-column/tags-column.component';
import { ContextMenuComponent } from '../context-menu/context-menu.component';
@NgModule({
imports: [
CommonModule,
CoreModule.forChild(),
ContentModule.forChild(),
ExtensionsModule,
AppInfoDrawerModule,
AppToolbarModule,
DirectivesModule,
PageLayoutModule,
ContextMenuComponent,
LockedByComponent,
AppSearchInputModule,
LocationLinkComponent,
ThumbnailColumnComponent,
TagsColumnComponent
],
declarations: [SearchResultsComponent, SearchLibrariesResultsComponent, SearchResultsRowComponent, SearchActionMenuComponent],
exports: [SearchResultsComponent, SearchLibrariesResultsComponent, SearchResultsRowComponent, SearchActionMenuComponent]
})
export class AppSearchResultsModule {}

View File

@@ -24,8 +24,7 @@
import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
import { SearchResultsComponent } from './search-results.component';
import { AppSearchResultsModule } from '../search-results.module';
import { AppConfigService, CoreModule, TranslationService } from '@alfresco/adf-core';
import { AppConfigService, TranslationService } from '@alfresco/adf-core';
import { Store } from '@ngrx/store';
import { NavigateToFolder, SnackbarErrorAction } from '@alfresco/aca-shared/store';
import { Pagination, SearchRequest } from '@alfresco/js-api';
@@ -49,7 +48,7 @@ describe('SearchComponent', () => {
beforeEach(() => {
params = new BehaviorSubject({ q: 'TYPE: "cm:folder" AND %28=cm: name: email OR cm: name: budget%29' });
TestBed.configureTestingModule({
imports: [AppTestingModule, CoreModule.forRoot(), AppSearchResultsModule],
imports: [AppTestingModule, SearchResultsComponent],
providers: [
{
provide: AppService,

View File

@@ -25,7 +25,7 @@
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { MinimalNodeEntity, Pagination, ResultSetPaging } from '@alfresco/js-api';
import { ActivatedRoute, Params } from '@angular/router';
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { AlfrescoViewerModule, DocumentListModule, SearchModule, SearchQueryBuilderService } from '@alfresco/adf-content-services';
import {
infoDrawerPreview,
NavigateToFolder,
@@ -35,13 +35,63 @@ import {
ShowInfoDrawerPreviewAction,
SnackbarErrorAction
} from '@alfresco/aca-shared/store';
import { TranslationService } from '@alfresco/adf-core';
import { DataTableModule, PaginationModule, ToolbarModule, TranslationService, ViewerModule } from '@alfresco/adf-core';
import { combineLatest } from 'rxjs';
import { PageComponent } from '@alfresco/aca-shared';
import {
ContextActionsDirective,
InfoDrawerComponent,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PaginationDirective,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/search/models/search-sorting-definition.interface';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { SearchInputComponent } from '../search-input/search-input.component';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatDividerModule } from '@angular/material/divider';
import { MatButtonModule } from '@angular/material/button';
import { DocumentListDirective } from '../../../directives/document-list.directive';
import { ThumbnailColumnComponent } from '../../dl-custom-components/thumbnail-column/thumbnail-column.component';
import { SearchActionMenuComponent } from '../search-action-menu/search-action-menu.component';
import { TagsColumnComponent } from '../../dl-custom-components/tags-column/tags-column.component';
import { MatIconModule } from '@angular/material/icon';
import { SearchResultsRowComponent } from '../search-results-row/search-results-row.component';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
SearchInputComponent,
ToolbarModule,
MatProgressBarModule,
SearchModule,
MatDividerModule,
MatButtonModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
DataTableModule,
ThumbnailColumnComponent,
SearchActionMenuComponent,
TagsColumnComponent,
PaginationModule,
AlfrescoViewerModule,
MatIconModule,
InfoDrawerComponent,
SearchResultsRowComponent,
PaginationDirective,
ViewerModule,
ToolbarActionComponent,
PageLayoutHeaderComponent,
PageLayoutContentComponent,
PageLayoutComponent
],
selector: 'aca-search-results',
templateUrl: './search-results.component.html',
encapsulation: ViewEncapsulation.None,