Compare commits

...
145 Commits
Author SHA1 Message Date
Jacek Pluta 3c3961dd82 [ACS-8695] Getting Agent avatar 2024-09-10 10:28:56 +02:00
Aleksander Sklorz 92881d063a ACS-8201 Fixed issues after rebase 2024-09-09 13:25:56 +02:00
AleksanderSklorz 0a717d612f [ACS-8664] generic question redirection to hx insight (#10174)
* ACS-8664 Loading HX insight url

* ACS-8664 Added documentation for loading config of Knowledge Retrieval

* ACS-8664 Unit tests

* ACS-8664 Fixed unit tests

* ACS-8664 Fixed unit tests after rebase

* ACS-8664 Addressed comment
2024-09-09 13:11:41 +02:00
jacekpluta 13fc92e62c Answers endpoint fix (#10176) 2024-09-09 13:11:41 +02:00
jacekpluta a21dc4d6a0 [ACS-8399] Integrate all changes with backend (#10163) 2024-09-09 13:11:41 +02:00
jacekpluta dcaa736a0c [ACS-8588] Navigation is triggered twice when leaving Knowledge Retrieval page (#10132)
* [ACS-8588] Navigation is triggered twice when leaving Knowledge Retrieval page

* [ACS-8588] Navigation is triggered twice when leaving Knowledge Retrieval page - review fixes

* [ACS-8588] Navigation is triggered twice when leaving Knowledge Retrieval page - review fixes 2
2024-09-09 13:11:41 +02:00
Aleksander Sklorz 27a536434a ACS-8201 Fixed issues after rebase 2024-09-09 13:11:40 +02:00
jacekpluta 261d35b805 [ACS-8432] Sending all file types to HX instead of only the text file types (#10087) 2024-09-09 13:11:40 +02:00
jacekpluta bc8305b15e [ACS-8312] Display warning about losing response (#10059)
* [ACS-8312] Display warning about losing response

* [ACS-8312] Display warning about losing response - fixes
2024-09-09 13:11:40 +02:00
Jacek Pluta d9258e88ed [ACS-8573] Allow user to ask question without file selection 2024-09-09 13:11:40 +02:00
jacekpluta 8abc6d495d [ACS-8210] Agent basic details popup (#9956) 2024-09-09 13:11:40 +02:00
AleksanderSklorz 16e851e6b5 [ACS-8398] Unit tests for agents and search ai (#9974)
* ACS-8398 Unit tests for search ai api and agents api

* ACS-8398 Unit tests for getAnswer function from SearchAiApi, corrections for unit tests for SearchAiApi and AgentsApi

* ACS-8398 Unit tests for SearchAiService and AgentService
2024-09-09 13:11:40 +02:00
Aleksander Sklorz ad9c1a0ce0 ACS-8201 Small correction after rebasing with Angular 15 2024-09-09 13:11:40 +02:00
AleksanderSklorz fd32667c1a [ACS-8202] basic flow getting ai response for one or more selected files (#9944)
* ACS-8202 Getting list of agents

* ACS-8202 Mocked agents, used base api from hxi connector

* ACS-8202 Search Ai service

* ACS-8202 Small correction and mocked data

* ACS-8202 Renamed variable

* ACS-8202 Added documentation

* ACS-8202 Addressed PR comments

* ACS-8202 Type change

* ACS-8202 Reverted unwatend change

* ACS-8202 Reverted unwanted change
2024-09-09 13:11:37 +02:00
Bartosz Sekula 7506c109d8 AAE-25817 Fix for initializing alfresco API (#10184) 2024-09-09 11:45:37 +02:00
e617333f00 [AAE-20109] Move alfresco js-API and alfrescoapi service out from the core (#9317)
* AAE-20109 Remove alfrescoapiservice from core

* fix after rebase

* [AAe-12502] Post-rebase fix

* [AAE-12502] Add unit test fix

---------

Co-authored-by: Bartosz Sekula <Bartosz.Sekula@hyland.com>
Co-authored-by: MichalKinas <michal.kinas@hyland.com>
2024-09-06 18:43:33 +02:00
Pablo Martinez b60797e3b1 AAE-25190 Retrieve start process cloud customisation (#10133)
* AAE-25190 Restrieve start process cloud customisation

* AAE-25190 Fix code duplucation

* AAE-25190 Address review comments

* AAE-25190 Address review comments
2024-09-06 16:25:49 +02:00
Kasia Biernat-Kluba 166325d703 AAE-24927 add ability to style form widget - header (#10173)
* AAE-25211 form styling PoC

* AAE-25211 poc

* AAE-25211 revert cloud form service

* AAE-24927 display text schema

* AAE-24927 radio button styles

* AAE-24927 header styles

* AAE-24927 style pipes

* AAE-24927 styles for header

* AAE-24927 remove redundand prop
2024-09-05 11:59:57 +02:00
Kasia Biernat-Kluba 5d5c1ac527 AAE-24927 Add ability to style form widgets (#10171)
* AAE-25211 form styling PoC

* AAE-25211 poc

* AAE-25211 revert cloud form service

* AAE-24927 display text schema

* AAE-24927 radio button styles

* AAE-24927 header styles

* AAE-24927 style pipes

* AAE-24927 remove redundand field

* remove redundand comment

* fix build error

* remove space from protractor test
2024-09-05 10:58:36 +02:00
Denys Vuika a86b23f8a1 ACS-8221: remove internal localized role pipe (#10143)
* remove internal localized role pipe

* remove internal localized role pipe [ci:force]

* performance improvements
2024-09-04 11:59:34 -04:00
MichalKinas a238442d93 [ACS-8635] Properly handle each case of viewing files linked to process/task (#10169)
* [ACS-8635] Properly handle each case of viewing files linked to process/task

* [ACS-8635] Unit test coverage
2024-09-04 14:51:17 +02:00
Akash Rathod 4821c19760 [ACS-8733] exclude flaky test need fix (#10172) 2024-09-04 14:14:39 +02:00
Akash Rathod 564b3f4931 ACS-8733 e2e locator fix (#10170) 2024-09-04 11:46:56 +02:00
tomasz hanaj 7d7843bc47 [AAE-25268] added output for updated filter (#10110) 2024-09-03 11:52:08 +01:00
Ehsan Rezaei 598d494b0f Fix peerDependency version conflicts (#10167) 2024-09-03 11:44:13 +01:00
dependabot[bot]andEugenio Romano 15d3f468d4 build(deps-dev): bump webpack from 5.93.0 to 5.94.0 (#10156)
Bumps [webpack](https://github.com/webpack/webpack) from 5.93.0 to 5.94.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.93.0...v5.94.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
2024-09-03 12:06:13 +02:00
Kasia Biernat-Kluba 0f3098d9f0 AAE-0000 Fix imports (#10165) 2024-09-03 10:30:07 +02:00
dependabot[bot] 14e34c8b47 build(deps): bump actions/upload-artifact in /.github/actions/e2e (#10158)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:51:28 +02:00
dependabot[bot] 635760b678 build(deps): bump actions/upload-artifact (#10162)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:51:09 +02:00
dependabot[bot] af3099bbae build(deps): bump actions/upload-artifact (#10157)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:50:51 +02:00
dependabot[bot] 49ccf6f694 build(deps): bump actions/upload-artifact (#10159)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/834a144ee995460fba8ed112a2fc961b36a5ec5a...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:50:34 +02:00
dependabot[bot] ebf6e01185 build(deps): bump github/codeql-action from 3.26.5 to 3.26.6 (#10161)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.5 to 3.26.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/2c779ab0d087cd7fe7b826087247c2c81f27bfa6...4dd16135b69a43b6c8efb853346f8437d92d3c93)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:50:14 +02:00
dependabot[bot] fa4c6468bf build(deps): bump slackapi/slack-github-action from 1.26.0 to 1.27.0 (#10160)
Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/slackapi/slack-github-action/releases)
- [Commits](https://github.com/slackapi/slack-github-action/compare/70cd7be8e40a46e8b0eced40b0de447bdb42f68e...37ebaef184d7626c5f204ab8d3baff4262dd30f0)

---
updated-dependencies:
- dependency-name: slackapi/slack-github-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 09:49:56 +02:00
Ehsan Rezaei 4fd62acdec AAE-25392 Fixing types for setAuthGuards method (#10164)
* AAE-25392 Fixing types for setAuthGuards method

* AAE-25392 Fix type
2024-09-03 07:43:34 +02:00
Ehsan RezaeiandKasia Biernat beae4054f2 Revert "Revert "AAE-23521 Fix improve dropdown reactive form"" (#10073)
* Revert "Revert "AAE-23521 Fix improve dropdown reactive form" (#10068)"

This reverts commit 554218d11e.

* AAE-23521 fix trigger error check

* AAE-23521 improve standalone import

---------

Co-authored-by: Kasia Biernat <kasia.biernat@hyland.com>
2024-09-02 14:27:10 +02:00
dominikiwanekhyland 8a60a26701 [ACS-8682] - [ACA] alignment missing on notification message and photo on notifications popup (#10149) 2024-08-30 09:50:01 -04:00
dependabot[bot] 3993001664 build(deps): bump Alfresco/alfresco-build-tools (#10098)
Bumps [Alfresco/alfresco-build-tools](https://github.com/alfresco/alfresco-build-tools) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/alfresco/alfresco-build-tools/releases)
- [Commits](https://github.com/alfresco/alfresco-build-tools/compare/9d00215f539f669b41c7fabf7b88ccc8f316926c...209bb4275688720e13dc0703dbd17826bf677c5c)

---
updated-dependencies:
- dependency-name: Alfresco/alfresco-build-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 14:03:36 +02:00
dependabot[bot] be3a4b44b7 build(deps): bump Alfresco/alfresco-build-tools from 6.0.1 to 6.1.0 (#10097)
Bumps [Alfresco/alfresco-build-tools](https://github.com/alfresco/alfresco-build-tools) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/alfresco/alfresco-build-tools/releases)
- [Commits](https://github.com/alfresco/alfresco-build-tools/compare/9d00215f539f669b41c7fabf7b88ccc8f316926c...209bb4275688720e13dc0703dbd17826bf677c5c)

---
updated-dependencies:
- dependency-name: Alfresco/alfresco-build-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 14:03:27 +02:00
Ehsan Rezaei 7be2e8fd96 AAE-25392 Convert route guards to functional part four (#10123)
* AAE-25392 Convert route guards to functional - part four

* AAE-25392 putting back missing method

* AAE-25392 Code improvement

* AAE-25392 unit tests improvement

* AAE-25392 unit tests improvements

* AAE-25392 Improving service class name
2024-08-30 11:50:07 +02:00
Tomasz Nastaly bed18d8453 ACS-7747 Fix flaky test (#10131)
* ACS-7747 Fix flaky test

* ACS-7747 Fix flaky test, apply pr remark
2024-08-29 15:35:05 -04:00
Denys Vuika efaa35db47 fix Wrong German translation for UPLOAD_ERROR; fixes #9980 (#10146) 2024-08-29 13:09:43 -04:00
Denys Vuika 6d2c5421a5 ACS-8220: replace filterOutEvery pipe with simple api (#10147)
* replace filterOutEvery pipe with simple api

* reuse the new api
2024-08-29 12:57:10 -04:00
Ehsan Rezaei c876058c51 AAE-25392 Convert route guards to functional - part one (#10113)
* AAE-25392 Convert route guards to functional - part one

* AAE-25392 Code improvement
2024-08-29 18:07:01 +02:00
Ehsan Rezaei aeee07d82a AAE-25392 Convert route guards to functional - part three (#10117) 2024-08-29 17:26:26 +02:00
Ehsan Rezaei 0433ada548 AAE-25392 Convert route guards to functional - part two (#10116) 2024-08-29 17:25:19 +02:00
swapnil-verma-gl 7910cd96c4 [ACS-6888] Fixed alignment issue in breadcrumb component (#10099) 2024-08-29 11:08:40 -04:00
dominikiwanekhyland 26daed958f [ACS-8635] ADW: View button not working on create process (#10121)
* [ACS-8635] ADW: View button not working on create process

* [ACS-8635] ADW: View button not working on create process
2024-08-29 11:07:38 -04:00
swapnil-verma-gl ac317f82d1 [ACS-8663] Fixed issue where datatable selection was not getting reset completely in some cases (#10136)
* [ACS-8663] Fixed issue where datatable selection was not getting reset completely in some cases

* [ACS-8663] Updated unit tests
2024-08-29 11:05:13 -04:00
dependabot[bot] ea2042e0ff build(deps): bump github/codeql-action from 3.26.0 to 3.26.5 (#10129)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.0 to 3.26.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/eb055d739abdc2e8de2e5f4ba1a8b246daa779aa...2c779ab0d087cd7fe7b826087247c2c81f27bfa6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-29 11:04:38 -04:00
swapnil-verma-gl 9caf9d2fc3 [ACS-8647] Fixed issue where data table rows could not be selected when the height of the row expanded due to tags (#10137) 2024-08-29 11:04:01 -04:00
Denys Vuika 54ab9575d3 ACS-8652: Noop Translation Module for better unit testing ergonomics (#10118) 2024-08-29 11:02:12 -04:00
dominikiwanekhyland f6e72f8a6f [ACS-8638] - [ACC] User is able to 'select' tag chip while creating new tags in ACC (#10134) 2024-08-29 11:01:00 -04:00
dominikiwanekhyland 18d81f6307 ACS-8639 - [ACC ]Adding a space to the front/end of a tag name during tag creation removes the 'Tag already exists' validation message (#10138) 2024-08-29 10:59:34 -04:00
dominikiwanekhyland 158baa7cc9 [ACS-8640] - unable to create tag with certain special characters (#10139)
* [ACS-8640] [ACC] Unable to create tag with certain special characters

* [ACS-8640] [ACC] Unable to create tag with certain special characters
2024-08-29 10:57:36 -04:00
706428d356 Revert "Revert "AAE-24371 Fix invalid endpoint is called when process with form is st…"" (#10076)
* Revert "Revert "AAE-24371 Fix invalid endpoint is called when process with fo…"

This reverts commit 0277376c79.

* AAE-24371 unify error response

* AAE-24371 unify error response

* AAE-24371 unify error response

---------

Co-authored-by: Kasia Biernat <kasia.biernat@hyland.com>
Co-authored-by: Kasia Biernat-Kluba <1268696+kathrine0@users.noreply.github.com>
2024-08-29 16:48:52 +02:00
MichalKinas 884e6b7a36 Release 7.0.0-alpha.2 (#10145) 2024-08-29 11:34:07 +02:00
Michał Fidor 075589c9d0 AAE-25202 Update default application (#10141) 2024-08-29 08:36:22 +02:00
MichalKinas a535e846c4 Release 7.0.0-alpha.1 (#10144) 2024-08-28 16:57:15 +01:00
MichalKinasandVitoAlbano a17ab17901 Release 7.0.0-alpha.1+angular.15 (#10140)
* Release 7.0.0-alpha.1+angular.15

* Fix - removed installDeps as it leads to issues and the lib builds anyway

* Use 7.9.0 js-api for cli

* Cli fix

* Use 7.8.0

---------

Co-authored-by: VitoAlbano <vito.albano.123@gmail.com>
2024-08-28 15:50:59 +02:00
swapnil-verma-gl 4a18be06b1 [ACS-8644] Fixed issue where download button and comments section was missing on manage versions dialog (#10119) 2024-08-26 13:05:38 -04:00
dependabot[bot] b1f59facf3 build(deps): bump micromatch from 4.0.7 to 4.0.8 (#10135)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 12:45:19 -04:00
Bartosz Sekula b13e95b8ee AAE-18154 Fix redirect post logout uri (#10122) 2024-08-26 12:00:22 -04:00
Grzegorz Jaśkowski 94787b5705 [ACS-8597] use endpoint for bulk hold operation status (#10120)
* ACS-8597 add operation status api, use entry for assign response

* ACS-8597 review remarks - property order, docs cosistency
2024-08-26 17:15:02 +02:00
dependabot[bot] 61faf92d41 build(deps): bump zgosalvez/github-actions-ensure-sha-pinned-actions (#10130)
Bumps [zgosalvez/github-actions-ensure-sha-pinned-actions](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions) from 3.0.10 to 3.0.11.
- [Release notes](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/releases)
- [Commits](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/compare/b88cd0aad2c36a63e42c71f81cb1958fed95ac87...3c16e895bb662b4d7e284f032cbe8835a57773cc)

---
updated-dependencies:
- dependency-name: zgosalvez/github-actions-ensure-sha-pinned-actions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 17:11:45 +02:00
Denys Vuika e91ba575a7 ACS-8661: fix regression with metadata tags layout after Angular 15 upgrade (#10124) 2024-08-26 08:49:48 -04:00
MichalKinas 4124efd4a0 [MNT-24553] Allow custom viewer extension components to obtain node id (#10115) 2024-08-22 11:38:32 -04:00
Denys Vuika 8d7ea71711 ACS-8630: remove Angular upgrade hacks from Attach Widget (#10111) 2024-08-21 08:00:06 -04:00
Denys Vuika 291d5c826b ACS-8217: Remove internal Boolean pipe (#10101) 2024-08-20 11:28:38 -04:00
Denys Vuika 00304c1931 ACS-8611: cleanup Stencil suite (Protractor) (#10103) 2024-08-20 08:38:21 -04:00
Denys Vuika d56988b6a7 Fix date-fns related exports for Core lib (#10102) 2024-08-20 08:38:02 -04:00
Denys Vuika 04e2b16f66 ACS-8614: Remove old search layout protractor e2e (#10104) 2024-08-20 08:36:36 -04:00
Tomasz Gnyp 4807f10827 Core pipes backward compatibility v2 (#10109) 2024-08-20 11:30:56 +02:00
Bartosz Sekula cd9dc4d8c2 AAE-25326 Fix custom theme (#10100)
* AAE-25326 Fix custom theme

* fix
2024-08-19 18:51:54 +01:00
Denys Vuika 075e63d693 Core Pipes backwards compatibility (#10090) 2024-08-14 16:59:51 -04:00
Michał Woliński c3c84f7c0d HXCS-3181 Update translation label for viewer error (#9962)
* [HXCS-3181] - Update translation label for viewer error

* [HXCS-3181] - Update e2e test
2024-08-14 09:51:26 +02:00
Vito Albano e949b75da8 Ordered builds for js-api to avoid racing condition on dist folder (#10088)
* Ordered builds for js-api to avoid racing condition on dist folder

* Reverted changes to tmp
2024-08-13 16:08:24 +01:00
Darya Balvanovich 234ca01856 ACS-7600 fix test 2024-08-13 10:27:22 +02:00
Darya Balvanovich 6c4af486be ACS-7600 fix tests 2024-08-13 10:27:22 +02:00
a08af0bb9d [ACS-7600] Legal hold - Hold interface and documentation fixes (#10074)
* [ACS-8055] Integrate endpoint for getting Legal Holds (#9771)

* ACS-8055 add listAssignedHolds API

* ACS-8055 create legal-hold service

* ACS-8055 add documentation

* ACS-8055 fix imports

* ACS-8055 clean up code

* ACS-8055 fix interface typo

* ACS-8055 add optional options and uodate nodes-api.service.md

* ACS-8055 update interface

* ACS-8055 add HoldPaging class and documentation

* ACS-8055 add interface and fix test

* ACS-8055 add documentation for legal hold service

* ACS-8055 update legal-hold.service.md

* ACS-8055 update legal-hold.service.md

* ACS-8055 update readme file

* ACS-8055 add translation

---------

Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>

* ACS-7689 Save and delete to existing hold (#9841)

* [ACS-7690] Saving adding o a new hold (#9862)

* ACS-7689 Save and delete to existing hold

* ACS-7689 Save and delete to existing hold, cleanup

* ACS-7689 Save and delete to existing hold, revert to separate methods

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold

* ACS-8055 add listAssignedHolds API

* ACS-8055 create legal-hold service

* ACS-8055 add documentation

* ACS-8055 fix imports

* ACS-8055 add HoldPaging class and documentation

* ACS-8055 add interface and fix test

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7690 integrate create and assign holds endpoints

* ACS-7690 fix imports

* ACS-7690 add bulk method

* ACS-7690 update readme file

* ACS-7690 add tests

* ACS-7690 update docs file

* ACS-7690 remove interface

* ACS-7690 update geHolds description and md file with createHold

* ACS-7690 add createHolds to md file

* ACS-7690 fix typo in spec, and description in legal-hold service

* ACS-7690 refactor create hold parameter and documentation

* ACS-7690 fixed test

* ACS-7690 fix test for getHolds

* ACS-7690 fix md for create hold action

* ACS-7690 fix rebase conflicts

---------

Co-authored-by: Tomasz Nastaly <tomasz.nastaly@hyland.com>
Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>

* ACS-7689 Update payload with hold id (#9877)

* ACS-7600 fix documentation and method name

* ACS-7600 create separate type for hold creation

* [ACS-8036] [FE] Legal Hold in ADW. Part 2 (Bulk) (#10062)

* ACS-8329 Manage bulks endpoint (#9972)

* ACS-8325 extend ContentActionRef with tooltip (#9998)

* [ACS-8425] Add functionality to select folder and assign it to a hold (#10011)

* ACS-8425 add bulkFolderHold method

* ACS-8425 refactor names and add more specific query to folder

* ACS-8425 refactor names

* ACS-8425 fix description in md file

* ACS-8425 update interfaces and add constant

* ACS-8425 fix readme file and refactor tests

* ACS-8425 fix readme

* ACS-8425 fix readme

* ACS-8036 fix import path

---------

Co-authored-by: Tomasz Nastaly <tomasz.nastaly@hyland.com>

* [ACS-7600] fix imports in dropdown widget

* [ACS-7600] fix Hold interface and documentation

* [ACS-7600] fix hold interfaces and documentation

* [ACS-7600] fix hold interfaces and documentation

* [ACS-7600] fix hold interfaces and documentation

* [ACS-7600] fix hold interfaces and documentation

* [ACS-7600] fix hold interfaces and documentation

* [ACS-7600] fix hold interfaces and documentation

---------

Co-authored-by: Darya Blavanovich <166367848+DaryaBalvanovich@users.noreply.github.com>
Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>
Co-authored-by: tomson <tomasz.nastaly@hyland.com>
Co-authored-by: g-jaskowski <grzegorz.jaskowski@hyland.com>
2024-08-13 10:27:22 +02:00
Darya Balvanovich 4d512cb1a4 ACS-7600 fix rebasing 2024-08-13 10:27:22 +02:00
tamaragruszka 8a91945d0a [ACS-7600] fix Hold interface and documentation 2024-08-13 10:27:22 +02:00
tamaragruszka 6d6ef29c73 [ACS-7600] fix imports in dropdown widget 2024-08-13 10:27:22 +02:00
Darya BlavanovichandTomasz Nastaly ddd508ba60 [ACS-8036] [FE] Legal Hold in ADW. Part 2 (Bulk) (#10062)
* ACS-8329 Manage bulks endpoint (#9972)

* ACS-8325 extend ContentActionRef with tooltip (#9998)

* [ACS-8425] Add functionality to select folder and assign it to a hold (#10011)

* ACS-8425 add bulkFolderHold method

* ACS-8425 refactor names and add more specific query to folder

* ACS-8425 refactor names

* ACS-8425 fix description in md file

* ACS-8425 update interfaces and add constant

* ACS-8425 fix readme file and refactor tests

* ACS-8425 fix readme

* ACS-8425 fix readme

* ACS-8036 fix import path

---------

Co-authored-by: Tomasz Nastaly <tomasz.nastaly@hyland.com>
2024-08-13 10:27:22 +02:00
g-jaskowski 2890e4856c ACS-7600 create separate type for hold creation 2024-08-13 10:27:22 +02:00
g-jaskowski 9336ce625f ACS-7600 fix documentation and method name 2024-08-13 10:27:22 +02:00
tomson c62f34c804 ACS-7689 Update payload with hold id (#9877) 2024-08-13 10:27:22 +02:00
0843263ce3 [ACS-7690] Saving adding o a new hold (#9862)
* ACS-7689 Save and delete to existing hold

* ACS-7689 Save and delete to existing hold, cleanup

* ACS-7689 Save and delete to existing hold, revert to separate methods

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold

* ACS-8055 add listAssignedHolds API

* ACS-8055 create legal-hold service

* ACS-8055 add documentation

* ACS-8055 fix imports

* ACS-8055 add HoldPaging class and documentation

* ACS-8055 add interface and fix test

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7689 Save and delete to existing hold, fix specs

* ACS-7690 integrate create and assign holds endpoints

* ACS-7690 fix imports

* ACS-7690 add bulk method

* ACS-7690 update readme file

* ACS-7690 add tests

* ACS-7690 update docs file

* ACS-7690 remove interface

* ACS-7690 update geHolds description and md file with createHold

* ACS-7690 add createHolds to md file

* ACS-7690 fix typo in spec, and description in legal-hold service

* ACS-7690 refactor create hold parameter and documentation

* ACS-7690 fixed test

* ACS-7690 fix test for getHolds

* ACS-7690 fix md for create hold action

* ACS-7690 fix rebase conflicts

---------

Co-authored-by: Tomasz Nastaly <tomasz.nastaly@hyland.com>
Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>
2024-08-13 10:27:22 +02:00
tomson 206f2e02ea ACS-7689 Save and delete to existing hold (#9841) 2024-08-13 10:27:22 +02:00
Darya BlavanovichandDaryaBalvanovich bf7f202b91 [ACS-8055] Integrate endpoint for getting Legal Holds (#9771)
* ACS-8055 add listAssignedHolds API

* ACS-8055 create legal-hold service

* ACS-8055 add documentation

* ACS-8055 fix imports

* ACS-8055 clean up code

* ACS-8055 fix interface typo

* ACS-8055 add optional options and uodate nodes-api.service.md

* ACS-8055 update interface

* ACS-8055 add HoldPaging class and documentation

* ACS-8055 add interface and fix test

* ACS-8055 add documentation for legal hold service

* ACS-8055 update legal-hold.service.md

* ACS-8055 update legal-hold.service.md

* ACS-8055 update readme file

* ACS-8055 add translation

---------

Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>
2024-08-13 10:27:22 +02:00
dependabot[bot] 176330537f build(deps): bump actions/upload-artifact (#10080)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 15:54:25 -04:00
dependabot[bot] 6bbf81d833 build(deps): bump actions/upload-artifact (#10081)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 15:54:11 -04:00
dependabot[bot] 92575004eb build(deps): bump actions/upload-artifact (#10082)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 15:53:53 -04:00
dependabot[bot] 0a37e81d1d build(deps): bump github/codeql-action from 3.25.15 to 3.26.0 (#10083)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.15 to 3.26.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/afb54ba388a7dca6ecae48f608c4ff05ff4cc77a...eb055d739abdc2e8de2e5f4ba1a8b246daa779aa)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 14:12:15 -04:00
dependabot[bot] ff52f8f286 build(deps): bump actions/upload-artifact in /.github/actions/e2e (#10084)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 14:11:58 -04:00
Denys Vuika 58484dd907 ACS-8586: Remove internal dependency on PipeModule (#10086) 2024-08-12 14:00:46 -04:00
Michał Fidor 9527f067a3 Fix DMN process for hxp 2024-08-12 12:36:57 +02:00
Michał Fidor 6801249798 AAE-23749 Fix dmn process (#10085) 2024-08-12 11:58:09 +02:00
Michał Fidor 88137608ee Fix app version (#10072) 2024-08-12 11:36:55 +02:00
swapnil-verma-gl 344594f910 [ACS-8555] Name filter clear icon now no longer gets cut off (#10054) 2024-08-12 10:44:35 +05:30
Denys Vuika 93f9e80348 ACS-7390: Core and Content Services as Standalone components (#10001) 2024-08-09 18:14:56 -04:00
Ehsan Rezaei 0277376c79 Revert "AAE-24371 Fix invalid endpoint is called when process with form is st…" (#10075)
This reverts commit d38e782fe3.
2024-08-09 20:27:00 +02:00
Mykyta Maliarchuk 1cd86a582e [ACS-8371] fix viewer toolbar page selector (#10063) 2024-08-09 17:39:40 +02:00
Vito Albano 554218d11e Revert "AAE-23521 Fix improve dropdown reactive form" (#10068)
* Revert "AAE-23521 Fix improve dropdown reactive form (#10040)"

This reverts commit f88ff10f30.

* Revert "AAE-24371 Fix invalid endpoint is called when process with form is st… (#10052)"

This reverts commit d38e782fe3.

* Revert "Revert "AAE-24371 Fix invalid endpoint is called when process with form is st… (#10052)""

This reverts commit 125ada76f61ab7a258503dbc51d09950073f9a95.
2024-08-09 16:01:44 +02:00
Michał Fidor 7d741c2634 AAE-23749 Fix old version of the default app (#10071) 2024-08-09 15:28:00 +02:00
Michał Fidor bffa1c878b AAE-23749 Revert default app to the previous version (#10069) 2024-08-09 15:16:15 +02:00
Denys Vuika 9966cf4405 ACS-8572: Support for reloading document list from outside (#10065)
* support for external document list reload

* update docs [ci:force]

* reset selection api and docs [ci:force]
2024-08-09 07:33:56 -04:00
Ehsan Rezaei 80a70cf789 AAE-23830 Label for people component (#10064)
* AAE-23830 Label for people component

* AAE-23830 Managed to load label conditionally
2024-08-09 09:32:33 +01:00
MichalKinas 834405d197 [ACS-6423] Add missing account id piece (#10061)
* [ACS-6423] Add missing account id piece

* [ACS-6423] Unit tests fixes
2024-08-09 07:49:17 +02:00
swapnil-verma-gl db97f05f28 [ACS-8497] Resolved issue where icons in file upload overlay were not displaying properly (#10038) 2024-08-08 13:51:06 +05:30
jacekpluta 98a18a2a7a [ACS-8557] search page facet not able to apply filter (#10058) 2024-08-08 09:46:25 +02:00
dominikiwanekhyland 810e596686 [ACS-8263] Testing Angular 15 - Upload button in e2e-attach_file_local-process has additonal "d" at the end (#10060) 2024-08-08 08:39:39 +02:00
Mykyta Maliarchuk b42bd9a30a [ACS-8447] align pagination buttons (#10014) 2024-08-08 08:38:21 +02:00
Kasia Biernat 70c2783a17 AAE-23521 Fix remove redundand margin (#10057) 2024-08-08 08:14:04 +02:00
dominikiwanekhyland 9a7ffe5e53 [ACS-8502] missing alignment for menu and search button (#10051) 2024-08-08 07:45:12 +02:00
Kasia Biernat d38e782fe3 AAE-24371 Fix invalid endpoint is called when process with form is st… (#10052)
* AAE-24371 Fix invalid endpoint is called when process with form is started

* AAE-24371 Unit tests

* AAE-24371 update tests to remove subscription
2024-08-07 15:26:47 +02:00
Kasia Biernat f88ff10f30 AAE-23521 Fix improve dropdown reactive form (#10040)
* AAE-23521 Fix improve dropdown reactive form

* AAE-23521 Update process services dropdown

* AAE-23521 pr suggestions

* AAE-23521 move tests

* AAE-23521 fixes
2024-08-07 15:21:41 +02:00
Robert Duda 5930a27bbd Allow for more customization of adf-cloud-people component (#10056)
* Allow for more customization of adf-cloud-people component

* Update documentation
2024-08-07 13:55:39 +02:00
Michał Fidor 794eee144d AAE-23749 Multi instance processes update (#10055) 2024-08-07 10:53:18 +02:00
swapnil-verma-gl b355b17ffa [ACS-8211] Fixed UI issues in standalone task component after ng15 upgrade (#10046) 2024-08-07 12:25:54 +05:30
Wiktor Danielewski cb0b072b1e AAE-24007 Display radio buttons and dropdown options depending on optionType (#9975)
* AAE-24007 Update form-field.moel

* AAE-24007 Update dropdown-cloud.widget

* AAE-24007 Update radio-buttons-cloud.widget

* AAE-24007 Dropdown aligment (undefined value should be reserved for empty option)

* AAE-24007 Minor update

* AAE-24007 Update tests

* AAE-24007 Update

* AAE-24007 Update

* AAE-24007 Update

* AAE-24007 Fix units

* AAE-24007 Fix

* AAE-24007 Align standard dropdown and radio
2024-08-06 15:38:21 +02:00
MichalKinas 3406341859 [ACS-8514] Use proper icon button in search text input (#10050)
* [ACS-8514] Use proper icon button in search text input

* [ACS-8514] Adapt unit tests
2024-08-06 15:28:09 +02:00
MichalKinas c2bdce8d89 [ACS-8503] Attached file icon properly aligned (#10047) 2024-08-06 13:22:20 +02:00
Tomasz Gnyp 3b637819c8 AAE-24980 ADF release warning message fix (#10049)
* AAE-24980 ADF release warning message fix

* fix real message
2024-08-06 09:19:48 +01:00
Mykyta Maliarchuk c9b8059b47 [ACS-8247] Fixed empty context menu for DataTable row (#9999)
* [ACS-8247] fixed empty context menu of datatable row

* [ACS-8247] replace selector on attribute
2024-08-06 09:42:16 +02:00
Michał Fidor cc6e679f76 AAE-2593 Decision Table - fix date/time (#10048) 2024-08-06 08:30:43 +02:00
Tomasz Gnyp 50ed385af2 Revert "AAE-25053 Remove wrong if statements from release ADF workflow" (#10045)
* Revert "AAE-25053 Remove wrong if statements from release ADF workflow (#10044)"

This reverts commit f508fe49d0.

* revert
2024-08-05 16:48:16 +01:00
Denys Vuika f02aca02eb [ACS-8498] [ACA] Testing Angular 15 - Toolbar buttons layout is broken (#10026)
* fix icon styles

* auto-fix styles

* fix a bug with icon value resolving

* fix tests
2024-08-05 11:24:57 -04:00
Tomasz Gnyp f508fe49d0 AAE-25053 Remove wrong if statements from release ADF workflow (#10044)
* AAE-25053 Remove wrong if statements from release ADF workflow

* roll back workflow call inputs dry-run-flag
2024-08-05 16:15:01 +01:00
Tomasz Gnyp ff4a1afd4c AAE-24980 Fix ADF release warning username message (#10043)
* AAE-24980 Fix ADF release warning username message

* fix real workflow

* remove not needed @

* fix context
2024-08-05 15:42:06 +01:00
Wojciech Duda e29b41af2d AAE-23830 Fix chips positioning and filter render logic in process filters (#10015)
* AAE-23830 Fix labels and chips positioning in workspace process filters

* AAE-23830 fix tests and add a loop tracker

* AAE-23830 @ehsan-2019 comments fixes

* AAE-23830 convert readonly detection to if else

* AAE-23830 fix failures in process filters

* AAE-23830 added condition to avoid enabling formControl when unnecessary

* AAE-23830 move the input back to the chip grid
2024-08-05 15:30:19 +02:00
Mykyta Maliarchuk 4f8ede9819 [ACS-8349] Update init-aps-env scripts with new api endpoints (#10042) 2024-08-05 14:18:30 +02:00
dependabot[bot]andEugenio Romano 15f21c2adf build(deps): bump Alfresco/alfresco-build-tools from 5.34.0 to 6.0.1 (#10032)
Bumps [Alfresco/alfresco-build-tools](https://github.com/alfresco/alfresco-build-tools) from 5.34.0 to 6.0.1.
- [Release notes](https://github.com/alfresco/alfresco-build-tools/releases)
- [Commits](https://github.com/alfresco/alfresco-build-tools/compare/76affd16a4dd9a440cf66bf42656b1d826e8dfc2...9d00215f539f669b41c7fabf7b88ccc8f316926c)

---
updated-dependencies:
- dependency-name: Alfresco/alfresco-build-tools
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
2024-08-05 14:00:49 +02:00
dependabot[bot]andEugenio Romano 98fcbff636 build(deps): bump Alfresco/alfresco-build-tools (#10033)
Bumps [Alfresco/alfresco-build-tools](https://github.com/alfresco/alfresco-build-tools) from 5.34.0 to 6.0.1.
- [Release notes](https://github.com/alfresco/alfresco-build-tools/releases)
- [Commits](https://github.com/alfresco/alfresco-build-tools/compare/76affd16a4dd9a440cf66bf42656b1d826e8dfc2...9d00215f539f669b41c7fabf7b88ccc8f316926c)

---
updated-dependencies:
- dependency-name: Alfresco/alfresco-build-tools
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
2024-08-05 11:47:48 +02:00
dependabot[bot] 1be927108f build(deps): bump actions/upload-artifact (#10034)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 11:32:11 +02:00
dependabot[bot] b1fd1574d3 build(deps): bump actions/upload-artifact in /.github/actions/e2e (#10036)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 11:31:58 +02:00
dependabot[bot] 701113b3b1 build(deps): bump actions/upload-artifact (#10037)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 11:31:45 +02:00
dependabot[bot] 67a39e243d build(deps): bump actions/upload-artifact (#10035)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 11:31:32 +02:00
Vito Albano 90066e7be2 Aae 0000 change cli build (#10031)
* Changing build for cli

* Fixing build and tooling for cli:
2024-08-05 09:24:05 +02:00
jacekpluta 979ded6c8f [ACS-7363] Search - Advanced Filters - visual bugs in Logic and Properties filters (#9914) 2024-08-05 08:59:08 +02:00
Vito Albano 686c7108d8 AAE-0000 removing old js scripts (#10022) 2024-08-02 16:57:18 -04:00
Tomasz Gnyp 6d649a8678 AAE-23950 Apply reactive forms for date&time and date widgets (#9852)
* AAE-19102 Date should be formatted correctly on the task form considering specified display format

* validation fix

* rebase

* update validation

* remove duplicated error widgets

* changes after rebase

* unit tests update

* implement suggestions

* test link-adf change

* remove link-adf change

* fix error for provide value with different format than specified

* implement suggestion

* fix timezone issue for min/max dates

* fix another format issue

* exported default date format
2024-08-02 18:49:56 +02:00
Wojciech Duda d2b0fab677 AAE-24675 Fix text alignment in dateitem card view element (#10024)
* AAE-24675 Fix text alignment in dateitem card view element

* AAE-24675 Break words in checkbox and radio button labels to avoid overflow
2024-08-02 13:51:23 +02:00
swapnil-verma-gl 394d064f37 [ACS-8452] Fixed UI for folder select input fields in create/edit rules (#10017) 2024-08-02 13:31:14 +05:30
tomasz hanaj 0712edd79f [HXCS-4163] aligned icons on dialog (#10019) 2024-08-01 23:36:47 +01:00
Vito Albano ef85b1a2d0 Fixing npm publish as cli is failing building with new js-api version (#10020)
* Fixing npm publish as cli is failing building with new js-api version'

* Revert version change
2024-08-01 16:01:33 +01:00
802 changed files with 12881 additions and 11181 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ runs:
- run: echo "Artifact Append"
shell: bash
- name: Download artifact
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: ${{ inputs.artifact-name }}
pattern: ${{ inputs.artifact-name }}-*
@@ -85,7 +85,7 @@ runs:
}
}
- name: Upload artifact
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.file-name }}
+1 -1
View File
@@ -28,7 +28,7 @@ runs:
- run: echo "Artifact Extract"
shell: bash
- name: Download artifact
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: ${{ inputs.artifact-name }}
pattern: ${{ inputs.artifact-name }}-*
@@ -26,7 +26,7 @@ runs:
echo "${{inputs.content}}" > ${{ inputs.file-name }}
- name: Upload artifact
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: ${{ inputs.artifact-name }}
path: ${{ inputs.file-name }}
+1 -1
View File
@@ -188,7 +188,7 @@ runs:
- name: upload artifacts on gh
id: upload_gh
if: ${{ steps.determine-affected.outputs.isAffected == 'true' }}
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: e2e-artifact-output-${{inputs.e2e-artifact-id}}
path: /home/runner/work/alfresco-ng2-components/alfresco-ng2-components/e2e-output-*
+1 -1
View File
@@ -26,7 +26,7 @@ runs:
cache-dependency-path: package-lock.json
- name: get latest tag sha
id: tag-sha
uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@76affd16a4dd9a440cf66bf42656b1d826e8dfc2 # v5.34.0
uses: Alfresco/alfresco-build-tools/.github/actions/git-latest-tag@209bb4275688720e13dc0703dbd17826bf677c5c # v6.1.0
# CACHE
- name: Node Modules cache
id: node-modules-cache
+3 -3
View File
@@ -30,7 +30,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
uses: github/codeql-action/init@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6
# Override language selection by uncommenting this and choosing your languages
with:
languages: javascript
@@ -39,7 +39,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
uses: github/codeql-action/autobuild@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -53,4 +53,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a # v3.25.15
uses: github/codeql-action/analyze@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6
+4 -4
View File
@@ -101,7 +101,7 @@ jobs:
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Ensure SHA pinned actions
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@b88cd0aad2c36a63e42c71f81cb1958fed95ac87 # v3.0.10
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@3c16e895bb662b4d7e284f032cbe8835a57773cc # v3.0.11
- name: Check package-lock.json version
run: |
@@ -121,10 +121,10 @@ jobs:
fetch-depth: 0
- name: Get branch name
uses: Alfresco/alfresco-build-tools/.github/actions/get-branch-name@76affd16a4dd9a440cf66bf42656b1d826e8dfc2 # v5.34.0
uses: Alfresco/alfresco-build-tools/.github/actions/get-branch-name@209bb4275688720e13dc0703dbd17826bf677c5c # v6.1.0
- name: Save commit message
uses: Alfresco/alfresco-build-tools/.github/actions/get-commit-message@76affd16a4dd9a440cf66bf42656b1d826e8dfc2 # v5.34.0
uses: Alfresco/alfresco-build-tools/.github/actions/get-commit-message@209bb4275688720e13dc0703dbd17826bf677c5c # v6.1.0
- name: ci:force flag parser
shell: bash
@@ -505,7 +505,7 @@ jobs:
uses: ./.github/actions/slack-group-area
with:
affected: ${{ steps.e2e-result.outputs.result }}
- uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0
- uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
name: Nofify QA failure
if: ${{ github.event_name == 'schedule' && contains(needs.*.result, 'failure') }}
env:
+10 -1
View File
@@ -123,12 +123,21 @@ jobs:
with:
dry-run-flag: ${{ inputs.dry-run-flag }}
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: build libraries
- name: Set libraries versions
run: |
set -u;
./scripts/update-version.sh -gnu || exit 1;
- name: Set migrations
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const setMigrations = require('./scripts/github/release/set-migrations.js');
setMigrations();
- name: Build libraries
run: |
npx nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" --skip-nx-cache
npx nx affected $NX_CALCULATION_FLAGS --target=pretheme
npx nx affected $NX_CALCULATION_FLAGS --target=build-schematics
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
name: release libraries GH registry
with:
+12 -3
View File
@@ -182,12 +182,21 @@ jobs:
with:
dry-run-flag: ${{ inputs.dry-run-flag }}
- uses: ./.github/actions/download-node-modules-and-artifacts
- name: build libraries
- name: Set libraries versions
run: |
set -u;
./scripts/github/build/bumpversion.sh
- name: Set migrations
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
const setMigrations = require('./scripts/github/release/set-migrations.js');
setMigrations();
- name: build libraries
run: |
npx nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" --skip-nx-cache
npx nx affected $NX_CALCULATION_FLAGS --target=pretheme
npx nx affected $NX_CALCULATION_FLAGS --target=build-schematics
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
name: release libraries GH registry
with:
@@ -244,11 +253,11 @@ jobs:
needs: [release-demoshell, release-storybook, release-npm, npm-check-bundle]
steps:
- uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0
- uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0
name: Nofify FE eng-guild-front-end workflow failed
if: ${{ contains(toJson(needs.*.result), 'failure') }}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
with:
channel-id: 'C016SMNNL8L' #eng-guild-front-end
slack-message: "🔴 Warning: The release workflow of alfresco-ng2-components pipe failed\n Author: name:${{ github.event.pusher.name }} username:${{ github.event.pusher.username }}\n Workflow run : <https://github.com/Alfresco/alfresco-ng2-components/actions/runs/${{ github.run_id }}| here>\n>"
slack-message: "🔴 Warning: The release workflow of alfresco-ng2-components pipe failed\n Author username: ${{ github.event.pull_request.user.login }}\n Workflow run <https://github.com/Alfresco/alfresco-ng2-components/actions/runs/${{ github.run_id }}| here>\n>"
+1 -1
View File
@@ -1,4 +1,4 @@
{
"*.{ts,js}": ["prettier --write", "eslint"],
"*.{css,scss}": ["prettier --write", "stylelint"]
"*.{css,scss}": ["prettier --write", "stylelint --fix"]
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Alfresco-ADF-Angular-Demo",
"description": "Demo shell for Alfresco Angular components",
"version": "6.9.0",
"version": "7.0.0-alpha.2",
"author": "Hyland Software, Inc. and its affiliates",
"repository": {
"type": "git",
+4 -83
View File
@@ -17,7 +17,6 @@
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { NgChartsModule } from 'ng2-charts';
import { HttpClientModule } from '@angular/common/http';
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
@@ -25,114 +24,36 @@ import { TranslateModule } from '@ngx-translate/core';
import { AppConfigService, DebugAppConfigService, CoreModule, AuthModule, provideTranslations } from '@alfresco/adf-core';
import { ExtensionsModule } from '@alfresco/adf-extensions';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module';
import { LogoutComponent } from './components/logout/logout.component';
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
import { SearchBarComponent } from './components/search/search-bar.component';
import { SearchResultComponent } from './components/search/search-result.component';
import { FormComponent } from './components/form/form.component';
import { ProcessServiceComponent } from './components/process-service/process-service.component';
import { ShowDiagramComponent } from './components/process-service/show-diagram.component';
import { FormViewerComponent } from './components/process-service/form-viewer.component';
import { FormNodeViewerComponent } from './components/process-service/form-node-viewer.component';
import { AppsViewComponent } from './components/process-service/apps-view.component';
import { FilesComponent } from './components/files/files.component';
import { VersionManagerDialogAdapterComponent } from './components/files/version-manager-dialog-adapter.component';
import { appRoutes } from './app.routes';
import { TaskAttachmentsComponent } from './components/process-service/task-attachments.component';
import { ProcessAttachmentsComponent } from './components/process-service/process-attachments.component';
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
import { ContentModule } from '@alfresco/adf-content-services';
import { InsightsModule } from '@alfresco/adf-insights';
import { ProcessModule } from '@alfresco/adf-process-services';
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
import { ProcessesCloudDemoComponent } from './components/cloud/processes-cloud-demo.component';
import { TaskDetailsCloudDemoComponent } from './components/cloud/task-details-cloud-demo.component';
import { CloudViewerComponent } from './components/cloud/cloud-viewer.component';
import { ProcessDetailsCloudDemoComponent } from './components/cloud/process-details-cloud-demo.component';
import { StartTaskCloudDemoComponent } from './components/cloud/start-task-cloud-demo.component';
import { StartProcessCloudDemoComponent } from './components/cloud/start-process-cloud-demo.component';
import { CloudFiltersDemoComponent } from './components/cloud/cloud-filters-demo.component';
import { FormCloudDemoComponent } from './components/app-layout/cloud/form-demo/cloud-form-demo.component';
import { environment } from '../environments/environment';
import { AppCloudSharedModule } from './components/cloud/shared/cloud.shared.module';
import { DemoErrorComponent } from './components/error/demo-error.component';
import { ProcessServicesCloudModule } from '@alfresco/adf-process-services-cloud';
import { RouterModule } from '@angular/router';
import { ProcessCloudLayoutComponent } from './components/cloud/process-cloud-layout.component';
import { CustomEditorComponent, CustomWidgetComponent } from './components/cloud/custom-form-components/custom-editor.component';
import { SearchFilterChipsComponent } from './components/search/search-filter-chips.component';
import { UserInfoComponent } from './components/app-layout/user-info/user-info.component';
import { FolderDirectiveModule } from './folder-directive';
import { ContentUserInfoModule } from './components/app-layout/user-info/content-user-info';
import { PROCESS_USER_INFO_DIRECTIVES } from './components/app-layout/user-info/process-user-info';
import { CoreAutomationService } from '../testing/automation.service';
@NgModule({
imports: [
BrowserModule,
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
ReactiveFormsModule,
RouterModule.forRoot(appRoutes, { useHash: true }),
AuthModule.forRoot({ useHash: true }),
FormsModule,
HttpClientModule,
MaterialModule,
TranslateModule.forRoot(),
CoreModule.forRoot(),
ContentModule.forRoot(),
InsightsModule.forRoot(),
ProcessModule.forRoot(),
ProcessServicesCloudModule.forRoot(),
ExtensionsModule.forRoot(),
NgChartsModule,
AppCloudSharedModule,
MonacoEditorModule.forRoot(),
FolderDirectiveModule,
ShowDiagramComponent,
ContentUserInfoModule,
...PROCESS_USER_INFO_DIRECTIVES
],
declarations: [
AppComponent,
LogoutComponent,
AppLayoutComponent,
UserInfoComponent,
SearchBarComponent,
SearchResultComponent,
ProcessServiceComponent,
FormViewerComponent,
FormNodeViewerComponent,
AppsViewComponent,
FilesComponent,
FormComponent,
VersionManagerDialogAdapterComponent,
TaskAttachmentsComponent,
ProcessAttachmentsComponent,
DemoPermissionComponent,
DemoErrorComponent,
CloudLayoutComponent,
AppsCloudDemoComponent,
TasksCloudDemoComponent,
ProcessesCloudDemoComponent,
TaskDetailsCloudDemoComponent,
CloudViewerComponent,
ProcessDetailsCloudDemoComponent,
StartTaskCloudDemoComponent,
StartProcessCloudDemoComponent,
CloudFiltersDemoComponent,
FormCloudDemoComponent,
CustomEditorComponent,
CustomWidgetComponent,
ProcessCloudLayoutComponent,
SearchFilterChipsComponent
MonacoEditorModule.forRoot()
],
declarations: [AppComponent],
providers: [
{ provide: AppConfigService, useClass: DebugAppConfigService }, // not use this service in production
provideTranslations('app', 'resources')
provideTranslations('app', 'resources'),
provideTranslations('adf-insights', 'assets/adf-insights')
],
bootstrap: [AppComponent]
})
+57 -14
View File
@@ -27,7 +27,7 @@ import { FormNodeViewerComponent } from './components/process-service/form-node-
import { AppsViewComponent } from './components/process-service/apps-view.component';
import { SearchResultComponent } from './components/search/search-result.component';
import { FilesComponent } from './components/files/files.component';
import { FormComponent } from './components/form/form.component';
import { AppFormComponent } from './components/form/app-form.component';
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { AppComponent } from './app.component';
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
@@ -42,14 +42,20 @@ import { ProcessDetailsCloudDemoComponent } from './components/cloud/process-det
import { FormCloudDemoComponent } from './components/app-layout/cloud/form-demo/cloud-form-demo.component';
import { DemoErrorComponent } from './components/error/demo-error.component';
import { ProcessCloudLayoutComponent } from './components/cloud/process-cloud-layout.component';
import { SearchFilterChipsComponent } from './components/search/search-filter-chips.component';
import { AppSearchFilterChipsComponent } from './components/search/search-filter-chips.component';
import { FileViewComponent } from './components/file-view/file-view.component';
import { SettingsComponent } from './components/settings/settings.component';
import { AppLoginComponent } from './components/login/login.component';
import { TaskListDemoComponent } from './components/task-list-demo/task-list-demo.component';
import { ProcessListDemoComponent } from './components/process-list-demo/process-list-demo.component';
import { AppCardViewComponent } from './components/card-view/card-view.component';
export const appRoutes: Routes = [
{ path: 'login', loadChildren: () => import('./components/login/login.module').then(m => m.AppLoginModule) },
{ path: 'login', component: AppLoginComponent },
{ path: 'logout', component: LogoutComponent },
{
path: 'settings',
loadChildren: () => import('./components/settings/settings.module').then(m => m.AppSettingsModule)
component: SettingsComponent
},
{
path: 'files/:nodeId/view',
@@ -57,7 +63,12 @@ export const appRoutes: Routes = [
canActivate: [AuthGuardEcm],
canActivateChild: [AuthGuardEcm],
outlet: 'overlay',
loadChildren: () => import('./components/file-view/file-view.module').then(m => m.FileViewModule)
children: [
{
path: '',
component: FileViewComponent
}
]
},
{
path: 'files/:nodeId/:versionId/view',
@@ -65,14 +76,24 @@ export const appRoutes: Routes = [
canActivate: [AuthGuardEcm],
canActivateChild: [AuthGuardEcm],
outlet: 'overlay',
loadChildren: () => import('./components/file-view/file-view.module').then(m => m.FileViewModule)
children: [
{
path: '',
component: FileViewComponent
}
]
},
{
path: 'preview/blob',
component: AppComponent,
outlet: 'overlay',
pathMatch: 'full',
loadChildren: () => import('./components/file-view/file-view.module').then(m => m.FileViewModule)
children: [
{
path: '',
component: FileViewComponent
}
]
},
{
path: '',
@@ -86,7 +107,12 @@ export const appRoutes: Routes = [
},
{
path: 'card-view',
loadChildren: () => import('./components/card-view/card-view.module').then(m => m.AppCardViewModule)
children: [
{
path: '',
component: AppCardViewComponent
}
]
},
{
path: '',
@@ -146,14 +172,13 @@ export const appRoutes: Routes = [
path: 'process-details/:processInstanceId',
component: ProcessDetailsCloudDemoComponent
}
]
}
]
},
{
path: 'settings-layout',
loadChildren: () => import('./components/settings/settings.module').then(m => m.AppSettingsModule)
component: SettingsComponent
},
{
path: 'files',
@@ -177,7 +202,7 @@ export const appRoutes: Routes = [
},
{
path: 'search-filter-chips',
component: SearchFilterChipsComponent,
component: AppSearchFilterChipsComponent,
canActivate: [AuthGuardEcm]
},
{
@@ -245,16 +270,34 @@ export const appRoutes: Routes = [
canActivate: [AuthGuardEcm]
},
{ path: 'form-cloud', component: FormCloudDemoComponent },
{ path: 'form', component: FormComponent },
{ path: 'form', component: AppFormComponent },
{
path: 'task-list',
canActivate: [AuthGuardBpm],
loadChildren: () => import('./components/task-list-demo/task-list.module').then(m => m.AppTaskListModule)
children: [
{
path: '',
component: TaskListDemoComponent
},
{
path: ':id',
component: TaskListDemoComponent
}
]
},
{
path: 'process-list',
canActivate: [AuthGuardBpm],
loadChildren: () => import('./components/process-list-demo/process-list.module').then(m => m.AppProcessListModule)
children: [
{
path: '',
component: ProcessListDemoComponent
},
{
path: ':id',
component: ProcessListDemoComponent
}
]
},
{
path: 'error/no-authorization',
@@ -40,7 +40,7 @@
<ng-container *ngFor="let link of links">
<ng-container *ngIf="link.children">
<mat-list-item (click)="trigger.openMenu()" [attr.data-automation-id]="link.title | translate" class="app-sidenav-link">
<mat-icon matListIcon>{{link.icon}}</mat-icon>
<mat-icon matListItemIcon>{{link.icon}}</mat-icon>
<span matLine>{{ link.title | translate }}</span>
<mat-icon class="app-sidenav-link__expand-button" [matMenuTriggerData]="{links: link.children}"
rippleTrigger mat-icon-button #trigger="matMenuTrigger"
@@ -52,14 +52,14 @@
<mat-list-item [routerLink]="link.href"
routerLinkActive="app-sidenav-link--active" [routerLinkActiveOptions]="{ exact: true }"
[attr.data-automation-id]="link.title | translate" class="app-sidenav-link">
<mat-icon matListIcon >{{link.icon}}</mat-icon>
<mat-icon matListItemIcon >{{link.icon}}</mat-icon>
<span matLine>{{link.title | translate }}</span>
</mat-list-item>
</ng-container>
</ng-container>
<mat-list-item adf-logout [enableRedirect]="enableRedirect" redirectUri="/logout" class="app-sidenav-link" data-automation-id="Logout" >
<mat-icon matListIcon>exit_to_app</mat-icon>
<mat-icon matListItemIcon>exit_to_app</mat-icon>
<span matLine>Logout</span>
</mat-list-item>
</mat-nav-list>
@@ -84,7 +84,7 @@
[routerLink]="link.href"
[routerLinkActiveOptions]="{ exact: true }">
<mat-icon matListIcon>{{link.icon}}</mat-icon>
<mat-icon matListItemIcon>{{link.icon}}</mat-icon>
{{ link.title | translate }}
</button>
</ng-template>
@@ -16,9 +16,49 @@
*/
import { Component, ViewEncapsulation } from '@angular/core';
import { AlfrescoApiService } from '@alfresco/adf-core';
import {
AvatarComponent,
HeaderLayoutComponent,
LogoutDirective,
SidenavLayoutComponent,
SidenavLayoutContentDirective,
SidenavLayoutHeaderDirective,
SidenavLayoutNavigationDirective
} from '@alfresco/adf-core';
import { SearchBarComponent } from '../search/search-bar.component';
import { UserInfoComponent } from './user-info/user-info.component';
import { MatMenuModule } from '@angular/material/menu';
import { MatListModule } from '@angular/material/list';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatLineModule } from '@angular/material/core';
import { CommonModule } from '@angular/common';
import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
import { AlfrescoApiService, FileUploadingDialogComponent } from '@alfresco/adf-content-services';
@Component({
standalone: true,
imports: [
CommonModule,
SidenavLayoutComponent,
SidenavLayoutHeaderDirective,
HeaderLayoutComponent,
SearchBarComponent,
UserInfoComponent,
AvatarComponent,
MatMenuModule,
SidenavLayoutNavigationDirective,
MatListModule,
TranslateModule,
MatIconModule,
MatLineModule,
RouterLink,
RouterLinkActive,
LogoutDirective,
SidenavLayoutContentDirective,
RouterOutlet,
FileUploadingDialogComponent
],
templateUrl: './app-layout.component.html',
styleUrls: ['./app-layout.component.scss'],
host: { class: 'app-layout' },
@@ -31,16 +71,24 @@ export class AppLayoutComponent {
{ href: '/card-view', icon: 'view_headline', title: 'CardView' },
{ href: '/task-list', icon: 'assignment', title: 'Task List' },
{
href: '/cloud', icon: 'cloud', title: 'Process Cloud', children: [
href: '/cloud',
icon: 'cloud',
title: 'Process Cloud',
children: [
{ href: '/cloud/', icon: 'cloud', title: 'Home' },
{ href: '/form-cloud', icon: 'poll', title: 'Form' }
]
},
{ href: '/activiti', icon: 'device_hub', title: 'Process Services', children: [
{ href: '/activiti', icon: 'vpn_key', title: 'App' },
{ href: '/process-list', icon: 'assignment', title: 'Process List' },
{ href: '/form', icon: 'poll', title: 'Form' }
]},
{
href: '/activiti',
icon: 'device_hub',
title: 'Process Services',
children: [
{ href: '/activiti', icon: 'vpn_key', title: 'App' },
{ href: '/process-list', icon: 'assignment', title: 'Process List' },
{ href: '/form', icon: 'poll', title: 'Form' }
]
},
{ href: '/login', icon: 'vpn_key', title: 'Login' },
{ href: '/settings-layout', icon: 'settings', title: 'Settings' }
];
@@ -10,7 +10,7 @@
</adf-cloud-form>
</div>
<div class="app-console" #console>
<div class="app-console">
<h3>Error log:</h3>
<p *ngFor="let error of errorFields">Error {{ error.name }} {{error.validationSummary.message | translate}}</p>
</div>
@@ -33,9 +33,9 @@
}
.app-form-editor-buttons {
& > #{$mat-raised-button} {
margin-right: 5px;
}
display: flex;
flex-direction: row;
column-gap: 4px;
}
.app-upload-config-button {
@@ -17,13 +17,22 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { FormFieldModel, FormModel, FormRenderingService, NotificationService } from '@alfresco/adf-core';
import { CloudFormRenderingService, FormCloudService } from '@alfresco/adf-process-services-cloud';
import { CloudFormRenderingService, FormCloudModule, FormCloudService } from '@alfresco/adf-process-services-cloud';
import { Subscription } from 'rxjs';
import { CustomEditorComponent, CustomWidgetComponent } from '../../../cloud/custom-form-components/custom-editor.component';
import { CoreAutomationService } from '../../../../../testing/automation.service';
import { CommonModule } from '@angular/common';
import { MatTabsModule } from '@angular/material/tabs';
import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
import { TranslateModule } from '@ngx-translate/core';
import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
@Component({
templateUrl: './cloud-form-demo.component.html',
standalone: true,
imports: [CommonModule, MatTabsModule, FormCloudModule, MonacoEditorModule, TranslateModule, FormsModule, MatButtonModule, MatIconModule],
styleUrls: ['./cloud-form-demo.component.scss'],
providers: [{ provide: FormRenderingService, useClass: CloudFormRenderingService }]
})
@@ -41,8 +41,7 @@
<mat-menu #menu="matMenu" id="user-profile-lists" [xPosition]="menuPositionX" [yPosition]="menuPositionY"
[overlapTrigger]="false" class="adf-userinfo-menu">
<mat-card appearance="outlined" *ngIf="mode === userInfoMode.CONTENT" class="adf-userinfo-card adf-content-userinfo-card">
<mat-card-header class="adf-userinfo-card-header"
[style.background-image]="'url(' + ecmBackgroundImage + ')'">
<mat-card-header class="adf-userinfo-card-header" [style.background-image]="'url(' + ecmBackgroundImage + ')'">
<div *ngIf="ecmUser.avatarId; else initialTemplate"
class="adf-userinfo-profile-container adf-hide-small">
<img class="adf-userinfo-profile-picture" id="ecm-user-detail-image"
@@ -61,8 +60,7 @@
<h2 id="ecm-full-name"
class="adf-userinfo__detail-title">{{ecmUser | fullName}}</h2>
<span id="ecm-email"> {{ecmUser.email}} </span>
<a href="#/profile">
{{ 'USER_PROFILE.LABELS.MY_PROFILE' | translate }}</a>
<a href="#/profile">{{ 'USER_PROFILE.LABELS.MY_PROFILE' | translate }}</a>
</div>
<div class="adf-userinfo-detail">
<span class="adf-userinfo__secondary-info" id="ecm-job-title-label">
@@ -1,282 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { IdentityUserModel, InitialUsernamePipe, UserInfoMode } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatMenuModule } from '@angular/material/menu';
import { By, DomSanitizer } from '@angular/platform-browser';
import { fakeEcmUser, ContentTestingModule } from '@alfresco/adf-content-services';
import { ContentUserInfoComponent } from './content-user-info.component';
const fakeEcmEditedUser = {
id: 'fake-id',
firstName: null,
lastName: 'fake-last-name',
description: 'i am a fake user for test',
avatarId: 'fake-avatar-id',
email: 'fakeEcm@ecmUser.com',
skypeId: 'fake-skype-id',
googleId: 'fake-googleId-id',
instantMessageId: 'fake-instantMessageId-id',
company: null,
jobTitle: 'test job',
location: 'fake location',
mobile: '000000000',
telephone: '11111111',
statusUpdatedAt: 'fake-date',
userStatus: 'active',
enabled: true,
emailNotificationsEnabled: true
};
export const fakeEcmUserNoImage = {
id: 'fake-id',
firstName: 'fake-first-name',
lastName: 'fake-last-name',
description: 'i am a fake user for test',
avatarId: null,
email: 'fakeEcm@ecmUser.com',
skypeId: 'fake-skype-id',
googleId: 'fake-googleId-id',
instantMessageId: 'fake-instantMessageId-id',
company: null,
jobTitle: null,
location: 'fake location',
mobile: '000000000',
telephone: '11111111',
statusUpdatedAt: 'fake-date',
userStatus: 'active',
enabled: true,
emailNotificationsEnabled: true
};
class FakeSanitizer extends DomSanitizer {
constructor() {
super();
}
sanitize(html) {
return html;
}
bypassSecurityTrustHtml(value: string): any {
return value;
}
bypassSecurityTrustStyle(): any {
return null;
}
bypassSecurityTrustScript(): any {
return null;
}
bypassSecurityTrustUrl(): any {
return null;
}
bypassSecurityTrustResourceUrl(): any {
return null;
}
}
describe('ContentUserInfoComponent', () => {
const profilePictureUrl = 'alfresco-logo.svg';
let component: ContentUserInfoComponent;
let fixture: ComponentFixture<ContentUserInfoComponent>;
let element: HTMLElement;
const identityUserMock = { firstName: 'fake-identity-first-name', lastName: 'fake-identity-last-name', email: 'fakeIdentity@email.com' };
const identityUserWithOutLastNameMock = { firstName: 'fake-identity-first-name', lastName: null, email: 'fakeIdentity@email.com' };
const openUserInfo = () => {
fixture.detectChanges();
const imageButton = element.querySelector<HTMLButtonElement>('#logged-user-img');
imageButton.click();
fixture.detectChanges();
};
const whenFixtureReady = async () => {
fixture.detectChanges();
await fixture.whenStable();
fixture.detectChanges();
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ContentTestingModule, MatMenuModule]
});
fixture = TestBed.createComponent(ContentUserInfoComponent);
component = fixture.componentInstance;
element = fixture.nativeElement;
spyOn(window, 'requestAnimationFrame').and.returnValue(1);
});
afterEach(() => {
fixture.destroy();
});
it('should not show any image if the user is not logged in', () => {
expect(element.querySelector('#userinfo_container')).toBeDefined();
expect(element.querySelector('#logged-user-img')).toBeNull();
});
it('should NOT have users immediately after ngOnInit', () => {
expect(element.querySelector('#userinfo_container')).toBeDefined();
expect(element.querySelector('#ecm_username')).toBeNull();
expect(element.querySelector('#user-profile-lists')).toBeNull();
});
describe('when user is logged on ecm', () => {
beforeEach(() => {
component.ecmUser = fakeEcmUser as any;
component.isLoggedIn = true;
});
describe('ui', () => {
it('should show ecm only last name when user first name is null ', async () => {
component.ecmUser = fakeEcmEditedUser as any;
await whenFixtureReady();
openUserInfo();
expect(element.querySelector('#userinfo_container')).toBeDefined();
const ecmUsername = fixture.debugElement.query(By.css('#ecm-username'));
expect(ecmUsername).toBeDefined();
expect(ecmUsername).not.toBeNull();
expect(ecmUsername.nativeElement.textContent).not.toContain('fake-ecm-first-name');
expect(ecmUsername.nativeElement.textContent).not.toContain('null');
});
it('should show the username when showName attribute is true', async () => {
await whenFixtureReady();
expect(component.showName).toBeTruthy();
expect(element.querySelector('#adf-userinfo-ecm-name-display')).not.toBeNull();
});
it('should hide the username when showName attribute is false', async () => {
component.showName = false;
await whenFixtureReady();
expect(element.querySelector('#adf-userinfo-ecm-name-display')).toBeNull();
});
it('should have the defined class to show the name on the right side', async () => {
await whenFixtureReady();
expect(element.querySelector('#userinfo_container').classList).toContain('adf-userinfo-name-right');
});
it('should not have the defined class to show the name on the left side', async () => {
component.namePosition = 'left';
await whenFixtureReady();
expect(element.querySelector('#userinfo_container').classList).not.toContain('adf-userinfo-name-right');
});
describe('and has image', () => {
beforeEach(async () => {
component.ecmUser = fakeEcmUser as any;
component.isLoggedIn = true;
spyOn(component, 'getEcmAvatar').and.returnValue(profilePictureUrl);
await whenFixtureReady();
});
it('should get the ecm current user image', async () => {
openUserInfo();
const loggedImage = fixture.debugElement.query(By.css('#logged-user-img'));
expect(element.querySelector('#userinfo_container')).not.toBeNull();
expect(loggedImage).not.toBeNull();
expect(loggedImage.properties.src).toContain(profilePictureUrl);
});
it('should display the current user image if user has avatarId', () => {
openUserInfo();
const loggedImage = fixture.debugElement.query(By.css('#logged-user-img'));
expect(component.ecmUser).toBeDefined();
expect(component.ecmUser.avatarId).toBe('fake-avatar-id');
expect(element.querySelector('#userinfo_container')).not.toBeNull();
expect(loggedImage).not.toBeNull();
expect(loggedImage.properties.src).toContain(profilePictureUrl);
});
it('should get the ecm user information', async () => {
openUserInfo();
const ecmImage = fixture.debugElement.query(By.css('#ecm-user-detail-image'));
const ecmFullName = fixture.debugElement.query(By.css('#ecm-full-name'));
const ecmJobTitle = fixture.debugElement.query(By.css('#ecm-job-title-label'));
expect(element.querySelector('#userinfo_container')).not.toBeNull();
expect(fixture.debugElement.query(By.css('#ecm-username'))).not.toBeNull();
expect(ecmImage).not.toBeNull();
expect(ecmImage.properties.src).toContain(profilePictureUrl);
expect(ecmFullName.nativeElement.textContent).toContain('fake-ecm-first-name fake-ecm-last-name');
expect(ecmJobTitle.nativeElement.textContent).toContain('USER_PROFILE.LABELS.ECM.JOB_TITLE');
});
});
describe('and has no image', () => {
beforeEach(async () => {
component.ecmUser = fakeEcmUserNoImage as any;
component.isLoggedIn = true;
await whenFixtureReady();
});
it('should show N/A when the job title is null', () => {
const imageButton = element.querySelector<HTMLButtonElement>('[data-automation-id="user-initials-image"]');
imageButton.click();
fixture.detectChanges();
expect(element.querySelector('#userinfo_container')).not.toBeNull();
const ecmJobTitle = fixture.debugElement.query(By.css('#ecm-job-title'));
expect(ecmJobTitle).not.toBeNull();
expect(ecmJobTitle).not.toBeNull();
expect(ecmJobTitle.nativeElement.textContent).toContain('N/A');
});
it('should display the current user Initials if the user dose not have avatarId', () => {
fixture.detectChanges();
const pipe = new InitialUsernamePipe(new FakeSanitizer());
const expected = pipe.transform({
firstName: 'Wilbur',
lastName: 'Adams',
email: 'wilbur@app.com'
});
expect(expected).toBe('<div data-automation-id="user-initials-image" class="">WA</div>');
expect(component.ecmUser).toBeDefined();
expect(component.ecmUser.avatarId).toBeNull();
});
});
});
describe('when identity user is logged in', () => {
beforeEach(() => {
component.ecmUser = fakeEcmUser as any;
component.identityUser = identityUserMock as unknown as IdentityUserModel;
component.isLoggedIn = true;
component.mode = UserInfoMode.CONTENT_SSO;
});
it('should not show initials if the user have avatar and provider is ECM', async () => {
component.identityUser = identityUserWithOutLastNameMock as unknown as IdentityUserModel;
await whenFixtureReady();
expect(element.querySelector('.adf-userinfo-pic')).toBeNull();
expect(element.querySelector('.adf-userinfo-profile-image')).toBeDefined();
expect(element.querySelector('.adf-userinfo-profile-image')).not.toBeNull();
});
});
});
});
@@ -15,14 +15,20 @@
* limitations under the License.
*/
import { IdentityUserModel, UserInfoMode } from '@alfresco/adf-core';
import { FullNamePipe, IdentityUserModel, InitialUsernamePipe, UserInfoMode } from '@alfresco/adf-core';
import { Component, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';
import { MatMenuTrigger, MenuPositionX, MenuPositionY } from '@angular/material/menu';
import { MatMenuModule, MatMenuTrigger, MenuPositionX, MenuPositionY } from '@angular/material/menu';
import { Subject } from 'rxjs';
import { EcmUserModel, PeopleContentService } from '@alfresco/adf-content-services';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'adf-content-user-info',
standalone: true,
imports: [CommonModule, FullNamePipe, MatMenuModule, MatButtonModule, InitialUsernamePipe, MatCardModule, TranslateModule],
templateUrl: './content-user-info.component.html',
styleUrls: ['./content-user-info.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -1,43 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ContentUserInfoComponent } from './content-user-info.component';
import { TranslateModule } from '@ngx-translate/core';
import { FullNamePipe, InitialUsernamePipe, PipeModule } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
import { MatMenuModule } from '@angular/material/menu';
import { MatTabsModule } from '@angular/material/tabs';
import { MatCardModule } from '@angular/material/card';
@NgModule({
declarations: [ContentUserInfoComponent],
imports: [
CommonModule,
MatButtonModule,
MatMenuModule,
MatTabsModule,
MatCardModule,
TranslateModule,
PipeModule,
InitialUsernamePipe,
FullNamePipe
],
exports: [ContentUserInfoComponent]
})
export class ContentUserInfoModule {}
@@ -16,5 +16,3 @@
*/
export * from './content-user-info.component';
export * from './content-user-info.module';
@@ -15,7 +15,4 @@
* limitations under the License.
*/
import { ProcessUserInfoComponent } from './process-user-info.component';
export * from './process-user-info.component';
export const PROCESS_USER_INFO_DIRECTIVES = [ProcessUserInfoComponent] as const;
@@ -17,14 +17,26 @@
import { EcmUserModel, PeopleContentService } from '@alfresco/adf-content-services';
import { PeopleProcessService } from '@alfresco/adf-process-services';
import { AuthenticationService, BasicAlfrescoAuthService, IdentityUserModel, IdentityUserService, UserInfoMode } from '@alfresco/adf-core';
import {
AuthenticationService,
BasicAlfrescoAuthService,
IdentityUserInfoComponent,
IdentityUserModel,
IdentityUserService,
UserInfoMode
} from '@alfresco/adf-core';
import { Component, OnInit, Input } from '@angular/core';
import { MenuPositionX, MenuPositionY } from '@angular/material/menu';
import { Observable, of } from 'rxjs';
import { CommonModule } from '@angular/common';
import { UserRepresentation } from '@alfresco/js-api';
import { ContentUserInfoComponent } from './content-user-info';
import { ProcessUserInfoComponent } from './process-user-info';
@Component({
selector: 'app-shell-user-info',
standalone: true,
imports: [CommonModule, ContentUserInfoComponent, IdentityUserInfoComponent, ProcessUserInfoComponent],
templateUrl: './user-info.component.html'
})
export class UserInfoComponent implements OnInit {
@@ -29,16 +29,22 @@ import {
CardViewMapItemModel,
UpdateNotification,
DecimalNumberPipe,
CardViewArrayItemModel
CardViewArrayItemModel,
CardViewComponent
} from '@alfresco/adf-core';
import { of, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatButtonModule } from '@angular/material/button';
@Component({
standalone: true,
imports: [CommonModule, MatSlideToggleModule, MatButtonModule, CardViewComponent],
templateUrl: './card-view.component.html',
styleUrls: ['./card-view.component.scss']
})
export class CardViewComponent implements OnInit, OnDestroy {
export class AppCardViewComponent implements OnInit, OnDestroy {
isEditable = true;
properties: any;
logs: string[];
@@ -1,39 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { CardViewComponent } from './card-view.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
const routes: Routes = [
{
path: '',
component: CardViewComponent
}
];
@NgModule({
imports: [
CommonModule,
CoreModule,
RouterModule.forChild(routes)
],
declarations: [CardViewComponent]
})
export class AppCardViewModule {}
@@ -18,18 +18,18 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { CloudLayoutService } from './services/cloud-layout.service';
import { AppListCloudModule } from '@alfresco/adf-process-services-cloud';
@Component({
standalone: true,
imports: [AppListCloudModule],
templateUrl: './apps-cloud-demo.component.html'
})
export class AppsCloudDemoComponent {
constructor(private router: Router, private cloudLayoutService: CloudLayoutService) {
}
constructor(private router: Router, private cloudLayoutService: CloudLayoutService) {}
onAppClick(app) {
this.cloudLayoutService.setCurrentTaskFilterParam({key: 'my-tasks'});
this.cloudLayoutService.setCurrentTaskFilterParam({ key: 'my-tasks' });
this.router.navigate([`/cloud/${app.name}`]);
}
}
@@ -20,15 +20,18 @@ import { Observable } from 'rxjs';
import { CloudLayoutService } from './services/cloud-layout.service';
import { Router, ActivatedRoute } from '@angular/router';
import { CloudProcessFiltersService } from './services/cloud-process-filters.service';
import { ProcessFilterCloudModel } from '@alfresco/adf-process-services-cloud';
import { ProcessFilterCloudModel, ProcessFiltersCloudModule, TaskFiltersCloudModule } from '@alfresco/adf-process-services-cloud';
import { CommonModule } from '@angular/common';
import { MatExpansionModule } from '@angular/material/expansion';
@Component({
selector: 'app-cloud-filters-demo',
standalone: true,
imports: [CommonModule, MatExpansionModule, TaskFiltersCloudModule, ProcessFiltersCloudModule],
templateUrl: './cloud-filters-demo.component.html',
styleUrls: ['./cloud-filters-demo.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class CloudFiltersDemoComponent implements OnInit {
@Input()
appName: string;
@@ -67,17 +70,17 @@ export class CloudFiltersDemoComponent implements OnInit {
onTaskFilterSelected(filter) {
if (filter) {
this.router.navigate([`/cloud/${this.appName}/tasks/`], {queryParams: filter});
this.router.navigate([`/cloud/${this.appName}/tasks/`], { queryParams: filter });
}
}
onProcessFilterSelected(filter: ProcessFilterCloudModel) {
if (filter) {
const {appName} = this;
const {id} = filter;
const { appName } = this;
const { id } = filter;
const queryParams = this.cloudProcessFiltersService.writeQueryParams(filter, appName, id);
this.router.navigate([`/cloud/${appName}/processes/`], {queryParams});
this.router.navigate([`/cloud/${appName}/processes/`], { queryParams });
}
}
@@ -16,11 +16,41 @@
*/
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { Router, ActivatedRoute, RouterOutlet } from '@angular/router';
import { CloudLayoutService } from './services/cloud-layout.service';
import { CommonModule } from '@angular/common';
import { MatTabsModule } from '@angular/material/tabs';
import {
SidebarActionMenuComponent,
SidenavLayoutComponent,
SidenavLayoutContentDirective,
SidenavLayoutHeaderDirective,
SidenavLayoutNavigationDirective
} from '@alfresco/adf-core';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { CloudFiltersDemoComponent } from './cloud-filters-demo.component';
import { CloudSettingsComponent } from './shared/cloud-settings.component';
@Component({
selector: 'app-cloud-layout',
standalone: true,
imports: [
CommonModule,
MatTabsModule,
SidenavLayoutComponent,
TranslateModule,
SidenavLayoutHeaderDirective,
SidenavLayoutNavigationDirective,
SidebarActionMenuComponent,
MatIconModule,
MatMenuModule,
SidenavLayoutContentDirective,
RouterOutlet,
CloudFiltersDemoComponent,
CloudSettingsComponent
],
templateUrl: './cloud-layout.component.html',
styleUrls: ['./cloud-layout.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -1,3 +1,2 @@
<adf-alfresco-viewer
[nodeId]="nodeId">
<adf-alfresco-viewer [nodeId]="nodeId">
</adf-alfresco-viewer>
@@ -17,17 +17,18 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { AlfrescoViewerComponent } from '@alfresco/adf-content-services';
@Component({
selector: 'app-cloud-viewer',
standalone: true,
imports: [AlfrescoViewerComponent],
templateUrl: './cloud-viewer.component.html'
})
export class CloudViewerComponent implements OnInit {
nodeId: string;
constructor(private route: ActivatedRoute) {
}
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe((params: Params) => {
@@ -16,16 +16,18 @@
*/
import { Component, OnInit } from '@angular/core';
import { FormService, WidgetComponent } from '@alfresco/adf-core';
import { ErrorWidgetComponent, FormService, WidgetComponent } from '@alfresco/adf-core';
import { CommonModule } from '@angular/common';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { TranslateModule } from '@ngx-translate/core';
import { FormsModule } from '@angular/forms';
/* eslint-disable @angular-eslint/component-selector */
@Component({
selector: 'custom-editor-widget',
template: `
<div style="color: green">
ADF version of custom form widget
</div>
`
standalone: true,
template: ` <div style="color: green">ADF version of custom form widget</div> `
})
export class CustomEditorComponent extends WidgetComponent {
constructor() {
@@ -35,32 +37,35 @@ export class CustomEditorComponent extends WidgetComponent {
@Component({
selector: 'app-sample-widget',
standalone: true,
imports: [CommonModule, MatFormFieldModule, MatInputModule, TranslateModule, FormsModule, ErrorWidgetComponent],
template: `
<div style="color: red">
<p *ngIf="field.readOnly || readOnly">
<label class="adf-label" [attr.for]="field.id">{{field.name | translate }}<span *ngIf="isRequired()">*</span></label>
<span>{{field.value}}</span>
<label class="adf-label" [attr.for]="field.id">{{ field.name | translate }}<span *ngIf="isRequired()">*</span></label>
<span>{{ field.value }}</span>
</p>
<mat-form-field *ngIf="!(field.readOnly || readOnly)">
<label class="adf-label" [attr.for]="field.id">{{field.name | translate }}<span *ngIf="isRequired()">*</span></label>
<input matInput
class="adf-input"
type="text"
[id]="field.id"
[required]="isRequired()"
[value]="field.value"
[(ngModel)]="field.value"
(ngModelChange)="onFieldChanged(field)">
<mat-hint>{{field.placeholder}}</mat-hint>
<label class="adf-label" [attr.for]="field.id">{{ field.name | translate }}<span *ngIf="isRequired()">*</span></label>
<input
matInput
class="adf-input"
type="text"
[id]="field.id"
[required]="isRequired()"
[value]="field.value"
[(ngModel)]="field.value"
(ngModelChange)="onFieldChanged(field)"
/>
<mat-hint>{{ field.placeholder }}</mat-hint>
</mat-form-field>
<error-widget [error]="field.validationSummary"></error-widget>
<error-widget *ngIf="isInvalidFieldRequired()" required="{{ 'FORM.FIELD.REQUIRED' | translate }}"></error-widget>
</div>
`
})
export class CustomWidgetComponent extends WidgetComponent implements OnInit {
export class CustomWidgetComponent extends WidgetComponent implements OnInit {
constructor(public formService: FormService) {
super(formService);
}
@@ -19,15 +19,15 @@ import { Component } from '@angular/core';
import { FormRenderingService } from '@alfresco/adf-core';
import { CloudFormRenderingService } from '@alfresco/adf-process-services-cloud';
import { CustomEditorComponent, CustomWidgetComponent } from './custom-form-components/custom-editor.component';
import { RouterOutlet } from '@angular/router';
@Component({
template: `<router-outlet></router-outlet>`,
providers: [
{ provide: FormRenderingService, useClass: CloudFormRenderingService }
]
standalone: true,
imports: [RouterOutlet],
providers: [{ provide: FormRenderingService, useClass: CloudFormRenderingService }]
})
export class ProcessCloudLayoutComponent {
constructor(private formRenderingService: FormRenderingService) {
this.formRenderingService.register({
'custom-editor': () => CustomEditorComponent,
@@ -17,15 +17,19 @@
import { Component, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { ProcessHeaderCloudModule, TaskListCloudModule } from '@alfresco/adf-process-services-cloud';
@Component({
selector: 'app-process-details-cloud-demo',
standalone: true,
imports: [MatIconModule, MatButtonModule, TaskListCloudModule, ProcessHeaderCloudModule],
templateUrl: './process-details-cloud-demo.component.html',
styleUrls: ['./process-details-cloud-demo.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class ProcessDetailsCloudDemoComponent {
processInstanceId: string;
appName: string;
@@ -21,18 +21,23 @@ import {
PROCESS_FILTER_ACTION_SAVE,
PROCESS_FILTER_ACTION_SAVE_AS,
ProcessFilterAction,
ProcessFilterCloudModel
ProcessFilterCloudModel,
ProcessFiltersCloudModule,
ProcessListCloudModule
} from '@alfresco/adf-process-services-cloud';
import { ActivatedRoute, Router } from '@angular/router';
import { DataCellEvent, UserPreferencesService } from '@alfresco/adf-core';
import { DataCellEvent, PaginationComponent, UserPreferencesService } from '@alfresco/adf-core';
import { CloudLayoutService, CloudServiceSettings } from './services/cloud-layout.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { Pagination } from '@alfresco/js-api';
import { CloudProcessFiltersService } from './services/cloud-process-filters.service';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-processes-cloud-demo',
standalone: true,
imports: [CommonModule, ProcessFiltersCloudModule, ProcessListCloudModule, PaginationComponent],
templateUrl: './processes-cloud-demo.component.html',
styleUrls: ['./processes-cloud-demo.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -50,8 +55,8 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
actionMenu: boolean;
contextMenu: boolean;
actions: any[] = [];
selectedAction: { id: number; name: string; actionType: string};
selectedContextAction: { id: number; name: string; actionType: string};
selectedAction: { id: number; name: string; actionType: string };
selectedContextAction: { id: number; name: string; actionType: string };
filterProperties: string[];
filterSortProperties: string[];
@@ -69,8 +74,8 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
private router: Router,
private cloudLayoutService: CloudLayoutService,
private cloudProcessFiltersService: CloudProcessFiltersService,
private userPreference: UserPreferencesService) {
}
private userPreference: UserPreferencesService
) {}
ngOnInit() {
this.filterProperties = this.cloudProcessFiltersService.filterProperties;
@@ -87,9 +92,7 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
this.loadFilter(model);
});
this.cloudLayoutService.settings$
.pipe(takeUntil(this.onDestroy$))
.subscribe(settings => this.setCurrentSettings(settings));
this.cloudLayoutService.settings$.pipe(takeUntil(this.onDestroy$)).subscribe((settings) => this.setCurrentSettings(settings));
this.performContextActions();
}
@@ -129,7 +132,7 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
...this.cloudProcessFiltersService.writeQueryParams(filter, this.appName, filter.id),
filterId: filter.id
};
this.router.navigate([`/cloud/${this.appName}/processes/`], {queryParams});
this.router.navigate([`/cloud/${this.appName}/processes/`], { queryParams });
}
onProcessFilterAction(filterAction: ProcessFilterAction) {
@@ -155,33 +158,30 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
onShowRowContextMenu(event: DataCellEvent) {
event.value.actions = this.actions.map((action) => ({
data: event.value.row['obj'],
model: action,
subject: this.performAction$
data: event.value.row['obj'],
model: action,
subject: this.performAction$
}));
}
onExecuteRowAction(row: any) {
const value = row.value.row['obj'].entry;
const action = row.value.action;
this.selectedAction = {id: value.id, name: value.name, actionType: action.title};
this.selectedAction = { id: value.id, name: value.name, actionType: action.title };
}
performContextActions() {
this.performAction$
.pipe(takeUntil(this.onDestroy$))
.subscribe((action: any) => {
this.performAction$.pipe(takeUntil(this.onDestroy$)).subscribe((action: any) => {
if (action) {
this.onExecuteContextAction(action);
this.onExecuteContextAction(action);
}
});
});
}
onExecuteContextAction(contextAction: any) {
const value = contextAction.data.entry;
const action = contextAction.model;
this.selectedContextAction = {id: value.id, name: value.name, actionType: action.title};
this.selectedContextAction = { id: value.id, name: value.name, actionType: action.title };
}
private loadFilter(model: ProcessFilterCloudModel) {
@@ -19,10 +19,33 @@ import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { ActionMenuModel, CloudLayoutService } from '../services/cloud-layout.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { FormsModule, ReactiveFormsModule, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import { MatInputModule } from '@angular/material/input';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatButtonModule } from '@angular/material/button';
import { MatChipsModule } from '@angular/material/chips';
import { MatIconModule } from '@angular/material/icon';
@Component({
selector: 'app-cloud-settings',
standalone: true,
imports: [
CommonModule,
MatSlideToggleModule,
MatFormFieldModule,
MatSelectModule,
FormsModule,
MatInputModule,
ReactiveFormsModule,
MatCheckboxModule,
MatButtonModule,
MatChipsModule,
MatIconModule
],
templateUrl: './cloud-settings.component.html',
styleUrls: ['./cloud-settings.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -51,15 +74,12 @@ export class CloudSettingsComponent implements OnInit, OnDestroy {
icon: new UntypedFormControl(''),
visible: new UntypedFormControl(true),
disabled: new UntypedFormControl(false)
});
});
constructor(private cloudLayoutService: CloudLayoutService) { }
constructor(private cloudLayoutService: CloudLayoutService) {}
ngOnInit() {
this.cloudLayoutService
.settings$
.pipe(takeUntil(this.onDestroy$))
.subscribe(settings => this.setCurrentSettings(settings));
this.cloudLayoutService.settings$.pipe(takeUntil(this.onDestroy$)).subscribe((settings) => this.setCurrentSettings(settings));
}
ngOnDestroy() {
@@ -1,40 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CloudSettingsComponent } from './cloud-settings.component';
import { MatDialogModule } from '@angular/material/dialog';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { CoreModule } from '@alfresco/adf-core';
@NgModule({
imports: [
CommonModule,
CoreModule,
MatDialogModule,
MatInputModule,
MatSelectModule,
MatSlideToggleModule
],
declarations: [ CloudSettingsComponent ],
exports: [ CommonModule, CloudSettingsComponent]
})
export class AppCloudSharedModule {}
@@ -20,28 +20,28 @@ import { ActivatedRoute, Router } from '@angular/router';
import { NotificationService, AppConfigService, FormRenderingService } from '@alfresco/adf-core';
import { CloudLayoutService } from './services/cloud-layout.service';
import { PreviewService } from '../../services/preview.service';
import { CloudFormRenderingService } from '@alfresco/adf-process-services-cloud';
import { CloudFormRenderingService, StartProcessCloudModule } from '@alfresco/adf-process-services-cloud';
@Component({
standalone: true,
imports: [StartProcessCloudModule],
templateUrl: './start-process-cloud-demo.component.html',
providers: [
{ provide: FormRenderingService, useClass: CloudFormRenderingService }
]
providers: [{ provide: FormRenderingService, useClass: CloudFormRenderingService }]
})
export class StartProcessCloudDemoComponent implements OnInit {
appName;
processName: string;
formValues: any;
variables: any;
constructor(private appConfig: AppConfigService,
private cloudLayoutService: CloudLayoutService,
private route: ActivatedRoute,
private previewService: PreviewService,
private notificationService: NotificationService,
private router: Router) {
}
constructor(
private appConfig: AppConfigService,
private cloudLayoutService: CloudLayoutService,
private route: ActivatedRoute,
private previewService: PreviewService,
private notificationService: NotificationService,
private router: Router
) {}
ngOnInit() {
this.route.parent.params.subscribe((params) => {
@@ -19,20 +19,22 @@ import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { NotificationService } from '@alfresco/adf-core';
import { CloudLayoutService } from './services/cloud-layout.service';
import { StartTaskCloudModule } from '@alfresco/adf-process-services-cloud';
@Component({
standalone: true,
imports: [StartTaskCloudModule],
templateUrl: './start-task-cloud-demo.component.html'
})
export class StartTaskCloudDemoComponent implements OnInit {
appName;
constructor(
private cloudLayoutService: CloudLayoutService,
private route: ActivatedRoute,
private notificationService: NotificationService,
private router: Router) {
}
private router: Router
) {}
ngOnInit() {
this.route.parent.params.subscribe((params) => {
@@ -18,17 +18,18 @@
import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { NotificationService } from '@alfresco/adf-core';
import { TaskHeaderCloudComponent } from '@alfresco/adf-process-services-cloud';
import { TaskFormModule, TaskHeaderCloudComponent, TaskHeaderCloudModule } from '@alfresco/adf-process-services-cloud';
import { PreviewService } from '../../services/preview.service';
@Component({
selector: 'app-task-details-cloud-demo',
standalone: true,
imports: [TaskFormModule, TaskHeaderCloudModule],
templateUrl: './task-details-cloud-demo.component.html',
styleUrls: ['./task-details-cloud-demo.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class TaskDetailsCloudDemoComponent {
@ViewChild('taskHeader', { static: true })
taskHeader: TaskHeaderCloudComponent;
@@ -40,14 +41,13 @@ export class TaskDetailsCloudDemoComponent {
private router: Router,
private notificationService: NotificationService,
private previewService: PreviewService
) {
) {
this.route.params.subscribe((params) => {
this.taskId = params.taskId;
});
this.route.parent.params.subscribe((params) => {
this.appName = params.appName;
});
}
isTaskValid(): boolean {
@@ -18,14 +18,17 @@
import { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
import {
TaskFilterCloudModel,
TaskFiltersCloudModule,
TaskListCloudComponent,
TaskListCloudModule,
TaskListCloudSortingModel
} from '@alfresco/adf-process-services-cloud';
import { AppConfigService, DataCellEvent, UserPreferencesService } from '@alfresco/adf-core';
import { AppConfigService, DataCellEvent, PaginationComponent, UserPreferencesService } from '@alfresco/adf-core';
import { ActivatedRoute, Router } from '@angular/router';
import { CloudLayoutService } from './services/cloud-layout.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
const ACTION_SAVE_AS = 'saveAs';
const ACTION_DELETE = 'delete';
@@ -33,6 +36,8 @@ const TASK_FILTER_PROPERTY_KEYS = 'adf-edit-task-filter';
@Component({
selector: 'app-tasks-cloud-demo',
standalone: true,
imports: [CommonModule, TaskFiltersCloudModule, TaskListCloudModule, PaginationComponent],
templateUrl: './tasks-cloud-demo.component.html',
styleUrls: ['./tasks-cloud-demo.component.scss'],
encapsulation: ViewEncapsulation.None
@@ -49,7 +54,7 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
sortArray: TaskListCloudSortingModel[];
editedFilter: TaskFilterCloudModel;
taskFilterProperties: any = { filterProperties: [], sortProperties: [], actions: [] };
taskFilterProperties: any = { filterProperties: [], sortProperties: [], actions: [] };
filterId;
multiselect: boolean;
@@ -57,8 +62,8 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
actionMenu: boolean;
contextMenu: boolean;
actions: any[] = [];
selectedAction: { id: number; name: string; actionType: string};
selectedContextAction: { id: number; name: string; actionType: string};
selectedAction: { id: number; name: string; actionType: string };
selectedContextAction: { id: number; name: string; actionType: string };
testingMode: boolean;
selectionMode: string;
taskDetailsRedirection: boolean;
@@ -71,8 +76,8 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
private route: ActivatedRoute,
private router: Router,
private userPreference: UserPreferencesService,
private appConfig: AppConfigService) {
private appConfig: AppConfigService
) {
const properties = this.appConfig.get<Array<any>>(TASK_FILTER_PROPERTY_KEYS);
if (properties) {
this.taskFilterProperties = properties;
@@ -91,9 +96,7 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
this.filterId = params.id;
});
this.cloudLayoutService.settings$
.pipe(takeUntil(this.onDestroy$))
.subscribe(settings => this.setCurrentSettings(settings));
this.cloudLayoutService.settings$.pipe(takeUntil(this.onDestroy$)).subscribe((settings) => this.setCurrentSettings(settings));
this.performContextActions();
}
@@ -139,7 +142,6 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
}
onTaskFilterAction(filterAction: any) {
if (filterAction.actionType === ACTION_DELETE) {
this.cloudLayoutService.setCurrentTaskFilterParam({ index: 0 });
} else {
@@ -157,32 +159,29 @@ export class TasksCloudDemoComponent implements OnInit, OnDestroy {
onShowRowContextMenu(event: DataCellEvent) {
event.value.actions = this.actions.map((action) => ({
data: event.value.row['obj'],
model: action,
subject: this.performAction$
data: event.value.row['obj'],
model: action,
subject: this.performAction$
}));
}
onExecuteRowAction(row: any) {
const value = row.value.row['obj'].entry;
const action = row.value.action;
this.selectedAction = {id: value.id, name: value.name, actionType: action.title};
this.selectedAction = { id: value.id, name: value.name, actionType: action.title };
}
performContextActions() {
this.performAction$
.pipe(takeUntil(this.onDestroy$))
.subscribe((action: any) => {
this.performAction$.pipe(takeUntil(this.onDestroy$)).subscribe((action: any) => {
if (action) {
this.onExecuteContextAction(action);
this.onExecuteContextAction(action);
}
});
});
}
onExecuteContextAction(contextAction: any) {
const value = contextAction.data.entry;
const action = contextAction.model;
this.selectedContextAction = {id: value.id, name: value.name, actionType: action.title};
this.selectedContextAction = { id: value.id, name: value.name, actionType: action.title };
}
}
@@ -17,17 +17,19 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { ErrorContentComponent } from '@alfresco/adf-core';
import { MatButtonModule } from '@angular/material/button';
@Component({
selector: 'app-demo-error',
standalone: true,
imports: [ErrorContentComponent, MatButtonModule],
templateUrl: './demo-error.component.html'
})
export class DemoErrorComponent implements OnInit {
errorCode: string = '';
constructor(private route: ActivatedRoute, private router: Router) {
}
constructor(private route: ActivatedRoute, private router: Router) {}
ngOnInit() {
if (this.route) {
@@ -42,5 +44,4 @@ export class DemoErrorComponent implements OnInit {
onReturnButton() {
this.router.navigate(['/']);
}
}
@@ -17,18 +17,44 @@
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { ActivatedRoute, PRIMARY_OUTLET, Router } from '@angular/router';
import { NotificationService } from '@alfresco/adf-core';
import { InfoDrawerComponent, InfoDrawerTabComponent, NotificationService, ViewerComponent } from '@alfresco/adf-core';
import {
AlfrescoViewerComponent,
AllowableOperationsEnum,
ContentMetadataComponent,
ContentService,
FileUploadErrorEvent,
NodeCommentsComponent,
NodesApiService,
PermissionsEnum
PermissionsEnum,
VersionManagerComponent
} from '@alfresco/adf-content-services';
import { PreviewService } from '../../services/preview.service';
import { CommonModule } from '@angular/common';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatButtonModule } from '@angular/material/button';
import { MatInputModule } from '@angular/material/input';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-file-view',
standalone: true,
imports: [
CommonModule,
AlfrescoViewerComponent,
ViewerComponent,
NodeCommentsComponent,
ContentMetadataComponent,
MatSlideToggleModule,
MatFormFieldModule,
MatButtonModule,
MatInputModule,
FormsModule,
VersionManagerComponent,
InfoDrawerTabComponent,
InfoDrawerComponent
],
templateUrl: './file-view.component.html',
encapsulation: ViewEncapsulation.None
})
@@ -1,49 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Routes, RouterModule } from '@angular/router';
import { CoreModule, InfoDrawerModule } from '@alfresco/adf-core';
import { ContentModule, ContentDirectiveModule, VersionManagerModule, ContentMetadataModule } from '@alfresco/adf-content-services';
import { FileViewComponent } from './file-view.component';
const routes: Routes = [
{
path: '',
component: FileViewComponent
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule,
ContentModule,
InfoDrawerModule,
ContentModule,
ContentDirectiveModule,
ContentMetadataModule,
VersionManagerModule
],
declarations: [FileViewComponent],
exports: [FileViewComponent]
})
export class FileViewModule {
}
@@ -31,7 +31,23 @@ import {
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { NodeEntry, NodePaging, Pagination, Node, SearchEntry } from '@alfresco/js-api';
import { NotificationService, UserPreferencesService, PaginationComponent, ShowHeaderMode, FormRenderingService } from '@alfresco/adf-core';
import {
NotificationService,
UserPreferencesService,
PaginationComponent,
ShowHeaderMode,
FormRenderingService,
ToolbarTitleComponent,
ToolbarComponent,
ToolbarDividerComponent,
DataColumnComponent,
HighlightPipe,
DataColumnListComponent,
CustomEmptyContentTemplateDirective,
InfoDrawerTabComponent,
InfoDrawerComponent,
InfoDrawerLayoutComponent
} from '@alfresco/adf-core';
import {
ContentService,
FolderCreatedEvent,
@@ -42,18 +58,82 @@ import {
FilterSearch,
DialogAspectListService,
FileUploadEvent,
NodesApiService
NodesApiService,
UploadDragAreaComponent,
CheckAllowableOperationDirective,
BreadcrumbComponent,
DropdownBreadcrumbComponent,
NodeDownloadDirective,
NodeDeleteDirective,
NodeLockDirective,
ContentActionListComponent,
ContentActionComponent,
ContentMetadataComponent,
VersionManagerComponent,
UploadButtonComponent
} from '@alfresco/adf-content-services';
import { ProcessFormRenderingService } from '@alfresco/adf-process-services';
import { VersionManagerDialogAdapterComponent } from './version-manager-dialog-adapter.component';
import { Subject } from 'rxjs';
import { PreviewService } from '../../services/preview.service';
import { takeUntil, debounceTime, scan } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { FolderCreateDirective } from '../../folder-directive';
import { MatMenuModule } from '@angular/material/menu';
import { TranslateModule } from '@ngx-translate/core';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { FormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatSelectModule } from '@angular/material/select';
const DEFAULT_FOLDER_TO_SHOW = '-my-';
@Component({
selector: 'app-files-component',
standalone: true,
imports: [
CommonModule,
UploadDragAreaComponent,
MatButtonModule,
MatIconModule,
CheckAllowableOperationDirective,
ToolbarTitleComponent,
ToolbarComponent,
BreadcrumbComponent,
DropdownBreadcrumbComponent,
DocumentListComponent,
FolderCreateDirective,
NodeDownloadDirective,
NodeDeleteDirective,
ToolbarDividerComponent,
MatMenuModule,
TranslateModule,
DataColumnComponent,
NodeLockDirective,
ContentActionListComponent,
ContentActionComponent,
PaginationComponent,
ContentMetadataComponent,
VersionManagerComponent,
MatSlideToggleModule,
FormsModule,
MatFormFieldModule,
MatInputModule,
UploadButtonComponent,
MatCheckboxModule,
MatSelectModule,
HighlightPipe,
DataColumnListComponent,
CustomEmptyContentTemplateDirective,
VersionManagerDialogAdapterComponent,
InfoDrawerTabComponent,
InfoDrawerComponent,
InfoDrawerLayoutComponent
],
templateUrl: './files.component.html',
styleUrls: ['./files.component.scss'],
encapsulation: ViewEncapsulation.None,
@@ -16,14 +16,20 @@
*/
import { Component, Inject, ViewEncapsulation } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
import { Node } from '@alfresco/js-api';
import { PreviewService } from '../../services/preview.service';
import { NotificationService } from '@alfresco/adf-core';
import { FileUploadErrorEvent } from '@alfresco/adf-content-services';
import { FileUploadErrorEvent, VersionListComponent, VersionManagerComponent } from '@alfresco/adf-content-services';
import { CommonModule } from '@angular/common';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { FormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
@Component({
templateUrl: './version-manager-dialog-adapter.component.html',
standalone: true,
imports: [CommonModule, MatDialogModule, MatSlideToggleModule, FormsModule, VersionManagerComponent, VersionListComponent, MatButtonModule],
encapsulation: ViewEncapsulation.None
})
export class VersionManagerDialogAdapterComponent {
@@ -1,4 +1,4 @@
<div class="main-content">
<div class="app-main-content">
<mat-tab-group [animationDuration]="'0'">
<mat-tab label="Form">
@@ -2,10 +2,6 @@
padding: 10px;
}
.app-main-content {
padding: 0 15px;
}
.app-card-view {
width: 30%;
display: inline-block;
@@ -31,7 +27,8 @@
}
}
.main-content {
.app-main-content {
padding: 0 15px;
.adf-form-config-editor {
height: 500px;
@@ -17,23 +17,32 @@
import { Component, inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { FormModel, FormFieldModel, FormService, FormOutcomeEvent, NotificationService, FormRenderingService } from '@alfresco/adf-core';
import { ProcessFormRenderingService } from '@alfresco/adf-process-services';
import { FormComponent, ProcessFormRenderingService } from '@alfresco/adf-process-services';
import { InMemoryFormService } from '../../services/in-memory-form.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CoreAutomationService } from '../../../testing/automation.service';
import { CommonModule } from '@angular/common';
import { MatTabsModule } from '@angular/material/tabs';
import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
import { MatButtonModule } from '@angular/material/button';
import { FormsModule } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
import { MatIconModule } from '@angular/material/icon';
@Component({
selector: 'app-form',
templateUrl: './form.component.html',
styleUrls: ['./form.component.scss'],
standalone: true,
imports: [CommonModule, MatTabsModule, FormComponent, MonacoEditorModule, MatButtonModule, FormsModule, TranslateModule, MatIconModule],
templateUrl: './app-form.component.html',
styleUrls: ['./app-form.component.scss'],
providers: [
{ provide: FormService, useClass: InMemoryFormService },
{ provide: FormRenderingService, useClass: ProcessFormRenderingService }
],
encapsulation: ViewEncapsulation.None
})
export class FormComponent implements OnInit, OnDestroy {
export class AppFormComponent implements OnInit, OnDestroy {
private formService = inject(FormService);
private notificationService = inject(NotificationService);
private automationService = inject(CoreAutomationService);
@@ -16,12 +16,16 @@
*/
import { Component, ViewEncapsulation } from '@angular/core';
import { MatIconModule } from '@angular/material/icon';
import { AppConfigPipe, LoginComponent } from '@alfresco/adf-core';
import { RouterLink } from '@angular/router';
@Component({
selector: 'app-login',
standalone: true,
imports: [MatIconModule, LoginComponent, AppConfigPipe, RouterLink],
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class LoginComponent {
}
export class AppLoginComponent {}
@@ -1,41 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { LoginComponent } from './login.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { ContentModule } from '@alfresco/adf-content-services';
const routes: Routes = [
{
path: '',
component: LoginComponent
}
];
@NgModule({
imports: [
CommonModule,
CoreModule,
RouterModule.forChild(routes),
ContentModule.forChild()
],
declarations: [LoginComponent]
})
export class AppLoginModule {}
@@ -16,9 +16,12 @@
*/
import { Component } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
@Component({
selector: 'app-logout',
standalone: true,
imports: [MatButtonModule],
templateUrl: './logout.component.html',
styleUrls: ['./logout.component.scss']
})
@@ -17,18 +17,19 @@
import { Component, OnInit, Optional } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { PermissionListComponent } from '@alfresco/adf-content-services';
@Component({
selector: 'app-permissions',
standalone: true,
imports: [PermissionListComponent],
templateUrl: './demo-permissions.component.html',
styleUrls: ['./demo-permissions.component.scss']
})
export class DemoPermissionComponent implements OnInit {
nodeId: string;
constructor(@Optional() private route: ActivatedRoute) {
}
constructor(@Optional() private route: ActivatedRoute) {}
ngOnInit() {
if (this.route) {
@@ -16,15 +16,35 @@
*/
import { Component, OnInit, OnDestroy } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, AbstractControl } from '@angular/forms';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Params } from '@angular/router';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { ProcessInstanceQueryRepresentationSort, ProcessInstanceQueryRepresentationState } from '@alfresco/js-api';
import { CommonModule } from '@angular/common';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { MatButtonModule } from '@angular/material/button';
import { ProcessInstanceListComponent } from '@alfresco/adf-process-services';
import { DataColumnComponent, DataColumnListComponent, PaginationComponent } from '@alfresco/adf-core';
const DEFAULT_SIZE = 20;
@Component({
standalone: true,
imports: [
CommonModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule,
MatSelectModule,
MatButtonModule,
ProcessInstanceListComponent,
DataColumnListComponent,
DataColumnComponent,
PaginationComponent
],
templateUrl: './process-list-demo.component.html',
styleUrls: [`./process-list-demo.component.scss`]
})
@@ -1,40 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { ProcessListDemoComponent } from './process-list-demo.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { ProcessModule } from '@alfresco/adf-process-services';
const routes: Routes = [
{
path: '',
component: ProcessListDemoComponent
},
{
path: ':id',
component: ProcessListDemoComponent
}
];
@NgModule({
imports: [CommonModule, RouterModule.forChild(routes), CoreModule, ProcessModule],
declarations: [ProcessListDemoComponent]
})
export class AppProcessListModule {}
@@ -18,9 +18,12 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { AppDefinitionRepresentation } from '@alfresco/js-api';
import { AppsListComponent } from '@alfresco/adf-process-services';
@Component({
selector: 'app-process-list-view',
standalone: true,
imports: [AppsListComponent],
templateUrl: './apps-view.component.html'
})
export class AppsViewComponent {
@@ -17,23 +17,24 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { FormComponent } from '@alfresco/adf-process-services';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-form-node-viewer',
standalone: true,
imports: [CommonModule, FormComponent],
templateUrl: './form-node-viewer.component.html',
styleUrls: ['./form-node-viewer.component.css']
})
export class FormNodeViewerComponent implements OnInit {
nodeId: string;
constructor(private route: ActivatedRoute) {
}
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe((params) => {
this.nodeId = params['id'];
});
}
}
@@ -17,18 +17,20 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { CommonModule } from '@angular/common';
import { FormComponent } from '@alfresco/adf-process-services';
@Component({
selector: 'app-form-viewer',
standalone: true,
imports: [CommonModule, FormComponent],
templateUrl: './form-viewer.component.html',
styleUrls: ['./form-viewer.component.css']
})
export class FormViewerComponent implements OnInit {
taskId: string;
constructor(private route: ActivatedRoute) {
}
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe((params: Params) => {
@@ -16,15 +16,32 @@
*/
import { Component, inject, Input, OnChanges, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
import { ProcessAttachmentListComponent, ProcessService, ProcessUploadService } from '@alfresco/adf-process-services';
import { UploadService } from '@alfresco/adf-content-services';
import {
CreateProcessAttachmentComponent,
ProcessAttachmentListComponent,
ProcessService,
ProcessUploadService
} from '@alfresco/adf-process-services';
import { UploadDragAreaComponent, UploadService } from '@alfresco/adf-content-services';
import { PreviewService } from '../../services/preview.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { ProcessInstanceRepresentation } from '@alfresco/js-api';
import { CommonModule } from '@angular/common';
import { EmptyListComponent } from '@alfresco/adf-core';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'app-process-attachments',
standalone: true,
imports: [
CommonModule,
UploadDragAreaComponent,
ProcessAttachmentListComponent,
EmptyListComponent,
TranslateModule,
CreateProcessAttachmentComponent
],
templateUrl: './process-attachments.component.html',
styleUrls: ['./process-attachments.component.css'],
providers: [{ provide: UploadService, useClass: ProcessUploadService }],
@@ -20,9 +20,7 @@
(success)="onSuccessTaskFilterList()" #activitiFilter>
</adf-task-filters>
</div>
<div
class="app-grid-item app-tasks-list"
*ngIf="taskFilter && !isStartTaskMode()">
<div *ngIf="taskFilter && !isStartTaskMode()" class="app-grid-item app-tasks-list">
<adf-tasklist
[appId]="taskFilter?.appId"
[presetColumn]="presetColumn"
@@ -18,6 +18,7 @@
// eslint-disable-next-line
import { AfterViewInit, Component, ElementRef, Input, OnDestroy, OnInit, ViewChild, ViewEncapsulation, EventEmitter, Output } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
import { Pagination, UserProcessInstanceFilterRepresentation, ScriptFilesApi, UserTaskFilterRepresentation } from '@alfresco/js-api';
import {
FORM_FIELD_VALIDATORS,
@@ -26,9 +27,9 @@ import {
AppConfigService,
PaginationComponent,
UserPreferenceValues,
AlfrescoApiService,
UserPreferencesService,
NotificationService
NotificationService,
SidebarActionMenuComponent
} from '@alfresco/adf-core';
import {
ProcessFiltersComponent,
@@ -40,12 +41,23 @@ import {
ProcessFormRenderingService,
APP_LIST_LAYOUT_LIST,
ValidateDynamicTableRowEvent,
DynamicTableRow
DynamicTableRow,
TaskDetailsComponent,
TaskAuditDirective,
StartTaskComponent,
ProcessInstanceDetailsComponent,
ProcessAuditDirective
} from '@alfresco/adf-process-services';
import { Subject } from 'rxjs';
import { PreviewService } from '../../services/preview.service';
import { Location } from '@angular/common';
import { CommonModule, Location } from '@angular/common';
import { takeUntil } from 'rxjs/operators';
import { MatTabsModule } from '@angular/material/tabs';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { TaskAttachmentsComponent } from './task-attachments.component';
import { MatButtonModule } from '@angular/material/button';
import { ProcessAttachmentsComponent } from './process-attachments.component';
const currentProcessIdNew = '__NEW__';
const currentTaskIdNew = '__NEW__';
@@ -56,6 +68,28 @@ const REPORT_ROUTE = 2;
@Component({
selector: 'app-process-service',
standalone: true,
imports: [
CommonModule,
MatTabsModule,
SidebarActionMenuComponent,
MatIconModule,
MatMenuModule,
TaskFiltersComponent,
TaskListComponent,
PaginationComponent,
TaskDetailsComponent,
TaskAuditDirective,
TaskAttachmentsComponent,
StartTaskComponent,
ProcessFiltersComponent,
ProcessInstanceListComponent,
ProcessInstanceDetailsComponent,
ProcessAuditDirective,
MatButtonModule,
ProcessAttachmentsComponent,
StartProcessInstanceComponent
],
templateUrl: './process-service.component.html',
styleUrls: ['./process-service.component.scss'],
encapsulation: ViewEncapsulation.None,
@@ -16,15 +16,20 @@
*/
import { Component, inject, Input, OnChanges, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
import { TaskAttachmentListComponent, TaskListService, TaskUploadService } from '@alfresco/adf-process-services';
import { UploadService } from '@alfresco/adf-content-services';
import { AttachmentComponent, TaskAttachmentListComponent, TaskListService, TaskUploadService } from '@alfresco/adf-process-services';
import { UploadDragAreaComponent, UploadService } from '@alfresco/adf-content-services';
import { PreviewService } from '../../services/preview.service';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { TaskRepresentation } from '@alfresco/js-api';
import { CommonModule } from '@angular/common';
import { EmptyListComponent } from '@alfresco/adf-core';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'app-task-attachments',
standalone: true,
imports: [CommonModule, UploadDragAreaComponent, TaskAttachmentListComponent, EmptyListComponent, TranslateModule, AttachmentComponent],
templateUrl: './task-attachments.component.html',
styleUrls: ['./task-attachments.component.css'],
encapsulation: ViewEncapsulation.None,
@@ -19,9 +19,13 @@ import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { NodeEntry } from '@alfresco/js-api';
import { PreviewService } from '../../services/preview.service';
import { CommonModule } from '@angular/common';
import { SearchControlComponent } from '@alfresco/adf-content-services';
@Component({
selector: 'app-search-bar',
standalone: true,
imports: [CommonModule, SearchControlComponent],
templateUrl: './search-bar.component.html',
styleUrls: ['./search-bar.component.scss']
})
@@ -18,18 +18,43 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Pagination, ResultSetPaging } from '@alfresco/js-api';
import { SearchConfiguration, SearchQueryBuilderService, SearchService } from '@alfresco/adf-content-services';
import {
ResetSearchDirective,
SearchConfiguration,
SearchFilterChipsComponent,
SearchFormComponent,
SearchQueryBuilderService,
SearchService,
SearchSortingPickerComponent
} from '@alfresco/adf-content-services';
import { ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { combineLatest, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatDividerModule } from '@angular/material/divider';
import { MatIconModule } from '@angular/material/icon';
import { FilesComponent } from '../files/files.component';
@Component({
selector: 'app-search-filter-chips',
standalone: true,
imports: [
CommonModule,
MatProgressBarModule,
SearchFormComponent,
MatDividerModule,
MatIconModule,
ResetSearchDirective,
SearchSortingPickerComponent,
FilesComponent,
SearchFilterChipsComponent
],
templateUrl: './search-filter-chips.component.html',
styleUrls: ['./search-filter-chips.component.scss'],
providers: [SearchService]
})
export class SearchFilterChipsComponent implements OnInit, OnDestroy {
export class AppSearchFilterChipsComponent implements OnInit, OnDestroy {
queryParamName = 'q';
searchedWord = '';
data: ResultSetPaging;
@@ -18,19 +18,39 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Params, Router } from '@angular/router';
import { Pagination, ResultSetPaging } from '@alfresco/js-api';
import { SearchForm, SearchQueryBuilderService, SearchService } from '@alfresco/adf-content-services';
import {
SearchChipListComponent,
SearchFilterComponent,
SearchForm,
SearchQueryBuilderService,
SearchService,
SearchSortingPickerComponent
} from '@alfresco/adf-content-services';
import { ShowHeaderMode, UserPreferencesService } from '@alfresco/adf-core';
import { combineLatest, Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatButtonModule } from '@angular/material/button';
import { FilesComponent } from '../files/files.component';
@Component({
selector: 'app-search-result-component',
standalone: true,
imports: [
CommonModule,
SearchChipListComponent,
SearchFilterComponent,
MatProgressBarModule,
SearchSortingPickerComponent,
MatButtonModule,
FilesComponent
],
templateUrl: './search-result.component.html',
styleUrls: ['./search-result.component.scss'],
providers: [SearchService]
})
export class SearchResultComponent implements OnInit, OnDestroy {
queryParamName = 'q';
searchedWord = '';
data: ResultSetPaging;
@@ -43,10 +63,12 @@ export class SearchResultComponent implements OnInit, OnDestroy {
private onDestroy$ = new Subject<boolean>();
constructor(public router: Router,
private preferences: UserPreferencesService,
private queryBuilder: SearchQueryBuilderService,
private route: ActivatedRoute) {
constructor(
public router: Router,
private preferences: UserPreferencesService,
private queryBuilder: SearchQueryBuilderService,
private route: ActivatedRoute
) {
combineLatest([this.route.params, this.queryBuilder.configUpdated])
.pipe(takeUntil(this.onDestroy$))
.subscribe(([params, searchConfig]) => {
@@ -55,7 +77,7 @@ export class SearchResultComponent implements OnInit, OnDestroy {
if (query) {
this.queryBuilder.userQuery = query;
}
});
});
queryBuilder.paging = {
maxItems: this.preferences.paginationSize,
@@ -68,21 +90,17 @@ export class SearchResultComponent implements OnInit, OnDestroy {
this.sorting = this.getSorting();
this.queryBuilder.updated
.pipe(takeUntil(this.onDestroy$))
.subscribe(() => {
this.sorting = this.getSorting();
this.isLoading = true;
});
this.queryBuilder.updated.pipe(takeUntil(this.onDestroy$)).subscribe(() => {
this.sorting = this.getSorting();
this.isLoading = true;
});
this.queryBuilder.executed
.pipe(takeUntil(this.onDestroy$))
.subscribe((resultSetPaging: ResultSetPaging) => {
this.queryBuilder.paging.skipCount = 0;
this.queryBuilder.executed.pipe(takeUntil(this.onDestroy$)).subscribe((resultSetPaging: ResultSetPaging) => {
this.queryBuilder.paging.skipCount = 0;
this.onSearchResultLoaded(resultSetPaging);
this.isLoading = false;
});
this.onSearchResultLoaded(resultSetPaging);
this.isLoading = false;
});
if (this.route) {
this.route.params.forEach((params: Params) => {
@@ -91,18 +109,20 @@ export class SearchResultComponent implements OnInit, OnDestroy {
this.queryBuilder.update();
} else {
this.queryBuilder.userQuery = null;
this.queryBuilder.executed.next(new ResultSetPaging({
list: {
pagination: { totalItems: 0 },
entries: []
}
}));
this.queryBuilder.executed.next(
new ResultSetPaging({
list: {
pagination: { totalItems: 0 },
entries: []
}
})
);
}
});
}
}
private formatSearchQuery(userInput: string, fields = ['cm:name']) {
private formatSearchQuery(userInput: string, fields = ['cm:name']) {
if (!userInput) {
return null;
}
@@ -142,6 +162,6 @@ export class SearchResultComponent implements OnInit, OnDestroy {
}
switchLayout() {
this.router.navigate(['search-filter-chips', { q: this.searchedWord }] );
this.router.navigate(['search-filter-chips', { q: this.searchedWord }]);
}
}
@@ -16,16 +16,34 @@
*/
import { Component, EventEmitter, Output, ViewEncapsulation, OnInit, Input } from '@angular/core';
import { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
import { AppConfigService, AppConfigValues, StorageService, AlfrescoApiService, AuthenticationService } from '@alfresco/adf-core';
import { Validators, UntypedFormGroup, UntypedFormBuilder, UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
import { AppConfigService, AppConfigValues, StorageService, AuthenticationService } from '@alfresco/adf-core';
import { ENTER } from '@angular/cdk/keycodes';
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
import { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';
import { CommonModule } from '@angular/common';
import { MatSelectModule } from '@angular/material/select';
import { MatRadioModule } from '@angular/material/radio';
import { MatInputModule } from '@angular/material/input';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatButtonModule } from '@angular/material/button';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
export const HOST_REGEX = '^(http|https)://.*[^/]$';
@Component({
providers: [{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { floatLabel: 'always' } }],
selector: 'adf-host-settings',
standalone: true,
imports: [
CommonModule,
ReactiveFormsModule,
MatFormFieldModule,
MatSelectModule,
MatRadioModule,
MatInputModule,
MatSlideToggleModule,
MatButtonModule
],
templateUrl: 'host-settings.component.html',
host: { class: 'adf-host-settings' },
styleUrls: ['./host-settings.component.scss'],
@@ -161,7 +179,10 @@ export class HostSettingsComponent implements OnInit {
}
private createIdentityFormControl(): UntypedFormControl {
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [
Validators.required,
Validators.pattern(HOST_REGEX)
]);
}
private createECMFormControl(): UntypedFormControl {
@@ -203,7 +224,7 @@ export class HostSettingsComponent implements OnInit {
}
private saveOAuthValues(values: any) {
if (values.oauthConfig.publicUrls && (typeof values.oauthConfig.publicUrls === 'string')) {
if (values.oauthConfig.publicUrls && typeof values.oauthConfig.publicUrls === 'string') {
values.oauthConfig.publicUrls = values.oauthConfig.publicUrls.split(',');
}
@@ -278,5 +299,4 @@ export class HostSettingsComponent implements OnInit {
get oauthConfig(): UntypedFormControl {
return this.form.get('oauthConfig') as UntypedFormControl;
}
}
@@ -17,9 +17,13 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { CommonModule } from '@angular/common';
import { HostSettingsComponent } from './host-settings.component';
@Component({
selector: 'app-settings',
standalone: true,
imports: [CommonModule, HostSettingsComponent],
templateUrl: './settings.component.html'
})
export class SettingsComponent {
@@ -1,46 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { SettingsComponent } from './settings.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HostSettingsComponent } from './host-settings.component';
const routes: Routes = [
{
path: '',
component: SettingsComponent
}
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes),
CoreModule,
FormsModule,
ReactiveFormsModule
],
declarations: [
SettingsComponent,
HostSettingsComponent
]
})
export class AppSettingsModule {}
@@ -3,9 +3,7 @@
<form [formGroup]="taskListForm">
<mat-form-field>
<mat-label>App Id</mat-label>
<input
matInput
[formControl]="taskAppId" data-automation-id="appId input">
<input matInput [formControl]="taskAppId" data-automation-id="appId input">
<mat-error *ngIf="taskAppId.hasError('pattern')">
App ID must be a number
</mat-error>
@@ -13,16 +11,12 @@
<mat-form-field>
<mat-label>Task Name</mat-label>
<input
matInput
[formControl]="taskName" data-automation-id="task name">
<input matInput [formControl]="taskName" data-automation-id="task name">
</mat-form-field>
<mat-form-field>
<mat-label>Task Id</mat-label>
<input
matInput
[formControl]="taskId" data-automation-id="task id">
<input matInput [formControl]="taskId" data-automation-id="task id">
</mat-form-field>
<mat-form-field>
@@ -182,8 +176,6 @@
</data-columns>
</adf-tasklist>
<adf-pagination
[target]="taskList">
</adf-pagination>
<adf-pagination [target]="taskList"></adf-pagination>
</div>
@@ -16,20 +16,43 @@
*/
import { Component, OnInit, OnDestroy } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, AbstractControl } from '@angular/forms';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl, AbstractControl, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Params } from '@angular/router';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { set } from 'date-fns';
import { CommonModule } from '@angular/common';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatSelectModule } from '@angular/material/select';
import { MatButtonModule } from '@angular/material/button';
import { TaskListComponent } from '@alfresco/adf-process-services';
import { DataColumnComponent, DataColumnListComponent, FullNamePipe, LocalizedDatePipe, PaginationComponent } from '@alfresco/adf-core';
const DEFAULT_SIZE = 20;
@Component({
selector: 'app-task-list-demo',
standalone: true,
imports: [
CommonModule,
ReactiveFormsModule,
MatFormFieldModule,
MatInputModule,
MatDatepickerModule,
MatSelectModule,
MatButtonModule,
TaskListComponent,
DataColumnListComponent,
DataColumnComponent,
FullNamePipe,
LocalizedDatePipe,
PaginationComponent
],
templateUrl: './task-list-demo.component.html',
styleUrls: [`./task-list-demo.component.scss`]
})
export class TaskListDemoComponent implements OnInit, OnDestroy {
taskListForm: UntypedFormGroup;
@@ -54,33 +77,31 @@ export class TaskListDemoComponent implements OnInit, OnDestroy {
includeProcessInstance: boolean;
assignmentOptions = [
{value: 'assignee', title: 'Assignee'},
{value: 'candidate', title: 'Candidate'}
{ value: 'assignee', title: 'Assignee' },
{ value: 'candidate', title: 'Candidate' }
];
includeProcessInstanceOptions = [
{value: 'include', title: 'Include'},
{value: 'exclude', title: 'Exclude'}
{ value: 'include', title: 'Include' },
{ value: 'exclude', title: 'Exclude' }
];
stateOptions = [
{value: 'all', title: 'All'},
{value: 'active', title: 'Active'},
{value: 'completed', title: 'Completed'}
{ value: 'all', title: 'All' },
{ value: 'active', title: 'Active' },
{ value: 'completed', title: 'Completed' }
];
sortOptions = [
{value: 'created-asc', title: 'Created (asc)'},
{value: 'created-desc', title: 'Created (desc)'},
{value: 'due-asc', title: 'Due (asc)'},
{value: 'due-desc', title: 'Due (desc)'}
{ value: 'created-asc', title: 'Created (asc)' },
{ value: 'created-desc', title: 'Created (desc)' },
{ value: 'due-asc', title: 'Due (asc)' },
{ value: 'due-desc', title: 'Due (desc)' }
];
private onDestroy$ = new Subject<boolean>();
constructor(private route: ActivatedRoute,
private formBuilder: UntypedFormBuilder) {
}
constructor(private route: ActivatedRoute, private formBuilder: UntypedFormBuilder) {}
ngOnInit() {
if (this.route) {
@@ -120,16 +141,11 @@ export class TaskListDemoComponent implements OnInit, OnDestroy {
taskIncludeProcessInstance: new UntypedFormControl()
});
this.taskListForm.valueChanges
.pipe(
debounceTime(500),
takeUntil(this.onDestroy$)
)
.subscribe(taskFilter => {
if (this.isFormValid()) {
this.filterTasks(taskFilter);
}
});
this.taskListForm.valueChanges.pipe(debounceTime(500), takeUntil(this.onDestroy$)).subscribe((taskFilter) => {
if (this.isFormValid()) {
this.filterTasks(taskFilter);
}
});
}
filterTasks(taskFilter: any) {
@@ -1,40 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { TaskListDemoComponent } from './task-list-demo.component';
import { Routes, RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { CoreModule, FullNamePipe, LocalizedDatePipe } from '@alfresco/adf-core';
import { ProcessModule } from '@alfresco/adf-process-services';
const routes: Routes = [
{
path: '',
component: TaskListDemoComponent
},
{
path: ':id',
component: TaskListDemoComponent
}
];
@NgModule({
imports: [CommonModule, RouterModule.forChild(routes), CoreModule, ProcessModule, LocalizedDatePipe, FullNamePipe],
declarations: [TaskListDemoComponent]
})
export class AppTaskListModule {}
@@ -26,6 +26,8 @@ import { ContentService } from '@alfresco/adf-content-services';
import { ContentTestingModule } from 'lib/content-services/src/lib/testing/content.testing.module';
@Component({
standalone: true,
imports: [FolderCreateDirective],
template: ` <div [adf-create-folder]="parentNode" (success)="success($event)" title="create-title" [nodeType]="'cm:my-little-pony'"></div>`
})
class TestTypeComponent {
@@ -38,6 +40,8 @@ class TestTypeComponent {
}
@Component({
standalone: true,
imports: [FolderCreateDirective],
template: `<div [adf-create-folder]="parentNode"></div>`
})
class TestComponent {
@@ -56,8 +60,7 @@ describe('FolderCreateDirective', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ContentTestingModule],
declarations: [TestTypeComponent, TestComponent]
imports: [ContentTestingModule, TestTypeComponent, TestComponent]
});
fixture = TestBed.createComponent(TestComponent);
element = fixture.debugElement.query(By.directive(FolderCreateDirective));
@@ -26,7 +26,8 @@ const DEFAULT_FOLDER_PARENT_ID = '-my-';
const DIALOG_WIDTH: number = 400;
@Directive({
selector: '[adf-create-folder]'
selector: '[adf-create-folder]',
standalone: true
})
export class FolderCreateDirective {
/** Parent folder where the new folder will be located after creation. */
@@ -1,29 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { MaterialModule } from '../material.module';
import { FolderCreateDirective } from './folder-create.directive';
@NgModule({
imports: [CommonModule, MaterialModule],
declarations: [FolderCreateDirective],
exports: [FolderCreateDirective]
})
export class FolderDirectiveModule {}
@@ -16,5 +16,3 @@
*/
export * from './folder-create.directive';
export * from './folder-directive.module';
-63
View File
@@ -1,63 +0,0 @@
/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { NgModule } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { MatDialogModule } from '@angular/material/dialog';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatToolbarModule } from '@angular/material/toolbar';
@NgModule({
imports: [
MatSlideToggleModule,
MatInputModule,
MatSelectModule,
MatDialogModule,
MatSidenavModule,
MatProgressBarModule,
MatCardModule,
MatListModule,
MatMenuModule,
MatToolbarModule,
MatSnackBarModule,
MatExpansionModule
],
exports: [
MatSlideToggleModule,
MatInputModule,
MatSelectModule,
MatDialogModule,
MatSidenavModule,
MatProgressBarModule,
MatCardModule,
MatListModule,
MatMenuModule,
MatToolbarModule,
MatSnackBarModule,
MatExpansionModule
]
})
export class MaterialModule {
}
+2 -1
View File
@@ -15,9 +15,10 @@
* limitations under the License.
*/
import { AppConfigService, UserPreferencesService, StorageService, AuthenticationService } from '@alfresco/adf-core';
import { Injectable } from '@angular/core';
import { AppConfigService, AlfrescoApiService, StorageService, UserPreferencesService, AuthenticationService } from '@alfresco/adf-core';
import { DemoForm } from './demo-form.mock';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
@Injectable({
providedIn: 'root'
+58 -59
View File
@@ -194,7 +194,7 @@ A collection of Angular components for generic use.
| Name | Description | Source link |
| ---- | ----------- | -------- |
| [APS Alfresco Content Service](core/services/activiti-alfresco.service.md) | Gets Alfresco Repository folder content based on a Repository account configured in Alfresco Process Services (APS). | [Source](../lib/process-services/src/lib/form/services/activiti-alfresco.service.ts) |
| [Alfresco Api Service](core/services/alfresco-api.service.md) | Provides access to an initialized AlfrescoJSApi instance. | [Source](../lib/core/src/lib/services/alfresco-api.service.ts) |
| [Alfresco Api Service](core/services/alfresco-api.service.md) | Provides access to an initialized AlfrescoJSApi instance. | [Source](lib/content-services/src/lib/services/alfresco-api.service.ts) |
| [App Config service](core/services/app-config.service.md) | Supports app configuration settings, stored server side. | [Source](../lib/core/src/lib/app-config/app-config.service.ts) |
| [Apps Process service](core/services/apps-process.service.md) | Gets details of the Process Services apps that are deployed for the user. | [Source](../lib/process-services/src/lib/services/apps-process.service.ts) |
| [Auth Guard Bpm service](core/services/auth-guard-bpm.service.md) | Adds authentication with Process Services to a route within the app. | [Source](../lib/core/src/lib/auth/guard/auth-guard-bpm.service.ts) |
@@ -264,61 +264,60 @@ for more information about installing and using the source code.
### Components
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Add Permission Dialog Component](content-services/components/add-permission-dialog.component.md) | Displays a dialog to search for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts) |
| [Add Permission Panel Component](content-services/components/add-permission-panel.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts) |
| [Add Permission Component](content-services/components/add-permission.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission.component.ts) |
| [Alfresco Viewer component](content-services/components/alfresco-viewer.component.md) | Displays content from an ACS repository. | [Source](../lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts) |
| [Aspect List Dialog component](content-services/components/aspect-list-dialog.component.md) | Allows a user to choose aspects for a node. | [Source](../lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts) |
| [Aspect List component](content-services/components/aspect-list.component.md) | This component will show in an expandable row list with checkboxes all the aspect of a node, if a node id is given, or otherwise a complete list. | |
| The aspect are filtered via the app.config.json in this way : | [Source](../lib/content-services/src/lib/aspect-list/aspect-list.component.ts) | |
| [Breadcrumb Component](content-services/components/breadcrumb.component.md) | Indicates the current position within a navigation hierarchy. | [Source](../lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts) |
| [Content Action component](content-services/components/content-action.component.md) | Adds options to a Document List actions menu for a particular content type. | [Source](../lib/content-services/src/lib/document-list/components/content-action/content-action.component.ts) |
| [Content Metadata Card component](content-services/components/content-metadata-card.component.md) | Displays and edits metadata related to a node. | [Source](../lib/content-services/src/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.ts) |
| [Content Node Selector Panel component](content-services/components/content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts) |
| [Content Node Selector component](content-services/components/content-node-selector.component.md) | Allows a user to select items from a Content Services repository. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts) |
| [Content Type Dialog component](content-services/components/content-type-dialog.component.md) | Confirm dialog when user changes content type of a node. | [Source](../lib/content-services/src/lib/content-type/content-type-dialog.component.ts) |
| [Document List component](content-services/components/document-list.component.md) | Displays the documents from a repository. | [Source](../lib/content-services/src/lib/document-list/components/document-list.component.ts) |
| [Dropdown Breadcrumb Component](content-services/components/dropdown-breadcrumb.component.md) | Indicates the current position within a navigation hierarchy using a dropdown menu. | [Source](../lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts) |
| [File Uploading Dialog Component](content-services/components/file-uploading-dialog.component.md) | Shows a dialog listing all the files uploaded with the Upload Button or Drag Area components. | [Source](../lib/content-services/src/lib/upload/components/file-uploading-dialog.component.ts) |
| [Node Comments Component](content-services/components/node-comments.component.md) | Displays comments from users involved in a specified content and allows an involved user to add a comment to a content. | [Source](../lib/content-services/src/lib/node-comments/node-comments.component.ts) |
| [Permission List Component](content-services/components/permission-list.component.md) | Shows node permissions as a table. | [Source](../lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.ts) |
| [Search check list component](content-services/components/search-check-list.component.md) | Implements a checklist widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts) |
| [Search Chip Input Component](content-services/components/search-chip-input.component.md) | Displays input for providing phrases display as "chips". | [Source](../lib/content-services/src/lib/search/components/search-chip-input/search-chip-input.component.ts) |
| [Search Chip Autocomplete Input component](content-services/components/search-chip-autocomplete-input.component.md) | Displays an input with autocomplete options. | [Source](../lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts) |
| [Search Chip List Component](content-services/components/search-chip-list.component.md) | Displays search criteria as a set of "chips". | [Source](../lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.ts) |
| [Search control component](content-services/components/search-control.component.md) | Displays a input text that shows find-as-you-type suggestions. | [Source](../lib/content-services/src/lib/search/components/search-control.component.ts) |
| [Search Date Range Component](content-services/components/search-date-range.component.md) | Displays a UI to configure different kinds of search criteria around date. Options are 'Anytime', 'In the last' and 'Between' | [Source](../lib/content-services/src/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.ts) |
| [Search Date Range Tabbed component](content-services/components/search-date-range-tabbed.component.md) | Implements a tabbed advanced search widget for the Search Date Range component. | [Source](../lib/content-services/src/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.ts) |
| [Search datetime range component](content-services/components/search-datetime-range.component.md) | Implements a search widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-datetime-range/search-datetime-range.component.ts) |
| [Search Filter Autocomplete Chips component](content-services/components/search-filter-autocomplete-chips.component.md) | Implements a search widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.ts) |
| [Search Filter Chips component](content-services/components/search-filter-chips.component.md) | Represents a chip based container component for custom search and faceted search settings. | [Source](../lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.ts) |
| [Search Filter component](content-services/components/search-filter.component.md) | Represents a main container component for custom search and faceted search settings. | [Source](../lib/content-services/src/lib/search/components/search-filter/search-filter.component.ts) |
| [Search Filter Tabbed component](content-services/components/search-filter-tabbed.component.md) | Represents a container component for creating tabbed layout. | [Source](../lib/content-services/src/lib/search/components/search-filter/search-filter.component.ts) |
| [Search Form component](content-services/components/search-form.component.md) | Search Form screenshot | [Source](../lib/content-services/src/lib/search/components/search-form/search-form.component.ts) |
| [Search Logical Filter component](content-services/components/search-logical-filter.component.md) | Displays 3 chip inputs each representing different logical condition for search query. | [Source](../lib/content-services/src/lib/search/components/search-logical-filter/search-logical-filter.component.ts) |
| [Search Properties component](content-services/components/search-properties.component.md) | Allows to search by file size and type.| [Source](../lib/content-services/src/lib/search/components/search-properties/search-properties.component.ts) |
| [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) |
| [Search component](content-services/components/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/src/lib/search/components/search.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) |
| [Tag Node Actions List component](content-services/components/tag-actions.component.md) | Shows available actions for tags. | [Source](../lib/content-services/src/lib/tag/tag-actions.component.ts) |
| [Tag List component](content-services/components/tag-list.component.md) | Shows tags for an item. | [Source](../lib/content-services/src/lib/tag/tag-list.component.ts) |
| [Tag Node List component](content-services/components/tag-node-list.component.md) | Shows tags for a node. | [Source](../lib/content-services/src/lib/tag/tag-node-list.component.ts) |
| [Tags Creator component](content-services/components/tags-creator.component.md) | Allows to create multiple tags. That component contains input and two lists. Top list is all created tags, bottom list is searched tags based on input's value. | [Source](../lib/content-services/src/lib/tag/tags-creator/tags-creator.component.ts) |
| [Tree View component](content-services/components/tree-view.component.md) | Shows the folder and subfolders of a node as a tree view. | [Source](../lib/content-services/src/lib/tree-view/components/tree-view.component.ts) |
| [Tree component](content-services/components/tree.component.md) | Shows the nodes in tree structure, each node containing children is collapsible/expandable. Can be integrated with any datasource extending Tree service. | [Source](../lib/content-services/src/lib/tree/components/tree.component.ts) |
| [Upload Button Component](content-services/components/upload-button.component.md) | Activates a file upload. | [Source](../lib/content-services/src/lib/upload/components/upload-button.component.ts) |
| [Upload Drag Area Component](content-services/components/upload-drag-area.component.md) | Adds a drag and drop area to upload files to ACS. | [Source](../lib/content-services/src/lib/upload/components/upload-drag-area.component.ts) |
| Name | Description | Source link |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| ----------- | -------- |
| [Add Permission Dialog Component](content-services/components/add-permission-dialog.component.md) | Displays a dialog to search for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-dialog.component.ts) |
| [Add Permission Panel Component](content-services/components/add-permission-panel.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission-panel.component.ts) |
| [Add Permission Component](content-services/components/add-permission.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/add-permission/add-permission.component.ts) |
| [Alfresco Viewer component](content-services/components/alfresco-viewer.component.md) | Displays content from an ACS repository. | [Source](../lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts) |
| [Aspect List Dialog component](content-services/components/aspect-list-dialog.component.md) | Allows a user to choose aspects for a node. | [Source](../lib/content-services/src/lib/aspect-list/aspect-list-dialog.component.ts) |
| [Aspect List component](content-services/components/aspect-list.component.md) | This component will show in an expandable row list with checkboxes all the aspect of a node, if a node id is given, or otherwise a complete list. | [Source](../lib/content-services/src/lib/aspect-list/aspect-list.component.ts) | |
| [Breadcrumb Component](content-services/components/breadcrumb.component.md) | Indicates the current position within a navigation hierarchy. | [Source](../lib/content-services/src/lib/breadcrumb/breadcrumb.component.ts) |
| [Content Action component](content-services/components/content-action.component.md) | Adds options to a Document List actions menu for a particular content type. | [Source](../lib/content-services/src/lib/document-list/components/content-action/content-action.component.ts) |
| [Content Metadata Card component](content-services/components/content-metadata-card.component.md) | Displays and edits metadata related to a node. | [Source](../lib/content-services/src/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.ts) |
| [Content Node Selector Panel component](content-services/components/content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.ts) |
| [Content Node Selector component](content-services/components/content-node-selector.component.md) | Allows a user to select items from a Content Services repository. | [Source](../lib/content-services/src/lib/content-node-selector/content-node-selector.component.ts) |
| [Content Type Dialog component](content-services/components/content-type-dialog.component.md) | Confirm dialog when user changes content type of a node. | [Source](../lib/content-services/src/lib/content-type/content-type-dialog.component.ts) |
| [Document List component](content-services/components/document-list.component.md) | Displays the documents from a repository. | [Source](../lib/content-services/src/lib/document-list/components/document-list.component.ts) |
| [Dropdown Breadcrumb Component](content-services/components/dropdown-breadcrumb.component.md) | Indicates the current position within a navigation hierarchy using a dropdown menu. | [Source](../lib/content-services/src/lib/breadcrumb/dropdown-breadcrumb.component.ts) |
| [File Uploading Dialog Component](content-services/components/file-uploading-dialog.component.md) | Shows a dialog listing all the files uploaded with the Upload Button or Drag Area components. | [Source](../lib/content-services/src/lib/upload/components/file-uploading-dialog.component.ts) |
| [Node Comments Component](content-services/components/node-comments.component.md) | Displays comments from users involved in a specified content and allows an involved user to add a comment to a content. | [Source](../lib/content-services/src/lib/node-comments/node-comments.component.ts) |
| [Permission List Component](content-services/components/permission-list.component.md) | Shows node permissions as a table. | [Source](../lib/content-services/src/lib/permission-manager/components/permission-list/permission-list.component.ts) |
| [Search check list component](content-services/components/search-check-list.component.md) | Implements a checklist widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-check-list/search-check-list.component.ts) |
| [Search Chip Input Component](content-services/components/search-chip-input.component.md) | Displays input for providing phrases display as "chips". | [Source](../lib/content-services/src/lib/search/components/search-chip-input/search-chip-input.component.ts) |
| [Search Chip Autocomplete Input component](content-services/components/search-chip-autocomplete-input.component.md) | Displays an input with autocomplete options. | [Source](../lib/content-services/src/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.ts) |
| [Search Chip List Component](content-services/components/search-chip-list.component.md) | Displays search criteria as a set of "chips". | [Source](../lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.ts) |
| [Search control component](content-services/components/search-control.component.md) | Displays a input text that shows find-as-you-type suggestions. | [Source](../lib/content-services/src/lib/search/components/search-control.component.ts) |
| [Search Date Range Component](content-services/components/search-date-range.component.md) | Displays a UI to configure different kinds of search criteria around date. Options are 'Anytime', 'In the last' and 'Between' | [Source](../lib/content-services/src/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.ts) |
| [Search Date Range Tabbed component](content-services/components/search-date-range-tabbed.component.md) | Implements a tabbed advanced search widget for the Search Date Range component. | [Source](../lib/content-services/src/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.ts) |
| [Search datetime range component](content-services/components/search-datetime-range.component.md) | Implements a search widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-datetime-range/search-datetime-range.component.ts) |
| [Search Filter Autocomplete Chips component](content-services/components/search-filter-autocomplete-chips.component.md) | Implements a search widget for the Search Filter component. | [Source](../lib/content-services/src/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.ts) |
| [Search Filter Chips component](content-services/components/search-filter-chips.component.md) | Represents a chip based container component for custom search and faceted search settings. | [Source](../lib/content-services/src/lib/search/components/search-filter-chips/search-filter-chips.component.ts) |
| [Search Filter component](content-services/components/search-filter.component.md) | Represents a main container component for custom search and faceted search settings. | [Source](../lib/content-services/src/lib/search/components/search-filter/search-filter.component.ts) |
| [Search Filter Tabbed component](content-services/components/search-filter-tabbed.component.md) | Represents a container component for creating tabbed layout. | [Source](../lib/content-services/src/lib/search/components/search-filter/search-filter.component.ts) |
| [Search Form component](content-services/components/search-form.component.md) | Search Form screenshot | [Source](../lib/content-services/src/lib/search/components/search-form/search-form.component.ts) |
| [Search Logical Filter component](content-services/components/search-logical-filter.component.md) | Displays 3 chip inputs each representing different logical condition for search query. | [Source](../lib/content-services/src/lib/search/components/search-logical-filter/search-logical-filter.component.ts) |
| [Search Properties component](content-services/components/search-properties.component.md) | Allows to search by file size and type.| [Source](../lib/content-services/src/lib/search/components/search-properties/search-properties.component.ts) |
| [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) |
| [Search component](content-services/components/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/src/lib/search/components/search.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) |
| [Tag Node Actions List component](content-services/components/tag-actions.component.md) | Shows available actions for tags. | [Source](../lib/content-services/src/lib/tag/tag-actions/tag-actions.component.ts) |
| [Tag List component](content-services/components/tag-list.component.md) | Shows tags for an item. | [Source](../lib/content-services/src/lib/tag/tag-list/tag-list.component.ts) |
| [Tag Node List component](content-services/components/tag-node-list.component.md) | Shows tags for a node. | [Source](../lib/content-services/src/lib/tag/tag-node-list/tag-node-list.component.ts) |
| [Tags Creator component](content-services/components/tags-creator.component.md) | Allows to create multiple tags. That component contains input and two lists. Top list is all created tags, bottom list is searched tags based on input's value. | [Source](../lib/content-services/src/lib/tag/tags-creator/tags-creator.component.ts) |
| [Tree View component](content-services/components/tree-view.component.md) | Shows the folder and subfolders of a node as a tree view. | [Source](../lib/content-services/src/lib/tree-view/components/tree-view.component.ts) |
| [Tree component](content-services/components/tree.component.md) | Shows the nodes in tree structure, each node containing children is collapsible/expandable. Can be integrated with any datasource extending Tree service. | [Source](../lib/content-services/src/lib/tree/components/tree.component.ts) |
| [Upload Button Component](content-services/components/upload-button.component.md) | Activates a file upload. | [Source](../lib/content-services/src/lib/upload/components/upload-button.component.ts) |
| [Upload Drag Area Component](content-services/components/upload-drag-area.component.md) | Adds a drag and drop area to upload files to ACS. | [Source](../lib/content-services/src/lib/upload/components/upload-drag-area.component.ts) |
| [Upload Version Button Component (Workaround)](content-services/components/upload-version-button.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Activates a file version upload. | [Source](../lib/content-services/src/lib/upload/components/upload-version-button.component.ts) |
| [Version Comparison Component](content-services/components/version-comparison.component.md) | Displays the side by side comparison between the current target node (type, name, icon) and the new file that should update it's version. | [Source](../lib/content-services/src/lib/version-manager/version-comparison.component.ts) |
| [Version List component](content-services/components/version-list.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the version history of a node in a Version Manager component. | [Source](../lib/content-services/src/lib/version-manager/version-list.component.ts) |
| [Version Manager Component](content-services/components/version-manager.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the version history of a node with the ability to upload a new version. | [Source](../lib/content-services/src/lib/version-manager/version-manager.component.ts) |
| [Version Upload component](content-services/components/version-upload.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the new version's minor/major changes and the optional comment of a node in a Version Manager component. | [Source](../lib/content-services/src/lib/version-manager/version-upload.component.ts) |
| [Version Comparison Component](content-services/components/version-comparison.component.md) | Displays the side by side comparison between the current target node (type, name, icon) and the new file that should update it's version. | [Source](../lib/content-services/src/lib/version-manager/version-comparison.component.ts) |
| [Version List component](content-services/components/version-list.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the version history of a node in a Version Manager component. | [Source](../lib/content-services/src/lib/version-manager/version-list.component.ts) |
| [Version Manager Component](content-services/components/version-manager.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the version history of a node with the ability to upload a new version. | [Source](../lib/content-services/src/lib/version-manager/version-manager.component.ts) |
| [Version Upload component](content-services/components/version-upload.component.md) ![Experimental](docassets/images/ExperimentalIcon.png) | Displays the new version's minor/major changes and the optional comment of a node in a Version Manager component. | [Source](../lib/content-services/src/lib/version-manager/version-upload.component.ts) |
### Directives
@@ -348,8 +347,7 @@ 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) | |
| [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) | |
| [Search widget interface](content-services/interfaces/search-widget.interface.md) | Specifies required properties for Search filter component widgets. | [Source](../lib/content-services/src/lib/search/models/search-widget.interface.ts) |
| [Content Metadata Custom Panel interface](content-services/interfaces/content-metadata-custom-panel.interface.md) | Specifies required properties for metadata custom panel. | [Source](../lib/content-services/src/lib/content-metadata/interfaces/content-metadata-custom-panel.interface.ts) |
@@ -371,9 +369,9 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Agent Service](content-services/services/agent.service.md) | Manages agents in Content Services. | [Source](../lib/content-services/src/lib/agent/services/agent.service.ts) |
| [Audit Service](content-services/services/audit.service.md) | Manages Audit apps and entries. | [Source](../lib/content-services/src/lib/audit/audit.service.ts) |
| [Card View Content Update Service](content-services/services/card-view-content-update.service.md) | Manages Card View properties in the content services environment. | |
| Implements BaseCardViewContentUpdate. | [Source](../lib/content-services/src/lib/common/services/card-view-content-update.service.ts) | |
| [Card View Content Update Service](content-services/services/card-view-content-update.service.md) | Manages Card View properties in the content services environment. Implements BaseCardViewContentUpdate. | [Source](../lib/content-services/src/lib/common/services/card-view-content-update.service.ts) | |
| [Category tree datasource service](content-services/services/category-tree-datasource.service.md) | Datasource service for category tree. | [Source](../lib/content-services/src/lib/category/services/category-tree-datasource.service.ts) |
| [Category service](content-services/services/category.service.md) | Manages categories in Content Services. | [Source](../lib/content-services/src/lib/category/services/category.service.ts) |
| [Content Comment List Service](content-services/services/content-comment-list.service.md) | Gets user image for comments in Content Services. | [Source](../lib/content-services/src/lib/node-comments/services/content-comment-list.service.ts) |
@@ -387,6 +385,7 @@ for more information about installing and using the source code.
| [Node Comments Service](content-services/services/node-comments.service.md) | Adds and retrieves comments for nodes in Content Services. | [Source](../lib/content-services/src/lib/node-comments/services/node-comments.service.ts) |
| [Node permission dialog service](content-services/services/node-permission-dialog.service.md) | Displays dialogs to let the user set node permissions. | [Source](../lib/content-services/src/lib/permission-manager/services/node-permission-dialog.service.ts) |
| [Node Permission service](content-services/services/node-permission.service.md) | Manages role permissions for content nodes. | [Source](../lib/content-services/src/lib/permission-manager/services/node-permission.service.ts) |
| [Search Ai Service](content-services/services/search-ai.service.md) | Manages search AI in Content Services. | [Source](../lib/content-services/src/lib/search-ai/services/search-ai.service.ts) |
| [Search filter service](content-services/services/search-filter.service.md) | Registers widgets for use with the Search Filter component. | [Source](../lib/content-services/src/lib/search/services/search-filter.service.ts) |
| [Search Query Builder service](content-services/services/search-query-builder.service.md) | Stores information from all the custom search and faceted search widgets, compiles and runs the final search query. | [Source](../lib/content-services/src/lib/search/services/search-query-builder.service.ts) |
| [Security Controls service](content-services/services/security-controls.service.md) | Manages security groups & marks in Content Services. | [Source](../lib/content-services/src/lib/security/services/security-controls-groups-marks-security.service.ts) |
@@ -0,0 +1,24 @@
---
Title: Breaking changes, 6.10.0 -> 7.0.0
---
# Breaking changes, 6.10.0 -> 7.0.0
This document lists all the deprecated ADF v2.x components that were removed for v3.0.0:
- [PR-9317](https://github.com/Alfresco/alfresco-ng2-components/pull/9317) Move alfresco js-API and AlfrescoApi service out from the core
Move `AlfrescoApiServiceMock` and `AlfrescoApiServiceMock` from `core` library to `content-services`, These libraries are content related therefore should not live in `core`
To mitigate this change, we can run migration:
```
npx nx migrate @alfresco/adf-core@7.0.0
npx nx migrate --run-migrations
```
Or for pure angular repository:
```
npx ng update @alfresco/adf-core@7.0.0
```
@@ -4,12 +4,12 @@ Added: 6.0.0
Status: Active
---
# [Alfresco Viewer component](../../../lib/content-services/src/lib/viewer/components/alfresco-viewer.component.ts "Defined in alfresco-viewer.component.ts")
# Alfresco Viewer Component
`component`, `standalone`
Displays content from an ACS repository.
See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
## Contents
- [Basic usage](#basic-usage)
@@ -30,6 +30,12 @@ See it live: [Viewer Quickstart](https://embed.plnkr.co/iTuG1lFIXfsP95l6bDW6/)
## Basic usage
Use the following standalone component import:
```typescript
import { AlfrescoViewerComponent } from '@alfresco/adf-content-services';
```
Using with node id:
```html
@@ -53,65 +59,66 @@ Note that if you have a URL which contains a shared link ID, you should extract
ID portion and use it with the `sharedLinkId` property rather than using the whole
URL with `urlFile`.
### [Transclusions](../../user-guide/transclusion.md)
### Transclusions
The [Alfresco Viewer component](viewer.component.md) lets you transclude content for the toolbar (and toolbar buttons),
The viewer lets you transclude content for the toolbar (and toolbar buttons),
the sidebar, thumbnails, and the "Open with" and "More actions" menus.
See the [Custom layout](#custom-layout) section for full details of all available tranclusions.
See [Transclusion](../../user-guide/transclusion.md) for more details.
See the [Custom layout](#custom-layout) section for full details of all available transclusions.
## Class members
### Properties
| Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- |
| allowDownload | `boolean` | true | Toggles downloading. |
| allowFullScreen | `boolean` | true | Toggles the 'Full Screen' feature. |
| allowGoBack | `boolean` | true | Allows `back` navigation. |
| closeButtonPosition | `CloseButtonPosition` | `left` | Set close button position right/left. |
| hideInfoButton | `boolean` | false | Toggles Info button. |
| allowLeftSidebar | `boolean` | false | Allow the left the sidebar. |
| allowNavigate | `boolean` | false | Toggles before/next navigation. You can use the arrow buttons to navigate between documents in the collection. |
| allowPrint | `boolean` | false | Toggles printing. |
| allowRightSidebar | `boolean` | false | Allow the right sidebar. |
| canNavigateBefore | `boolean` | true | Toggles the "before" ("&lt;") button. Requires `allowNavigate` to be enabled. |
| canNavigateNext | `boolean` | true | Toggles the next (">") button. Requires `allowNavigate` to be enabled. |
| maxRetries | `number` | 30 | Number of times the Viewer will retry fetching content Rendition. There is a delay of at least one second between attempts. |
| nodeId | `string` | null | Node Id of the file to load. |
| overlayMode | `boolean` | false | If `true` then show the Viewer as a full page over the current content. Otherwise fit inside the parent div. |
| sharedLinkId | `string` | null | Shared link id (to display shared file). |
| showLeftSidebar | `boolean` | false | Toggles left sidebar visibility. Requires `allowLeftSidebar` to be set to `true`. |
| showRightSidebar | `boolean` | false | Toggles right sidebar visibility. Requires `allowRightSidebar` to be set to `true`. |
| showToolbar | `boolean` | true | Hide or show the toolbar |
| showViewer | `boolean` | true | Hide or show the viewer |
| sidebarLeftTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the left sidebar. The template context contains the loaded node data. |
| sidebarRightTemplate | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | The template for the right sidebar. The template context contains the loaded node data. |
| versionId | `string` | null | Version Id of the file to load. |
| Name | Type | Default value | Description |
|----------------------|-----------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------|
| allowDownload | `boolean` | true | Toggles downloading. |
| allowFullScreen | `boolean` | true | Toggles the 'Full Screen' feature. |
| allowGoBack | `boolean` | true | Allows `back` navigation. |
| closeButtonPosition | `CloseButtonPosition` | `left` | Set close button position right/left. |
| hideInfoButton | `boolean` | false | Toggles Info button. |
| allowLeftSidebar | `boolean` | false | Allow the left the sidebar. |
| allowNavigate | `boolean` | false | Toggles before/next navigation. You can use the arrow buttons to navigate between documents in the collection. |
| allowPrint | `boolean` | false | Toggles printing. |
| allowRightSidebar | `boolean` | false | Allow the right sidebar. |
| canNavigateBefore | `boolean` | true | Toggles the "before" ("&lt;") button. Requires `allowNavigate` to be enabled. |
| canNavigateNext | `boolean` | true | Toggles the next (">") button. Requires `allowNavigate` to be enabled. |
| maxRetries | `number` | 30 | Number of times the Viewer will retry fetching content Rendition. There is a delay of at least one second between attempts. |
| nodeId | `string` | null | Node Id of the file to load. |
| overlayMode | `boolean` | false | If `true` then show the Viewer as a full page over the current content. Otherwise fit inside the parent div. |
| sharedLinkId | `string` | null | Shared link id (to display shared file). |
| showLeftSidebar | `boolean` | false | Toggles left sidebar visibility. Requires `allowLeftSidebar` to be set to `true`. |
| showRightSidebar | `boolean` | false | Toggles right sidebar visibility. Requires `allowRightSidebar` to be set to `true`. |
| showToolbar | `boolean` | true | Hide or show the toolbar |
| showViewer | `boolean` | true | Hide or show the viewer |
| sidebarLeftTemplate | `TemplateRef<any>` | null | The template for the left sidebar. The template context contains the loaded node data. |
| sidebarRightTemplate | `TemplateRef<any>` | null | The template for the right sidebar. The template context contains the loaded node data. |
| versionId | `string` | null | Version Id of the file to load. |
### Events
| Name | Type | Description |
| ---- | ---- | ----------- |
| invalidSharedLink | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when the shared link used is not valid. |
| navigateBefore | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Before' ("&lt;") button. |
| navigateNext | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Next' (">") button. |
| showViewerChange | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<boolean>` | Emitted when the viewer close |
| Name | Type | Description |
|-------------------|---------------------------------------------|-------------------------------------------------------------|
| invalidSharedLink | `EventEmitter<any>` | Emitted when the shared link used is not valid. |
| navigateBefore | `EventEmitter<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Before' ("&lt;") button. |
| navigateNext | `EventEmitter<KeyboardEvent \| MouseEvent>` | Emitted when user clicks 'Navigate Next' (">") button. |
| showViewerChange | `EventEmitter<boolean>` | Emitted when the viewer close |
## Keyboard shortcuts
| Name | Description |
| ---- | ----------- |
| Esc | Close the viewer (overlay mode only). |
| Left | Invoke 'Navigate before' action. |
| Right | Invoke 'Navigate next' action. |
| Ctrl+F | Activate full-screen mode. |
| Name | Description |
|--------|---------------------------------------|
| Esc | Close the viewer (overlay mode only). |
| Left | Invoke 'Navigate before' action. |
| Right | Invoke 'Navigate next' action. |
| Ctrl+F | Activate full-screen mode. |
## Details
### Integrating with the Document List component
Below is the most simple integration of the Viewer and
[Document List](../../content-services/components/document-list.component.md) components within your custom component:
Integrating Viewer and [Document List](./document-list.component.md) components within your custom component:
```html
<adf-document-list
@@ -147,7 +154,7 @@ export class OverlayViewerComponent {
### Supported file formats
The [Alfresco Viewer component](viewer.component.md) consists of separate Views that handle particular file types or type families based on either a file extension or a mime type:
The viewer component consists of separate Views that handle particular file types or type families based on either a file extension or a mime type:
- PDF View
- application/pdf
@@ -199,13 +206,12 @@ For the full list of supported types please refer to: [File types that support p
Configure your webpack-enabled application with the PDF.js library as follows.
1. Install pdfjs-dist
- Install pdfjs-dist
```sh
npm install pdfjs-dist
```
2. Update `vendors.ts` by appending the following code. This will enable the [Alfresco Viewer component](viewer.component.md)
- Update `vendors.ts` by appending the following code. This will enable the viewer component
and compatibility mode for all browsers. It will also configure the web worker for the PDF.js
library to render PDF files in the background:
@@ -217,7 +223,7 @@ pdfjsLib.PDFJS.workerSrc = './pdf.worker.js';
require('pdfjs-dist/web/pdf_viewer.js');
```
3. Update the `plugins` section of the `webpack.common.js` file with the following lines:
- Update the `plugins` section of the `webpack.common.js` file with the following lines:
```js
new CopyWebpackPlugin([
@@ -233,12 +239,12 @@ new CopyWebpackPlugin([
#### Internal extension mechanism
The Viewer supports dynamically-loaded viewer preview extensions, to know more about it [Preview Extension component](../../extensions/components/preview-extension.component.md). This
The Viewer supports dynamically-loaded viewer preview extensions, to know more about it [Preview Extension component](../../extensions/components/preview-extension.component.md).
#### Code extension mechanism]
#### Code extension mechanism
You can define your own custom handler to override supported file formats or handle other file formats that are not yet supported by
the [Alfresco Viewer component](viewer.component.md). Below is an example that shows how to use the `adf-viewer-extension`
the component. Below is an example that shows how to use the `adf-viewer-extension`
to handle 3D data files:
```html
@@ -256,7 +262,7 @@ to handle 3D data files:
</adf-alfresco-viewer>
```
Note: you need to add the `ng2-3d-editor` dependency to your `package.json` file to make the example above work.
> this example requires `ng2-3d-editor` dependency
You need to keep all instances of `adf-viewer-extension` inside `viewerExtensions` template, also you can define multiple `adf-viewer-extension` templates if required:
@@ -284,7 +290,7 @@ You need to keep all instances of `adf-viewer-extension` inside `viewerExtension
### Custom layout
The [Alfresco Viewer Component](viewer.component.md) lets you transclude custom content in several different places as
The viewer component lets you transclude custom content in several different places as
explained in the sections below.
#### Custom toolbar
@@ -329,7 +335,7 @@ The result should look like this:
#### Custom sidebar
The [Alfresco Viewer Component](viewer.component.md) also supports custom sidebar components and layouts.
The viewer component also supports custom sidebar components and layouts.
Set the `allowRightSidebar` property to `true` to enable this feature.
The custom sidebar can be injected in two different ways. The first way is to use
@@ -372,8 +378,6 @@ import { Component, Input } from '@angular/core';
})
export class CustomThumbnailsComponent {
@Input() pdfViewer: any;
...
}
```
@@ -445,15 +449,23 @@ You can enable a custom "More actions" menu by providing at least one action ins
You can set a default zoom scaling value for pdf viewer by adding the following code in `app.config.json`.
Note: For the pdf viewer the value has to be within the range of 25 - 1000.
"adf-alfresco-viewer": {
"pdf-viewer-scaling": 150
```json
{
"adf-alfresco-viewer": {
"pdf-viewer-scaling": 150
}
}
```
In the same way you can set a default zoom scaling value for the image viewer by adding the following code in `app.config.json`.
"adf-alfresco-viewer": {
"image-viewer-scaling": 150
```json
{
"adf-alfresco-viewer": {
"image-viewer-scaling": 150
}
}
```
By default the viewer's zoom scaling is set to 100%.
@@ -465,7 +477,6 @@ true.
```html
<adf-alfresco-viewer [allowPrint]="true">
...
</adf-alfresco-viewer>
```
@@ -66,7 +66,7 @@ Displays the documents from a repository.
| contentActionsPosition | `string` | "right" | Position of the content actions dropdown menu. Can be set to "left" or "right". |
| contextMenuActions | `boolean` | false | Toggles context menus for each row |
| currentFolderId | `string` | null | The ID of the folder node to display or a reserved string alias for special sources |
| displayCheckboxesOnHover | `boolean` | false | Enables checkboxes in datatable rows being displayed on hover only. |
| displayCheckboxesOnHover | `boolean` | false | Enables checkboxes in datatable rows being displayed on hover only. |
| emptyFolderImageUrl | `string` | | Custom image for empty folder. Default value: './assets/images/empty_doc_lib.svg' |
| filterValue | `any` | | Initial value for filter. |
| headerFilters | `boolean` | false | Toggles the header filters mode. |
@@ -152,7 +152,7 @@ the other DOM events that the [Document List component](document-list.component.
Below is a basic example of handling DOM events in the parent elements.
```html
<div (node-click)="onNodeClicked($event)"
<div (node-click)="onNodeClicked($event)"
(node-dblclick)="onNodeDblClicked($event)">
<div>
<adf-upload-drag-area ...>
@@ -195,7 +195,7 @@ The Document List by default supports 2 types of pagination: [Pagination compon
```html
<adf-document-list #documentList ...></adf-document-list>
<adf-infinite-pagination
<adf-infinite-pagination
[target]="documentList"
[loading]="documentList.infiniteLoading">
</adf-infinite-pagination>
@@ -363,7 +363,7 @@ points you should pay attention to:
```ts
import { ChangeDetectorRef } from '@angular/core';
import { AlfrescoApiService } from '@alfresco/adf-core';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
export class FilesComponent implements OnInit {
@@ -408,7 +408,7 @@ It is useful for examining other information that you can access if necessary:
Typically you will bind Document List properties to your application/component class properties:
```html
<adf-document-list
<adf-document-list
[currentFolderId]="myStartFolder">
</adf-document-list>
```
@@ -420,7 +420,7 @@ Typically you will bind Document List properties to your application/component c
export class MyAppComponent {
myStartFolder: string = '-my-';
}
```
@@ -432,7 +432,7 @@ section of the Angular docs for more information.
Below is an example of getting a reference:
```html
<adf-document-list
<adf-document-list
#documentList
[currentFolderId]="myStartFolder">
</adf-document-list>
@@ -448,7 +448,7 @@ import { DocumentListComponent } from '@alfresco/adf-content-services';
export class MyAppComponent implements AfterViewInit {
myStartFolder: string = '-my-';
@ViewChild(DocumentListComponent)
documentList: DocumentListComponent;
@@ -498,7 +498,7 @@ Here's a short example:
<data-column key="$thumbnail" type="image"></data-column>
<data-column title="Name" key="name" class="full-width ellipsis-cell"></data-column>
<data-column
title="Created By"
title="Created By"
key="createdByUser.displayName">
</data-column>
</data-columns>
@@ -517,21 +517,21 @@ A custom set of columns might look like the following:
<data-columns>
<data-column key="$thumbnail" type="image"></data-column>
<data-column
title="Name"
key="name"
title="Name"
key="name"
sortable="true"
class="full-width ellipsis-cell">
</data-column>
<data-column
title="Created By"
title="Created By"
key="createdByUser.displayName"
sortable="true"
class="desktop-only">
</data-column>
<data-column
title="Created On"
key="createdAt"
type="date"
title="Created On"
key="createdAt"
type="date"
format="medium"
sortable="true"
class="desktop-only">
@@ -692,7 +692,7 @@ may be sometimes be useful.
The following example switches navigation to single clicks:
```html
<adf-document-list
<adf-document-list
[navigationMode]="'click'">
</adf-document-list>
```
@@ -702,8 +702,8 @@ The following example switches navigation to single clicks:
You can enable Header filters in your document list simply setting to true its `headerFilters` input.
```html
<adf-document-list
currentFolderId="-my-"
<adf-document-list
currentFolderId="-my-"
[headerFilters]="true">
</adf-document-list>
```
@@ -788,11 +788,11 @@ This will give the following output:
### File Auto downloading
In case of files exceeding a predefined file size, the [document list component](../../content-services/components/document-list.component.md) can be configured to automatically download those file when trying to preview them.
In case of files exceeding a predefined file size, the [document list component](../../content-services/components/document-list.component.md) can be configured to automatically download those file when trying to preview them.
This can help in reducing server load, and ensuring quick access to such files. After turning this feature on, whenever the user tries to preview a file with a large
file size, the [Document List component](../../content-services/components/document-list.component.md) will first preview a dialog, asking for confirmation from the user on whether they want to download the file, or cancel the preview altogether.
In order to configure the Document List to automatically download the files, the following environment variables would need to be set up in app.config.json -
In order to configure the Document List to automatically download the files, the following environment variables would need to be set up in app.config.json -
```
"viewer": {
@@ -5,7 +5,7 @@ Status: Active
Last reviewed: 2018-11-19
---
# [Tag Node Actions List component](../../../lib/content-services/src/lib/tag/tag-actions.component.ts "Defined in tag-actions.component.ts")
# [Tag Node Actions List component](../../../lib/content-services/src/lib/tag/tag-actions/tag-actions.component.ts "Defined in tag-actions.component.ts")
Shows available actions for tags.
@@ -5,7 +5,7 @@ Status: Active
Last reviewed: 2018-11-14
---
# [Tag List component](../../../lib/content-services/src/lib/tag/tag-list.component.ts "Defined in tag-list.component.ts")
# [Tag List component](../../../lib/content-services/src/lib/tag/tag-list/tag-list.component.ts "Defined in tag-list.component.ts")
Shows tags for an item.
@@ -5,7 +5,7 @@ Status: Active
Last reviewed: 2018-11-19
---
# [Tag Node List component](../../../lib/content-services/src/lib/tag/tag-node-list.component.ts "Defined in tag-node-list.component.ts")
# [Tag Node List component](../../../lib/content-services/src/lib/tag/tag-node-list/tag-node-list.component.ts "Defined in tag-node-list.component.ts")
Shows tags for a node.
@@ -0,0 +1,25 @@
---
Title: Agent service
Added: v6.9.1
Status: Active
Last reviewed: 2024-07-12
---
# [Agent service](../../../lib/content-services/src/lib/agent/services/agent.service.ts "Defined in agent.service.ts")
Manages agents in Content Services.
## Class members
### Methods
- **getAgents**(): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`AgentPaging`](../../../lib/js-api/src/api/content-rest-api/docs/AgentsApi.md#agentpaging)`>`<br/>
Gets all agents.
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`AgentPaging`](../../../lib/js-api/src/api/content-rest-api/docs/AgentsApi.md#agentpaging)`>` - AgentPaging object containing the agents.
## Details
See the
[Agents API](../../../lib/js-api/src/api/content-rest-api/docs/AgentsApi.md) for more information about the types returned by [Agent
service](agent.service.md) methods and for the implementation of the REST API the service is
based on.
@@ -5,57 +5,76 @@ Status: Active
Last reviewed: 2019-01-16
---
# [Document List service](../../../lib/content-services/src/lib/document-list/services/document-list.service.ts "Defined in document-list.service.ts")
# Document List Service
Implements node operations used by the [Document List component](../components/document-list.component.md).
`service`
## Class members
Implements operations used by the [Document List component](../components/document-list.component.md).
## Usage
```typescript
import { DocumentListService } from '@alfresco/adf-core';
```
## API
### Events
| Name | Description |
|-------------------|-------------------------------------------------|
| `reload$` | Emits when the document list should be reloaded |
| `resetSelection$` | Emits when the selection should be reset |
### Methods
- **copyNode**(nodeId: `string`, targetParentId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
- **reload**(): `void`<br/>
Reloads the document list.
- **resetSelection**(): `void`<br/>
Resets the selection.
- **copyNode**(nodeId: `string`, targetParentId: `string`): `Observable<NodeEntry>`<br/>
Copy a node to destination node
- _nodeId:_ `string` - The id of the node to be copied
- _targetParentId:_ `string` - The id of the folder where the node will be copied
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - NodeEntry for the copied node
- **deleteNode**(nodeId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<any>`<br/>
- **Returns** `Observable<NodeEntry>` - NodeEntry for the copied node
- **deleteNode**(nodeId: `string`): `Observable<any>`<br/>
Deletes a node.
- _nodeId:_ `string` - ID of the node to delete
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<any>` - Empty response when the operation is complete
- **getFolder**(folder: `string`, opts?: `any`, includeFields: `string[]` = `[]`): [`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)`>`<br/>
- **Returns** `Observable<any>` - Empty response when the operation is complete
- **getFolder**(folder: `string`, opts?: `any`, includeFields: `string[]` = `[]`): `Observable<NodePaging>`<br/>
Gets the folder node with the specified relative name path below the root node.
- _folder:_ `string` - Path to folder.
- _opts:_ `any` - (Optional) Options.
- _includeFields:_ `string[]` - Extra information to include (available options are "aspectNames", "isLink" and "association")
- **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)`>` - Details of the folder
- **getFolderNode**(nodeId: `string`, includeFields: `string[]` = `[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
- **Returns** `Observable<NodePaging>` - Details of the folder
- **getFolderNode**(nodeId: `string`, includeFields: `string[]` = `[]`): `Observable<NodeEntry>`<br/>
Gets a folder node via its node ID.
- _nodeId:_ `string` - ID of the folder node
- _includeFields:_ `string[]` - Extra information to include (available options are "aspectNames", "isLink" and "association")
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - Details of the folder
- **getNode**(nodeId: `string`, includeFields: `string[]` = `[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md)`>`<br/>
- **Returns** `Observable<NodeEntry>` - Details of the folder
- **getNode**(nodeId: `string`, includeFields: `string[]` = `[]`): `Observable<MinimalNode>`<br/>
Gets a node via its node ID.
- _nodeId:_ `string` - ID of the target node
- _includeFields:_ `string[]` - Extra information to include (available options are "aspectNames", "isLink" and "association")
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md)`>` - Details of the folder
- **Returns** `Observable<MinimalNode>` - Details of the folder
- **isCustomSourceService**(nodeId: `any`): `boolean`<br/>
- _nodeId:_ `any` -
- **Returns** `boolean` -
- **loadFolderByNodeId**(nodeId: `string`, pagination: [`PaginationModel`](../../../lib/core/src/lib/models/pagination.model.ts), includeFields: `string[]`, where?: `string`, orderBy?: `string[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`DocumentLoaderNode`](../../../lib/content-services/src/lib/document-list/models/document-folder.model.ts)`>`<br/>
- **loadFolderByNodeId**(nodeId: `string`, pagination: `PaginationModel`, includeFields: `string[]`, where?: `string`, orderBy?: `string[]`): `Observable<DocumentLoaderNode>`<br/>
Load a folder by Node Id.
- _nodeId:_ `string` - ID of the folder node
- _pagination:_ [`PaginationModel`](../../../lib/core/src/lib/models/pagination.model.ts) -
- _pagination:_ `PaginationModel` - pagination model
- _includeFields:_ `string[]` - List of data field names to include in the results
- _where:_ `string` - (Optional) Optionally filter the list
- _orderBy:_ `string[]` - (Optional) order by node property
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`DocumentLoaderNode`](../../../lib/content-services/src/lib/document-list/models/document-folder.model.ts)`>` - Details of the folder
- **moveNode**(nodeId: `string`, targetParentId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>`<br/>
- **Returns** `Observable<DocumentLoaderNode>` - Details of the folder
- **moveNode**(nodeId: `string`, targetParentId: `string`): `Observable<NodeEntry>`<br/>
Moves a node to destination node.
- _nodeId:_ `string` - The id of the node to be moved
- _targetParentId:_ `string` - The id of the folder where the node will be moved
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`NodeEntry`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeEntry.md)`>` - NodeEntry for the moved node
- **Returns** `Observable<NodeEntry>` - NodeEntry for the moved node
## Details
@@ -0,0 +1,80 @@
---
Title: Legal Hold service
Added: v6.10.0
Status: Active
Last reviewed: 2024-06-19
---
# [Legal Hold service](../../../lib/content-services/src/lib/legal-hold/services/legal-hold.service.ts "Defined in legal-hold.service.ts")
Manages holds for nodes.
## Class members
### Methods
- **getHolds**(filePlanId: `string`, options?: `ContentPagingQuery`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`Hold`](../../../lib/js-api/src/api/gs-core-rest-api/docs/Hold.md)`[]>`<br/>
Gets the list of holds for a node.
- _filePlanId_: `string` - The identifier of a file plan. You can also use the -filePlan- alias
- _options_: `ContentPagingQuery` - Optional parameters supported by JS-API
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`Hold`](../../../lib/js-api/src/api/gs-core-rest-api/docs/Hold.md)`[]>` - List of holds <br/>
- **createHold**(filePlanId: `string`, hold: [`HoldBody`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBody.md)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldEntry.md)`>`<br/>
Create new hold in File Plan.
- _filePlanId_: `string` - The identifier of a file plan. You can also use the -filePlan- alias
- _hold_: [`HoldBody`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBody.md) - Hold that should be created
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldEntry.md)`>` - Hold entry<br/>
- **createHolds**(filePlanId: `string`, holds: [`HoldBody`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBody.md)`[]`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`Hold`](../../../lib/js-api/src/api/gs-core-rest-api/docs/Hold.md)`[]>`<br/>
Create new holds in File Plan.
- _filePlanId_: `string` - The identifier of a file plan. You can also use the -filePlan- alias
- _holds_: `<`[`HoldBody`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBody.md)`[]>` - Array of holds that should be created
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldPaging`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldPaging.md)`>` - List of paginated holds entries
- **assignHold**(nodeId: `string`, holdId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldEntry.md)`>`<br/>
Assign a node to a hold.
- _nodeId_: `string` - The Id of the node which will be assigned to a hold
- _holdId_: `string` - The Id of the hold to which nodes will be assigned
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldEntry.md)`>` - Entry with the hold <br/>
- **assignHolds**(nodeIds: `<{id: string}[]>`, holdId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldPaging`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldPaging.md)`>`<br/>
Assign multiple nodes to a hold.
- _nodeIds_: `<{id: string}[]>` - The Ids of the nodes which will be assigned to a hold
- _holdId_: `string` - The Id of the hold to which nodes will be assigned
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldPaging`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldPaging.md)`>` - Hold paging
- **unassignHold**(holdId: `string`, nodeId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<void>`<br/>
Unassign a node from a hold.
- _holdId_: `string` - The hold Id
- _nodeId_: `string` - The Id of the node which is unassigned
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<void>`
- **bulkAssignHold**(holdId: `string`, query: [`RequestQuery`](../../../lib/js-api/src/api/search-rest-api/docs/RequestQuery.md)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`BulkAssignHoldResponseEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/BulkAssignHoldResponseEntry.md)`>`<br/>
Assign multiple files to a hold.
- _holdId_: `string` - The hold id
- _query_: [`RequestQuery`](../../../lib/js-api/src/api/search-rest-api/docs/RequestQuery.md) - Search query
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`BulkAssignHoldResponseEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/BulkAssignHoldResponseEntry.md)`>` - Bulk operation description <br/>
- **bulkAssignHoldToFolder**(holdId: `string`, folderId: `string`, language: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`BulkAssignHoldResponseEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/BulkAssignHoldResponseEntry.md)`>`<br/>
Assign a folder to a hold.
- _holdId_: `string` - The hold id
- _folderId_: `string` - The folder id
- _language_: `string` - Language code. `afts` can be used for search query
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`BulkAssignHoldResponseEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/BulkAssignHoldResponseEntry.md)`>` - Bulk operation description <br/>
- **getBulkOperationStatus**(bulkStatusId: `string`, holdId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldBulkStatusEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBulkStatusEntry.md)`>`<br/>
Get current status of bulk operation.
- _bulkStatusId_: `string` - The bulk operation id
- _holdId_: `string` - The hold id
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`HoldBulkStatusEntry`](../../../lib/js-api/src/api/gs-core-rest-api/docs/HoldBulkStatusEntry.md)`>` - Current status of bulk operation <br/>
## Details
To create, delete or get holds Records Management should be created and user should be added to it.
## See also
- [LegalHoldApi](../../../lib/js-api/src/api/gs-core-rest-api/docs/LegalHoldApi.md)
@@ -0,0 +1,41 @@
---
Title: Search Ai service
Added: v6.9.1
Status: Active
Last reviewed: 2024-07-12
---
# [Search Ai service](../../../lib/content-services/src/lib/search-ai/services/search-ai.service.ts "Defined in search-ai.service.ts")
Manages search AI in Content Services.
## Class members
### Methods
- **updateSearchAiInputState**(state: `SearchAiInputState`): `void`<br/>
Update the state of the search AI input.
- _state:_ `SearchAiInputState` - The new state of the search AI input.
- **ask**(question: [`QuestionRequest`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#questionrequest)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`QuestionModel`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#questionmodel)`>`<br/>
Ask a question to the AI.
- _question:_ [`QuestionRequest`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#questionrequest) - The question to ask.
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`QuestionModel`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#questionmodel)`>` - QuestionModel object containing information about questions.
- **getAnswer**(questionId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`AiAnswerEntry`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#aianswerentry)`>`<br/>
Get an answer to specific question.
- _questionId:_ `string` - The ID of the question to get an answer for.
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`AiAnswerEntry`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#aianswerentry)`>` - AiAnswerEntry object containing the answer.
- **getConfig**(): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`KnowledgeRetrievalConfigEntry`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#knowledgeretrievalconfigentry)`>`<br/>
Get the knowledge retrieval configuration.
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`KnowledgeRetrievalConfigEntry`](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md#knowledgeretrievalconfigentry)`>` - KnowledgeRetrievalConfigEntry object containing the configuration.
- **checkSearchAvailability**(selectedNodesState: `SelectionState`, maxSelectedNodes: `number`): `string`<br/>
Check if using of search is possible (if all conditions are met).
- _selectedNodesState:_ `SelectionState` - information about selected nodes.
- _maxSelectedNodes:_ `number` - max number of selected nodes. Default 100.
- **Returns** `string` - string with error if any condition is not met, empty string otherwise.
## Details
See the
[Search Ai API](../../../lib/js-api/src/api/content-rest-api/docs/SearchAiApi.md) for more information about the types returned by [Search Ai
service](search-ai.service.md) methods and for the implementation of the REST API the service is
based on.
@@ -63,6 +63,7 @@ Using with file [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob):
| tracks | [`Track`](../../../lib/core/src/lib/viewer/models/viewer.model.ts)`[]` | \[] | media subtitles for the media player |
| urlFile | `string` | "" | If you want to load an external file that does not come from ACS you can use this URL to specify where to load the file from. |
| viewerTemplateExtensions | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | Template containing ViewerExtensionDirective instances providing different viewer extensions based on supported file extension. |
| nodeId | `string` | null | Identifier of a node opened by a viewer. |
### Events
+29 -16
View File
@@ -5,10 +5,12 @@ Status: Active
Last reviewed: 2023-01-30
---
# [Viewer component](../../../lib/core/src/lib/viewer/components/viewer.component.ts "Defined in viewer.component.ts")
# Viewer Component
Displays content from blob file or url file.
> For Alfresco Content Services support, see the [Alfresco Viewer](../../content-services/components/alfresco-viewer.component.md) component details.
## Contents
- [Basic usage](#basic-usage)
@@ -87,6 +89,7 @@ See the [Custom layout](#custom-layout) section for full details of all availabl
| tracks | [`Track`](../../../lib/core/src/lib/viewer/models/viewer.model.ts)`[]` | \[] | media subtitles for the media player |
| urlFile | `string` | "" | If you want to load an external file that does not come from ACS you can use this URL to specify where to load the file from. |
| viewerExtensions | [`TemplateRef`](https://angular.io/api/core/TemplateRef)`<any>` | null | Template containing ViewerExtensionDirective instances providing different viewer extensions based on supported file extension. |
| nodeId | `string` | null | Identifier of a node opened by a viewer. |
### Events
@@ -171,13 +174,13 @@ The [Viewer component](viewer.component.md) consists of separate Views that hand
Configure your webpack-enabled application with the PDF.js library as follows.
1. Install pdfjs-dist
- Install pdfjs-dist
```sh
npm install pdfjs-dist
```
2. Update `vendors.ts` by appending the following code. This will enable the [viewer component](viewer.component.md)
- Update `vendors.ts` by appending the following code. This will enable the [viewer component](viewer.component.md)
and compatibility mode for all browsers. It will also configure the web worker for the PDF.js
library to render PDF files in the background:
@@ -189,7 +192,7 @@ pdfjsLib.PDFJS.workerSrc = './pdf.worker.js';
require('pdfjs-dist/web/pdf_viewer.js');
```
3. Update the `plugins` section of the `webpack.common.js` file with the following lines:
- Update the `plugins` section of the `webpack.common.js` file with the following lines:
```js
new CopyWebpackPlugin([
@@ -376,15 +379,23 @@ You can enable a custom "More actions" menu by providing at least one action ins
You can set a default zoom scaling value for pdf viewer by adding the following code in `app.config.json`.
Note: For the pdf viewer the value has to be within the range of 25 - 1000.
"adf-viewer": {
"pdf-viewer-scaling": 150
```json
{
"adf-viewer": {
"pdf-viewer-scaling": 150
}
}
```
In the same way you can set a default zoom scaling value for the image viewer by adding the following code in `app.config.json`.
"adf-viewer": {
"image-viewer-scaling": 150
```json
{
"adf-viewer": {
"image-viewer-scaling": 150
}
}
```
By default the viewer's zoom scaling is set to 100%.
@@ -396,13 +407,15 @@ In case the user decides to wait, the viewer can further be configured to displa
In order to configure this feature, add the following code in `app.config.json`.
```
"viewer": {
"enableDownloadPrompt": true,
"enableDownloadPromptReminder": true,
"downloadPromptDelay": 50,
"downloadPromptReminderDelay": 30
}
```json
{
"viewer": {
"enableDownloadPrompt": true,
"enableDownloadPromptReminder": true,
"downloadPromptDelay": 50,
"downloadPromptReminderDelay": 30
}
}
```
Here `enableDownloadPrompt: true` enables the dialog to be visible after a set period of time. This time can be configured by updating the value in the
@@ -411,7 +424,7 @@ Here `enableDownloadPrompt: true` enables the dialog to be visible after a set p
The second boolean flag `enableDownloadPromptReminder: true` can be used to configure whether the reminder prompts should be displayed or not.
`downloadPromptReminderDelay` property can be used to configure the time to wait between reminder prompts.
Note: All times in this configuration must be provided in seconds
> All times in this configuration must be provided in seconds
## See also
-26
View File
@@ -1,26 +0,0 @@
---
Title: Boolean pipe
Added: v6.4.0
Status: Active
Last reviewed: 2023-10-12
---
# [Boolean pipe](../../../lib/core/src/lib/pipes/boolean.pipe.ts "Defined in boolean.pipe.ts")
Converts the received values to one of the possible strings: 'true', 'false' or ""(empty string).
## Basic Usage
<!-- {% raw %} -->
```HTML
<div>
Is available: {{ isAvailable | adfBoolean }}
</div>
```
<!-- {% endraw %} -->
## Details
This pipe is prepared for any input values. The value `'true'` will be returned if true (boolean) or 'true' (exact string) appears on the input. The situation is identical for the value `'false'` - it will be returned in the case of false(boolean) or 'false'. In other cases, we can expect an `empty string('')`.
+2 -2
View File
@@ -25,7 +25,7 @@ Converts a date to a given format and locale.
## Details
The pipe takes a date and formats it and localizes it so the date is displayed in the proper format for the region. It uses the [Angular Date Pipe](https://angular.io/api/common/DatePipe#custom-format-options) so all the pre-defined and custom formats can be used.
The pipe takes a date and formats it and localizes it so the date is displayed in the proper format for the region. It uses the [Angular Date Pipe](https://angular.io/api/common/DatePipe#custom-format-options) so all the pre-defined and custom formats can be used.
To localize the dates in your application, you will need to add the specific locale file for your region in order to use it. Read more about internationalization [here](https://angular.io/guide/i18n#i18n-pipes).
@@ -58,4 +58,4 @@ You can overwrite the default values of this pipe by adding these properties to
| defaultDateTimeFormat | string | The format to apply to date-time values |
| defaultLocale | string | The locale id to apply |
This configuration overwrites the values in the [localized date pipe](../../core/pipes/localized-date.pipe.md) as well as other components to have more consistency across your app. However, you can still overwrite these values any time by using the pipe in your code.
This configuration overwrites the values in the [localized date pipe](../../core/pipes/localized-date.pipe.md) as well as other components to have more consistency across your app. However, you can still overwrite these values any time by using the pipe in your code.
+1 -1
View File
@@ -5,7 +5,7 @@ Status: Active
Last reviewed: 2019-01-17
---
# [Alfresco Api Service](../../../lib/core/src/lib/services/alfresco-api.service.ts "Defined in alfresco-api.service.ts")
# [Alfresco Api Service](lib/content-services/src/lib/services/alfresco-api.service.ts "Defined in alfresco-api.service.ts")
Provides access to an initialized **AlfrescoJSApi** instance.
+6 -1
View File
@@ -83,7 +83,12 @@ Accesses and manipulates ACS document nodes using their node IDs.
- _nodeId:_ `string` - ID of the target node
- _nodeBody:_ `any` - New data for the node
- _options:_ `any` - Optional parameters supported by JS-API
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md)`>` - Updated node information
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`MinimalNode`](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md)`>` - Updated node information<br/>
- **getNodeAssignedHolds**(nodeId: `string`, options: `{ includeSource?: boolean; } & NodesIncludeQuery & ContentPagingQuery`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`Hold[]`](../../../lib/js-api/src/api/gs-core-rest-api/docs/Hold.md)`>`<br/>
Gets legal holds assigned to a node.
- _nodeId:_ `string` - ID of the target node
- _options:_ `{ includeSource?: boolean; } & NodesIncludeQuery & ContentPagingQuery` - Optional parameters supported by JS-API
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`Hold[]`](../../../lib/js-api/src/api/gs-core-rest-api/docs/Hold.md)`>` - List of assigned holds
## Details
@@ -20,6 +20,7 @@ an example of a real working viewer extension project.
| ---- | ---- | ------------- | ----------- |
| extension | `string` | | File extension (.jpg, .png, etc) for the viewer. |
| id | `string` | | ID string of the component to preview. |
| nodeId | `string` | null | Identifier of a node opened by a viewer. |
| url | `string` | | URL of the content in the repository. |
## Details
+1
View File
@@ -49,3 +49,4 @@ The pages linked below contain the licenses for all third party dependencies of
- [ADF 6.7.1](license-info-6.7.1.md)
- [ADF 6.8.0](license-info-6.8.0.md)
- [ADF 6.9.0](license-info-6.9.0.md)
- [ADF 7.0.0-alpha.2](license-info-7.0.0-alpha.2.md)
@@ -0,0 +1,755 @@
---
Title: License info, alfresco-ng2-components 7.0.0-alpha.2
---
# License information for alfresco-ng2-components 7.0.0-alpha.2
This page lists all third party libraries the project depends on.
## Libraries
| Name | Version | License |
| --- | --- | --- |
| [@ampproject/remapping](https://github.com/ampproject/remapping) | 2.2.0 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [@angular/animations](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/cdk](https://github.com/angular/components) | 15.2.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/common](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/compiler](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/core](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/forms](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/material-date-fns-adapter](https://github.com/angular/components) | 15.2.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/material](https://github.com/angular/components) | 15.2.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/platform-browser](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@angular/router](https://github.com/angular/angular) | 15.2.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@apollo/client](https://github.com/apollographql/apollo-client) | 3.11.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/code-frame](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/compat-data](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/core](https://github.com/babel/babel) | 7.20.12 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/core](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/generator](https://github.com/babel/babel) | 7.20.14 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/generator](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-annotate-as-pure](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-annotate-as-pure](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-builder-binary-assignment-operator-visitor](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-compilation-targets](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-create-class-features-plugin](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-create-regexp-features-plugin](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-define-polyfill-provider](https://github.com/babel/babel-polyfills) | 0.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-define-polyfill-provider](https://github.com/babel/babel-polyfills) | 0.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-environment-visitor](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-function-name](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-member-expression-to-functions](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-module-imports](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-module-transforms](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-optimise-call-expression](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-plugin-utils](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-remap-async-to-generator](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-replace-supers](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-simple-access](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-skip-transparent-expression-wrappers](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-split-export-declaration](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-string-parser](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-validator-identifier](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-validator-option](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helper-wrap-function](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/helpers](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/highlight](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/parser](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-bugfix-firefox-class-in-computed-class-key](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-bugfix-safari-class-field-initializer-scope](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-async-generator-functions](https://github.com/babel/babel) | 7.20.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-class-properties](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-class-static-block](https://github.com/babel/babel) | 7.21.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-dynamic-import](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-export-namespace-from](https://github.com/babel/babel) | 7.18.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-json-strings](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-logical-assignment-operators](https://github.com/babel/babel) | 7.20.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-nullish-coalescing-operator](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-numeric-separator](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-object-rest-spread](https://github.com/babel/babel) | 7.20.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-optional-catch-binding](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-optional-chaining](https://github.com/babel/babel) | 7.21.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-private-methods](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-private-property-in-object](https://github.com/babel/babel-plugin-proposal-private-property-in-object) | 7.21.0-placeholder-for-preset-env.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-private-property-in-object](https://github.com/babel/babel) | 7.21.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-proposal-unicode-property-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-async-generators](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-async-generators) | 7.8.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-class-properties](https://github.com/babel/babel) | 7.12.13 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-class-static-block](https://github.com/babel/babel) | 7.14.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-dynamic-import](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-dynamic-import) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-export-namespace-from](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-namespace-from) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-flow](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-import-assertions](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-import-attributes](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-import-meta](https://github.com/babel/babel) | 7.10.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-json-strings](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-json-strings) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-jsx](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-logical-assignment-operators](https://github.com/babel/babel) | 7.10.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-nullish-coalescing-operator](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-nullish-coalescing-operator) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-numeric-separator](https://github.com/babel/babel) | 7.10.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-object-rest-spread](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-object-rest-spread) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-optional-catch-binding](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-optional-catch-binding) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-optional-chaining](https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-optional-chaining) | 7.8.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-private-property-in-object](https://github.com/babel/babel) | 7.14.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-top-level-await](https://github.com/babel/babel) | 7.14.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-typescript](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-syntax-unicode-sets-regex](https://github.com/babel/babel) | 7.18.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-arrow-functions](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-async-generator-functions](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-async-to-generator](https://github.com/babel/babel) | 7.20.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-async-to-generator](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-block-scoped-functions](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-block-scoping](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-class-properties](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-class-static-block](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-classes](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-computed-properties](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-destructuring](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-dotall-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-duplicate-keys](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-duplicate-named-capturing-groups-regex](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-dynamic-import](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-exponentiation-operator](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-export-namespace-from](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-flow-strip-types](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-for-of](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-function-name](https://github.com/babel/babel) | 7.25.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-json-strings](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-literals](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-logical-assignment-operators](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-member-expression-literals](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-modules-amd](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-modules-commonjs](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-modules-systemjs](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-modules-umd](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-named-capturing-groups-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-new-target](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-nullish-coalescing-operator](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-numeric-separator](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-object-rest-spread](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-object-super](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-optional-catch-binding](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-optional-chaining](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-parameters](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-private-methods](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-private-property-in-object](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-property-literals](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-regenerator](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-reserved-words](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-shorthand-properties](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-spread](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-sticky-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-template-literals](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-typeof-symbol](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-typescript](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-unicode-escapes](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-unicode-property-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-unicode-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/plugin-transform-unicode-sets-regex](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-env](https://github.com/babel/babel) | 7.20.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-env](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-flow](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-modules](https://github.com/babel/preset-modules) | 0.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-modules](https://github.com/babel/preset-modules) | 0.1.6-no-external-plugins | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/preset-typescript](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/register](https://github.com/babel/babel) | 7.24.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/regjsgen](https://github.com/bnjmnt4n/regjsgen) | 0.8.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/runtime](https://github.com/babel/babel) | 7.20.13 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/runtime](https://github.com/babel/babel) | 7.24.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/template](https://github.com/babel/babel) | 7.20.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/template](https://github.com/babel/babel) | 7.24.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/template](https://github.com/babel/babel) | 7.25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/traverse](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@babel/types](https://github.com/babel/babel) | 7.25.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/cspell-bundled-dicts](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/cspell-pipe](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/cspell-resolver](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/cspell-service-bus](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/cspell-types](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-ada](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-aws](https://github.com/streetsidesoftware/cspell-dict) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-bash](https://github.com/streetsidesoftware/cspell-dicts) | 4.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-companies](https://github.com/streetsidesoftware/cspell-dict) | 3.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-cpp](https://github.com/streetsidesoftware/cspell-dict) | 5.1.12 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-cryptocurrencies](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-csharp](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-css](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.12 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-dart](https://github.com/streetsidesoftware/cspell-dicts) | 2.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-data-science](https://github.com/streetsidesoftware/cspell-dict) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-django](https://github.com/streetsidesoftware/cspell-dicts) | 4.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-docker](https://github.com/streetsidesoftware/cspell-dicts) | 1.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-dotnet](https://github.com/streetsidesoftware/cspell-dict) | 5.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-elixir](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-en-common-misspellings](https://github.com/streetsidesoftware/cspell-dicts) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-en-gb](https://github.com/streetsidesoftware/cspell-dicts) | 1.1.33 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-en_us](https://github.com/streetsidesoftware/cspell-dict) | 4.3.23 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-filetypes](https://github.com/streetsidesoftware/cspell-dict) | 3.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-fonts](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-fsharp](https://github.com/streetsidesoftware/cspell-dicts) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-fullstack](https://github.com/streetsidesoftware/cspell-dict) | 3.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-gaming-terms](https://github.com/streetsidesoftware/cspell-dicts) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-git](https://github.com/streetsidesoftware/cspell-dicts) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-golang](https://github.com/streetsidesoftware/cspell-dict) | 6.0.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-haskell](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-html-symbol-entities](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-html](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-java](https://github.com/streetsidesoftware/cspell-dict) | 5.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-k8s](https://github.com/streetsidesoftware/cspell-dict) | 1.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-latex](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-lorem-ipsum](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-lua](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-makefile](https://github.com/streetsidesoftware/cspell-dicts) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-node](https://github.com/streetsidesoftware/cspell-dicts) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-npm](https://github.com/streetsidesoftware/cspell-dict) | 5.0.18 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-php](https://github.com/streetsidesoftware/cspell-dict) | 4.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-powershell](https://github.com/streetsidesoftware/cspell-dict) | 5.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-public-licenses](https://github.com/streetsidesoftware/cspell-dict) | 2.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-python](https://github.com/streetsidesoftware/cspell-dict) | 4.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-r](https://github.com/streetsidesoftware/cspell-dicts) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-ruby](https://github.com/streetsidesoftware/cspell-dicts) | 5.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-rust](https://github.com/streetsidesoftware/cspell-dict) | 4.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-scala](https://github.com/streetsidesoftware/cspell-dict) | 5.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-software-terms](https://github.com/streetsidesoftware/cspell-dict) | 3.4.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-sql](https://github.com/streetsidesoftware/cspell-dicts) | 2.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-svelte](https://github.com/streetsidesoftware/cspell-dicts) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-swift](https://github.com/streetsidesoftware/cspell-dicts) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-typescript](https://github.com/streetsidesoftware/cspell-dict) | 3.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dict-vue](https://github.com/streetsidesoftware/cspell-dicts) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/dynamic-import](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/eslint-plugin](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@cspell/strong-weak-map](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@esbuild/darwin-arm64](https://github.com/evanw/esbuild) | 0.17.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@esbuild/darwin-arm64](https://github.com/evanw/esbuild) | 0.21.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@graphql-typed-document-node/core](https://github.com/dotansimha/graphql-typed-document-node) | 3.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/gen-mapping](https://github.com/jridgewell/gen-mapping) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/gen-mapping](https://github.com/jridgewell/gen-mapping) | 0.3.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/resolve-uri](https://github.com/jridgewell/resolve-uri) | 3.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/set-array](https://github.com/jridgewell/set-array) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/sourcemap-codec](https://github.com/jridgewell/sourcemap-codec) | 1.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@jridgewell/trace-mapping](https://github.com/jridgewell/trace-mapping) | 0.3.25 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@kurkle/color](https://github.com/kurkle/color) | 0.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@mat-datetimepicker/core](https://github.com/kuhnroyal/mat-datetimepicker) | 11.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/animation](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/auto-init](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/banner](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/base](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/button](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/card](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/checkbox](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/chips](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/circular-progress](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/data-table](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/density](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/dialog](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/dom](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/drawer](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/elevation](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/fab](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/feature-targeting](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/floating-label](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/focus-ring](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/form-field](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/icon-button](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/image-list](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/layout-grid](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/line-ripple](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/linear-progress](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/list](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/menu-surface](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/menu](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/notched-outline](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/progress-indicator](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/radio](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/ripple](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/rtl](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/segmented-button](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/select](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/shape](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/slider](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/snackbar](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/switch](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tab-bar](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tab-indicator](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tab-scroller](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tab](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/textfield](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/theme](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tokens](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/tooltip](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/top-app-bar](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/touch-target](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@material/typography](https://github.com/material-components/material-components-web) | 15.0.0-canary.684e33d25.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@ngx-translate/core](https://github.com/ngx-translate/core) | 14.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@nodelib/fs.scandir](https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir) | 2.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@nodelib/fs.stat](https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat) | 2.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@nodelib/fs.walk](https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk) | 1.2.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@pkgr/core](https://github.com/un-ts/pkgr) | 0.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@sindresorhus/merge-streams](https://github.com/sindresorhus/merge-streams) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@storybook/codemod](https://github.com/storybookjs/storybook) | 8.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@storybook/core-server](https://github.com/storybookjs/storybook) | 8.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@storybook/core](https://github.com/storybookjs/storybook) | 8.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@storybook/csf](https://github.com/ComponentDriven/csf) | 0.1.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@storybook/theming](https://github.com/storybookjs/storybook) | 8.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/body-parser](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.19.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/connect](https://github.com/DefinitelyTyped/DefinitelyTyped) | 3.4.38 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/cross-spawn](https://github.com/DefinitelyTyped/DefinitelyTyped) | 6.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.39.13 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/estree](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/express-serve-static-core](https://github.com/DefinitelyTyped/DefinitelyTyped) | 4.19.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped) | 4.17.21 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/http-errors](https://github.com/DefinitelyTyped/DefinitelyTyped) | 2.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/mime](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.3.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) | 18.19.42 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) | 20.14.12 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/prop-types](https://github.com/DefinitelyTyped/DefinitelyTyped) | 15.7.12 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/qs](https://github.com/DefinitelyTyped/DefinitelyTyped) | 6.9.15 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/range-parser](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.2.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped) | 18.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped) | 7.5.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/send](https://github.com/DefinitelyTyped/DefinitelyTyped) | 0.17.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@types/serve-static](https://github.com/DefinitelyTyped/DefinitelyTyped) | 1.15.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@wry/caches](https://github.com/benjamn/wryware) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@wry/context](https://github.com/benjamn/wryware) | 0.7.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@wry/equality](https://github.com/benjamn/wryware) | 0.5.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@wry/trie](https://github.com/benjamn/wryware) | 0.4.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@wry/trie](https://github.com/benjamn/wryware) | 0.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [@yarnpkg/fslib](https://github.com/yarnpkg/berry) | 2.10.3 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [@yarnpkg/libzip](https://github.com/yarnpkg/berry) | 2.3.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [accepts](https://github.com/jshttp/accepts) | 1.3.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [acorn](https://github.com/acornjs/acorn) | 8.12.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [alfresco-ng2-components](https://github.com/Alfresco/alfresco-ng2-components) | 7.0.0-alpha.1 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [angular-oauth2-oidc-jwks](https://github.com/manfredsteyer/angular-oauth2-oidc) | 17.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc) | 13.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ansi-regex](https://github.com/chalk/ansi-regex) | 5.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ansi-styles](https://github.com/chalk/ansi-styles) | 3.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ansi-styles](https://github.com/chalk/ansi-styles) | 4.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [apollo-angular](https://github.com/kamilkisiela/apollo-angular) | 5.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [argparse](https://github.com/nodeca/argparse) | 2.0.1 | [Python-2.0](http://www.opensource.org/licenses/Python-2.0) |
| [array-flatten](https://github.com/blakeembrey/array-flatten) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [array-timsort](https://github.com/kaelzhang/node-array-timsort) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [asap](https://github.com/kriskowal/asap) | 2.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ast-types](https://github.com/benjamn/ast-types) | 0.16.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [asynckit](https://github.com/alexindigo/asynckit) | 0.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [available-typed-arrays](https://github.com/inspect-js/available-typed-arrays) | 1.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| babel-core | 7.0.0-bridge.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-corejs2](https://github.com/babel/babel-polyfills) | 0.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-corejs2](https://github.com/babel/babel-polyfills) | 0.4.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-corejs3](https://github.com/babel/babel-polyfills) | 0.10.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-corejs3](https://github.com/babel/babel-polyfills) | 0.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-regenerator](https://github.com/babel/babel-polyfills) | 0.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [babel-plugin-polyfill-regenerator](https://github.com/babel/babel-polyfills) | 0.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [backo2](https://github.com/mokesmokes/backo) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [balanced-match](https://github.com/juliangruber/balanced-match) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [base64-js](https://github.com/beatgammit/base64-js) | 1.5.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [bl](https://github.com/rvagg/bl) | 4.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [body-parser](https://github.com/expressjs/body-parser) | 1.20.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [brace-expansion](https://github.com/juliangruber/brace-expansion) | 1.1.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [braces](https://github.com/micromatch/braces) | 3.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [browser-assert](https://github.com/socialally/browser-assert) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [browserslist](https://github.com/browserslist/browserslist) | 4.21.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [browserslist](https://github.com/browserslist/browserslist) | 4.23.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [buffer-from](https://github.com/LinusU/buffer-from) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [buffer](https://github.com/feross/buffer) | 5.7.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [bytes](https://github.com/visionmedia/bytes.js) | 3.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [call-bind](https://github.com/ljharb/call-bind) | 1.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [callsites](https://github.com/sindresorhus/callsites) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [caniuse-lite](https://github.com/browserslist/caniuse-lite) | 1.0.30001643 | [CC-BY-4.0](http://creativecommons.org/licenses/by/4.0/legalcode) |
| [chalk](https://github.com/chalk/chalk) | 2.4.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [chalk](https://github.com/chalk/chalk) | 4.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [chart.js](https://github.com/chartjs/Chart.js) | 4.4.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [chownr](https://github.com/isaacs/chownr) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [citty](https://github.com/unjs/citty) | 0.1.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [clear-module](https://github.com/sindresorhus/clear-module) | 4.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cli-cursor](https://github.com/sindresorhus/cli-cursor) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cli-spinners](https://github.com/sindresorhus/cli-spinners) | 2.6.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [clone-deep](https://github.com/jonschlinkert/clone-deep) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [clone](https://github.com/pvorb/node-clone) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [color-convert](https://github.com/Qix-/color-convert) | 1.9.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [color-convert](https://github.com/Qix-/color-convert) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [color-name](https://github.com/dfcreative/color-name) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [color-name](https://github.com/colorjs/color-name) | 1.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [combined-stream](https://github.com/felixge/node-combined-stream) | 1.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [commander](https://github.com/tj/commander.js) | 6.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [comment-json](https://github.com/kaelzhang/node-comment-json) | 4.2.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [commondir](https://github.com/substack/node-commondir) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [component-emitter](https://github.com/sindresorhus/component-emitter) | 1.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [concat-map](https://github.com/substack/node-concat-map) | 0.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [confbox](https://github.com/unjs/confbox) | 0.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [configstore](https://github.com/yeoman/configstore) | 6.0.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [consola](https://github.com/unjs/consola) | 3.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [content-disposition](https://github.com/jshttp/content-disposition) | 0.5.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [content-type](https://github.com/jshttp/content-type) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [convert-source-map](https://github.com/thlorenz/convert-source-map) | 1.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [convert-source-map](https://github.com/thlorenz/convert-source-map) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cookie-signature](https://github.com/visionmedia/node-cookie-signature) | 1.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cookie](https://github.com/jshttp/cookie) | 0.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cookiejar](https://github.com/bmeck/node-cookiejar) | 2.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [core-js-compat](https://github.com/zloirock/core-js) | 3.37.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [core-util-is](https://github.com/isaacs/core-util-is) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) | 8.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cropperjs](https://github.com/fengyuanchen/cropperjs) | 1.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cross-spawn](https://github.com/moxystudio/node-cross-spawn) | 7.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [crypto-random-string](https://github.com/sindresorhus/crypto-random-string) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-dictionary](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-glob](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-grammar](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-io](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-lib](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [cspell-trie-lib](https://github.com/streetsidesoftware/cspell) | 7.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [csstype](https://github.com/frenic/csstype) | 3.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [d](https://github.com/medikoo/d) | 1.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [date-fns](https://github.com/date-fns/date-fns) | 2.30.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [debug](https://github.com/visionmedia/debug) | 2.6.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [debug](https://github.com/debug-js/debug) | 4.3.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [defaults](https://github.com/sindresorhus/node-defaults) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [define-data-property](https://github.com/ljharb/define-data-property) | 1.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [defu](https://github.com/unjs/defu) | 6.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [delayed-stream](https://github.com/felixge/node-delayed-stream) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [depd](https://github.com/dougwilson/nodejs-depd) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [destroy](https://github.com/stream-utils/destroy) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [detect-indent](https://github.com/sindresorhus/detect-indent) | 6.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [dezalgo](https://github.com/npm/dezalgo) | 1.0.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [dot-prop](https://github.com/sindresorhus/dot-prop) | 6.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| dotenv-expand | 5.1.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [ee-first](https://github.com/jonathanong/ee-first) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [electron-to-chromium](https://github.com/kilian/electron-to-chromium) | 1.5.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [encodeurl](https://github.com/pillarjs/encodeurl) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [encoding](https://github.com/andris9/encoding) | 0.1.13 | [MIT](http://www.opensource.org/licenses/MIT) |
| [entities](https://github.com/fb55/entities) | 4.5.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [envinfo](https://github.com/tabrindle/envinfo) | 7.13.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [error-ex](https://github.com/qix-/node-error-ex) | 1.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [es-define-property](https://github.com/ljharb/es-define-property) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [es-errors](https://github.com/ljharb/es-errors) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [es5-ext](https://github.com/medikoo/es5-ext) | 0.10.64 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [es6-iterator](https://github.com/medikoo/es6-iterator) | 2.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [es6-symbol](https://github.com/medikoo/es6-symbol) | 3.1.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| esbuild-register | 3.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [esbuild](https://github.com/evanw/esbuild) | 0.17.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [esbuild](https://github.com/evanw/esbuild) | 0.21.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [escalade](https://github.com/lukeed/escalade) | 3.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [escape-html](https://github.com/component/escape-html) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [escape-string-regexp](https://github.com/sindresorhus/escape-string-regexp) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [esniff](https://github.com/medikoo/esniff) | 2.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [esprima](https://github.com/jquery/esprima) | 4.0.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [estree-walker](https://github.com/Rich-Harris/estree-walker) | 3.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [esutils](https://github.com/estools/esutils) | 2.0.3 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [etag](https://github.com/jshttp/etag) | 1.8.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [eve-raphael](https://github.com/tomasAlabes/eve) | 0.5.0 | [Apache](http://www.apache.org/licenses/LICENSE-2.0) |
| [event-emitter](https://github.com/medikoo/event-emitter) | 0.3.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [eventemitter3](https://github.com/primus/eventemitter3) | 3.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [execa](https://github.com/sindresorhus/execa) | 5.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [execa](https://github.com/sindresorhus/execa) | 8.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [express](https://github.com/expressjs/express) | 4.19.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ext](https://github.com/medikoo/es5-ext.git#ext) | 1.7.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [fast-equals](https://github.com/planttheidea/fast-equals) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fast-equals](https://github.com/planttheidea/fast-equals) | 5.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fast-glob](https://github.com/mrmlnc/fast-glob) | 3.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fast-safe-stringify](https://github.com/davidmarkclements/fast-safe-stringify) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fast-sha256](https://github.com/dchest/fast-sha256-js) | 1.3.0 | [Unlicense](http://unlicense.org/) |
| [fastq](https://github.com/mcollina/fastq) | 1.17.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [fd-package-json](https://github.com/es-tooling/fd-package-json) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fill-range](https://github.com/jonschlinkert/fill-range) | 7.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [finalhandler](https://github.com/pillarjs/finalhandler) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [find-cache-dir](https://github.com/avajs/find-cache-dir) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [find-up](https://github.com/sindresorhus/find-up) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [find-up](https://github.com/sindresorhus/find-up) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [find-up](https://github.com/sindresorhus/find-up) | 6.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [flow-parser](https://github.com/facebook/flow) | 0.242.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [for-each](https://github.com/Raynos/for-each) | 0.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [form-data](https://github.com/form-data/form-data) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [formidable](https://github.com/node-formidable/formidable) | 3.5.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [forwarded](https://github.com/jshttp/forwarded) | 0.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fresh](https://github.com/jshttp/fresh) | 0.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fs-extra](https://github.com/jprichardson/node-fs-extra) | 11.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [fs-minipass](https://github.com/npm/fs-minipass) | 2.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [fs.realpath](https://github.com/isaacs/fs.realpath) | 1.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [function-bind](https://github.com/Raynos/function-bind) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [gensequence](https://github.com/streetsidesoftware/GenSequence) | 6.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [gensync](https://github.com/loganfsmyth/gensync) | 1.0.0-beta.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [get-intrinsic](https://github.com/ljharb/get-intrinsic) | 1.2.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [get-stream](https://github.com/sindresorhus/get-stream) | 6.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [get-stream](https://github.com/sindresorhus/get-stream) | 8.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [giget](https://github.com/unjs/giget) | 1.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [glob-parent](https://github.com/gulpjs/glob-parent) | 5.1.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [glob](https://github.com/isaacs/node-glob) | 7.2.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [global-dirs](https://github.com/sindresorhus/global-dirs) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [globals](https://github.com/sindresorhus/globals) | 11.12.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [globby](https://github.com/sindresorhus/globby) | 14.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [gopd](https://github.com/ljharb/gopd) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [graceful-fs](https://github.com/isaacs/node-graceful-fs) | 4.2.11 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [graphql-tag](https://github.com/apollographql/graphql-tag) | 2.12.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [graphql](https://github.com/graphql/graphql-js) | 16.9.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-flag](https://github.com/sindresorhus/has-flag) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-flag](https://github.com/sindresorhus/has-flag) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-own-prop](https://github.com/sindresorhus/has-own-prop) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-property-descriptors](https://github.com/inspect-js/has-property-descriptors) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-proto](https://github.com/inspect-js/has-proto) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-symbols](https://github.com/inspect-js/has-symbols) | 1.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [has-tostringtag](https://github.com/inspect-js/has-tostringtag) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [hasown](https://github.com/inspect-js/hasOwn) | 2.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [hexoid](https://github.com/lukeed/hexoid) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [hoist-non-react-statics](https://github.com/mridgway/hoist-non-react-statics) | 3.3.2 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
| [http-errors](https://github.com/jshttp/http-errors) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [human-signals](https://github.com/ehmicky/human-signals) | 2.1.0 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [human-signals](https://github.com/ehmicky/human-signals) | 5.0.0 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [iconv-lite](https://github.com/ashtuchkin/iconv-lite) | 0.4.24 | [MIT](http://www.opensource.org/licenses/MIT) |
| [iconv-lite](https://github.com/ashtuchkin/iconv-lite) | 0.6.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ieee754](https://github.com/feross/ieee754) | 1.2.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
| [ignore](https://github.com/kaelzhang/node-ignore) | 5.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [import-fresh](https://github.com/sindresorhus/import-fresh) | 3.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [import-meta-resolve](https://github.com/wooorm/import-meta-resolve) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [imurmurhash](https://github.com/jensyt/imurmurhash-js) | 0.1.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [inflight](https://github.com/npm/inflight) | 1.0.6 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [inherits](https://github.com/isaacs/inherits) | 2.0.4 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [ini](https://github.com/isaacs/ini) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [ipaddr.js](https://github.com/whitequark/ipaddr.js) | 1.9.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-arguments](https://github.com/inspect-js/is-arguments) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-arrayish](https://github.com/qix-/node-is-arrayish) | 0.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-callable](https://github.com/inspect-js/is-callable) | 1.2.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-core-module](https://github.com/inspect-js/is-core-module) | 2.15.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-extglob](https://github.com/jonschlinkert/is-extglob) | 2.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-generator-function](https://github.com/inspect-js/is-generator-function) | 1.0.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-glob](https://github.com/micromatch/is-glob) | 4.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-interactive](https://github.com/sindresorhus/is-interactive) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-number](https://github.com/jonschlinkert/is-number) | 7.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-obj](https://github.com/sindresorhus/is-obj) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-plain-object](https://github.com/jonschlinkert/is-plain-object) | 2.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-stream](https://github.com/sindresorhus/is-stream) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-stream](https://github.com/sindresorhus/is-stream) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-typed-array](https://github.com/inspect-js/is-typed-array) | 1.1.13 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-typedarray](https://github.com/hughsk/is-typedarray) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [is-unicode-supported](https://github.com/sindresorhus/is-unicode-supported) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [isexe](https://github.com/isaacs/isexe) | 2.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [isobject](https://github.com/jonschlinkert/isobject) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [iterall](https://github.com/leebyron/iterall) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [js-tokens](https://github.com/lydell/js-tokens) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [js-yaml](https://github.com/nodeca/js-yaml) | 4.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [jscodeshift](https://github.com/facebook/jscodeshift) | 0.15.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [jsesc](https://github.com/mathiasbynens/jsesc) | 0.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [jsesc](https://github.com/mathiasbynens/jsesc) | 2.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [json-parse-even-better-errors](https://github.com/npm/json-parse-even-better-errors) | 2.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [json5](https://github.com/json5/json5) | 2.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [jsonfile](https://github.com/jprichardson/node-jsonfile) | 6.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [jsrsasign](https://github.com/kjur/jsrsasign) | 11.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [kind-of](https://github.com/jonschlinkert/kind-of) | 6.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [kleur](https://github.com/lukeed/kleur) | 3.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [leven](https://github.com/sindresorhus/leven) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [lines-and-columns](https://github.com/eventualbuddha/lines-and-columns) | 1.2.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [locate-path](https://github.com/sindresorhus/locate-path) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [locate-path](https://github.com/sindresorhus/locate-path) | 6.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [locate-path](https://github.com/sindresorhus/locate-path) | 7.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [lodash-es](https://github.com/lodash/lodash) | 4.17.21 | [MIT](http://www.opensource.org/licenses/MIT) |
| [lodash.debounce](https://github.com/lodash/lodash) | 4.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [lodash](https://github.com/lodash/lodash) | 4.17.21 | [MIT](http://www.opensource.org/licenses/MIT) |
| [log-symbols](https://github.com/sindresorhus/log-symbols) | 4.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [loose-envify](https://github.com/zertosh/loose-envify) | 1.4.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [lru-cache](https://github.com/isaacs/node-lru-cache) | 5.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [lru-cache](https://github.com/isaacs/node-lru-cache) | 6.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [make-dir](https://github.com/sindresorhus/make-dir) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [material-icons](https://github.com/marella/material-icons) | 1.13.12 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [media-typer](https://github.com/jshttp/media-typer) | 0.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [merge-descriptors](https://github.com/component/merge-descriptors) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [merge-stream](https://github.com/grncdr/merge-stream) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [merge2](https://github.com/teambition/merge2) | 1.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [methods](https://github.com/jshttp/methods) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [micromatch](https://github.com/micromatch/micromatch) | 4.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mime-db](https://github.com/jshttp/mime-db) | 1.52.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mime-types](https://github.com/jshttp/mime-types) | 2.1.35 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mime](https://github.com/broofa/node-mime) | 1.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mime](https://github.com/broofa/mime) | 2.6.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mimic-fn](https://github.com/sindresorhus/mimic-fn) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mimic-fn](https://github.com/sindresorhus/mimic-fn) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [minimatch-browser](https://github.com/isaacs/minimatch) | 1.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [minimatch](https://github.com/isaacs/minimatch) | 3.0.5 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [minimatch](https://github.com/isaacs/minimatch) | 3.1.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [minipass](https://github.com/isaacs/minipass) | 3.3.6 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [minipass](https://github.com/isaacs/minipass) | 5.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [minizlib](https://github.com/isaacs/minizlib) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mkdirp](https://github.com/isaacs/node-mkdirp) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [mlly](https://github.com/unjs/mlly) | 1.7.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [monaco-editor](https://github.com/microsoft/monaco-editor) | 0.34.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ms](https://github.com/zeit/ms) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ms](https://github.com/zeit/ms) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ms](https://github.com/vercel/ms) | 2.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [negotiator](https://github.com/jshttp/negotiator) | 0.6.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [neo-async](https://github.com/suguru03/neo-async) | 2.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [next-tick](https://github.com/medikoo/next-tick) | 1.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [ng2-charts](https://github.com/valor-software/ng2-charts) | 4.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [ngx-monaco-editor-v2](https://github.com/miki995/ngx-monaco-editor-v2) | 15.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [node-dir](https://github.com/fshost/node-dir) | 0.1.17 | [MIT](http://www.opensource.org/licenses/MIT) |
| [node-fetch-native](https://github.com/unjs/node-fetch-native) | 1.6.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [node-fetch](https://github.com/bitinn/node-fetch) | 2.7.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [node-releases](https://github.com/chicoxyzzy/node-releases) | 2.0.18 | [MIT](http://www.opensource.org/licenses/MIT) |
| [npm-run-path](https://github.com/sindresorhus/npm-run-path) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [npm-run-path](https://github.com/sindresorhus/npm-run-path) | 5.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [nypm](https://github.com/unjs/nypm) | 0.3.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [object-assign](https://github.com/sindresorhus/object-assign) | 4.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [object-inspect](https://github.com/inspect-js/object-inspect) | 1.13.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ohash](https://github.com/unjs/ohash) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [on-finished](https://github.com/jshttp/on-finished) | 2.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [once](https://github.com/isaacs/once) | 1.4.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [onetime](https://github.com/sindresorhus/onetime) | 5.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [onetime](https://github.com/sindresorhus/onetime) | 6.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [optimism](https://github.com/benjamn/optimism) | 0.18.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ora](https://github.com/sindresorhus/ora) | 5.4.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-limit](https://github.com/sindresorhus/p-limit) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-limit](https://github.com/sindresorhus/p-limit) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-limit](https://github.com/sindresorhus/p-limit) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-locate](https://github.com/sindresorhus/p-locate) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-locate](https://github.com/sindresorhus/p-locate) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-locate](https://github.com/sindresorhus/p-locate) | 6.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [p-try](https://github.com/sindresorhus/p-try) | 2.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [parent-module](https://github.com/sindresorhus/parent-module) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [parent-module](https://github.com/sindresorhus/parent-module) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [parse-json](https://github.com/sindresorhus/parse-json) | 5.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [parse5](https://github.com/inikulin/parse5) | 7.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [parseurl](https://github.com/pillarjs/parseurl) | 1.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-exists](https://github.com/sindresorhus/path-exists) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-exists](https://github.com/sindresorhus/path-exists) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-exists](https://github.com/sindresorhus/path-exists) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-is-absolute](https://github.com/sindresorhus/path-is-absolute) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-key](https://github.com/sindresorhus/path-key) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-key](https://github.com/sindresorhus/path-key) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-parse](https://github.com/jbgutierrez/path-parse) | 1.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-to-regexp](https://github.com/component/path-to-regexp) | 0.1.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-type](https://github.com/sindresorhus/path-type) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path-type](https://github.com/sindresorhus/path-type) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [path2d-polyfill](https://github.com/nilzona/path2d-polyfill) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pathe](https://github.com/unjs/pathe) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pdfjs-dist](https://github.com/mozilla/pdfjs-dist) | 3.3.122 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [picocolors](https://github.com/alexeyraspopov/picocolors) | 1.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [picomatch](https://github.com/micromatch/picomatch) | 2.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pify](https://github.com/sindresorhus/pify) | 4.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pirates](https://github.com/danez/pirates) | 4.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pkg-dir](https://github.com/sindresorhus/pkg-dir) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [pkg-types](https://github.com/unjs/pkg-types) | 1.1.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [possible-typed-array-names](https://github.com/ljharb/possible-typed-array-names) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [prettier](https://github.com/prettier/prettier) | 3.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [process](https://github.com/shtylman/node-process) | 0.11.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [prompts](https://github.com/terkelg/prompts) | 2.4.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [prop-types](https://github.com/facebook/prop-types) | 15.8.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [proxy-addr](https://github.com/jshttp/proxy-addr) | 2.0.7 | [MIT](http://www.opensource.org/licenses/MIT) |
| [qs](https://github.com/ljharb/qs) | 6.11.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
| [queue-microtask](https://github.com/feross/queue-microtask) | 1.2.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [range-parser](https://github.com/jshttp/range-parser) | 1.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [raphael](https://github.com/DmitryBaranovskiy/raphael) | 2.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [raw-body](https://github.com/stream-utils/raw-body) | 2.5.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [react-dom](https://github.com/facebook/react) | 18.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [react-is](https://github.com/facebook/react) | 16.13.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [react](https://github.com/facebook/react) | 18.3.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [readable-stream](https://github.com/nodejs/readable-stream) | 3.6.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [recast](https://github.com/benjamn/recast) | 0.23.9 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regenerate-unicode-properties](https://github.com/mathiasbynens/regenerate-unicode-properties) | 10.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regenerate](https://github.com/mathiasbynens/regenerate) | 1.4.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regenerator-runtime](https://github.com/facebook/regenerator/tree/main/packages/runtime) | 0.13.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regenerator-runtime](https://github.com/facebook/regenerator/tree/main/packages/runtime) | 0.14.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regenerator-transform](https://github.com/facebook/regenerator/tree/main/packages/transform) | 0.15.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regexpu-core](https://github.com/mathiasbynens/regexpu-core) | 5.3.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [regjsparser](https://github.com/jviereck/regjsparser) | 0.9.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [rehackt](https://github.com/phryneas/rehackt) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [repeat-string](https://github.com/jonschlinkert/repeat-string) | 1.6.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [resolve-from](https://github.com/sindresorhus/resolve-from) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [resolve-from](https://github.com/sindresorhus/resolve-from) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [resolve](https://github.com/browserify/resolve) | 1.22.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [response-iterator](https://github.com/kmalakoff/response-iterator) | 0.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [restore-cursor](https://github.com/sindresorhus/restore-cursor) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [reusify](https://github.com/mcollina/reusify) | 1.0.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [rimraf](https://github.com/isaacs/rimraf) | 2.6.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [run-parallel](https://github.com/feross/run-parallel) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [rxjs](https://github.com/reactivex/rxjs) | 7.8.1 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [safe-buffer](https://github.com/feross/safe-buffer) | 5.2.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [safer-buffer](https://github.com/ChALkeR/safer-buffer) | 2.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [safevalues](https://github.com/google/safevalues) | 0.3.4 | [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) |
| [scheduler](https://github.com/facebook/react) | 0.23.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [semver](https://github.com/npm/node-semver) | 5.7.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [semver](https://github.com/npm/node-semver) | 6.3.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [semver](https://github.com/npm/node-semver) | 7.5.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [send](https://github.com/pillarjs/send) | 0.18.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [serve-static](https://github.com/expressjs/serve-static) | 1.15.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [set-function-length](https://github.com/ljharb/set-function-length) | 1.2.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [setprototypeof](https://github.com/wesleytodd/setprototypeof) | 1.2.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [shallow-clone](https://github.com/jonschlinkert/shallow-clone) | 3.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [shebang-command](https://github.com/kevva/shebang-command) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [shebang-regex](https://github.com/sindresorhus/shebang-regex) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [side-channel](https://github.com/ljharb/side-channel) | 1.0.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [signal-exit](https://github.com/tapjs/signal-exit) | 3.0.7 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [signal-exit](https://github.com/tapjs/signal-exit) | 4.1.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [sisteransi](https://github.com/terkelg/sisteransi) | 1.0.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [slash](https://github.com/sindresorhus/slash) | 5.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [source-map-support](https://github.com/evanw/node-source-map-support) | 0.5.21 | [MIT](http://www.opensource.org/licenses/MIT) |
| [source-map](https://github.com/mozilla/source-map) | 0.6.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) |
| [statuses](https://github.com/jshttp/statuses) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [storybook](https://github.com/storybookjs/storybook) | 8.2.6 | [MIT](http://www.opensource.org/licenses/MIT) |
| [string_decoder](https://github.com/nodejs/string_decoder) | 1.3.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [strip-ansi](https://github.com/chalk/strip-ansi) | 6.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [strip-final-newline](https://github.com/sindresorhus/strip-final-newline) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [strip-final-newline](https://github.com/sindresorhus/strip-final-newline) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [strip-json-comments](https://github.com/sindresorhus/strip-json-comments) | 3.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [subscriptions-transport-ws](https://github.com/apollostack/subscriptions-transport-ws) | 0.11.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [superagent](https://github.com/ladjs/superagent) | 9.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [supports-color](https://github.com/chalk/supports-color) | 5.5.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [supports-color](https://github.com/chalk/supports-color) | 7.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [supports-preserve-symlinks-flag](https://github.com/inspect-js/node-supports-preserve-symlinks-flag) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [symbol-observable](https://github.com/blesh/symbol-observable) | 1.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [symbol-observable](https://github.com/blesh/symbol-observable) | 4.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [synckit](https://github.com/un-ts/synckit) | 0.8.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [tar](https://github.com/isaacs/node-tar) | 6.2.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [temp-dir](https://github.com/sindresorhus/temp-dir) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [temp](https://github.com/bruce/node-temp) | 0.8.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [tempy](https://github.com/sindresorhus/tempy) | 3.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [tiny-invariant](https://github.com/alexreardon/tiny-invariant) | 1.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [to-fast-properties](https://github.com/sindresorhus/to-fast-properties) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [to-regex-range](https://github.com/micromatch/to-regex-range) | 5.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [toidentifier](https://github.com/component/toidentifier) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [tr46](https://github.com/Sebmaster/tr46.js) | 0.0.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ts-dedent](https://github.com/tamino-martinius/node-ts-dedent) | 2.2.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ts-invariant](https://github.com/apollographql/invariant-packages) | 0.10.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [tslib](https://github.com/Microsoft/tslib) | 1.14.1 | [0BSD](http://landley.net/toybox/license.html) |
| [tslib](https://github.com/Microsoft/tslib) | 2.6.3 | [0BSD](http://landley.net/toybox/license.html) |
| [type-fest](https://github.com/sindresorhus/type-fest) | 1.4.0 | ([MIT](http://www.opensource.org/licenses/MIT) OR [CC0-1.0](http://creativecommons.org/publicdomain/zero/1.0/legalcode)) |
| [type-fest](https://github.com/sindresorhus/type-fest) | 2.19.0 | ([MIT](http://www.opensource.org/licenses/MIT) OR [CC0-1.0](http://creativecommons.org/publicdomain/zero/1.0/legalcode)) |
| [type-is](https://github.com/jshttp/type-is) | 1.6.18 | [MIT](http://www.opensource.org/licenses/MIT) |
| [type](https://github.com/medikoo/type) | 2.7.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [typedarray-to-buffer](https://github.com/feross/typedarray-to-buffer) | 3.1.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ufo](https://github.com/unjs/ufo) | 1.5.4 | [MIT](http://www.opensource.org/licenses/MIT) |
| [undici-types](https://github.com/nodejs/undici) | 5.26.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unicode-canonical-property-names-ecmascript](https://github.com/mathiasbynens/unicode-canonical-property-names-ecmascript) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unicode-match-property-ecmascript](https://github.com/mathiasbynens/unicode-match-property-ecmascript) | 2.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unicode-match-property-value-ecmascript](https://github.com/mathiasbynens/unicode-match-property-value-ecmascript) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unicode-property-aliases-ecmascript](https://github.com/mathiasbynens/unicode-property-aliases-ecmascript) | 2.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unicorn-magic](https://github.com/sindresorhus/unicorn-magic) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unique-string](https://github.com/sindresorhus/unique-string) | 3.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [universalify](https://github.com/RyanZim/universalify) | 2.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [unpipe](https://github.com/stream-utils/unpipe) | 1.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [update-browserslist-db](https://github.com/browserslist/update-db) | 1.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [util-deprecate](https://github.com/TooTallNate/util-deprecate) | 1.0.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [util](https://github.com/browserify/node-util) | 0.12.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [utils-merge](https://github.com/jaredhanson/utils-merge) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [vary](https://github.com/jshttp/vary) | 1.1.2 | [MIT](http://www.opensource.org/licenses/MIT) |
| [vscode-languageserver-textdocument](https://github.com/Microsoft/vscode-languageserver-node) | 1.0.11 | [MIT](http://www.opensource.org/licenses/MIT) |
| [vscode-uri](https://github.com/microsoft/vscode-uri) | 3.0.8 | [MIT](http://www.opensource.org/licenses/MIT) |
| [walk-up-path](https://github.com/isaacs/walk-up-path) | 3.0.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [wcwidth](https://github.com/timoxley/wcwidth) | 1.0.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [web-streams-polyfill](https://github.com/MattiasBuelens/web-streams-polyfill) | 3.3.3 | [MIT](http://www.opensource.org/licenses/MIT) |
| [webidl-conversions](https://github.com/jsdom/webidl-conversions) | 3.0.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) |
| [whatwg-url](https://github.com/jsdom/whatwg-url) | 5.0.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [which-typed-array](https://github.com/inspect-js/which-typed-array) | 1.1.15 | [MIT](http://www.opensource.org/licenses/MIT) |
| [which](https://github.com/isaacs/node-which) | 2.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [wrappy](https://github.com/npm/wrappy) | 1.0.2 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [write-file-atomic](https://github.com/iarna/write-file-atomic) | 2.4.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [write-file-atomic](https://github.com/npm/write-file-atomic) | 3.0.3 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [ws](https://github.com/websockets/ws) | 7.5.10 | [MIT](http://www.opensource.org/licenses/MIT) |
| [ws](https://github.com/websockets/ws) | 8.18.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [xdg-basedir](https://github.com/sindresorhus/xdg-basedir) | 5.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [yallist](https://github.com/isaacs/yallist) | 3.1.1 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [yallist](https://github.com/isaacs/yallist) | 4.0.0 | [ISC](https://www.isc.org/downloads/software-support-policy/isc-license/) |
| [yocto-queue](https://github.com/sindresorhus/yocto-queue) | 0.1.0 | [MIT](http://www.opensource.org/licenses/MIT) |
| [yocto-queue](https://github.com/sindresorhus/yocto-queue) | 1.1.1 | [MIT](http://www.opensource.org/licenses/MIT) |
| [zen-observable-ts](https://github.com/apollographql/zen-observable-ts) | 1.2.5 | [MIT](http://www.opensource.org/licenses/MIT) |
| [zen-observable](https://github.com/zenparsing/zen-observable) | 0.8.15 | [MIT](http://www.opensource.org/licenses/MIT) |
| [zone.js](https://github.com/angular/angular) | 0.11.8 | [MIT](http://www.opensource.org/licenses/MIT) |
@@ -35,6 +35,10 @@ Allows one or more users to be selected (with auto-suggestion) based on the inpu
| roles | `string[]` | | Role names of the users to be listed. |
| searchUserCtrl | `FormControl<any>` | | FormControl to search the user |
| title | `string` | | Placeholder translation key |
| hideInputOnSingleSelection | `boolean` | false | Hide the input field when a user is selected in single selection mode. The input will be shown again when the user is removed using the icon on the chip. |
| formFieldAppearance | [`MatFormFieldAppearance`](https://material.angular.io/components/form-field/api#MatFormFieldAppearance) | "fill" | Material form field appearance (fill / outline). |
| formFieldSubscriptSizing | [`SubscriptSizing`](https://material.angular.io/components/form-field/api#SubscriptSizing) | "fixed" | Material form field subscript sizing (fixed / dynamic). |
| showErrors | `boolean` | true | Show errors under the form field. |
| userChipsCtrl | `UntypedFormControl` | | FormControl to list of users |
| validate | `boolean` | false | This flag enables the validation on the preSelectUsers passed as input. In case the flag is true the components call the identity service to verify the validity of the information passed as input. Otherwise, no check will be done. |
+1
View File
@@ -9,6 +9,7 @@ The first **General Availability** release was v2.0.0.
## General Availability
- [7.0.0-alpha.2](RelNote-7.0.0-alpha.2.md)
- [6.9.0](RelNote-6.9.0.md)
- [6.8.0](RelNote-6.8.0.md)
- [6.7.1](RelNote-6.7.1.md)

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