[ACS-11306] upgrade frontend to angular 20 (#5122)

* [ACS-11306] Upgrade Angular to 20 version

* [ACS-11306] Reverted unwanted changes

* [ACS-11306] Reverted unwanted changes

* [ACS-11306] Reverted unwanted changes

* [ACS-11306] Upgrade ngrx to 20 version

* [ACS-11306] Updated eslintrc

* [ACS-11306] Added replacement for quotes related eslint rule

* [ACS-11306] Fixed eslint issues related with unused error and optional chaining

* [ACS-11306] Corrected versions in projects

* [ACS-11306] Fixed unit tests

* [ACS-11306] Updated stylelint version

* [link-adf:chore/ng20][ACS-11306] Test

* [link-adf:chore/ng20][ACS-11306] Changed tsconfig

* [link-adf:chore/ng20][ACS-11306] Test

* [link-adf:chore/ng20][ACS-11306] Test

* [link-adf:chore/ng20][ACS-11306] Removed redundant line from tsconfig

* [link-adf:chore/ng20][ACS-11306] Updated package-lock.json

* [link-adf:chore/ng20][ACS-11306] Fixed stylelint issue

* [link-adf:chore/ng20] [ACS-11306] Fix colors of text button, dialog text, form field placeholder and button styling

* [link-adf:chore/ng20] [ACS-11306] Fix create from template dialog confirm button color

* [link-adf:chore/ng20] [ACS-11306] Fix add permission dialog button colors

* [link-adf:chore/ng20] [ACS-11306] Fix login error icon color and alignment

* [link-adf:chore/ng20][ACS-11306] Updated package-lock.json

* [ACS-11306] Update package.json to use ADF with Angular 20

---------

Co-authored-by: g-jaskowski <grzegorz.jaskowski@hyland.com>
This commit is contained in:
AleksanderSklorz
2026-06-26 10:57:31 +02:00
committed by GitHub
co-authored by g-jaskowski
parent e4d5f9c9ad
commit 745cd14024
38 changed files with 2958 additions and 7239 deletions
+14 -17
View File
@@ -131,7 +131,9 @@
"@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/no-unused-expressions": "error",
"@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/ban-types": "error", "@typescript-eslint/no-wrapper-object-types": "error",
"@typescript-eslint/no-unsafe-function-type": "error",
"@typescript-eslint/no-empty-object-type": "error",
"@typescript-eslint/explicit-member-accessibility": [ "@typescript-eslint/explicit-member-accessibility": [
"off", "off",
{ {
@@ -151,7 +153,7 @@
} }
} }
], ],
"@typescript-eslint/semi": ["error", "always"], "semi": ["error", "always"],
"@typescript-eslint/naming-convention": [ "@typescript-eslint/naming-convention": [
"error", "error",
{ {
@@ -165,15 +167,6 @@
"ignoreParameters": true "ignoreParameters": true
} }
], ],
"@typescript-eslint/quotes": [
"error",
"single",
{
"avoidEscape": true,
"allowTemplateLiterals": true
}
],
"@typescript-eslint/type-annotation-spacing": "error",
"arrow-parents": ["off", "always"], "arrow-parents": ["off", "always"],
"brace-style": [ "brace-style": [
"error", "error",
@@ -206,7 +199,6 @@
} }
], ],
"no-duplicate-imports": "error", "no-duplicate-imports": "error",
"no-extra-semi": "off",
"no-empty": "off", "no-empty": "off",
"no-empty-function": "off", "no-empty-function": "off",
"no-irregular-whitespace": "error", "no-irregular-whitespace": "error",
@@ -265,7 +257,14 @@
"no-var": "error", "no-var": "error",
"prefer-const": "error", "prefer-const": "error",
"quote-props": "off", "quote-props": "off",
"quotes": "off", "quotes": [
"error",
"single",
{
"avoidEscape": true,
"allowTemplateLiterals": true
}
],
"radix": "error", "radix": "error",
"rxjs/no-create": "error", "rxjs/no-create": "error",
"rxjs/no-subject-unsubscribe": "error", "rxjs/no-subject-unsubscribe": "error",
@@ -286,7 +285,6 @@
"observable": "action(s|\\$)?" "observable": "action(s|\\$)?"
} }
], ],
"semi": "error",
"use-isnan": "error", "use-isnan": "error",
"spaced-comment": [ "spaced-comment": [
"error", "error",
@@ -299,7 +297,7 @@
"space-before-function-paren": "off", "space-before-function-paren": "off",
"space-in-parens": ["off", "never"], "space-in-parens": ["off", "never"],
"unicorn/filename-case": "error", "unicorn/filename-case": "error",
"@typescript-eslint/no-extra-semi": "error", "no-extra-semi": "error",
"no-restricted-syntax": [ "no-restricted-syntax": [
"error", "error",
{ {
@@ -315,8 +313,7 @@
"files": ["*.js"], "files": ["*.js"],
"extends": ["plugin:@nx/javascript"], "extends": ["plugin:@nx/javascript"],
"rules": { "rules": {
"@typescript-eslint/no-extra-semi": "error", "no-extra-semi": "error"
"no-extra-semi": "off"
} }
}, },
{ {
+1 -1
View File
@@ -1 +1 @@
24.13.0 24.13.1
@@ -116,7 +116,7 @@ test.describe('Mark items as favorites', () => {
await favoritesApi.addFavoritesByIds('file', [fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]); await favoritesApi.addFavoritesByIds('file', [fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]);
await favoritesApi.addFavoriteById('folder', folderId); await favoritesApi.addFavoriteById('folder', folderId);
await favoritesApi.removeFavoritesByIds(username, [fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id]); await favoritesApi.removeFavoritesByIds(username, [fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id]);
} catch (error) {} } catch {}
}); });
test.beforeEach(async ({ personalFiles }) => { test.beforeEach(async ({ personalFiles }) => {
+2786 -7104
View File
File diff suppressed because it is too large Load Diff
+46 -41
View File
@@ -42,53 +42,58 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@alfresco/adf-content-services": "9.1.0-28179385829", "@alfresco/adf-content-services": "9.1.0-28225801456",
"@alfresco/adf-core": "9.1.0-28179385829", "@alfresco/adf-core": "9.1.0-28225801456",
"@alfresco/adf-extensions": "9.1.0-28179385829", "@alfresco/adf-extensions": "9.1.0-28225801456",
"@alfresco/eslint-plugin-eslint-angular": "9.1.0-28179385829", "@alfresco/eslint-plugin-eslint-angular": "9.1.0-28225801456",
"@alfresco/js-api": "10.1.0-28179385829", "@alfresco/js-api": "10.1.0-28225801456",
"@angular/animations": "19.2.20", "@angular/animations": "20.3.9",
"@angular/cdk": "19.2.19", "@angular/cdk": "20.2.14",
"@angular/common": "19.2.20", "@angular/common": "20.3.9",
"@angular/compiler": "19.2.20", "@angular/compiler": "20.3.9",
"@angular/core": "19.2.20", "@angular/core": "20.3.9",
"@angular/forms": "19.2.20", "@angular/forms": "20.3.9",
"@angular/material": "19.2.19", "@angular/material": "20.2.14",
"@angular/material-date-fns-adapter": "19.2.19", "@angular/material-date-fns-adapter": "20.2.14",
"@angular/platform-browser": "19.2.20", "@angular/platform-browser": "20.3.9",
"@angular/platform-browser-dynamic": "19.2.20", "@angular/platform-browser-dynamic": "20.3.9",
"@angular/router": "19.2.20", "@angular/router": "20.3.9",
"@fontsource/open-sans": "^5.1.0", "@fontsource/open-sans": "^5.1.0",
"@mat-datetimepicker/core": "15.0.2", "@mat-datetimepicker/core": "16.0.1",
"@ngrx/effects": "19.2.1", "@ngrx/effects": "~20.1.0",
"@ngrx/operators": "19.2.1", "@ngrx/operators": "~20.1.0",
"@ngrx/router-store": "19.2.1", "@ngrx/router-store": "~20.1.0",
"@ngrx/store": "19.2.1", "@ngrx/store": "~20.1.0",
"@ngrx/store-devtools": "19.2.1", "@ngrx/store-devtools": "~20.1.0",
"@ngx-translate/core": "^17.0.0", "@ngx-translate/core": "^17.0.0",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"katex": "^0.16.21", "katex": "^0.16.21",
"material-icons": "^1.13.12", "material-icons": "^1.13.12",
"mermaid": "^11.15.0", "mermaid": "^11.15.0",
"ngx-markdown": "19.1.1", "ngx-markdown": "20.0.0",
"pdfjs-dist": "5.1.91", "pdfjs-dist": "5.1.91",
"prismjs": "^1.30.0", "prismjs": "^1.30.0",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"tslib": "2.8.1", "tslib": "2.8.1",
"zone.js": "0.15.0" "zone.js": "0.15.0"
}, },
"overrides": {
"@module-federation/sdk": {
"node-fetch": "^2.7.0"
}
},
"devDependencies": { "devDependencies": {
"@alfresco/adf-cli": "9.1.0-28179385829", "@alfresco/adf-cli": "9.1.0-28225801456",
"@angular-devkit/build-angular": "19.2.22", "@angular-devkit/build-angular": "20.3.16",
"@angular-devkit/core": "19.2.20", "@angular-devkit/core": "20.3.16",
"@angular-devkit/schematics": "19.2.20", "@angular-devkit/schematics": "20.3.16",
"@angular-eslint/builder": "19.8.1", "@angular-eslint/builder": "20.7.0",
"@angular-eslint/eslint-plugin": "19.8.1", "@angular-eslint/eslint-plugin": "20.7.0",
"@angular-eslint/eslint-plugin-template": "19.8.1", "@angular-eslint/eslint-plugin-template": "20.7.0",
"@angular-eslint/schematics": "19.8.1", "@angular-eslint/schematics": "20.7.0",
"@angular-eslint/template-parser": "19.8.1", "@angular-eslint/template-parser": "20.7.0",
"@angular/compiler-cli": "19.2.20", "@angular/compiler-cli": "20.3.9",
"@angular/language-service": "19.2.20", "@angular/language-service": "20.3.9",
"@cspell/eslint-plugin": "^9.2.1", "@cspell/eslint-plugin": "^9.2.1",
"@nx/angular": "22.5.4", "@nx/angular": "22.5.4",
"@nx/eslint-plugin": "22.5.4", "@nx/eslint-plugin": "22.5.4",
@@ -100,9 +105,9 @@
"@types/jasminewd2": "^2.0.8", "@types/jasminewd2": "^2.0.8",
"@types/node": "25.0.3", "@types/node": "25.0.3",
"@types/superagent": "^4.1.10", "@types/superagent": "^4.1.10",
"@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/eslint-plugin": "8.55.0",
"@typescript-eslint/parser": "^7.2.0", "@typescript-eslint/parser": "8.55.0",
"@typescript-eslint/utils": "^8.53.0", "@typescript-eslint/utils": "8.55.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-plugin-ban": "^2.0.0", "eslint-plugin-ban": "^2.0.0",
"eslint-plugin-import": "2.32.0", "eslint-plugin-import": "2.32.0",
@@ -123,14 +128,14 @@
"karma-jasmine-html-reporter": "^2.2.0", "karma-jasmine-html-reporter": "^2.2.0",
"karma-mocha-reporter": "^2.2.5", "karma-mocha-reporter": "^2.2.5",
"lint-staged": "^16.4.0", "lint-staged": "^16.4.0",
"ng-packagr": "19.2.2", "ng-packagr": "20.3.2",
"node-stream-zip": "^1.14.0", "node-stream-zip": "^1.14.0",
"nx": "22.5.4", "nx": "22.5.4",
"prettier": "3.8.1", "prettier": "3.8.1",
"stylelint": "^15.11.0", "stylelint": "^16.0.0",
"stylelint-config-standard-scss": "^7.0.1", "stylelint-config-standard-scss": "^13.0.0",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typescript": "5.8.2", "typescript": "5.9.3",
"webpack-bundle-analyzer": "^4.10.2" "webpack-bundle-analyzer": "^4.10.2"
} }
} }
@@ -281,7 +281,7 @@ export class ManageRulesSmartComponent implements OnInit {
try { try {
await this.folderRuleSetsService.deleteRuleSetLink(this.nodeId, linkedRuleSet.id); await this.folderRuleSetsService.deleteRuleSetLink(this.nodeId, linkedRuleSet.id);
this.folderRuleSetsService.refreshMainRuleSet(); this.folderRuleSetsService.refreshMainRuleSet();
} catch (error) { } catch {
this.notificationService.showError('ACA_FOLDER_RULES.ERRORS.DELETE_RULE_SET_LINK_FAILED'); this.notificationService.showError('ACA_FOLDER_RULES.ERRORS.DELETE_RULE_SET_LINK_FAILED');
} }
} }
@@ -22,8 +22,8 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>. * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { SecurityControlsMarkResponse } from '@alfresco/adf-content-services/lib/security/services/models/security-controls-mark-response.interface';
import { UpdateNotification } from '@alfresco/adf-core'; import { UpdateNotification } from '@alfresco/adf-core';
import { SecurityControlsMarkResponse } from '@alfresco/adf-content-services';
export const securityMarksResponseMock: SecurityControlsMarkResponse = { export const securityMarksResponseMock: SecurityControlsMarkResponse = {
pagination: { pagination: {
+9 -9
View File
@@ -3,21 +3,21 @@
"version": "0.0.1", "version": "0.0.1",
"license": "LGPL-3.0", "license": "LGPL-3.0",
"peerDependencies": { "peerDependencies": {
"@angular/animations": "^19.2.0", "@angular/animations": "^20.3.0",
"@angular/cdk": "^19.2.0", "@angular/cdk": "^20.2.0",
"@angular/common": "^19.2.0", "@angular/common": "^20.3.0",
"@angular/core": "^19.2.0", "@angular/core": "^20.3.0",
"@angular/forms": "^19.2.0", "@angular/forms": "^20.3.0",
"@angular/material": "^19.2.0", "@angular/material": "^20.2.0",
"@angular/platform-browser": "^19.2.0", "@angular/platform-browser": "^20.3.0",
"@angular/router": "^19.2.0", "@angular/router": "^20.3.0",
"@ngx-translate/core": "^17.0.0", "@ngx-translate/core": "^17.0.0",
"rxjs": "^7.4.0", "rxjs": "^7.4.0",
"zone.js": "^0.14.0 || ^0.15.0" "zone.js": "^0.14.0 || ^0.15.0"
}, },
"dependencies": { "dependencies": {
"tslib": ">=2.3.0", "tslib": ">=2.3.0",
"ngx-markdown": ">=17.2.1" "ngx-markdown": ">=20.0.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
@@ -1,3 +1,5 @@
@use '@angular/material' as mat;
.aca-location-link { .aca-location-link {
&-unknown { &-unknown {
display: flex; display: flex;
@@ -10,8 +12,12 @@
} }
.aca-location-link-info-btn { .aca-location-link-info-btn {
--mdc-icon-button-state-layer-size: 24px; @include mat.icon-button-overrides(
--mdc-icon-button-icon-size: 24px; (
state-layer-size: 24px,
icon-size: 24px
)
);
color: var(--theme-foreground-text-color); color: var(--theme-foreground-text-color);
padding: 0; padding: 0;
@@ -100,7 +100,7 @@ export class LocationLinkComponent implements OnInit {
} }
openAdditionalLocationReferencesDialog() { openAdditionalLocationReferencesDialog() {
if (this.context.row.node) { if (this.context?.row.node) {
this.dialogRef.open(DialogComponent, { this.dialogRef.open(DialogComponent, {
data: { data: {
title: 'APP.ADDITIONAL_REFERENCES_DIALOG.TITLE', title: 'APP.ADDITIONAL_REFERENCES_DIALOG.TITLE',
@@ -276,7 +276,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy {
} }
// check the child nodes to show dropped folder // check the child nodes to show dropped folder
if (event && event.file.options.parentId === this.getParentNodeId()) { if (event?.file.options.parentId === this.getParentNodeId()) {
this.displayFolderParent(0, event.file.options.path); this.displayFolderParent(0, event.file.options.path);
return; return;
} }
@@ -661,7 +661,7 @@ describe('SearchAiResultsComponent', () => {
})); }));
it('should call search api when reload references button is clicked', fakeAsync(() => { it('should call search api when reload references button is clicked', fakeAsync(() => {
setupReferencesTest([nodeId, secondNodeId], [toSearchResult([node1])]); setupReferencesTest([nodeId, secondNodeId], [toSearchResult([node1]), toSearchResult([node1, node2])]);
getReloadButton().nativeElement.click(); getReloadButton().nativeElement.click();
expect(contentApiService.search).toHaveBeenCalledWith( expect(contentApiService.search).toHaveBeenCalledWith(
@@ -22,8 +22,7 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>. * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { SearchQueryBuilderService } from '@alfresco/adf-content-services'; import { SearchSortingDefinition, SearchQueryBuilderService } from '@alfresco/adf-content-services';
import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/search/models/search-sorting-definition.interface';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppTestingModule } from '../../../testing/app-testing.module'; import { AppTestingModule } from '../../../testing/app-testing.module';
import { SearchActionMenuComponent } from './search-action-menu.component'; import { SearchActionMenuComponent } from './search-action-menu.component';
@@ -22,8 +22,7 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>. * from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { SearchQueryBuilderService } from '@alfresco/adf-content-services'; import { SearchQueryBuilderService, SearchSortingDefinition } from '@alfresco/adf-content-services';
import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/search/models/search-sorting-definition.interface';
import { Component, EventEmitter, OnInit, Output, ViewEncapsulation, inject } from '@angular/core'; import { Component, EventEmitter, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
@@ -68,7 +68,7 @@ aca-search-in-menu {
padding: 8px 16px; padding: 8px 16px;
} }
@media screen and (max-width: 599px) { @media screen and (width <= 599px) {
position: fixed; position: fixed;
left: 50%; left: 50%;
top: 65px; top: 65px;
@@ -78,7 +78,7 @@ aca-search-in-menu {
overflow-y: auto; overflow-y: auto;
} }
@media screen and (max-width: 320px) { @media screen and (width <= 320px) {
top: 0; top: 0;
max-height: 100vh; max-height: 100vh;
} }
@@ -58,7 +58,7 @@ $search-border-radius: 4px;
gap: 4px; gap: 4px;
} }
@media screen and (max-width: 959px) { @media screen and (width <= 959px) {
$search-width-small: 400px; $search-width-small: 400px;
.aca-search-input { .aca-search-input {
@@ -70,13 +70,13 @@ $search-border-radius: 4px;
} }
} }
@media screen and (max-width: 599px) { @media screen and (width <= 599px) {
.aca-search-input { .aca-search-input {
max-width: 220px; max-width: 220px;
} }
} }
@media screen and (max-width: 380px) { @media screen and (width <= 380px) {
.aca-search-input { .aca-search-input {
max-width: 148px; max-width: 148px;
} }
@@ -122,7 +122,7 @@ export class SearchLibrariesResultsComponent extends PageComponent implements On
if (statusCode === 400) { if (statusCode === 400) {
this.appHookService.library400Error.next(); this.appHookService.library400Error.next();
} }
} catch (e) {} } catch {}
}) })
); );
@@ -277,7 +277,7 @@ aca-search-results {
} }
} }
@media (max-width: 320px) { @media (width <= 320px) {
.adf-search-results__content-header { .adf-search-results__content-header {
flex-direction: column; flex-direction: column;
} }
@@ -33,6 +33,7 @@ import {
SearchConfiguration, SearchConfiguration,
SearchFilterChipsComponent, SearchFilterChipsComponent,
SearchFormComponent, SearchFormComponent,
SearchSortingDefinition,
SearchQueryBuilderService, SearchQueryBuilderService,
TagService TagService
} from '@alfresco/adf-content-services'; } from '@alfresco/adf-content-services';
@@ -62,7 +63,6 @@ import {
PaginationDirective, PaginationDirective,
ToolbarComponent ToolbarComponent
} from '@alfresco/aca-shared'; } from '@alfresco/aca-shared';
import { SearchSortingDefinition } from '@alfresco/adf-content-services/lib/search/models/search-sorting-definition.interface';
import { filter, first, map, startWith, switchMap, take, tap, toArray } from 'rxjs/operators'; import { filter, first, map, startWith, switchMap, take, tap, toArray } from 'rxjs/operators';
import { AsyncPipe, CommonModule } from '@angular/common'; import { AsyncPipe, CommonModule } from '@angular/common';
import { TranslatePipe } from '@ngx-translate/core'; import { TranslatePipe } from '@ngx-translate/core';
@@ -82,7 +82,7 @@ describe('SaveSearchDirective', () => {
}); });
it('should open the dialog with the correct configuration', () => { it('should open the dialog with the correct configuration', () => {
spyOn(dialog, 'open'); spyOn(dialog, 'open').and.callThrough();
element.nativeElement.click(); element.nativeElement.click();
const expectedConfig: MatDialogConfig<SaveSearchDirectiveDialogData> = { const expectedConfig: MatDialogConfig<SaveSearchDirectiveDialogData> = {
@@ -105,7 +105,7 @@ describe('SaveSearchDirective', () => {
}); });
it('should open the dialog with the correct configuration', () => { it('should open the dialog with the correct configuration', () => {
spyOn(dialog, 'open'); spyOn(dialog, 'open').and.callThrough();
element.nativeElement.click(); element.nativeElement.click();
const expectedConfig: MatDialogConfig<SaveSearchDirectiveDialogData> = { const expectedConfig: MatDialogConfig<SaveSearchDirectiveDialogData> = {
@@ -16,7 +16,7 @@ app-create-from-template-dialog {
} }
&-create-button:enabled { &-create-button:enabled {
color: var(--theme-accent-color); color: var(--theme-primary-color);
} }
.app-create-from-template-footer-button { .app-create-from-template-footer-button {
@@ -516,7 +516,7 @@ export class ContentManagementService {
} else if (statusCode === 403) { } else if (statusCode === 403) {
i18nMessageString = 'APP.MESSAGES.ERRORS.PERMISSION'; i18nMessageString = 'APP.MESSAGES.ERRORS.PERMISSION';
} }
} catch (err) { } catch {
/* Do nothing, keep the original message */ /* Do nothing, keep the original message */
} }
@@ -75,7 +75,7 @@ describe('NodeActionsService', () => {
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
if (isForbidden) { if (isForbidden) {
reject(permissionError); reject(permissionError);
} else if (nameExistingOnDestination && options && options.name === nameExistingOnDestination) { } else if (nameExistingOnDestination && options?.name === nameExistingOnDestination) {
reject(conflictError); reject(conflictError);
} else { } else {
resolve(''); resolve('');
@@ -387,7 +387,7 @@ export class NodeActionsService {
error: { statusCode } error: { statusCode }
} = JSON.parse(err.message); } = JSON.parse(err.message);
errStatusCode = statusCode; errStatusCode = statusCode;
} catch (e) { } catch {
// //
} }
@@ -513,7 +513,7 @@ export class NodeActionsService {
error: { statusCode } error: { statusCode }
} = JSON.parse(err.message); } = JSON.parse(err.message);
errStatusCode = statusCode; errStatusCode = statusCode;
} catch (e) { } catch {
// //
} }
@@ -157,7 +157,7 @@ export class TemplateEffects {
try { try {
statusCode = JSON.parse(error.message).error.statusCode; statusCode = JSON.parse(error.message).error.statusCode;
} catch (e) { } catch {
statusCode = null; statusCode = null;
} }
@@ -39,7 +39,7 @@ ng-component {
@include mixins.flex-column; @include mixins.flex-column;
} }
@media screen and (max-width: 600px) { @media screen and (width <= 600px) {
app-root, app-root,
app-about, app-about,
adf-layout-container, adf-layout-container,
@@ -61,15 +61,6 @@
} }
} }
.adf-choose-action {
@include mat.button-overrides(
(
text-label-text-color: var(--theme-primary-color),
text-disabled-label-text-color: var(--adf-theme-foreground-text-color-054)
)
);
}
.adf-metadata-properties { .adf-metadata-properties {
@include mat.expansion-overrides( @include mat.expansion-overrides(
( (
@@ -178,6 +169,20 @@
.adf-add-permission-dialog-actions { .adf-add-permission-dialog-actions {
--mat-sys-surface: var(--theme-white-background); --mat-sys-surface: var(--theme-white-background);
> button + button {
@include mat.button-overrides(
(
text-label-text-color: var(--theme-primary-color),
text-disabled-label-text-color: var(--adf-theme-foreground-text-color-054)
)
);
}
> button + button.adf-choose-action {
--mat-sys-primary: var(--theme-primary-color);
--mat-sys-on-surface-variant: var(--adf-theme-foreground-text-color-054);
}
} }
// TODO get general designs from Shane and check styling for this part // TODO get general designs from Shane and check styling for this part
@@ -264,8 +269,6 @@
} }
.adf-permission-card { .adf-permission-card {
--mdc-elevated-card-container-color: var(--adf-theme-background-card-color);
.adf-local-permission-container .adf-permission-content-header button:disabled { .adf-local-permission-container .adf-permission-content-header button:disabled {
@include mat.icon-overrides( @include mat.icon-overrides(
( (
@@ -478,6 +481,14 @@
font-size: var(--mat-sys-body-small-size); font-size: var(--mat-sys-body-small-size);
} }
adf-login .adf-login-content .adf-error-message {
align-items: center;
.adf-error-icon {
color: var(--adf-theme-foreground-error-color);
}
}
adf-login .adf-login__field { adf-login .adf-login__field {
@include mat.form-field-overrides( @include mat.form-field-overrides(
( (
@@ -953,7 +964,11 @@
} }
app-comments-tab { app-comments-tab {
--mdc-elevated-card-container-elevation: none; @include mat.card-overrides(
(
elevated-container-elevation: none
)
);
} }
adf-library-dialog { adf-library-dialog {
+7 -3
View File
@@ -17,8 +17,6 @@ html {
:root { :root {
--mat-sys-on-surface: var(--adf-theme-foreground-text-color-087); --mat-sys-on-surface: var(--adf-theme-foreground-text-color-087);
--mdc-filled-text-field-container-color: transparent;
--mdc-text-button-label-text-color: inherit;
--mat-form-field-container-height: 47.5px; --mat-form-field-container-height: 47.5px;
--mat-sys-display-large-font: #{$default-font-family}; --mat-sys-display-large-font: #{$default-font-family};
--mat-sys-display-large-size: 112px; --mat-sys-display-large-size: 112px;
@@ -161,6 +159,7 @@ html {
outlined-disabled-outline-color: var(--adf-theme-foreground-text-color-040), outlined-disabled-outline-color: var(--adf-theme-foreground-text-color-040),
filled-label-text-size: 18px, filled-label-text-size: 18px,
filled-label-text-tracking: normal, filled-label-text-tracking: normal,
filled-container-color: transparent,
subscript-text-tracking: normal, subscript-text-tracking: normal,
filled-input-text-color: var(--adf-theme-foreground-text-color-087), filled-input-text-color: var(--adf-theme-foreground-text-color-087),
subscript-text-size: 12px subscript-text-size: 12px
@@ -177,6 +176,7 @@ html {
( (
text-state-layer-color: var(--adf-theme-foreground-base-color), text-state-layer-color: var(--adf-theme-foreground-base-color),
text-hover-state-layer-opacity: 0.04, text-hover-state-layer-opacity: 0.04,
text-label-text-color: inherit,
filled-disabled-container-color: var(--adf-disabled-button-background), filled-disabled-container-color: var(--adf-disabled-button-background),
text-label-text-tracking: normal, text-label-text-tracking: normal,
text-horizontal-padding: 8px, text-horizontal-padding: 8px,
@@ -479,7 +479,11 @@ mat-slide-toggle {
padding: 16px 0; padding: 16px 0;
color: var(--adf-theme-foreground-text-color-087); color: var(--adf-theme-foreground-text-color-087);
--mdc-dialog-supporting-text-color: var(--theme-primary-text); @include mat.dialog-overrides(
(
supporting-text-color: var(--theme-primary-text)
)
);
} }
#{ms.$mat-dialog-surface} { #{ms.$mat-dialog-surface} {
@@ -155,7 +155,7 @@ export class PreviewComponent extends PageComponent implements OnInit {
} }
await this.router.navigate([this.previewLocation, id]); await this.router.navigate([this.previewLocation, id]);
} catch (err) { } catch (err) {
if (!err || err.status !== 401) { if (err?.status !== 401) {
await this.router.navigate([this.previewLocation, id]); await this.router.navigate([this.previewLocation, id]);
} }
} }
@@ -90,7 +90,7 @@ export class FavoritesPageApi {
} }
}; };
return await Utils.retryCall(favorite); return await Utils.retryCall(favorite);
} catch (error) {} } catch {}
return isFavorite; return isFavorite;
} }
@@ -181,7 +181,7 @@ export class FileActionsApi {
logger.info(`waitForNodes: "${searchTerm}" — found ${totalItems}, expecting ${data.expect}`); logger.info(`waitForNodes: "${searchTerm}" — found ${totalItems}, expecting ${data.expect}`);
} }
return totalItems; return totalItems;
} catch (error) { } catch {
return 0; return 0;
} }
}; };
@@ -45,7 +45,7 @@ export class SharedLinksApi {
expiresAt: expireDate expiresAt: expireDate
}; };
return await this.apiService.share.createSharedLink(data); return await this.apiService.share.createSharedLink(data);
} catch (error) { } catch {
return null; return null;
} }
} }
@@ -31,7 +31,7 @@ type LaunchOptions = Parameters<typeof chromium.launch>[0];
try { try {
loadEnvFile(); loadEnvFile();
} catch (error) { } catch {
// .env file is optional, continue without it // .env file is optional, continue without it
} }
+11 -11
View File
@@ -4,17 +4,17 @@
"license": "LGPL-3.0", "license": "LGPL-3.0",
"scripts": {}, "scripts": {},
"peerDependencies": { "peerDependencies": {
"@angular/animations": "^19.2.0", "@angular/animations": "^20.3.0",
"@angular/common": "^19.2.0", "@angular/common": "^20.3.0",
"@angular/compiler": "^19.2.0", "@angular/compiler": "^20.3.0",
"@angular/core": "^19.2.0", "@angular/core": "^20.3.0",
"@angular/forms": "^19.2.0", "@angular/forms": "^20.3.0",
"@angular/material": "^19.2.0", "@angular/material": "^20.2.0",
"@angular/platform-browser": "^19.2.0", "@angular/platform-browser": "^20.3.0",
"@angular/router": "^19.2.0", "@angular/router": "^20.3.0",
"@ngrx/effects": "^19.2.0", "@ngrx/effects": "^20.1.0",
"@ngrx/router-store": "^19.2.0", "@ngrx/router-store": "^20.1.0",
"@ngrx/store": "^19.2.0", "@ngrx/store": "^20.1.0",
"@ngx-translate/core": "^17.0.0", "@ngx-translate/core": "^17.0.0",
"rxjs": "^7.4.0", "rxjs": "^7.4.0",
"tslib": ">=2.0.0", "tslib": ">=2.0.0",
@@ -1,4 +1,5 @@
@use '../../styles/mat-selectors' as ms; @use '../../styles/mat-selectors' as ms;
@use '@angular/material' as mat;
aca-open-in-app { aca-open-in-app {
.aca-open-in-app { .aca-open-in-app {
@@ -57,9 +58,16 @@ aca-open-in-app {
} }
} }
#{ms.$mat-button} { &-button-container {
--mat-mdc-button-persistent-ripple-color: unset; @include mat.button-overrides(
--mat-mdc-button-ripple-color: unset; (
text-ripple-color: transparent,
text-state-layer-color: transparent,
text-hover-state-layer-opacity: 0,
text-focus-state-layer-opacity: 0,
text-pressed-state-layer-opacity: 0
)
);
} }
} }
} }
@@ -6,7 +6,11 @@ aca-toolbar-action {
line-height: 32px; line-height: 32px;
#{ms.$mat-mdc-button}#{ms.$mat-button-base}#{ms.$mat-outlined-button}#{ms.$mat-unthemed} { #{ms.$mat-mdc-button}#{ms.$mat-button-base}#{ms.$mat-outlined-button}#{ms.$mat-unthemed} {
--mdc-outlined-button-label-text-color: var(--theme-secondary-text); @include mat.button-overrides(
(
outlined-label-text-color: var(--theme-secondary-text)
)
);
} }
@include mat.button-overrides( @include mat.button-overrides(
@@ -81,7 +81,7 @@ export class RouterExtensionService {
data: route.data data: route.data
} }
] ]
}; } as ExtensionRoute;
}); });
} }
+2 -2
View File
@@ -44,8 +44,8 @@
"@alfresco/aca-playwright-shared": ["projects/aca-playwright-shared/src/public-api.ts"], "@alfresco/aca-playwright-shared": ["projects/aca-playwright-shared/src/public-api.ts"],
"@alfresco/aca-playwright-shared/*": ["projects/aca-playwright-shared/src/*/index.ts"], "@alfresco/aca-playwright-shared/*": ["projects/aca-playwright-shared/src/*/index.ts"],
"package.json": ["package.json"], "package.json": ["package.json"],
"@angular/*": [ "./node_modules/@angular/*"], "@angular/*": ["./node_modules/@angular/*"],
"@ngx-translate/*": [ "./node_modules/@ngx-translate/*"] "@ngx-translate/*": ["./node_modules/@ngx-translate/*"]
} }
}, },
"exclude": ["node_modules"], "exclude": ["node_modules"],