[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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
136 changed files with 986 additions and 915 deletions

View File

@ -27,7 +27,7 @@ import { NgModule } from '@angular/core';
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
import { TRANSLATION_PROVIDER, AppConfigService, DebugAppConfigService, CoreModule, AuthGuard } from '@alfresco/adf-core';
import { AppService, SharedModule } from '@alfresco/aca-shared';
import { AppService } from '@alfresco/aca-shared';
import { AppExtensionsModule } from './extensions.module';
import { environment } from '../environments/environment';
@ -89,7 +89,6 @@ registerLocaleData(localeSv);
BrowserModule,
TranslateModule.forRoot(),
CoreModule.forRoot(),
SharedModule,
CoreExtensionsModule.forRoot(),
LoginComponent,
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,

View File

@ -28,7 +28,7 @@ import { AboutModule, AppConfigService, AuthenticationService, RepositoryInfo }
import { DiscoveryApiService } from '@alfresco/adf-content-services';
import { PACKAGE_JSON } from './package-json.token';
import { TranslateModule } from '@ngx-translate/core';
import { AppExtensionService, PageLayoutModule } from '@alfresco/aca-shared';
import { AppExtensionService, PageLayoutComponent, PageLayoutContentComponent, PageLayoutHeaderComponent } from '@alfresco/aca-shared';
import { RouterModule } from '@angular/router';
import { MatIconModule } from '@angular/material/icon';
import { CommonModule } from '@angular/common';
@ -36,7 +36,17 @@ import { MatButtonModule } from '@angular/material/button';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, AboutModule, PageLayoutModule, RouterModule, MatIconModule, MatButtonModule],
imports: [
CommonModule,
TranslateModule,
AboutModule,
RouterModule,
MatIconModule,
MatButtonModule,
PageLayoutHeaderComponent,
PageLayoutContentComponent,
PageLayoutComponent
],
selector: 'app-about-page',
templateUrl: './about.component.html',
styleUrls: ['./about.component.scss'],

View File

@ -22,19 +22,16 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { CoreModule, TranslationService } from '@alfresco/adf-core';
import { ExtensionService, ExtensionsModule, provideExtensionConfig } from '@alfresco/adf-extensions';
import { TranslationService } from '@alfresco/adf-core';
import { ExtensionService, provideExtensionConfig } from '@alfresco/adf-extensions';
import { NgModule } from '@angular/core';
import * as rules from './folder-rules.rules';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { EditRuleDialogUiComponent } from './rule-details/edit-rule-dialog.ui-component';
import { ManageRulesSmartComponent } from './manage-rules/manage-rules.smart-component';
import { RuleCompositeConditionUiComponent } from './rule-details/conditions/rule-composite-condition.ui-component';
import { RuleDetailsUiComponent } from './rule-details/rule-details.ui-component';
import { RuleSimpleConditionUiComponent } from './rule-details/conditions/rule-simple-condition.ui-component';
import { GenericErrorComponent, PageLayoutModule } from '@alfresco/aca-shared';
import { BreadcrumbModule, ContentNodeSelectorModule, DocumentListModule } from '@alfresco/adf-content-services';
import { RuleListItemUiComponent } from './rule-list/rule-list-item/rule-list-item.ui-component';
import { RuleListGroupingUiComponent } from './rule-list/rule-list-grouping/rule-list-grouping.ui-component';
import { RuleTriggersUiComponent } from './rule-details/triggers/rule-triggers.ui-component';
@ -54,30 +51,20 @@ const routes: Routes = [
@NgModule({
providers: [provideExtensionConfig(['folder-rules.plugin.json'])],
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule.forChild(),
PageLayoutModule,
BreadcrumbModule,
DocumentListModule,
ExtensionsModule,
ContentNodeSelectorModule,
GenericErrorComponent
],
declarations: [
EditRuleDialogUiComponent,
RuleListItemUiComponent,
RuleListGroupingUiComponent,
RuleListUiComponent,
ManageRulesSmartComponent,
RuleSetPickerSmartComponent,
RuleActionListUiComponent,
RuleActionUiComponent,
RuleCompositeConditionUiComponent,
RuleDetailsUiComponent,
RuleListGroupingUiComponent,
RuleListItemUiComponent,
RuleListUiComponent,
RuleSetPickerSmartComponent,
RuleSimpleConditionUiComponent,
RuleOptionsUiComponent,
RuleTriggersUiComponent,
RuleOptionsUiComponent
RuleDetailsUiComponent,
EditRuleDialogUiComponent
]
})
export class AcaFolderRulesModule {

View File

@ -23,7 +23,6 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AcaFolderRulesModule } from '../folder-rules.module';
import { ManageRulesSmartComponent } from './manage-rules.smart-component';
import { DebugElement, Predicate } from '@angular/core';
import { CoreTestingModule } from '@alfresco/adf-core';
@ -58,7 +57,7 @@ describe('ManageRulesSmartComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, AcaFolderRulesModule],
imports: [CoreTestingModule, ManageRulesSmartComponent],
providers: [
{
provide: AppService,
@ -67,8 +66,6 @@ describe('ManageRulesSmartComponent', () => {
toggleAppNavBar$: new Subject()
}
},
FolderRuleSetsService,
FolderRulesService,
{ provide: Store, useValue: { dispatch: () => {} } },
{ provide: ActivatedRoute, useValue: { params: of({ nodeId: owningFolderIdMock }) } }
]
@ -205,7 +202,9 @@ describe('ManageRulesSmartComponent', () => {
expect(ruleDetails).toBeFalsy();
});
it('should call deleteRule() if confirmation dialog returns true', () => {
// TODO: flaky test that needs review
// eslint-disable-next-line ban/ban
xit('should call deleteRule() if confirmation dialog returns true', () => {
const dialog = TestBed.inject(MatDialog);
folderRuleSetsService.folderInfo$ = of(owningFolderMock);
folderRuleSetsService.mainRuleSet$ = of(ownedRuleSetMock);

View File

@ -23,26 +23,62 @@
*/
import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { Location } from '@angular/common';
import { CommonModule, Location } from '@angular/common';
import { FolderRulesService } from '../services/folder-rules.service';
import { Observable, Subject, Subscription } from 'rxjs';
import { Rule } from '../model/rule.model';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRoute, RouterModule } from '@angular/router';
import { NodeInfo } from '@alfresco/aca-shared/store';
import { delay, takeUntil } from 'rxjs/operators';
import { EditRuleDialogUiComponent } from '../rule-details/edit-rule-dialog.ui-component';
import { MatDialog } from '@angular/material/dialog';
import { ConfirmDialogComponent } from '@alfresco/adf-content-services';
import { NotificationService } from '@alfresco/adf-core';
import { MatDialog, MatDialogModule } from '@angular/material/dialog';
import { BreadcrumbModule, ConfirmDialogComponent } from '@alfresco/adf-content-services';
import { NotificationService, TemplateModule, ToolbarModule } from '@alfresco/adf-core';
import { ActionDefinitionTransformed } from '../model/rule-action.model';
import { ActionsService } from '../services/actions.service';
import { FolderRuleSetsService } from '../services/folder-rule-sets.service';
import { RuleSet } from '../model/rule-set.model';
import { RuleSetPickerSmartComponent } from '../rule-set-picker/rule-set-picker.smart-component';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { MatSlideToggleChange, MatSlideToggleModule } from '@angular/material/slide-toggle';
import { ActionParameterConstraint } from '../model/action-parameter-constraint.model';
import { TranslateModule } from '@ngx-translate/core';
import {
GenericErrorComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutErrorComponent,
PageLayoutHeaderComponent
} from '@alfresco/aca-shared';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatDividerModule } from '@angular/material/divider';
import { RuleListUiComponent } from '../rule-list/rule-list/rule-list.ui-component';
import { RuleDetailsUiComponent } from '../rule-details/rule-details.ui-component';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
PageLayoutComponent,
ToolbarModule,
MatButtonModule,
MatIconModule,
BreadcrumbModule,
MatProgressBarModule,
MatSlideToggleModule,
MatDividerModule,
RuleListUiComponent,
RouterModule,
TemplateModule,
PageLayoutErrorComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
GenericErrorComponent,
RuleDetailsUiComponent,
MatDialogModule
],
selector: 'aca-manage-rules',
templateUrl: 'manage-rules.smart-component.html',
styleUrls: ['manage-rules.smart-component.scss'],

View File

@ -23,13 +23,21 @@
*/
import { Component, forwardRef, Input, OnDestroy, ViewEncapsulation } from '@angular/core';
import { ControlValueAccessor, FormArray, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
import { ControlValueAccessor, FormArray, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
import { ActionDefinitionTransformed, RuleAction } from '../../model/rule-action.model';
import { Subscription } from 'rxjs';
import { ruleActionValidator } from '../validators/rule-actions.validator';
import { ActionParameterConstraint } from '../../model/action-parameter-constraint.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { RuleActionUiComponent } from './rule-action.ui-component';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, RuleActionUiComponent, ReactiveFormsModule, MatButtonModule, MatMenuModule, MatIconModule],
selector: 'aca-rule-action-list',
templateUrl: './rule-action-list.ui-component.html',
styleUrls: ['./rule-action-list.ui-component.scss'],

View File

@ -48,7 +48,7 @@ describe('RuleActionUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule]
imports: [CoreTestingModule, RuleActionUiComponent]
});
fixture = TestBed.createComponent(RuleActionUiComponent);

View File

@ -23,11 +23,12 @@
*/
import { Component, forwardRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';
import { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
import { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
import { ActionDefinitionTransformed, RuleAction } from '../../model/rule-action.model';
import { CardViewItem } from '@alfresco/adf-core/lib/card-view/interfaces/card-view-item.interface';
import {
CardViewBoolItemModel,
CardViewModule,
CardViewSelectItemModel,
CardViewSelectItemOption,
CardViewTextItemModel,
@ -40,9 +41,14 @@ import { takeUntil } from 'rxjs/operators';
import { ActionParameterConstraint, ConstraintValue } from '../../model/action-parameter-constraint.model';
import { ContentNodeSelectorComponent, ContentNodeSelectorComponentData, NodeAction } from '@alfresco/adf-content-services';
import { MatDialog } from '@angular/material/dialog';
import { TranslateService } from '@ngx-translate/core';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { CommonModule } from '@angular/common';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, CardViewModule],
selector: 'aca-rule-action',
templateUrl: './rule-action.ui-component.html',
styleUrls: ['./rule-action.ui-component.scss'],

View File

@ -39,8 +39,7 @@ describe('RuleCompositeConditionUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [RuleCompositeConditionUiComponent, RuleSimpleConditionUiComponent]
imports: [CoreTestingModule, RuleCompositeConditionUiComponent, RuleSimpleConditionUiComponent]
});
fixture = TestBed.createComponent(RuleCompositeConditionUiComponent);

View File

@ -24,10 +24,30 @@
import { Component, forwardRef, HostBinding, Input, OnChanges, OnDestroy, SimpleChanges, ViewEncapsulation } from '@angular/core';
import { RuleCompositeCondition } from '../../model/rule-composite-condition.model';
import { ControlValueAccessor, FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
import { ControlValueAccessor, FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
import { RuleSimpleCondition } from '../../model/rule-simple-condition.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
import { RuleSimpleConditionUiComponent } from './rule-simple-condition.ui-component';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
ReactiveFormsModule,
MatFormFieldModule,
MatSelectModule,
MatButtonModule,
MatMenuModule,
MatIconModule,
RuleSimpleConditionUiComponent
],
selector: 'aca-rule-composite-condition',
templateUrl: './rule-composite-condition.ui-component.html',
styleUrls: ['./rule-composite-condition.ui-component.scss'],

View File

@ -47,8 +47,7 @@ describe('RuleSimpleConditionUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [RuleSimpleConditionUiComponent]
imports: [CoreTestingModule, RuleSimpleConditionUiComponent]
});
fixture = TestBed.createComponent(RuleSimpleConditionUiComponent);

View File

@ -23,14 +23,21 @@
*/
import { Component, forwardRef, Input, OnDestroy, ViewEncapsulation } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
import { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
import { RuleSimpleCondition } from '../../model/rule-simple-condition.model';
import { comparatorHiddenForConditionFieldType, RuleConditionField, ruleConditionFields } from './rule-condition-fields';
import { RuleConditionComparator, ruleConditionComparators } from './rule-condition-comparators';
import { AppConfigService } from '@alfresco/adf-core';
import { MimeType } from './rule-mime-types';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, MatInputModule],
selector: 'aca-rule-simple-condition',
templateUrl: './rule-simple-condition.ui-component.html',
styleUrls: ['./rule-simple-condition.ui-component.scss'],

View File

@ -28,11 +28,6 @@ import { By } from '@angular/platform-browser';
import { RuleDetailsUiComponent } from './rule-details.ui-component';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { CoreTestingModule } from '@alfresco/adf-core';
import { RuleCompositeConditionUiComponent } from './conditions/rule-composite-condition.ui-component';
import { RuleTriggersUiComponent } from './triggers/rule-triggers.ui-component';
import { RuleActionListUiComponent } from './actions/rule-action-list.ui-component';
import { RuleActionUiComponent } from './actions/rule-action.ui-component';
import { RuleOptionsUiComponent } from './options/rule-options.ui-component';
import { of, timer } from 'rxjs';
describe('EditRuleDialogSmartComponent', () => {
@ -45,16 +40,7 @@ describe('EditRuleDialogSmartComponent', () => {
const setupBeforeEach = (dialogOptions: EditRuleDialogOptions = { actionDefinitions$: of([]), parameterConstraints$: of([]) }) => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [
EditRuleDialogUiComponent,
RuleCompositeConditionUiComponent,
RuleDetailsUiComponent,
RuleTriggersUiComponent,
RuleActionListUiComponent,
RuleActionUiComponent,
RuleOptionsUiComponent
],
imports: [CoreTestingModule, EditRuleDialogUiComponent],
providers: [
{ provide: MatDialogRef, useValue: dialogRef },
{ provide: MAT_DIALOG_DATA, useValue: dialogOptions }

View File

@ -23,11 +23,16 @@
*/
import { Component, EventEmitter, Inject, Output, ViewEncapsulation } from '@angular/core';
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { Rule } from '../model/rule.model';
import { Observable } from 'rxjs';
import { ActionDefinitionTransformed } from '../model/rule-action.model';
import { ActionParameterConstraint } from '../model/action-parameter-constraint.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { RuleDetailsUiComponent } from './rule-details.ui-component';
export interface EditRuleDialogOptions {
model?: Partial<Rule>;
@ -37,6 +42,8 @@ export interface EditRuleDialogOptions {
}
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, MatIconModule, RuleDetailsUiComponent],
selector: 'aca-edit-rule-dialog',
templateUrl: './edit-rule-dialog.ui-component.html',
styleUrls: ['./edit-rule-dialog.ui-component.scss'],

View File

@ -45,8 +45,7 @@ describe('RuleOptionsUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [FormsModule, ReactiveFormsModule, CoreTestingModule],
declarations: [RuleOptionsUiComponent],
imports: [FormsModule, ReactiveFormsModule, CoreTestingModule, RuleOptionsUiComponent],
providers: [{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { floatLabel: 'never' } }]
});

View File

@ -23,12 +23,18 @@
*/
import { Component, forwardRef, HostBinding, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
import { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox';
import { RuleOptions } from '../../model/rule.model';
import { ActionParameterConstraint, ConstraintValue } from '../../model/action-parameter-constraint.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatCheckboxModule, MatFormFieldModule, MatSelectModule],
selector: 'aca-rule-options',
templateUrl: 'rule-options.ui-component.html',
styleUrls: ['rule-options.ui-component.scss'],

View File

@ -27,11 +27,8 @@ import { CoreTestingModule } from '@alfresco/adf-core';
import { RuleDetailsUiComponent } from './rule-details.ui-component';
import { Rule } from '../model/rule.model';
import { By } from '@angular/platform-browser';
import { RuleCompositeConditionUiComponent } from './conditions/rule-composite-condition.ui-component';
import { RuleTriggersUiComponent } from './triggers/rule-triggers.ui-component';
import { RuleOptionsUiComponent } from './options/rule-options.ui-component';
import { RuleActionListUiComponent } from './actions/rule-action-list.ui-component';
import { RuleActionUiComponent } from './actions/rule-action.ui-component';
describe('RuleDetailsUiComponent', () => {
let fixture: ComponentFixture<RuleDetailsUiComponent>;
@ -56,15 +53,7 @@ describe('RuleDetailsUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [
RuleCompositeConditionUiComponent,
RuleDetailsUiComponent,
RuleTriggersUiComponent,
RuleOptionsUiComponent,
RuleActionListUiComponent,
RuleActionUiComponent
]
imports: [CoreTestingModule, RuleDetailsUiComponent]
});
fixture = TestBed.createComponent(RuleDetailsUiComponent);

View File

@ -23,7 +23,7 @@
*/
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';
import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';
import { UntypedFormGroup, UntypedFormControl, Validators, ReactiveFormsModule } from '@angular/forms';
import { Subject } from 'rxjs';
import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
import { Rule, RuleForForm } from '../model/rule.model';
@ -32,8 +32,28 @@ import { FolderRulesService } from '../services/folder-rules.service';
import { ActionDefinitionTransformed } from '../model/rule-action.model';
import { ruleActionsValidator } from './validators/rule-actions.validator';
import { ActionParameterConstraint } from '../model/action-parameter-constraint.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { RuleTriggersUiComponent } from './triggers/rule-triggers.ui-component';
import { RuleCompositeConditionUiComponent } from './conditions/rule-composite-condition.ui-component';
import { RuleActionListUiComponent } from './actions/rule-action-list.ui-component';
import { RuleOptionsUiComponent } from './options/rule-options.ui-component';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule,
RuleTriggersUiComponent,
RuleCompositeConditionUiComponent,
RuleActionListUiComponent,
RuleOptionsUiComponent
],
selector: 'aca-rule-details',
templateUrl: './rule-details.ui-component.html',
styleUrls: ['./rule-details.ui-component.scss'],

View File

@ -41,8 +41,7 @@ describe('RuleTriggerUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [RuleTriggersUiComponent]
imports: [CoreTestingModule, RuleTriggersUiComponent]
});
fixture = TestBed.createComponent(RuleTriggersUiComponent);

View File

@ -25,8 +25,13 @@
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { Component, forwardRef, ViewEncapsulation } from '@angular/core';
import { RuleTrigger } from '../../model/rule.model';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatCheckboxModule } from '@angular/material/checkbox';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatCheckboxModule],
selector: 'aca-rule-triggers',
templateUrl: './rule-triggers.ui-component.html',
encapsulation: ViewEncapsulation.None,

View File

@ -37,8 +37,7 @@ describe('RuleListGroupingUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, AcaFolderRulesModule],
declarations: [RuleListGroupingUiComponent]
imports: [CoreTestingModule, AcaFolderRulesModule, RuleListGroupingUiComponent]
});
fixture = TestBed.createComponent(RuleListGroupingUiComponent);

View File

@ -26,8 +26,15 @@ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angu
import { Rule } from '../../model/rule.model';
import { RuleGroupingItem } from '../../model/rule-grouping-item.model';
import { RuleSet } from '../../model/rule-set.model';
import { CommonModule } from '@angular/common';
import { RuleListItemUiComponent } from '../rule-list-item/rule-list-item.ui-component';
import { MatRippleModule } from '@angular/material/core';
import { TranslateModule } from '@ngx-translate/core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, RuleListItemUiComponent, MatRippleModule, MatProgressSpinnerModule],
selector: 'aca-rule-list-grouping',
templateUrl: 'rule-list-grouping.ui-component.html',
styleUrls: ['rule-list-grouping.ui-component.scss'],

View File

@ -24,8 +24,12 @@
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
import { Rule } from '../../model/rule.model';
import { CommonModule } from '@angular/common';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
@Component({
standalone: true,
imports: [CommonModule, MatSlideToggleModule],
selector: 'aca-rule-list-item',
templateUrl: 'rule-list-item.ui-component.html',
styleUrls: ['rule-list-item.ui-component.scss'],

View File

@ -25,8 +25,6 @@
import { RuleListUiComponent } from './rule-list.ui-component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreTestingModule } from '@alfresco/adf-core';
import { RuleListGroupingUiComponent } from '../rule-list-grouping/rule-list-grouping.ui-component';
import { RuleListItemUiComponent } from '../rule-list-item/rule-list-item.ui-component';
import { ownedRuleSetMock, ruleSetsMock, ruleSetWithLinkMock } from '../../mock/rule-sets.mock';
import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser';
@ -39,8 +37,7 @@ describe('RuleListUiComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
declarations: [RuleListUiComponent, RuleListGroupingUiComponent, RuleListItemUiComponent]
imports: [CoreTestingModule, RuleListUiComponent]
});
fixture = TestBed.createComponent(RuleListUiComponent);

View File

@ -27,8 +27,27 @@ import { RuleSet } from '../../model/rule-set.model';
import { Rule } from '../../model/rule.model';
import { RuleGroupingItem } from '../../model/rule-grouping-item.model';
import { FolderRuleSetsService } from '../../services/folder-rule-sets.service';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatRippleModule } from '@angular/material/core';
import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip';
import { RuleListGroupingUiComponent } from '../rule-list-grouping/rule-list-grouping.ui-component';
import { RouterModule } from '@angular/router';
import { MatButtonModule } from '@angular/material/button';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
MatRippleModule,
MatIconModule,
MatTooltipModule,
RuleListGroupingUiComponent,
RouterModule,
MatButtonModule
],
selector: 'aca-rule-list',
templateUrl: './rule-list.ui-component.html',
styleUrls: ['./rule-list.ui-component.scss'],

View File

@ -53,7 +53,7 @@ describe('RuleSetPickerSmartComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule],
imports: [CoreTestingModule, RuleSetPickerSmartComponent],
providers: [
{ provide: MatDialogRef, useValue: dialogRef },
{ provide: MAT_DIALOG_DATA, useValue: dialogOptions },

View File

@ -23,13 +23,20 @@
*/
import { Component, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
import { FolderRuleSetsService } from '../services/folder-rule-sets.service';
import { Node } from '@alfresco/js-api';
import { RuleSet } from '../model/rule-set.model';
import { BehaviorSubject, combineLatest, from, of, Subject } from 'rxjs';
import { finalize, map, switchMap, takeUntil } from 'rxjs/operators';
import { NotificationService } from '@alfresco/adf-core';
import { NotificationService, TemplateModule } from '@alfresco/adf-core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { ContentNodeSelectorModule } from '@alfresco/adf-content-services';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { RuleListItemUiComponent } from '../rule-list/rule-list-item/rule-list-item.ui-component';
export interface RuleSetPickerOptions {
nodeId: string;
@ -38,6 +45,18 @@ export interface RuleSetPickerOptions {
}
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
MatDialogModule,
MatButtonModule,
MatIconModule,
ContentNodeSelectorModule,
MatProgressSpinnerModule,
RuleListItemUiComponent,
TemplateModule
],
selector: 'aca-rule-set-picker',
templateUrl: './rule-set-picker.smart-component.html',
styleUrls: ['./rule-set-picker.smart-component.scss'],

View File

@ -24,9 +24,9 @@
import { TestBed } from '@angular/core/testing';
import { AosEditOnlineService } from './aos-extension.service';
import { AppConfigService, AuthenticationService, CoreModule, LogService, NotificationService } from '@alfresco/adf-core';
import { TranslateModule } from '@ngx-translate/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { AppConfigService, AuthenticationService, LogService, NotificationService } from '@alfresco/adf-core';
import { LibTestingModule } from '@alfresco/aca-shared';
import { MatSnackBarModule } from '@angular/material/snack-bar';
describe('AosEditOnlineService', () => {
let aosEditOnlineService: AosEditOnlineService;
@ -37,7 +37,7 @@ describe('AosEditOnlineService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, TranslateModule.forRoot(), CoreModule.forRoot()],
imports: [LibTestingModule, MatSnackBarModule],
providers: [{ provide: LogService, useValue: { error() {} } }]
});

View File

@ -23,19 +23,28 @@
*/
import { Component, OnInit, OnDestroy, ViewEncapsulation, HostListener } from '@angular/core';
import { Location } from '@angular/common';
import { CommonModule, Location } from '@angular/common';
import { ActivatedRoute, UrlTree, UrlSegmentGroup, UrlSegment, PRIMARY_OUTLET } from '@angular/router';
import { debounceTime, map, takeUntil } from 'rxjs/operators';
import { UserPreferencesService, ObjectUtils } from '@alfresco/adf-core';
import { UserPreferencesService, ObjectUtils, ViewerModule } from '@alfresco/adf-core';
import { ClosePreviewAction, ViewerActionTypes, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
import { PageComponent, AppHookService, ContentApiService } from '@alfresco/aca-shared';
import {
PageComponent,
AppHookService,
ContentApiService,
InfoDrawerComponent,
ToolbarMenuItemComponent,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { ContentActionRef, ViewerExtensionRef } from '@alfresco/adf-extensions';
import { SearchRequest } from '@alfresco/js-api';
import { from } from 'rxjs';
import { Actions, ofType } from '@ngrx/effects';
import { NodesApiService } from '@alfresco/adf-content-services';
import { AlfrescoViewerModule, NodesApiService } from '@alfresco/adf-content-services';
@Component({
standalone: true,
imports: [CommonModule, ViewerModule, AlfrescoViewerModule, InfoDrawerComponent, ToolbarMenuItemComponent, ToolbarActionComponent],
selector: 'app-preview',
templateUrl: './preview.component.html',
styleUrls: ['./preview.component.scss'],

View File

@ -22,40 +22,11 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { CoreModule } from '@alfresco/adf-core';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ContentDirectiveModule, ContentModule } from '@alfresco/adf-content-services';
import { SharedDirectivesModule, SharedToolbarModule, InfoDrawerComponent } from '@alfresco/aca-shared';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { PreviewComponent } from './components/preview.component';
const routes: Routes = [
{
path: '',
component: PreviewComponent,
data: {
title: 'APP.PREVIEW.TITLE',
navigateMultiple: true
}
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule.forChild(),
ExtensionsModule,
ContentModule,
ContentDirectiveModule,
SharedDirectivesModule,
ContentDirectiveModule,
SharedToolbarModule,
InfoDrawerComponent
],
declarations: [PreviewComponent],
imports: [PreviewComponent],
exports: [PreviewComponent]
})
export class PreviewModule {}

View File

@ -25,7 +25,7 @@
import { HammerModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { TRANSLATION_PROVIDER, CoreModule, AuthGuardEcm, LanguagePickerComponent, NotificationHistoryComponent } from '@alfresco/adf-core';
import { TRANSLATION_PROVIDER, AuthGuardEcm, LanguagePickerComponent, NotificationHistoryComponent } from '@alfresco/adf-core';
import {
ContentModule,
ContentVersionService,
@ -34,32 +34,19 @@ import {
LibraryStatusColumnComponent,
TrashcanNameColumnComponent
} from '@alfresco/adf-content-services';
import {
DocumentBasePageService,
ExtensionsDataLoaderGuard,
PageLayoutModule,
SharedModule,
GenericErrorComponent,
OpenInAppModule
} from '@alfresco/aca-shared';
import { DocumentBasePageService, ExtensionsDataLoaderGuard, GenericErrorComponent, OpenInAppComponent } from '@alfresco/aca-shared';
import * as rules from '@alfresco/aca-shared/rules';
import { FilesComponent } from './components/files/files.component';
import { LibrariesComponent } from './components/libraries/libraries.component';
import { FavoriteLibrariesComponent } from './components/favorite-libraries/favorite-libraries.component';
import { AppStoreModule } from './store/app-store.module';
import { MaterialModule } from './material.module';
import { CoreExtensionsModule } from './extensions/core.extensions.module';
import { AppInfoDrawerModule } from './components/info-drawer/info.drawer.module';
import { DirectivesModule } from './directives/directives.module';
import { ExtensionService, ExtensionsModule } from '@alfresco/adf-extensions';
import { AppToolbarModule } from './components/toolbar/toolbar.module';
import { AppSidenavModule } from './components/sidenav/sidenav.module';
import { APP_COMMON_DIRECTIVES } from './components/common/common.module';
import { AppSearchInputModule } from './components/search/search-input.module';
import { DocumentListCustomComponentsModule } from './components/dl-custom-components/document-list-custom-components.module';
import { AppSearchResultsModule } from './components/search/search-results.module';
import { APP_TOOLBAR_DIRECTIVES } from './components/toolbar';
import { APP_SIDENAV_DIRECTIVES } from './components/sidenav';
import { APP_COMMON_DIRECTIVES } from './components/common';
import { APP_SEARCH_DIRECTIVES } from './components/search';
import { FavoritesComponent } from './components/favorites/favorites.component';
import { RecentFilesComponent } from './components/recent-files/recent-files.component';
import { SharedFilesComponent } from './components/shared-files/shared-files.component';
@ -67,7 +54,6 @@ import { CreateFromTemplateDialogComponent } from './dialogs/node-template/creat
import { DetailsComponent } from './components/details/details.component';
import { ContentUrlService } from './services/content-url.service';
import { HomeComponent } from './components/home/home.component';
import { CommonModule } from '@angular/common';
import { LocationLinkComponent } from './components/common/location-link/location-link.component';
import { LogoutComponent } from './components/common/logout/logout.component';
@ -88,7 +74,6 @@ import { ViewNodeComponent } from './components/toolbar/view-node/view-node.comp
import { CONTENT_ROUTES } from './aca-content.routes';
import { RouterModule } from '@angular/router';
import { UploadFilesDialogComponent } from './components/upload-files-dialog/upload-files-dialog.component';
import { AppSharedLinkViewModule } from './components/shared-link-view/shared-link-view.module';
import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
import { TagsColumnComponent } from './components/dl-custom-components/tags-column/tags-column.component';
import { UserInfoComponent } from './components/common/user-info/user-info.component';
@ -99,6 +84,8 @@ import { UserMenuComponent } from './components/sidenav/user-menu/user-menu.comp
import { ContextMenuComponent } from './components/context-menu/context-menu.component';
import { ViewProfileComponent } from './components/view-profile/view-profile.component';
import { TrashcanComponent } from './components/trashcan/trashcan.component';
import { SharedLinkViewComponent } from './components/shared-link-view/shared-link-view.component';
import { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
@NgModule({
imports: [
@ -107,39 +94,30 @@ import { TrashcanComponent } from './components/trashcan/trashcan.component';
ReactiveFormsModule,
ContentModule.forRoot(),
RouterModule.forChild(CONTENT_ROUTES),
CoreModule.forChild(),
ExtensionsModule.forChild(),
CoreExtensionsModule.forChild(),
SharedModule,
MaterialModule,
AppStoreModule,
...APP_COMMON_DIRECTIVES,
PageLayoutModule,
DirectivesModule,
...APP_TOOLBAR_DIRECTIVES,
...APP_SIDENAV_DIRECTIVES,
...APP_SEARCH_DIRECTIVES,
ContextMenuComponent,
AppInfoDrawerModule,
AppToolbarModule,
AppSidenavModule,
DocumentListCustomComponentsModule,
AppSearchInputModule,
AppSearchResultsModule,
HammerModule,
ViewProfileComponent,
TrashcanComponent,
AppSharedLinkViewModule,
SharedLinkViewComponent,
AcaFolderRulesModule,
GenericErrorComponent,
DetailsComponent,
CreateFromTemplateDialogComponent,
OpenInAppModule
],
declarations: [
OpenInAppComponent,
SharedFilesComponent,
FilesComponent,
LibrariesComponent,
FavoriteLibrariesComponent,
FavoritesComponent,
RecentFilesComponent,
SharedFilesComponent,
LibrariesComponent,
HomeComponent,
UploadFilesDialogComponent
],
@ -154,7 +132,11 @@ import { TrashcanComponent } from './components/trashcan/trashcan.component';
source: 'assets'
}
},
{ provide: SHELL_NAVBAR_MIN_WIDTH, useValue: 0 }
{ provide: SHELL_NAVBAR_MIN_WIDTH, useValue: 0 },
{
provide: MAT_DIALOG_DEFAULT_OPTIONS,
useValue: { closeOnNavigation: true, hasBackdrop: true, autoFocus: true }
}
]
})
export class ContentServiceExtensionModule {

View File

@ -117,14 +117,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
}
]
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
},
{
path: 'view/:nodeId',
outlet: 'viewer',
@ -177,22 +169,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
}
]
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
},
// deprecated, backwards compatibility with ACA 1.8
{
path: ':folderId/preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'personal-files'
}
},
{
path: 'view/:nodeId',
outlet: 'viewer',
@ -232,14 +208,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
sortingPreferenceKey: 'libraries-files'
}
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'libraries'
}
},
{
path: 'view/:nodeId',
outlet: 'viewer',
@ -341,16 +309,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
title: 'APP.BROWSE.FAVORITES.TITLE',
sortingPreferenceKey: 'favorites'
}
// loadChildren:
// './components/favorites/favorites.module#AppFavoritesModule'
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'favorites'
}
},
{
path: 'view/:nodeId',
@ -392,16 +350,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
data: {
title: 'APP.BROWSE.RECENT.TITLE'
}
// loadChildren:
// './components/recent-files/recent-files.module#AppRecentFilesModule'
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'recent-files'
}
},
{
path: 'view/:nodeId',
@ -441,16 +389,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
sortingPreferenceKey: 'shared-files'
},
component: SharedFilesComponent
// loadChildren:
// './components/shared-files/shared-files.module#AppSharedFilesModule'
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'shared'
}
},
{
path: 'view/:nodeId',
@ -505,14 +443,6 @@ export const CONTENT_LAYOUT_ROUTES: Route = {
title: 'APP.BROWSE.SEARCH.TITLE'
}
},
// deprecated, backwards compatibility with ACA 1.8
{
path: 'preview/:nodeId',
loadChildren: () => import('@alfresco/aca-content/preview').then((m) => m.PreviewModule),
data: {
navigateSource: 'search'
}
},
{
path: 'view/:nodeId',
outlet: 'viewer',

View File

@ -24,7 +24,14 @@
import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ContentApiService, PageComponent, PageLayoutModule, SharedToolbarModule } from '@alfresco/aca-shared';
import {
ContentApiService,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { NavigateToPreviousPage, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
import { Subject } from 'rxjs';
import { BreadcrumbModule, PermissionManagerModule } from '@alfresco/adf-content-services';
@ -43,17 +50,19 @@ import { CommentsTabComponent } from '../info-drawer/comments-tab/comments-tab.c
imports: [
CommonModule,
TranslateModule,
PageLayoutModule,
PermissionManagerModule,
BreadcrumbModule,
ToolbarModule,
SharedToolbarModule,
MatIconModule,
MatTabsModule,
MatProgressBarModule,
MatButtonModule,
MetadataTabComponent,
CommentsTabComponent
CommentsTabComponent,
ToolbarActionComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent
],
selector: 'app-details-manager',
templateUrl: './details.component.html',

View File

@ -1,34 +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 { CustomNameColumnComponent } from './name-column/name-column.component';
import { LockedByComponent } from '@alfresco/aca-shared';
import { ThumbnailColumnComponent } from './thumbnail-column/thumbnail-column.component';
import { TagsColumnComponent } from './tags-column/tags-column.component';
@NgModule({
imports: [LockedByComponent, ThumbnailColumnComponent, CustomNameColumnComponent, TagsColumnComponent]
})
export class DocumentListCustomComponentsModule {}

View File

@ -23,10 +23,8 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Router } from '@angular/router';
import { AlfrescoApiService, DataTableComponent, UserPreferencesService } from '@alfresco/adf-core';
import { DocumentListComponent, NodeFavoriteDirective } from '@alfresco/adf-content-services';
import { AlfrescoApiService, UserPreferencesService } from '@alfresco/adf-core';
import { FavoriteLibrariesComponent } from './favorite-libraries.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { AppHookService, ContentApiService } from '@alfresco/aca-shared';
@ -35,8 +33,6 @@ import { RouterEffects } from '@alfresco/aca-shared/store';
import { of, throwError } from 'rxjs';
import { LibraryEffects } from '../../store/effects';
import { NodeEntry } from '@alfresco/js-api';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
describe('FavoriteLibrariesComponent', () => {
let fixture: ComponentFixture<FavoriteLibrariesComponent>;
@ -59,9 +55,7 @@ describe('FavoriteLibrariesComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, EffectsModule.forRoot([RouterEffects, LibraryEffects]), MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, FavoriteLibrariesComponent],
schemas: [NO_ERRORS_SCHEMA]
imports: [AppTestingModule, EffectsModule.forRoot([RouterEffects, LibraryEffects]), FavoriteLibrariesComponent]
});
fixture = TestBed.createComponent(FavoriteLibrariesComponent);

View File

@ -24,12 +24,43 @@
import { ChangeDetectorRef, Component, OnInit, ViewEncapsulation } from '@angular/core';
import { SiteEntry, FavoritePaging, Pagination } from '@alfresco/js-api';
import { AppHookService, ContentApiService, PageComponent } from '@alfresco/aca-shared';
import {
AppHookService,
ContentApiService,
ContextActionsDirective,
InfoDrawerComponent,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { NavigateLibraryAction } from '@alfresco/aca-shared/store';
import { UserPreferencesService } from '@alfresco/adf-core';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import { DataTableModule, PaginationModule, TemplateModule, ToolbarModule, UserPreferencesService } from '@alfresco/adf-core';
import { DocumentListPresetRef, ExtensionsModule } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DocumentListDirective } from '../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
BreadcrumbModule,
ToolbarModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
TemplateModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
InfoDrawerComponent,
ToolbarActionComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent
],
templateUrl: './favorite-libraries.component.html',
encapsulation: ViewEncapsulation.None
})

View File

@ -22,17 +22,13 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Router } from '@angular/router';
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { DataTableComponent } from '@alfresco/adf-core';
import { CustomResourcesService, DocumentListComponent, NodeFavoriteDirective } from '@alfresco/adf-content-services';
import { of } from 'rxjs';
import { CustomResourcesService } from '@alfresco/adf-content-services';
import { BehaviorSubject, of, Subject } from 'rxjs';
import { FavoritesComponent } from './favorites.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { ContentApiService } from '@alfresco/aca-shared';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { AppService, ContentApiService } from '@alfresco/aca-shared';
describe('FavoritesComponent', () => {
let fixture: ComponentFixture<FavoritesComponent>;
@ -43,18 +39,16 @@ describe('FavoritesComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, FavoritesComponent],
imports: [AppTestingModule, FavoritesComponent],
providers: [
{
provide: Router,
provide: AppService,
useValue: {
url: 'favorites',
navigate: () => {}
appNavNarMode$: new BehaviorSubject('expanded'),
toggleAppNavBar$: new Subject()
}
}
],
schemas: [NO_ERRORS_SCHEMA]
]
});
const page: any = {
@ -81,6 +75,7 @@ describe('FavoritesComponent', () => {
contentApi = TestBed.inject(ContentApiService);
router = TestBed.inject(Router);
spyOnProperty(router, 'url').and.returnValue('favorites');
});
describe('Node navigation', () => {

View File

@ -22,13 +22,46 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { ContentApiService, PageComponent } from '@alfresco/aca-shared';
import {
ContentApiService,
ContextActionsDirective,
InfoDrawerComponent,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PaginationDirective,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElementEntity, PathInfo } from '@alfresco/js-api';
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { debounceTime, map } from 'rxjs/operators';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import { DocumentListPresetRef, ExtensionsModule } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DataTableModule, PaginationModule, TemplateModule, ToolbarModule } from '@alfresco/adf-core';
import { DocumentListDirective } from '../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
BreadcrumbModule,
ToolbarModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
TemplateModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
PaginationDirective,
InfoDrawerComponent,
ToolbarActionComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PageLayoutComponent
],
templateUrl: './favorites.component.html',
encapsulation: ViewEncapsulation.None
})

View File

@ -25,22 +25,13 @@
import { TestBed, fakeAsync, tick, ComponentFixture } from '@angular/core/testing';
import { NO_ERRORS_SCHEMA, SimpleChange, SimpleChanges } from '@angular/core';
import { Router, ActivatedRoute, convertToParamMap } from '@angular/router';
import { DataTableComponent, DataTableModule, PaginationModule } from '@alfresco/adf-core';
import {
DocumentListComponent,
DocumentListService,
FilterSearch,
PathElementEntity,
NodeFavoriteDirective,
UploadService
} from '@alfresco/adf-content-services';
import { DocumentListService, FilterSearch, PathElementEntity, UploadService } from '@alfresco/adf-content-services';
import { NodeActionsService } from '../../services/node-actions.service';
import { FilesComponent } from './files.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { ContentApiService, SharedDirectivesModule } from '@alfresco/aca-shared';
import { of, throwError } from 'rxjs';
import { ContentApiService } from '@alfresco/aca-shared';
import { of, Subject, throwError } from 'rxjs';
import { By } from '@angular/platform-browser';
import { DirectivesModule } from '../../directives/directives.module';
import { NodeEntry, NodePaging } from '@alfresco/js-api';
describe('FilesComponent', () => {
@ -53,7 +44,8 @@ describe('FilesComponent', () => {
let route: ActivatedRoute;
let router: any = {
url: '',
navigate: jasmine.createSpy('navigate')
navigate: jasmine.createSpy('navigate'),
events: new Subject()
};
let spyContent = null;
@ -72,8 +64,7 @@ describe('FilesComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, DataTableModule, PaginationModule, SharedDirectivesModule, DirectivesModule],
declarations: [FilesComponent, DataTableComponent, NodeFavoriteDirective, DocumentListComponent],
imports: [AppTestingModule, FilesComponent],
providers: [
{
provide: Router,

View File

@ -22,18 +22,57 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { ShowHeaderMode } from '@alfresco/adf-core';
import { DataTableModule, PaginationModule, ShowHeaderMode, ToolbarModule } from '@alfresco/adf-core';
import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElement, PathElementEntity } from '@alfresco/js-api';
import { NodeActionsService } from '../../services/node-actions.service';
import { ContentApiService, PageComponent } from '@alfresco/aca-shared';
import {
ContentApiService,
ContextActionsDirective,
GenericErrorComponent,
InfoDrawerComponent,
PageComponent,
PageLayoutComponent,
PageLayoutContentComponent,
PageLayoutErrorComponent,
PageLayoutHeaderComponent,
PaginationDirective,
ToolbarActionComponent
} from '@alfresco/aca-shared';
import { SetCurrentFolderAction, isAdmin, UploadFileVersionAction, showLoaderSelector } from '@alfresco/aca-shared/store';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { FilterSearch, ShareDataRow, FileUploadEvent } from '@alfresco/adf-content-services';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import { FilterSearch, ShareDataRow, FileUploadEvent, BreadcrumbModule, UploadModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DocumentListPresetRef, ExtensionsModule } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { DocumentListDirective } from '../../directives/document-list.directive';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
BreadcrumbModule,
ToolbarModule,
GenericErrorComponent,
UploadModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
DataTableModule,
ExtensionsModule,
PaginationModule,
MatProgressSpinnerModule,
InfoDrawerComponent,
ToolbarActionComponent,
PaginationDirective,
PageLayoutHeaderComponent,
PageLayoutContentComponent,
PageLayoutErrorComponent,
PageLayoutComponent
],
templateUrl: './files.component.html',
encapsulation: ViewEncapsulation.None
})

View File

@ -36,7 +36,7 @@ describe('HomeComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule, RouterTestingModule],
imports: [HttpClientModule, RouterTestingModule, HomeComponent],
providers: [{ provide: AppConfigService, useClass: AppConfigServiceMock }]
});
fixture = TestBed.createComponent(HomeComponent);

View File

@ -27,6 +27,7 @@ import { Router } from '@angular/router';
import { AppConfigService } from '@alfresco/adf-core';
@Component({
standalone: true,
template: '',
encapsulation: ViewEncapsulation.None
})

View File

@ -26,7 +26,7 @@ import { MetadataTabComponent } from './metadata-tab.component';
import { MinimalNodeEntryEntity, Node } from '@alfresco/js-api';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { AppConfigService, CoreModule } from '@alfresco/adf-core';
import { AppConfigService } from '@alfresco/adf-core';
import { Store } from '@ngrx/store';
import { AppState, SetInfoDrawerMetadataAspectAction } from '@alfresco/aca-shared/store';
import { By } from '@angular/platform-browser';
@ -48,7 +48,7 @@ describe('MetadataTabComponent', () => {
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreModule, AppTestingModule, MetadataTabComponent]
imports: [AppTestingModule, MetadataTabComponent]
});
nodePermissionService = TestBed.inject(NodePermissionService);
spyOn(nodePermissionService, 'check').and.callFake((source: MinimalNodeEntryEntity, permissions: string[]) => {

View File

@ -23,17 +23,13 @@
*/
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Router } from '@angular/router';
import { AlfrescoApiService, DataTableComponent } from '@alfresco/adf-core';
import { DocumentListComponent, NodeFavoriteDirective } from '@alfresco/adf-content-services';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { LibrariesComponent } from './libraries.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { EffectsModule } from '@ngrx/effects';
import { LibraryEffects } from '../../store/effects';
import { ContentApiService } from '@alfresco/aca-shared';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
describe('LibrariesComponent', () => {
let fixture: ComponentFixture<LibrariesComponent>;
@ -54,9 +50,7 @@ describe('LibrariesComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, EffectsModule.forRoot([LibraryEffects]), MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, LibrariesComponent],
schemas: [NO_ERRORS_SCHEMA]
imports: [AppTestingModule, EffectsModule.forRoot([LibraryEffects]), LibrariesComponent]
});
fixture = TestBed.createComponent(LibrariesComponent);
@ -67,7 +61,7 @@ describe('LibrariesComponent', () => {
alfrescoApi.reset();
router = TestBed.inject(Router);
const sitesApi: any = contentApiService['sitesApi'];
const sitesApi = contentApiService.sitesApi;
spyOn(sitesApi, 'listSites').and.returnValue(Promise.resolve(page));
spyOn(sitesApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.resolve({}));

View File

@ -25,10 +25,43 @@
import { NavigateLibraryAction } from '@alfresco/aca-shared/store';
import { SiteEntry } from '@alfresco/js-api';
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { AppHookService, PageComponent } from '@alfresco/aca-shared';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import {
AppHookService,
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 { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DataTableModule, PaginationModule, TemplateModule, ToolbarModule } from '@alfresco/adf-core';
import { DocumentListDirective } from '../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
BreadcrumbModule,
ToolbarModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
TemplateModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
PaginationDirective,
InfoDrawerComponent,
ToolbarActionComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PageLayoutComponent
],
templateUrl: './libraries.component.html',
encapsulation: ViewEncapsulation.None
})

View File

@ -23,16 +23,12 @@
*/
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { DataTableComponent } from '@alfresco/adf-core';
import { CustomResourcesService, DocumentListComponent, NodeFavoriteDirective } from '@alfresco/adf-content-services';
import { CustomResourcesService } from '@alfresco/adf-content-services';
import { RecentFilesComponent } from './recent-files.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { Router } from '@angular/router';
import { NodePaging, SearchApi } from '@alfresco/js-api';
import { of } from 'rxjs';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
describe('RecentFilesComponent', () => {
let fixture: ComponentFixture<RecentFilesComponent>;
@ -42,18 +38,8 @@ describe('RecentFilesComponent', () => {
const searchApi = jasmine.createSpyObj('SearchApi', ['search']);
const testBed = TestBed.configureTestingModule({
imports: [AppTestingModule, MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, RecentFilesComponent],
providers: [
{ provide: SearchApi, useValue: searchApi },
{
provide: Router,
useValue: {
url: 'recent-files'
}
}
],
schemas: [NO_ERRORS_SCHEMA]
imports: [AppTestingModule, RecentFilesComponent],
providers: [{ provide: SearchApi, useValue: searchApi }]
});
await testBed.compileComponents();
@ -98,6 +84,9 @@ describe('RecentFilesComponent', () => {
fixture = TestBed.createComponent(RecentFilesComponent);
component = fixture.componentInstance;
const router = TestBed.inject(Router);
spyOnProperty(router, 'url').and.returnValue('recent-files');
});
it('should call showPreview method', () => {

View File

@ -25,10 +25,42 @@
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { MinimalNodeEntity } from '@alfresco/js-api';
import { debounceTime } from 'rxjs/operators';
import { PageComponent } from '@alfresco/aca-shared';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import {
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 { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DataTableModule, PaginationModule, TemplateModule, ToolbarModule } from '@alfresco/adf-core';
import { DocumentListDirective } from '../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
BreadcrumbModule,
ToolbarModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
TemplateModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
PaginationDirective,
InfoDrawerComponent,
ToolbarActionComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PageLayoutComponent
],
templateUrl: './recent-files.component.html',
encapsulation: ViewEncapsulation.None
})

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,

View File

@ -61,7 +61,7 @@
</data-columns>
</adf-document-list>
<adf-pagination acaPagination [target]="documentList"> </adf-pagination>
<adf-pagination acaPagination [target]="documentList"></adf-pagination>
</div>
<div class="aca-sidebar" *ngIf="infoDrawerOpened$ | async">

View File

@ -23,35 +23,39 @@
*/
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { DataTableComponent } from '@alfresco/adf-core';
import { CustomResourcesService, DocumentListComponent, NodeFavoriteDirective } from '@alfresco/adf-content-services';
import { CustomResourcesService } from '@alfresco/adf-content-services';
import { SharedFilesComponent } from './shared-files.component';
import { AppTestingModule } from '../../testing/app-testing.module';
import { Router } from '@angular/router';
import { of } from 'rxjs';
import { BehaviorSubject, of, Subject } from 'rxjs';
import { By } from '@angular/platform-browser';
import { SharedLinkPaging } from '@alfresco/js-api';
import { MatDialogModule } from '@angular/material/dialog';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { AppService } from '@alfresco/aca-shared';
describe('SharedFilesComponent', () => {
let fixture: ComponentFixture<SharedFilesComponent>;
let page: SharedLinkPaging;
const appServiceMock = {
appNavNarMode$: new BehaviorSubject('collapsed'),
toggleAppNavBar$: new Subject()
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, MatDialogModule, MatSnackBarModule],
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, SharedFilesComponent],
imports: [AppTestingModule, SharedFilesComponent],
providers: [
{
provide: Router,
useValue: {
url: 'shared-files'
}
},
{
provide: AppService,
useValue: appServiceMock
}
],
schemas: [NO_ERRORS_SCHEMA]
]
});
page = {
@ -66,7 +70,9 @@ describe('SharedFilesComponent', () => {
fixture = TestBed.createComponent(SharedFilesComponent);
});
it('[C280093] should not display pagination for empty data', async () => {
// TODO: needs better testing strategy
// eslint-disable-next-line ban/ban
xit('[C280093] should not display pagination for empty data', async () => {
page = { list: { pagination: { totalItems: 0 }, entries: [] } };
fixture.detectChanges();

View File

@ -25,10 +25,43 @@
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { debounceTime } from 'rxjs/operators';
import { MinimalNodeEntity } from '@alfresco/js-api';
import { AppHookService, PageComponent } from '@alfresco/aca-shared';
import { DocumentListPresetRef } from '@alfresco/adf-extensions';
import {
AppHookService,
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 { BreadcrumbModule, DocumentListModule } from '@alfresco/adf-content-services';
import { DataTableModule, PaginationModule, TemplateModule, ToolbarModule } from '@alfresco/adf-core';
import { DocumentListDirective } from '../../directives/document-list.directive';
@Component({
standalone: true,
imports: [
CommonModule,
BreadcrumbModule,
ToolbarModule,
DocumentListModule,
DocumentListDirective,
ContextActionsDirective,
TemplateModule,
DataTableModule,
ExtensionsModule,
PaginationModule,
InfoDrawerComponent,
PaginationDirective,
ToolbarActionComponent,
PageLayoutContentComponent,
PageLayoutHeaderComponent,
PageLayoutComponent
],
templateUrl: './shared-files.component.html',
encapsulation: ViewEncapsulation.None
})

View File

@ -47,8 +47,7 @@ describe('SharedLinkViewComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule],
declarations: [SharedLinkViewComponent],
imports: [AppTestingModule, SharedLinkViewComponent],
providers: [
AppExtensionService,
{ provide: Store, useValue: storeMock },

View File

@ -23,7 +23,7 @@
*/
import { AppStore, SetSelectedNodesAction } from '@alfresco/aca-shared/store';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { AlfrescoApiService, ViewerModule } from '@alfresco/adf-core';
import { ContentActionRef } from '@alfresco/adf-extensions';
import { SharedLinkEntry, SharedlinksApi } from '@alfresco/js-api';
import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
@ -31,9 +31,13 @@ import { ActivatedRoute } from '@angular/router';
import { Store } from '@ngrx/store';
import { forkJoin, from, of, Subject } from 'rxjs';
import { catchError, mergeMap, takeUntil } from 'rxjs/operators';
import { AppExtensionService, AppService } from '@alfresco/aca-shared';
import { AppExtensionService, AppService, ToolbarActionComponent } from '@alfresco/aca-shared';
import { CommonModule } from '@angular/common';
import { AlfrescoViewerModule } from '@alfresco/adf-content-services';
@Component({
standalone: true,
imports: [CommonModule, ViewerModule, AlfrescoViewerModule, ToolbarActionComponent],
selector: 'app-shared-link-view',
templateUrl: './shared-link-view.component.html',
styleUrls: ['shared-link-view.component.scss'],

View File

@ -1,48 +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 { SharedLinkViewComponent } from './shared-link-view.component';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { DirectivesModule } from '../../directives/directives.module';
import { AppToolbarModule } from '../toolbar/toolbar.module';
import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module';
import { CoreExtensionsModule } from '../../extensions/core.extensions.module';
import { ContentModule } from '@alfresco/adf-content-services';
@NgModule({
imports: [
CommonModule,
CoreModule.forChild(),
DirectivesModule,
AppToolbarModule,
CoreExtensionsModule.forChild(),
AppInfoDrawerModule,
ContentModule
],
declarations: [SharedLinkViewComponent],
exports: [SharedLinkViewComponent]
})
export class AppSharedLinkViewModule {}

View File

@ -26,7 +26,6 @@ import { ButtonMenuComponent } from './button-menu.component';
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { Router } from '@angular/router';
import { AppSidenavModule } from '../sidenav.module';
describe('ButtonMenuComponent', () => {
let component: ButtonMenuComponent;
@ -35,7 +34,7 @@ describe('ButtonMenuComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, AppSidenavModule]
imports: [AppTestingModule, ButtonMenuComponent]
});
fixture = TestBed.createComponent(ButtonMenuComponent);

View File

@ -25,8 +25,18 @@
import { Component, Input, ViewEncapsulation, OnInit, ChangeDetectorRef } from '@angular/core';
import { OverlayContainer } from '@angular/cdk/overlay';
import { NavBarLinkRef } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { IconModule } from '@alfresco/adf-core';
import { MatMenuModule } from '@angular/material/menu';
import { MatButtonModule } from '@angular/material/button';
import { ActiveLinkDirective } from '../directives/active-link.directive';
import { ActionDirective } from '../directives/action.directive';
import { MenuPanelDirective } from '../directives/menu-panel.directive';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, IconModule, MatMenuModule, MatButtonModule, ActiveLinkDirective, ActionDirective, MenuPanelDirective],
selector: 'app-button-menu',
templateUrl: './button-menu.component.html',
host: { class: 'app-button-menu' },

View File

@ -20,7 +20,6 @@
<mat-expansion-panel
[expanded]="true"
[acaExpansionPanel]="item"
#acaExpansionPanel="acaExpansionPanel"
[@.disabled]="true"
>
<mat-expansion-panel-header expandedHeight="48px" collapsedHeight="48px" role="group">

View File

@ -26,7 +26,6 @@ import { ExpandMenuComponent } from './expand-menu.component';
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { Router } from '@angular/router';
import { AppSidenavModule } from '../sidenav.module';
describe('ExpandMenuComponent', () => {
let component: ExpandMenuComponent;
@ -35,7 +34,7 @@ describe('ExpandMenuComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, AppSidenavModule]
imports: [AppTestingModule, ExpandMenuComponent]
});
fixture = TestBed.createComponent(ExpandMenuComponent);

View File

@ -24,8 +24,27 @@
import { Component, OnInit, Input, ViewEncapsulation, ChangeDetectorRef } from '@angular/core';
import { NavBarLinkRef } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { IconModule } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
import { ActiveLinkDirective } from '../directives/active-link.directive';
import { ActionDirective } from '../directives/action.directive';
import { MatExpansionModule } from '@angular/material/expansion';
import { ExpansionPanelDirective } from '../directives/expansion-panel.directive';
@Component({
standalone: true,
imports: [
CommonModule,
TranslateModule,
IconModule,
MatButtonModule,
ActiveLinkDirective,
ActionDirective,
MatExpansionModule,
ExpansionPanelDirective
],
selector: 'app-expand-menu',
encapsulation: ViewEncapsulation.None,
templateUrl: './expand-menu.component.html',

View File

@ -28,10 +28,15 @@ import { Observable, Subject } from 'rxjs';
import { AppStore, getAppName, getLogoPath } from '@alfresco/aca-shared/store';
import { AppConfigService } from '@alfresco/adf-core';
import { ContentActionRef } from '@alfresco/adf-extensions';
import { AppExtensionService } from '@alfresco/aca-shared';
import { AppExtensionService, ToolbarActionComponent } from '@alfresco/aca-shared';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { RouterModule } from '@angular/router';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, RouterModule, ToolbarActionComponent],
selector: 'app-sidenav-header',
templateUrl: `./sidenav-header.component.html`,
encapsulation: ViewEncapsulation.None,

View File

@ -28,6 +28,7 @@ import { Store } from '@ngrx/store';
import { AppStore } from '@alfresco/aca-shared/store';
@Directive({
standalone: true,
/* eslint-disable-next-line */
selector: '[action]',
exportAs: 'action'

View File

@ -23,13 +23,16 @@
*/
import { Component } from '@angular/core';
import { AppSidenavModule } from '../sidenav.module';
import { TestBed, ComponentFixture } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { Router, NavigationEnd } from '@angular/router';
import { Subject } from 'rxjs';
import { ActiveLinkDirective } from './active-link.directive';
import { ActionDirective } from './action.directive';
@Component({
standalone: true,
imports: [ActiveLinkDirective, ActionDirective],
selector: 'app-test-component',
template: ` <span id="test-element" acaActiveLink="active-link-class" [action]="item"></span> `
})
@ -56,8 +59,7 @@ describe('ActionDirective', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule, AppSidenavModule],
declarations: [TestComponent],
imports: [AppTestingModule, ActiveLinkDirective, TestComponent],
providers: [
{
provide: Router,

View File

@ -29,6 +29,7 @@ import { Subject } from 'rxjs';
import { ActionDirective } from './action.directive';
@Directive({
standalone: true,
selector: '[acaActiveLink]',
exportAs: 'acaActiveLink'
})

View File

@ -30,6 +30,7 @@ import { MatExpansionPanel } from '@angular/material/expansion';
import { Store } from '@ngrx/store';
@Directive({
standalone: true,
selector: '[acaExpansionPanel]',
exportAs: 'acaExpansionPanel'
})

View File

@ -29,6 +29,7 @@ import { Subject } from 'rxjs';
import { Store } from '@ngrx/store';
@Directive({
standalone: true,
selector: '[acaMenuPanel]',
exportAs: 'acaMenuPanel'
})

View File

@ -22,10 +22,6 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { CoreModule } from '@alfresco/adf-core';
import { RouterModule } from '@angular/router';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { ExpansionPanelDirective } from './directives/expansion-panel.directive';
import { MenuPanelDirective } from './directives/menu-panel.directive';
import { SidenavComponent } from './sidenav.component';
@ -34,30 +30,16 @@ import { ExpandMenuComponent } from './components/expand-menu.component';
import { ButtonMenuComponent } from './components/button-menu.component';
import { ActionDirective } from './directives/action.directive';
import { SidenavHeaderComponent } from './components/sidenav-header.component';
import { SharedToolbarModule } from '@alfresco/aca-shared';
import { UserMenuComponent } from './user-menu/user-menu.component';
@NgModule({
imports: [CoreModule.forChild(), ExtensionsModule.forChild(), RouterModule, SharedToolbarModule],
declarations: [
MenuPanelDirective,
ExpansionPanelDirective,
ActiveLinkDirective,
ActionDirective,
ExpandMenuComponent,
ButtonMenuComponent,
SidenavComponent,
SidenavHeaderComponent,
UserMenuComponent
],
exports: [
MenuPanelDirective,
ExpansionPanelDirective,
ActiveLinkDirective,
ActionDirective,
ExpandMenuComponent,
ButtonMenuComponent,
SidenavComponent
]
})
export class AppSidenavModule {}
export const APP_SIDENAV_DIRECTIVES = [
ButtonMenuComponent,
ActiveLinkDirective,
ActionDirective,
MenuPanelDirective,
ExpandMenuComponent,
ExpansionPanelDirective,
SidenavHeaderComponent,
UserMenuComponent,
SidenavComponent
] as const;

View File

@ -36,8 +36,7 @@ describe('SidenavComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AppTestingModule],
declarations: [SidenavComponent],
imports: [AppTestingModule, SidenavComponent],
providers: [
{
provide: AppService,

View File

@ -23,15 +23,21 @@
*/
import { Component, Input, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';
import { NavBarGroupRef, NavBarLinkRef } from '@alfresco/adf-extensions';
import { ExtensionsModule, NavBarGroupRef, NavBarLinkRef } from '@alfresco/adf-extensions';
import { Store } from '@ngrx/store';
import { AppStore, getSideNavState } from '@alfresco/aca-shared/store';
import { Subject } from 'rxjs';
import { takeUntil, distinctUntilChanged, debounceTime } from 'rxjs/operators';
import { AppExtensionService, AppService } from '@alfresco/aca-shared';
import { SidenavLayoutComponent } from '@alfresco/adf-core';
import { CommonModule } from '@angular/common';
import { SidenavHeaderComponent } from './components/sidenav-header.component';
import { MatListModule } from '@angular/material/list';
import { ExpandMenuComponent } from './components/expand-menu.component';
@Component({
standalone: true,
imports: [CommonModule, SidenavHeaderComponent, MatListModule, ExpandMenuComponent, ExtensionsModule],
selector: 'app-sidenav',
templateUrl: './sidenav.component.html',
styleUrls: ['./sidenav.component.scss'],

View File

@ -28,8 +28,6 @@ import { PeopleContentService } from '@alfresco/adf-content-services';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { UserMenuComponent } from './user-menu.component';
import { of } from 'rxjs';
import { SharedToolbarModule } from '@alfresco/aca-shared';
import { MatMenuModule } from '@angular/material/menu';
describe('UserMenuComponent', () => {
let component: UserMenuComponent;
@ -108,8 +106,7 @@ describe('UserMenuComponent', () => {
};
TestBed.configureTestingModule({
imports: [AppTestingModule, SharedToolbarModule, MatMenuModule],
declarations: [UserMenuComponent],
imports: [AppTestingModule, UserMenuComponent],
providers: [
{ provide: AuthenticationService, useValue: authServiceStub },
{ provide: PeopleContentService, useValue: peopleContentServiceStub },

View File

@ -28,8 +28,15 @@ import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
import { Observable, of } from 'rxjs';
import { map } from 'rxjs/operators';
import { ContentActionRef } from '@alfresco/adf-extensions';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { TranslateModule } from '@ngx-translate/core';
import { MatMenuModule } from '@angular/material/menu';
import { ToolbarMenuItemComponent } from '@alfresco/aca-shared';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatButtonModule, MatMenuModule, ToolbarMenuItemComponent],
selector: 'aca-user-menu',
templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss'],

View File

@ -22,40 +22,20 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { ToggleFavoriteComponent } from './toggle-favorite/toggle-favorite.component';
import { ToggleInfoDrawerComponent } from './toggle-info-drawer/toggle-info-drawer.component';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { ToggleJoinLibraryButtonComponent } from './toggle-join-library/toggle-join-library-button.component';
import { ToggleJoinLibraryMenuComponent } from './toggle-join-library/toggle-join-library-menu.component';
import { DirectivesModule } from '../../directives/directives.module';
import { ToggleFavoriteLibraryComponent } from './toggle-favorite-library/toggle-favorite-library.component';
import { ToggleEditOfflineComponent } from './toggle-edit-offline/toggle-edit-offline.component';
import { ViewNodeComponent } from './view-node/view-node.component';
import { SharedToolbarModule } from '@alfresco/aca-shared';
@NgModule({
imports: [CommonModule, CoreModule.forChild(), ExtensionsModule, SharedToolbarModule, DirectivesModule],
declarations: [
ToggleFavoriteComponent,
ToggleInfoDrawerComponent,
ToggleJoinLibraryButtonComponent,
ToggleJoinLibraryMenuComponent,
ToggleFavoriteLibraryComponent,
ToggleEditOfflineComponent,
ViewNodeComponent
],
exports: [
ToggleFavoriteComponent,
ToggleInfoDrawerComponent,
ToggleJoinLibraryButtonComponent,
ToggleJoinLibraryMenuComponent,
ToggleFavoriteLibraryComponent,
ToggleEditOfflineComponent,
ViewNodeComponent,
SharedToolbarModule
]
})
export class AppToolbarModule {}
export const APP_TOOLBAR_DIRECTIVES = [
ToggleFavoriteComponent,
ToggleEditOfflineComponent,
ToggleInfoDrawerComponent,
ToggleJoinLibraryButtonComponent,
ToggleJoinLibraryMenuComponent,
ToggleFavoriteLibraryComponent,
ViewNodeComponent
] as const;

View File

@ -23,13 +23,12 @@
*/
import { ToggleEditOfflineComponent } from './toggle-edit-offline.component';
import { CoreModule } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { of } from 'rxjs';
import { Store } from '@ngrx/store';
import { NodeEntry } from '@alfresco/js-api';
import { DownloadNodesAction, EditOfflineAction, SnackbarErrorAction } from '@alfresco/aca-shared/store';
import { TranslateModule } from '@ngx-translate/core';
import { AppTestingModule } from '../../../testing/app-testing.module';
describe('ToggleEditOfflineComponent', () => {
let fixture: ComponentFixture<ToggleEditOfflineComponent>;
@ -41,8 +40,7 @@ describe('ToggleEditOfflineComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), CoreModule.forRoot()],
declarations: [ToggleEditOfflineComponent],
imports: [AppTestingModule, ToggleEditOfflineComponent],
providers: [
{
provide: Store,

View File

@ -28,8 +28,14 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { Store } from '@ngrx/store';
import { isLocked } from '@alfresco/aca-shared';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatMenuModule, MatIconModule],
selector: 'app-toggle-edit-offline',
template: `
<button mat-menu-item [attr.title]="nodeTitle | translate" (click)="onClick()">

View File

@ -23,7 +23,6 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreModule } from '@alfresco/adf-core';
import { ToggleFavoriteLibraryComponent } from './toggle-favorite-library.component';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { Store } from '@ngrx/store';
@ -45,8 +44,7 @@ describe('ToggleFavoriteLibraryComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreModule.forRoot(), AppTestingModule],
declarations: [ToggleFavoriteLibraryComponent],
imports: [AppTestingModule, ToggleFavoriteLibraryComponent],
providers: [
{
provide: Router,

View File

@ -30,8 +30,15 @@ import { SelectionState } from '@alfresco/adf-extensions';
import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
import { Router } from '@angular/router';
import { Subject } from 'rxjs';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { ContentDirectiveModule } from '@alfresco/adf-content-services';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ContentDirectiveModule, MatIconModule, MatMenuModule],
selector: 'app-toggle-favorite-library',
template: `
<button

View File

@ -26,11 +26,9 @@ import { TestBed } from '@angular/core/testing';
import { ToggleFavoriteComponent } from './toggle-favorite.component';
import { Store } from '@ngrx/store';
import { ExtensionService } from '@alfresco/adf-extensions';
import { CoreModule } from '@alfresco/adf-core';
import { Router } from '@angular/router';
import { of } from 'rxjs';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { ContentDirectiveModule } from '@alfresco/adf-content-services';
describe('ToggleFavoriteComponent', () => {
let component: ToggleFavoriteComponent;
@ -50,8 +48,7 @@ describe('ToggleFavoriteComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreModule.forRoot(), ContentDirectiveModule, AppTestingModule],
declarations: [ToggleFavoriteComponent],
imports: [AppTestingModule, ToggleFavoriteComponent],
providers: [ExtensionService, { provide: Store, useValue: mockStore }, { provide: Router, useValue: mockRouter }]
});

View File

@ -28,8 +28,15 @@ import { Observable } from 'rxjs';
import { SelectionState } from '@alfresco/adf-extensions';
import { AppStore, ReloadDocumentListAction, getAppSelection } from '@alfresco/aca-shared/store';
import { Router } from '@angular/router';
import { CommonModule } from '@angular/common';
import { ContentDirectiveModule } from '@alfresco/adf-content-services';
import { MatIconModule } from '@angular/material/icon';
import { TranslateModule } from '@ngx-translate/core';
import { MatMenuModule } from '@angular/material/menu';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ContentDirectiveModule, MatIconModule, MatMenuModule],
selector: 'app-toggle-favorite',
template: `
<button mat-menu-item #favorites="adfFavorite" (toggle)="onToggleEvent()" [adf-node-favorite]="(selection$ | async).nodes">

View File

@ -24,23 +24,16 @@
import { ToggleInfoDrawerComponent } from './toggle-info-drawer.component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreModule } from '@alfresco/adf-core';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { Subject } from 'rxjs';
import { Store } from '@ngrx/store';
describe('ToggleInfoDrawerComponent', () => {
let fixture: ComponentFixture<ToggleInfoDrawerComponent>;
const mockStream = new Subject();
const storeMock = {
dispatch: jasmine.createSpy('dispatch'),
select: () => mockStream
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreModule, AppTestingModule],
providers: [{ provide: Store, useValue: storeMock }]
imports: [AppTestingModule, ToggleInfoDrawerComponent]
});
fixture = TestBed.createComponent(ToggleInfoDrawerComponent);

View File

@ -26,8 +26,14 @@ import { Component, ViewEncapsulation } from '@angular/core';
import { Observable } from 'rxjs';
import { Store } from '@ngrx/store';
import { ToggleInfoDrawerAction, isInfoDrawerOpened } from '@alfresco/aca-shared/store';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatButtonModule, MatIconModule],
selector: 'app-toggle-info-drawer',
template: `
<button

View File

@ -35,9 +35,15 @@ import { ProfileState, SelectionState } from '@alfresco/adf-extensions';
import { Component, ViewEncapsulation } from '@angular/core';
import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { LibraryMembershipErrorEvent, LibraryMembershipToggleEvent } from '@alfresco/adf-content-services';
import { ContentDirectiveModule, LibraryMembershipErrorEvent, LibraryMembershipToggleEvent } from '@alfresco/adf-content-services';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatButtonModule, ContentDirectiveModule, MatIconModule],
selector: 'app-toggle-join-library-button',
template: `
<button

View File

@ -27,8 +27,15 @@ import { Store } from '@ngrx/store';
import { AppHookService } from '@alfresco/aca-shared';
import { AppStore } from '@alfresco/aca-shared/store';
import { ToggleJoinLibraryButtonComponent } from './toggle-join-library-button.component';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { ContentDirectiveModule } from '@alfresco/adf-content-services';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, ContentDirectiveModule, MatIconModule, MatMenuModule],
selector: 'app-toggle-join-library-menu',
template: `
<button

View File

@ -24,14 +24,12 @@
import { of } from 'rxjs';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DirectiveModule } from '@alfresco/adf-core';
import { Store } from '@ngrx/store';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { SnackbarErrorAction, SnackbarInfoAction } from '@alfresco/aca-shared/store';
import { AppTestingModule } from '../../../testing/app-testing.module';
import { ToggleJoinLibraryButtonComponent } from './toggle-join-library-button.component';
import { AppHookService, ContentApiService } from '@alfresco/aca-shared';
import { ContentDirectiveModule } from '@alfresco/adf-content-services';
describe('ToggleJoinLibraryComponent', () => {
let component: ToggleJoinLibraryButtonComponent;
@ -50,8 +48,7 @@ describe('ToggleJoinLibraryComponent', () => {
};
TestBed.configureTestingModule({
imports: [AppTestingModule, DirectiveModule, ContentDirectiveModule],
declarations: [ToggleJoinLibraryButtonComponent],
imports: [AppTestingModule, ToggleJoinLibraryButtonComponent],
providers: [
{
provide: Store,
@ -70,7 +67,7 @@ describe('ToggleJoinLibraryComponent', () => {
contentApiService = TestBed.inject(ContentApiService);
fixture = TestBed.createComponent(ToggleJoinLibraryButtonComponent);
component = fixture.componentInstance;
spyOn(contentApiService['sitesApi'], 'getSiteMembershipRequestForPerson').and.stub();
spyOn(contentApiService.sitesApi, 'getSiteMembershipRequestForPerson').and.stub();
});
afterEach(() => {

View File

@ -25,11 +25,10 @@
import { TestBed } from '@angular/core/testing';
import { ViewNodeComponent } from './view-node.component';
import { Store } from '@ngrx/store';
import { CoreModule } from '@alfresco/adf-core';
import { Router } from '@angular/router';
import { of } from 'rxjs';
import { TranslateModule } from '@ngx-translate/core';
import { ViewNodeAction } from '@alfresco/aca-shared/store';
import { AppTestingModule } from '../../../testing/app-testing.module';
describe('ViewNodeComponent', () => {
let component: ViewNodeComponent;
@ -52,8 +51,7 @@ describe('ViewNodeComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), CoreModule.forRoot()],
declarations: [ViewNodeComponent],
imports: [AppTestingModule, ViewNodeComponent],
providers: [
{ provide: Store, useValue: mockStore },
{ provide: Router, useValue: mockRouter }

View File

@ -29,8 +29,16 @@ import { Router } from '@angular/router';
import { take } from 'rxjs/operators';
import { SharedLinkEntry } from '@alfresco/js-api';
import { AcaFileAutoDownloadService } from '@alfresco/aca-shared';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatDialogModule } from '@angular/material/dialog';
@Component({
standalone: true,
imports: [CommonModule, TranslateModule, MatButtonModule, MatIconModule, MatMenuModule, MatDialogModule],
selector: 'app-view-node',
template: `
<button

Some files were not shown because too many files have changed in this diff Show More