* AAE-47634 Add taskDetailsSource input to read task from
* AAE-47634 Fall back to Query strategy when taskDetailsSource is unsupported
* AAE-47634 Reset loading state when task details request fails
* AAE-47634 Reload task on taskDetailsSource change
* chore: migrate to Angular 20, TypeScript 5.9, and supporting packages
chore: migrate to Angular 20, TypeScript 5.9, and supporting packages
This commit migrates the Nx monorepo from Angular 19 to Angular 20
and updates all related dependencies to their compatible versions.
- @angular/core: 19.2.18 → 20.3.9
- @angular/material: 19.2.19 → 20.2.14
- @angular/cdk: 19.2.19 → 20.2.14
- @angular/material-date-fns-adapter: 19.2.19 → 20.2.14
- typescript: 5.8.3 → 5.9.3
- ng-packagr: 19.2.2 → 20.3.2
- @angular-devkit/build-angular: 19.2.19 → 20.3.16
- @angular-devkit/architect: 0.1902.19 → 0.2003.16
- @angular-devkit/core: 19.2.19 → 20.3.16
- @angular-devkit/schematics: 19.2.19 → 20.3.16
- @schematics/angular: 19.2.7 → 20.3.16
- @angular-eslint/eslint-plugin: 19.3.0 → 20.7.0
- @angular-eslint/eslint-plugin-template: 19.3.0 → 20.7.0
- @angular-eslint/template-parser: 19.3.0 → 20.7.0
- @typescript-eslint/eslint-plugin: 6.21.0 → 8.55.0
- @typescript-eslint/parser: 6.21.0 → 8.55.0
- @typescript-eslint/typescript-estree: 8.41.0 → 8.55.0
- @typescript-eslint/utils: ^8.51.0 → 8.55.0
- nx: 22.4.1 → 22.5.1
- @nx/angular: 22.1.3 → 22.5.1
- @nx/eslint-plugin: 22.3.3 → 22.5.1
- @nx/js: 22.1.3 → 22.5.1
- @nx/node: 22.1.3 → 22.5.1
- @nx/storybook: ^20.8.4 → 22.5.1
- @nx/workspace: 22.4.5 → 22.5.1
- @nx/webpack: 22.3.3 → 22.5.1
- storybook: ^10.2.0 → 10.2.8
- @storybook/angular: ^10.2.0 → 10.2.8
- @storybook/addon-themes: ^10.2.0 → 10.2.8
1. **PortalInjector Removal (Angular CDK 20)**
- Replaced PortalInjector usage with Injector.create()
- Updated context-menu-overlay.service.ts to use new API
2. **ESLint Configuration**
- Removed deprecated @typescript-eslint/brace-style rule
- This rule was removed in @typescript-eslint v8
All libraries build successfully:
- ✅ js-api
- ✅ extensions
- ✅ core
- ✅ content-services
- ✅ process-services
- ✅ process-services-cloud
- ✅ insights
Dependencies were installed using npm install --legacy-peer-deps due to
peer dependency conflicts with @mat-datetimepicker/core which requires
Angular CDK ^19.0.0 but we are using 20.2.14.
- ESLint warnings about @angular-eslint/prefer-inject are expected - this
is a new recommendation in Angular 20 to use inject() function instead
of constructor injection. These can be addressed in a follow-up PR.
chore: migrate to Angular 20, TypeScript 5.9, and supporting packages
This commit migrates the Nx monorepo from Angular 19 to Angular 20
and updates all related dependencies to their compatible versions.
- @angular/core: 19.2.18 → 20.3.9
- @angular/material: 19.2.19 → 20.2.14
- @angular/cdk: 19.2.19 → 20.2.14
- @angular/material-date-fns-adapter: 19.2.19 → 20.2.14
- typescript: 5.8.3 → 5.9.3
- ng-packagr: 19.2.2 → 20.3.2
- @angular-devkit/build-angular: 19.2.19 → 20.3.16
- @angular-devkit/architect: 0.1902.19 → 0.2003.16
- @angular-devkit/core: 19.2.19 → 20.3.16
- @angular-devkit/schematics: 19.2.19 → 20.3.16
- @schematics/angular: 19.2.7 → 20.3.16
- @angular-eslint/eslint-plugin: 19.3.0 → 20.7.0
- @angular-eslint/eslint-plugin-template: 19.3.0 → 20.7.0
- @angular-eslint/template-parser: 19.3.0 → 20.7.0
- @typescript-eslint/eslint-plugin: 6.21.0 → 8.55.0
- @typescript-eslint/parser: 6.21.0 → 8.55.0
- @typescript-eslint/typescript-estree: 8.41.0 → 8.55.0
- @typescript-eslint/utils: ^8.51.0 → 8.55.0
- nx: 22.4.1 → 22.5.1
- @nx/angular: 22.1.3 → 22.5.1
- @nx/eslint-plugin: 22.3.3 → 22.5.1
- @nx/js: 22.1.3 → 22.5.1
- @nx/node: 22.1.3 → 22.5.1
- @nx/storybook: ^20.8.4 → 22.5.1
- @nx/workspace: 22.4.5 → 22.5.1
- @nx/webpack: 22.3.3 → 22.5.1
- storybook: ^10.2.0 → 10.2.8
- @storybook/angular: ^10.2.0 → 10.2.8
- @storybook/addon-themes: ^10.2.0 → 10.2.8
1. **PortalInjector Removal (Angular CDK 20)**
- Replaced PortalInjector usage with Injector.create()
- Updated context-menu-overlay.service.ts to use new API
2. **ESLint Configuration**
- Removed deprecated @typescript-eslint/brace-style rule
- This rule was removed in @typescript-eslint v8
All libraries build successfully:
- ✅ js-api
- ✅ extensions
- ✅ core
- ✅ content-services
- ✅ process-services
- ✅ process-services-cloud
- ✅ insights
Dependencies were installed using npm install --legacy-peer-deps due to
peer dependency conflicts with @mat-datetimepicker/core which requires
Angular CDK ^19.0.0 but we are using 20.2.14.
- ESLint warnings about @angular-eslint/prefer-inject are expected - this
is a new recommendation in Angular 20 to use inject() function instead
of constructor injection. These can be addressed in a follow-up PR.
To fix these automatically, run:
ng generate @angular/core:inject --path=lib
fix: resolve peer dependency conflicts for CI/CD
- Update @mat-datetimepicker/core from 15.0.2 to 16.0.1 (supports Angular 20)
- Update webpack override to 5.104.1 for consistency
- Add .npmrc with legacy-peer-deps=true for npm ci compatibility
- Fixes npm ci failures in CI/CD pipeline
fix: update webpack to 5.105.0 for Storybook compatibility
- Align webpack version with @angular-devkit/build-angular bundled version
- Fixes Storybook compilation error with webpack instance mismatch
- Removes unnecessary webpack overrides
chore: finalize Angular 20 migration and improve migration prompt
- Marked all migration tasks as completed in the migration plan.
- Added a comprehensive summary of the migration process, including phases, completed tasks, and known issues.
- Introduced an improved migration prompt that addresses critical considerations and provides a detailed migration strategy for Angular 20 and related packages.
fix: update migration prompt and tests for Angular 20 breaking changes
- Enhanced migration prompt with specific instructions for handling Angular CDK Directionality API changes and removal of ng-reflect-* attributes.
- Updated unit tests to replace deprecated ng-reflect-* attribute checks with appropriate Angular testing patterns.
- Adjusted user preferences service to utilize the new directionality API method for setting text direction.
fix: enhance ImgViewerComponent to handle cleanup and prevent errors after destruction
- Added a `destroyed` flag to manage component lifecycle and prevent operations on a destroyed instance.
- Implemented `afterEach` hooks in tests to ensure proper fixture cleanup.
- Updated key event handlers and methods to check for the `destroyed` state before executing actions, improving stability and preventing errors.
feat: update ESLint configuration to include @angular-eslint/prefer-inject rule
- Added the @angular-eslint/prefer-inject rule to .eslintrc.json files in content-services, process-services, and process-services-cloud, promoting the use of the inject() function for dependency injection.
- Made minor adjustments to comments in search-logical-filter.component.ts for clarity.
chore: update ESLint configuration to include @angular-eslint/prefer-inject rule
- Added the @angular-eslint/prefer-inject rule to .eslintrc.json files in extensions, insights, and js-api, promoting the use of the inject() function for dependency injection.
- Removed unnecessary eslint-disable comments in process-list-cloud.component.ts and base-task-list-cloud.component.ts for cleaner code.
remove unnecessary changes
remove useless changes
cleanup useless changes
remove useless changes
Update package.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
chore: update version of @ngx-translate/core to 17.0.0 in package.json and package-lock.json
Update package.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Update package.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Update .npmrc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
chore: upgrade apollo-angular and jest packages to support Angular 20
- Upgrade apollo-angular from 10.0.3 to 13.0.0
- Upgrade @apollo/client from 3.13.1 to ^4.0.1
- Upgrade jest packages to v30 (jest, jest-environment-jsdom)
- Upgrade jest-preset-angular from 14.4.2 to 16.1.1
- Add overrides for Angular 20 peer dependency compatibility
chore: downgrade @apollo/client and apollo-angular to compatible versions
chore: downgrade @apollo/client and apollo-angular to compatible versions
chore: remove unused configuration options from jest and tsconfig
chore: refactor window.location mock in oauth2 tests for improved clarity and functionality
chore: enhance oauth2Auth tests and improve hash handling logic
chore: remove @typescript-eslint/brace-style rule from ESLint configuration
chore: add prefer-optional-chain rule to ESLint configuration
chore: update ESLint rules for optional chaining and refactor type definitions
chore: refactor tests to use TestBed for dependency injection in FileViewer and ProcessFormRendering services
chore: update AttachFileWidgetComponent to ensure early return after download
chore: update AttachFileWidgetComponent to ensure early return after download
chore: update unselectFacetBucket method to use optional chaining for safer property access
* chore: clean up package-lock.json and update webpack version in package.json
* [ACS-11306] Corrected main for eslint-angular
* [ACS-11306] Reverted unwanted change
* [ACS-11306] Fixed importing issue on ACA
* [ACS-11306] Updated node-fetch
* [ACS-11306] Reverted last commit
* [ACS-11306] Fixed rendering issue with pdf viewer
* [ACS-11306] Corrected storybook related versions
* Updating dependencies and fixing conflict
* [ACS-11306] Fixed cannot find name Buffer occurred in ACA
* chore: Updating pnpm lock file
* chore: Fixing ESLint issue
* chore: Upgrading to version 20.3.24 to avoid security issue
* chore: Fixing unit test
* chore: Fixing type and exporting missing model
* chore: Fixing type
* Chore: Migrating to Angular 20.3.25 to mitigate security issues
* Fix after rebase
* Removing unused deps
* Aligning deps
* fix create dialog name field hint (#12007)
---------
Co-authored-by: Aleksander Sklorz <Aleksander.Sklorz@hyland.com>
Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com>
Co-authored-by: Grzegorz Jaśkowski <138671284+g-jaskowski@users.noreply.github.com>
* [ACS-11928] convert ReadStream to Blob before appending to FormData
* [ACS-11928] comments removed from toFormDataValue
* Trigger Build
* [ACS-11928] added unit tests and changed the blob variable name to data
* [ACS-11928] unit tests updated
* [ACS-11928] updated type in multipart form data upload
* [ACS-11928] sonar cloud fix
Align the Crowdin commit-signing secret and git identity variables with
the renamed org-level names (HXPS_GIT_COMMIT_SIGNING_PRIVATE_KEY,
HXPS_GIT_USERNAME, HXPS_GIT_EMAIL).
Co-authored-by: Cursor <cursoragent@cursor.com>
* AAE-46943 Sign Crowdin translation PR commits with GPG
Add GPG signing and the service-account commit identity to the Crowdin
pull workflow so automated-translations-update commits satisfy the
"Require signed commits" branch protection rule.
* AAE-46943 Pass signing key secret through reusable Crowdin workflow
Declare SERVICE_ACCOUNT_SIGNING_KEY in workflow_call.secrets and pass it
from release.yml so commit signing also works when pull-from-crowdin is
invoked as a reusable workflow.
* [AAE-46514] - Fix release workflow
* [AAE-46514] - Fix release workflow - devDependencies
* [AAE-46514] - Disabling provenance for Github packages as this is already given from the repo
* [AAE-46514] - Fix release workflow
* [AAE-46514] - Fix release workflow - devDependencies
* [AAE-46514] - Command parameters are wrong when setting now the options
* [AAE-46514] - It should call the script not the standard command
* [AAE-46514] - fixed path for eslint plugin publish
* [AAE-46514] - Fix release workflow
* [AAE-46514] - Fix release workflow - devDependencies
* [AAE-46514] - Command parameters are wrong when setting now the options
* [AAE-46514] - It should call the script not the standard command
* [AAE-46514] - using by default ignore-scripts and have a trusted list for those who are trusted
* [AAE-46514] - Improved the checks to cover more cases
* [AAE-46514] - Fixed copilot comments
* [AAE-46514] - OTher fixes
* [AAE-46514] - Fixing other improvements and comments
* [AAE-46514] - npmrc should be versioned to enforce the audit
* [AAE-46514] - Improved code
* [AAE-46514] - Removed the check on CI as we have other tools
* [AAE-46514] - Improved check, updated descriptions, skip check on CI as there is already Sonar
* [AAE-46514] - Reduced functions in smaller pieces
* [AAE-46514] - Migrating to Pnpm to increase safety
* [ci:force] - Checking
* [ci:force] - Fixed complexity of the scripts
* [ci:force] - Fixed complexity of the scripts
* [ci:force] - Fixed wrong typing on yml
* [ci:force] - Fixed sonar comments and added correct version to sha pinned action
* [ci:force] - Fixed cache hit for npmn
* [ci:force] - Improved eslint plugin so it can be built with standard action
* [ci:force] - Improved eslint plugin so it can be built with standard action
* [ci:force] - Added minimatch
* [ci:force] - Fixing issues
* [ci:force] - Removed 'run' as it is not needed
* [ci:force] - Using audit in place of custom scripts
* [ci:force] - Fixed vulnerabilities and removed custom scripts in favor of audit --critical
* [ci:force] - Added minimum time for publishing to install
* [ci:force] - Address issue with too new packages
* [ci:force] - Address issue with too new packages
* AAE-41418 Add process instance id input to task header cloud component
* AAE-41418 Remove falsy early returns from task header process instance id helpers
* AAE-41418 Move process instance id fallback into task header refresh
Reverts the following commits:
- 80e9e51cfa AAE-46242 - Looks like we need to override the mapping as crowding config is not set to this format
- 345e1e69ad AAE-46242 - should use the variable osx_locale to match the format xx-YY
- a2b026ed7e [AAE-46242] - Changed the name convention for translation files to ISO standard naming
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* chore: update NX packages to version 22.7.2 and related dependencies
* chore: add @nx/jest dependency at version 22.7.2
* chore: remove deprecated @types/pdfjs-dist dependency
Demonstration revert PR to check whether PRs #11880 and #11899 caused
the recent ADF release failures. The PR pipeline result will indicate
whether reverting the `cli:build` dependsOn edge (#11880) and the
`--omit=prod` install command (#11899) is sufficient to restore green
CI.
Reverts the relevant pieces of:
- #11880 (e3430ae36e): removes `dependsOn: ["installDeps"]` from
`cli:build`, and reverts the @typescript-eslint bump from 8.59.3
back to 8.57.2 / 8.41.0 in package.json + package-lock.json.
The dependabot `@typescript-eslint/*` grouping config is kept.
- #11899 (4044fafc39): restores the `cli:installDeps` command back
to plain `cd lib/cli && npm i` (the `--omit=prod` value is not a
valid npm flag).
Not intended for merge.
Co-authored-by: Cursor <cursoragent@cursor.com>
* [ci:force] AAE-46219 Remove redundant installDeps dependency from cli build target
The build target's installDeps dependency is already covered transitively
via bundle -> copyToNodeModules -> installDeps, and the duplicate npm i
caused a race condition that broke the ADF release.
Co-authored-by: Cursor <cursoragent@cursor.com>
* AAE-46219 Skip prod deps in cli:installDeps to unblock release
The release workflow rewrites lib/cli/package.json so @alfresco/js-api
points at an unpublished build-tagged version, then nx triggers
cli:installDeps (cd lib/cli && npm i) which fails ETARGET. tsc only
needs the devDependencies (typescript, @types/ejs, @types/node);
@alfresco/js-api is resolved via the tsconfig "paths" mapping to
dist/libs/js-api, not from node_modules. Adding --omit=prod skips the
unresolvable runtime deps without affecting the published package.
Also restores the build -> installDeps edge so tsc and npm install
do not race in lib/cli/node_modules.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove eslint-plugin-prefer-arrow dependency as the only rule from this plugin (prefer-arrow/prefer-arrow-functions) was disabled in all ESLint configurations.
* [AAE-45695] Group @typescript-eslint/* packages in dependabot
@typescript-eslint/parser and @typescript-eslint/eslint-plugin must be
bumped together (matching versions) due to a peer-dependency between
them. Grouping all @typescript-eslint/* packages ensures Dependabot
updates them in lock-step instead of opening separate PRs that fail
npm ci with a peer-dep conflict.
Co-authored-by: Cursor <cursoragent@cursor.com>
* [ci:force] AAE-45695 Bump @typescript-eslint/parser and eslint-plugin to 8.59.3
Bump both packages together (peer-dep requires matching versions) to
unblock the Dependabot bump that was previously failing.
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* [AAE-45391] - Lazy loading some of the big external libs
* [AAE-45391] - Added some extra units to pdfjs viewer
* [AAE-45391] - Some improement on viewer component
* [AAE-45391] - Fixed the way it was redered to a newer angular system
* [AAE-45391] - Fixed the way it was redered to a newer angular system
* [AAE-45391] - fixed schematic
* [AAE-45391] - Added some docs for the schematics as well
* [AAE-37328] - Fixed comment on missing provider
* AAE-44946 - Sending also previous value to allow valuation and validation
* AAE-44946 - Sending also previous value to allow valuation and validation
* AAE-44749 - Fixed wrong subscribe in test
* AAE-45038 - Fixing logs and unit tests
* Update package dependencies: remove unused 'picomatch' and 'minimatch' modules from package-lock.json, and add specific versions for 'picomatch', 'minimatch', 'path-to-regexp', and 'serialize-javascript' in package.json.
* Upgrade nx and @nx/workspace to fix minimatch vulnerabilities
- Upgrade nx from 22.4.1 to 22.6.3
- Upgrade @nx/workspace from 22.4.5 to 22.6.3
- Remove minimatch override to maintain Karma compatibility
This resolves the high severity minimatch vulnerabilities while
keeping tests functional.
* Refactor nx.json: Consolidate sharedGlobals array and add analytics flag
- Merged multiple lines in the sharedGlobals array for better readability.
- Added an analytics flag set to false for configuration.
* Update package dependencies: bump @nx packages to version 22.6.5 [ci:force]
* Add test specifications for feature flags and user initial pipe [ci:force]
- Introduced new selectors for feature flag components in `features.directive.spec.ts` and `not-features.directive.spec.ts`.
- Added an injectable sanitizer class in `user-initial.pipe.spec.ts` to enhance testing capabilities.
- Created a new log file `out.txt` to capture Karma test execution details and warnings.
* AAE-44184 Colspan setting on form fields is ignored or not properly applied
* AAE-44184 Better handling of empty columns
* AAE-44184 Fixing stale adf-form-field instances
* AAE-44184 Consolidating duplicate code
* AAE-28918 Fix start process button is enabled when required widgets are read only without value
* Apply Copilot review suggestions.
* updates after code review comments
* revert change made earlier
* [AAE-43749] added date formatting according to locale
* [AAE-43749] applied pr comments
* [AAE-43749] pipe use default date format reacting to locale
* [ACS-10280]: move selection handling to row
* [ACS-10280]: clean up
* [ACS-10280]: rollback title
* [ACS-10280]: migrate to conditional aria-hidden
* [ACS-10280]: revert to fix hxp
* [ACS-10280]: sonar fix
* [ACS-10280] Use new Angular control flow syntax
* [ACS-10280] Unit test fix
---------
Co-authored-by: MichalKinas <michal.kinas@hyland.com>
* [ACS-11153] Removed usages of ng reflect from card view dateitem and diagram activities
* [ACS-11153] Removed usages of ng-reflect
* [ACS-11153] Added eslint rule
* AAE-33828 fix for the runtime errors on datatable should be handled in runtime
* AAE-33828 removing the unwanted try catches
* AAE-33828 adding units to test the number value is a valid value
* refactor: improve context menu overlay service implementation
- Introduced a new interface for overlay references with backdrop handling.
- Updated event listener for backdrop clicks to use the new interface, enhancing type safety.
- Refactored the injector creation method to utilize the Injector.create method for better clarity and maintainability.
- Improved the fake element's type definition in the getOverlayConfig method for better type inference.
These changes enhance the overall robustness and readability of the context menu overlay service.
* refactor: enhance type safety in context menu components
- Introduced the ContextMenuItem interface to improve type definitions for context menu items.
- Updated the ContextMenuListComponent to use ContextMenuItem for links and menu item parameters, enhancing clarity and maintainability.
- Modified CONTEXT_MENU_DATA injection token to specify ContextMenuItem[] for better type safety.
- Adjusted the ContextMenuOverlayConfig interface to accept an array of ContextMenuItem, ensuring consistent data handling.
These changes improve the overall robustness and readability of the context menu implementation.
[ci:force]
* refactor: remove unnecessary eslint-disable comments in category management and search components
- Eliminated eslint-disable comments related to no-underscore-dangle in the CategoriesManagementComponent and SearchControlComponent tests, improving code clarity and adherence to linting rules.
- This change enhances the overall readability of the test files by ensuring consistent coding standards.
* refactor: simplify backdrop click handling in context menu overlay service
- Removed the unnecessary backdrop click handling logic, replacing it with a direct call to close the overlay reference. This change enhances code clarity and reduces complexity in the event listener implementation.
* refactor: streamline backdrop handling in context menu overlay service
- Removed the custom interface for overlay references with backdrop handling, simplifying the code.
- Updated the event listener for backdrop clicks to directly use the overlay's backdropElement, enhancing clarity and maintainability.
- This change improves the overall robustness of the context menu overlay service.
* refactor: clean up code in SuperagentHttpClient and upload.spec
- Removed unnecessary eslint-disable comment in SuperagentHttpClient for improved code clarity.
- Refactored promise handling in upload.spec to utilize an array for better management of multiple promises during file upload error handling.
* chore: update cspell and ESLint configurations
- Added "webscript" to the cspell dictionary for improved spell checking.
- Updated ESLint configuration to disable the "@typescript-eslint/no-explicit-any" rule, allowing more flexibility in type definitions.
* fix: enhance ImgViewerComponent to handle cleanup and prevent errors after destruction
- Added a `destroyed` flag to manage component lifecycle and prevent operations on a destroyed instance.
- Implemented `afterEach` hooks in tests to ensure proper fixture cleanup.
- Updated key event handlers and methods to check for the `destroyed` state before executing actions, improving stability and preventing errors.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix: add aria-hidden attribute to notification history button for accessibility
- Updated the notification history button to include the `aria-hidden` attribute, improving accessibility for screen readers and enhancing user experience.
* fix: improve key event handling in ImgViewerComponent
- Updated key event handlers to check for the presence of the cropper before executing actions, enhancing stability and preventing errors when the component is destroyed.
- Removed redundant checks from individual arrow key handlers, streamlining the code.
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
- Modified several components to use optional chaining for safer property access, enhancing code robustness.
- Updated ESLint configuration to enforce stricter rules on the use of optional chaining.
- Adjusted tests to reflect changes in property access patterns.
* Refactor enums to const objects and update ESLint rules
- Converted several TypeScript enums to const objects for better type inference and immutability.
- Updated ESLint configuration to disable 'no-redeclare' rule and added new restrictions on schema usage.
- Adjusted package-lock.json to mark several dependencies as peer dependencies.
* Refactor enums to const objects in site-dropdown and new-version-uploader models
- Converted TypeScript enums to const objects for improved type safety and immutability in `sites-dropdown.component.ts` and `new-version-uploader.model.ts`.
- Updated related types to reflect the changes in both files.
- Enhanced error handling in the `DropdownSitesComponent` by using the `subscribe` method with an object for better readability.
* Refactor TypeScript types and improve error handling in component tests
- Updated type annotations in `upload.service.ts` and `node-actions.service.ts` for better type safety.
- Enhanced error handling in various component tests by using more descriptive error messages in `task-attachment-list.component.spec.ts`, `attach-file-widget-dialog.component.spec.ts`, and `task-form.component.spec.ts`.
- Removed unnecessary schemas from test configurations in several component spec files to streamline the testing setup.
* Refactor TypeScript enums to const objects for improved type safety
- Converted multiple TypeScript enums to const objects across various models, including `AppConfigValues`, `Status`, `ShowHeaderMode`, `WidgetTypeEnum`, and others.
- Updated related type definitions to enhance type inference and immutability.
- Adjusted ESLint configurations by removing the 'no-redeclare' rule to streamline code quality checks.
* Refactor TypeScript types for improved type safety and consistency
- Updated type annotations in `document-list.component.ts`, `document-actions.service.ts`, and `node-actions.service.ts` to use `Observable` instead of `Subject` for better reactive programming practices.
- Enhanced type definitions in `search-date-range.component.ts` and related spec files to allow `inLastValue` to be either a string or a number, improving flexibility in handling date range inputs.
- Adjusted test cases to reflect these type changes, ensuring consistency across the application.
* Enhance type safety in ViewerComponent by specifying type for closeButtonPosition
- Updated the type annotation for `closeButtonPosition` in `viewer.component.ts` to explicitly define it as `CloseButtonPosition`, improving type safety and clarity.
* Enhance type safety in DataTableComponent by specifying type for showHeader
- Updated the type annotation for `showHeader` in `datatable.component.ts` to explicitly define it as `ShowHeaderMode`, improving type safety and clarity.
* Update PDF viewer test to accommodate varying date formats
- Modified the test for the annotation popup in `pdf-viewer.component.spec.ts` to check for the presence of date components instead of a specific date format, enhancing test robustness across different locales.
* [ACS-10193] make library title bolder to indicate it is a link
* [ACS-10193] use higher font weight
* [ACS-10193] move weight to proper scss file
* [ACS-10193] fix css class encapsulation
* [ACS-10281] a11y fix: Approve step folder control is focusable twice
* [ci:force]
* [ACS-10281] revert to div
* [ACS-10281] a11y fix: Approve step folder control is focusable twice
* fix for e2e's
* [ACS-10302] Add aria-live to selected aspects counter
* [ACS-10302] Add the live announcer for amount of selected items in breadcrumb
* [ACS-10302] CR fixes
* [ACS-10274] Corrected reading green check mark and red cross by screen reader
* [ACS-10274] Unit tests, cleaning code, centering content
* [ACS-10274] Fixed formatting
* [ACS-10274] Moved code for getting cell to unit testing utils
Removes specific styling for the icon button in array items
to inherit the correct color.
This ensures the button's icon color aligns with the theme.
Fixes AAE-41713
* AAE-41553 Fix CI validation on crowdin PRs
* trigger pull after crowdin push to keep the translation PR up to date
* pass only required secrets to workflow call to make sonar happy
* AAE-40748 Various i18n and storage bug fixes
* refactor: update NoopTranslateModule to use provideHttpClient and provideHttpClientTesting
Replaced HttpClientTestingModule with provideHttpClient and provideHttpClientTesting for improved dependency injection in the NoopTranslateModule.
* refactor: update FileUploadErrorPipe tests to use TestBed for dependency injection
Replaced direct instantiation of FileUploadErrorPipe with TestBed configuration, utilizing NoopTranslateModule for improved testing practices.
* test: enhance StorageService and UserPreferencesService tests for improved initialization logic
Added tests for UserPreferencesService to verify locale and pagination initialization from storage and config. Updated StorageService tests to restore original localStorage after each test for better isolation.
* refactor: simplify TranslationService by removing direct StorageService dependency
* [ACS-10205]: updates base DataTableAdapter class with optional props
* [ACS-10205]: updates ShareDataTableAdapter with new props for focus handling
* [ACS-10205]: bind new focus props to template
* [ACS-10205]: uts update
* [ACS-10205]: uts refactor
* [ACS-10205]: fixes circullar deps
* AAE-40934 style: replace mat-raise-button with mat-flat-button
* AAE-40934 style: remove unnecessary color declarations from material buttons, rely on MD3 default primary button color
Implements the ability to close the dropdown list by pressing the Escape key.
This enhances the user experience by providing a keyboard shortcut to dismiss the dropdown, improving accessibility and efficiency.
* AAE-40359 Filter out service processes on start process
* AAE-40359 Filter out service processes on start process
* make triggerable optional
* make type more strict
* Replace shelljs with native node api
* Refactor command execution in audit and changelog scripts to use spawnSync for improved security and error handling
* Simple Templates: Keep templates as simple as possible, avoiding complex logic directly in the template. Delegate complex logic to the component's TypeScript code.
* Native Control Flow: Use the new built-in control flow syntax (`@if`, `@for`, `@switch`) instead of the older structural directives (`*ngIf`, `*ngFor`, `*ngSwitch`).
* NgOptimizedImage: Use `NgOptimizedImage` for all static images to automatically optimize image loading and performance.
* Async Pipe: Use the `async` pipe to handle observables in templates. This automatically subscribes and unsubscribes, preventing memory leaks.
* Prefer pipes over functions in templates for performance reasons, as pipes are only re-evaluated when their inputs change.
## Accessibility Standards
* Add `alt` text to all images
* Label form inputs with `<mat-label>` or `aria-label`
* Ensure interactive elements have accessible names
* Add `role`, `aria-labelledby`, and `aria-describedby` when semantic HTML isn't sufficient
* All interactive elements must be keyboard accessible
* Ensure 4.5:1 contrast ratio for normal text, 3:1 for large text
* Use `aria-live="polite"` for status updates
* Watch out for misused/non-semantic elements (e.g., <div> instead of <section>)
* Strict Type Checking: Always enable and adhere to strict type checking. This helps catch errors early and improves code quality.
* Prefer Type Inference: Allow TypeScript to infer types when they are obvious from the context. This reduces verbosity while maintaining type safety.
* Avoid `any`: Do not use the `any` type unless absolutely necessary as it bypasses type checking. Prefer `unknown` when a type is uncertain and you need to handle it safely.
* Use strict null checks (no `null` or `undefined` without explicit handling)
* Use type guards and union types for robust type checking
* Check for missing return types in function signatures
* Avoid implicit `any` (untyped function parameters)
## Naming Conventions
* Use PascalCase for types, interfaces, and classes
* Use camelCase for variables, functions, and methods
* Use UPPER_CASE for constants
## Modern TypeScript Patterns
* Use optional chaining (`?.`) and nullish coalescing (`??`)
* Prefer `const` over `let`; never use `var`
* Use arrow functions for callbacks and short functions
* Avoid enums - they generate additional code at compile time, which increases the size of the final file. This can have a negative impact on the loading speed and performance of the app. Prefer union types or literal types instead.
* Avoid unhandled promise rejections (missing .catch() or try/catch)
* Standalone Components: Always use standalone components, directives, and pipes. Avoid using `NgModules` for new features or refactoring existing ones.
* Implicit Standalone: When creating standalone components, you do not need to explicitly set `standalone: true` inside the `@Component`, `@Directive` and `@Pipe` decorators, as it is implied by default.
* Lazy Loading: Implement lazy loading for feature routes to improve initial load times of your application.
* Use Angular Material or other modern UI libraries for consistent styling and UI components.
* Implement proper error handling with RxJS operators (e.g., catchError)
* Verify if newly added functionalities can utilize Angular Signals for fine-grained reactivity, reducing change detection overhead.
* Utilize AOT (Ahead-of-Time) compilation and tree-shaking for efficient, smaller bundle sizes.
* Prefer class binding over `ngClass` and `ngStyle` for better performance.
* Use protected on class members that are only used by a component's template, as it allows for better encapsulation while still being accessible to the template.
* Use readonly for properties that shouldn't change.
* Use `takeUntilDestroyed` & `destroyRef`: The `takeUntilDestroyed` and `destroyRef` have been introduced with Angular 16 and help to reduce boilerplate code related to unsubscribing on the `OnDestroy` hook.
* Organize the order of properties and methods in Angular components for readability and maintainability. Recommended order is:
1.**Injected services** Whether they are public or private, it's clear they are dependencies of the class.
2.**Inputs**: Properties that receive data from outside.
3.**Outputs**: Events that the component can trigger.
4.**ViewChild/ContentChild**: References to HTML elements.
5.**Public static properties**: Constants and static members that are accessible to everyone.
6.**Readonly properties**: Immutable public properties.
7.**Public properties**: Data and functions available to everyone.
8.**Private static properties**: Constants and static members that are only accessible within the class.
10.**Private properties**: Data and functions used only inside the component.
11.**Setters and Getters**: Methods for accessing and modifying properties.
12.**Constructor**: Used to initialize the component.
13.**Lifecycle Hooks**: Methods that run at specific times in the component’s lifecycle.
14.**Public methods**: Functions available to everyone.
15.**Private methods**: Functions used only inside the component.
## Components
* Single Responsibility: Keep components small, focused, and responsible for a single piece of functionality.
* Reactive Forms: Prefer Reactive forms over Template-driven forms for complex forms, validation, and dynamic controls due to their explicit, immutable, and synchronous nature.
* Use Typed Forms: Typed Forms in Angular are a new feature introduced in Angular 14 that provide stronger type checking for reactive forms. They allow developers to define the structure and types of form controls, making it easier to catch errors at compile-time rather than runtime.
## Services
* Single Responsibility: Design services around a single, well-defined responsibility.
*`providedIn: 'root'`: Use the `providedIn: 'root'` option when declaring injectable services to ensure they are singletons and tree-shakable.
*`inject()` Function: Prefer the `inject()` function over constructor injection when injecting dependencies, especially within `provide` functions, `computed` properties, or outside of constructor context.
## Unit testing
* Write unit tests for components, services, and pipes using Jasmine and Karma.
* Test cases should be reasonably groupped based on tested functionality/behaviour using describe blocks.
* Use plain English test names based on the should <expectedBehavior> when <stateUnderTest> pattern as a guideline.
* Use Angular's TestBed for component testing with mocked dependencies
* Avoid Direct Calls to Component Lifecycle Hooks: Instead of directly invoking lifecycle hooks like `ngOnInit()`, use Angular's testing utilities to trigger them naturally. For example, use `fixture.detectChanges()` to trigger change detection, which will automatically call `ngOnInit()` and other lifecycle hooks in the correct order.
* Use fixture.componentRef.setInput() Instead of Direct Input Assignment: When testing components with inputs, use `fixture.componentRef.setInput()` to set input values. This method ensures that Angular's change detection is properly triggered, allowing the component to react to input changes as it would in a real application.
* Use the Provide Mock Store for testing components that rely on NgRx state management. This allows you to mock the store and control the state during tests without needing to set up a full NgRx environment.
* Mock HTTP requests using provideHttpClientTesting
* Import only the minimal required modules
* Avoid NO_ERRORS_SCHEMA and CUSTOM_ELEMENTS_SCHEMA in tests to ensure proper error detection
You are a supply chain security analyst reviewing a pull request for dependency changes.
Your goal is to identify any dependency additions or upgrades and produce a thorough risk assessment for each change, covering known vulnerabilities, typosquatting, maintainer takeover, install script abuse, version anomalies, source code changes, and project health.
You are the primary and only analysis engine. There is no secondary check. Be thorough but calibrated: false positives erode trust, but missed threats have severe consequences.
## Step 1 — Identify Dependency Changes
Read the pull request diff and find all modified dependency files (`package.json`, `package-lock.json`, `pom.xml`, `yarn.lock`, `build.gradle`, etc.). For each changed dependency extract:
- Package name (including scope/groupId if applicable)
- Ecosystem (`npm` or `maven`)
- Old version (or mark as `NEW DEPENDENCY` if newly added)
- New version
If no dependency files were changed, post a brief PR comment stating that no dependency changes were detected and no review is needed, then stop.
## Step 1b — Filter Internal Dependencies
Before collecting external data, identify and exclude internal/private dependencies that cannot be resolved by public APIs.
**Internal dependency namespaces (skip these):**
- **Maven**: Any dependency with a `groupId` starting with `com.hyland.`, `org.alfresco.`, or `org.activiti.`
- **npm**: Any package under the `@hyland/`, `@hylandsoftware/`, or `@alfresco/` scopes
For each internal dependency found:
1. Remove it from the analysis pipeline — do NOT query OSV.dev, OpenSSF Scorecard, or registry APIs for these packages (they will fail or return irrelevant data).
2. Record the package name (with `@` replaced by `(at)` for GitHub comment compatibility), ecosystem, old version, and new version in a separate "Internal Dependencies (Skipped)" list.
3. Continue with Step 2 only for the remaining external/public dependencies.
If ALL changed dependencies are internal, skip Steps 2-4 and proceed directly to Step 5, posting a report that lists the internal dependencies and notes that no external supply chain analysis was performed.
## Step 2 — Collect Data for Each Dependency
For every changed dependency, gather the following data. Fetch all data sources in parallel where possible. If any request fails or returns no data, note it and continue — missing data alone is not proof of malice, but factor it into your confidence level.
### 2a. Known Vulnerabilities (OSV.dev)
Query the OSV.dev API for vulnerabilities affecting the **new** version:
- **npm**: `POST https://api.osv.dev/v1/query` with body `{"package":{"name":"<package-name>","ecosystem":"npm"},"version":"<new-version>"}`
- **Maven**: `POST https://api.osv.dev/v1/query` with body `{"package":{"name":"<groupId>:<artifactId>","ecosystem":"Maven"},"version":"<new-version>"}`
Record all returned vulnerability IDs, severity ratings, and summaries. CRITICAL and HIGH severity CVEs in the new version are the most urgent signal.
### 2b. OpenSSF Scorecard
Fetch the project health score. First determine the source repository from the package metadata (see 2c), then query:
Record the overall score (0-10) and individual check results. Pay special attention to: Maintained, Code-Review, Vulnerabilities, Branch-Protection, Signed-Releases. A score below 3 is very concerning; below 5 warrants caution. If the package has no linked source repository, the scorecard will be unavailable — this is itself a risk signal.
### 2c. Package Metadata (Registry)
**For npm packages**, fetch:
`GET https://registry.npmjs.org/<package-name>`
From the full registry document, extract for BOTH the old and new versions:
-`versions[<version>]._npmUser` — the publisher
-`versions[<version>].maintainers` — the maintainer list
For POM details (build plugins, dependencies): `GET https://repo1.maven.org/maven2/<groupId-as-path>/<artifactId>/<version>/<artifactId>-<version>.pom`
### 2d. Source Code Diff and Release Notes
Use the PR diff itself to review the actual file changes for dependency manifest files. Additionally, if a source repository is identified (from 2c), fetch release notes and compare tags:
- Release notes: `GET https://api.github.com/repos/{owner}/{repo}/releases/tags/v<new-version>` (try with and without the `v` prefix)
- For a code-level diff between old and new versions: `GET https://api.github.com/repos/{owner}/{repo}/compare/v<old-version>...v<new-version>` (try with and without the `v` prefix)
## Step 3 — Analyze Against Threat Taxonomy
Evaluate each dependency against ALL of the following threat categories. Not every category applies to every package — use judgment.
### 3a. Known Vulnerabilities
Assess the severity and exploitability of any CVEs or advisories returned from OSV.dev. CRITICAL and HIGH severity vulnerabilities in the new version are the most urgent signal. Also check whether the upgrade itself fixes known vulnerabilities in the old version (a positive signal).
### 3b. Typosquatting / Name Confusion
Determine if the package name could be a typosquatting attempt targeting a well-known package. Consider:
- Levenshtein distance to popular packages (e.g., `lodas` vs `lodash`)
- Dash/underscore/separator swaps (e.g., `my_package` vs `my-package`)
- Encoded payloads (Base64/hex decoded and executed at runtime)
- Inconsistency between release notes and actual changes (changelog says "bug fix" but diff adds network calls)
- Cryptocurrency mining patterns
- Suspicious new transitive dependencies
### 3g. Project Health
Interpret the OpenSSF Scorecard data:
- Overall score below 3/10 is very concerning
- Score below 5/10 warrants caution
- Pay attention to specific failing checks: Maintained, Code-Review, Vulnerabilities, Branch-Protection, Signed-Releases
- Missing scorecard data (no source repo linked) is itself a risk signal
### 3h. Missing Source Repository
A package with no linked source repository prevents code audit and is a risk signal, especially combined with other concerns.
### 3i. Tag Poisoning / Build Provenance
Evaluate whether the published artifact can be traced back to a verified source commit. This category covers attacks where a legitimate-looking version tag is manipulated to distribute malicious code.
#### Tag-to-Registry Provenance Mismatch
Check whether the git tag for the new version corresponds to the published artifact:
- Compare the tag commit date with the registry publish timestamp. A discrepancy of more than a few hours (allowing for CI/CD pipeline time) is suspicious.
- If the source diff between the tag and the previous tag includes changes not documented in release notes, flag as suspicious.
#### Mutable/Moved Tags
Check if the tag appears to have been recreated:
- Use `GET https://api.github.com/repos/{owner}/{repo}/git/refs/tags/{tag}` to get the tag reference.
- For annotated tags, use `GET https://api.github.com/repos/{owner}/{repo}/git/tags/{sha}` to check the tag object and its `tagger.date`.
- If the tag creation date is significantly newer than the commit it points to (e.g., more than 7 days), this may indicate the tag was deleted and recreated pointing to a different commit.
#### Unsigned Tags
Determine tag type and signing status:
- **Annotated + signed tags** (GPG or SSH signature present) — strongest integrity signal.
- **Annotated but unsigned tags** — moderate integrity; the tag is immutable but unverified.
- **Lightweight tags** — weakest integrity; easily moved without trace. Flag as a risk signal for high-profile or security-critical packages.
For the tag object, check the `verification` field in the GitHub API response for signature status.
#### Build Provenance / Attestation
Check for SLSA provenance attestations or Sigstore signatures:
**For npm packages**: Query `GET https://registry.npmjs.org/-/npm/v1/attestations/<package-name>@<new-version>`. If attestations are present, verify:
- The `predicateType` matches a known SLSA provenance type
- The `subject` digest matches the published package tarball
- The build was performed by a trusted CI system (e.g., GitHub Actions)
**For Maven packages**: Check if Sigstore `.sigstore` bundle files exist alongside the artifact at:
The absence of provenance attestations on a high-profile package (>1000 weekly downloads for npm, or widely used in the ecosystem) is a moderate risk signal. Packages that previously published with provenance but stopped doing so are especially suspicious.
#### Tag Mimicry on Forks
Verify that the source repository URL in registry metadata points to the canonical repository:
- Cross-reference the `repository` field from package metadata (Step 2c) with the GitHub API response.
- If the repository URL points to a fork rather than the original project, flag as HIGH risk — this may indicate a hijacked tag on a lookalike fork.
- Check that the repository owner matches known maintainers of the package.
## Step 4 — Score and Classify Risk
Assign a risk score (0-100) to each dependency using these guidelines:
| Highest | Known CRITICAL/HIGH CVEs in new version, confirmed typosquatting, malicious code in diff, build provenance mismatch (tag points to different code than published artifact), tag mimicry on fork | 60+ points |
| High | Maintainer takeover pattern (publisher changed + old maintainers removed), dangerous install scripts, known compromised package, moved/recreated tag with different commit, provenance attestations removed from package that previously had them | 20-40 points |
| Medium | Low OpenSSF Scorecard (< 3), publisher changed (without full takeover), new install scripts, very recent publish (< 48h), obfuscated code in diff, unsigned lightweight tags on security-critical packages, absence of provenance on high-profile packages | 10-20 points |
| Lower | Scorecard 3-5, version anomalies, missing source repository, long dormancy, rapid publishes, tag date slightly newer than commit (within 7 days), annotated but unsigned tags | 5-10 points |
These are guidelines, not rigid formulas. Use judgment to combine signals — multiple medium signals can compound into a high-risk assessment.
If no suspicious patterns are found, assign a score of 0-10 and risk level LOW. Most legitimate upgrades should score LOW.
## Step 5 — Post Findings as PR Comment
Post a structured report in the following format.
**CRITICAL: Sanitize all `@` symbols before posting**
GitHub enforces a maximum of 10 mentions per comment. Package names containing `@` (like `@hyland/core`, `@alfresco/js-api`) are interpreted as user/team mentions and trigger this limit, causing comment post failures.
**Before generating the comment text**:
1. Replace **every**`@` symbol in package names with `(at)` — e.g., `@hyland/core` → `(at)hyland/core`
2. Apply this transformation to ALL occurrences: table cells, headings, inline code blocks, findings sections, reason columns
3. This applies to both external and internal dependencies
4. Do NOT skip this step — even if only a few packages are affected, GitHub counts all `@` symbols
```txt
## Supply Chain Security Review
| Package | Ecosystem | Old Version | New Version | Risk Score | Risk Level |
<List any APIs that were unavailable or returned errors, so reviewers know what was and wasn't checked.>
---
### Overall Risk: <highest risk level across all dependencies>
**Recommendation**: <approve|review|block>
- **approve**: LOW risk, routine upgrade, no concerns found
- **review**: MEDIUM risk, a human should examine specific findings before merging
- **block**: HIGH/CRITICAL risk, should not be merged without security team review
```
## Step 6 — Apply Label and Review Status
- Apply a label to the PR based on the highest risk level found:
-`security:low` for LOW risk
-`security:medium` for MEDIUM risk
-`security:high` for HIGH or CRITICAL risk
- If the highest risk level is HIGH or CRITICAL, submit a pull request review requesting changes, with a summary of the critical findings.
- If the risk is MEDIUM, submit a pull request review as a comment, noting that human review is recommended.
- If the risk is LOW, do not submit a review — the PR comment is sufficient.
## Important Guidelines
- **Never approve or merge the PR** — all actions are advisory or blocking only. A human always makes the merge decision.
- Be specific in findings — cite exact data (vulnerability ID, maintainer name, script content, file path, API response) rather than vague warnings.
- For Maven packages, adapt npm-specific checks appropriately (e.g., install scripts become build plugin analysis, maintainer metadata may be limited).
- When a package is a NEW dependency (no old version), pay extra attention to project health, name legitimacy, and install scripts since there is no historical baseline to compare against.
- If data collection fails for all external APIs, still analyze the PR diff directly and provide the best assessment you can with available information, noting the limitations clearly.
- For tag poisoning checks, not all packages will have provenance attestations — this is still an emerging practice. Weight the absence of attestations proportionally to the package's profile and criticality. Do not flag low-download utility packages for missing provenance.
- When checking tag dates, allow for reasonable CI/CD pipeline delays (up to a few hours between tag push and publish). Only flag significant discrepancies (days or weeks).
| [Avatar](core/components/avatar.component.md) | Displays user avatars. |
| [Button](core/components/button.component.md) | A standard button component. |
| [Progress](core/components/progress.component.md) | A progress bar component. |
| [Header](core/components/adf-header.component.md) | A simple reusable application header component. |
### Components
@@ -120,7 +118,6 @@ A collection of Angular components for generic use.
| [Sidebar action menu component](core/components/sidebar-action-menu.component.md) | Displays a sidebar-action menu information panel. | [Source](../lib/core/src/lib/layout/components/sidebar-action/sidebar-action-menu.component.ts) |
| [Sidenav Layout component](core/components/sidenav-layout.component.md) | Displays the standard three-region ADF application layout. | [Source](../lib/core/src/lib/layout/components/sidenav-layout/sidenav-layout.component.ts) |
| [Snackbar Content Component](core/components/snackbar-content.component.md) | Custom content for Snackbar which allows use icon as action. | [Source](../lib/core/src/lib/snackbar-content/snackbar-content.component.ts) |
| [Sorting Picker Component](core/components/sorting-picker.component.md) | Selects from a set of predefined sorting definitions and directions. | [Source](../lib/core/src/lib/sorting-picker/sorting-picker.component.ts) |
| [Start Form component](core/components/start-form.component.md) | Displays the Start Form for a process. | [Source](../lib/process-services/src/lib/form/start-form/start-form.component.ts) |
| [Text Mask directive](core/components/text-mask.component.md) | Implements text field input masks. | [Source](../lib/core/src/lib/form/components/widgets/text/text-mask.component.ts) |
| [Toolbar Divider Component](core/components/toolbar-divider.component.md) | Divides groups of elements in a Toolbar with a visual separator. | [Source](../lib/core/src/lib/toolbar/toolbar-divider.component.ts) |
@@ -140,7 +137,7 @@ A collection of Angular components for generic use.
| [Logout directive](core/directives/logout.directive.md) | Logs the user out when the decorated element is clicked. | [Source](../lib/core/src/lib/directives/logout.directive.ts) |
| [Node Download directive](core/directives/node-download.directive.md) | Allows folders and/or files to be downloaded, with multiple nodes packed as a '.ZIP' archive. | [Source](../lib/content-services/src/lib/directives/node-download.directive.ts) |
| [Upload Directive](core/directives/upload.directive.md) | Uploads content in response to file drag and drop. | [Source](../lib/core/src/lib/directives/upload.directive.ts) |
| [CardViewPropertyValidator Directive](core/directives/card-view-property-validator.directive.md) | Checks validators defined on property.| [Source](../lib/core/src/lib/card-view/directives/card-view-property-validator.directive.ts) |
### Dialogs
| Name | Description | Source link |
@@ -179,8 +176,6 @@ A collection of Angular components for generic use.
| [Format Space pipe](core/pipes/format-space.pipe.md) | Replaces all the white space in a string with a supplied character. | [Source](../lib/core/src/lib/pipes/format-space.pipe.ts) |
| [Full name pipe](core/pipes/full-name.pipe.md) | Joins the first and last name properties from a `UserLike` object into a single string. | [Source](../lib/core/src/lib/pipes/full-name.pipe.ts) |
| [Localized Date pipe](core/pipes/localized-date.pipe.md) | Converts a date to a given format and locale. | [Source](../lib/core/src/lib/pipes/localized-date.pipe.ts) |
| [Multi Value Pipe](core/pipes/multi-value.pipe.md) | Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma , however, you can set your own separator in the params of the pipe. | [Source](../lib/core/src/lib/pipes/multi-value.pipe.ts) |
| [Node Name Tooltip pipe](core/pipes/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/content-services/src/lib/pipes/node-name-tooltip.pipe.ts) |
| [Text Highlight pipe](core/pipes/text-highlight.pipe.md) | Adds highlighting to words or sections of text that match a search string. | [Source](../lib/core/src/lib/pipes/text-highlight.pipe.ts) |
| [Time Ago pipe](core/pipes/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/src/lib/pipes/time-ago.pipe.ts) |
| [User Initial pipe](core/pipes/user-initial.pipe.md) | Takes the name fields of a `UserLike` object and extracts and formats the initials. | [Source](../lib/core/src/lib/pipes/user-initial.pipe.ts) |
@@ -297,7 +292,6 @@ for more information about installing and using the source code.
| [Search number range component](content-services/components/search-number-range.component.md) | Implements a number range widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-number-range/search-number-range.component.ts) |
| [Search radio component](content-services/components/search-radio.component.md) | Implements a radio button list widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-radio/search-radio.component.ts) |
| [Search slider component](content-services/components/search-slider.component.md) | Implements a numeric slider widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-slider/search-slider.component.ts) |
| [Search Sorting Picker Component](content-services/components/search-sorting-picker.component.md) | Provides an ability to select one of the predefined sorting definitions for search results: | [Source](../lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.ts) |
| [Search text component](content-services/components/search-text.component.md) | Implements a text input widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-text/search-text.component.ts) |
| [Sites Dropdown component](content-services/components/sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../lib/content-services/src/lib/content-node-selector/site-dropdown/sites-dropdown.component.ts) |
@@ -321,7 +315,6 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Auto Focus directive](content-services/directives/auto-focus.directive.md) | Automatically focuses HTML element after content is initialized. | [Source](../lib/content-services/src/lib/directives/auto-focus.directive.ts) |
| [Check Allowable Operation directive](content-services/directives/check-allowable-operation.directive.md) | Selectively disables an HTML element or Angular component. | [Source](../lib/content-services/src/lib/directives/check-allowable-operation.directive.ts) |
| [Node Public File Share Directive](content-services/directives/content-node-share.directive.md) | Creates and manages public shared links for files. | [Source](../lib/content-services/src/lib/content-node-share/content-node-share.directive.ts) |
| [File Draggable directive](content-services/directives/file-draggable.directive.md) | Provides drag-and-drop features for an element such as a div. | [Source](../lib/content-services/src/lib/upload/directives/file-draggable.directive.ts) |
| [Inherit Permission directive](content-services/directives/inherited-button.directive.md) | Update the current node by adding/removing the inherited permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/inherited-button.directive.ts) |
@@ -330,7 +323,6 @@ for more information about installing and using the source code.
| [Node Lock directive](content-services/directives/node-lock.directive.md) | Locks or unlocks a node. | [Source](../lib/content-services/src/lib/directives/node-lock.directive.ts) |
| [Node Restore directive](content-services/directives/node-restore.directive.md) | Restores deleted nodes to their original location. | [Source](../lib/content-services/src/lib/directives/node-restore.directive.ts) |
| [Toggle Icon directive](content-services/directives/toggle-icon.directive.md) | Toggle icon on mouse or keyboard event for a selectable element. | [Source](../lib/content-services/src/lib/upload/directives/toggle-icon.directive.ts) |
| [Version Compatibility Directive](content-services/directives/version-compatibility.directive.md) | Enables/disables components based on ACS version in use. | [Source](../lib/content-services/src/lib/version-compatibility/version-compatibility.directive.ts) |
### Dialogs
@@ -344,7 +336,6 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Base Card View Content Update interface](content-services/interfaces/base-card-view-content-update.interface.md) | Specifies required properties and methods for Card View Content Update service. Extends from BaseCardViewUpdate. | [Source](../lib/content-services/src/lib/interfaces/base-card-view-content-update.interface.ts) | |
@@ -356,12 +347,6 @@ for more information about installing and using the source code.
| [Permission Style model](content-services/models/permissions-style.model.md) | Sets custom CSS styles for rows of a Document List according to the item's permissions. | [Source](../lib/content-services/src/lib/document-list/models/permissions-style.model.ts) |
| [Row Filter Model](content-services/models/row-filter.model.md) | Defines the Row Filter function used by the Document List Component. | [Source](../lib/content-services/document-list/data/row-filter.model.ts) |
### Pipes
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [File upload error pipe](content-services/pipes/file-upload-error.pipe.md) | Converts an upload error code to an error message. | [Source](../lib/content-services/src/lib/upload/pipes/file-upload-error.pipe.ts) |
### Services
| Name | Description | Source link |
@@ -441,7 +426,6 @@ for more information about installing and using the source code.
| [Process Audit Directive](process-services/directives/process-audit.directive.md) | Fetches the Process Audit information in PDF or JSON format. | [Source](../lib/process-services/src/lib/process-list/components/process-audit/process-audit.directive.ts) |
Reference for flags and labels that control CI behavior on pull requests.
## PR Title Flags
Include these flags anywhere in the **PR title** to modify CI behavior.
| Flag | Effect |
|------|--------|
| `[ci:force]` | Skips the PR approval check, allowing the full pipeline to run without an approved review. Useful for testing CI changes on draft PRs. |
@@ -378,7 +378,7 @@ displayed. The aspects to be displayed are calculated as an intersection of the
## Multi value card properties
Multi value properties are displayed one after another separated by a comma. This card makes use of the [Multi Value Pipe](../../core/pipes/multi-value.pipe.ts).
Multi value properties are displayed one after another separated by a comma.
To customize the separator used by this card you can set it in your `app.config.json` inside your content-metadata configuration:
| imageResolver | `any \| null` | null | Custom function to choose image file paths to show. See the [Image Resolver Model](image-resolver.model.md) page for more information. |
@@ -34,7 +33,6 @@ Shows the nodes in tree structure, each node containing children is collapsible/
| emptyContentTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | | [TemplateRef](https://angular.io/api/core/TemplateRef) to provide empty template when no nodes are loaded |
| expandIcon | `string` | "chevron_right" | Icon shown when node has children and is collapsed. By default set to chevron_right |
| loadMoreSuffix | `string` | | Load more suffix for load more button |
| nodeActionsMenuTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | | [TemplateRef](https://angular.io/api/core/TemplateRef) to provide context menu items for context menu displayed on each row |
| selectableNodes | `boolean` | false | Variable defining if tree nodes should be selectable. By default set to false |
| stickyHeader | `boolean` | false | Variable defining if tree header should be sticky. By default set to false |
| contextMenuOptions | `any[]` | | Array of context menu options which should be displayed for each row. |
@@ -88,7 +86,6 @@ First step is to provide necessary input value.
The [Check Allowable Operation Directive](../../../lib/content-services/src/lib/directives/check-allowable-operation.directive.ts) lets you disable an HTML element or Angular component
by taking a collection of [`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md) instances and checking their permissions.
The decorated element will be disabled if:
- there are no nodes in the collection
- at least one of the nodes does not have the required permission
### HTML element example
A typical use case is to bind a [Document List](../components/document-list.component.md)
selection property to a toolbar button. In the following example, the "Delete" button should
be disabled if no selection is present or if user does not have permission to delete at least one node in the selection:
```html
<adf-toolbartitle="toolbar example">
<buttonmat-icon-button
adf-check-allowable-operation="delete"
[adf-nodes]="documentList.selection">
<mat-icon>delete</mat-icon>
</button>
</adf-toolbar>
<adf-document-list#documentList...>
...
</adf-document-list>
```
The button will be disabled by default and will change state when the user selects or deselects
one or more documents that they have permission to delete.
### Angular component example
You can add the directive to any Angular component that implements the [`NodeAllowableOperationSubject`](../../../lib/content-services/src/lib/interfaces/node-allowable-operation-subject.interface.ts)
interface (the [Upload Drag Area component](../components/upload-drag-area.component.md),
for example). You can also use it in much the same way as you would with an HTML element:
```html
<alfresco-upload-drag-area
[rootFolderId]="..."
[versioning]="..."
[adf-check-allowable-operation]="'create'"
[adf-nodes]="getCurrentDocumentListNode()">
...
</alfresco-upload-drag-area>
```
To enable your own component to work with this directive, you need to implement the
[`NodeAllowableOperationSubject`](../../../lib/content-services/src/lib/interfaces/node-allowable-operation-subject.interface.ts) interface and also define it as an
### Implementing the NodeAllowableOperationSubject interface
The component must implement the [`NodeAllowableOperationSubject`](../../../lib/content-services/src/lib/interfaces/node-allowable-operation-subject.interface.ts) interface which means it must have a
boolean `disabled` property. This is the property that will be set by the directive:
**Note:** the usage of **viewProviders** (instead of **providers**) is very important, especially if you want to use this directive on a transcluded component.
@@ -47,12 +47,13 @@ Manages Document List information that is specific to a user.
-_includeFields:_`string[]` - List of data field names to include in the results
-_where:_`string` - (Optional) A string to restrict the returned objects by using a predicate
-**Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodePaging`](https://github.com/Alfresco/alfresco-js-api/blob/develop/src/api/content-rest-api/docs/NodePaging.md)`>` - List of favorite files
-_pagination:_ [`PaginationModel`](../../../lib/core/src/lib/models/pagination.model.ts) - Specifies how to paginate the results
-_includeFields:_`string[]` - List of data field names to include in the results
-_where:_`string` - (Optional) Filters the Node list using the _where_ condition of the REST API (for example, isFolder=true). See the REST API documentation for more information.
-_filters:_`string[]` - Specifies additional filters to apply (joined with **AND**). Applied for '-recent-' only.
-**Returns**`any` - List of items contained in the folder
@@ -351,7 +351,6 @@ while the data for the table is loading:
<!--Add your custom loading template here-->
<mat-progress-spinner
class="adf-document-list-loading-margin"
[color]="'primary'"
[mode]="'indeterminate'">
</mat-progress-spinner>
</ng-template>
@@ -464,6 +463,8 @@ Learn more about styling your datatable: [Customizing the component's styles](#c
## Details
This component supports rows reordering via keyboard. To enable it first set `enableDragRows` to `true`, focus any selected row and use shift + ArrowUp/ArrowDown combination to reorder selected row.
### Supplying data for the table
The column layout and row data are supplied to the table using an object that implements the
@@ -14,9 +14,8 @@ Reusable header for Alfresco applications.
```html
<adf-layout-header
title="title"
logo="logo.png"
logo="logo.svg"
[redirectUrl]="'/home'"
color="primary"
(clicked)=toggleMenu($event)>
</adf-layout-header>
```
@@ -38,7 +37,7 @@ body of the element:
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| color | [`ThemePalette`](https://github.com/angular/components/blob/master/src/material/core/common-behaviors/color.ts) | | Background color for the header. It can be any hex color code or one of the Material theme colors: 'primary', 'accent' or 'warn'. |
| backgroundColor | [`string`] | Background color for the header. It can be any hex color code or CSS variable. |
| expandedSidenav | `boolean` | true | expandedSidenav: Toggles the expanded state of the component. |
| logo | `string` | | Path to an image file for the application logo. |
| position | `string` | "start" | The side of the page that the drawer is attached to (can be 'start' or 'end') |
@@ -58,5 +57,5 @@ body of the element:
## Details
This component displays a customizable header that can be reused. Use the input properties to
configure the left side (title, button) and the primary color of the header. The right part of the
configure the left side (title, button) and the background color of the header. The right part of the
header can contain other components which are transcluded in the header component.
# [Icon Component](../../../lib/core/src/lib/icon/icon.component.ts "Defined in icon.component.ts")
@@ -29,7 +29,9 @@ Provides a universal way of rendering registered and named icons.
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| color | [`ThemePalette`](https://github.com/angular/components/blob/master/src/material/core/common-behaviors/color.ts) | | Theme color palette for the component. |
| fontSet | `string` | | Icon font set. |
| value | `string` | | Icon value, which can be either a ligature name or a custom icon in the format `[namespace]:[name]`. |
| isSvg | `boolean` | false | Is icon of type svg. |
## Details
@@ -78,6 +80,73 @@ using the `adf:` namespace.
<adf-iconvalue="adf:image/gif"></adf-icon>
```
### Icon alias mapping
The Icon Alias Mapping feature allows you to provide custom icon value mappings at runtime using the `ICON_ALIAS_MAP_TOKEN` injection token. When an icon value matches a key in the alias map, the component automatically replaces it with the mapped value. This is useful for creating consistent icon conventions across your application without modifying component code.
**How icon name replacement works:**
When you provide an alias map, the component checks if the icon value matches any key in the map. If a match is found, the icon name is replaced with the corresponding mapped value. This happens automatically and transparently:
- Original icon name: `icon-mock`
- Alias map entry: `'icon-mock': 'alias-mock'`
- Result: Icon renders as `alias-mock` instead of `icon-mock`
This allows you to:
- **Rename icons** without changing component code
- **Support legacy icon names** by mapping them to new ones
- **Centralize icon naming conventions** in your application
- **Create icon aliases** for shorter or more descriptive names
@@ -27,6 +27,21 @@ The main purpose of the [Notification history component](../../core/components/n
| maxNotifications | `number` | 5 | Maximum number of notifications to display. The rest will remain hidden until load more is clicked |
| menuPositionX | [`MenuPositionX`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "after" | Custom choice for opening the menu at the bottom. Can be `before` or `after`. |
| menuPositionY | [`MenuPositionY`](https://github.com/angular/components/blob/master/src/material/menu/menu-positions.ts) | "below" | Custom choice for opening the menu at the bottom. Can be `above` or `below`. |
| badgeSize | [`MatBadgeSize`](https://v19.material.angular.dev/components/badge/api#MatBadgeSize) | `small` | Badge size. Can be `small`, `medium` or `large`. |
### App config
You can set a default badge size in `app.config.json`:
```json
{
"notification":{
"badgeSize":"medium"
}
}
```
The `notification.badgeSize` value is applied on init when the `badgeSize` input is not set explicitly on the component.
@@ -19,7 +19,6 @@ Simple container for headers, titles, actions and breadcrumbs.
- [Properties](#properties)
- [Details](#details)
- [Dropdown menu](#dropdown-menu)
- [Custom color](#custom-color)
- [See also](#see-also)
## Basic Usage
@@ -74,7 +73,6 @@ pushed to the right by a spacer:
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| color | [`ThemePalette`](https://github.com/angular/components/blob/master/src/material/core/common-behaviors/color.ts) | | Toolbar color. Can be changed to empty value (default), `primary`, `accent` or `warn`. |
| title | `string` | "" | Toolbar title. |
## Details
@@ -116,21 +114,6 @@ when you click the menu button:

### Custom color
Besides the default color you can use 'primary', 'accent', or 'warn' values:
You might also want to change colors to follow your application's color
| property | [`CardViewBaseItemModel`](../../../lib/core/src/lib/card-view/models/card-view-baseitem.model.ts) | | Property for which validations should be triggered. |
| validated | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<string[]>` | Emitted after validation. Emits list of errors or empty array if input is valid. |
| actionsTemplate | `TemplateRef<any>` | | Inserts a template styled on the left. Should be used for additional `mat-button` style buttons. (optional) |
| actionsTemplate | `TemplateRef<unknown>` | | Inserts a template styled on the left. Should be used for additional `mat-button` style buttons. (optional) |
@@ -43,6 +43,7 @@ Contains the value and metadata for a field of a [`Form`](../../../lib/process-s
| displayText | string | | Displayed text for Hyperlink widgets |
| isVisible | boolean | true | Is the field shown on the form? |
| visibilityCondition | [`WidgetVisibilityModel`](../../../lib/core/src/lib/form/models/widget-visibility.model.ts) | null | Defines a expression that determines whether the field is visible or not, based on its logical relation to values in other fields |
| checkParentVisibilityForValidation | boolean | false | When enabled (and `FormModel.enableParentVisibilityCheck` is true), validation will be skipped if the field's parent container/group/section is hidden, even if the field itself is visible. |
| enableFractions | boolean | false | Are numeric values allowed to contain a decimal point? |
| currency | string | null | Currency symbol for Amount widgets |
|enableParentVisibilityCheck| boolean | false|Enables checking parent container/group/section visibility for validation. When enabled, fields with `checkParentVisibilityForValidation: true` will skip validation if their parent is hidden.|
## Methods
@@ -112,3 +113,5 @@ Contains the value and metadata for a form.
Checks if a field or any of its parent containers/groups/sections is hidden. Returns true if the field should skip validation. Only checks parent visibility if `enableParentVisibilityCheck` is true and the field has `checkParentVisibilityForValidation` set to true.
# [Decimal Number Pipe](../../../lib/core/src/lib/pipes/decimal-number.pipe.ts "Defined in decimal-number.pipe.ts")
# Decimal Number Pipe
Transforms a number to have a certain amount of digits in its integer part and also in its decimal part.
@@ -15,7 +15,7 @@ Transforms a number to have a certain amount of digits in its integer part and a
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| digitsInfo | [`DecimalNumberModel`](../../../lib/core/src/lib/models/decimal-number.model.ts) | | A format to apply to the date value. [Date Pipe Formats.](https://angular.io/api/common/DatePipe#custom-format-options) |
| digitsInfo | `DecimalNumberModel` | | A format to apply to the date value. [Date Pipe Formats.](https://angular.io/api/common/DatePipe#custom-format-options) |
| locale | string | 'en-US' | A locale id for the locale format rules to use. |
## Details
@@ -30,11 +30,11 @@ This pipe transforms a given number so it follows the set configuration for the
}
```
You can also overwrite this config by passing a [`DecimalNumberModel`](../../../lib/core/src/lib/models/decimal-number.model.ts) as an argument for this pipe.
You can also overwrite this config by passing a `DecimalNumberModel` as an argument for this pipe.
The number can be also localized so it applies commas and dots in the right place depending on the locale id in use.
# [Multi Value Pipe](../../../lib/core/src/lib/pipes/multi-value.pipe.ts "Defined in multi-value.pipe.ts")
Takes an array of strings and turns it into one string where items are separated by a separator. The default separator applied to the list is the comma `,` however, you can set your own separator in the params of the pipe.
@@ -98,6 +98,11 @@ Accesses and manipulates ACS document nodes using their node IDs.
-_nodeId:_`string` - ID of the target node
-_jobId:_`string` - ID of the job started by the `initiateFolderSizeCalculation` request
-**Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`SizeDetailsEntry`](../../../lib/js-api/src/api/content-rest-api/docs/NodesApi.md#sizedetailsentry)`>` - Details of the folder
-_opts:_`{ where?: string; includeSource?: boolean;} & NodesIncludeQuery & ContentPagingQuery` - additional options that API can take
-**Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeAssociationPaging`](../../../lib/js-api/src/api/content-rest-api/docs/NodesApi.md#NodeAssociationPaging)`>` - List of node's parents.
As soon as you assign the storage prefix, all settings that you get or set via the [`UserPreferencesService`](../../core/services/user-preferences.service.md) will be saved to a dedicated profile.
As soon as you assign the storage prefix, all settings that you get or set via the `UserPreferencesService` will be saved to a dedicated profile.
You can import the service into your controller and use its APIs as shown below:
@@ -96,7 +96,7 @@ The service also provides quick access to a set of the "known" properties used a
| ---- | ---- | ----------- |
| authType | `string` | Authorization type (can be "ECM", "BPM" or "ALL"). |
| disableCSRF | `boolean` | Prevents the CSRF Token from being submitted if true. Only valid for Process Services. |
@@ -112,7 +112,13 @@ whole set of user properties. This is useful when a component needs to react to
```
You can also use the `select` method to get notification when a particular property is changed.
A set of basic properties is added into the enumeration [`UserPreferenceValues`](lib/core/src/lib/services/user-preferences.service.ts) which gives you the key value to access the standard user preference service properties: **PaginationSize**, **DisableCSRF**, **Locale**, **SupportedPageSizes** and **ExpandedSideNavStatus**.
A set of basic properties is added into the enumeration `UserPreferenceValues` which gives you the key value to access the standard user preference service properties:
-`PaginationSize`
-`DisableCSRF`
-`Locale`
-`SupportedPageSizes`
-`ExpandedSideNavStatus`
```ts
userPreferences.disableCSRF=true;
@@ -120,3 +126,58 @@ A set of basic properties is added into the enumeration [`UserPreferenceValues`]
console.log(CSRFflag);//this will be true;
});
```
### Convenience Observables and Signals
For commonly accessed preferences like `locale`, the service provides both observables and signals that simplify access patterns.
#### Using Signals (Recommended - No Subscription Needed!)
Signals automatically handle cleanup and don't require manual unsubscription:
// Observable - requires takeUntilDestroyed() to prevent memory leaks
this.userPreferences.locale$
.pipe(takeUntilDestroyed())
.subscribe(locale=>{
this.currentLocale=locale;
});
}
```
Available observables:
-`locale$` - Observable for locale changes
-`paginationSize$` - Observable for pagination size changes
-`supportedPageSizes$` - Observable for supported page sizes changes
**Note:** When subscribing to observables from a singleton service in a component, always use `takeUntilDestroyed()` or `takeUntil()` to prevent memory leaks.
@@ -89,13 +89,14 @@ The template defined inside `empty-form` will be shown when no form definition i
| path | `string` | | Path of the folder where the metadata will be stored. |
| processInstanceId | `string` | | ProcessInstanceId id to fetch corresponding form and values. |
| readOnly | `boolean` | false | Toggle readonly state of the form. Forces all form widgets to render as readonly if enabled. |
| showCompleteButton | `boolean` | true | Toggle rendering of the `Complete` outcome button. |
| showCompleteButton | `boolean` | false | Toggle rendering of the `Complete` outcome button. |
| showRefreshButton | `boolean` | true | Toggle rendering of the `Refresh` button. |
| showSaveButton | `boolean` | true | Toggle rendering of the `Save` outcome button. |
| showTitle | `boolean` | true | Toggle rendering of the form title. |
| showValidationIcon | `boolean` | true | Toggle rendering of the validation icon next to the form title. |
| taskId | `string` | | Task id to fetch corresponding form and values. |
| displayModeConfigurations | [`FormCloudDisplayModeConfiguration`](../../../lib/process-services-cloud/src/lib/services/form-fields.interfaces.ts)`[]` | | The available display configurations for the form |
| enableParentVisibilityCheck | `boolean` | false | Toggle to enable parent visibility check for validation. When enabled, fields inside hidden groups/sections will skip validation. |
| displayModeConfigurations | [`FormCloudDisplayModeConfiguration`](../../../lib/process-services-cloud/src/lib/services/form-fields.interfaces.ts)`[]` | | The available display configurations for the form (start process event can have assigned form). |
| enableParentVisibilityCheck | `boolean` | false | Toggle to enable parent visibility check for validation. When enabled, fields inside hidden groups/sections will skip validation. |
| values | [`TaskVariableCloud`](../../../lib/process-services-cloud/src/lib/form/models/task-variable-cloud.model.ts)`[]` | | Parameter to pass form field values in the start form if one is associated. |
| variables | `any` | | Variables to attach to the payload. |
Title:Changelog for alfresco-ng2-components v8.3.1
---
# Changelog
- [68b1b98c83](git@github.com:Alfresco/alfresco-ng2-components/commit/68b1b98c83) AAE-42904 Escape html in evaluated fields and variables for rich-text display widget (#11718)
- [3535fa3d89](git@github.com:Alfresco/alfresco-ng2-components/commit/3535fa3d89) ACS-11224 Migrate upload components to Angular control flow (#11691)
- [68d174c3e6](git@github.com:Alfresco/alfresco-ng2-components/commit/68d174c3e6) [ACS-11033] add node id field to ai answer references (#11690)
- [4cc56421ee](git@github.com:Alfresco/alfresco-ng2-components/commit/4cc56421ee) AAE-42658 Remove check for outcome.id as name based outcomes are valid (#11685)
- [358367bcb1](git@github.com:Alfresco/alfresco-ng2-components/commit/358367bcb1) AAE-42643 Fix long error messages overlapping with icon
- [52ad50fbc7](git@github.com:Alfresco/alfresco-ng2-components/commit/52ad50fbc7) refactor: update PDF viewer component imports and types for better compatibility (#11686)
- [2a0d5df2d5](git@github.com:Alfresco/alfresco-ng2-components/commit/2a0d5df2d5) [ACS-11173] Initial set of rules for Copilot review (#11683)
- [7405b2d2e4](git@github.com:Alfresco/alfresco-ng2-components/commit/7405b2d2e4) fix pdf import for the Viewer (#11684)
- [7a3650e6a7](git@github.com:Alfresco/alfresco-ng2-components/commit/7a3650e6a7) [ACS-11204] Fix: Duplicated site name is displayed instead of id when there are two libraries with the same name (#11682)
- [de34579038](git@github.com:Alfresco/alfresco-ng2-components/commit/de34579038) AAE-42156 Update text and multiline fields to show custom regex validation message. (#11670)
- [2f8d8c2007](git@github.com:Alfresco/alfresco-ng2-components/commit/2f8d8c2007) chore: update ESLint and cspell configurations to ignore story files (#11681)
- [303a9efb3e](git@github.com:Alfresco/alfresco-ng2-components/commit/303a9efb3e) chore: eslint fixes for @typescript-eslint/no-explicit-any (#11672)
- [f1f2000db8](git@github.com:Alfresco/alfresco-ng2-components/commit/f1f2000db8) AAE-42525 Updated condition for mat-error (#11669)
- [5935fbfb5b](git@github.com:Alfresco/alfresco-ng2-components/commit/5935fbfb5b) [ACS-11153] Changed eslint rule for ng-reflect after copilot suggestion in ACA (#11673)
- [57b8fe7174](git@github.com:Alfresco/alfresco-ng2-components/commit/57b8fe7174) [ACS-11153] Corrected eslint rule for ng-reflect (#11671)
- [cfb9a505e4](git@github.com:Alfresco/alfresco-ng2-components/commit/cfb9a505e4) [ACS-10847] Location filter breaks the page when user value used (#11667)
- [e5471c8741](git@github.com:Alfresco/alfresco-ng2-components/commit/e5471c8741) Add missing input type (#11668)
- [1baddb2b37](git@github.com:Alfresco/alfresco-ng2-components/commit/1baddb2b37) AAE-42291 Double-click to copy to clipboard does not work on disabled/read-only fields in card-view-textitem (#11656)
- [e48950b200](git@github.com:Alfresco/alfresco-ng2-components/commit/e48950b200) [MNT-25123] Fixed incorrectly displayed some annotations (#11662)
- [4581f714d7](git@github.com:Alfresco/alfresco-ng2-components/commit/4581f714d7) [ACS-11153] remove the usage of ng reflect from the unit tests (#11666)
- [3f542d99ba](git@github.com:Alfresco/alfresco-ng2-components/commit/3f542d99ba) Migrate to @angular-eslint/prefer-inject and @typescript-eslint/prefer-readonly (#11665)
- [f8fa996b04](git@github.com:Alfresco/alfresco-ng2-components/commit/f8fa996b04) AAE-33828 Fix for the runtime errors on data-table should be handled (#11639)
- [93fc7c166c](git@github.com:Alfresco/alfresco-ng2-components/commit/93fc7c166c) AAE-41605 Add ability to filter by linked processes (#11664)
- [b6a6c1bc86](git@github.com:Alfresco/alfresco-ng2-components/commit/b6a6c1bc86) [MNT-24175]: fixes non node values handling (#11641)
- [5850dafca7](git@github.com:Alfresco/alfresco-ng2-components/commit/5850dafca7) [ACS-11158]: removes mat selectors for tooltips (#11659)
- [fafa5d6c41](git@github.com:Alfresco/alfresco-ng2-components/commit/fafa5d6c41) ACS-11160: improve context menu overlay service implementation (#11661)
- [84affe9f37](git@github.com:Alfresco/alfresco-ng2-components/commit/84affe9f37) ACS-11155: update conditional checks to use optional chaining (#11658)
- [40b15689d5](git@github.com:Alfresco/alfresco-ng2-components/commit/40b15689d5) AAE-21047 Get rid of enums (#11643)
- [d274d62d73](git@github.com:Alfresco/alfresco-ng2-components/commit/d274d62d73) AAE-40604 Fix edge case for REST/Variable for dropdown showing required message (#11638)
- [1fa683e2a9](git@github.com:Alfresco/alfresco-ng2-components/commit/1fa683e2a9) Fix for ACA upstream (#11642)
- [faa22f2fde](git@github.com:Alfresco/alfresco-ng2-components/commit/faa22f2fde) Fix for ACA upstream (#11640)
- [4df5b9282c](git@github.com:Alfresco/alfresco-ng2-components/commit/4df5b9282c) [MNT-25478] Expose list parents method in nodes api service (#11622)
- [30afd2d863](git@github.com:Alfresco/alfresco-ng2-components/commit/30afd2d863) AAE-42151 [FE - Studio Admin] Improve types for Integration Contexts (#11633)
- [0b805f3e9b](git@github.com:Alfresco/alfresco-ng2-components/commit/0b805f3e9b) Revert "AAE-40604 Fix case when rest/variable are okay and dropdown is requir…" (#11634)
- [4d99262ba3](git@github.com:Alfresco/alfresco-ng2-components/commit/4d99262ba3) AAE-41699 Evaluate variables in form display text (#11620)
- [14899931d2](git@github.com:Alfresco/alfresco-ng2-components/commit/14899931d2) AAE-41742 Add processRelatedTo payload for processes list (#11632)
- [283b996063](git@github.com:Alfresco/alfresco-ng2-components/commit/283b996063) [MNT-25541] PDFs containing JP2 images (JPEG 2000) cannot be displayed in ADW viewer (#11618)
- [5df193b255](git@github.com:Alfresco/alfresco-ng2-components/commit/5df193b255) [MNT-25123] pdf annotations incorrect and or not visible (#11621)
- [dcf133b37e](git@github.com:Alfresco/alfresco-ng2-components/commit/dcf133b37e) [MNT-25410] ADW - Saved Searches can load the wrong search set, and t… (#11599)
- [31bafd718e](git@github.com:Alfresco/alfresco-ng2-components/commit/31bafd718e) AAE-40604 Fix case when rest/variable are okay and dropdown is required and not selected (#11619)
- [0c50bfd4e3](git@github.com:Alfresco/alfresco-ng2-components/commit/0c50bfd4e3) [ACS-10957] new locators for errors in ACC dialogs (#11617)
- [e859923541](git@github.com:Alfresco/alfresco-ng2-components/commit/e859923541) [ACS-10304] KN: personal files: Column resizing available via mouse but not accessible via keyboard (#11616)
- [6ff7ce4add](git@github.com:Alfresco/alfresco-ng2-components/commit/6ff7ce4add) [MNT-25501]: APS - Process instance pagination failure in ADF due to conflicting parameters sent from ADF to APS API (#11615)
- [302b3e18ec](git@github.com:Alfresco/alfresco-ng2-components/commit/302b3e18ec) AAE-40604 Fix for Dropdown required validation message is not present (#11600)
- [b74ffc81f4](git@github.com:Alfresco/alfresco-ng2-components/commit/b74ffc81f4) [ACS-10247] a11y: SR not announce Start/End Date as required fields (#11613)
- [3e9b5a097c](git@github.com:Alfresco/alfresco-ng2-components/commit/3e9b5a097c) [ACS-10193] Other A11y My Libraries Link (#11587)
- [ba3d9d5be4](git@github.com:Alfresco/alfresco-ng2-components/commit/ba3d9d5be4) [ACS-7768] Styling fixes for permission management page (#11597)
- [8cda30db45](git@github.com:Alfresco/alfresco-ng2-components/commit/8cda30db45) [ACS-10203]: Checkbox "Select All" has no visible label (#11594)
- [1780aa9663](git@github.com:Alfresco/alfresco-ng2-components/commit/1780aa9663) [ACS-10281] a11y fix: Approve step folder control is focusable twice (#11589)
- [3bba02264a](git@github.com:Alfresco/alfresco-ng2-components/commit/3bba02264a) [ACS-10241]: Personal files: Column sorting state and role not communicated by buttons (parially reverted to align with hxp) (#11598)
- [4987bbadef](git@github.com:Alfresco/alfresco-ng2-components/commit/4987bbadef) [ACS-10302] Add aria-live to selected aspects counter (#11593)
- [9cb8b962ae](git@github.com:Alfresco/alfresco-ng2-components/commit/9cb8b962ae) [ACS-10213] Libraries: Radio buttons for Public, Private, and Moderated lack a grouped label (#11590)
- [6bb78f9d26](git@github.com:Alfresco/alfresco-ng2-components/commit/6bb78f9d26) [ACS-10274] sr personal files sr announces white heavy check mark in entitlements row of repository section (#11595)
- [2b79f18d79](git@github.com:Alfresco/alfresco-ng2-components/commit/2b79f18d79) [ACS-10247] a11y fix: SR announces Start/End Date fields incorrectly in date popup (#11592)
- [4a6e9fc5d6](git@github.com:Alfresco/alfresco-ng2-components/commit/4a6e9fc5d6) [ACS-10241]: SR: Personal files: Column sorting state and role not communicated by buttons (#11591)
- [6131bf3890](git@github.com:Alfresco/alfresco-ng2-components/commit/6131bf3890) AAE-38626 Reload columns on appname change (#11560)
- [15806d7c9f](git@github.com:Alfresco/alfresco-ng2-components/commit/15806d7c9f) HXIDP-5181 Allow form text fields to render custom field status content (#11523)
- [42c2f78baf](git@github.com:Alfresco/alfresco-ng2-components/commit/42c2f78baf) Fixes icon button color in array item (#11588)
- [1028df91da](git@github.com:Alfresco/alfresco-ng2-components/commit/1028df91da) [ACS-7768] ADF Form fields cleanup (#11484)
- [1c59b2fb15](git@github.com:Alfresco/alfresco-ng2-components/commit/1c59b2fb15) [ACS-10307] SR: Personal files: No confirmation announced when creating new folder or document (#11549)
- [198e18bef5](git@github.com:Alfresco/alfresco-ng2-components/commit/198e18bef5) [ACS-10239] Add aria hidden to visual separators (#11572)
- [1022e1e51f](git@github.com:Alfresco/alfresco-ng2-components/commit/1022e1e51f) [ACS-10276] Add proper title and aria label to chip remove button (#11569)
- [6927af4ec3](git@github.com:Alfresco/alfresco-ng2-components/commit/6927af4ec3) [ACS-10288] Aria label for user initials pipe (#11568)
- [3f01a92d67](git@github.com:Alfresco/alfresco-ng2-components/commit/3f01a92d67) AAE-34140 Asynchronous Forms - automatically populated value cannot be used in another task (#11574)
- [e78da9dea0](git@github.com:Alfresco/alfresco-ng2-components/commit/e78da9dea0) ACS-8395: remove old and unused search picker components (#11573)
- [a3c309c676](git@github.com:Alfresco/alfresco-ng2-components/commit/a3c309c676) AAE-41613 Hiding tooltip card on click (#11571)
- [6eaaff33bb](git@github.com:Alfresco/alfresco-ng2-components/commit/6eaaff33bb) [ACS-10289] No notifications info is no longer mat menu item (#11566)
- [22478f8097](git@github.com:Alfresco/alfresco-ng2-components/commit/22478f8097) Update Storybook & Regenerate lockfile [ci:force][affected:*] (#11567)
- [b04e1ca081](git@github.com:Alfresco/alfresco-ng2-components/commit/b04e1ca081) [ACS-10323] Fix not announced aria-label (#11553)
- [0edb04eeb2](git@github.com:Alfresco/alfresco-ng2-components/commit/0edb04eeb2) [ACS-10301] Add aria-hidden to a decorative icon (#11564)
- [5c536079c9](git@github.com:Alfresco/alfresco-ng2-components/commit/5c536079c9) Refactor alfresco-viewer component tests to use [adf-icon] directive for icons (#11565)
- [6c4bdf0c5c](git@github.com:Alfresco/alfresco-ng2-components/commit/6c4bdf0c5c) Exclude adf-icon from linting (#11563)
- [f5c696ed7e](git@github.com:Alfresco/alfresco-ng2-components/commit/f5c696ed7e) AAE-41553 Fix again crowdin exec from release workflow_call (#11562)
- [5cdcd97201](git@github.com:Alfresco/alfresco-ng2-components/commit/5cdcd97201) [ACS-10259] Add an option to reorder rows with keyboard (#11548)
- [670e77580d](git@github.com:Alfresco/alfresco-ng2-components/commit/670e77580d) AAE-41553 Fix crowdin exec from release workflow_call (#11561)
- [c81a64be79](git@github.com:Alfresco/alfresco-ng2-components/commit/c81a64be79) [ACS-10206]: setting haspopup after init (#11475)
- [506aeecdc2](git@github.com:Alfresco/alfresco-ng2-components/commit/506aeecdc2) [ACS-10280] Keyboard Navigation: Search: Unnecessary stops in the results table using the Tab key: (#11529)
- [5076862e07](git@github.com:Alfresco/alfresco-ng2-components/commit/5076862e07) AAE-41553 Fix CI validation on crowdin PRs (#11557)
- [934765f2f6](git@github.com:Alfresco/alfresco-ng2-components/commit/934765f2f6) [ACS-10304] KN: personal files: Column resizing available via mouse but not accessible via keyboard (#11525)
- [50913dd4e4](git@github.com:Alfresco/alfresco-ng2-components/commit/50913dd4e4) [ACS-10335] Corrected screen reader reading for between group in search date range component (#11534)
- [219f52a361](git@github.com:Alfresco/alfresco-ng2-components/commit/219f52a361) [ACS-6821] Adjust the search filter icon in document list (#11528)
- [4bf065561a](git@github.com:Alfresco/alfresco-ng2-components/commit/4bf065561a) [ACS-10313] KN: Personal Files: Row selection checkboxes are not accessible for keyboard and screen reader users (#11531)
- [17f9b3eeba](git@github.com:Alfresco/alfresco-ng2-components/commit/17f9b3eeba) ACS-8224 Make Multi Value Pipe internal (#11530)
- [08725100d8](git@github.com:Alfresco/alfresco-ng2-components/commit/08725100d8) [ACS-10331] Corrected columns visibility title (#11526)
- [304216b36b](git@github.com:Alfresco/alfresco-ng2-components/commit/304216b36b) AAE-41330 Unify adf-icon use in adf-core (#11527)
- [e01cd40b1f](git@github.com:Alfresco/alfresco-ng2-components/commit/e01cd40b1f) [ACS-10205]: Extends DataTableAdapter interface to handle focus for accessibility (#11506)
- [e44e00304a](git@github.com:Alfresco/alfresco-ng2-components/commit/e44e00304a) AAE-38334 Add link process payload (#11524)
- [236726b67c](git@github.com:Alfresco/alfresco-ng2-components/commit/236726b67c) AAE-40657 Support multiple integration contexts in task service (#11463)
- [8ed1f4d8df](git@github.com:Alfresco/alfresco-ng2-components/commit/8ed1f4d8df) [ACS-1882] Keyboard Navigation: Personal files: Wrong focus order when adding a comment in "Details" section (#11521)
- [8824331f3b](git@github.com:Alfresco/alfresco-ng2-components/commit/8824331f3b) [ACS-10884] Keyboard interactions for crop tool in image viewer (#11522)
- [716ce228ce](git@github.com:Alfresco/alfresco-ng2-components/commit/716ce228ce) ACS-8772: Migrate node tooltip to Angular signals (#11498)
- [d7c01d3558](git@github.com:Alfresco/alfresco-ng2-components/commit/d7c01d3558) Update Angular packages to version 19.2.18 [ci:force] (#11518)
- [572231bf49](git@github.com:Alfresco/alfresco-ng2-components/commit/572231bf49) AAE-41225 update typescript target to es2022 and fix FormService propagation (#11508)
- [0c3cdaa006](git@github.com:Alfresco/alfresco-ng2-components/commit/0c3cdaa006) [ACS-10335] Grouped input controls with radio buttons for search date range component (#11507)
- [c64c6e4f7e](git@github.com:Alfresco/alfresco-ng2-components/commit/c64c6e4f7e) [ACS-10242] - Personal files: Filter by Size popup announces entire c… (#11468)
- [d0b3faad6a](git@github.com:Alfresco/alfresco-ng2-components/commit/d0b3faad6a) [ACS-10201] Snackbar content is hidden and not announced by SR (#11504)
- [d2021b9ae9](git@github.com:Alfresco/alfresco-ng2-components/commit/d2021b9ae9) AAE-40714 fixing the filter cut issue on admin-hxp (#11499)
- [66911491e3](git@github.com:Alfresco/alfresco-ng2-components/commit/66911491e3) AAE-39182 Update (some) Angular packages to version 19.2.19
- [fe39b3c1bd](git@github.com:Alfresco/alfresco-ng2-components/commit/fe39b3c1bd) [AAE-40028] Added group/section validation skipping to cloud forms for workspace (#11466)
- [8c1118984d](git@github.com:Alfresco/alfresco-ng2-components/commit/8c1118984d) remove webpack and webpack cli [ci:force] (#11464)
- [21d6818de5](git@github.com:Alfresco/alfresco-ng2-components/commit/21d6818de5) ACS-10083 Fixes filters behavior with queryParams (#11426)
- [331b4459a8](git@github.com:Alfresco/alfresco-ng2-components/commit/331b4459a8) AAE-40359 Filter out service processes on start process (#11446)
- [7eb2034008](git@github.com:Alfresco/alfresco-ng2-components/commit/7eb2034008) AAE-40093 Support defining translations from code (#11442)
- [68ab5b1c16](git@github.com:Alfresco/alfresco-ng2-components/commit/68ab5b1c16) AAE-39923 Placholeder is formatted according to the enableFractions (#11441)
- [ec7ede3830](git@github.com:Alfresco/alfresco-ng2-components/commit/ec7ede3830) AAE-40544 Add ability to filter out subprocesses (#11445)
- [34a929ec47](git@github.com:Alfresco/alfresco-ng2-components/commit/34a929ec47) [AAE-40654] added space for label (#11443)
- [8c0d5fc8a1](git@github.com:Alfresco/alfresco-ng2-components/commit/8c0d5fc8a1) [ACS-10282] screen reader personal files perform actions empty state not announced by screen reader (#11444)
- [8fa3e6acdf](git@github.com:Alfresco/alfresco-ng2-components/commit/8fa3e6acdf) [MNT-25408]: updates changing search config logic; exposes stream for active filters (#11386)
- [6567c02220](git@github.com:Alfresco/alfresco-ng2-components/commit/6567c02220) AAE-40269 Cleanup deprecated global sass mixins (#11420)
- [9717a88818](git@github.com:Alfresco/alfresco-ng2-components/commit/9717a88818) [ACS-10226] Improve color contrast for better accessibility (#11429)
- [58591c67dc](git@github.com:Alfresco/alfresco-ng2-components/commit/58591c67dc) [ACS-10835] Add new param for recent filters in custom resources services (#11428)
- [ab0cb46065](git@github.com:Alfresco/alfresco-ng2-components/commit/ab0cb46065) AAE-40641 Upgarde Nx Workspace to latest (v22) (#11440)
- [de62fe181a](git@github.com:Alfresco/alfresco-ng2-components/commit/de62fe181a) [MNT-24950] Preview a file from APS doesn't work in ADW (#11439)
- [cc053a76ae](git@github.com:Alfresco/alfresco-ng2-components/commit/cc053a76ae) AAE-40540 fixing tab misplacement issue on ADW (#11427)
- [10eae07cc0](git@github.com:Alfresco/alfresco-ng2-components/commit/10eae07cc0) [AAE-39923] provide transformed placeholder if possible (#11422)
- [4dab69d4dc](git@github.com:Alfresco/alfresco-ng2-components/commit/4dab69d4dc) Revert "[ACS-10281] a11y fix - Approve step folder control is focusable twice…" (#11424)
- [e6fe929b02](git@github.com:Alfresco/alfresco-ng2-components/commit/e6fe929b02) [ACS-10260] Add required format to search date range (#11423)
- [40df22b576](git@github.com:Alfresco/alfresco-ng2-components/commit/40df22b576) AAE-40028 Added improvement to ignore field validation if it is inside a group/section that is hidden (#11362)
- [f379d99474](git@github.com:Alfresco/alfresco-ng2-components/commit/f379d99474) [ACS-10281] a11y fix - Approve step folder control is focusable twice causing duplicate screen reader (#11385)
- [f317374a2e](git@github.com:Alfresco/alfresco-ng2-components/commit/f317374a2e) [ACS-10306] Proper alt for user or group icons (#11403)
- [a9efe36e5f](git@github.com:Alfresco/alfresco-ng2-components/commit/a9efe36e5f) AAE-40427 Replace shelljs with native node api (#11404)
- [c5f3008301](git@github.com:Alfresco/alfresco-ng2-components/commit/c5f3008301) [MNT-25276] sorting using sorting key configuration is not correctly saved in localstorage (#11383)
- [57090bd76e](git@github.com:Alfresco/alfresco-ng2-components/commit/57090bd76e) Stabilize data conversion methods for rows and columns in datatable (#11398)
- [2009a4ec27](git@github.com:Alfresco/alfresco-ng2-components/commit/2009a4ec27) AAE-40356 Fix misaligned datetime card view element (#11391)
- [dbdc402756](git@github.com:Alfresco/alfresco-ng2-components/commit/dbdc402756) AAE-40078 Fix visibility condition not working (#11389)
- [f63f0a85c0](git@github.com:Alfresco/alfresco-ng2-components/commit/f63f0a85c0) [ACS-10765] Enable workflow_dispatch for release workflow (#11390)
- [3031ec1f66](git@github.com:Alfresco/alfresco-ng2-components/commit/3031ec1f66) AAE-39988 Dropdown conditional not working for repeatable section (#11360)
- [c68f638992](git@github.com:Alfresco/alfresco-ng2-components/commit/c68f638992) AAE-39796 Reduce customizations of card view fields (#11373)
- [eff64284e9](git@github.com:Alfresco/alfresco-ng2-components/commit/eff64284e9) Revert "AAE-39923 Placeholder transformed with currency based on locale (#11342)" (#11370)
- [9a6cd813de](git@github.com:Alfresco/alfresco-ng2-components/commit/9a6cd813de) ACS-10745 File size columns not translating the tooltips (#11368)
- [03f67c861f](git@github.com:Alfresco/alfresco-ng2-components/commit/03f67c861f) [ACS-10740] Adjust Karma and Jest config (#11365)
- [58a25fe19e](git@github.com:Alfresco/alfresco-ng2-components/commit/58a25fe19e) AAE-40136 Migrate locale settings to signals (#11361)
- [2f5139df73](git@github.com:Alfresco/alfresco-ng2-components/commit/2f5139df73) fix post release version bump
- [9fd304b66d](git@github.com:Alfresco/alfresco-ng2-components/commit/9fd304b66d) post release version bump (#11366)
Title:Changelog for alfresco-ng2-components v8.4.1
---
# Changelog
- [af95723f30](https://github.com/Alfresco/alfresco-ng2-components/commit/af95723f30) [ACS-11589] [ACA] info drawer test-area does not show full text (#11816)
- [d70ae599c7](https://github.com/Alfresco/alfresco-ng2-components/commit/d70ae599c7) Fix security vulnerabilities in npm dependencies (#11815)
- [07c6a4d923](https://github.com/Alfresco/alfresco-ng2-components/commit/07c6a4d923) Remove jasmine-spec-reporter dependency from package.json and package-lock.json (#11814)
- [6fc8dda887](https://github.com/Alfresco/alfresco-ng2-components/commit/6fc8dda887) Remove mocha and jasmine-ajax dependencies (#11813)
- [48eb258311](https://github.com/Alfresco/alfresco-ng2-components/commit/48eb258311) AAE-44184 Colspan setting on form fields is ignored or not properly applied (#11800)
- [32850a0ce8](https://github.com/Alfresco/alfresco-ng2-components/commit/32850a0ce8) [MNT-25185] Display authority name instead of id if provided (#11809)
- [8a6bcac29e](https://github.com/Alfresco/alfresco-ng2-components/commit/8a6bcac29e) [ACS-11506]: moved aria-live region (#11808)
- [8ce0561ef5](https://github.com/Alfresco/alfresco-ng2-components/commit/8ce0561ef5) AAE-44086 Unify styling and coloring of errors in forms (#11797)
- [69a9dc1386](https://github.com/Alfresco/alfresco-ng2-components/commit/69a9dc1386) AAE-44002 Allow user input for date and datetime fields (#11791)
- [70a6f42649](https://github.com/Alfresco/alfresco-ng2-components/commit/70a6f42649) AAE-40741 Form rule `Validate form` doesn't do anything (#11788)
- [74252797b7](https://github.com/Alfresco/alfresco-ng2-components/commit/74252797b7) AAE-28918 Fix for start process button is enabled when required widgets are read only without value (#11781)
- [79871455f4](https://github.com/Alfresco/alfresco-ng2-components/commit/79871455f4) [ACS-10242] SR: Personal files: Filter by Size popup announces entire content instead of dialog title (#11782)
- [d7a8f03dbf](https://github.com/Alfresco/alfresco-ng2-components/commit/d7a8f03dbf) AAE-43749 Added date formatting according to locale (#11769)
- [a3e13da3a4](https://github.com/Alfresco/alfresco-ng2-components/commit/a3e13da3a4) [ACS-10280]: Keyboard Navigation: Search: Unnecessary stops in the results table using the Tab key (#11736)
- [565db01819](https://github.com/Alfresco/alfresco-ng2-components/commit/565db01819) [MNT-25635] Search filter autocomplete search for tags when input changes (#11780)
- [f321b74be0](https://github.com/Alfresco/alfresco-ng2-components/commit/f321b74be0) AAE-21162 Add deploymentCompletion property to ApplicationInstance model (#11784)
- [28fe6d3a76](https://github.com/Alfresco/alfresco-ng2-components/commit/28fe6d3a76) AAE-43710 Fix form field spacing misalignments (#11763)
- [d526d31425](https://github.com/Alfresco/alfresco-ng2-components/commit/d526d31425) AAE-34137 Fix for disabling `complete` button on the form after declining form confirmation dialog (#11766)
- [e97439f09b](https://github.com/Alfresco/alfresco-ng2-components/commit/e97439f09b) AAE-43391 Disable 'Start process' and 'Complete' when whitespace is entered into required form fields (#11760)
- [bdd4b687c6](https://github.com/Alfresco/alfresco-ng2-components/commit/bdd4b687c6) AAE-43290 updating the minor version for angular in ADF (#11752)
- [46989ae081](https://github.com/Alfresco/alfresco-ng2-components/commit/46989ae081) [ACS-11319] Move tree actions menu item buttons inside the component (#11749)
- [759d206302](https://github.com/Alfresco/alfresco-ng2-components/commit/759d206302) HXIDP-6471 Provide start process variables to custom screen (#11712)
- [a865372819](https://github.com/Alfresco/alfresco-ng2-components/commit/a865372819) [ACS-10267] Announce titles for repository info as headings (#11728)
- [2bab587876](https://github.com/Alfresco/alfresco-ng2-components/commit/2bab587876) [ACS-11205] Bring back removed getter (#11735)
- [e325ad3871](https://github.com/Alfresco/alfresco-ng2-components/commit/e325ad3871) AAE-39678 Apply visibility conditions if dependent field's value is changed with form rules (#11729)
- [a8ae3d3b4e](https://github.com/Alfresco/alfresco-ng2-components/commit/a8ae3d3b4e) AAE-42908 Evaluate expressions for rich-text-display list types (#11726)
- [c723e19b6d](https://github.com/Alfresco/alfresco-ng2-components/commit/c723e19b6d) AAE-46971 Update Supply Chain Review GH AW to latest (#11972)
- [bb6f9b1f3d](https://github.com/Alfresco/alfresco-ng2-components/commit/bb6f9b1f3d) AAE-46434 Fix disabled stying for people widgets (#11967)
- [7bb219e4dd](https://github.com/Alfresco/alfresco-ng2-components/commit/7bb219e4dd) AAE-46654 Fix - return empty string when no value is provided in card… (#11969)
- [70038bea26](https://github.com/Alfresco/alfresco-ng2-components/commit/70038bea26) AAE-46246 Format typed values in form display widgets v2 (#11952)
- [7d76d789b2](https://github.com/Alfresco/alfresco-ng2-components/commit/7d76d789b2) AAE-41418 Add process instance id input to task header cloud component (#11897)
- [a71cc84f11](https://github.com/Alfresco/alfresco-ng2-components/commit/a71cc84f11) AAE-46507 Next Task Endpoint (#11943)
- [34acdd20cf](https://github.com/Alfresco/alfresco-ng2-components/commit/34acdd20cf) Revert "AAE-46246 Format typed values in form display widgets (#11935)" (#11951)
- [f39b9167b8](https://github.com/Alfresco/alfresco-ng2-components/commit/f39b9167b8) AAE-46246 Format typed values in form display widgets (#11935)
- [aa2a357fb2](https://github.com/Alfresco/alfresco-ng2-components/commit/aa2a357fb2) AAE-46434 Fix read-only field styling on forms (#11928)
- [46b2d0380b](https://github.com/Alfresco/alfresco-ng2-components/commit/46b2d0380b) AAE-45774 Shorten invalid date error message (#11920)
- [274ddb3098](https://github.com/Alfresco/alfresco-ng2-components/commit/274ddb3098) AAE-46386 Set DependaBot cooldown for all ecosystems as 3d (#11947)
- [f602070f1e](https://github.com/Alfresco/alfresco-ng2-components/commit/f602070f1e) AAE-46388 Fix DependaBot config to ignore gh-aw-actions (#11946)
- [d206d28f1c](https://github.com/Alfresco/alfresco-ng2-components/commit/d206d28f1c) [AAE-32905] Fix commit messages commands aren't working (#11922)
- [80e9e51cfa](https://github.com/Alfresco/alfresco-ng2-components/commit/80e9e51cfa) AAE-46242 - Looks like we need to override the mapping as crowding config is not set to this format (#11939)
- [345e1e69ad](https://github.com/Alfresco/alfresco-ng2-components/commit/345e1e69ad) AAE-46242 - should use the variable osx_locale to match the format xx-YY (#11936)
- [a2b026ed7e](https://github.com/Alfresco/alfresco-ng2-components/commit/a2b026ed7e) [AAE-46242] - Changed the name convention for translation files to ISO standard naming (#11924)
- [1314f0751f](https://github.com/Alfresco/alfresco-ng2-components/commit/1314f0751f) AAE-46476 Fix sorting functionality of task list retrieval from runtime bundle (#11921)
- [8280aa2f6d](https://github.com/Alfresco/alfresco-ng2-components/commit/8280aa2f6d) chore: update NX packages to version 22.7.2 and related dependencies (#11904)
- [5553aaaefe](https://github.com/Alfresco/alfresco-ng2-components/commit/5553aaaefe) [MNT-25522] Add support for fileLink icon (#11903)
- [15814380a5](https://github.com/Alfresco/alfresco-ng2-components/commit/15814380a5) [ci:force] AAE-46219 [TEST] Revert cli build/installDeps changes from #11880 and #11899 (#11901)
- [4044fafc39](https://github.com/Alfresco/alfresco-ng2-components/commit/4044fafc39) AAE-46219 Skip prod deps in cli:installDeps to unblock release (#11899)
- [1d163c6749](https://github.com/Alfresco/alfresco-ng2-components/commit/1d163c6749) Revert "AAE-44065 Change date picker to match other styles (#11868)" (#11896)
- [165d0fc521](https://github.com/Alfresco/alfresco-ng2-components/commit/165d0fc521) chore: remove unused moment dependency (#11893)
- [64d9f3a6d4](https://github.com/Alfresco/alfresco-ng2-components/commit/64d9f3a6d4) AAE-45774 Show error for date fields if invalid format (#11886)
- [9e106b006c](https://github.com/Alfresco/alfresco-ng2-components/commit/9e106b006c) AAE-43881 Fix for form rules not applying when new [data] comes in (#11879)
- [8309d2dc55](https://github.com/Alfresco/alfresco-ng2-components/commit/8309d2dc55) AAE-44065 Change date picker to match other styles (#11868)
- [e3430ae36e](https://github.com/Alfresco/alfresco-ng2-components/commit/e3430ae36e) AAE-45695 Group @typescript-eslint/* packages in dependabot (#11880)
- [1860fefd42](https://github.com/Alfresco/alfresco-ng2-components/commit/1860fefd42) [MNT-25647] Handle facets label wrapped in quotes (#11866)
- [9fe4006a0d](https://github.com/Alfresco/alfresco-ng2-components/commit/9fe4006a0d) AAE-45391 Lazy loading and improvements for pdfJS (#11869)
- [0faa2e1a56](https://github.com/Alfresco/alfresco-ng2-components/commit/0faa2e1a56) [AAE-0000] - fixed run for process-service-cloud (#11855)
- [d6262eafc6](https://github.com/Alfresco/alfresco-ng2-components/commit/d6262eafc6) [ACS-11628] small for for init-acs-env.ts (#11860)
- [d3ad66d25b](https://github.com/Alfresco/alfresco-ng2-components/commit/d3ad66d25b) AAE-44435 Fix incorrect Start process button on user task forms (#11837)
- [aa2de3bde6](https://github.com/Alfresco/alfresco-ng2-components/commit/aa2de3bde6) AAE-45173 Adding background color to tooltip card (#11852)
- [d3ac5362ba](https://github.com/Alfresco/alfresco-ng2-components/commit/d3ac5362ba) AAE-44946 - Sending also previous value to allow valuation and valida… (#11836)
- [ddb8adc0e4](https://github.com/Alfresco/alfresco-ng2-components/commit/ddb8adc0e4) AAE-44752 Add type to ProcessInstanceCloud (#11847)
- [85005c9c1c](https://github.com/Alfresco/alfresco-ng2-components/commit/85005c9c1c) AAE-44987 Applying color and background to sidenav (#11846)
- [407c6c1829](https://github.com/Alfresco/alfresco-ng2-components/commit/407c6c1829) [ACS-11350] keyboard navigation user incorrect focus order after collapsing the left navigation menu (#11835)
- [e3fc03c58d](https://github.com/Alfresco/alfresco-ng2-components/commit/e3fc03c58d) Revert "AAE-44098 Bottom Tab nav buttons (#11801)" (#11832)
- [510a813ed2](https://github.com/Alfresco/alfresco-ng2-components/commit/510a813ed2) [ACS-11472] Fix file icon is not updated for version renditions (#11807)
- [7864f1a8e0](https://github.com/Alfresco/alfresco-ng2-components/commit/7864f1a8e0) AAE-44098 Bottom Tab nav buttons (#11801)
This guide describes how to create and structure a new story for a component in the Alfresco Angular Components repository.
## File Location
Story files should be co-located with the component they are documenting. This keeps the stories close to the source code and makes them easier to find and maintain.
## Naming Convention
The file should be named using the pattern:
`[component-name].stories.ts`
For example, if your component is `my-component.component.ts`, the story file should be `my-component.component.stories.ts`.
## Basic Structure
A typical story file includes:
1. Imports for `Meta`, `Story`, `moduleMetadata` from `@storybook/angular`.
2. The component configuration using `applicationConfig` to provide necessary dependencies.
3. Usage of `provideStoryCore()` (or other library-specific providers) to set up the environment.
### Example
Here is an example of how to set up a basic story for a component.
import{provideStoryCore}from'@alfresco/adf-core/testing';// Adjust import based on your library location
import{CommonModule}from'@angular/common';
constmeta: Meta<MyComponent>={
title:'Core/My Component',
component: MyComponent,
decorators:[
applicationConfig({
providers:[...provideStoryCore()]
}),
moduleMetadata({
imports:[MyComponent]
})
],
argTypes:{
// Define controls for your inputs here
label:{control:'text'},
isDisabled:{control:'boolean'}
}
};
exportdefaultmeta;
typeStory=StoryObj<MyComponent>;
exportconstDefault: Story={
args:{
label:'Click me',
isDisabled: false
}
};
exportconstDisabled: Story={
args:{
label:'Disabled',
isDisabled: true
}
};
```
### Dependencies
The `provideStoryCore()` function helper is essential for setting up the common providers required by ADF components, such as translation services, authentication mocks, and app configuration.
If your component requires specific services not included in `provideStoryCore()`, you should add them to the `providers` array in the `applicationConfig`.
- [Naming Components and Hierarchy](https://storybook.js.org/docs/angular/writing-stories/naming-components-and-hierarchy)
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.