mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
[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:
co-authored by
g-jaskowski
parent
e4d5f9c9ad
commit
745cd14024
+14
-17
@@ -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"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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 }) => {
|
||||||
|
|||||||
Generated
+2786
-7104
File diff suppressed because it is too large
Load Diff
+46
-41
@@ -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: {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
+8
-2
@@ -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;
|
||||||
|
|||||||
+1
-1
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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(
|
||||||
|
|||||||
+1
-2
@@ -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';
|
||||||
|
|||||||
+1
-2
@@ -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';
|
||||||
|
|||||||
+2
-2
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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 {}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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';
|
||||||
|
|||||||
+2
-2
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -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
@@ -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"],
|
||||||
|
|||||||
Reference in New Issue
Block a user